数据库概论分析.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 索引与数据库完整性;索引的概念 索引是根据表中一列或若干列按照一定的顺序建立的列值与记录之间的对应关系表; 2. 建立索引的目的 使用索引加速数据查询的速度,减少磁盘I/O的次数; 有序输出; 实施唯一性约束(与UNIQUE)。; 谁可以建立索引 DBA 或表的属主(即建立表的人) DBMS一般会自动建立以下列上的索引 PRIMARY KEY UNIQUE 谁维护索引 DBMS自动完成? 使用索引 DBMS自动选择是否使用索引以及使用哪些索引;3. 建立索引 一般格式: CREATE [UNIQUE] [CLUSTERED] INDEX 索引名 ON 表名 ( 列名 [ASC|DESC] [,列名 [ASC|DESC] ] ···); 说明 表名是要建立索引的基本表名字; 索引可建立在一列或多列上,各列名之间用逗号分隔;; ASC(升序)或DESC 指定索引值的排列次序,缺省为ASC; [UNIQUE]指明此索引的每一个索引值只对应唯一的数据记录。(唯一性) [CLUSTERED]创建聚簇索引,决定表中记录的物理顺序,一个表只能有一个聚簇索引。 建立了唯一性索引后,以后对数据的修改将自动进行唯一性验证。;例1:根据KC表的课程号列创建惟一聚簇索引。 例2:为KC表的课程名列创建索引。 例3:为XS_KC表创建学号列和课程号列的复合索引 ; 4. 删除索引 一般格式: DROP INDEX 表名.索引名称 说明: 用户只能删除自己建立的索引; 索引是不能修改的。; 5. 索引的说明 表越大,索引越能有效地改善查询的响应时间,对于少于100行的表建立索引可能不合算; 对WHERE子句中最常使用的列建立索引。对连接列建立索引,也可大大地改善连接查询的速度; 只要可能,尽量将索引列定义为NOT NULL; 一个表上最多可创建16个索引; 应根据需要建立索引,应当在查询速度和插入更新速度之间进行权衡。通常不要在一个表上建立多于三个索引。; 5.2 数据库的完整性(Integrity): 数据库的完整性是指保证数据库中数据的正确性(Correctness)、准确性(Accuracy)和有效性(Validity),防止不合语义的数据进入数据库。 ;例:学生的年龄必须是整数,取值范围为14-29; 学生的性别只能是男或女; 学生的学号一定???唯一的; 学生所在的系必须是学校开设的系;; 现代数据库技术采用对数据完整性的语义约束和检查来保护数据库的完整性,其实现方式有两种: 一种是通过定义和使用完整性约束规则 另一种是通过触发器和存储过程等过程来实现。 ; 完整性子系统:负责处理数据库的完整性语义约束的定义和检查,防止因错误的更新操作产生的不一致性。用户可以使用完整性保护机制,对某些数据规定一些语义约束。 当进行数据操作时,DBMS就由某个完整性语义约束的触发条件激发相应的检查程序,进行完整性语义约束检查。 若发现错误的更新操作,立即采取措施处理,或是拒绝执行该更新操作,或是发出警告信息,或者纠正已产生的错误。 ; DBMS的完整性子系统是负责数据库的完整性控制的。 它具有3个功能: 1.完整性约束条件定义机制 2.完整性检查机制 3.违约反应 ;5.1 完整性规则; 一个完整性约束条件可以看作是一个谓词(Predicate),所有正确的保持完整性的数据库状态都应当满足这个谓词。 例如,ENROLLS.GRADE≥0。 规则的触发条件规定何时使用该规则做检查。 “ELSE子句”规定当完整性约束条件不满足时须做的操作。; 完整性约束条件作用的对象可以是关系、元组和列三种。 列约束:列的类型、取值范围、精度、排序等约束; 元组约束:元组中各个属性列间的联系的约束; 关系约束:若干元组间、关系集合上以及关系之间的联系的约束; ; 在关系数据库中,数据的完整性规则一般有以下类型。 实体完整性规则:定义对数据库中的主键值的影响和限制; 参照完整性约束:定义在一个或多个关系中,属性值间的联系、影响和约束。 用户自定义完整性规则:定义属性的取值范围。; ① 实体完整性 保证一个表的每行是唯一的。要实现实体完整性,必须指定一个表中的一列或一组列作为表的主键。 通过声明表级或列级的完整性约束条件 PRIMARY KEY 来定义一个表的主键,并实现实体完整性。 例:将学号列定义为主键。 学号 char(6) primary key,;单属性构成的码有两种说明方法 定义为列级约束条件 定义为表级约束

文档评论(0)

dalianzi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档