当前位置:文档之家› 第六章 数据库物理设计

第六章 数据库物理设计



【例】为sales数据库中的Product表创建一个 复合索引,依据字段CategoryID和Price进行 排序。
USE sales GO CREATE INDEX C_P_index ON Product (CategoryID, Price)
6.4.评价物理结构

数据库的物理设计过程中需要对时间效率、空间


聚簇就是为了提高查询速度,把在一个(或一组)属 性上具有相同值的元组集中地存放在一个物理块中。 如果存放不下,可以存放在相邻的物理块中。其中, 这个(或这组)属性称为聚簇码。 为什么要使用聚簇呢?


①使用聚簇以后,聚簇码相同的元组集中在一起了,因而聚 簇值不必在每个元组中重复存储,只要在一组中存储一次即 可,因此可以节省存储空间。 ②聚簇功能可以大大提高按聚簇码进行查询的效率。

第三类是HASH方法。

1.
6.1.3 文件结构
顺序文件组织

记录根据“搜索码”的值顺序存储。 一条记录可以放在文件中的任何地方,只要该地 方有空间存放这条记录。记录是没有顺序的。一 般一个关系就使用一个单独文件。 在记录的某个属性上计算一个散列函数。散列函 数的结果确定记录应放到文件的哪个块中。

SQL Server 2005 中常用的索引类型 :

聚集索引
非聚集索引 唯一索引


复合索引
索引视图 全文索引 XML索引
使用SSMS创建索引

第一步:新建索引 第二步:设置索引信息
6.3 SQL中的索引定义

使用create index 命令创建索引,它的形式 为 create index <index name> on <relation name> (<attribute list>)
2.
堆文件组织

3.
散列文件组织

6.2 索引与散列

6.2.1 索引的概念

数据库系统中索引有两种基本的索引类型:

顺序索引:基于值的顺序排序。 散列索引:基于将值平均分布到若干散列桶中。一 个值所属的散列桶是由一个函数决定的,该函数称 为散列函数。

6.2.2 散列(HASH)的概念 散列方法的主要思想是根据结点的关键码值来 确定其存储地址:

通常情况下,这些配置变量包括:同时使用数据库的用户数, 同时打开的数据库对象数,使用的缓冲区长度、个数,时间 片大小、数据库的大小,装填因子,锁的数目等等,这些参 数值影响存取时间和存储空间的分配。
6.1.2 数据存储

数据库管理系统一般都提供多种存取方式。常用 的存取方法有三类。

第一类是索引方法,目前主要是B+树索引方法; 第二类是聚簇方法;

⒉ 设计数据的存取路径

在关系数据库中,选择存取路径主要是指确定如 何建立索引。

例如,应把哪些域作为建立聚集索引 等。

3.确定数据的存放位置

为了提高系统性能,数据应该根据应用情况将易 变部分与稳定部分、经常存取部分和存取频率较低 部分分开存放。
第六章 数据库物理设计
6.1.1 物理设计的步骤

数据库的物理设计通常分为两步:


确定数据库的物理结构
对物理结构进行评价,评价的重点是时间和空间效

一、 确定数据库的物理结构

⒈ 确定数据的存储结构

确定数据库存储结构时要综合考虑存取时间、存 储空间利用率和维护代价三方面的因素。

这三个方面常常是相互矛盾的,例如消除一切冗余数据 虽然能够节约存储空间,但往往会导致检索代价的增加, 因此必须进行权衡,选择一个折中方案。
效率、维护代价和各种用户要求进行权衡。

评价数据库物理主要是从定量估算各种方案的存
储空间、存取时间和维护代价入手,对估算结果
进行权衡、比较,选择出一个较优的合理物理结 结。

以关键码值K为自变量,通过一定的函数关系h(K)(称 为散列函数),计算出对应的函数值来,把这个值解 释为结点的存储地址,将结点存入到此存储单元中。
检索时,用同样的方法计算地址,然后到相应的单元 里去取要找的结点。通过散列方法可以对结点进行快 速检索。

6.3 SQL中的索引定义

索引是对数据库表中一个或多个列的值进行排 序的结构。 数据库中的索引是由表中的一列或多列字段值 以及相应的指向表中物理标识这些值的数据页 的逻辑指针构成的。


建立索引参照以下原则:

在经常检索的列上创建索引(如经常在where子句中出现得列)。 在表的主键、外键上创建索引。 在经常用于表间连接的字段上建立索引。

一般而言,如下情况的列不考虑在其上创建索引:

在查询中几乎不涉及的列。 很少有唯一值的列(即包含太多重复值得列,如性别字段)。 数据类型为text、ntext或image的列。 只有较少行数的表没有必要创建索引。 当写的性能比查询更重要时,应少建或不建索引。


例如,数据库数据备份、日志文件备份等由于只在故障 恢复时才使用,而且数据量很大,可以考虑存放在磁带 上。 将表和索引分别放在不同的磁盘上,在查询时,由于两 个磁盘驱动器分别在工作,因而可以保证物理读写速度 比较快。

⒋ 确定系统配置

DBMS产品一般都提供了一些存储分配参数,供设计 人员和DBA对数据库进行物理优化。

attribute list 是构成索引搜索码的关系属性列表。

【例】 为sales数据库中的Product表创建一个 唯一聚集索引,依据字段ProductID进行排序。
USE sales GO CREATE UNIQUE CLUSTERED INDEX ProID_index ON Product (ProductID)
相关主题