如题,面试的时候,被问到:数据库设计范式的理解?只记得在大学的离散数学中学过第一范式,第二范式,这些定义,工作中还没有舍身处地的使用过这些范式,也不知道在表结构的设计当中,应当如何注意这部分的内容?麻烦这方面的大神指点一二,非常感谢~~~
2 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
其实不仅仅只有三个范式,学校只教了三大范式。
对于理解的范式我觉得可以从以下几个方面入手
范式的作用
减少了数据的冗余,硬盘占有量下降,即提高了存储效率(范式出来的那个年代存储空间还是挺贵的)
增加数据的一致性。
抽象化,方便理解(实体-联系)
范式的缺点
增加了查询检索的难度(那么多关联,写SQL想想也是醉了)
查询效率低
反范式的出现
反范式到第一范式或者第二范式,通过冗余数据,加快查询数据
虽然存储效率低了,但是现在的存储空间成本还是比较低的。
增加查询速度,低价值的数据冗余了,对查询数据有很大提升
无范式的出现
文档型数据库的出现(例如:mongodb),对于关系型数据库的冲击不言而喻。
就写这么多,有不对的地方还望指教。
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
第一范式:所有字段值都是不可分解的原子值。如人员信息,地址这样的字段不满足第一范式,因为地址可以再细分为省份,城市等字段。
第二范式:每一列都和主键相关,而不能只与主键(联合主键)的某一部分相关。
第三范式:第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
添加回答
举报
0/150
提交
取消