数据库设计步骤
数据库的设计分为以下3个步骤:
- 设计概念模型(conceptual model)。在关系型数据库中,我们使用ER图来进行概念模型的设计。ER图的作用是:表示出各个实体之间的关系,方便在下一步的逻辑模型设计时书写相应的代码。
- 设计逻辑模型(logical model)。在这一步中,我们需要将人可以读懂的ER模型转化为机器可以读懂的逻辑模型,即我们需要书写数据库模式(SQL schema)来实现我们的模型。
- 物理模型设计(physical model)。物理模型关乎于数据库在储存器中如何存放,这一步的实现交由数据库管理系统(DBMS)进行。
接下来本节主要介绍ER图的一些基本概念
ER图基本概念
ER代表Entity-Relationship, 意思是实体关系,我们使用ER图来绘制一个关系型数据库中的各种关系。ER图由以下3中基本的成分组成:
- 实体(entity):方框表示,一般用全大写字母单词或大写字母开头单词进行命名
- 属性/字段(attribute): 菱形框表示,小写字母进行命名
- 关系(relationship):椭圆框表示,大写字母开口的单词进行命名
其中一段关系有3个属性:
- 度数(Degree):表示参与到一段关系中的实体数量
- 基数(Cardinality):表示参与关系中的实体的对应关系(一对一、一对多、多对多)
- 参与度(Participation):表示是否所有在实体集中的元素都要参与到关系当中(全体参与(total)、部分参与(partial))
上图中的实体:
- 银行分行(Branch)
- 账户(Account)
- 用户(Customer)
关系:
- 持有关系(HeldAt)。一个账户只可以被持有在一个分行(加粗黑线表示total participation的一对多关系),而一个分行可以持有多个账户(箭头表示一对一的关系)
- 拥有(Owns)。一个用户可以拥有一个账户。
- 所属分行(HomeBranch)。一个用户开卡的所在的分行。