ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库设计三范式(重要,面试)

2022-01-23 21:02:29  阅读:175  来源: 互联网

标签:教师 依赖 范式 数据库 面试 编号 主键 1001


4、数据库设计三范式

  4.1、数据库设计范式

  4.2、数据库设计范式

    3个

    第一范式:要求任何一张表必须有主键,每一个字段原子性不可再分

    第二范式:建立在第一范式的基础之上,要求所有非主键字段完全依赖主键,不要产生部分依赖。

    第三范式:建立在第二范式的基础上,要求所有非主键字段直接依赖主键,不要产生传递依赖

  声明:三范式是面试官常问

    设计数据库表的时候,按照以上的范式进行,可以避免表中数据的冗余,空间的浪费

  4.3、第一范式

    最核心,最重要的范式,所有表的设计都需要满足

    必须有主键,每一个字段原子性不可再分

    

 

    不满足第一范式,第一:没有主键。第二:联系方式可以分为邮箱地址和电话

  4.4、第二范式

     建立在第一范式的基础之上

     要求所有非主键字段完全依赖主键,不要产生部分依赖。

     

 

    不满足第一范式

    

 

     学生编号 教师编号,两个字段联合做主键,复合主键(PK:学生编号+教师编号)

    经过修改后满足第一范式,不满足第二范式,张三依赖1001,王老师依赖001,是部分依赖

    产生部分依赖的缺点:数据冗余,空间浪费

    为了让以上表满足第二范式,需要这样设计:

    使用三张表表示多对多关系!!

    学生表

    学生编号(pk)     学生名字

-----------------------------------------------------------------------

    1001          张三

    1002          李四

    1003          王五

    教师表 

    教师编号(pk)    教师姓名

 ---------------------------------------------------------------------

    001          王老师

    002          赵老师

    学生教师关系表

    id(pk)      学生编号(fk)      教师编号(fk)

------------------------------------------------------------------------------------------------------

    1            1001          001

    2            1002          002

    3            1003          001

    4            1001          002  

    背口诀:多对多,三张表,关系表两个外键(重要)

  4.5、第三范式

    建立在第二范式的基础上

    要求所有非主键字段直接依赖主键,不要产生传递依赖

    

 

    一对多关系一个教室多个学生

    满足第一范式:有主键

    满足第二范式:因为主键不是复合主键,没有产生部分依赖。主键是单一主键

    一年一班依赖01  01依赖1001 产生了传递依赖

    不符合第三范式要求:产生数据冗余

    

 

     背口诀:一对多,两张表,多的表加外键!!!

 

     

标签:教师,依赖,范式,数据库,面试,编号,主键,1001
来源: https://www.cnblogs.com/doremi429/p/15837362.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有