数据库的物理结构设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.6 数据库物理结构设计
•数据库在物理设备上的存储结构与存取方法称为数
据库的物理结构,它依赖于给定的计算机系统。
•为一个给定的逻辑数据模型选取一个最适合应用环
境的物理结构的过程,就是数据库的物理设计。
•充分了解应用环境,详细分析要运行的事务,以获得选择物理数据库设计所需参数
•充分了解所用RDBMS的内部特征,特别是系统提供的存取方法和存储结构
•关系数据库物理设计的内容
–为关系模式选择存取方法(建立存取路径)
–设计关系、索引等数据库文件的物理存储结构
•物理数据库设计所需参数
-数据库查询事务(查询的关系,查询条件所涉及的属性,连接条件所涉及的属性,查询的投影属性)-数据更新事务(被更新的关系,每个关系上的更新操作条件所涉及的属性,修改操作要改变的属性值)-每个事务在各关系上运行的频率和性能要求
其他需考虑的问题:
目标DBMS支持的特性、功能和选项;
主机计算机系统的特性和能力;
磁盘存储配置;
数据量。
数据库物理设计步骤:
1.数据库逻辑模式调整
2.文件组织与存取设计
3.数据分布设计
4.安全模式设计
5.确定系统配置
6.物理模式评估
1数据库逻辑模式调整
将与平台无关的描述数据库逻辑结构的关系模式及其视图转换为所选定的具体DBMS平台可支持的基本表和视图,并利用DBMS提供的完整性机制设计定义在基本表上的面向应用的业务规则。
(1) 实现目标数据库基本表和视图
遵循目标数据库的语法规则或变通
(2)设计基本表业务规则
利用目标DBMS提供的Check、断言、触发器等完成完整性约束
2文件组织与存取设计
(1)分析事务的数据访问特性
•使用事务/表交叉引用矩阵,分析系统內重要事务对各基表的访问情况,确定事务访问哪些基本表,对哪些基本表执行了何种操作,并进一步分析各操作涉及到的基本属性表。
将所有事务路径映射到表中;
确定哪些表最常被事务访问;
分析选出的包含了这些表的事务。
•估计各事务的执行频率,单位时间内事务的执行次数,分析事务中的每个数据访问操作对各个基表的相关属性的操作频率。
•对每张基本表,汇总所有作用于该表的各事务的操作频率信息,得到:该表是否被频繁访问、该表中哪些属性列的访问频率较高和作用于这些属性上的操作类型和查询条件类型。
根据事务数据访问特性分析结果,可以对基本表设计成更为有效的文件组织和索引方式。
(2)了解并选择数据库文件结构
每种DBMS平台都提供一种或若干种数据库文件结构,设计者应当了解目标DBMS提供的各种数据库物理结构的机制,根据应用系统的特点,为基本表和数据库选择合适的文件结构。
选择文件组织方式:
确定每个基本表的有效文件组织方式。(如果目标DBMS允许)
•堆
•HASH
•索引顺序存取方法(ISAM)
•B+树
堆(无序的):(下面情况较适合)
1)当数据批量加载到表时;
2)表只有几页长;
3)每当访问表时都要检索表中的每条记录;
4)当表有其他的访问结构时,例如索引键,则堆存储可用来保存空间。
当仅访问表中的选定记录时,堆文件不合适。
HASH:(在下面情况下并不适合)
1)当记录是基于Hash字段值的模式匹配进行检索时。
(例如检索成员号以‘M2’开始的所有成员)2)当记录是基于HASH字段值的范围进行检索时。3)当记录是基于一个其他列而不是基于HSAH列检索时。
4)当记录是基于HSAH字段的一部分进行检索时。5)当HSAH列被经常更新时。
ISAM(索引顺序存取方法):
支持基于准确键匹配、模式匹配、值的范围和制定的部分码。
B+树:
支持基于准确键匹配、模式匹配、值的范围和指定的部分键。其索引是动态的,随着表内容的增加而增加。
(3)设计存取路径
•为数据库文件设计合理的物理存储位置涉及数据分布
•为基本表设计索引机制
3 数据分布设计
(1)不同类型数据的物理分布
有基本表、索引、日志、数据库备份数据等,各类数据在系统中作用不同,使用频率不同,应根据实际情况放在合适的物理介质上。
➢数据库数据备份、日志文件备份等由于只在
故障恢复时才使用,而且数据量很大,可以
考虑存放在磁带上。
➢应用数据、索引和日志使用频繁,要求响应
时间短,必须放在支持直接存取的磁盘存储
介质上。
➢如果计算机有多个磁盘,可以考虑将表和索引分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。•可以将比较大的表分别放在两个磁盘上,以加快
存取速度,这在多用户环境下特别有效。
•可以将日志文件与数据库对象(表、索引等)放
在不同的磁盘以改进系统的性能。
(2)应用数据的划分和分布
➢根据数据的使用特征划分。
存取频率较高部分与存取频率较低划分。频繁使用分区中的数据可考虑建立B+树等多层索引,对非频繁使用分区中的数据可以不建或只建立单层索引;
可以将大的基本表划分多个分区,每个分区作为一个数据文件分别存储在不同的磁盘上。
➢根据时间、地点划分不同分区。
(3)派生属性数据分布
➢将派生属性作为基表中单独一列;➢派生属性不出现在基表中。
(4)关系模式的反规范化
模式规范化和查询效率之间的权衡。