CPT-103复习3
主要是数据库设计方法
Lec6
Database Design
两种被广泛使用的设计方法Entity Relationships Modeling
- Top-down approach
- Suitable to structurally construct database
Normalization
- Bottom-up approach
- Suitable to transform/fit excel data into database
flowchart A(Conceptual Model)-->B(Logical Model)-->C(Physical Implementation)
Entity Relationships Modeling
Components:
- Entities : objects or items of interest. 指实体
- Attributes : properties of an entity. 指实体的属性
- Relationships : links bewtwwn entities. 指实体之间的关系
- 实体间的关系可以是
- 一对一的,例如一个导员对应一个班级,同时一个班级也只有一个导员
- 一对多的,例如一个导员管理多个学生,同时每个学生都只有一个导员
- 多对多的,例如一个学生学习多个科目,同时一个科目中会有多个学生
Designing ER Models
- 先找出实体,他们通常是名词
- 将实体使用圆弧方框在空间中排列
- 再寻找实体之间的关系,使用菱形表示在空间中。
- 寻找关系的类型,并以此关联实体
- 拆分多对多的关系,使用添加实体的方法将其变为多个一对多的关系
- 合并一对一的关系,将两个实体合为一个
- 寻找实体的属性,并保证相互关联的实体拥有相同的沟通属性
- 步骤5,6酌情处理。
- 当难说某个东西是实体还是属性时,一般准则
- 实体可以有属性,但属性不会有更小的部分
- 实体之间可以有关系,但属性只属于单一的实体
Lec7
Normalization
范式
1NF 第一范式
- 符合1NF的关系中的每个属性都不可再分。不存在表中套表的情形
- 所有的键的属性(列)都已经定义
- 没有任何重复的组。每行和每列的交汇处有且只有一个值。
- 所有的属性(列)都依赖于主键
问题:
- 数据冗余过大
- 插入异常
- 删除异常
- 修改异常
2NF 第二范式
- 表遵循第一范式
- 表不包含部分依赖。即非主属性完全函数依赖于主属性
概念
函数依赖
在一张表中,在属性或属性组K的值确定的情况下,那么属性Y的值也被确定了。这种映射可以被称为函数依赖。例如 学生学号姓名 就是函数依赖 - 完全函数依赖
在一张表中,若,并且对于X的任何一个真子集, ,那么Y对于X完全函数依赖,计作 。例如 (学号,科名) 分数 - 部分函数依赖
若同时 ,那么Y则部分函数依赖于X,计作 。 - 传递函数依赖
假如同时 ,那么,Z传递函数依赖于X,计作 。
- 完全函数依赖
码
设K为某表中的一个属性或属性组,若除K之外的所有属性都完全函数依赖于K,那么我们称K为候选码,简称码。一张表中可以有不止一个码主属性
包含在任意一个码中的属性称为主属性非主属性
不包含在任何一个码中的属性称为非主属性
3NF 第三范式
- 表遵循第二范式
- 表不包含函数传递依赖
BCNF BC范式/3.5范式
- 表遵循第三范式
- 主属性不依赖于主属性