资源描述
数据库原理 试验汇报
一 、试验目标
1、 利用数据库设计方法完成某学校老师管理系统数据库设计。设计数据库概念模型和关系数据模型。设计每个关系字段名称、数据类型、数据长度。
2、 熟悉Access关系数据库管理系统。依据试验1设计结果创建关系数据库,定义数据表,定义主键,完成数据插入、删除和更新操作。
3、 使用SQL设计老师管理系统数据库简单查询和复杂查询。掌握SELECT语句基础语法。掌握单表和多表投影查询、选择查询、排序查询、累计函数查询SQL设计方法。
二、试验内容及步骤
1、写出 ‘某学校老师管理系统’中每个实体、联络属性
teacher (tno,tname,tsex,tage,tbirth)
dept (dno,dname )
class (cno,cname)
item (ino,iname,ilead)
讲授 (room)
参与 (achieve )
2、画出老师管理系统E-R模型图
Teacher
Class
Teacher
Item
1
1
n
n
n
m
讲授
包含
参与
achieve
ino
iname
ilead
tage
tbirth
room
cno
cname
dname
tno
tname
tsex
dno
2、 将E-R模型图转换成关系数据模型
teacher&dept : teacher (tno,tname,tsex,tage,tbirth,dno)
class&teacher : class (cno,cname,tno,room)
item&teacher : 参与 (tno,ino,achieve)
3、 设计每个关系模式字段名
4、 为每个关系模式设计试验数据
5、 使用SQL设计老师管理系统数据库查询
(1) 查询全部老师基础信息,并按老师年纪降序排列
SELECT teacher.*
FROM teacher
ORDER BY teacher.tage desc
(2) 查询全部课程信息
SELECT class.*
FROM class
(3) 查询全部女老师信息,要求显示老师姓名、性别、年纪、出生日期和
所讲授课程,并按出生日期升序排序
SELECT teacher.tname, teacher.tsex, teacher.tage, teacher.tbirth, teacher_ame
FROM teacher_class INNER JOIN teacher ON teacher_class.tno = teacher.tno
WHERE (((teacher.tsex)="女"))
ORDER BY teacher.tbirth
(4) 查询参与某项目标老师姓名、性别、年纪,并按年纪升序排序
SELECT teacher_item.ino, item.iname, teacher.tname, teacher.tsex, teacher.tage
FROM teacher, item, teacher_item
WHERE (teacher_item.ino="i3") AND (item.ino=teacher_item.ino)
AND (teacher.tno=teacher_item.tno)
ORDER BY teacher.tage
(5) 统计每位老师讲讲课程数量,要求输出老师名称、课程数量
SELECT teacher.tname, Count(*) AS cno_num
FROM teacher_class INNER JOIN teacher ON teacher_class.tno = teacher.tno
GROUP BY teacher.tname;
(6) 查询讲授2门以上课程老师号
SELECT teacher_class.tno
FROM teacher_class
GROUP BY teacher_class.tno
HAVING (Count(teacher_o))>2
(7) 统计每个项目参与老师人数,要求输出项目号、项目人数
SELECT teacher_item.ino, Count(teacher_item.tno) AS tno_num
FROM teacher_item
GROUP BY teacher_item.ino
三、试验结果
1、查询全部老师基础信息,并按老师年纪降序排列
2、查询全部课程信息
3、查询全部女老师信息,要求显示老师姓名、性别、年纪、出生日期和
所讲授课程,并按出生日期升序排序
4、查询参与某项目标老师姓名、性别、年纪,并按年纪升序排序
5、统计每位老师讲讲课程数量,要求输出老师名称、课程数量
6、 查询讲授2门以上课程老师号
7、统计每个项目参与老师人数,要求输出项目号、项目人数
四、问题回复
1、数据库设计过程包含哪些步骤?你认为哪个步骤最关键,为何?
数据库设计包含:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施阶段、数据库运行和维护阶段。需求分析。需求分析阶段是数据库设计第一步,是后续各个阶段基础,它需要正确分析用户对系统要求,分析是否正确、完善,将直接影响整个数据库系统性能。
2、概念模型和数据模型有何区分和联络。
概念模型,用来描述数据及数据之间联络,反应了最终用户综合性信息需求。它使数据库设计人员在设计初始阶段,摆脱计算机系统及DBMS具体技术问题,和具体数据管理系统无关。概念数据模型必需换成逻辑数据模型,才能在DBMS中实现。概念数据模型内容包含关键实体及实体之间关系。在概念数据模型中不包含实体属性,也不用定义实体主键。这是概念数据模型和逻辑数据模型关键区分。
数据模型,这是用户从数据库所看到模型,是具体DBMS所支持数据模型,逻辑数据模型反应是系统分析设计人员对数据存放见解,是对概念数据模型深入分解和细化。
3、Access数据库设计视图、数据视图和SQL视图有何区分?
设计视图,利用可视化窗口来进行查询设计,方便添加查询对象和条件。
数据视图,以表格形式显示查询结果。
SQL视图,显示是用SQL语句编写查询命令。
4、怎样将两个字段同时定义为主键?
按住Ctrl键,用鼠标点击要选择多个字段,选完后松开Ctrl键,按工具栏上‘主键’按钮,即可同时定义多个字段为主键。
5、SQL设计和调试中,你碰到印象最深问题是什么?你是怎么处理?
语句语法正确,却因为符号格式产生错误,尤其是中英文混输时,格外轻易犯错,且不轻易发觉。处理方法:尽可能少用或不用汉字字符,以省去往返切换麻烦和避免符号格式犯错。
展开阅读全文