首页 > 数据库 >数据库——范式等级的判断和规范化

数据库——范式等级的判断和规范化

时间:2023-01-11 20:56:39浏览次数:61  
标签:3NF 非主 范式 数据库 2NF 依赖 规范化 属性

理解1NF、2NF、3NF、BCNF

  1. 第一范式 1NF

    满足:一个关系模式R的所有属性都是不可分的基本数据项 ,即为第一范式
    
  2. 第二范式 2NF

    满足:为1NF 且 非主属性 完全函数依赖 于码 ,即为第二范式
    
  3. 第三范式 3NF

     满足:为2NF 且 每个非主属性既不部分依赖于码也不传递依赖于码 ,即为第三范式
    
  4. BC范式 BCNF

    满足:为3NF 且 每个主属性既不部分依赖于码也不传递依赖于码 、没有任何属性完全函数依赖于非码的任何一组属性 ,即为第三范式
    换句话理解,就是说:在满足3NF的前提上,还要保证某个主属性不能 传递/部分依赖 于 其他主属性;属性不能完全函数依赖 于非主属性
    再通俗讲:就是X→Y时,X一定含有码(候选码中的任意一个)
    

判断范式等级

  • 首先需要判断关系模式 R 的候选码
  • 判断是否有非主属性对码的部分函数依赖 ——> 判断 2NF
  • 判断是否有非主属性对码的传递函数依赖 ——> 判断 3NF

image.png

image.png

不合法范式的修改

  • 1NF 到 2NF :消除非主属性对码的部分函数依赖即可,即将码 (S,F )拆分生成两个表,码分别为 S、F
  • 2NF 到 3NF:消除非主属性对码的传递函数依赖即可,将存在传递依赖的属性单独拆分出来
  • 3NF 到 BCNF:消除主属性对码的/部分传递函数依赖即可

文中例题来源:https://blog.csdn.net/weixin_43950187/article/details/105513528

标签:3NF,非主,范式,数据库,2NF,依赖,规范化,属性
From: https://www.cnblogs.com/nixwl/p/17044869.html

相关文章

  • KingbaseES V8R3数据库运维案例之---不完整的启动包(incomplete startup packet)复现
    案例说明:在KingbaseESV8R3数据库的sys_log日志中,出现以下故障信息“不完整的启动包(incompletestartuppacket)”日志信息。本案例复现此日志信息发生的原因。如下图所示......
  • Redis-多机数据库-复制
    复制在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的......
  • 数据库第二天(概述)
    视频笔记这章可能很多都看不太懂,后面学完之后再回来看一眼会更有感悟。......
  • 【postgresql】创建用户与数据库
    创建用户与数据库--cxlogepostgres--创建用户createusercxlogewithpassword'password';--创建数据库并指定拥有者createdatabasecxlogeownercxloge;--给指......
  • SQLSERVER自动备份数据库
    1.通过操作系统的定时任务执行创建两个文件,auto.bat和auto.sql,使用bat调用sql文件中的代码段auto.bat内容sqlcmd-Slocalhost,2433-Usa-PAa@123456-ddbname-i......
  • Redis-单机数据库-服务器
    服务器命令请求的执行过程客户端发送命令请求当客户端与服务器之间的连接套接字因为客户端的写入而变得可读时,服务器将调用命令请求处理器来执行以下操作:读取套接字中......
  • 大学数据库笔记
    这里是原word笔记源文件当时大学的时候,学习数据库基本是班级里的第一名,但是毕业以后就做了前端从此几乎与后端无缘,为了纪念曾经的努力,在整理旧资料时候,特意拿出来,留个痕......
  • SpringBoot+Mybatis-plus整合easyExcel批量导入Excel到数据库+导出Excel
    一、前言今天小编带大家一起整合一下easyExcel,之所以用这个,是因为easyExcel性能比较好,不会报OOM!市面上常见的导入导出Excel分为三种:hutooleasyExcelpoihutool和eas......
  • Redis-单机数据库-事件
    事件Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(fileevent):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对......
  • MySql基础-笔记2 -数据库创建、删除、选择等操作
    在MySql数据库基础1-Windows下安装配置图文教程的基础上,我们来了解如何对数据库进行操作,比如常见的创建数据库、删除数据库、选择数据库等;(目录)1、连接数据库简单的方......