什么是数据库的实体关系图(ERD)?
实体关系图(Entity Relation Diagram,ERD),⽤于数据库设计的结构图,描述系统内的实体以及实体之间的关系。
1 何时绘制ERD?
1. 数据库设计 - 直接在数据库更改数据库结构会有风险, 为避免破坏数据库中的数据,需要仔细规划⼀切变更。通过绘制 ERD来展⽰数
据库设计蓝图,可以轻松出错误和识别设计缺陷,并在执⾏数据库更改之前作出修正。
2. 数据库调试 - 调试数据库问题往往具挑战性,特别是当数据库包含许多表时,需要编写复杂的SQL来获取所需的信息。通过 ERD来展
⽰数据库结构,可以全⾯地了解整个数据库的结构。可以轻松到实体,查看其属性并确定与别的实体的关系,从⽽更轻松地出数据库的问题。
3. 数据库创建和修补 - 像 Visual Paradigm 这样的 ERD软件⽀持数据库⽣成⼯具,可以通过ER图来⾃动⽣成和修补数据库。使⽤这个
ER图⼯具,ER设计不再仅仅是⼀个静态图,⽽是⼀个真实反映物理数据库结构的镜像。
4. 帮助收集需求 - 通过绘制 ERD来表达系统中的⾼级业务对象以⽤于确定系统的需求。这种初始模型也可以演化为物理数据库模型,⽤
于创建关系数据库,或为创建流程图和数据流模型提供有⼒的参考。
2 ERD符号
ER图包含实体、属性和关系。
1. 实体
ERD 实体是⼀个系统内可定义的事物或概念,对应数据库中的表,如⼈/⾓⾊(例如学⽣),对象(例如发票),概念(例如简介)或事件(例如交易)。在 ER 模型中,实体⽤矩形表⽰,其名称位于上⽅,其属性列在实体形状的主体中,如下图所⽰。
2. 实体属性
属性也称为列、字段。⼀个属性包括属性名、类型以及长度、是否可为空,以及主键、外键等标识。
主键(Primary Key,PK),是⼀种特殊的实体属性,⽤于界定数据库表中的记录的独特性,⼀个表只能拥有⼀个主键。
外键(Foreign Key,FK),是对主键的引⽤,⽤于识别实体之间的关系。⼀个表的外键可以有多个,且多个记录可以共享相同的外键值。下⾯的 ERD ⽰例展⽰了实体中的外键引⽤另⼀个实体。
什么是关系数据库
3. 关系
两个实体之间的关系包括1对1,1对多和多对多。
1对1:主要⽤于将实体分成两部分,简洁地将资讯呈现,使读者更容易理解。
1对多:X 的⼀个实例可以链接到Y的许多实例,⽽ Y 的⼀个实例仅链接到 X 的⼀个实例。
多对多:在设计数据库时,多对多关系通过⼀个操作的实体被分成两个⼀对多的关系,如下图学⽣与课程之间是多对多关系,通过增加⼀
个“选课”操作实体,转变为两个⼀对多关系。
3 概念,逻辑和物理数据模型
ER 模型通常被绘制成三个抽象层次上:概念ERD、逻辑ERD和物理ERD。虽然 ER 模型的三个层次都包含有属性和关系的实体,但它们的创建⽬的和⽬标受众都不同。
⼀般⽽⾔,业务分析⼈员使⽤概念和逻辑模型来展⽰系统中存在的业务对象,⽽数据库设计⼈员或数据库⼯程师设计更详细的物理数据模型,⽤于数据库的设计。下表列出了三种数据模型之间的差异。
物理数据模型⽰例:
4 设计ERD的步骤
1. 明确绘制ERD 的⽬标。对涉及业务对象定义的整体系统架构深⼊理解。
2. 清楚模型的范围。了解建模范围可以防⽌在设计中包含冗余实体和关系。
3. 画出范围内的主要实体。
4. 添加实体的属性。
5. 仔细检查 ERD 的实体和列是否⾜以存储系统的数据。如果不是,考虑添加其他实体和列。通常可以在此步骤中确定⼀些事务
(Transactional),操作 (Operational) 和事件 (Event) 实体。
6. 确定所有实体之间的关系,将它们联系起来。如果有实体沒有被连接,请不要担⼼,虽然不常见,但它是合法的。
7. 使⽤数据库规范化技术 (如mysql数据库的范式)重构实体,以减少冗余数据和提⾼数据完整性。例如,“制造商”的相关属性可能最
初存储在“产品”实体下,通过规范化过程,会发现“制造商”的记录不断重复,于是可将其拆分为单独的“制造商”实体,并使⽤外键將“产品”和“制造商”连接起來。
5 ERD⽰例
电影租赁系统
贷款系统
在线商店
6 参考
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论