首页 > 数据库 >数据库设计遵循的原则

数据库设计遵循的原则

时间:2022-10-31 12:37:18浏览次数:49  
标签:关系 非主 范式 原则 no 数据库 2NF 遵循 主键


范式概述:

范式就是符合某一规范级别的关系模式的集合。数据库共有7种范式: 从低到高分别是: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF

注意:
1) 实际开发中, 我们一般使用前三种范式, 用的最多的是"2NF"
2) 范式之间满足"向下兼容"的特点: 即: 如果满足了"3NF", 则兼容"1NF", "2NF"的规则. 

 

第一范式:(First Normal Form)

概述:如果一个关系模式R的所有属性都是不可分割的基本数据项,则这个关系属于第一范式。

举例:

 (学生选课:学号,姓名,系别,系部地址,课程名称,课程成绩)
            Student(s_no,s_name,s_dept,s_location,s_course_name,s_grade)

数据库设计遵循的原则_非主属性

 注意:
1NF 是关系模式应具备的最起码的条件,如果数据库设计不能满足第一范式, 就不能称作是关系模式;关系数据库设计研究的关系规范化是在1NF基础之上进行的。

第二范式: (Second Normal Form)

概述
            若关系模式R属于第一范式,且每个非主属性都是完全函数依赖于主键,则R属于第二范式。

说明:    //创建一个表, 设置一个主键, 他就是满足"第二范式"的.
            从2NF的定义可以看出,从2NF开始讨论的是主键和非主属性之间的函数依赖关系,所以分析关系模式是属于2NF,首先指明关系模式的主键,然后在讨论非主属性和主键之间的函数依赖关系。

例如:

选课关系模式SC(s_no,c_no,score)中,主键为(s_no,c_no),而非主属性score与主键之间不存在部分函数依赖关系,所以关系模式SC属于2NF

数据库设计遵循的原则_第一范式_02

 

第三范式:(Third Normal Form)

概述:
            若关系模式R属于第一范式,且每个非主属性都不传递函数依赖于主键,则R属于第三范式。
说明:
            3NF说明的是非主属性和主键之间的函数依赖关系.

例如:

 选课关系模式SC(s_no,c_no,score)中,由于除了主键之外,只有一个非主属性score, 所以score不可能构成与主键之间的传递函数依赖,所以SC属于3NF

数据库设计遵循的原则_非主属性_03

 

总结:

优点:
            1) 范式主要说明的就是: 设计表的时候, 扩展拆分(分离)程度.
            2) 范式越高, 会让扩展的程度变得更好.
 缺点:
            编写SQL语句时会变得更加的繁琐.

标签:关系,非主,范式,原则,no,数据库,2NF,遵循,主键
From: https://blog.51cto.com/u_12277263/5809081

相关文章

  • 数据库-面试重点-概述
    文章目录​​MySQL的内连接、左连接、右连接有什么区别?​​​​Hash算法​​​​索引的基本原理​​​​百万级别或以上的数据如何删除​​​​数据库为什么使用B+树而不是......
  • centos7 yum安装mysql5.7 Linux服务器数据库
    wgethttp://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmyum-yinstallmysql57-community-release-el7-11.noarch.rpm#改镜像vi/etc/yum.repo......
  • 人大金仓数据库基础操作
    Kingbase数据库建表-步骤:切换kingbase身份su-kingbase链接kingbase数据库ksql-Usystem-dwebdb查询全部数据库\dn设置......
  • 分页查询数据库语句汇总
    分页查询在后端开发中经常遇到,根据前台传到后端的数据,使用数据库语句找出对应记录数是一重点分页查询:1.前端传给后台的数据1.页码:用户点击页码换页2.页容量:每页显......
  • flask数据库迁移方法
     一、集成pythonshell为避免每次启动shell会话都要导入数据库实例和模型,我们可以使用app.shell_context_processer装饰器来创建并注册一个shell上下文处理器。app.py......
  • MySQL的默认值约束(Default),数据库设计必备
    一、默认值约束简介默认值(Default)的完整称呼是默认值约束(DefaultConstraint)。MySQL默认值约束用来指定某列的默认值。例如女性员工较多,性别就可以默认为“女”。如果插入......
  • MySQL数据库的唯一性约束(UNIQUE)
    一、数据库表的唯一性约束是什么MySQL唯一约束(UniqueKey)要求被约束的列中的数据唯一,允许为NULL,但只能出现一个NULL值。唯一约束可以确保一列或者几列不出现重复值。二、如......
  • MySQL的唯一约束(Unique Key),数据库设计必备
    一、数据库表的唯一性约束是什么MySQL唯一约束(UniqueKey)要求被约束的列中的数据唯一,允许为NULL,但只能出现一个NULL值。唯一约束可以确保一列或者几列不出现重复值。二、如......
  • 【转】一口气搞定泰勒公式(泰勒展开式)的 本质 和 展开原则
    一口气搞定泰勒公式(泰勒展开式)的本质和展开原则GetTheEssenceandTheExpansionPrincipleofTaylorformula(Taylorexpansionformula)inOneSitting来自bili......
  • JavaWeb之连接数据库操作
    亲爱的学弟学妹,我知道你们是因为什么搜到这篇博客的,我也很懂你们现在的心情,此时此刻举目无亲面对着建民老师的高要求,你们或许十分无助,所以我写下这篇博客,因为我淋过雨所以......