数据库三范式

数据库三范式

第一范式(1NF):字段不能划分成更多字段;

不符合第一范式的例子:
表:字段1  字段2  字段3  字段4
字段3.1 字段3.2

现有的DBMS中设计出不符合第一范式的数据库都是不可能的。

第二范式(2NF):单关键字的表,或者若为组合关键字则必须没有候选关键字段→非关键字段的表;

不符合第二范式的例子:
表:学号, 姓名, 年龄, 课程名称, 成绩, 学分
(课程名称) → (学分)
(学号) → (姓名, 年龄)
存在问题:
数据冗余,每条记录都含有相同信息;
删除异常:删除所有学生成绩,就把课程信息全删除了;
插入异常:学生未选课,无法记录进数据库;
更新异常:调整课程学分,所有行都调整。

修正:
学生:Student(学号, 姓名, 年龄);

课程:Course(课程名称, 学分);

选课关系:SelectCourse(学号, 课程名称, 成绩)。

第三范式(3NF):在第二范式的基础上,数据表中如果不存在传递函数依赖:关键字段 → 非关键字段x → 非关键字段y

  
不符合第三范式的例子:
学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话,关键字为单一关键字”学号”
这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:
(学号) → (所在学院) → (学院地点, 学院电话)

修正:
学生:(学号, 姓名, 年龄, 所在学院);
学院:(学院, 地点, 电话)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100456.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 选择排序算法详解_八大排序算法图解

    选择排序算法详解_八大排序算法图解选择排序就是从待排序的元素中选择最小(最大)的元素,将其放在有序序列的相应位置,使这些元素构成有序序列。选择排序主要有两种:简单选择排序和堆排序。【简单选择排序】编写算法,要求使用简单选择排序算法对元素65、32、71、28、83、7、53、49进行从小到大排序。【算法思想】简单选择排序是一种简单的选择类排序算法,它的基本思想描述如下:假设待排序的元素有n个,在第一趟排序过程…

    2025年7月8日
    2
  • 悲观锁、乐观锁的区别及使用场景

    悲观锁、乐观锁的区别及使用场景定义:悲观锁(Pessimistic Lock): 每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。乐观锁(Optimistic Lock): 每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候…

    2022年6月13日
    33
  • eclipse导入maven工程没有src/main/resources文件夹

    eclipse导入maven工程没有src/main/resources文件夹很多时候导入maven工程的时候没有src/main/resources文件夹今天写个博客记录下如何解决首先右击项目然后如图所示然后点击ok再应用然后就先显示资源文件夹了…

    2022年5月31日
    36
  • 读取金税盘数据库_一种基于金税盘控制系统登录和数据同步的方法与流程

    读取金税盘数据库_一种基于金税盘控制系统登录和数据同步的方法与流程本发明涉及税务开票领域,更具体地,涉及一种基于金税盘控制系统登录和数据同步的方法。背景技术:在以往的增值税销方开票操作中,销方用户在执行开票操作时,往往会出现当前用户信息与所使用的金税盘信息不匹配的情况,从而导致开票失败,需要调整用户数据或者更换金税盘。另外,系统中缺少对用户使用的金税盘数据的收集,无法有效的管理记录金税盘的使用情况,而且销方用户对应的库存信息和发票信息也存在数据不全的情况。技术实…

    2022年4月30日
    74
  • postman安装使用教程_postman怎么使用

    postman安装使用教程_postman怎么使用目录第一部分:基础篇postman1.安装postman进入postman官网,如果是mac系统可以直接点击macapp安装第二部分:进阶篇1.使用自带的脚本对接口进行测试第一部分:基础篇postman1.安装postman进入postman官网,如果是mac系统可以直接点击macapp安装如果是windows的话,需要在windows下安装chrome浏览器,然后在地址栏输入chrome://extensions,勾选开发者模式然后将下载的postman插件解压,浏览器点击加

    2022年9月17日
    4
  • 一键禁用Win10自动更新,联想官方出品!!

    一键禁用Win10自动更新,联想官方出品!!对于Win10系统的强制更新,真的是是又爱又恨,更新是为了解决电脑系统存在的安全风险以及加入一些新功能,但经常性的开机或者关机都要更新配置,遇到大更新还需要花费很长的等待时间,更加可气的是还会出现更新失败的风险。有时真恨不得将它永久禁止更新。。目前网络上常见的禁止更新方法有两种,1、禁用WindowsUpdata相关服务;2、通过组策略禁止更新。事实证明这两种方法已经摆脱不了win10自…

    2022年6月4日
    158

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号