六个主要步骤:
1、需求分析
2、概念设计
3、逻辑结构设计
4、物理结构设计
5、系统实施
6、运行维护
字数限制,只能列个大纲了
建立数据库就是盖一座楼,一个空的楼体 -- 这个就相当于建立一个空数据库
数据库设计就是要在楼里划分房间,规划每个房间是做什么的--这个相当于在库里建表,建存储过程,索引等等(这个比喻一下就是每个房间需要装修的意思),而表里的数据就相当于这个房间有人住了
可以围绕这四点
1。先明确用户需求,需求都有哪些,你准备如何实现。
2。概念结构,要设计哪些表,联系用户需求,表每个表的功能,属性。
3。设计er图,表之间有什么联系
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月结果的账单发生了变化,导致财务实际的处理出现了问题。
因此,数据的冗余有时候是有必要的,我们需要根据不同表的类型进行一些冗余的设计。
对于数据库设计的考虑点还有很多,可能一时半会儿也说不完,大家如果有什么好的思路,也可以在下方评论或关注我给我留言。
(1)存储记录结构设计综合分析数据存储要求和应用需求,设计存储记录格式
(2)存储空间分配存储空间分配有两个原则:①存取频度高的数据尽量安排在快速、随机设备上,存取频度低的数据则安排在速度较慢的设备上
②相互依赖性强的数据尽量存储在同一台设备上,且尽量安排在邻近的存储空间上
从提高系统性能方面考虑,应将设计好的存储记录作为一个整体合理地分配物理存储区域
尽可能充分利用物理顺序特点,把不同类型的存储记录指派到不同的物理群中
(3)访问方法的设计一个访问方法包括存储结构和检索机构两部分
存储结构限定了访问存储记录时可以使用的访问路径;检索机构定义了每个应用实际使用的访问路径
(4)物理设计的性能评价①查询响应时间从查询开始到有结果显示之间所经历的时间称为查询响应时间
查询响应时间可进一步细分为服务时间、等待时间和延迟时间
在物理设计过程中,要对系统的性能进行评价
性能评价包括时间、空间、效率、开销等各个方面
⊙CPU服务时间和I/O服务时间的长短取决于应用程序设计
⊙CPU队列等待时间和I/O队列等待时间的长短受计算机系统作业的影响
⊙设计者可以有限度地控制分布式数据库系统的通信延迟时间
②存储空间存储空间存放程序和数据
程序包括运行的应用程序、DBMS子程序、OS子程序等
数据包括用户工作区、DBMS工作区、OS工作区、索引缓冲区、数据缓冲区等
存储空间分为主存空间和辅存空间
设计者只能有限度地控制主存空间,例如可指定缓冲区的分配等
但设计者能够有效地控制辅存空间
③开销与效率设计中还要考虑以下各种开销,开销增大,系统效率将下降
⊙事务开销指从事务开始到事务结束所耗用的时间
更新事务要修改索引、重写物理块、进行写校验等 *** 作,增加了额外的开销
更新频度应列为设计的考虑因素
⊙报告生成开销指从数据输入到有结果输出这段时间
报告生成占用CPU及I/O的服务时间较长
设计中要进行筛选,除去不必要的报告生成
⊙对数据库的重组也是一项大的开销
设计中应考虑数据量和处理频度这两个因数,做到避免或尽量减少重组数据库
在物理设计阶段,设计、评价、修改这个过程可能要反复多次,最终得到较为完善的物理数据库结构说明书
建立数据库时,DBA依据物理数据库结构说明书,使用DBMS提供的工具可以进行数据库配置
在数据库运行时,DBA监察数据库的各项性能,根据依据物理数据库结构说明书的准则,及时进行修正和优化 *** 作,保证数据库系统能够保持高效率地运行
6
程序编制及调试在逻辑数据库结构确定以后,应用程序设计的编制就可以和物理设计并行地展开程序模块代码通常先在模拟的环境下通过初步调试,然后再进行联合调试
联合调试的工作主要有以下几点:(1)建立数据库结构根据逻辑设计和物理设计的结果,用DBMS提供的数据语言(DDL)编写出数据库的源模式,经编译得到目标模式,执行目标模式即可建立实际的数据库结构
(2)调试运行数据库结构建立后,装入试验数据,使数据库进入调试运行阶段
运行应用程序,测试(3)装入实际的初始数据在数据库正式投入运行之前,还要做好以下几项工作:(1)制定数据库重新组织的可行方案
(2)制定故障恢复规范(3)制定系统的安全规范7
运行和维护数据库正式投入运行后,运行维护阶段的主要工作是:(1)维护数据库的安全性与完整性
按照制定的安全规范和故障恢复规范,在系统的安全出现问题时,及时调整授权和更改密码
及时发现系统运行时出现的错误,迅速修改,确保系统正常运行
把数据库的备份和转储作为日常的工作,一旦发生故障,立即使用数据库的最新备份予以恢复
(2)监察系统的性能
运用DBMS提供的性能监察与分析工具,不断地监控着系统的运行情况
当数据库的存储空间或响应时间等性能下降时,立即进行分析研究找出原因,并及时采取措施改进
例如,可通修改某些参数、整理碎片、调整存储结构或重新组织数据库等方法,使数据库系统保持高效率地正常运作
(3)扩充系统的功能在维持原有系统功能和性能的基础上,适应环境和需求的变化,采纳用户的合理意见,对原有系统进行扩充,增加新的功能
方法/步骤
常见数据库设计
一主多从
冗余读库带来的副作用:读写有延时,可能不一致;写仍然是单点,不能保证写高可用。
主库冗余
存在数据不一致问题
数据读取速度
利用缓存来实现
常见缓存设计如下
数据库的设计过程大致可分为以下六个阶段:
1 需求分析阶段
需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
2 概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
3 逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。
4 数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
5 数据库实施阶段
运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
6 数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
以上就是关于数据库设计的步骤是什么全部的内容,包括:数据库设计的步骤是什么、【数据库设计】与【建立数据库】的区别、毕业答辩,数据库是如何设计的 怎么回答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)