数据库讲义10.ppt

上传人:s****8 文档编号:67330251 上传时间:2022-12-24 格式:PPT 页数:23 大小:122KB
返回 下载 相关 举报
数据库讲义10.ppt_第1页
第1页 / 共23页
数据库讲义10.ppt_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《数据库讲义10.ppt》由会员分享,可在线阅读,更多相关《数据库讲义10.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第十章 数据库完整性1、掌握完整性约束条件、掌握完整性约束条件2、掌握完整性控制机制、掌握完整性控制机制2、掌握、掌握SQL中的完整性方法,中的完整性方法,1 完整性约束条件完整性约束条件2 完整性控制完整性控制3 SQL的完整性实现的完整性实现本章要求:本章要求:本章内容:本章内容:请选择内容请选择内容返回返回12/20/20221数据库系统第十章 数据库完整性完整性检查:完整性检查:DBMS提供一定的机制来检查数据库中的数提供一定的机制来检查数据库中的数 据,看其是否满足语义规定的条件。据,看其是否满足语义规定的条件。数据库的完整性数据库的完整性:指数据的正确性和相容性。指数据的正确性和相

2、容性。作用:作用:防止数据库中存在不符合语义的数据,防止错误防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。主要防范对象是不符合语义的数据。信息的输入和输出。主要防范对象是不符合语义的数据。数据库的安全性:数据库的安全性:保护数据库,防止非法存取和恶意破坏保护数据库,防止非法存取和恶意破坏 主要防范对象是非法用户和非法操作。主要防范对象是非法用户和非法操作。作用不同,目标一致作用不同,目标一致1 完整性约束条件完整性约束条件完整性约束条件完整性约束条件12/20/20222数据库系统第十章 数据库完整性完整性约束条件是对数据完整性约束条件是对数据语义语义上的要求上的要求模式定义时对

3、数据类型等的说明是对数据模式定义时对数据类型等的说明是对数据语法语法上的要求上的要求1、完整性约束条件作用的对象、完整性约束条件作用的对象 关系关系 若干元组间、关系之间的联系的约束若干元组间、关系之间的联系的约束 元组元组 元组中各个字段间的联系的约束元组中各个字段间的联系的约束 列列 类型、取值范围、精度、排序等约束条件类型、取值范围、精度、排序等约束条件2、静态约束和动态约束、静态约束和动态约束 静态约束:静态约束:确定状态时,数据对象所应满足的约束条确定状态时,数据对象所应满足的约束条件,是反映数据库状态合理性的约束。件,是反映数据库状态合理性的约束。动态约束:动态约束:数据库从一种状

4、态转变为另一种状态时,数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,是反映数据库状态新、旧值之间所应满足的约束条件,是反映数据库状态变迁的约束。变迁的约束。12/20/20223数据库系统第十章 数据库完整性3、完整性约束条件分类(、完整性约束条件分类(P304)(1)静态列级约束静态列级约束 对一个列的取值域的说明。对一个列的取值域的说明。对数据类型的约束对数据类型的约束 规定每一列数据的类型、长度、精度等。规定每一列数据的类型、长度、精度等。对数据格式的约束对数据格式的约束 规定日期数据的格式或组合数据各部分的次序及规定日期数据的格式或组合数据各部分的次序及 含义等。

5、含义等。对取值范围或取值集合的约束对取值范围或取值集合的约束 如:学生成绩的取值范围为如:学生成绩的取值范围为0100,性别为男女,性别为男女 对空值的约束对空值的约束 列是否可以取空值。列是否可以取空值。其他约束其他约束12/20/20224数据库系统第十章 数据库完整性(2)静态元组约束)静态元组约束 规定元组中各个列之间的约束关系。如:对一个包规定元组中各个列之间的约束关系。如:对一个包含职称和工资的元组,规定教授的工资不能低于含职称和工资的元组,规定教授的工资不能低于2000元。元。(3)静态关系约束)静态关系约束 一个关系的各个元组之间或若干关系之间的约束。一个关系的各个元组之间或若

6、干关系之间的约束。实体完整性约束:实体完整性约束:元组的码必须唯一。元组的码必须唯一。参照完整性约束:参照完整性约束:外键只能取被参照关系的码值外键只能取被参照关系的码值 或空值。或空值。统计约束:统计约束:某个字段值与多个元组的统计值之间某个字段值与多个元组的统计值之间 的关系。的关系。(4)动态列级约束)动态列级约束 修改列定义或列值时应满足的约束条件。修改列定义或列值时应满足的约束条件。修改列定义时的约束修改列定义时的约束12/20/20225数据库系统第十章 数据库完整性 如:一个已存在空值的列,不能修改为不许空的列。如:一个已存在空值的列,不能修改为不许空的列。修改列值时的约束修改列

