ImageVerifierCode 换一换
格式:PPTX , 页数:24 ,大小:235.65KB ,
资源ID:1020725      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-1020725.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(零点起飞学SQL Sever之SQL Server 28 数据的完整性11.pptx)为本站会员(依依)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

零点起飞学SQL Sever之SQL Server 28 数据的完整性11.pptx

1、第6章 SQL Server 2008数据完整性,数据完整性是SQL Server用于保证数据库中数据一致性的一种机制,以防止非法信息存在于数据库中。SQL Server 2008提供了许多措施来保护数据的完整性,如数据类型、主键、外键、默认值、约束和规则等。,6.1 什么是数据完整性,所谓数据完整性是指存储在数据库中的数据是正确的,而且在逻辑上符合现实情况的要求。设计数据完整性的目的是为了防止数据库中存在不符合语义规定的数据,防止错误信息的输入和输出。数据库完整性一般分为4类:实体完整性、域完整性、引用完整性和用户定义完整性。,6.1.1 实体完整性,实体完整性的基本思想是标识数据库中存放的

2、每一个实体。实体就是数据库所要标识的一个实际的物体和事件。实体完整性要求每个实体都保持唯一性。SQL Server 2008实现实体完整性主要是通过唯一索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性,强制表的标识符列或主键来实现的。,6.1.2 域完整性,实体完整性考虑究竟应该向表输入哪些值,而域完整性则考虑如何限制向表中输入的值的范围。它要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。域完整性可以通过强制域完整性限制类型(通过使用数据类型)、限制格式(通过使用CHECK约束和规则)或限制可能值的范围(通过使用FOREIGN KEY约束、CHECK约束、

3、DEFAULT定义、NOT NULL定义和规则)来实现。,6.1.3 引用完整性,引用完整性又称为参照完整性。在输入或删除记录时,引用完整性用于维持参照表和被参照表之间的数据一致性。在SQL Server 2008中,引用完整性通过主键(PRIMARY KEY)和外键(FOREIGN KEY)约束来实现。,6.1.3 引用完整性,强制引用完整性时,SQL Server 2008将防止用户执行下列操作。在主表中没有关联的记录时,将记录添加或更改到相关表中。更改主表中的值,这会导致相关表中生成孤立记录。从主表中删除记录,但仍存在与该记录匹配的相关记录。对于AdventureWorks数据库中的Sa

4、lesOrderDetail表和Product表,引用完整性基于SalesOrderDetail表中的外键(ProductID)与Product表中的主键(ProductID)之间的关系。此关系可以确保销售订单从不引用产品表中不存在的产品。,6.1.4 用户定义的完整性,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件。SQL Server 2008提供了一些工具来帮助用户实现数据完整性,其中最主要的是规则(Rule)、约束(Constraint)和触发器(Trigger)。,6.2 什么是约束,约束是SQL Serv

5、er提供的自动保持数据库完整性的一种方法。它是数据库服务器强制用户必须遵从的业务逻辑。它通过限制字段中的数据、记录中的数据和表之间的数据来保证数据的完整性。SQL Server 2008提供了下列约束机制来强制列中数据的完整性。PRIMARY KEY约束;UNIQUE约束;CHECK约束;DEFAULT定义;NULL;FOREIGN KEY约束。,6.2.1 使用主键约束PRIMARY KEY,PRIMARY KEY约束是指通过表的主键实现的实体完整性约束。为了能够唯一确定表中的数据行,通常会通过一列或几列来唯一地标识表中的行。这样的一列或多列称为表的主键。Purchasing.Purchas

6、eOrderDetail表中的PurchaseOrderID和PurchaseOrderDetailID列构成了针对此表的复合PRIMARY KEY约束。这确保了PurchaseOrderID和PurchaseOrderDetailID的组合是唯一的。,6.2.1 使用主键约束PRIMARY KEY,1建立PRIMARY KEY约束的规则2使用表设计器建立PRIMARY KEY约束3使用SQL语句建立PRIMARY KEY约束使用Transact-SQL语句定义PRIMARY KEY约束的语法格式如下。CONSTRAINT constraint_namePRIMARY KEY CLUSTERE

7、D|NOCLUSTERED(column_name,.n),6.2.2 使用唯一性约束UNIQUE,UNIQUE约束(唯一性约束)主要用于非主键列,以保证一列或者多列的组合值具有唯一性,以防止在列中输入重复值。当使用唯一性约束时,需要考虑以下几个因素。使用唯一性约束的字段允许为空值。一个表中可以允许有多个唯一索引。可以把唯一索引定义在多个字段上。唯一性索引用于强制在指定字段上创建一个唯一性索引。默认情况下,创建的索引类型为非聚类索引。,6.2.2 使用唯一性约束UNIQUE,1利用表设计器建立UNIQUE约束在Practice_JWGL数据库中,为用户信息表中的身份证号码字段列建立UNIQUE

8、约束的。2使用SQL语句建立UNIQUE约束使用Transact-SQL语句定义UNIQUE约束的语法格式如下:CONSTRAINT constraint_nameUNIQUE CLUSTERED|NOCLUSTERED(column_name,.n),6.2.3 使用检查约束CHECK,CHECK约束(检查约束)的主要作用是限制输入到一列或多列中数据的可能值,从而来保证SQL Server数据库中数据的域完整性。当使用CHECK约束时,需要考虑以下几个因素。一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关。每个CREATE TABLE语句中每个字段只能定义一个检

