数据库三大范式的具体例子

第一范式:字段不可分割

例:联系方式 可分为电话、邮箱


第二范式:在第一范式的基础上,其他属性完全依赖主键


第三范式:在第二范式的基础上,其他属性消除传递依赖

好的,我来给您举几个例子。 首先,我们来看一下第一范式(1NF)。1NF要求每个属性都是原子性的,不可再分。例如,考虑以下一个表格: | 学生姓名 | 课程1成绩 | 课程2成绩 | 课程3成绩 | | -------- | ---------- | ---------- | ---------- | | 张三 | 80 | 90 | 85 | | 李四 | 70 | 75 | 80 | | 王五 | 85 | 80 | 90 | 这个表格不符合1NF,因为课程成绩不是原子性的,应该将其拆分为多个表格。更合理的表格应该是这样的: | 学生姓名 | 课程编号 | 成绩 | | -------- | -------- | ---- | | 张三 | 1 | 80 | | 张三 | 2 | 90 | | 张三 | 3 | 85 | | 李四 | 1 | 70 | | 李四 | 2 | 75 | | 李四 | 3 | 80 | | 王五 | 1 | 85 | | 王五 | 2 | 80 | | 王五 | 3 | 90 | 这个表格符合1NF,因为每个属性都是原子性的。 接下来,我们来看一下第二范式(2NF)。2NF要求满足1NF,且非主键属性完全依赖于主键。例如,考虑以下一个表格: | 作者 | 书名 | 出版社 | | --------- | --------------- | ------------ | | 张三 | 《数据库设计》 | 机械工业出版 | | 李四 | 《C语言教程》 | 人民邮电出版 | | 张三 | 《编程思想》 | 机械工业出版 | 这个表格不符合2NF,因为出版社属性不完全依赖于主键(作者+书名),而是和作者相关。更合理的表格应该是这样的: | 作者 | 书名 | | ---- | --------------- | | 张三 | 《数据库设计》 | | 李四 | 《C语言教程》 | | 张三 | 《编程思想》 | | 书名 | 出版社 | | --------------- | ------------ | | 《数据库设计》 | 机械工业出版 | | 《C语言教程》 | 人民邮电出版 | | 《编程思想》 | 机械工业出版 | 这个表格符合2NF,因为非主键属性(出版社)完全依赖于主键(作者+书名)。 最后,我们来看一下第三范式(3NF)。3NF要求满足2NF,且不存在传递依赖。例如,考虑以下一个表格: | 学生姓名 | 班级 | 班级所在学院 | 学院所在城市 | | -------- | ---- | ------------ | ------------ | | 张三 | 1 | 计算机学院 | 北京市 | | 李四 | 2 | 机械学院 | 上海市 | | 王五 | 3 | 化学学院 | 北京市 | 这个表格不符合3NF,因为班级所在学院和学院所在城市之间存在传递依赖,即班级 -> 班级所在学院 -> 学院所在城市。更合理的表格应该是这样的: | 学生姓名 | 班级 | 班级所在学院 | | -------- | ---- | ------------ | | 张三 | 1 | 计算机学院 | | 李四 | 2 | 机械学院 | | 王五 | 3 | 化学学院 | | 学院名称 | 学院所在城市 | | ---------- | ------------ | | 计算机学院 | 北京市 | | 机械学院 | 上海市 | | 化学学院 | 北京市 | 这个表格符合3NF,因为不存在传递依赖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值