课堂实训
【实训目的】:
1. 熟悉数据库设计的步骤和方法;
2. 学会绘制E-R图;
3. 学会将E-R图转换成关系模型,并根据规范化理论进行优化;
4. 学会根据关系模型确定数据表和表中的字段,并建立完整性约束。
【实训内容】:
设某图书管理数据库中有三个实体集。一是“图书”实体集,属性有图书编号、书名、作者、价格、种类、ISBN、索书号、出版社、出版日期、馆藏地点等;二是“读者”实体集,属性有借书证号、姓名、性别、单位、类别、电话、电子邮件等;三是“管理员”实体集,属性有员工号、姓名、密码等。
图书和读者间存在“借阅”联系,每个读者可借阅多本图书,每种图书也可被多个读者借阅,每位读者每次借阅一本图书,有借书日期和还书日期;管理员与图书间存在着“管理图书”联系,每个管理员可以管理多种图书,每种图书可被多名管理员管理,管理员每次管理图书有变更日期和变更情况等;管理员和读者间存在着“管理读者”联系,管理员可管理多名读者,一名读者可被多位管理员管理,管理员每次管理读者,有办证日期、使用期限、注销日期等。
1.试画出E-R图,并在图上注明属性、联系的类型。
步骤:
(1)确定实体集,请完善下列图2-10~图2-12各实体集的E-R图。
图2-10 “图书”实体集E-R图
图2-11 “读者”实体集E-R图
图2-12 “管理员”实体集E-R图
(2)确定实体之间的联系及其类型(1:1、1:n、m:n),请完善下图2-13。
图2-13 图书管理数据库实体集联系图
(3)生成初步E-R图,请完善下图2-14。
图2-14 图书管理数据库E-R图
2.将E-R图转换成关系模型,并根据规范化理论进行优化。下列为未完成的关系模型,请补充以下空格内容完善关系模型。
图书(图书编号,索书号,书名,作者,价格,种类,ISBN,出版社,出版日期,馆藏地点),主键:图书编号;
读者(借书证号, ,性别,单位,类别,电话,电子邮件),主键: ;
管理员( , , ),主键: ;
借阅表(编号,索书号,借书证号, , ),主键:编号;
图书管理(图书编号,员工号,变更日期,变更情况);
读者管理( , , , , )
3.在关系模型的基础上,确定其数据表和表中的字段,并建立约束,以保证数据的完整性和一致性。请参考已完成的数据表2-16和表2-20,补充以下空格内容,完成其他数据表。
表2-16 图书表:用来存储图书的基本信息
字段名称 |
数据类型 |
长度 |
说明 |
图书编号 |
char |
15 |
主键 |
索书号 |
varchar |
50 |
不可为空 |
书名 |
varchar |
100 |
不可为空 |
作者 |
varchar |
100 |
不可为空 |
价格 |
Money |
|
不可为空 |
种类 |
char |
20 |
不可为空 |
ISBN |
char |
13 |
不可为空 |
出版社 |
varchar |
50 |
不可为空 |
出版日期 |
datatime |
|
不可为空 |
馆藏地点 |
Varchar |
50 |
|
表2-17 读者表:用来存储读者的基本信息
字段名称 |
数据类型 |
长度 |
说明 |
借书证号 |
char |
30 |
|
|
Varchar |
50 |
不可为空 |
性别 |
char |
2 |
|
单位 |
varchar |
100 |
不可为空 |
类别 |
char |
6 |
不可为空 |
电话 |
char |
15 |
|
电子邮件 |
varchar |
50 |
|
表2-18 管理员表:用来存储管理员的基本信息
字段名称 |
数据类型 |
长度 |
说明 |
|
char |
15 |
|
|
char |
8 |
不可为空 |
|
char |
|
不可为空 |
表2-19 借阅表:用来存储借还书信息
字段名称 |
数据类型 |
长度 |
说明 |
编号 |
int |
|
,标识列 |
索书号 |
Varchar |
50 |
外键,参照书籍表 |
借书证号 |
char |
30 |
外键,参照读者表 |
|
|
|
不可为空 |
|
|
|
|
表2-20 图书管理表:用来存储管理员对图书进行管理的信息
字段名称 |
数据类型 |
长度 |
说明 |
图书编号 |
char |
15 |
外键,参照书籍表 |
员工号 |
char |
15 |
外键,参照管理员表 |
变更日期 |
datetime |
|
|
变更情况 |
text |
|
|
表2-21 读者管理表:用来存储管理员对读者进行管理的信息
字段名称 |
数据类型 |
长度 |
说明 |
|
|
|
|
|
|
|
|
|
datetime |
|
不可为空 |
|
int |
|
不可为空 |
|
datetime |
|
|
课外训练
设某学生宿舍管理数据库中有三个实体集。一是“学生”实体集,属性有学号、姓名、性别、专业、班级、出生年月、家庭住址、联系方式等;二是“宿舍”实体集,属性有楼号、房号、床位数等;三是“班主任”实体集,属性有教师号、姓名、密码、联系方式等。
学生、宿舍和班主任间存在“住宿”联系,每名学生可入住一间宿舍,每间宿舍可被多名学生入住;班主任管理住宿情况,每位班主任可管理多名学生和多间宿舍的住宿情况,每位学生入住一间宿舍有入住时间和期限。
根据以上描述,完成以下任务:
1.试画出E-R图,并在图上注明属性、联系的类型。
2.将E-R图转换成关系模型,并根据规范化理论进行优化。
3.在关系模型的基础上,确定其数据表和表中的字段,并建立约束,以保证数据的完整性和一致性。