文章目录
一、数据模型三要素
数据模型三要素分别为
- 数据结构
- 数据操作
- 数据完整性约束
二、范式
范式即设计数据库时,需要遵循的一些规范。要遵循后面的要求,就必须遵循前面的所有范式要求。
关系数据库中共有6种范式,分别为
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- BC范式
- 第四范式(4NF)
- 第五范式(5NF)
满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
1.第一范式(1NF)
第一范式即数据表的每一列都是不可分割的基本数据项。
如“出生日期”一列中,如果再分割为“阳历出生日期”和“农历出生日期”,就不符合第一范式。
2.第二范式(2NF)
第二范式是在第一范式的基础上建立起来的,满足第二范式就必须满足第一范式。
在第一范式的基础上,数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖,则满足第二范式。
- 部分函数依赖:存在组合关键字中的某些字段决定非关键字段的情况
学号 | 姓名 | 年龄 | 课程名称 | 成绩 | 学分 |
---|---|---|---|---|---|
001 | 张三 | 20 | 程序设计 | 90 | 4 |
001 | 张三 | 20 | 数据结构 | 88 | 3 |
002 | 李四 | 21 | 程序设计 | 74 | 4 |
002 | 李四 | 21 | 数据结构 | 70 | 3 |
上表中存在关系:(学号,课程名称)->(姓名,年龄,成绩,学分)。所以不满足第二范式。
不符合第二范式,此关系表会存在以下问题:
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
将上关系表改为以下关系表:
- 学生
学号 | 姓名 | 年龄 |
---|---|---|
001 | 张三 | 20 | <