具体的数据库设计与实现过程

具体的数据库设计与实现过程,第1张

大致的讲主要是根据用户的需求,然后设计数据的E-R模型,然后将E-R模型图转换为各种表,并对其进行数据库设计范式(范式因不同书籍有不同)的审核,然后进行数据库的实施,然后运行维护。

一句话来讲就是将用户的需求变成带有各种关系的表,以及其它的数据库结构,然后供编程使用

具体如下:

按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段

(1)需求分析。

(2)概念设计。

(3)逻辑设计。

(4)物理设计。

(5)数据库实施。

(6)数据库运行和维护。

5.1.1 需求分析阶段

进行数据库设计首先必须准确了解与分析用户需求,包括数据与处理需求。需求分析是整个设计过程的基础,是最困难、最耗时的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其上构建“数据库大厦”的速度与质量。需求分析做得不好,可能会导致整个数据库重新设计,因此,务必引起高度重视。

5.1.2 概念模型设计阶段

在概念设计阶段,设计人员仅从用户角度看待数据及其处理要求和约束,产生一个反映用户观点的概念模式,也称为“组织模式”。概念模式能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,易于向关系模型转换。这样做有以下好处:

(1)数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。

(2)概念模式不受特定DBMS的限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。

(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确地反映用户的信息需求。

概念模型设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。如采用基于E-R模型的数据库设计方法,该阶段即将所设计的对象抽象出E-R模型;如采用用户视图法,则应设计出不同的用户视图。

5.1.3 逻辑模型设计阶段

逻辑模型设计阶段的任务是将概念模型设计阶段得到的基本E-R图,转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。如采用基于E-R模型的数据库设计方法,该阶段就是将所设计的E-R模型转换为某个DBMS所支持的数据模型;如采用用户视图法,则应进行表的规范化,列出所有的关键字以及用数据结构图描述表集合中的约束与联系,汇总各用户视图的设计结果,将所有的用户视图合成一个复杂的数据库系统。

5.1.4 数据库物理设计阶段

数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。显然,数据库的物理设计完全依赖于给定的硬件环境和数据库产品。在关系模型系统中,物理设计比较简单一些,因为文件形式是单记录类型文件,仅包含索引机制、空间大小、块的大小等内容。

物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计:

(1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。

(2) 确定数据存放位置:可以把经常同时被访问的数据组合在一起,“记录聚簇(cluster)”技术能满足这个要求。

(3)存取方法的设计:存取路径分为主存取路径及辅存取路径,前者用于主键检索,后者用于辅助键检索。

(4)完整性和安全性考虑:设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡。

(5)程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始。物理数据独立性的目的是消除由于物理结构的改变而引起对应用程序的修改。当物理独立性未得到保证时,可能会引发对程序的修改。

数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。

5.1.5 数据库实施阶段

根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段。实施阶段主要有三项工作。

(1)建立实际数据库结构。对描述逻辑设计和物理设计结果的程序即“源模式”,经DBMS编译成目标模式并执行后,便建立了实际的数据库结构。

(2)装入试验数据对应用程序进行调试。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实世界的各种情况。

(3)装入实际数据,进入试运行状态。测量系统的性能指标,是否符合设计目标。如果不符,则返回到前面,修改数据库的物理模型设计甚至逻辑模型设计。

5.1.6 数据库运行和维护阶段

数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:

(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。

(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。

(3)根据用户要求对数据库现有功能进行扩充。

(4)及时改正运行中发现的系统错误。

数据库系统由哪几部分组成?数据库系统DBS(DataBaseSystem,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括 *** 作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。

数据库系统一般由4个部分组成:

(1)数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。

(2)硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。

(3)软件:包括 *** 作系统、数据库管理系统及应用程序。数据库管理系统(databasemanagementsystem,DBMS)是数据库系统的核心软件,是在 *** 作系统的支持下工作,解决如何科学地组织和存储数据,如何高效获取和维护数据的系统软件。其主要功能包括:数据定义功能、数据 *** 纵功能、数据库的运行管理和数据库的建立与维护。

(4)人员:主要有4类。第一类为系统分析员和数据库设计人员:系统分析员负责应用系统的需求分析和规范说明,他们和用户及数据库管理员一起确定系统的硬件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。第二类为应用程序员,负责编写使用数据库的应用程序。这些应用程序可对数据进行检索、建立、删除或修改。第三类为最终用户,他们利用系统的接口或查询语言访问数据库。第四类用户是数据库管理员(databaseadministrator,DBA),负责数据库的总体信息控制。DBA的具体职责包括:具体数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件,监控数据库的使用和运行,负责数据库的性能改进、数据库的重组和重构,以提高系统的性能。

其中应用程序包含在软件范围内,是指数据库应用系统,比如开发工具、人才管理系统、信息管理系统等。

数据库系统由4个部分组成:

1、数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。

2、硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。

3、软件:包括 *** 作系统、数据库管理系统及应用程序。其主要功能包括:数据定义功能、数据 *** 纵功能、数据库的运行管理和数据库的建立与维护。

4、人员:主要有4类。第一类为系统分析员和数据库设计人员;第二类为应用程序员,负责编写使用数据库的应用程序。;第三类为最终用户,他们利用系统的接口或查询语言访问数据库。第四类用户是数据库管理员(data base administrator,DBA),负责数据库的总体信息控制。

扩展资料

数据库系统特点:

1、能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。

2、冗余数据少,数据共享程度高。

3、系统的用户接口简单,用户容易掌握,使用方便。

4、能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。

5、有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户 *** 作特性的变化,改善由于频繁插入、删除 *** 作造成的数据组织零乱和时空性能变坏的状况。

6、具有可修改性和可扩充性。

7、能够充分描述数据间的内在联系。

参考资料来源:百度百科-dbs

参考资料来源:百度百科-数据库系统

1、数据库(database,DB)

作用是数据库中的数据按一定的数学模型组织、描述和存储,有组织,可共享的数据的集合。具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。

2、硬件

构成计算机系统的各种物理设备,包括存储所需的外部设备。作用是硬件的配置应满足整个数据库系统的需要。

3、软件

包括 *** 作系统、数据库管理系统及应用程序。数据库管理系统是数据库系统的核心软件,作用是在 *** 作系统的支持下工作,科学地组织和存储数据,高效获取和维护数据的系统软件。其主要功能包括数据定义功能、数据 *** 纵功能、数据库的运行管理和数据库的建立与维护。

4、人员

主要分类及其作用是系统分析员和数据库设计人员,负责应用系统的需求分析和规范说明,确定系统的硬件配置,并参与数据库系统的概要设计;应用程序员,负责编写使用数据库的应用程序,利用系统的接口或查询语言访问数据库;数据库管理员负责数据库的总体信息控制。

扩展资料:

数据库系统的模型

1、层次模型:用一颗“有向树”的数据结构来表示各类实体以及实体间的联系,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。层次数据模型的提出,首先是为了模拟这种按层次组织起来的事物。层次数据库也是按记录来存取数据的。

2、网状模型:取消了层次模型的不能表示非数状结构的限制,两个或两个以上的结点都可以有多个双亲结点,则此时有向树变成了有向图,该有向图描述了网状模型。网状模型中以记录为数据的存储单位。记录包含若干数据项。

3、关系模型:基本假定是所有数据都表示为数学上的关系。关系数据模型以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型关系来表示。

参考资料来源:百度百科-数据库系统

功能结构图,业务流程图,数据流程图,数据库设计的目的及意义,那也就是比如说功能结构图的话,它就是一个功能的描述,具体描述图纸,而且也就是一个业务流程图,那么也就是自己的主要工作范围和职责之类的一个图纸,所以他这个数据流程图也就是统计每年的盈利状况的一个流程图纸数据库设计,那也就是一个数据库的保存的意思,所以他这个目的也就是为了给公司带来一定更好的利益。

1、关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可以通过工具或数据字典来查看视图的相关信息。

2、内嵌视图:在from语句中的可以把表改成一个子查询,内嵌视图为子查询的一种,可以与数据表、视图一样作为查询语句的数据源存在,但在形式上有较大的区别,内嵌视图不必使用create view命令进行创建,因此,在数据字典中也无法获得相应信息。

内嵌视图的特点在于无须创建真正的数据库对象,而只是封装查询,因此会节约数据库资源,同时不会增加维护成本。但是内嵌视图不具有可复用性,因此当预期将在多处调用到同一查询定义时,还是应该使用关系视图。

3、对象视图:对象类型在数据库编程中有许多好处,但有时,应用程序已经开发完成。为了迎合对象类型而重建数据表是不现实的。对象视图正是解决这一问题的优秀策略。

对象视图创建之后,同样可以在数据字典中获得其相应信息。利用Oracle内置视图user_views可以获得对象视图相关信息。Oracle中的对象数据实际仍然以关系数据的形式存储。

但是,对象的特性,例如继承、封装等,都为开发人员提供了更加灵活的处理形式。同样,可以构造复杂的对象类型来封装复杂的多表查询。

4、物化视图:常用于数据库的容灾,不是传统意义上虚拟视图,是实体化视图,和表一样可以存储数据、查询数据。主备数据库数据同步通过物化视图实现,主备数据库通过data link连接,在主备数据库物化视图进行数据复制。当主数据库垮掉时,备数据库接管,实现容灾。

扩展资料

视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。视图可以在以下几个方面使程序与数据独立:

1、如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。

2、如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。

3、如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。

4、如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。

参考资料来源:百度百科-数据库视图

参考资料来源:百度百科-视图

数据库设计的基本步骤如下:

1、安装并打开MySQL WorkBench软件以后,在软件的左侧边栏有三个选项,分别是对应“连接数据库”、“设计数据库”、“迁移数据库”的功能。这类选择第二项,设计数据库,点击右边的“+”号,创建models。

2、进入MySQL Model界面后,点击“Add Diagram"。

3、然后就进入了EER Diagram的设计页面。可以从左侧的图标中选择要创建的资源。鼠标停留在图标上3秒后,会提示资源的类型。选择资源后,可以在设计页面上方选择属性。

4、这里添加了一张数据库表,添加后,双击,在页面的底部会出现数据库表的编辑框。

5、这里创建一张user表,设置了id、name、age三列。

6、还可以创建外键,左侧提供了四种外键类型。点击后,只需要用鼠标分别选中要关联的两个表即可。Workbench会自动生成对应的外键。

7、在文件、导出中,可以选择导出为sql脚本。

8、下图是导出过程sql脚本的过程。

就我个人的经验来说,数据库虽然在设计上确实需要有一定的经验,但是它并不是最难的。

对于数据的设计其实是对于现实中业务的一种抽象。

就我的习惯的话,我会先对于现实中的业务场景、业务的角色进行分析。

就拿一般的进销存系统来举例吧。

我有一个对于物料管理的仓库,我需要对我的物料的进销存进行管理。

那么我们就需要分析,没有系统的时候,人与人之间的业务是怎么流转的,他们都是通过哪些表单来进行流转的,上下级之间的消息传递和反馈都是怎么进行的。

当知道了业务以后,我们的数据库无非就是对于现实中的业务的一种具现。

对于业务的设计完成以后,就是针对角色的了。

例如:业务的传递都是在业务人员之间的,我们已经整理表单的传递,那角色其实就已经在这些传递中存在了。

但是,业务的角色是业务的角色,我们还要包括财务的角色,那对于财务来说,他需要在哪些环节看到这些业务的单据?并且需要怎么处理?财务的处理结果又包括哪些?不同的处理结果对于下一步的 *** 作又有什么影响。

当我们把这一切的逻辑整理完成后,我们对于数据库的功能上就已经满足了。

接下来的就是抽象数据的分类了。

例如:我们需要对不同的表进行一个分类,我个人喜欢把表分成三种,一种是基础数据表,一种是过程表,一种是结果表。

怎么解释呢?

基础数据表:顾名思义,就是对于基础数据的维护,哪些可以成为基础数据呢?就是我们的业务发生的各个过程中,这些数据都是可以参与其中的,这就是基础数据。

例如:货物的信息,客户的信息。

过程表:就是仅仅在一个过程中使用的表,当这个过程结束了,这个表就没用了。

例如:订单表,付款单表。他们表示的仅仅是订单从下单到最后关闭的这个过程,关闭以后,这个订单表其实我们就不会再去使用它了。

结果表:这个表的数据有一个特点,只允许添加,不允许删除和修改,这个表的数据本身就是对于一种最终结果的表现。

例如:日志表、账单表。

那我们在进行数据库设计的时候,就需要将这些使用情况考虑进去,将不同功能的表进行分离,尽量降低耦合,让相互表的修改不会影响使用。

例如:收款单,我们需要收一笔款的时候,就会生成这个收款单,当款收到后,这个收款单的功能就结束了。

但现实的情况中,可能财务收到了这笔钱,结束了收款单流程后,他发现填错了,本来应该收100,结果收款单写的110。

但是,收款单表示的是过程,当这个过程结束了,我们就不会再需要上一个收款单了,所以,按照我们业务的处理流程,我们应该先生成一笔冲抵的收款单,例如收到-110,然后再生成新的100的收款单。

我们每个月还会有财务统计报表,财务报表因为和现实中的财务账有关,是绝对不允许变动的,因此,这个财务报表就是一个结果表,我们会按月通过批处理程序,将收款单的明细和统计数据放到另一张表中,感觉好像比较冗余,但是这个确实非常必要的。

因为我曾经就遇到过一个情况,我们直接用过程表来进行数据的统计,然后11月30日有一笔收款已经完成了,结果发现收错了,就重新做了个收款单,结果本来已经出了11月结果的账单发生了变化,导致财务实际的处理出现了问题。

因此,数据的冗余有时候是有必要的,我们需要根据不同表的类型进行一些冗余的设计。

对于数据库设计的考虑点还有很多,可能一时半会儿也说不完,大家如果有什么好的思路,也可以在下方评论或关注我给我留言。

以上就是关于具体的数据库设计与实现过程全部的内容,包括:具体的数据库设计与实现过程、数据库系统由哪几部分组成、数据库系统是由哪几部分组成的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10196697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存