三大范式NF
1NF:确保每列的原子性(不可再分)
student
id name address
1 zs 陕西省西安市长安区
拆:
id name province city zone
2NF:
宏观:每张表只描述一件事情(例如,一个student表 描述的全部是学生字段)
赖于 :A->B,
换种说法:“决定”的反义词, B->A
微观:通过2NF定义:除了主键以外的其他字段,都依赖于主键
a,b,c,d,e
3NF:
微观:除了主键以外的其他字段,都不传递依赖于主键
A->B
B->决定于A
X->Y->Z: X传递决定了Z; Z传递依赖于X
a, b, ,d , e
100 : 100 a-> b-> c
100- >多张表?
注意:
要么满足第N范式,必须先满足第N-1范式。
三大范式 可以帮助我们 规范数据的设计,好处是 防止数据混乱、数据冗余(重复)
缺点: 很难严格排除出所有不满足的表,并且 难以拆分 ;会一定程度影响性能
x->拆?
a
select …from a;
a-a+b+c
select …a,b,c where 关联查询 ,多表查询 会比单表查询更加 消耗性能。
建议:三大范式 只是一个建议,不必严格遵守。
实际使用时,需要“规范性”和“易用性、性能”间综合考虑
数据库设计软件:
Power Designer
General:表名
name:给用户看的,只是用于显示
code:代码实际操作的
在PD设计完毕后,可以自动生成代码:ctrl+G