第5章 索引与数据完整性[60页]
- 格式:pptx
- 大小:1016.95 KB
- 文档页数:30
第5章索引与数据完整性约束一、索引的用途与概念1.MySQL中访问表中的行,最常用的是顺序访问和索引访问。
2.索引的概念:根据表中一列或若干列按照一定顺序建立的列值与记录之间的对应关系表。
(存储在索引文件中)像不像图书的目录?3.索引的用途:在表的某些列上创建了索引之后查找数据时可以直接根据该列上的索引找到对应行的位置,从而加快了查找速度。
4.一个表中可以创建多个索引,基于一个字段也可以创建多个索引。
二、索引的分类1.B树索引:最常用a)普通索引i.只包含索引关键字indexii.对建立索引的列没有唯一性要求b)唯一性索引i.关键字uniqueii.创建索引的列,或列的组合值必须唯一c)主键索引i.关键字primary keyii.只能在创建主键约束时自动创建d)全文索引i.关键字fulltextii.只能在varchar或text类型的列上创建iii.对于大规模的数据集,通过alter table或create table命令创建全文索引要比把记录插入带有全文索引的空表更快。
2.HASH(哈希)索引:速度较快a)不需要建立树结构,但是所有的值都保存在一个列表中,这个列表指向相关页和行。
三、创建索引1.create index语句创建索引a)格式:create [unique|fulltext|spatial] index 索引名[using btree|hash]on table_name(索引列[(length)] [asc|desc] )其中:using子句表示索引的类型,默认为btree; length表示使用索引列的前多少个字符创建索引,这在索引列值较长的情况下比较有用。
如在blob或text列上创建索引。
b)例题:例5.1 create index st on student(stuname(4) asc);查看索引的命令: show index from 表名例如:show index from student;例5.2 创建复合索引。
索引索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序.索引文件和表的.DBF文件分别存储,并且不改变表中记录的物理顺序.提高查询的速度一:索引分为主索引、候选索引、唯一索引,普通索引。
1:主索引( 学号,准考证,身份证号,等编号……)在指定字段或表达式中不允许出现重复值的索引。
建立主索引的字段可以看作是主关键字,一个表只能有一个主关键字,所以一个表只能创建一个主索引。
2:候选索引候选索引和主索引具有相同的特性,建立候选索引的字段可以看作是候选关键字,所以一个表可以建立多个候选索引。
3:唯一索引 UNIQUE唯一索引是为了保持同早期版本的兼容性,它的“唯一性”是指索引项的唯一,而不是字段值的唯一。
具有重复索引字段只保持最前面的一个在目标文件中。
保留记录号最小的1条记录4:普通索引只是对表相关的关键字段进行排序在一个表中可以建立多个普通索引、多个唯一索引、多个候选索引,但只能建立一个主索引。
从结构上分:单索引IDXINDEX ON <字段名> TO <索引文件名>USE 职工INDEX ON 工资 TO GM结构复合索引索引CDX多个索引可以创建在一个索引文件中,这种索引叫复合索引Index on <表达式>tag <标识名>[ascending][descending] [unique/candidate]UNIQUE 唯一索引Candidate 候选索引省略以上普通索引A:索引文件的主文件名与表名同名,扩展名为CDXB:随表文件的打开而打开.注:主索引不能用命令创建.设置当前索引set order to [n]/<索引标识名>N>=0 0原文件数据完整性在数据库中数据完整性是指保证数据正确的特性,数据完整性一般包括实体完整性、域完整性和参照完整性。
一:实体完整性与主关键字实体完整性是保证表中记录惟一,即在一个表中不允许有重复的记录。
第5章数据完整性【学习目标】Microsoft SQL Server 2005系统提供了一系列保证数据完整性的方法和机制,例如约束、默认值和规则等。
其中约束技术是应用最为广泛的保证数据完整性的方法。
本章将主要介绍有关数据库完整性的技术与方法。
本章学习要点:◆数据完整性的基本概念与类型◆约束的概念与类型◆默认值的概念与类型◆规则的概念与类型【学习导航】数据完整性是指数据库系统中数据在逻辑上的一致性和准确性,是保证数据库中数据质量的一种重要手段,是数据库设计好坏的一项重要指标,同时也是现代数据库系统的一个重要特征。
我们都有在网上注册帐户的经历,在注册信息的时候,我们经常会遇到用户名已经存在、密码少于规定的长度、电子邮件必填、出生日期有效、身份证号码是否正确等一系列的限制,实际上这些限制就是保证数据完整性的一些手段,主要的目的就是为了保证用户所填写的内容正确、有效。
本章主要内容见图5-1所示的学习导航。
图5-1 本章学习导航5.1 概述当对数据库进行一系列的操作后,如添加、修改、删除后,数据可能会出现被破坏或相关数据不一致的情况,那么如何防止和解决这些问题的出现呢?这不仅仅需要管理人员和操纵人员的认真和负责,更需要建立一个保障机制,要么防止这些问题发生,要么发生这些问题时可以及时地发现。
数据完整性就是解决这些问题的一种机制。
数据完整性就是指存储在数据库中的数据的一致性和准确性。
在评价数据库的设计时,数据完整性是数据库设计好坏的一项重要指标。
根据数据完整性机制所作用的数据对象和范围不同,数据完整性可以分为实体完整性、域完整性、参照完整性和用户定义完整性4种。
1.实体完整性实体完整性,也可以称为行完整性。
实体是指表中的记录,一个实体就是表中的一条记录。
实体完整性要求在表中不能存在完全相同的记录,而且要求每条记录都要具有一个唯一的标识符,这种标识符一般称为主键值。
这样就可以保证数据所代表的任何事物都不存在重复、可以区分。
SQL实验六索引和数据完整性的使用索引是一种特殊的数据结构,它能够提高数据库的查询和性能。
索引可以加快数据的检索速度,减少数据库的IO操作,提高系统的响应速度。
在实际的数据库操作中,索引的使用是非常重要的,可以大大提高数据库的查询效率。
索引的使用可以分为两种情况:一种是在数据库表中创建索引,比如在一些字段上创建索引;另一种是在查询语句中使用索引,比如通过WHERE子句中的条件来使用索引。
在创建索引的时候,我们需要考虑到几个因素:索引的字段选择、索引的类型、索引的存储方式等。
索引的字段选择是非常重要的,一般来说,我们应该选择那些经常被查询的字段作为索引字段,这样可以提高查询的速度。
同时,我们还需要考虑到索引的唯一性,如果一个字段的值是唯一的,那么我们可以将其作为主键索引来使用,这样可以加快查询速度。
索引的类型有很多种,常见的有B树索引、哈希索引、全文索引等。
不同的索引类型适用于不同的场景,我们需要根据具体的需求来选择合适的索引类型。
索引的存储方式也有很多种,一般来说,索引可以存储在内存中,也可以存储在磁盘中。
如果数据量比较大,我们可以将索引存储在磁盘中,这样可以节省内存资源。
但是需要注意的是,将索引存储在磁盘中会增加IO操作的时间,降低查询速度。
在查询语句中使用索引也是非常重要的。
通过在WHERE子句中增加索引字段的条件,可以加快查询速度。
同时,我们还可以通过ORDERBY子句来对查询结果进行排序,这样可以进一步提高查询效率。
除了索引之外,数据完整性也是数据库设计中非常重要的一部分。
数据完整性保证了数据库中数据的一致性和准确性,可以防止数据的丢失和损坏。
数据完整性的实现可以通过主键约束、外键约束、唯一约束和检查约束等手段来实现。
主键约束可以保证表中每一行的数据都是唯一的,可以防止数据的重复和错误。
外键约束可以保证表与表之间的关系的有效性,可以防止数据的错误和不一致。
唯一约束可以保证一些字段的值在表中是唯一的,可以防止数据的重复和错误。