猿问

面试时候问:数据库设计范式的理解

如题,面试的时候,被问到:数据库设计范式的理解?只记得在大学的离散数学中学过第一范式,第二范式,这些定义,工作中还没有舍身处地的使用过这些范式,也不知道在表结构的设计当中,应当如何注意这部分的内容?

麻烦这方面的大神指点一二,非常感谢~~~


犯罪嫌疑人X
浏览 911回答 2
2回答

尚方宝剑之说

其实不仅仅只有三个范式,学校只教了三大范式。对于理解的范式我觉得可以从以下几个方面入手范式的作用减少了数据的冗余,硬盘占有量下降,即提高了存储效率(范式出来的那个年代存储空间还是挺贵的)增加数据的一致性。抽象化,方便理解(实体-联系)范式的缺点增加了查询检索的难度(那么多关联,写SQL想想也是醉了)查询效率低反范式的出现反范式到第一范式或者第二范式,通过冗余数据,加快查询数据虽然存储效率低了,但是现在的存储空间成本还是比较低的。增加查询速度,低价值的数据冗余了,对查询数据有很大提升无范式的出现文档型数据库的出现(例如:mongodb),对于关系型数据库的冲击不言而喻。就写这么多,有不对的地方还望指教。

小怪兽爱吃肉

第一范式:所有字段值都是不可分解的原子值。如人员信息,地址这样的字段不满足第一范式,因为地址可以再细分为省份,城市等字段。第二范式:每一列都和主键相关,而不能只与主键(联合主键)的某一部分相关。第三范式:第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
随时随地看视频慕课网APP
我要回答