- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章数据库物理设计讲述
第六章 数据库物理设计 6.1.1 物理设计的步骤 数据库的物理设计通常分为两步: 确定数据库的物理结构 对物理结构进行评价,评价的重点是时间和空间效率 一、 确定数据库的物理结构 ⒈ 确定数据的存储结构 确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。 这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。 聚簇就是为了提高查询速度,把在一个(或一组)属性上具有相同值的元组集中地存放在一个物理块中。如果存放不下,可以存放在相邻的物理块中。其中,这个(或这组)属性称为聚簇码。 为什么要使用聚簇呢? ①使用聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇值不必在每个元组中重复存储,只要在一组中存储一次即可,因此可以节省存储空间。 ②聚簇功能可以大大提高按聚簇码进行查询的效率。 ⒉ 设计数据的存取路径 在关系数据库中,选择存取路径主要是指确定如何建立索引。 例如,应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。 3.确定数据的存放位置 为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。 例如,数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。 将表和索引分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。 ⒋ 确定系统配置 DBMS产品一般都提供了一些存储分配参数,供设计人员和DBA对数据库进行物理优化。 通常情况下,这些配置变量包括:同时使用数据库的用户数,同时打开的数据库对象数,使用的缓冲区长度、个数,时间片大小、数据库的大小,装填因子,锁的数目等等,这些参数值影响存取时间和存储空间的分配。 6.1.2 数据存储 数据库管理系统一般都提供多种存取方式。常用的存取方法有三类。 第一类是索引方法,目前主要是B+树索引方法; 第二类是聚簇方法; 第三类是HASH方法。 6.1.3 文件结构 顺序文件组织 记录根据“搜索码”的值顺序存储。 堆文件组织 一条记录可以放在文件中的任何地方,只要该地方有空间存放这条记录。记录是没有顺序的。一般一个关系就使用一个单独文件。 散列文件组织 在记录的某个属性上计算一个散列函数。散列函数的结果确定记录应放到文件的哪个块中。 6.2 索引与散列 6.2.1 索引的概念 数据库系统中索引有两种基本的索引类型: 顺序索引:基于值的顺序排序。 散列索引:基于将值平均分布到若干散列桶中。一个值所属的散列桶是由一个函数决定的,该函数称为散列函数。 6.2.2 散列(HASH)的概念 散列方法的主要思想是根据结点的关键码值来确定其存储地址: 以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。 检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行快速检索。 6.3 SQL中的索引定义 索引是对数据库表中一个或多个列的值进行排序的结构。 数据库中的索引是由表中的一列或多列字段值以及相应的指向表中物理标识这些值的数据页的逻辑指针构成的。 建立索引参照以下原则: 在经常检索的列上创建索引(如经常在where子句中出现得列)。 在表的主键、外键上创建索引。 在经常用于表间连接的字段上建立索引。 一般而言,如下情况的列不考虑在其上创建索引: 在查询中几乎不涉及的列。 很少有唯一值的列(即包含太多重复值得列,如性别字段)。 数据类型为text、ntext或image的列。 只有较少行数的表没有必要创建索引。 当写的性能比查询更重要时,应少建或不建索引。 SQL Server 2005 中常用的索引类型 : 聚集索引 非聚集索引 唯一索引 复合索引 索引视图 全文索引 XML索引 使用SSMS创建索引 第一步:新建索引 第二步:设置索引信息 6.3 SQL中的索引定义 使用create index 命令创建索引,它的形式为 create index index name on relation name (attribute list) attribute list 是构成索引搜索码的关系属性列表。 【例】 为sales数据库中的Product表创建一个唯一聚集索引,依据字段ProductID进行排序。 USE sales GO CREATE UNIQUE CLUSTERED INDEX ProID_index ON Pro
文档评论(0)