数据库

来源:互联网 发布:python中help的用法 编辑:程序博客网 时间:2024/06/05 02:42

范式

1NF  原子性

2NF 满足第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键

3NF 满足第二范式,且每个非主属性都不传递依赖于R的候选键

BCNF 第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖


索引

http://www.cnblogs.com/KissKnife/archive/2009/03/30/1425534.html           

聚集索引:在聚集索引中,叶结点也即数据结点,所有数据行的存储顺序与索引的存储顺序一致。

非聚集索引

非聚集索引与聚集索引相比:
       A)叶子结点并非数据结点
       B)叶子结点为每一真正的数据行存储一个“键-指针”对
       C)叶子结点中还存储了一个指针偏移量,根据页指针及指针偏移量可以定位到具体的数据行。
       D)类似的,在除叶结点外的其它索引结点,存储的也是类似的内容,只不过它是指向下一级的索引页的。

聚集索引是一种稀疏索引,数据页上一级的索引页存储的是页指针,而不是行指针。而对于非聚集索引,则是密集索引,在数据页的上一级索引页它为每一个数据行存储一条索引记录。

聚集索引和非聚集的区别

聚集索引和非聚集索引的根本区别是数据记录的排列顺序和索引的排列顺序是否一致,聚集索引表记录的排列顺序与索引的排列顺序一致,优点是查询速度快,因为一旦具有第一个索引值的纪录被找到,具有连续索引值的记录也一定物理的紧跟其后,从而缩小了搜索范围,对于返回某一范围的数据效果最好。

聚集索引的缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。
  非聚集索引指定了表中记录的逻辑顺序,数据记录的物理顺序和索引的顺序不一致,聚集索引和非聚集索引都采用了B树的结构,但非聚集索引的叶子层顺序并不与实际的数据页相同,而采用指向表中的记录在数据页中位置的方式。非聚集索引比聚集索引层次多,添加记录不会引起数据顺序的重组。在有大量不同数据的列上建立非聚集索引,可以提高数据的查询和修改速度。

在对聚集索引列查询时,聚集索引的速度要比非聚集索引速度快。

在对聚集索引列排序时,聚集索引的速度要比非聚集索引速度快。但是如果数据量比较大时,如10万以上,则二者的速度差别不明显。



0 0
原创粉丝点击