博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库范式
阅读量:7052 次
发布时间:2019-06-28

本文共 360 字,大约阅读时间需要 1 分钟。

第一范式(1NF)

确保每列保持原子性,所有字段值都是不可分解的原子值。

第二范式(2NF)

确保每列都和主键相关,要求表中每一列都和主键相关,不能只与主键的某一部分相关。即在一个表中,只能保存一种数据,不能把多种数据保存在同一张表中

比如要设计一个订单信息表,因为订单中可能有多种商品,所有要将订单编号和商品编号作为数据库表的联合主键

这样有一个问题:表中以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、价格等信息不与该表主键相关,而是仅仅与商品编号相关。所以在这里违反第二范式原子。

修改后如下:

这样设计,在很大程度上减小了数据库的冗余。

第三范式(3NF)

确保每列都和主键直接相关,而不是间接相关。

 

转载于:https://www.cnblogs.com/ecosu/p/4286026.html

你可能感兴趣的文章
第五天:Before -- CMD
查看>>
Docker软件安装系列。
查看>>
我的友情链接
查看>>
LEFT JOIN连表时,ON后多条件无效问题
查看>>
[20180423]flashback tablespace与snapshot standby.txt
查看>>
php中禁止单个ip与ip段访问的代码小结
查看>>
LeetCode-330.Patching Array
查看>>
zxing生成二维码转base64 img直接显示 Image对象转Base64码(java)
查看>>
xfire冲突问题解决(maven配置)
查看>>
C#面向对象(三)接口实现多态
查看>>
Linux下用Java获取本机IP
查看>>
Eclipse的Spring库导入
查看>>
velocity 判断 变量 是否不是空或empty
查看>>
【leetcode】123. Best Time to Buy and Sell Stock III
查看>>
角色设计的特点
查看>>
sublime text格式化json快捷键
查看>>
获得数据库自动生成的主键
查看>>
磁盘阵列
查看>>
y轴数据变换利器——yaxis-transformer
查看>>
Hibernate缓存机制
查看>>