第七章 完整性与索引.ppt

第七章 完整性与索引

第七章 完整性和索引 7.1 数据库完整性 数据库的数据是从外界输入的,为了保证数据同一、符合规定,提出了数据完整性的概念。 7.1.1 数据完整性 数据完整性指数据的精确性和可靠性,数据库中的数据必须符合规定的语义并避免错误,分4类:实体完整性、参照完整性、域完整性、用户定义的完整性。 7.1 数据库完整性 1)实体完整性的创建 实体完整性:表的每一行在表中是唯一的实体。 主关键字PRIMARY KEY 指定表的一列或几列的组合值 在表中唯一地确定一行记录。 --实体完整性 IMAGE类型、TEXT类型、具有空属性的列不能为主关键字。 设计表-设置主健-… 7.1 数据库完整性 参照完整性:两个表(表之间)的主健和外健的数据应对应一致。表现为:从表(联系表)不能插入主表中不存在的关键字的数据行;删除从表的对应记录后才能删除主表的记录;主表的健值改变了,从表中该健值的所有引用必须进行一致的更改。 2)参照完整性的创建: 外关键字FOREIGN KEY 定义表之间的关系,一个表的列或候选健是另一个表的主健即外健,指定主健和外健相互关联—实现参照完整性。 7.1 数据库完整性 当主健所在的表更新主健列值时,相关联的外健所在表的外健值也更新;当向外健所在表插入数值时,相关联表的主健必须存在与外健相同的值。 IMAGE类型、TEXT类型不能是外健,最多包含16个列。 双击关系图-…-将主健拖向外健-… 3)用户定义的完整性: 某一数据必须满足的语义要求,实现工具:规则、默认值、约束、触发器。 域完整性:列要满足特定的数据类型。 7.1 数据库完整性 7.1.2 规则 规则是对表的列或数据类型中的值的规定和限制,是独立存在的数据库对象,二者需要绑定;规则与作用的表是相互独立的,用户可以分别对其进行修改。 规则和约束可以同时使用,表的列可以有一个规则及多个约束;约束用来限制列值,但约束不能直接作用于用户自定义的数据类型。 规则创建:选定要建规则的数据库-右击规则-… 7.1 数据库完整性 规则绑定:规则需要绑定才能与数据库表或用户自定义对象联系起来,一个列或数据类型只能与一个规则绑定,但一个规则可以绑定多个对象。 绑定UDT用于自定义的数据类型;绑定列用于绑定表中的列。 规则对已经输入的数据不起作用,规则的数据类型必须与所绑定的列的数据类型一致,规则不能绑定TEXT/IMAGE/TIMESTAMP的列。 绑定创建:…. 删除规则:….删除规则前,必须解除绑定。 7.1 数据库完整性 7.1.3 默认值对象 向没有输入数据的列自动插入的数据,一个列只能与一个默认值对象相绑定。与规则相似,默认值也是一个独立的数据库对象,需要与对象进行绑定。 绑定UDT用于用户自定义数据类型,列绑定用于绑定表的列。 如果列同时绑定了一个规则和一个默认值,那么默认值应该符合规则的规定。 7.1 数据库完整性 不能绑定默认值到一个用create table 或alter table创建或修改表时以DEFAULT选项指定了默认值的列。 默认值创建和绑定同规则。 7.1 数据库完整性 7.1.4 创建和使用约束 约束是自动保持数据库完整性的一种方法,其定义了表或单个列的数据的限制条件。 1)唯一性约束UNIQU: 可指定一个或多个列的组合具有唯一性,防止在列中输入重复的值,其中的列可以为空,最多含16个列;注意:主健不能再设定唯一性。 设计表-选任意字段-右击选属性-索引/健选项卡-新建-指定几个列-创建UNIQUE-约束-保存关闭。 7.1 数据库完整性 2)检查CHECK约束: 对数据设置检查条件,限制输入值。 对计算列不能做其他约束,但可做CHECK约束。--域完整性 设计表-CHECK约束选项卡-新建-输入约束表达式-… 7.2 索引 用户对数据库最频繁的操作是查询。一般情况下,查询时数据库需要对整个表进行搜索,当数据量很大时,这种搜索是相当耗时的。为此,引入了索引机制。 但也不能建立太多的索引,为什么? 7.2.1 索引概念 索引是一个单独的、物理的数据库结构,是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,是一个文件。 7.2 索引 7.2 索引 7.2.2 索引种类 唯一索引:索引的健值不重复。 主健索引:当定义主健时,将自动创建主健索引,是唯一索引的特例。 聚集索引:表中各记录的物理顺序与索引顺序相同,当建立一个聚集索引后,表中各记录就会按索引顺序重新排序。一个表只能有一个聚集索引(?)。聚集索引比非聚集索引有更快的数据访问速度,但在插入和更新记录时,聚集索引则较慢(?)。 7.2 索引 7.2.2 索引种类 各种约束详细说明??? 7.2 索

文档评论(0)

1亿VIP精品文档

相关文档