- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章数据库完整性讲解
第十章 数据库完整性 前言 数据库的完整性是指数据的正确性和相容性。例如,学生的学号必须唯一;性别只能是男或女;本科学生年龄的取值范围为14-30等。数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。 完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。 前言 为了维护数据库的完整性,DBMS必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件称为数据库完整性约束条件,他们作为模式的一部分存入数据库中。而DBMS中检查数据是否满足完整性条件的机制称为完整性检查。 10.1 完整性约束条件 完整性检查是围绕完整性约束条件进行的,因此完整性约束条件是完整性控制机制的核心。完整性约束条件作用的对象可以是关系、元组、列三种。其中列约束主要是列的类型、取值范围、精度、排序等约束条件。元组的约束是元组中各个字段间的联系的约束。关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。 10.1 完整性约束条件 完整性约束条件涉及的这三类对象,其状态可以是静态的,也可以是动态的。所谓静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件,它时反映数据库状态合理性的约束,这是最重要的一类完整性约束。 动态约束时指数据库从一种状态变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。 10.1 完整性约束条件 一、静态列级约束 静态列级约束是对一个列的取值域的说明,这是最常用也最容易实现的一类完整性约束,包括一下几个方面: 1.对数据类型的约束(包括数据的类型、长度、单位、精度等) 2.对数据格式的约束 例如,规定学号的前两位表示入学年份,中间两位表示系的编号,后三位为顺序编号。出生日期的格式为YY.MM.DD。应该用触发器实现。 10.1 完整性约束条件 3. 对取值范围或取值集合的约束 这是在创建表的时候定义约束。 4. 对空值的约束 空值表示未定义或未知的值。 NOT NULL约束,不定义表示可以为空。 alter table tablename alter column colname datatype not null | null 10.1 完整性约束条件 5.其他约束 例如关于列的排序说明,组合列等。 CREATE TABLE TEMP (INT THELOW, INT THEHIGH, AVER AS (THELOW + THEHIGH)/2) 10.1 完整性约束条件 二、静态元组约束。 一个元组是由若干个列值组成的,静态元组约束就是规定元组的各个列之间的约束关系。例如订货关系中包含发货量、定货量等列,规定发货量不得超过定货量;教师关系中包含职称、工资等列,规定教授的工资不得低于1000元。 10.1 完整性约束条件 三、静态关系约束 在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有: 1.实体完整性约束 例如主键约束,unique约束 主码属性不能取空值,不能重复。创建一个主码的时候默认建立一个索引。一个属性作为主码可以直接写在属性定义后,当多个属性联合作为主码的时候必须放在表级定义。 10.1 完整性约束条件 CREATE TABLE SC (SNO CHAR(4) NOT NULL, CNO CHAR(4) NOT NULL GRADE INT, PRIMARY KEY(SNO,CNO)); 10.1 完整性约束条件 可使用 UNIQUE 约束确保在非主键列中不输入重复值。尽管 UNIQUE 约束和 PRIMARY KEY约束都强制唯一性,但在强制下面的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束: 非主键的一列或列组合。 一个表可以定义多个 UNIQUE 约束,而只能定义一个 PRIMARY KEY 约束。 允许空值的列。允许空值的列上可以定义 UNIQUE 约束,而不能定义 PRIMARY KEY 约束。 10.1 完整性约束条件 如果在主码属性上没有索引,系统为了查找具有相同主码的值必须有哪些信誉好的足球投注网站整个关系,这个过程对于一个大型数据库是十分耗时的,甚至是不可行的。 在SQL SERVER中设置主码约束的时候默认将建立一个聚簇索引,而UNIQUE默认是普通索引。 在执行插入和修改操作的自动检查约束。删除不处理。 10.1 完整性约束条件 2.参照完整性约束 FOREIGN KEY (sno) REFERENCES s(sno) ON DELETE
您可能关注的文档
最近下载
- 大学有机化学第1章绪论ppt课件.pptx VIP
- Unit 1 Happy Holiday Section B 1a-1d(学案)2025-2026学年人教版英语(2024)八年级上册.docx VIP
- 医美抗衰美容干细胞抗衰产品项目知识课件.pptx VIP
- 合肥市残疾人证课件.ppt VIP
- 牛津译林版初中英语新教材七年级上册全册单词表.xlsx VIP
- 《企业数字化转型之课件解决方案》课件.ppt VIP
- 工程临时用电施工组织设计.doc VIP
- 欧科PT300变频器说明书.pdf
- 2025年广东南粤集团有限公司招聘笔试备考试题及答案解析.docx VIP
- 飞行器总体设计.pptx VIP
文档评论(0)