实体完整性也称为行完整性,是指表中的每一行都必须能够唯一标识,且不存在重复的数据行。在SQL Server 2012中,实体完整性可以通过主键约束和唯一性约束实现。图8—11违反唯一性约束使用T-SQL语句也可以实现唯一性约束。图8—12系统提示错误信息从约束效果看主键约束和唯一性约束,基本相同。......
2023-11-24
引用完整性也称为参照完整性约束,或关联完整性约束,或外部约束关系,或外部键约束。它保证在主键(在被参照表中,也称为主键表)和外部键(在参照表中,也称为外键表)之间的关系总是得到维护。例如,在Student表中有StudentⅠD列,在Mark表中也有StudentⅠD列。它们名称相同,表达意义也相同,所以它们之间存在参照完整性,即Mark表的StudentⅠD列取值参照Student表的StudentⅠD列取值。在SQL Server 2012中,引用完整性就是通过定义外键关系来实现的。
在表结构设计器中设置外键关系,可以在主键表中进行,也可在外键表中进行。在“SQL Server 2012”中通常在外键表中操作。例如打开Mark表,在表结构设计器中右键点击,在弹出的快捷菜单中选择“关系”选项,如图8-22所示,进入“外键关系”对话框,单击“添加”按钮,添加一个新外部关系对象,如图8-23所示。
图8—22 选择“关系”选项
图8—23 “外键关系”对话框
选择“表和列规范”选项,弹出“表和列”对话框。用户选择主键表和主键列,以及外键表和外部键列。注意:设置时主键表和外键表的列应该对应(例如Student表的StudentⅠD列对应Mark表的StudentⅠD列),而且列数也应相同,如图8-24所示。
图8—24 “表和列”对话框
确定退出后,在“外键关系”对话框中,展开“ⅠNSERT和UPDATE规范”选项,如图8-25所示。
图8—25 展开“INSERT和VPDATE规范”选项
“更新规则”和“删除规则”选项有四个选项设置:不执行任何操作、级联、设置Null、设置默认值。默认设置是“不执行任何操作”,即当表被设置有外部约束关系,则主键表不能修改涉及外部键值记录的主键值,主键表不能删除涉及外部键值的记录;外键表不能添加主键表主键值范围之外的记录,外键表不能将涉及主键表主键值的外部键值修改到主键值范围之外。例如修改Student表的某个StudentⅠD列值,正好这个StudentⅠD列值在Mark表的StudentⅠD列中存在,这时不允许修改。又例如删除Student表的某条记录,正好这条记录的StudentlD列值在Mark表的StudentⅠD列中存在,这时不允许删除。又例如向Mark表中添加新记录,这条新记录StudentlD列值不在Student表的StudentⅠD列值范围内,不允许添加。又例如修改Mark表中记录,这条记录StudentⅠD列值修改过后不在Student表的StudentⅠD列值范围内,不允许修改。当违反外部约束关系时,系统提示错误信息,如图8-26所示。
(www.chuimin.cn)
图8—26 违反外部约束关系
如果“更新规则”和“删除规则”选项设置为“级联”,上述操作有的可以执行。当主键表如果修改或删除涉及外部键值记录的主键值或记录,自动“级联”修改或删除涉及的外部键值或记录,即“级联”允许主键表执行任何操作。最后点击确定并保存,即外部关系约束设置成功。
按照上述操作,设置Mark表CourselD与Course表的CourselD列的外键关系。
引用完整性约束是表对象,在表的“键”中可以查看。引用完整性约束在表的“键”中以键对象的形式存在,它以”图标(灰色)表示,如图8-27所示。
图8—27 外键关系对象
如果外键关系对象需要重命名或删除,可以选择右键快捷菜单相应选项。如果修改外键关系设置,可以在“外键关系”对话框中操作,如图8-28所示。如果删除的表设置有外键关系,必须先删除参照表(外键表),再删除被参照表(主键表)。
图8—28 修改外键关系
使用T-SQL语句也可以实现外部约束关系。在ALTER TABLE语句中,使用FOREⅠGN KEY子句和REFERENCES子句实现。
使用T-SQL语句创建外键关系,FOREⅠGN KEY子句后面指定本表的外部键对应的列名,REFERENCES子句后面指定主键表表名和主键的列名。
当使用ⅠNSERT、UPDATE、DELETE语句违反外部约束关系时,系统也会提示错误信息。
有关数据库技术与应用教程的文章
实体完整性也称为行完整性,是指表中的每一行都必须能够唯一标识,且不存在重复的数据行。在SQL Server 2012中,实体完整性可以通过主键约束和唯一性约束实现。图8—11违反唯一性约束使用T-SQL语句也可以实现唯一性约束。图8—12系统提示错误信息从约束效果看主键约束和唯一性约束,基本相同。......
2023-11-24
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2023-11-24
如果要使用缺省参数创建一个学籍管理数据库StuData,可以使用如下命令:Create Database StuData如果希望为数据库或事务日志指定一个或者多个特定文件,增加一个On Primary子句,列出一个或者多个文件,并可为分配这个文件的空间指定一个可选值,其命令形式如下:Create Database StuDataOn Primary,;如果为了提高性能和可恢复性,则可以使用Log On子句来指定数据库的SQL Server事务日志将存储在一个与数据库对象不同的设备上,示例如下:Create Database StuDataOn Primary,Log On;GO......
2023-11-24
关键字Modify File用以表示按后面的文件说明,在指定的数据库中修改相应数据库文件。下面的语句可在学籍管理数据库增加一个新数据库文件,同时要修改原数据库文件StuFile l的最大文件尺寸为2000 MB。Alter Database StuDataAdd FileModify File又如,如果要删除学籍管理数据库文件StuFile2,则可使用如下命令:Alter Database StuDataRemove File StuFile2......
2023-11-24
SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。查询操作需要的数据源指基本表组,表间用“,”分割。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。......
2023-11-24
在SQL Server系统中,配置相关数据完整性约束,使数据库中的数据质量优良。数据完整性提供了这样的保障机制。如表5-1所示的内容是4种常用的数据完整性的实施方法。表5—1数据完整性的实施方法续表2.域完整性的实现实验目的熟悉“设计表”窗口的工作环境,掌握域完整性设置的操作方法。......
2023-11-24
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。人们经过探索提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法。工具在很大程度上依靠开发人员的经验来保证数据库模型能生成可行的设计方案和高性能的数据库。大多数的数据库设计方法都需要经历这三个步骤。根据所选择的设计方法按部就班地进行并最终获得一个实用的应用系统。......
2023-11-24
相关推荐