首页 > 编程知识 正文

数据库设计分为以下六个阶段,数据库设计包含四个阶段

时间:2023-05-03 11:22:47 阅读:202124 作者:572

一、系统需求分析阶段

数据库设计的第一步,就是了解与分析用户需求,确定系统边界信息需求、处理需求、安全性和完整性需求,然后编写系统分析报告。

系统分析报告的内容主要包括:

随系统分析报告需提供的附件还有:

需求分析有两种方法:自顶向下和自底向上。

具体来说,自底向上的分析,是从具体到抽象;而自顶向下的分析,则是从抽象到具体。举个例子就比较好理解了:

比如你想搭建一个电子商务网站,如果你是先确定核心模块包括哪些,然后根据每子模块的属性继续往下分。那么这种就是自顶而下的分析。

反之,如果你是先整理出大量的属性,然后对这些属性进行归纳总结出几大模块,那么就是自底向上的分析。

二、概念结构设计阶段

概念结构设计,就是将上一阶段通过需求分析得到的用户需求抽象为概念结构,或称为概念模型(整个过程,其实就是我们前面提到的自底向上的分析)。描述概念模型的有力工具是E-R模型。

E-R模型由三大要素组成,分别是实体、属性和联系。

实体是一个数据的使用者,代表软件系统中客观存在的生活中的实物,比如物体、人、部门、项目等;实体中的所有特性称为属性,如用户有特定的姓名、性别、住址、电话、邮箱等元素;实体与实体间存在联系,如,某一个人在某个公司的某个部门工作,其中的实体有"某个人"、“某个公司”和"某个公司的某个部门"。

E-R模型的绘制需要遵循三范式原则:


三、逻辑结构设计阶段

数据库逻辑设计,则是将上一阶段的概念结构转换成特定DBMS所支持的数据模型的过程。如下图所示:

其中初始关系模式设计过程,就是将E-R模型向关系模式的转换。

转换中要遵循以下原则:

一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键;具有相同主键的关系可以合并;一个联系转换为一个关系模式,分为以下几种情况:

一个1:1的联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
一个1:N的联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

假如有老师和学校两个实体,一个学校可以招收多个老师,但是一个老师只能选择一个学校(这里不讨论特殊情况), 因此学校和老师是1:N的关系。现在要转换为关系模型,我们只需在老师的这端加上学校的唯一标识即可,这样做的原因是,因为一个老师只能在一个学校,学校相对老师是唯一的。

一个M:N的联系转换为一个关系。关系的属性由联系本身的属性和与之联系的实体的主键组成,关系的主键由联系中各实体的主键组合而成(组合键)。

四、物理结构设计阶段

物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构。

1.选择哪种数据库

商业数据库(更适合企业级项目),比如:Oracle、SQLServer
开源数据库(适用于互联网项目)。比如:MySQL、PgSQL

2.数据库表级字段的命名规则:

可读性原则:使用大写和小写来格式化的库对象名字以获得良好的可读性
表意性原则:对象的名字应该能够描述它所标识的对象
长名原则:尽可能少使用或者不使用缩写,适用于数据库(DATABASE)名之外的任一对象

3.数据库字段类型选择原则

以上选择原则主要是从下面两个角度考虑:

1)在对数据进行比较(查询条件、JOIN条件及排序)操作时:同样的数据,字符处理往往比数字处理慢
2)在数据库中,数据处理以页为单位,列的长度越小,利于性能提升。

4.数据库设计其它注意事项

1)区分业务主键和数据库主键:业务主键用于标识业务数据,进行表与表之间的关联;数据库主键为了优化数据存储(Innodb会生成6个字节的隐含主键)

2)根据数据库的类型,考虑主键是否要顺序增长:有些数据库是按主键的顺序逻辑存储的

3)主键的字段类型所占空间要尽可能的小:对于使用聚集索引方式存储的表,每个索引后都会附加主键信息

严格来说,数据库设计还有后续的实施阶段和运行维护阶段,如果继续展开下去又得半小时,这里就不做复述了(其实是想偷懒)。感兴趣的朋友可以在我整理的数据库资源包里找到续篇,包里还有其他数据库相关的思维导图学习资料,一并分享给大家。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。