资源描述
华南农业大学实验报告
实验项目名称:数据库设计
所属课程名称:数据库系统概念
开设时间:2012学年第一学期
学生:10
指导教师:
华 南 农 业 大 学 信 息 学 院
综合性、设计性实验成绩单
开设时间:2012学年第一学期
专业
班级
学号
姓名
实 验 题 目 与 要 求
设计实现一个课室管理系统,加深对数据库建模、设计的理解,从而提高数据分析、建模与数据库设计的能力。
自 我 评 价
简要来说,在完成本次实验的过程中,除了熟悉了书上介绍的SQL语言的增删查改等基本操作外,还对老师介绍的相对较少的触发器,游标,存储过程及事务等知识有了更进一步的了解,同时,在网络的帮助下,我认识并学习了一些书上没有介绍的知识。
教 师 评 语
评价指标:
l 题目内容完成情况 优 □ 良 □ 中 □ 差 □
l 对算法原理的理解程度 优 □ 良 □ 中 □ 差 □
l 程序设计水平 优 □ 良 □ 中 □ 差 □
l 实验报告结构清晰完整 优 □ 良 □ 中 □ 差 □
l 测试用例合理充分 优 □ 良 □ 中 □ 差 □
l 实验总结和分析详尽 优 □ 良 □ 中 □ 差 □
成 绩
教师签名:
1. 需求分析
1.1 用户需求概述
课室管理系统是对学校课室管理的现代化,网络化,逐步摆脱当前课室管理
的人工管理方式,提高课室管理效率而开发的,可用于老师学生对教室的使用情况的查询,提高保安管理教室的效率。
1.2 数据需求
数据内容方面:
1. 教室信息Classroom:(RoomNo教室编号, RongLiang教室的座位数)
2. 课程Course:(CourseNo课程编号,RoomNo教室,
CourseName课程名,Week周,Time,时间Jie节)
3. 教师Teacher:(TNo教师编号,CourseNo课程, Tname姓名)
4. 班级:Class(ClassNo班级编号,CourseNo课程,ClassName班级姓名)
5. 保安:Security(SNo保安编号,RoomNo课室
,Sname保安姓名,Sex性别,Day值班日期,Ontime上班时间,Offtime下班时间)
精度与规模:
1. 各个数据项根据实际情况设计不同的精度。
安全性方面:
1. 系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用
2. 系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容
数据词典
表1数据项列表
数据项编号
数据项名
数据项含义
与其它数据项的关系
存储结构
别名
DI-1
RoomNo
教室编号
char(10)
教室号
DI-2
RongLiang
容量
Int(4)
座位数
DI-3
CourseNo
课程编号
char(10)
DI-4
CourseName
课程名称
char(20)
DI-5
Week
周次
Int(10)
DI-6
Day
星期
Date
DI-7
Jie
节次
char(20)
DI-8
ClassNo
班级编号
char(20)
DI-9
Classname
班级名
char(20)
DI-10
SNo
保安员编号
Char(10)
编号
DI-11
Sname
姓名
char(20)
DI-12
Sex
性别
char(2)
DI-13
Age
年龄
Int(4)
DI-14
Ontime
上班时间
char(20)
DI-15
Offtime
下班时间
char(20)
DI-16
TNo
教师编号
char(20)
教师号
DI-17
Tname
教师名字
char(20)
数据结构列表
数据结
构编号
数据结构名
数据结构
含义
组成
DS-1
Class
教室信息
RoomNo,Rongliang
DS-2
Course
课程信息
CourseNo,RoomNo,CourseName,Week,Time,Jie
DS-3
Security
保安信息
SNo,RoomNo,Sname,Sex,Day,Ontime,Offtime,
DS-4
Duty
值班
SNo,Sname,Day,Ontime,Offtime
DS-5
Teacher
教师
TNo,CouseNo, Tname
2. 概念设计内容
2.1 概念设计综述
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键,包括概念模型设计和新系统流程两个阶段。
它的主要特点是:1.能真实、充分地反映现实世界,包括事物与事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;2.易于理解,因此可以用它和不熟悉计算机的用户交换意见;3.易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;4.易于向关系、网状、层次等各种数据模型转换。
2.2 概念模型
总的ER图:
班级
学习
课程
讲授
教师
占用
教室
n
m
m
n
1
m
管理
保安
1
m
RoomNo
RongLiang
Sno
RoomNo
Sex
Day
Ontimeem
Sname
Offtime
TNo
CouseNo
Tname o o
,CourseName
Jie
CourseNo No
RoomNo
week
Time
ClassNo No
CourseNo
Clssaname
各个实体的属性如下所示:
教室:Classroom(RoomNo, RongLiang)
课程:Course(CourseNo,RoomNo,CourseName,Week,Time,Jie)
教师:Teacher(TNo,CouseNo, Tname)
班级:Class(ClassNo,CourseNo,ClassName)
保安:Security(SNo,RoomNo,Sname,Sex,Day,Ontime,Offtime)
3. 数据库逻辑设计
3.1 逻辑设计综述
在裸机设计阶段(logical-dedign phrase),设计者将高层概念模式映射为将使用的数据库系统的实现数据模型。实现数据模型通常是关系数据模型,而该阶段通常包括将以实体-联系模型定义的概念模式映射到关系模式。以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
3.2 关系模型
根据E-R图,将每个实体集和联系集都有唯一的关系模式与之对应,关系模式名即为相应的实体集或联系集的名称。
保安表
表中文名称
<TABLE_CNAME>
保安
</TABLE_CNAME>
表英文名称
<TABLE_ENAME>
Security
</TABLE_ENAME>
描述
保安基本信息表
字段个数
<FIELD_NUM>
7
</FIELD_NUM>
索引信息
<INDEX >
Char、time
</INDEX >
结构信息:Security(SNo,RoomNo,Sname,Sex,Day,Ontime,Offtime)
<FIELD_INFO>
字段名
标识
字段类型
主键
说明
编号
SNo
Char(20)
是
Not null
姓名
Sname
Char(20)
否
Not null
教室编号
RoomNo
Char(20)
是
Not null
性别
Sex
Char(5)
否
Not null
值日日期
Day
time
否
Not null
上班时间
Ontime
time
否
Not null
下班时间
Offtime
time
否
Not null
教室表
表中文名称
<TABLE_CNAME>
教室
</TABLE_CNAME>
表英文名称
<TABLE_ENAME>
Classroom
</TABLE_ENAME>
描述
教室信息表
字段个数
<FIELD_NUM>
2
</FIELD_NUM>
索引信息
<INDEX >
Char
</INDEX >
结构信息:Classroom(RoomNo, RongLiang)
<FIELD_INFO>
字段名
标识
字段类型
主键
说明
课室编号
RoomNo
Char(20)
是
Not null
容量
Rongliang
Char(20)
否
Not null
课程表
表中文名称
<TABLE_CNAME>
课程
</TABLE_CNAME>
表英文名称
<TABLE_ENAME>
Course
</TABLE_ENAME>
描述
课程信息表
字段个数
<FIELD_NUM>
6
</FIELD_NUM>
索引信息
<INDEX >
Char
</INDEX >
结构信息:Course(CourseNo,RoomNo,CourseName,Week,Time,Jie)
<FIELD_INFO>
字段名
标识
字段类型
主键
说明
课程编号
CourseNo
Char(20)
是
Not null
课程名
Couname
Char(20)
否
Not null
教室编号
RoomNo
Char(20)
是
Not null
周次
Week
time
否
Not null
上课时间
Time
time
否
Not null
节
Jie
int
否
Not null
教师表
表中文名称
<TABLE_CNAME>
教师
</TABLE_CNAME>
表英文名称
<TABLE_ENAME>
Teacher
</TABLE_ENAME>
描述
教师信息表
字段个数
<FIELD_NUM>
3
</FIELD_NUM>
索引信息
<INDEX >
Char
</INDEX >
结构信息:Teacher(TNo,CouseNo, Tname)
<FIELD_INFO>
字段名
标识
字段类型
主键
说明
教师编号
TNo
Char(20)
是
Not null
课程编号
CourseN
Char(20)
是
Not null
教师姓名
Tname
Char(20)
否
Not null
班级表
表中文名称
<TABLE_CNAME>
班级
</TABLE_CNAME>
表英文名称
<TABLE_ENAME>
Class
</TABLE_ENAME>
描述
班级信息表
字段个数
<FIELD_NUM>
3
</FIELD_NUM>
索引信息
<INDEX >
Char
</INDEX >
结构信息:Class(ClassNo,CourseNo,ClassName)
<FIELD_INFO>
字段名
标识
字段类型
主键
说明
班级编号
ClassNo
Char(20)
是
Not null
课程编号
CourseN
Char(20)
是
Not null
班级姓名
Classname
Char(20)
否
Not null
3.3 编程性结构
在数据库Classroom_Class_Management的Class,Teacher,Security,Classgrade表创建Class_trigger1.Teacher_trigger1,Security_trigger1,Classgrade_trigger1触发器当执行Insert操作时,该触发器触发,显示提示信息“Classroom_Class_Management提示:数据插入成功”
3.4 数据操作
建立数据库
create database Classroom_Class_Management;
建立数据表
(1)保安基本信息表的建立
create table Security(
SNo Char(20) Not null unique,
SName Char(10) Not null,
Sex Char(2) Not null,
Age Char (10) Not null,
Ontime Char(20) Not null,
Offtime Char(20) Not null,
RoomNo Char(10) Not null unique,
primary key(SNo,RoomNo),
foreign key(RoomNo) refenrence ClassRoom,
)
教室:Classroom(RoomNo, RongLiang)
课程:Course(CourseNo,RoomNo,CourseName,Week,Time,Jie)
教师:Teacher(TNo,CouseNo, Tname)
班级:Class(ClassNo,CourseNo,ClassName)
(2)课程基本信息表的建立
create table Class(
CourseNo Char(20) Not null unique,
CourseName Char(20) Not null,
Week Char (10) Not null,
Day Char(10) Not null
Jie Char(20) Not null
RoomNo Char(10) Not null unique,
primary key(CourseNo,RoomNO),
foreign key(RoomNo) reference Classroom,
)
(3)班级基本信息表的建立
create table Classg(
ClassNo Char(20) Not null unique,
ClassName Char(20) Not null,
CourseNo varchar(MAX) Not null,
primary key(ClassNo,CouseNo),
foreign key(CourseNo) reference Course,
)
(4)教师基本信息表
create table Teacher(
TNo Char(20) Not null unique,
TName Char(10) Not null,
CourseNo Char(20) Not null unique,
foreign key(CouseNo) reference Course,
)
,
建立视图
(1)用于查询和更改保安基本信息的视图定义如下:
create view Security (保安编号,姓名,性别,年龄,教室,教室编号上下班时间)
as
select*
from Security
)
(2) 用于查询和更改课程基本信息的视图定义如下:
create view Course (课程名称,课程编号,周次,星期,节次教室编号)
as
select*
from Course
)
查询
查找数据库老师是否有空:
select CourseNo
from Teacher,Course
where Teacher.Tname=””
查找计机1班的星期一的第一节课在哪里上
select RoomNo
from Course,Class,ClassRoom
where ClassName=’计机1’ and time=’Monday’ and Jie=’1’
增加:
insert into Teacher values(’1’,’Mary’,’English’)
删除:
delete from teacher
where TNo=’1’
修改:
alter table teacher set TNo=’1’;
4. 物理设计
存放日志文件,存在稳定的移动硬盘上,系统采用立即的数据库修改技术,记录检查点,用来发生故障的数据库恢复。
5. 设计总结
数据库是我们专业一门非常重要的课程,不论是考研还是实际工作都有着重要的意义。这学期通过数据库的学习和实验,我收获良多。
平时在进行数据库的理论学习时感觉很简单,SQL语言的语法也很浅显易懂,不过通过这次实验,还是重新对这门课有了更深的认认识。虽然SQL语言基本的语法很简单,不过自己也没有记过,因此写的时候还老是丢三落四的,总是要翻翻书,说明对SQL语言的掌握还是不牢固。其次,虽然SQL语言的基本语法很简单,但是也是博大精深的,或者说,其实我们课本上介绍的只是相当相当之基础的东西,在做实验的过程中才发现有很多问题都不了解,还有很多函数都没有听过,更不要提使用了。因此在完成本次实验的过程中,遇到不会的知识点或者问题,就利用了一下网络资源,搜索相关的知识,一边学习,一边完成实验,好在网上介绍的知识点一般都是有例子辅佐的,大大减轻了我理解的难度。再次,通过完成本次实验,使我对MySql有了充分的认识,这个软件真的很强大,也很好用,使我充分体会到了使用数据库的方便性。
简要来说,在完成本次实验的过程中,除了熟悉了书上介绍的SQL语言的增删查改等基本操作外,还对老师介绍的相对较少的触发器,游标,存储过程及事务等知识有了更进一步的了解,同时,在网络的帮助下,我认识并学习了一些书上没有介绍的知识。比如规则的绑定,各种实用的函数如字符串截取,时间转换等等,让我对SQL语言有了更深的了解。总之,本次实验使我既巩固了所学,又增长了知识。当然,目前的我对数据库知识的掌握还是非常肤浅的,不过我会继续努力,不断学习的。
展开阅读全文