京公网安备 11010802034615号
经营许可证编号:京B2-20210330
数据库设计的六阶段:数据库的设计过程
6.1 数据库设计的六阶段
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。这个问题是数据库在应用领域的主要研究课题。数据库设计既是一项涉及多学科的综合性技术,又是一项庞大的工程项目。有人讲"三分技术,七分管理,十二分基础数据"是数据库建设的基本规律,这是有一定道理的。技术与管理的界面(称之为"干件")十分重要。数据库建设是硬件、软件和干件的结合。这是数据库设计的特点之一。数据库的设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计紧密结合起来。这是数据库设计的特点之二。
6.1.1 数据库的设计过程
按照规范的设计方法,一个完整的数据库设计一般分为以下六个阶段:
⑴ 需求分析:分析用户的需求,包括数据、功能和性能需求;
⑵ 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
⑶ 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
⑷ 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
⑸ 数据库的实施:包括编程、测试和试运行;
⑹ 数据库运行与维护:系统的运行与数据库的日常维护。
数据库设计的这六个阶段,用图6-1-1表示如下:
图6-1-1:数据库的设计过程
对于图6-1-1,需要说明的是:
⑴ 概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。从理论上讲,设计逻辑结构应该选择最适宜于相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,从中选出最合适的DBMS。但实际情况往往是已经给定了某种DBMS,设计人员没有其他的选择余地。目前DBMS产品一般支持关系、网状、层次三种模型中的一种,对某一种数据模型,各个机器系统又有许多不同的限制,提供不同的环境与工具。所以设计逻辑结构时一般要分三步进行:
① 将概念结构转换为一般的关系、网状、层次模型;
② 将转换的关系、网状、层次模型向特定的DBMS支持下的数据模型转换;
③ 对数据模型进行优化;
⑵ 在数据库的逻辑结构设计完成之后,要对数据模型进行优化。因为数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导,优化时可采用在第五章"完整性约束与模式分解"的5.8.3小节中介绍的模式分解方法对关系模式进行规范化。如果在优化过程中发现数据库的逻辑结构有诸多问题,则需要返回到上一层修改或重新进行数据库的逻辑结构设计;
⑶ 其实将概念模型转换为全局逻辑模型之后,还应该根据局部应用的需求,结合具体DBMS的特点,设计用户的外模式,这一点在图6-1-1中没有体现。目前关系数据库管理系统一般都提供了视图的概念,可以利用视图来设计更符合局部用户需要的用户外模式。定义数据库全局模式主要是从系统的时间效率、空间效率、易维护等角度出发。由于用户外模式与模式是相对独立的,因此在定义用户外模式时可以注重考虑用户的习惯与方便,包括:
① 使用更符合用户习惯的别名;
② 可以对不同级别的用户定义不同的VIEW,以保证系统的安全性;
③ 简化用户对系统的使用;
⑷ 在数据库的物理结构设计完成之后,就可以针对系统常用的操作进行性能预测,评价所做的设计。如果发现目前的设计不能保证系统常用操作的性能要求的话,就需要返回到上两层重新调整数据库的逻辑结构设计;
当评价一个DBMS产品时,性能指标是一个主要的因素。一个DBMS是一个复杂的软件,而且不同的厂商可能将它们的系统定位于不同的市场。为此,他们对系统的某些特定部分进行更多的优化,或者选择不同的设计。例如,一些系统要求有效地运行复杂查询,而另一些系统用来在一秒中内运行很多简单事务。在每一类系统中,都有很多竞争产品。为了帮助用户在选择DBMS的过程中找到适合自身的系统,人们提出了几个性能基准测试。它们之中包括度量特定一类应用性能的基准测试和度量一个DBMS完成各种操作的好坏的基准测试(如,Wisconsin Benchmark)。
基准测试应该是可移植的、易于理解的,并且可以很自然地就扩展到大的问题实例上。它们应该能够度量峰值性能(如,每秒中处理事务的个数,即tps),同时也能度量在给定应用域内工作负载的性能价格比(如,$/tps)。现在已经建立了事务处理委员会(简称TPC)来定义事务处理和数据库系统的基准测试。其他著名的基准测试已经被学术研究者和工业组织提了出来。属于特定厂商的基准测试对于比较不同的系统没有多大的用处(尽管它们可能在特定工作负载下判断一个给定系统的好坏是有用的)。
在万维网上,通过URL可以获得联机版本的所有TPC基准程序描述以及基准程序结果。
⑸ 完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库的逻辑设计和物理设计的结果严格地描述出来,成为DBMS可以接受的源代码。再经过调试产生目标模式,然后就可以组织数据入库了,这就是数据库实施阶段,即数据库的物理实现。数据库的物理实现包括两项重要的工作:一是数据载入;二是应用程序的编码和调试。
⑹ 在完成数据库的物理实现之后,进行系统的试验性运行。这一阶段实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求。如果不满足,对应用程序部分则要修改、调整,直到达到设计要求为止。如果在运行过程中发现系统的性能不满足要求,就需要返回到上一层,重新调整数据库的物理设计。
⑺ 数据库试运行合格后,数据库开发工作就基本完成,即可投入正式运行了。但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,因此对数据库设计进行评价、调整、修改等维护工作是一个长期的任务。也是设计工作的继续和提高。在数据库运行阶段,对数据库的经常性的维护工作主要是由DBA完成的,它包括:
① 数据库的转储和恢复;
② 数据库的安全性和完整性控制;
③ 数据库性能的监督、分析和改造;
④ 数据库的重组织与重构造;
正像我们所强调的那样,这个设计步骤既是数据库的设计过程,也包括了数据库应用系统的设计过程。在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。事实上,如果不了解应用环境对数据的处理要求,或没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在 MySQL 实际应用中,“频繁写入同一表” 是常见场景 —— 如实时日志存储(用户操作日志、系统运行日志)、高频交易记录(支付 ...
2025-10-30为帮助教育工作者、研究者科学分析 “班级规模” 与 “平均成绩” 的关联关系,我将从相关系数的核心定义与类型切入,详解 “数 ...
2025-10-30对 CDA(Certified Data Analyst)数据分析师而言,“相关系数” 不是简单的数字计算,而是 “从业务问题出发,量化变量间关联强 ...
2025-10-30在构建前向神经网络(Feedforward Neural Network,简称 FNN)时,“隐藏层数目设多少?每个隐藏层该放多少个神经元?” 是每个 ...
2025-10-29这个问题切中了 Excel 用户的常见困惑 —— 将 “数据可视化工具” 与 “数据挖掘算法” 的功能边界混淆。核心结论是:Excel 透 ...
2025-10-29在 CDA(Certified Data Analyst)数据分析师的工作中,“多组数据差异验证” 是高频需求 —— 例如 “3 家门店的销售额是否有显 ...
2025-10-29在数据分析中,“正态分布” 是许多统计方法(如 t 检验、方差分析、线性回归)的核心假设 —— 数据符合正态分布时,统计检验的 ...
2025-10-28箱线图(Box Plot)作为展示数据分布的核心统计图表,能直观呈现数据的中位数、四分位数、离散程度与异常值,是质量控制、实验分 ...
2025-10-28在 CDA(Certified Data Analyst)数据分析师的工作中,“分类变量关联分析” 是高频需求 —— 例如 “用户性别是否影响支付方式 ...
2025-10-28在数据可视化领域,单一图表往往难以承载多维度信息 —— 力导向图擅长展现节点间的关联结构与空间分布,却无法直观呈现 “流量 ...
2025-10-27这个问题问到了 Tableau 中两个核心行级函数的经典组合,理解它能帮你快速实现 “相对位置占比” 的分析需求。“index ()/size ( ...
2025-10-27对 CDA(Certified Data Analyst)数据分析师而言,“假设检验” 绝非 “套用统计公式的机械操作”,而是 “将模糊的业务猜想转 ...
2025-10-27在数字化运营中,“凭感觉做决策” 早已成为过去式 —— 运营指标作为业务增长的 “晴雨表” 与 “导航仪”,直接决定了运营动作 ...
2025-10-24在卷积神经网络(CNN)的训练中,“卷积层(Conv)后是否添加归一化(如 BN、LN)和激活函数(如 ReLU、GELU)” 是每个开发者都 ...
2025-10-24在数据决策链条中,“统计分析” 是挖掘数据规律的核心,“可视化” 是呈现规律的桥梁 ——CDA(Certified Data Analyst)数据分 ...
2025-10-24在 “神经网络与卡尔曼滤波融合” 的理论基础上,Python 凭借其丰富的科学计算库(NumPy、FilterPy)、深度学习框架(PyTorch、T ...
2025-10-23在工业控制、自动驾驶、机器人导航、气象预测等领域,“状态估计” 是核心任务 —— 即从含噪声的观测数据中,精准推断系统的真 ...
2025-10-23在数据分析全流程中,“数据清洗” 恰似烹饪前的食材处理:若食材(数据)腐烂变质、混杂异物(脏数据),即便拥有精湛的烹饪技 ...
2025-10-23在人工智能领域,“大模型” 已成为近年来的热点标签:从参数超 1750 亿的 GPT-3,到万亿级参数的 PaLM,再到多模态大模型 GPT-4 ...
2025-10-22在 MySQL 数据库的日常运维与开发中,“更新数据是否会影响读数据” 是一个高频疑问。这个问题的答案并非简单的 “是” 或 “否 ...
2025-10-22