数据库设计——笔记

近日公司要求进行数据库方面的相关设计,但是由于记忆常年不翻动,主要着重与使用,大部分都忘记了,所以重新拾起,去旧迎新,记录于此,仅供自身参考,如有错误,敬请指教。

学习过程中参考许多,未能全部列出,敬请见谅。

引入:

        数据库设计简介,来源百科​​​​​​(​数据库设计_百度百科

数据库设计:


数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。

数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护

数据库设计是一个异常复杂的过程,最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。

​在数据库设计中,遵循一些原则,可以给整个软件带来很多好处。因为数据库一般处于软件开发层次中低层。

例如:一对一设计原则,独特命名原则,双向使用原则等等。

好的数据库设计,可以带给整个软件开发流程,利于资源节约,利于软件运行速度的提高,利于软件故障的减少等等。

设计过程应做到:明确用户需求,重视数据维护,增加命名规范性,充分考虑数据库优化与效率的问题,不断调整数据之间的关系,合理使用索引。

可能涉及问题:业务基本需求无法得到满足、数据库性能不高、数据库的扩展性较差、数据资源冗余、表与表之间的耦合过密等。

至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。

摘自:钱博韬.计算机软件数据库设计的重要性以及原则研究[J].中小企业管理与科技,2018,(33):138-139.

在数据库设计中按六阶段:

需求分析:数据流程图(DFD)

        基于用户调研,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。在需求分析中,通过自顶向下,逐步分解的方法分析系统,分析的结果采用数据流程图(DFD)进行图形化的描述。

概念结构设计:E-R模型

        概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。

E-R模型参考(E-R模型---概念结构设计_回家养老-CSDN博客_e-r模型)

逻辑结构设计:逻辑数据库

        主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑s数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。

物理结构设计:物理数据库

根据特定数据库管理系统所提供的多种储存结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。

验证设计:验证测试

在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。

运行与维护设计:调整修改

在数据库系统正式投入运行的过程中,必须不断地对其进行调整与修改。

目前参照主流关系型数据库mysql设计:主要过程是,通过需求(业务流程图,系统功能结构图等),得到各种DFD模型和数据字典,再通过前面模型,分析处理得到E-R模型。

得到E-R模型后,进行将E-R转化为逻辑数据库,在通过三范式和反三范式等规范,结合实际情况业务逻辑等,进行逻辑数据库调整,在设计出表结构(和其文档说明)。

在从逻辑数据库基础上,进行物理数据库设计,存储介质选择,建立数据库,建表(视图),索引设计(优化),数据库服务器性能优化等等。

其中综合各阶段较为重要的有:需求分析,数据流程图,E-R模型,数据字典,设计范式,索引优化等。

关系型数据库设计,仅供自身参考,特别是后面,自身并未达到该级别,仅用于拓展

        数据流程参考(数据流程图_百度百科)

        E-R模型参考(E-R模型---概念结构设计_回家养老-CSDN博客_e-r模型)

        数据字典参考(数据字典_百度百科

        范式参考(mysql知识点整理】 --- 三范式和反三范式_nrsc-CSDN博客_反三范式, 

        数据库设计的5种常见关系_每天进步一点点-CSDN博客_常见关系数据库)

        索引优化参考(MySQL 索引优化全攻略 | 菜鸟教程)

        数据库服务器性能优化(linux系统数据库服务器的性能调优方法论 - 知乎)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值