Data Modeling
- Understand the requirements:充分理解和分析业务需求。
- Build a Conceptual Model:识别业务中的实体、事物或概念以及它们之间的关系。
- Build a Logical Model:生成一个数据模型或数据结构用以存储数据。
- Build a Physical Model:在这个模型中。你需要具备由数据库技术支持的确切的数据类型。列默认值、表主键。以及其他对象,如视图、存储过程触发器等等
三种数据模型
Conceptual Model(概念模型)
-
作用:表示业务中的实体、事物或概念以及它们之间的关系。
-
可视化方法
1.Entity Relationship(实体关系-ER)
示意图:
2.Unified Modeling Language(标准建模语言-UML)
Logical Model(逻辑模型)
- 作用:逻辑模型为我们的概念模型增加了更多细节,这样我们见乎了解什么结构或什么表需要用来存储数据。
- 示意图
Physical Model(实体模型)
- 作用:在数据库中进行建模
Normalization(标准化)
- 作用:审查数据库设计,防止数据重复预定义。
- First Normal Form(第一范式):每个单元格都应该有单一值,且不能出现重复列。
注意:关系型数据库只有“一对一”,“一对多”关系,没有“多对多”关系,如果需要实现两个表的“多对多”关系,则需要使用链接表,拆分成两段“一对多”关系。
示意图:courses表的tags违反了第一范式,修改如下
- Second Normal Form(第二范式):
1、满足第一范式
2、每张表都应该有一个单一目的。换句话说,它应该只能代表一种且仅有一种实体类型,而表中的每一列都应该用来描述那个实体。
示意图:courses表中的instructors违反了第二范式,修改如下
- Third Normal Form(第三范式):
1、满足第二范式
2、表中的列不应该派生自其他列
举例:在customers表中,已经有first_name和last_name,就不能再出现full_name,违反了第三范式
Don’t jump into creating tables!