学习书《数据库系统教程》第三版 作者:施伯乐

1、什么是索引?

       a、在关系数据库中,索引是表或视图在数据库中的一种结构,他可以使对应的表的SQL语句执行更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。

       b、 根据数据库的功能,可以在数据库设计器中创建四种索引:普通索引、唯一索引、主键索引和聚集索引;

         普通索引:

            这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建:

            创建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);

            修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);

            创建表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) )

        唯一索引:

            唯一索引是不允许其中任何两行具有相同索引值的索引。

            当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。

            创建唯一索引的几种方式:

            创建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);

            修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); ;

            创建表的时候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );

      主键索引:

        数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。

        在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。有关主键的更多信息,请参见定义主键。

        提示尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键索引。




2、数据库中的几种键。

     a、超键:在关系中能唯一标识元组(行)的属性或属性集称为关系模式的超键。

     b、候选键:不含有多余属性的超键称为候选键,也就是在候选键中,若再删除属性,就不是键了。(是候选键就是超键,是超键不一定是候选键)。

    c、主键:用户选作元组标识的候选键称为主键。

    d、外键:如果模式R中的属性K是其他模式的主键,那么K在模式R中称为外键。值的取值为null或者他的主键值。