首页 百科知识 编辑表间关系

编辑表间关系

时间:2022-10-12 百科知识 版权反馈
【摘要】:在表与表之间建立关系,不仅可以确立表之间的关联关系,而且能够确保数据库的参照完整性。“级联删除相关记录”:用于限制“主键”表和“外键”表之间的相关联数据,使之始终是正确的,而且始终保持一致,相互兼容。在数据库中,编辑表间关系包括查看关系、修改关系、删除关系和打印表关系等。具体操作方法与建立表间关系基本相同。

3.3 编辑表间关系

在数据库中,各表之间一般存在一定的联系。在表与表之间建立关系,不仅可以确立表之间的关联关系,而且能够确保数据库的参照完整性(正确性和一致性)。表间通常存在一对一、一对多和多对多3种关系。参照完整性要求一张表中的记录与另一张表中的一条或者多条记录相对应。

3.3.1 建立表间关系

建立表间关系可以使用“关系”布局窗口。启动方法如下:

单击“数据库工具”选项卡,在“关系”组中单击“关系”按钮。如图3.17所示。

img81

图3.17 表间关系编辑器

在“关系”布局窗口中,可以通过右击空白处,利用快捷菜单的“显示相关表”(或者单击“关系工具”中的“设计”上下文命令选项卡,在“关系”组中单击“显示表”按钮),如图3.18所示,向“关系”布局窗口中添加表。也可以右击指定的表,利用快捷菜单的“隐藏表”,隐藏该表。

在“关系”布局窗口中,通过“主键”向“外键”的拖动,利用“关系编辑”界面(图3.19),编辑关联关系。其中:

“表/查询”下方的第一个下拉菜单选择的是“主键表”,第二个下拉菜单选择的是“主键表”对应的“主键”。

“相关表/查询”下方的第一个下拉菜单选择的是“外键表”,第二个下拉菜单选择的是“外键表”对应的“外键”。

“实施参照完整性”:用于限制“主键表”和“外键表”之间的相关联数据,使之始终是正确的,而且始终保持一致,相互兼容。即外键表中外键的取值必须是主键表中主键的值或者取空值(满足参照完整性约束)。

例如:在“学生”表中,专业号的取值只能是“专业”表中专业号的值,即只能是010102、020101、030101和040102(说明该学生的专业),或者取空值(说明该学生暂无专业)。如果勾选“实施参照完整性”选项,则在“专业”表中不能删除专业号为040102的记录,因为在“学生”表中存在该专业的学生记录,假设强行删除,则会破坏参照完整性约束;如果没有勾选“实施参照完整性”选项,则可以删除该记录,不过这时会出现“某学生的专业是学校没有的专业”的非法数据。

“级联更新相关字段”:用于限制“主键”表和“外键”表之间的相关联数据,使之始终是正确的,而且始终保持一致,相互兼容。即修改“外键表”中“外键”的值,则必须修改“主键”表中“主键”的值(满足参照完整性约束),反之亦然。

img82

图3.18 显示表

img83

图3.19 编辑关系

例如:在“专业”表中,如果把取值为040102的专业号改为040106,如果没有勾选“级联更新相关字段”选项,则不允许执行该修改操作,因为如果允许修改,“学生”表中的专业号040102,将成为学校没有的专业,从而破坏参照完整性约束。如果勾选“级联更新相关字段”选项,则允许执行该修改操作,而且把“学生”表中取值为040102的专业号会自动改为040106。

“级联删除相关记录”:用于限制“主键”表和“外键”表之间的相关联数据,使之始终是正确的,而且始终保持一致,相互兼容。即删除“外键”表中的记录,则必须在“主键”表中删除相关的记录,即“主键”表中“主键”的值与“外键”表中删除记录的“外键”的值相等的那些记录,反之亦然。

例如:在“专业”表中,如果删除专业号为040102的记录,如果没有勾选“级联删除相关记录”选项,则不允许执行该删除操作,因为如果允许删除,“学生”表中的专业号040102,将成为学校没有的专业,从而破坏参照完整性约束。如果勾选“级联删除相关记录”选项,则允许执行该删除操作,而且“学生”表中专业号取值为040102的记录会自动删除。

