第8讲 数据库完整性.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第8讲 数据库完整性.ppt》由会员分享,可在线阅读,更多相关《第8讲 数据库完整性.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第8 8讲讲讲讲 数据库完整性数据库完整性数据库完整性数据库完整性An Introduction to Database System8.18.1事务事务1.1.事务的概念:事务的概念:事务是一个操作序列。这些操作要么什么都做,要么都不做,是一个 不可分割 的工作单位。事务以BEGIN BEGIN TRANSACTIONTRANSACTION语句开始,以语句开始,以COMMIT(COMMIT(提交提交)语句或语句或ROLLBACKROLLBACK(回退或撤消回退或撤消)语句结束。语句结束。一个程序的执行可通过若干事务的执行序列来完成。2 2.事务的性质:事务的性质:为保证数据库的完整性,
2、事务必须具有下列四个性质:1.1.原子性原子性(automicity)一个事务中对数据库的操作,是一个不可分割的整体。2.2.一致性一致性(consistency)数据不会因事务的执行而遭受破坏。8.8.隔离性隔离性(isolation)在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样。4.4.持久性持久性(durability)一个事务一旦完成全部操作,它对数据库的所有更新应永久地反映在数据库中。8.28.2数据库的恢复数据库的恢复1.1.数据库的可恢复性定义?数据库的可恢复性定义?系统能把数据库从被破坏、不正确的状态,恢复到最近一个正确的状态,DBMS的这种能力称为数据库
3、的可恢复性2.2.故障类型故障类型)事务故障)系统故障8)介质故障8.88.8数据库的并发控制数据库的并发控制1.1.并发控制带来的三类问题:并发控制带来的三类问题:(1)丢失更新的问题(2)不一致分析问题(8)“脏数据”的读出。(在数据库技术中,未提交的随后又被撤消的数据为“脏数据”。)2.2.封锁技术封锁技术X封锁的规则称为PX协议,其内容为:任何企图更新记录R的事务必须先执行LOCK X(R)操作,以获得对该记录进行寻址的能力,并对它取得X封锁。如果未获得X封锁,那么这个事务进入等待状态,一直到获准X封锁,事务继续进行。简记为:先锁X,再执行,取不到,就等待。S封锁的规则称为PS协议:其
4、内容为:任何要更新记录R的事务必须先执行LOCK S(R)操作,以获得对该记录寻址的能力并对它取得S封锁。如果未获准S封锁,那么这个事务进入等待状态,一直到获准S封锁,事务才继续进行下去。当事务获准对记录R的要封锁后,在记录R修改前必须把S封锁升级为X封锁。简记为:先锁S,再执行,锁不到,就等待,若要修改则升X。为什么需要完整性?为什么需要完整性?防止不符合用户防止不符合用户“语义语义”的数据存入数据库中。的数据存入数据库中。例如:表示一个人的年龄的字段Age=-20例如:一名学生的学号为NULL例如:有一个00000学号的学生选了管理信息系统的课第8章 数据库完整性u数据库的完整性是指数据的
5、数据库的完整性是指数据的正确性正确性、有效性有效性和和相容性相容性,防止错误数据进入数据库,保证数据,防止错误数据进入数据库,保证数据库中数据的质量。库中数据的质量。u正确性是指数据的合法性;正确性是指数据的合法性;u有效性是指数据是否属于所定义的有效范围;有效性是指数据是否属于所定义的有效范围;u相容性是指描述同一现实的数据应该相同。相容性是指描述同一现实的数据应该相同。数据库中是否存在完整的数据关系到数据库系统能否数据库中是否存在完整的数据关系到数据库系统能否真实地反映现实世界。它是衡量数据库中数据质量好真实地反映现实世界。它是衡量数据库中数据质量好坏的一种标志,是确保正确的数据被存放在正
6、确的位坏的一种标志,是确保正确的数据被存放在正确的位置的一种手段。置的一种手段。数据完整性种类数据完整性种类 根据数据完整性机制所作用的数据库对象和范围不同,根据数据完整性机制所作用的数据库对象和范围不同,数据完整性可分数据完整性可分:实体完整性实体完整性 域完整性域完整性 引用完整性引用完整性 用户定义完整性用户定义完整性1 1.实体完整性实体完整性 实体是指表中的纪录,一个实体就是表中的一条纪录。实体是指表中的纪录,一个实体就是表中的一条纪录。完整性要求在表中不能存在完全相同的纪录,而且每条记完整性要求在表中不能存在完全相同的纪录,而且每条记录都要具有一个非空且不重复的主键值。这样就能保证
7、事录都要具有一个非空且不重复的主键值。这样就能保证事物的唯一性。物的唯一性。实现实体完整性的方法主要有主键约束、唯一索引、实现实体完整性的方法主要有主键约束、唯一索引、唯一约束和指定唯一约束和指定IDENTITY属性。属性。2、域完整性、域完整性 组成记录的列称为域,域完整性也可称为列完整性。组成记录的列称为域,域完整性也可称为列完整性。域完整性要求向表中指定列输入的数据必须具有正确的数域完整性要求向表中指定列输入的数据必须具有正确的数据类型、格式以及有效的数据范围。据类型、格式以及有效的数据范围。实现域完整性的方法主要有实现域完整性的方法主要有CHECK约束、外键约束、约束、外键约束、默认约
8、束、非空定义、规则以及在建表时设置的数据类型。默认约束、非空定义、规则以及在建表时设置的数据类型。第8章 数据库完整性8、参照完整性、参照完整性 参照完整性又称为引用完整性。参照完整性是指作参照完整性又称为引用完整性。参照完整性是指作用于有关联的两个或两个以上的表,通过使用主键和外键用于有关联的两个或两个以上的表,通过使用主键和外键或主键和唯一键之间的关系,使表中的键值在所有表中保或主键和唯一键之间的关系,使表中的键值在所有表中保持一致。持一致。实现参照完整性的方法主要有外键约束。实现参照完整性的方法主要有外键约束。主键主键是定义一个表中起主要作用的数据项,这些数据项的数据在表是定义一个表中起
9、主要作用的数据项,这些数据项的数据在表中是唯一的。中是唯一的。外键外键是定义一个表中的某数据项的数据,要参照另一个表的主键数是定义一个表中的某数据项的数据,要参照另一个表的主键数据。即没有在另一个表的主键数据中出现的数据,不允许在这个表的据。即没有在另一个表的主键数据中出现的数据,不允许在这个表的外键数据项中出现。外键数据项中出现。外键:依赖于别的表的数据外键:依赖于别的表的数据唯一键:在表中唯一,一张表可以有多个唯一键,正如可以识别你的唯一键:在表中唯一,一张表可以有多个唯一键,正如可以识别你的身份的可以是身份证,学生证,军人证身份的可以是身份证,学生证,军人证学生(学号,姓名,系号)系别(
10、系号,系名)“学生基本信息表”的主键是“学号”,“课程表”的主键是“课程号”,“学生选课表”的主键是“学号”和“课程号”两个字段。主键与唯一键的区别主键与唯一键的区别主要为:1、唯一键主要用在非主键的一列或多列上。2、唯一键允许该列上存在NULL值,而主键 决不允许出现这种情况。8、可以在一个表上设置唯一键,而在一个表中只能设置一个主键。第8章 数据库完整性4、用户定义的完整性、用户定义的完整性 用户定义的完整性是应用领域需要遵守的约束条件,用户定义的完整性是应用领域需要遵守的约束条件,其允许用户定义不属于其他任何完整性分类的特定业务规其允许用户定义不属于其他任何完整性分类的特定业务规则。所有
11、的完整性类型都支持用户定义完整性。则。所有的完整性类型都支持用户定义完整性。第8章 数据库完整性SQL ServerSQL Server实现数据完整性的具体方法实现数据完整性的具体方法 SQL Server实现数据完整性的主要方法有4种:约束、默认、规则和触发器。约束 约束通过限制列中的数据、行中的数据和表之间数据来保证数据完整性。完整性类型完整性类型约束类型约束类型完整性功能描述完整性功能描述域完整性DEFAULT(默认)插入数据时,如果没有明确提供列值,则用默认值作为该列的值CHECK(检查)指定某个列或列组可以接受值的范围,或指定数据应满足的条件实体完整性PRIMARY KEY(主码)指
12、定主码,确保主码不重复,不允许主码为空值UNIQUE(惟一值)指出数据应具有惟一值,防止出现冗余参照完整性FOREIGN KEY(外码)定义外码、被参照表和其主码SQL Server 2000约束的5种类型和其完整性功能第8章 数据库完整性8.1 非空约束8.2 唯一约束8.8 主码约束8.4 检查约束8.5 缺省值约束8.6 外码约束创建约束使用CREATE语句创建约束的语法形式如下:CREATE TABLE(,n ,n)其中,的格式和内容为:CONSTRAINT PRIMARY KEY|UNIQUE|FOREIGN KEY(列名)REFERENCES()|DEFAULT|CHECK 8.1
13、 非空约束非空(非空(NOT NULL)约束)约束非空约束用来强制数据的非空约束用来强制数据的域完整性域完整性,它用,它用于设定某列值不能为空。如果指定某列不于设定某列值不能为空。如果指定某列不能为空,则在进行插入记录时,此列必须能为空,则在进行插入记录时,此列必须要插入数据。要插入数据。在CRETE TABLE 中的属性定义后面加上NOT NULL关键字即可。例:建立一个“学生选课”表SC,Sno不能为空。CREATE TABLE SC(Sno CHAR(5)not null,Cno CHAR(8),Grade int );8.2 唯一约束唯一(唯一(UNIQUE)约束)约束唯一约束用来强制
14、数据的实体完整性,它唯一约束用来强制数据的实体完整性,它主要用来限制表的非主键列中主要用来限制表的非主键列中不允许输入不允许输入重复值重复值。唯一约束有如下特点:一个表中。唯一约束有如下特点:一个表中可以定义多个唯一约束;每个唯一约束可可以定义多个唯一约束;每个唯一约束可以定义到一列上,也可以定义到多列上;以定义到一列上,也可以定义到多列上;空值可以出现在某列中一次。空值可以出现在某列中一次。UNIQUE约束主要是用来确保不受主键约约束主要是用来确保不受主键约束的列上的数据的惟一性。束的列上的数据的惟一性。8.2 创建唯一约束1、通过企业管理器完成添加、删除和修改主键的操作、通过企业管理器完成
15、添加、删除和修改主键的操作 2、使用查询分析器创建、使用查询分析器创建UNIQUE约束约束使用CREATE语句创建约束的语法形式如下:CREATE TABLE(,n ,n)其中,的格式和内容为:CONSTRAINT PRIMARY KEY|UNIQUE|FOREIGN KEY(列名)REFERENCES()|DEFAULT|CHECK 例:创建课程表course,包含三个字段:课程号no,课程名name,学分credit,要求课程号满足唯一条件。Create table course(no char(10)unique,name varchar(20),credit int )例:创建一个表级
16、的创建一个表级的UNIQUE约束约束 CREATE TABLE test (event_name char(20),event_type char(20),event_time datetime,event_id int,UNIQUE (event_type,event_time)8.8 主码约束主码约束又称为主键约束主码约束又称为主键约束表中经常有一个列或列的组合,其值能唯一地标识表中的表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为每一行。这样的一列或多列称为表的主键表的主键,通过它可强制,通过它可强制表的表的实体完整性实体完整性。当创建或更改表时可通过定义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8讲 数据库完整性 数据库 完整性
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内