9、查约束。在多个字段上定义检查约束,则必须将检查约束定义为表级约束。当执行INSERT语句或UPDATE语句时,检查约束将验证数据。检查约束中不能包含子查询。,6.2.3 使用检查约束CHECK,1使用表设计器建立CHECK约束在Practice_JWGL数据库中,假如系统定义成绩信息表中的成绩字段采用的是百分制,那么就需要为成绩字段设置CHECK约束,来保证成绩输入的有效性。为成绩信息表中的成绩字段建立CHECK约束的。2使用SQL语句建立CHECK约束使用Transact-SQL语句定义CHECK约束的语法格式如下。CONSTRAINT constraint_nameCHECK NOT FO

10、R REPLICATION(logical_expression),6.2.4 使用默认值约束DEFAULT,DEFAULT定义(默认约束)是指在执行插入操作时,如果没有为列提供输入值时,则系统自动为列指定值。默认约束可以包括常量、函数等。当使用默认约束时,需要考虑以下几个因素。每个字段只能定义一个默认约束。如果定义的默认值长于该字段的允许长度,那么输入到表中的默认值将被截断。不能将默认约束加入到带有IDENTITY属性或者数据库类型为timestamp的字段上。如果字段定义为用户定义的数据类型,而且有一个默认绑定到这个数据类型上,则不允许该字段有默认约束。,6.2.4 使用默认值约束DEFA

11、ULT,1使用表设计器建立DEFAULT约束在Practice_JWGL数据库中,为班级信息表中的年级字段建立DEFAULT约束的。2使用SQL语句建立DEFAULT约束使用Transact-SQL语句定义约束的语法格式如下:CONSTRAINT constraint_nameDEFAULT constraint_expression FOR column_name,6.2.5 使用空值约束null,列的空值约束定义了表中数据行的特定列是否可以指定为空值。空值(NULL)不同于零(0)、空白或长度为零的字符串(如)。在SQL Server 2008中,允许空值的实现有两种方法:一是在表设计器中

12、设计列的时候,选择该列是否可以为空,默认可以为空;另外一种方法就是在用Transact-SQL语句创建数据表的时候,在对列的描述的时候附加NULL/NOT NULL来实现。,6.2.6 使用外键约束FOREIGN KEY,FOREIGN KEY约束(外键约束)是用于建立和加强两个表数据之间的连接关系的一列或多列。FOREIGN KEY约束并不仅仅可以与另一表的PRIMARY KEY约束相链接,它还可以定义为引用另一表的UNIQUE约束。在使用FOREIGN KEY约束时,需要注意以下几点。一个表最多只能参照253个不同的数据表,每个表也最多只能有253个FOREIGN KEY约束。FOREIG

13、N KEY约束不能应用于临时表。在实施FOREIGN KEY约束时,用户必须至少拥有被参照表中参照列的SELECT或者REFERENCES权限。FOREIGN KEY约束同时也可以参照自身表中的其他列。FOREIGN KEY约束,只能参照本身数据库的某个表,而不能参照其他数据库中的表。跨数据库的参照只能通过触发器来实现。,6.2.6 使用外键约束FOREIGN KEY,1使用SQL Server Management Studio建立FOREIGN KEY约束在Practice_JWGL数据库中,某个学生必定会属于具体的某个班级。因此,需要在班级实体和学生实体之间建立一对多的联系。需要定义班级

14、信息表中的班级编号为主键,而学生信息表中的班级编号为外键。为学生信息表中的班级编号字段建立FOREIGN KEY约束。,6.2.6 使用外键约束FOREIGN KEY,2使用SQL语句建立FOREIGN KEY约束使用Transact-SQL语句定义FOREIGN KEY约束的语法格式如下:CONSTRAINT constraint_nameFOREIGN KEY (column_name,.N)REFERENCES ref_table (ref_column ,.N),6.3 使用规则,规则是一个向后兼容的功能,用于执行一些与CHECK约束相同的功能。CHECK约束是用来限制列值的首选标准方

15、法。CHECK约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个CHECK约束。SQL Server 2008采用CREATE RULE命令来创建一个规则,其语法格式如下:CREATE RULE schema_name . rule_nameAs condition_expression ; ,6.3 使用规则,下例创建一个规则,用以限制插入该规则所绑定的列中的整数范围。当某个规则不需要的时候,可以使用DROP RULE命令删除规则,其语法格式如下。DROP RULE schema_name . rule_name ,.n ;,6.4 使用关系图,关系图(又称图表)是SQL Server 2008中一类特殊的数据库对象。它提供给用户直观地管理数据库表的方法。通过关系图,用户可以直观地创建、编辑数据库表之间的关系,也可以编辑表及其列的属性。在Practice_JWGL数据库中,创建关系图。,6.5 小 结,数据库完整性设计是数据库管理和开发人员需要学习和掌握的一个非常重要的内容,它是维护数据库中数据一致性的重要机制。本章在了解数据库中数据完整性基础知识的基础上,介绍了:约束与规则。其中约束更为通用。最后向读者展示如何用Transact-SQL语句来创建、使用和删除常见约束和规则。下一章将学习SQL Server 2008安全与权限管理。,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报