数据库设计的六阶段:数据库的设计过程
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
“最近复购率一直在下降,我们的营销力度不小啊,为什么用户还是走了?” “是不是广告投放的用户质量不高?还是我们的产品问题 ...
2025-02-21以下文章来源于数有道 ,作者数据星爷 SQL查询是数据分析工作的基础,也是CDA数据分析师一级的核心考点,人工智能时代,AI能为 ...
2025-02-19在当今这个数据驱动的时代,几乎每一个业务决策都离不开对数据的深入分析。而其中,指标波动归因分析更是至关重要的一环。无论是 ...
2025-02-18当数据开始说谎:那些年我们交过的学费 你有没有经历过这样的场景?熬了三个通宵做的数据分析报告,在会议上被老板一句"这数据靠 ...
2025-02-17数据分析作为一门跨学科领域,融合了统计学、编程、业务理解和可视化技术。无论是初学者还是有一定经验的从业者,系统化的学习路 ...
2025-02-17挖掘用户价值本质是让企业从‘赚今天的钱’升级为‘赚未来的钱’,同时让用户从‘被推销’变为‘被满足’。询问deepseek关于挖 ...
2025-02-17近来deepseek爆火,看看deepseek能否帮我们快速实现数据看板实时更新。 可以看出这对不知道怎么动手的小白来说是相当友好的, ...
2025-02-14一秒精通 Deepseek,不用找教程,不用买资料,更不用报一堆垃圾课程,所有这么去做的,都是舍近求远,因为你忽略了 deepseek 的 ...
2025-02-12自学 Python 的关键在于高效规划 + 实践驱动。以下是一份适合零基础快速入门的自学路径,结合资源推荐和实用技巧: 一、快速入 ...
2025-02-12“我们的利润率上升了,但销售额却没变,这是为什么?” “某个业务的市场份额在下滑,到底是什么原因?” “公司整体业绩 ...
2025-02-08活动介绍 为了助力大家在数据分析领域不断精进技能,我们特别举办本期打卡活动。在这里,你可以充分利用碎片化时间在线学习,让 ...
2025-02-071、闺女,醒醒,媒人把相亲的带来了。 我。。。。。。。 2、前年春节相亲相了40个, 去年春节相亲50个, 祖宗,今年你想相多少个 ...
2025-02-06在数据科学的广阔领域中,统计分析与数据挖掘占据了重要位置。尽管它们常常被视为有关联的领域,但两者在理论基础、目标、方法及 ...
2025-02-05在数据分析的世界里,“对比”是一种简单且有效的方法。这就像两个女孩子穿同一款式的衣服,效果不一样。 很多人都听过“货比三 ...
2025-02-05当我们只有非常少量的已标记数据,同时有大量未标记数据点时,可以使用半监督学习算法来处理。在sklearn中,基于图算法的半监督 ...
2025-02-05考虑一种棘手的情况:训练数据中大部分样本没有标签。此时,我们可以考虑使用半监督学习方法来处理。半监督学习能够利用这些额 ...
2025-02-04一、数学函数 1、取整 =INT(数字) 2、求余数 =MOD(除数,被除数) 3、四舍五入 =ROUND(数字,保留小数位数) 4、取绝对值 =AB ...
2025-02-03作者:CDA持证人 余治国 一般各平台出薪资报告,都会哀嚎遍野。举个例子,去年某招聘平台发布《中国女性职场现状调查报告》, ...
2025-02-02真正的数据分析大神是什么样的呢?有人认为他们能轻松驾驭各种分析工具,能够从海量数据中找到潜在关联,或者一眼识别报告中的数 ...
2025-02-01现今社会,“转行”似乎成无数职场人无法回避的话题。但行业就像座围城:外行人看光鲜,内行人看心酸。数据分析这个行业,近几年 ...
2025-01-31