情景5数据完整性及完整性约束.ppt_第1页
情景5数据完整性及完整性约束.ppt_第2页
情景5数据完整性及完整性约束.ppt_第3页
情景5数据完整性及完整性约束.ppt_第4页
情景5数据完整性及完整性约束.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、场景5数据完整性和完整性约束,SQL Server数据库技术和应用,数据完整性和完整性约束,数据库中的数据是从外部输入的,由于各种原因,会出现无效输入或错误信息。确保输入数据满足要求已经成为数据库系统,尤其是多用户关系数据库系统的首要关注点。因此,提出了数据完整性。此场景将描述数据完整性的概念及其在SQL Server中的实现。目录,任务1:掌握数据完整性任务2:掌握数据约束的实现,任务1:掌握数据完整性,5.1完整性概念数据完整性是指数据的准确性和可靠性。它的提出是为了防止数据库中存在不符合语义规则的数据,防止由于错误消息的输入输出而导致的无效操作或错误消息。有四种类型的数据完整性:实体完整

2、性、域完整性、引用完整性和用户定义的完整性。5.1.1实体完整性(Entity Integrity),实体完整性规定表中的每一行都是表中唯一的实体。表中定义的UNIQUE、PRIMARYKEY和IDENTITY约束是实体完整性的体现。5.1.2域完整性,这意味着数据库表中的列必须满足特定的数据类型或约束。其中,约束条件包括值域、精度等规定。表中的检查、外键约束和默认、非空定义属于域完整性的范畴。5.1.3参照完整性,这意味着两个表的主键和外键的数据相互对应。它确保在具有主键的表中存在与表的外键相对应的行,也就是说,它确保表之间数据的一致性,并防止数据丢失或无意义的数据在数据库中传播。引用完整性

3、基于外键和主键之间的关系或外键和唯一键之间的关系。5.1.4用户定义的完整性。不同的关系数据库系统根据其不同的应用环境通常需要一些特殊的约束。用户定义的完整性是特定关系数据库的约束条件,它反映了特定应用程序中涉及的数据必须满足的语义要求。SQL Server提供了一种机制来定义和验证这种完整性,以便用统一的系统方法来处理它们,而不是使用应用程序来承担这种功能。其他完整性类型支持用户定义的完整性。5.2完整性的实现约束,5.2.1主键表通常有一个或多个唯一标识表中每一行的列,这一个或多个列称为表的主键,用于实现表的实体完整性。主键具有以下特征:(1)保证表中记录行的唯一性和可区分性;(2)每个表

4、中只能有一个主键;(3)主键可以由一个或多个字段组成;(4)主键不能为空或重复。5.2.1主键,示例5-1因为在学生信息表中,必须使用学生编号作为区分记录的唯一标记,所以您可以使用学生编号作为表的主键。如何完成设置?5.2.1主键,(1)打开SSMS(SQL Server Management Studio)管理器,依次展开每个节点,如图5-1所示,然后单击“设计”选项。5.2.1主键,(2)右键单击要设置主键的列,例如,在本例中选择右键单击样本号,然后在弹出的快捷菜单中选择设置主键选项,如图5-2所示。5.2.1主键,(3)完成后,该字段前面会显示一个键,表示设置成功,如图5-3所示。5.2

