为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

犯罪嫌疑人X 2018-08-01 12:19:41
如题,面试的时候,被问到:数据库设计范式的理解?只记得在大学的离散数学中学过第一范式,第二范式,这些定义,工作中还没有舍身处地的使用过这些范式,也不知道在表结构的设计当中,应当如何注意这部分的内容?麻烦这方面的大神指点一二,非常感谢~~~
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

其实不仅仅只有三个范式,学校只教了三大范式。
对于理解的范式我觉得可以从以下几个方面入手

范式的作用

  • 减少了数据的冗余,硬盘占有量下降,即提高了存储效率(范式出来的那个年代存储空间还是挺贵的)

  • 增加数据的一致性。

  • 抽象化,方便理解(实体-联系)

范式的缺点

  • 增加了查询检索的难度(那么多关联,写SQL想想也是醉了)

  • 查询效率低

反范式的出现

  • 反范式到第一范式或者第二范式,通过冗余数据,加快查询数据

  • 虽然存储效率低了,但是现在的存储空间成本还是比较低的。

  • 增加查询速度,低价值的数据冗余了,对查询数据有很大提升

无范式的出现

  • 文档型数据库的出现(例如:mongodb),对于关系型数据库的冲击不言而喻。

就写这么多,有不对的地方还望指教。


查看完整回答
反对 回复 2018-08-04
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

  • 第一范式:所有字段值都是不可分解的原子值。如人员信息地址这样的字段不满足第一范式,因为地址可以再细分为省份,城市等字段。

  • 第二范式:每一列都和主键相关,而不能只与主键(联合主键)的某一部分相关。

  • 第三范式:第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。


查看完整回答
反对 回复 2018-08-04
  • 2 回答
  • 0 关注
  • 794 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信