• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【DAO】数据库三范式说明

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

************************************************************************ ****原文: blog.gaodaima.com/clark_xu 徐长亮的专栏 ************************************************************************ 第一范式: 概况为列的唯一性,不能有重复的列(

************************************************************************本文来源gaodaimacom搞#^代%!码网@

****原文:blog.gaodaima.com/clark_xu 徐长亮的专栏

************************************************************************

第一范式: 概况为列的值唯一性,不能有重复的列值(必须遵守);

反面例子:

名字 联系方式(字符串类型)

xxx 12345[email protected]

xxx [email protected]

xxx 12345;67890;[email protected]

危害性:为垃圾数据,无法删除,无法修改;

正确的设计方法:

名字 电话1 电话2 电话3 电话4 邮箱

第二范式, 属性完全依赖于主键(必须遵守

n 必须满足第一范式

n 必须有主键

n 其他列必须完全依赖于主键

错误的建表方法:

编号 姓名 性别 专业 专业课时

100 xxx m java 600

200 xxx f java 700

违反范式2的是另外一种含义,将两个实体放在同一个表中,不方便其中一个实体数据的单独维护

编号 姓名 性别 专业 专业课时

100 xxx m java 600

200 xxx f java 700

2

专业编号 专业 专业课时

001 java 600

002 java 700

3) 第三范式:属性不依赖其他非主属性

n 必须遵守第二范式

n 去除传递依赖

正确的设计方法为:

编号 姓名 性别 专业编号

100 xxx m 001

200 xxx f 002

2

专业编号 专业 专业课时

001 java 600

002 java 700

概况为:

范式2:一个表中不能含有两个实体的信息,必须含有一个实体

范式3:一个实体中不能引用其他实体的属性,只能引用其他实体的主键

注意:

在某些情况下,出于查询效率的考虑,可能会违反范式3,此时增加了冗余,查询的时候,不需要表连接,增加了表的执行效率,但是可维护性下降,一般为不建议经常维护的表违反第三范式。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【DAO】数据库三范式说明

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址