5、.1主键,(4)如果需要删除主键,右键单击样本号,选择删除主键选项,如图5-4所示。,5.2.1主键,第二种方法,使用T-SQL创建主键约束来定义主键约束的基本语句格式如下:ALTER TABLE NAmE ADD CONSTRAINT CONSTRAINT约束名称主键(列或列的组合),5.2.1主键,更常用的方法是在创建Student_info表时将主键设置写入SQL代码:创建表student _ info (sidchar (8)主键,sname varchar (10),sgender char (2), sbirth datetime,S depatchar(6),Saddr nvar

6、char (50),stelchar (14),5.2.2 UNIQUE约束,通过确保在列中不输入重复值来确保一个或多个列的实体完整性。 例如,公民标识号列不允许有重复的值,每个唯一约束必须创建一个唯一的索引。对于具有UNIQUE约束的列,不允许两行具有相同的索引值。与主键不同,SQL Server允许您为一个表创建多个唯一约束。5.2.2 UNIQUE约束,例5-2在学校课程管理中,不允许存在两个同名的课程,也就是说,在课程信息表中,Cname应该是唯一的,应该采用UNIQUE约束。如何操作它?5.2.2 UNIQUE约束,(1)打开SSMS(SQL Server Management St

7、udio)管理器,依次展开每个节点,如图5-5所示,然后单击“设计”选项。5.2.2 UNIQUE约束,(2)右键单击列以设置UNIQUE键,例如,在本例中右键单击Cname,然后在弹出的快捷菜单中选择Index/Key,如图5-6所示。5.2.2唯一约束,(3)单击“添加”按钮,选择如图5-7所示的按钮。5.2.2 UNIQUE约束,(4)选择Cname字段以设置唯一键。如图5-8所示,单击确定。5.2.2 UNIQUE约束,第二种方法是使用SQL语句来完成UNIQUE约束设置。定义UNIQUE CONSTRAINT的基本格式如下:约束约束名称唯一(列或列的组合),5.2.2 UNIQUE约

8、束。事实上,更常见的方法是在创建Student_info表时将唯一键设置写入到SQL代码中:创建表课程_ info (cid char (10),Cname varchar (20)唯一,cperiod tinyint,cc edit numeric (3,2),chartemchar(2),ctypenvarchar),5.2.3不为空。列的null值决定了表中的行是否可以包含null值。空值不同于零。空意味着没有输入。空通常意味着该值未知或未定义。不为空表示不允许为空。插入或修改数据时,约束条件为非空的列的值不允许为空,并且必须存在特定的值。5.2.3不为空,示例5-3学生编号是为同学设置

9、的。如果没有这样的同学,就不应该给他设置学号。因此,一旦有了学生号,就意味着学生必须存在,所以学生的名字不允许为空。那么,如何将学生姓名Sname字段设置为不为空呢?5.2.3不为空,(1)打开SSMS(SQL Server Management Studio)管理器,依次展开每个节点,如图5-9所示,然后单击“设计”选项。5.2.3不为空,(2)取消“允许空值”字段中的复选框,如图5-10所示。5.2.3 NOT NULL,第二种方法是使用T-SQL创建不允许为空的约束,常用方法是在创建Student_info表时将主键设置写入到SQL代码中:创建表student _ info (sid c

10、har (8)主键,Sname varchar (10)不为空,s genderchar (2),sbirth datetime,s departechar(6),saddr nvarchar (50),stelchar (14),5.2.4 CHECK,检查约束限制可以在一个数据表中定义多个数据表,5.2.4检查,示例5-4在供应链表中设置分数字段,其值范围在0100之间。第一种方法是使用SSMS(SQL Server Management Studio)管理器设置的。步骤如下:(1)打开SSMS管理器,依次展开每个节点,如图5-11所示,点击“设计”选项。5.2.4检查,5.2.4检查,(

11、2)右键单击字段“等级”,选择“检查约束”,如图5-12所示。,5.2.4检查,(3)选择“添加”按钮,在表达式中输入“等级=0,等级=100”,给标志命名,设置后点击“关闭”按钮,如图5-13所示。5.2.4 CHECK,如果要删除约束,可以点击上图所示的删除按钮。关于检查约束,还有以下几点需要说明:(1)多个检查约束可以应用于单个列;(2)检查约束不接受计算结果为假的值;(3)执行记录添加和修改语句时,验证检查约束,删除记录时,不验证检查约束。5.2.4 CHECK,第二种方法,使用T-SQL创建CHECK约束。定义此约束的基本语句的格式如下:ALTER TABLE NAmE ADD CO

12、NSTRAINT CONSTRAINT NAmE CHECK(表达式),5.2.4 CHECK,更常用的方法是在创建SC表时将CHECK约束设置写入到SQL代码中:CREATE TABLE SC (Sid Char(8),Cid char (10),等级数值(5,2) check(等级=0和等级=100),5.2.5默认值,默认定义是指向表中添加新行时分配给表中某列的默认数据。使用缺省定义,可以避免非空值数据为空的错误;其次,它可以加快用户的输入速度。默认定义也可以由SSMS或T-SQL语句创建。当绑定到列或用户定义的数据类型时,如果插入时没有显式提供值,则默认值指定一个值,并将其插入到对象绑

13、定到的列中。因为默认值定义与表一起存储,所以当表被删除时,默认值定义将被自动删除。5.2.5 DEFAULT,示例5-5在Student_info信息表中,我们默认将学生部设置为G02001。第一种方法,使用SSMS(SQL Server Management Studio)管理器,包括以下步骤:5.2.5 DEFAULT,(1)打开SSMS(SQL Server Management Studio)管理器设置。依次展开每个节点,如图5-14所示,点击“设计”选项。5.2.5 DEFAULT,(2)选择 Sdepart 字段,在窗口下部有一个列属性对话框,在 default value or

14、binding 中输入 G02001 ,如图5-15所示。5.2.5 DEFAULT,第二种方法,使用T-SQL创建默认定义。具体如下:更改表格名称添加结构名称国家名称的默认常量,5.2.5默认值,这在创建学生信息表格时更常用。您可以将默认设置写入到SQL代码中:create table student _ info(sidchar(8)主键,sname varchar (10)不为null,s gender char (2),sbirth datetime,S depatchar(6)default g 02001,saddr nvarchar (50),stelchar (14),5.2.

15、6外键,外键约束为表中的一列或多列数据提供了引用完整性,这限制了表中受约束列的值必须已经存在于被引用的表中。例如,在图5-16中,在学生的课程选择表中,所选课程的代码必须存在于课程表中,否则学生选择的课程就不存在,即没有意义。为了保证两个或多个表中数据的一致性,引入了外键约束。5.2.6外键,5.2.6外键,例5-6在SC课程选择信息表中,我们将Cid字段的外键设置为课程表中的Cid字段。第一种方法,使用SSMS(SQL Server Management Studio)管理器,包括以下步骤:5.2.6外键,(1)打开SSMS(SQL Server Management Studio)管理器设置,依次展开每个节点,如图5-17所示,然后单击“设计”选项。(2)在打开的“设计”对话框中,右键单击Cid字段,从下拉菜单中选择“关系”选项,如图5-18所示。5.2.6外键,(3)打开“外键关系”对话框,选择“添加”按钮,进入外键编辑状态。如图5-19所示。5.2.6外键

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论