首页 > 数据库 >关系数据库三大范式

关系数据库三大范式

时间:2022-11-03 12:12:37浏览次数:38  
标签:3NF 范式 工资 数据库 关键字 关系数据库 三大

一、范式分类

定义:范式是符合某一级别的关系模式的集合,关系数据库中的关系必须满足一定的要求,即满足不同的范式。

第一范式( 1NF)
第二范式(2NF)
第三范式(3NF)
Boyee-Codd范式(BCNF)范式可以有效避免数据冗余,减少数据库的空间,减轻维护数据完整性等优点。但是随着范式的级别越高,其操作难度越大,性能降低。

二、第一范式

定义:第一范式(1NF)是对关系模式的基本要求。简单的说就是关系中无重复列。

 

 

 

 三、第二范式

定义:第二范式就是非主属性完全依赖于主关键字。

 

 四、第三范式

定义:第三范式是在第二范式的基础上建立起来,即满足3NF必须满足2NF 。
3NF要求数据库表中不存在非关键字列对任一候选关键字的传递函数依赖。
传递函数依赖,指的是如果存在“A-B-C”的决定关系,则C传递丽数依赖于A,也就是说,第三范式要求关系表不包含其他表中已包含的非主关键字段信息。

 

 五、范式的实战

假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:
公司承担多个工程项目,每一项工程有:工程号﹑工程名称﹑施工人员等公司有多名职工,每一名职工有:职工号·姓名﹑性别﹑职务((工程师﹑技术员)等
公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)
公司定期制定一个工资报表,如下图所示

请按照数据库设计的规范化要求,重新设计该公司的数据库,形成新的工资报表·

5.1、应用第一范式规范化

 

5.2、范式举例-存在问题

 

 

5.3、应用第二范式规范化

 

5.4、应用第三范式规范化

 

 

 

 

 

标签:3NF,范式,工资,数据库,关键字,关系数据库,三大
From: https://www.cnblogs.com/ygbh/p/16853965.html

相关文章

  • JavaWeb三大组件之Servlet学习
    JavaWeb三大组件之Servlet学习平时直接用springmvc较多,都没怎么接触底层的Servlet,导致对一些基本的知识点了解都不够,所以今天专门的抽出时间来学习一下带着问题出发,看下可以......
  • JavaWeb三大组件之Filter学习详解
    JavaWeb三大组件之Filter学习详解Filter基本上可以说存在所有的JavaWeb项目中,比如最基本的一个请求参数的编码​​CharacterEncodingFilter​​,大家一般都会配置下,那么filte......
  • 版式设计三大原则
    所谓“无规矩不成方圆”,遵循一定的设计原则,才能够做出好的设计作品。接下来开源字节的小编将为大家整理平面设计中的版式设计三大原则:1、形式与内容的统一版式设计所追求的......
  • day23 约束 & 锁 & 范式
    表与表的对应关系一对一:学生与手机号,一个学生对一个手机号一对多:班级与学生,一个班级对应多个学生多对一:多对多:学生与科目,一个学生对应多个科目,一个科目也对应多个学生......
  • python三大基础函数
    在Python中有三个基础函数,分别是filter()、map()和reduce(),他们分别为我们提供过滤、映射和聚合的功能。1. filter()函数在数据筛选和过滤的时候我们通常会采用filter()......
  • 三大难题阻碍互联网医院发展--2020中国互联网医院发展研究报告
    《2020中国互联网医院发展研究报告》深度解析我国互联网医院当前建设进展、存在问题、未来建设发展趋势及典型互联网医院建设案例。“互联网医院”是指以实体医院为依托,以......
  • 三大低速总线之UART
    1、串口又叫通用异步收发传输器,即UART;是一种通用的数据通信协议。2、接受数据时:将接收到的串行数据转换成并行数据;(涉及到串转并)发送数据时:将并行数据转换成串行数据来传......
  • 三大框架的认知
    简单介绍下vue前段三大框架之一,渐进式框架使用的MVVM模式属于数据驱动方式,核心是通过属性访问器和es6代以及观察者模式实现的双向绑定和虚拟DOM技术简单介绍下React前......
  • 独享HTTP代理必须知道的三大特性
    我们经常会听商家推荐独享代理池,说独享的如何如何好,对于没用过的朋友来说,根本没有概念,那么独享HTTP代理池究竟有哪些特性是我们必须要知道的呢?今天就给大家简单的科普一下......
  • 关系数据库标准语言sql(练习题)
    学生选课数据库中表结构如下:学生(学号,姓名,年龄,性别,所在系);课程(课程号,课程名,学分,先行课);选课(学号,课程号,成绩);在学生选课数据库中运用SQL语言实现下面的数据查询操作。求选修......