数据库范式-表结构设计规范
来源:互联网 发布:墨菲斯 知乎 编辑:程序博客网 时间:2024/06/11 05:26
引言
数据库表结构设计有一套规范。设计出的表结构应尽量避免不必要地冗余,同时要确证灵活性。只需要遵守公认的范式,就可以达到较合理地设计效果。同时,这些范式也是评价一个数据库表结构设计是否合理的标准。
范式:
1NF、2NF、3NF、BCNF,它们是一级包含一级的关系,即必须先满足第一范式,再判断是否满足第二范式。如果已经满足第二范式,再判断是否满足第三范式。1NF、2NF、3NF、BCNF是逐级递进的。只有符合范式要求的表结构设计才能说是合理的设计。
下面以学生成绩管理数据库来讲解这些范式:
1NF
表示属性值是不可分割
比如学生信息表t_student:
student字段不满足第一范式。因为该属性值可以再分割变为:
2NF
非主要的属性,必须完全依赖主要的属性,不能部分依赖
比如选课信息表:
(选课人、课程)才能确定这张表的唯一行。所以它是主属性。但是教材只与课程有关。教材并不依赖选课人。
那么问题来了,假设1万个选课行,那么教材发生修改就需要修改这1万行。而且如果某一门课,没人选,那如何插入呢?
所以这不符合2NF。解决方案是拆分成过个表。
3NF
表示非主属性不要依赖于其他非主属性
还以上述选课表为例。
同样,主属性是(选课人,课程),但是老师职称跟选课人没关系。只和上课老师相关。所以这就是非主属性依赖其他非主属性。不满足第三范式。
原文转载至:http://blog.csdn.net/qguanri/article/details/50102383
阅读全文
0 0
- 数据库范式-表结构设计规范
- 数据库范式-表结构设计规范
- mysql 数据库表结构设计与规范
- 表结构设计规范
- 数据库表结构设计浅谈
- 数据库表结构设计
- 数据库表结构设计浅谈
- 数据库表结构设计
- 数据库表结构设计方法
- 数据库表结构设计浅谈
- 数据库表结构设计
- ofbiz数据库表结构设计
- ofbiz数据库表结构设计
- 数据库表结构设计原则
- 数据库表结构设计
- ofbiz数据库表结构设计
- 数据库表结构设计方法
- 数据库设计中的范式规范
- MongoDB常用命令总结
- Java基础
- 【Swift】文档分享到其他应用
- 整理一下vim命令的基本用法
- Vue2.0进阶组件篇1 教你秒撸(短信倒计时组件)
- 数据库范式-表结构设计规范
- 个人工作笔记(20170522-20170527)
- 【PMP认证考试之个人总结】第 9 章 项目沟通管理
- Android面试整理(一)-- Fragment生命周期
- FreeBSD7 升级OpenSSL
- POJ 1419 Graph Coloring 笔记
- vue2.0全家桶项目实用代码片段
- MongoDB
- Android返回键处理、任务和home键处理