数据库设计原则之三大范式
来源:互联网 发布:百度浏览器 for mac 编辑:程序博客网 时间:2024/05/16 08:13
首先声明,本文为笔记记录。可能不适合作为博客文章,所以如果看着不舒服,还望“另请高明”,(^__^) 嘻嘻……
数据库设计的时候有三大范式,现简述如下:
第一范式(1NF): 原子性,数据不可再分
原则就是使得表列为原子性,每一个字段内容不能再分解。
第二范式(2NF):唯一性,消除部分依赖
第二范式要求满足如下两个要求,
每一行数据具有唯一性
这一点,只要是有主键就可以实现。因为主键的存在使得每一行数据都具有唯一性。
消除数据之间的部分依赖
依赖的定义:主键确定了其他字段,其他字段依赖于主键而存在。
:
部分依赖: 某个字段值依赖于部分字段,则发生这种现象的前提是该表主键位置拥有多个字段。
:
完全依赖: 某个字段完全依赖与主键的所有字段。当一个表的主键仅有一个字段时,必然是完全依赖。
解决办法:
将部分依赖转换成完全依赖,拆表!
将原来存在部分依赖的表拆分,简单来说就是该表主键有几个字段,就拆成(几个+1)的表,前几个字段将分别作为其所在表的唯一主键,即成为完全依赖模式。最后一个表为之前的那几个字段并存的联合主键。用于维护表与表之间的关系。
第三范式(3NF):独立性,消除传递依赖
也就是说,有些字段的值能够使用现有的表列来计算得出,这样的字段就属于冗余字段,会产生传递依赖现象。
解决办法
将传递依赖部分提取出来,拆表!
将原来的表中存在传递依赖的字段提取出来,新建一个表。该新表的主键即为原表中被依赖的那个字段。此字段在原来的表中将作为外键而存在。
1 0
- 数据库设计原则之三大范式
- (补充)数据库设计原则之三大范式
- 数据库表设计三大范式原则
- 设计原则范式 之 数据库设计三范式
- 数据库设计之三大范式
- 数据库设计之三大范式
- 数据库设计之三大范式
- 数据库设计--三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- layout 文件text/design 不能预览界面问题处理
- ubuntu下android虚拟机安装apk
- ios 让navigationItem的UIBarButtonItem的背景色不为蓝色,现实图片本身颜色
- [洛谷P1880]石子合并
- 多线程(三)线程控制之线程优先级
- 数据库设计原则之三大范式
- Qt界面设计常用技巧总结
- 集中精神
- IOS多线程相关:GCD及NSOperation的使用
- 在Mac OS上安装Java以及配置环境变量的基本方法
- sizeofc
- 前端开发技术的发展【转】
- ipython下matplotlib不显示图片
- 程序流程控制-选择结构