3.6 关系的完整性、规范化理解与应用实验
一、实验目的
1)了解关系模型的基本概念,掌握候选码和主码的确定。
2)掌握并应用完整性规则。
3)掌握关系规范化的定义和方法。
二、验证性实验
某同学开发了X公司员工管理系统,其中部门信息表和员工信息表分别如表3-18和表3-19所示。
表3-18 部门信息表
表3-19 员工信息表
请分析:
1)确定部门表和员工表中的候选码,并陈述理由。
部门表:部门代码,(负责人,部门名)
理由:部门代码可以唯一标识一个部门,负责人和部门名也可以唯一标识一个部门
员工表:员工代码
理由:员工代码能唯一标识一个员工
2)选择部门表和员工表的关键字。
部门表:部门代码
员工表:员工代码
3)在部门表和员工表的结构中标注主关键字。
部门表(部门代码,部门名,负责人,地点)
员工表(员工代码,姓名,家庭住址,联系电话,邮政编码,部门代码)
4)在员工表中确定可能的组合关键字,并陈述理由。
员工代码理由:只有员工代码能唯一标识一个员工
5)确定在部门表和员工表中共有的属性。
部门代码
6)指出哪个表中的属性是外关键字。
员工表中的部门代号是外关键字
7)确定哪个表是主表,哪个表是从表。
主表是员工表,从表是部门表
8)部门表和员工表是如何通过关键字实施数据完整性的。
部门表中,部门代号不能为空,这就保证了部门的存在性;
员工表中,员工代码不能为空,这说明有这样的员工;
三、设计性实验
1.仿照第1题,已知系信息表和学生信息表分别如表3-20和表3-21所示。
表3-20 系信息表
表3-21 学生信息表
请分析:
1)确定系信息表和学生信息表中的候选码,并陈述理由。
系信息表:
理由:
学生信息表:
理由:
2)选择系信息表和学生信息表的主码。
系信息表:
学生信息表:
3)在系信息表和学生信息表的结构中用下画线标注主关键字。
系信息表(系编号,系名,负责人,联系电话)
学生信息表(学号,姓名,性别,出生年份,系编号,家庭地址)
4)在学生信息表中确定可能的组合关键字,并陈述理由。
5)确定在系信息表和学生表中表示相同意思的属性。
系信息表的__________属性和学生信息表的________________属性
6)指出哪个表中的哪个属性是外关键字,这个外关键字的存在说明了两张表之间是什么联系?
7)确定哪个表是主表,哪个表是从表。
8)系信息表和学生信息表应如何实施3种数据完整性。
系信息表的实体完整性应怎么实施:_____________________________________
学生信息表的实体完整性应怎么实施:_______________________________
这两张表中的参照完整性应怎么实施的:________________________
2.某同学设计了图书在线交易系统,设计了如表3-22所示的订单表,请你用规范化理论将该表进行分解,使之满足3NF的规范化要求。
表3-22 订单表
四、观察与思考
1.有如表3-23和表3-24所示的两张表,如果向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?若不能插入,为什么?
表3-23 供应商关系S(主码是“供应商号”)
表3-24 零件关系P(主码是“零件号”,外码是“供应商号”)
A.(′037′,′绿′,null)
B.(null,′黄′,′T20′)
C.(′201′,′红′,′T20′)
D.(′105′,′蓝′,′B01′)
E.(′101′,′黄′,′T11′)
2.非规范化数据表带来的不利影响是什么?