7、值时的约束 规定新旧值之间的关系。如新值不能小于旧值。规定新旧值之间的关系。如新值不能小于旧值。(5)动态元组约束)动态元组约束 元组中某个列被修改时,与其他列之间必须满足的约元组中某个列被修改时,与其他列之间必须满足的约束条件。如学员的职务改为班长时,班长津贴要与之相符束条件。如学员的职务改为班长时,班长津贴要与之相符(6)动态关系约束)动态关系约束 关系新旧状态之间的约束。如银行划款,划出帐户要关系新旧状态之间的约束。如银行划款,划出帐户要增加一条划出记录,划入帐户要增加一条划入记录,且款增加一条划出记录,划入帐户要增加一条划入记录,且款值要相等。值要相等。12/20/20226数据库系统

8、第十章 数据库完整性2 完整性控制完整性控制1、DBMS的完整性控制机制的完整性控制机制 定义功能,提供定义完整性约束条件的机制定义功能,提供定义完整性约束条件的机制 检查功能,检查用户操作是否违背了完整性约束条件检查功能,检查用户操作是否违背了完整性约束条件 拒绝违背完整性约束条件的用户操作,保证数据完整性拒绝违背完整性约束条件的用户操作,保证数据完整性 完善的完整性控制机制应允许用户定完善的完整性控制机制应允许用户定义前述六类完整性约束条件义前述六类完整性约束条件12/20/20227数据库系统第十章 数据库完整性 拒绝操作对立即执行约束,仅拒绝刚执行的更新语拒绝操作对立即执行约束,仅拒绝

9、刚执行的更新语句,但对延迟执行约束,要拒绝整个事务,把数据库回句,但对延迟执行约束,要拒绝整个事务,把数据库回滚到事务执行前的状态。滚到事务执行前的状态。如银行转帐应遵循借贷平衡原则,这类事务应该是如银行转帐应遵循借贷平衡原则,这类事务应该是延迟执行约束。延迟执行约束。2、立即执行约束和延迟执行约束、立即执行约束和延迟执行约束事务中更新语句事务中更新语句执行完后就进行执行完后就进行完整性检查完整性检查12/20/20228数据库系统第十章 数据库完整性例如:在学生表例如:在学生表S中,学生的年龄不的低于中,学生的年龄不的低于18,也不得高,也不得高于于25的约束中的约束中 D 约束作用的对象为

10、年龄属性约束作用的对象为年龄属性SA O 当插入或修改学生记录时当插入或修改学生记录时 A SA=18 and SA15),PRIMARY KEY(S#););CREATE TABLE C(C#CHAR(4)NOT NULL UNIQUE,CN VARCHAR(20)NOT NULL,PRIMARY KEY(C#););格式:格式:CHECK(条件)条件)12/20/202220数据库系统第十章 数据库完整性CREATE TABLE SC(S#CHAR(8)NOT NULL,C#CHAR(4)NOT NULL,G CHAR(1),),PRIMARY KEY(S#,C#)FOREIGN KEY(

11、S#)REFERENCES S ON DELETE CASCADE,FOREIGN KEY(C#)REFERENCES C ON DELETE RESTRICT););组合主键组合主键来自来自S中的外键中的外键若若S中某学生记录被删除中某学生记录被删除SC中该生选课记录全删中该生选课记录全删 若某课程有人选修,则若某课程有人选修,则C中该课程选课记录不能删中该课程选课记录不能删来自来自C中的外键中的外键12/20/202221数据库系统第十章 数据库完整性又如:定义职工表又如:定义职工表 EMP(ENO,ENAME,DNO),),部门表部门表 DEPT(DNO,DNAME)CREATE TAB

12、LE DEPT(DNO CHAR(4)NOT NULL UNIQUE,DNAME CHAR(12)NOT NULL,PRIMARY KEY(DNO););CREATE TABLE EMP(ENO CHAR(5)NOT NULL UNIQUE,ENAME CHAR(8)NOT NULL,DNO CHAR(4),),PRIMARY KEY(ENO)FOREIGN KEY(DNO)REFERENCES DEPT ON DELETE SET NULL,););若某部门被撤消若某部门被撤消则该部门原职工则该部门原职工的的DNO置为空值置为空值12/20/202222数据库系统第十章 数据库完整性5、说明

13、、说明 用用SQL可在基本表定义时来定义完整性检查可在基本表定义时来定义完整性检查 优:简单、清晰优:简单、清晰 缺:不够灵活、功能不强(如插入、修改时的完整性检查)缺:不够灵活、功能不强(如插入、修改时的完整性检查)此外此外,用用SQL还可在基本表定义时来定义还可在基本表定义时来定义缺省(缺省(default)格式:格式:DEFAULT值值USERNULL功能:在该列未输入值时,以指定值填入功能:在该列未输入值时,以指定值填入用户指定的值用户指定的值填入用户标识符填入用户标识符填入填入NULL DEFAULT汉汉,例如,在例如,在S表中,若有民族属性,在定义表中,若有民族属性,在定义S时可如下进行:时可如下进行:CREATE TABLE S(,MZ VARCHAR(10););12/20/202223数据库系统

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