数据库物理结构的设计应用参考资料
数据库的物理设计是对于给定的逻辑数据模型选取一个最适合应用环境的物理结构。数据库的物理结构指的是数据库在物理设备上的存储结构与存储方法,依赖于给定的计算机系统。
一、数据库物理设计概述
(一)数据库物理设计的定义
给定逻辑数据模型选取物理结构,数据库物理设计是根据逻辑数据模型选取合适的存储结构和存取方法以优化性能包括确定表结构索引分区和存储参数等确保数据高效访问和管理。
(二)数据库物理设计的步骤
1.确定数据物理结构
确定数据物理结构,即确定数据库的存取方法和存储结构。
数据库物理设计的步骤包括确定存储结构、存取方法、索引策略、数据分区和聚簇等,优化性能并满足需求。
2.对物理结构进行评价
对物理结构评价的重点是时间和效率。如果评价结果满足原设计要求,则可以进行物理实施:否则应该重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
数据库物理结构评价主要从存取效率、存储空间和维护成本三方面分析,通过性能测试验证设计是否满足需求,优化不合理结构的确保高效稳定运行。
二、数据库物理结构设计的内容和方法
(一)设计的依据与需求
1.分析事务获取参数
分析事务获取参数需依据事务频率、数据量、响应时间要求及并发用户数,结合业务需求确定访问径路、索引策略和存储结构,优化查询性能与资源利用率。
2.了解DBMS功能及环境
了解DBMS功能及环境是物理设计的基础需掌握存储结构索引机制并发控制等待性结合硬件配置。如存储容量i/O性能确保设计满足性能需求与系统兼容性。
(二)确定数据存取方法相关信息
3.数据库查询事务信息
包括查询更新操作所需要的关系、每个关系上的更新操作所涉及的属性、修改操作要改变的属性值等信息。
4.数据库更新事务的信息
包括更新操作所需的关系、每个关系上的更新操作所涉及的属性、修改操作要改变的属性之等信息。
5.事务运行频率和性能要求
关系数据库物理设计的内容主要指选择存取方法和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
存取方法需了解事务运行频率以优化访问路径,掌握性要求如响应时间和吞吐置以选择合适引和存储结构,确保高效处理高频事务并满足性能目标。
(三)关系数据库物理设计内容
6.选择存取方法
关系数据库物理设计中选择存取方法需考虑查询效率,常用方法包括索引、聚簇、分区等,需求优化存储结构以提升检索速度。
7.确定存储结构
关系数据库物理设计中确定存储结构需考虑存取方法、索引策略、数据分区和聚簇方式,优化存储空间和查询性能,选择适合的存储引擎和文件格式满足性能的需求。
8.确定系统配置
关系数据库物理设计中的系统配置需根据硬件环境、用户数量和性能需求调整参数,如缓冲区大小、并发连接数、日志文件大小等,以优化查询速度和资源利用率。
四、关系模式存取方法的选择
由于数据库是为多用户共享的系统,它需要提供多条存取路径才能满足多用户共享数据的要求。数据库物理设计的任务之一就是确定建立哪些存取路径和选择哪些数据存取方法,关系数据库常用的存取方法有索引方法、聚簇方法和HASH方法等。
(一)索引存取的方法选择
1.索引选择的基本原则
包括频率查询的列优先建索引;高选择性的列合建索引;避免过多索引影响性能;主键和外键默认建索引;大表优先考虑索引优化查询效率
2.组织属性索引建立依据
组合属性索引建立依据包括查询频率、属性选择性、排序需求和连接操作。高频查询或排序涉及的属性优先组合,选择性高的属性前置,避免冗余索引以节省存储和维护成本。
3.单个属性索引建立依据
单个属性索引建立依据包括查询频率高、属性值分布均匀、常用于连接或排序条件且数据量大时显著提升性能。
4.索引数量的考量
索引数据需平衡查询性能与维护成本,过多索引会降低写入速度并增加存储开销,过少则影响查询效率。根据查询频率和数据更新频率选择关键字段建立索引,通常每个表3-5个为宜。
1)如果一个属性经常在查询条件中出现,则考虑在这个属性上建立索引;如果一组属性经常在查询条件中出现,则考虑在这组属性上建立组合索引。
2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。
3)如果一个属性经常在连接操作的连接条件中出现,则考虑在这个属性上建立索引;同理,如果一组属性经常在连接操作的连接条件中出现,则考虑在这组属性上建立索引。
4)关系上定义的索引数要适当,并不是越多越好,因为系统为维护索引要付出代价,查找索引也要付出代价。
(二)聚簇存取方法的选择
为了提高某个属性或属性组的查询速度,把这个属性或属性组上具有相同值的元组集中存放在连续的物理快上的处理称为聚簇,这个属性或属性组称为聚簇码。
1.建立聚簇的必要性
1)建立聚簇的必要性在于提高查询的效率,特别是对频繁访问且逻辑相关的数据,通过物理相邻存储减少I/O操作,但需权衡更新开销和存储效率。
2)聚簇功能不但适用于单个关系,而且适用于经常进行连接操作的多个关系。即把多个连接关系的元组按连接属性值聚集存放,聚集中的连接属性称为聚簇码。
2.聚簇提高效率示例
聚簇存取方法通过相关数据物理上相邻存储减少I/O次数
3.聚簇对连接操作的作用
聚簇存取方法通过将相关数据物理上相邻存储,显著减少连接操作的I/O开销和访问时间,提升查询性能。
4.建立聚簇的基本原则
聚簇存取方法的选择应遵循数据访问频率高、查询性能需求强的元组,将经常一起访问的表或列物理上集中存储以减少I/O开销,同时考虑更新频率避免频繁重组。
(三)建立聚簇的基本原则
1.候选聚簇设计原则
频繁查询的关联表、频繁排序或分组的列、经常进行连接操作的表以及需要高效访问的大表。这些原则有助于提升查询性能和数据访问效率。
1)对经常在一起进行连接操作的关系可以建立聚簇
2)如果一个关系的一组属性经常出现在相等、比较条件中,则该单个关系可建立聚簇。
3)如果一个关系的一个(或一组)属性上的值重复率很高,则此单个关系可建立聚簇。
4)如果关系的主要应用是通过聚簇码进行访问或连接,而其他属性访问关系的操作很少,可以使用聚簇。
2.取消不必要关系的方法
删除冗余表、合并功能相似的表、优化外键关系、移除低频使用的关联表,确保数据库结构简洁高效。
3.选择择优聚簇的标准
查询频率高、数据访问模式集中、连接操作频繁的字段或属性组,确保聚簇值分布均匀且更新频率低以减少维护开销。
4.建立聚簇应注意的问题
频率查询且更新少的表适合聚簇
避免频繁更新的列作为聚簇键
聚簇键应选择高选择性且值稳定的列
考虑表大小和访问模式
避免过多表共享聚簇导致性能下降
(四)聚簇存取方法的选择
1.从聚簇中删除经常进行全表扫描的关系
2.从聚簇中删除更新操作远多于连接操作的关系
3.不同的聚簇中可能包含相同的关系,一个关系可以在某一个聚簇中,但不能同时加入多个聚簇。要从这多个聚簇方法中选择一个较优的,其标准是在这个聚簇上运行各中事物的总代价最小。
(五)建立聚簇应注意的问题
1.聚簇的开销
聚簇存取方法会增加数据插入、删除和更新的开销,因为需要维护聚簇顺序,可能导致频繁的重组操作,影响性能。
聚簇虽然提高了某些应用的性能,但是建立与维护聚簇的开销是相当大的。
2.对索引的影响
聚簇索引将数据行物理排序存储,减少I/O次数但影响非聚簇引性能,因非聚簇索引需二次超着数据页。选择聚簇索引需权衡查询频率与更新开销,高频查询字段优先。
3.聚簇码值的稳定性
聚簇码值的稳定性指聚簇码值不频繁更新的特性,稳定的聚簇码能减少数据重组开销,提高查询效率。若聚簇码频繁更会导致数据物理位置频繁调整,降低性能,因此选择稳定性高的作为聚簇码更优。
五、确定数据库的存储结构
确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。
(一)确定数据的存放位置
为了提高系统性能,应根据应用情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。
1. 外表和索引放在不同的磁盘上,这样在查询时,由于两个磁盘驱动器并行工作,可以提高物理I/O读写的效率
2. 将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效。
3. 将日志文件、备份文件与数据库对象放在不同的磁盘上,以改进系统的性能
4. 对于经常存取或存取时间要求高的对象(如表、索引)应放在高速存储器(如硬盘)上,对于存取频率小或存取时间要求低的对象(如数据库的数据备份和日志文件备份等只在故障恢复时才使用)。
(二)存放位置
1.数据存放原则
包括访问频率分区,高效数据优先存储;按数据重要性分级,关键数据冗余备份;按业务关联性分组;相关数据集中存放;考虑存储介质性质,优化读写效率;确保数据安全性和可扩展性。
2.多磁盘计算机的分配方案
通过将数据分散存储在不同磁盘上提升性能,常用策略包括带化、分区存放和冗余备份,结合访问频率和数据重要性优化I/O负载与可靠性。
3.表和索引的磁盘分配
表和索引的磁盘分配需根据访问频率和性能需求优化。高频访问的表和索引应放在高速磁盘或独立磁盘组。分区技术可分散I/O负载,提升查询效率。
4.大表的磁盘分配
大表的磁盘分配应考虑访问频率和数据量,将高频访问数据分散到多个磁盘或RAD 组以提升I/O 性能,低频数据可集中存放,同时结合分区策略优化存储效率。
六、确定系统配置
DBMS 产品一般提供了一些系统配置变量和存储分配参数供设计人员和DBA 对数据库进行物理优化。在进行数据库的物理设计时,还需要重新对这些变量赋值,以改善系统的性能。
物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据实际运行情况做进一步的参数调整,以改进系统性能。
1.系统配置变量
系统配置变量包括缓冲区大小、并发连接数、日志文件大小等,需根据硬件性能、用户负载和业务需求调整,以优化数据库性能与资源利用率。
2.用户数等参数的影响
数据库物理结构设计中用户数等参数直接影响系统资源分配。
3.存储分配参数的作用
存储分配参数用于优化数据库性能、通过调整数据快大小、缓冲区大小等配置,提高I/O效率和内存利用率,确保系统资源合理分配以满足不同应用需求。
4.调整系统配置变量
1)调整系统配置变量需根据硬件性能、数据量和访问频率优化关键参数如内存分配、缓存大小和并发连接数,以提升数据库响应速度和资源利用率。
2)初始赋值的必要性
确定系统配置初始赋值是必要的,它为数据库运行提供基础参数,确保性能优化、资源合理分配和安全控制,避免运行时因配置不当导致的性能瓶颈或安全隐患。
3)运行时调整的意义
运行时调整优化数据库性能,适应动态负载变化,提升资源利用率,确保系统稳定高效运行。
5.评价物理结构
评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡和比较,选择出一个较优的、合理的物理结构。
1)评价的权衡因素
·评价物理结构需权衡存放效率、存放空间、维护成本和扩展性,高效查询与低存储开销冲突,需根据应用需求优化选择。
物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可能会产生多种设计方案。
2).时间效率的考量
评价物理结构时间效率需考量查询响应时间、数据存取速度、索引优化效率及并发处理能力,确保高效数据与系统性能。
3).空间效率的考量
评价物理结构空间效率需考量存储利用率、索引占用空间、数据压缩效果及碎片化程度,确保存储资源高效利用同时减少冗余和浪漫。
4).维护代价的考量
评价物理结果维护代价需考量存储空间利用率、索引维护开销、数据更新效率及碎片整理频率,确保系统长期稳定运行。
6.评价物理结构
1)评价物理结构需满足用户对性能、存储和扩展性的要求确保数据存取高效支持业务操作同时考虑未来增长需求平衡成本与效益以优化整体系统表现
2)评价物理结构的方法包括性能测试、成本分析和可扩展性评估。选择时需权衡查询效率、存储考校和维护成本,结合实际业务需求和数据特性,优先满足关键性能指标。
3)物理结构设计需结合DBMS特性评估如存储引擎索引机制分区策略等却行性能于功能匹配不同DBMS对硬件资源利用和数据管理效率差异显著需针对性优化
4)评价物理结构定浪估算主要关注存储空间、存取时间和维护成本三方面通过计算数据量、I/O操作次数和索引开销等指标衡量性能优化平衡三者关系确保高效稳定运行
5)评价物理结构优劣需考虑存取效率、存储空间和维护成本,选择较优结构应权衡查询性能、数据更新速度及系统扩展性,确保满足业务需求同时优化资源消耗。
七、数据库的实施和维护
(一)数据库实施阶段工作
1.描述数据库设计结果
数据库实施阶段的工作是:设计人员用DBMS 提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,使数据模型成为DBMS 可以接受的源代码;再经过调整调试产生目标模式,完成建立定义数据库结构的工作;最后要组织数据入库,并运行应用程序进行调试。
1)用数据定义语言描述
数据库设计结果通过数据定义语言(DDL)描述,包括创建表(CREATE TABLE)、定义主键(PRIMARY KEY)、外键(FOREIGN KEY)及约束(CHECK),确保数据结构完整性与关系准确性,为数据库实施提供基础框架。
2)产生目标模式
数据库设计结果产生目标模式即根据逻辑模型转换为特定DBMS支持的物理结构包括表、视图、索引等对象并定义完整性约束确保数据一致性为后续实施提供操作框架。
2.组织数据入库
1)抽取源数据
抽取源数据是将原始数据从不同来源提取并转换为目标数据库格式的过程需确保数据完整性和一致性通常使用ETL工具或脚本完成关键步骤包括数据清晰转换和加载。
2)数据分类转换
将原始数据按规则分类并转换为适合数据库存储的格式,包括数据清晰、格式转化和编码统一等步骤,确保数据一致性和完整性,便于后续管理和分析。
3)数据输入数据库
数据输入库需先整理数据确保格式一致然后使用ETL工具或SQL语句导入数据过程中需验证数据完整性避免重复和错误最后建立索引优化查询性能并定期维护确保数据准确性和系统稳定性。
(二)运行应用程序调试
1.执行各类操作
运行应用程序调试时需执行各类操作包括设置断点、单步执行、变量监视和日志输出,确保程序逻辑正确和数据一致性,通过反复测试验证功能完整性并及时修复错误,提升系统稳定性。
2.检查功能是否达标
运行运用程序调试时需验证功能是否满足需求文档要求通过测试用例覆盖所有场景检查输入输出是否符合预期确保下能稳定无错误并记录问题及时修复确保功能达标。
(三)数据的载入和应用程序调试
1.数据量大且分散
组织数据入库是数据库实施阶段最主要的工作。
由于数据库量一般都很大,而且数据来源于部门中的各个不同的单位,分散在各种数据文件、原始凭证或单据中,有大量的纸质文件需要处理,数据的组织方式、结构和格式都与新设计的数据库系统有相当的差距。
2.缺乏通用转化工具
数据载入时缺乏通用转换工具导致格式兼容性问题增加手动处理成本需定制脚本或中间件适配不同数据源响应效率。
(四)提高效率质量措施
组织数据录入时需要将各类源数据各个局部应用中抽取出来,并输入到计算机后再进行分类转换,综合成符合新设计的数据库结构的形式,最后输入数据库。
应用环境千差万别,愿数据也各不相同,因而不存在通用的转换规则。人工的方法转换效率低、质量差,特别是在数据量大时,其问题表现的尤其突出。
1.设计数据录入子系统
设计数据录入系统时采用输入校招验、默认值设置、批量导入功能和用户好友界面可显著提升效率与质量同时减少人为错误。
2.多种方式检验数据
为了防止不正确的数据输入到数据库,应当采用多种方法多次地对数据检验。由于要入库的数据格式或结构与系统的要求不完全一样,有的差别kennel还比较大,所以计算机输入数据时会发生错误,数据转转过程中也有可能出错。
采用多种方式检验数据可提升效率质量,如交叉验证确保一致性、自动化工具检测异常、抽样检查核实准确性、定期审计维护完整性、引入第三方验证增强可信度,综合运用确保数据可靠高效。
(五)设计录入子系统要点
1.考量原有系统特点
设计数据输入系统时还要注意原有系统的特点,充分考量老用户的习惯,这样可以提高输入的质量。
设置录入姿态时需充分分析原有系统的数据结构、操作流程和用户习惯,确保新系统兼容旧有格式,减少数据迁移和用户适应成本,同时优化界面和功能以提升效率。
2.利用现有转换工具
现有的DBMS 一般都提供不同的DBMS 之间数据转换的工具,若原有系统是数据库系统,就可以利用新系统的数据转换工具,先将原系统中的表转换成新系统中相同结构的临时表,再将这些表中的数据分类、转换,综合成符合新系统的数据模式,插入相应的表中。
设计录入系统时应优先评估现有转换工具如ETL工具或脚本的适用性确保兼容性减少开发成本同时验证数据转换的准确性和效率避免重复造轮子提升实施效率。
九、数据库的试运行
(一)数据库时运行阶段的主要工作
1.测试应用程序功能
实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求。如果应用程序的功能不能满足设计要求,则需要对应用程序部分进行修改、调整,直到达到设计要求为止。
2.测试系统的性能指标
分析其是否符合设计目标。由于对数据库进行物理设计时考量的性能指标只是近似的估计,和实际系统运行总有一定的差距,因此必须在试行运行阶段实施测量和评价系统性能指标。
3.检测是否满足设计要求
验证数据功能、性能、安全性及数据完整性是否符合设计规范通过测试查询效率、事务处理能力、权限控制和数据一致性确保系统达到预期目标。
4.分析是否符合设计目标
验证数据性能是否达标,检查功能完整性,评估数据一致性和安全性,确认用户需求满足度,并根据测试结果优化则调整设计。
(二)注意问题
1.分布进行试运行
组织数据入库是十分费时费力的事,如果试运行后还需要修改数据库的设计,这样就是会导致重新组织数据入库,因此应分期分批地组织数据入库,先输入小批量数据做调试用,待试运行结束基本合格后,再大批输入数据,逐步增加数据量,逐步完成运行评价。
2.数据库的实施和调整不可能一次完成
数据库试运行阶段,由于系统不稳定,硬、软件故障随时都可能发生。因此,在书库运行时,应首先调试运行DBMS 的恢复功能,做好数据的转储和恢复工作,一旦故障发生,能使数据库尽快恢复,尽量减少对数据库的破坏。
十、数据库的运行和维护
(一)数据库的转储和恢复
数据库的转储和恢复是系统正式运行后重要的维护工作之一。数据库管理员要针对不同的应用要求制定不同的转储计划,以保证一旦发生故障尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。
1.制定转储计划
1)制定转储计划需明确转储频率、范围和方式,定期全量转储结合增量转储可平衡效率与存储成本,确保关键数据优先备份并测试恢复流程以保障数据安全。
2)确保故障快速恢复
定期备份数据库并验证备份完整性,采用增量备份减少恢复时间,采用增量备份减少恢复时间,设置自动恢复机制,记录日志以便故障快速定位,确保关键数据高可用性。
2.数据库的安全性、完整性控制
数据库运行过程中,由于应用环境的变化,对安全性的要求也会发生变化,
1)调整安全性控制
调整安全性控制需定期审查用户权限,确保最小权限原则;加强密码策略,采用多因素认证;监控异常访问行为,及时更新安全补丁;实施数据加密保护蜜柑信息;定期备份数据以防意外丢失。
2)修改完整约束条件
系统中用户的密级也会变化。这些都需要数据库管理员根据实际情况修改原有安全性控制。同样,数据库的完整性约束条件也会变化,也需要数据库管理员不断修正,以满足用户要求。
3.数据库性能的监督、分析和改造
数据库运行过程中,监督系统运行、对监测数据进行分析并找出改进系统性能的方法是数据库管理员的又一重要任务。
1)利用监测工具
利用监测工具实时跟踪数据库性能指标如响应时间和吞吐量识别瓶颈后通过优化查询调整索引或升级硬件提升效率确保系统稳定运行。
2)分析性能参数
数据库性能参数分析需关注查询响应时间、吞吐量、并法用户数、CPU和内存使用效率等指标,通过监控工具识别瓶颈,优化索引、查询语句和资源配置以提升效率。
3)采取高进措施
针对数据库性能问题,改进措施包括优化查询语句、调整索引结构、升级硬件配置、定期清理冗余数据、调整数据库参数设置以及实时缓存策略,确保系统高效稳定运行。
4.数据库的重组与重构造
数据库运行一段事件后,由于记录不断增、删、改,会使数据库的物理存储情况变化,降低了数据的存取效率,数据库的性能下降。
1)数据库重组织
数据库重组织指按原设计要求调整存储结构以提高性能,如重组表、索引或分区,减少碎片化,优化查询效率,通常在数据增删频繁导致性能下降时进行,需停机或在线操作。
2)提高数据存取效率
数据库重组织通过优化存储结构减少碎片提高存取效率;重构造则调整逻辑模式如索引优化和查询重构以加速数据访问。两者结合可显著提升性能。
3)数据库重构造
数据库重构是对数据库逻辑结构进行修改如增加或字段以适用新需求需谨慎评估影响确保数据一致性通常伴随应用程序调整需在低峰期进行减少业务中断风险。
4)适应应用环境变化
数据库重组织通过调整存储结构提高性能,重构造则修改逻辑结构以适应新需求。两者共同应对环境变化,确保数据库高效运行并满足业务发展需求。