2.2.3 建立表间关系
在数据库中,表和表之间并不是完全孤立的。各个表之间的内容通常存在关联性,这些具有关联性的内容往往是表中的主键和外键。
1.表间关系
表与表之间的关系有3种:一对一、一对多、多对多。
如果表1中的一条记录只能与表2中的一条记录相匹配,反之亦然,这种对应关系就是一对一的联系。
如果表1中的一条记录与表2中的多条记录相匹配,但是表2中的一条记录只能与表1中的一条记录相匹配,这种对应关系就是一对多的联系。
如果表1中的多条记录与表2中的多条记录相匹配,并且表2中的多条记录也与表1中的多条记录相匹配,这种对应关系就是多对多的联系。
2.参照完整性
参照完整性是指在表间关系建立后,在输入、修改、删除数据时,必须遵循的一种约束规则。如果在表间关系中设置了参照完整性,那么就不能在主表中没有相关记录时,将记录添加到相关表中;也不能在相关表中存在匹配记录时,从主表中将该记录删除;更不能在相关表中有相关记录时,更改主表中的主键值。
例如,在“选课成绩”表的“学号”字段输入学生的学号时,输入的学号值必须参照于“学生”表中学号的值。这就相当于在学生表中必须有该学生的学号,那么才能在“选课成绩”表中出现该学生的学号。
3.表间关系的建立
表间关系是通过主键和外键建立的。在建立表间关系时,必须把所有已打开的表关闭。在建立表间关系时如果出现错误,需检查并修改相关表的结构及表的内容。
【例2.9】建立“教学管理”数据库中的表间关系。
(1)关闭所有已打开的表。
(2)单击“数据库工具”选项卡“关系”组中的“关系”按钮,打开“关系”窗口,如图2.22所示。
图2.22 打开关系窗口
(3)单击“关系工具/设计”选项卡“关系”组中的“显示表”按钮,弹出“显示表”对话框,如图2.23所示。
图2.23 “显示表”对话框
(4)在“显示表”对话框中将所有的表添加到“关系”窗口中。
(5)判断各个表中的外键,并将外键字段拖到相应的主键字段上,松开鼠标左键,弹出“编辑关系”对话框,选中“实施参照完整性”“级联更新相关记录”“级联删除相关记录”复选框。例如,“选课成绩”表中具有外键“学号”,将其拖动到“学生”表主键“学号”上,松开鼠标左键,如图2.24所示。
图2.24 “编辑关系”对话框
(6)单击“创建”按钮,创建“学生”表与“选课成绩”表间关系。参考以上步骤,创建其他表间关系并保存。结果如图2.25所示。
建立关系后,两个表间相关联字段间出现一条关系线,主键的一端显示“1”,外键的一端显示“∞”,表示一对多联系。注意,在建立表间关系时,相关联的字段名称可以不同,但是数据类型必须相同,并且字段值之间必须具有匹配关系。
图2.25 “教学管理”数据库表间关系