范式概述:

范式就是符合某一规范级别的关系模式的集合。数据库共有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

第三范式:(Third Normal Form)

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

例如:

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

总结:

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

数据库设计遵循的原则相关推荐

  1. 【设计模式】软件设计遵循——六大原则

    软件设计遵循--六大原则 1)开闭原则 定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭 原则:用抽象构建框架,用实现扩展细节 优点:提高软件系统的可复用性和可维护性 2)里氏替换原则 定 ...

  2. 数据库设计范式及原则

    数据库设计三范式 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一 ...

  3. 关系型数据库设计范式及原则

    好的数据库设计一定是精致.优雅.赏心悦目.让人心醉. 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.,以提升数 ...

  4. 数据库设计的相关原则

    在目前的企业信息系统中,数据库还是最佳的数据存储方式,虽然已经有很多的书籍在指导我们进行数据库设计,但应该那种方式是设计数据库的表结构的最好方法.设计时应遵从什么样的原则.四个范式如何能够用一种方式达 ...

  5. 数据库设计三大范式原则

    第一范式:所有字段设计,都是不可分解的原子值. 第二范式:确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言).也就是说在一个数据库表中,一个表中只能保存一种数据, ...

  6. 学生管理系统的mysql数据库设计_MySQL数据库--学生管理系统数据库设计

    目录 学生管理系统数据库设计 学生管理系统功能介绍 数据库设计步骤 第1步: 找对象 第2步:找属性 第3步: 找关系 建表原则 第4步: 找特例: 等级明显而且不包含敏感数据的信息建议保持为1张表 ...

  7. 用mysql设计数据库管理系统_MySQL数据库--学生管理系统数据库设计

    学生管理系统数据库设计 设计一套数据库首先要熟悉当前系统有哪些功能,具体的业务流程是什么 学生管理系统功能介绍 一套学校用的学生管理系统,最核心的功能如下 学生信息管理(增加学生,删除学生,修改学生, ...

  8. 学生管理系统的mysql数据库设计_MySQL 数据库 -- 学生管理系统数据库设计

    MySQL 数据库 -- 学生管理系统数据库设计 目录 学生管理系统数据库设计 学生管理系统功能介绍 数据库设计步骤 第 1 步: 找对象 第 2 步: 找属性 第 3 步: 找关系 建表遵守原则 第 ...

  9. 规范化-数据库设计原则

    摘要 关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计.对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构.然而,随着项目 ...

  10. 5、数据库设计的三大范式

    为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中,这种规则就是范式.范式是符合某一种级别的关系模式的集合.关系型数据库中的关系必须满足一定的要求,即满足不同的范式. ...

最新文章

  1. 二分图HK算法[数论+二分图最大独立集]:Lightoj1356
  2. CentOS7.6离线安装JDK1.8
  3. VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一
  4. numpy 深复制 切片创建视图
  5. 优酷土豆2012.9.12校园招聘会笔试题
  6. 不相交集合求并的路径压缩
  7. vue - resource 使用过程的坑
  8. C语言多文件编程基本格式
  9. Shell编程:awk使用总结
  10. JDK11+Tomcat10 下载安装+环境配置
  11. linux pid t 头文件_pid和tid及线程调度
  12. 测试思路系列:《谷歌的软件测试之道》读书笔记
  13. python表格处理_python如何处理表格?
  14. 一个很烂的学生成绩管理系统
  15. 深入分析MFC之GDI原理透析
  16. Win10家庭版开启远程桌面
  17. php京东接口开发,技术文档
  18. php导出excel加换行,php导出excel单元格自动换行怎么实现?
  19. android壁纸 4k,4k动态壁纸下载-4k动态壁纸 安卓版v1.0.4-PC6安卓网
  20. 计算机网络太难了?了解这一篇就够了

热门文章

  1. 【机器学习】详解 EfficientNet
  2. package.json与package-lock.json
  3. 在MFC中使用MSXML库 (一)MSXML库的导入
  4. 山东农业大学计算机复试,山东农业大学复试录取分数线
  5. c语言 将数组转化成二叉树
  6. 程序员从互联网跳央企,晒一天工作和收入
  7. 装修行业怎么找精准客户?有那些获客渠道?
  8. 利润最大化下的模型cutoff测算
  9. python中奖号_python制作一个简单的中奖系统
  10. psd2html 阿里,psd2html