数据库系统原理及MySQL应用教程
上QQ阅读APP看书,第一时间看更新

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.非规范化数据表带来的不利影响是什么?