数据库的简单建模
写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。
- 对于文章中出现的任何错误请大家批评指出,一定及时修改。
- 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
- 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
数据库的简单建模
本文关键字:数据库、建模、概念模型、逻辑模型、物理模型
一、什么是数据库建模
数据库建模简单理解指的就是设计数据库的过程,根据一个应用的描述,去构建出最优的数据库模式(考虑数据的冗余,数据查询效率等因素),一般数据库建模可以被划分为六个阶段。
1. 需求分析阶段
需求分析阶段是最为重要的一个阶段,如果前期的需求分析的不明确,很可能导致数据库扩展性差,甚至于无法支撑对应的功能逻辑。通常会在这一阶段花费比较多的时间,最后产出需求文档作为成果物。
2. 概念结构设计阶段
概念设计阶段是以数据库的角度去解读需求的第一步,也是很关键的步骤,需要形成一个通用的(与具体DBMS无关)的概念模型,比较直观的可以用E-R图表示。
3. 逻辑结构设计阶段
在逻辑结构设计阶段需要对概念结构适当的具体化,将实体-关系的描述转换为某个DBMS的数据模型。可以进一步描述出表名、列名、数据类型(不需要太具体)、表间关系。
4. 物理结构设计阶段
物理结构的设计,要具体到某一个数据库软件、版本、表结构、主外键等,至此也就完成了数据库设计阶段,可以直接据此生成完整的SQL语句。
5. 数据库实施阶段
数据库实施阶段指的是按照已有的设计方案,在一个具体的数据库中进行实施:建库、建表、插入测试数据等。
6. 数据库运行和维护
数据库运行和维护阶段是一个长期的过程,随着应用的使用,可能会产生一些变化,如:添加数据维度,数据长度不足,约束关系收紧等,这个时候我们要针对实际情况来对数据库的结构来进行修改。
二、数据库模型的分类
基于数据库建模的各个阶段,可以把建立出来的模型根据特点归为以下几类。
1. 概念模型(CDM)
概念模型主要是基于客观世界实际存在的事物或场景进行的描述,不涉及到具体的DBMS和实现步骤。表示概念模型最常用的形式是使用E-R(实体-关系)图,包含以下三个要素:
- 实体:矩形
- 属性:椭圆
- 关系:菱形
- 一对一:根据一个实例,只能找到一个对应实例(如:一个学生 -> 一个班级)
- 一对多:根据一个实例,能够找到多个对应实例(如:一个班级 -> 多个学生)
- 多对多:根据一个实例,能够找到多个对应实例,反过来亦然(如:一个学生 -> 选多门课,一门课 -> 被多人选)
敲黑板:由于在数据库中直接表示两个多对多实体的关系会产生数据冗余,所以一般会有中间表的存在。
2. 逻辑模型(LDM)
逻辑模型指的是数据的逻辑结构,目的在于根据概念模型(E-R图表)进一步分解和细化,可以窥见到表结构的雏形与表间关系(数据实例)。如果存在多对多关系,也必须在这一阶段细化出中间表,在描述表间关系时,根据实际数据的可能情况可以划分为如下情况:
- 刻画一对一
- 0或1个:找不到或只能找到一个
- 唯一:有且只能找到一个
- 刻画一对多
- 0或多个:找不到或能找到多个
- 1或多个:能找到一个或多个
- 多个:一定存在多个
敲黑板:以上只是根据业务分析和数据的预期情况确定出的表间关系,用于展现整体业务情况。
3. 物理模型(PDM)
物理模型是对真实数据库的描述,要根据具体的数据库生成具体的表、字段、数据类型、数据长度、主键、外键、索引、约束条件等。
敲黑板:可以直接使用Navicat或PowerDesigner工具根据生成的物理模型导出对应的SQL或直接实施到数据库。
文章来源: blog.csdn.net,作者:小山猪的沙塔,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/u012039040/article/details/106166435
- 点赞
- 收藏
- 关注作者
评论(0)