“实施参照完整性”“级联更新相关字段”和“级联删除相关记录”确保了数据的完整约束(实体完整性和参照完整性和用户定义完整性)。

【例3.5】在“例2.5学籍”数据库中,建立4张表之间的关联关系。操作如下:

(1)打开“例2.5学籍”数据库。

(2)单击“数据库工具”选项卡,在“关系”组中单击“关系”按钮。如图3.17所示。

(3)在“关系”布局窗口中,单击“关系工具”中的“设计”上下文命令选项卡,在“关系”组中单击“显示表”按钮,如图3.18所示,或者右击空白处,单击快捷菜单的“显示相关表”。

(4)选中“学生”“课程”“选课”和“专业”,单击“添加”按钮,在如图3.17所示的“关系”布局窗口中,便多出了4张表。

(5)在“学生”表中,鼠标指向“学号”并按下鼠标,然后拖向“选课”表的学号,会弹出“关系编辑”界面。如图3.19所示。

(6)在“表/查询”下方的第一个下拉菜单中选择主键表“学生”,第二个下拉菜单中选择相应的主键“学号”。

(7)在“相关表/查询”下方的第一个下拉菜单中选择外键表“选课”,第二个下拉菜单中选择相应的外键“学号”。

(8)根据需要可以选择勾选“实施参照完整性”“级联更新相关字段”或者“级联删除相关记录”。本例只勾选“实施参照完整性”。

(9)单击“联接类型”,如图3.20所示,选择默认的第1种联接方式,单击“确定”按钮。

img84

图3.20 联接属性

(10)在如图3.19所示的关系编辑器中,单击“确定”按钮。

(11)同理,建立“课程”表与“选课”表之间一对多关系;“专业”表与“学生”表之间一对多关系。完成所有关联关系的界面如图3.21所示。

img85

图3.21 “例2.5学籍”数据库中表间关系

3.3.2编辑表间关系

在数据库中,编辑表间关系包括查看关系、修改关系、删除关系和打印表关系等。具体操作方法与建立表间关系基本相同。

(1)查看和修改关系:可以通过“关系”布局窗口和“关系编辑”界面来浏览和编辑各表之间的关系。操作方法:

单击“数据库工具”选项卡,在“关系”组中单击“关系”按钮,在如图3.21所示的“关系”布局窗口中浏览和编辑关系。

双击两表之间的连线(或右击两表之间的连线,单击“编辑关系”),可以在弹出的“编辑关系”窗口中,浏览和编辑关系的详细信息。

(2)删除关系:用户不但可以编辑已有关系,也可以删除无用关系。双击关系连线,可以编辑关系;而右击关系连线,选择“删除”,可以删除关系。即单击“数据库工具”选项卡,在“关系”组中单击“关系”按钮;在如图3.21所示的“关系”布局窗口中,单击两表之间的连线,按“Delete”键,或右击两表之间的连线,单击“删除”。

(3)打印关系:使用各表之间的关系图,很容易说明数据库中各表之间的关系,必要时,可以打印关系图,以备后用。操作方法:

①单击“数据库工具”选项卡,在“关系”组中单击“关系”按钮。如图3.21所示。

②单击“关系工具”中的“设计”上下文命令选项卡,在“工具”组中单击“关系报告”按钮,打印预览界面如图3.22所示。

img86

图3.22 关系报告界面

③在打印预览界面中,设置打印格式,然后单击“打印预览”选项卡,在“打印”组中单击“打印”,进行打印输出。

3.3.3 子表嵌入主表

两个表之间一旦建立了关联关系,则在“主键”表(主表)和“外键”表(子表)之间便会自动建立参照关系,子表会自动嵌入主表。在主表的“数据表视图”中,通过单击“折叠”按钮(-)和“展开”按钮(+),来折叠或展开子表。

例如:在“例2.5学籍”数据库中,“学生”表与“选课”表的关联嵌入结果如图3.23所示。

img87

图3.23 子表嵌入主表界面

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