数据库技术讲义 第10章 数据库完整性

数据库技术讲义 第10章 数据库完整性

ID:43215022

大小:186.50 KB

页数:25页

时间:2019-10-03

数据库技术讲义 第10章 数据库完整性_第1页
数据库技术讲义 第10章 数据库完整性_第2页
数据库技术讲义 第10章 数据库完整性_第3页
数据库技术讲义 第10章 数据库完整性_第4页
数据库技术讲义 第10章 数据库完整性_第5页
资源描述:

《数据库技术讲义 第10章 数据库完整性》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十章数据库完整性前言数据库的完整性是指数据的正确性和相容性。例如,学生的学号必须唯一;性别只能是男或女;本科学生年龄的取值范围为14-30等。数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。前言为了维护数据库的完整性,DBMS必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件称为数据库完整性约束条件,他们作为模式的一部分存入数据库中。而DBMS中检查数据是否

2、满足完整性条件的机制称为完整性检查。10.1完整性约束条件完整性检查是围绕完整性约束条件进行的,因此完整性约束条件是完整性控制机制的核心。完整性约束条件作用的对象可以是关系、元组、列三种。其中列约束主要是列的类型、取值范围、精度、排序等约束条件。元组的约束是元组中各个字段间的联系的约束。关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。10.1完整性约束条件完整性约束条件涉及的这三类对象,其状态可以是静态的,也可以是动态的。所谓静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件,它时反映数据库状态合理性的约束,这是最重要的一类完整性约束。动态约束时指数据

3、库从一种状态变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。10.1完整性约束条件一、静态列级约束静态列级约束是对一个列的取值域的说明,这是最常用也最容易实现的一类完整性约束,包括一下几个方面:1.对数据类型的约束(包括数据的类型、长度、单位、精度等)2.对数据格式的约束例如,规定学号的前两位表示入学年份,中间两位表示系的编号,后三位为顺序编号。出生日期的格式为YY.MM.DD。应该用触发器实现。10.1完整性约束条件3.对取值范围或取值集合的约束这是在创建表的时候定义约束。4.对空值的约束空值表示未定义或未知的值。NOTNULL约束,不定义

4、表示可以为空。altertabletablenamealtercolumncolnamedatatypenotnull

5、null10.1完整性约束条件5.其他约束例如关于列的排序说明,组合列等。CREATETABLETEMP(INTTHELOW,INTTHEHIGH,AVERAS(THELOW+THEHIGH)/2)10.1完整性约束条件二、静态元组约束。一个元组是由若干个列值组成的,静态元组约束就是规定元组的各个列之间的约束关系。例如订货关系中包含发货量、定货量等列,规定发货量不得超过定货量;教师关系中包含职称、工资等列,规定教授的工资不得低于1000元。10.1完整性约

6、束条件三、静态关系约束在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有:1.实体完整性约束例如主键约束,unique约束主码属性不能取空值,不能重复。创建一个主码的时候默认建立一个索引。一个属性作为主码可以直接写在属性定义后,当多个属性联合作为主码的时候必须放在表级定义。10.1完整性约束条件CREATETABLESC(SNOCHAR(4)NOTNULL,CNOCHAR(4)NOTNULLGRADEINT,PRIMARYKEY(SNO,CNO));10.1完整性约束条件可使用UNIQUE约束确保在非主键列中不输入重复值。尽管UNIQUE约

7、束和PRIMARYKEY约束都强制唯一性,但在强制下面的唯一性时应使用UNIQUE约束而不是PRIMARYKEY约束:非主键的一列或列组合。一个表可以定义多个UNIQUE约束,而只能定义一个PRIMARYKEY约束。允许空值的列。允许空值的列上可以定义UNIQUE约束,而不能定义PRIMARYKEY约束。10.1完整性约束条件如果在主码属性上没有索引,系统为了查找具有相同主码的值必须搜索整个关系,这个过程对于一个大型数据库是十分耗时的,甚至是不可行的。在SQLSERVER中设置主码约束的时候默认将建立一个聚簇索引,而UNIQUE默认是普通索引。在执行插入和修改操作的自动检查

8、约束。删除不处理。10.1完整性约束条件2.参照完整性约束FOREIGNKEY(sno)REFERENCESs(sno)ONDELETENOACTION前面说过外码引用必须是另一个表的主键。保证外码的取值必然是引用主码肯定存在的值。ONDELETE和ONUPDATENOACTION指定删除因错误而失败。CASCADE指定还将删除包含指向已删除行的外键的所有行。NOACTION和CASCADE选项。10.1完整性约束条件createtablesc(snochar(4)foreignkeyreferencess(sno

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。