数据库之范式
来源:互联网 发布:英文原著 知乎 编辑:程序博客网 时间:2024/06/01 15:14
数据库范式的应用主要用来降低数据冗余,更好的划分设计数据库的关系表结构,总共包含5个级别的范式。这些范式在较少不必要的重复,节省存储空间的同时却也带来了查询开销,因为复杂的关系表结构必然带来了更加多的连接操作。在应用中要根据应用场合来适当的平衡范式带来的得失。下面简单看看第1,2,3范式和BCNF。
Example:T(A, B, C, D, E)
第一范式:表的所有字段都是单一属性,不可再分。基本的关系表都满足这个范式。
第二范式:不存在非关键字段对候选关键字段的部分依赖。例如表T中,如果(A, B)是候选关键字,而A作为它的一个字段被C依赖,即A->C,那么就是C对(A, B)的部分依赖。这就表明了C和A应该组成一个新的表,新表中A作为候选关键字。
第三范式:不存在非关键字段对候选关键字的传递依赖。例如表T中,如果(A)是候选关键字,而A->B->C,那么C就是对A的传递依赖。这里由于是在第二范式的基础上定义,B必然不是候选关键字段。传递依赖的存在表明B和C应该组成一个新表,B作为候选关键字,这样在T中消除C。
BCNF:不存在任意字段对候选关键字段的传递依赖。例如表T中,如果(A, B),(B, C)都是候选关键字。而且A->C,C->A,那么就会出现(A, B)->C->A,A对(A, B)传递依赖。造成这样的原因是由于A,C互相依赖,应该把它们作为一个表单独出来,然后用任意一个代表出现在T中就可。
上面的定义都是没进一层的范式都是定义在上一层的基础上。
- 数据库之数据库范式
- 数据库之范式
- 关系数据库之范式
- 数据库设计之范式
- 数据库设计之范式
- 数据库之范式
- 数据库之范式详解
- 数据库之范式详解
- 数据库之三范式
- 数据库 之 范式浅析
- 数据库之三范式
- 数据库之范式
- 数据库进阶之数据库范式
- 数据库原理之第一范式、第二范式、第三范式
- 数据库设计之三范式
- 数据库情结之三范式
- 数据库设计之第三范式
- 关系数据库之 三个范式
- java常用方法
- 学习JAVA
- JDBC连接数据库经验技巧集萃
- 重整状态,从博客开始
- Partial Class
- 数据库之范式
- NAT的完全分析及其UDP穿透的完全解决方案
- AjaxPro.NET框架生成高效率的Tree
- Let's talk OOP Again
- 未来的 PC 会怎样
- 一个程序员对学弟学妹建议
- 读写INI文件的四个函数
- VS2005项目的安装与布署
- 一个程序员应该具备的基础知识和概念