当前位置: 首页 > news >正文

数据库范式

基本概念

函数依赖

x→yx\rightarrow yxy,当确定xxx的时候,yyy也可以确定
例:
学号→\rightarrow姓名,当知道了学号,就知道了学生姓名
学号,课程号→\rightarrow成绩,当知道了学号和课程号,就可以推出该学生在该课的成绩。

非平凡依赖

无效依赖关系:
学号,课程号→\rightarrow可以推出学号,其中没有有效信息

完全依赖和不完全依赖,记为→F,→P\stackrel{F}{\rightarrow},\stackrel{P}{\rightarrow}F,P

学号,课程号→\rightarrow成绩,学号课程号缺一不可。
学号,课程号→\rightarrow院系,只需要学号就可确定。

候选码和超码

超码 →P\stackrel{P}{\rightarrow}P全键
侯选码 →F\stackrel{F}{\rightarrow}F全键

主属性

包含在候选码中的称为主属性

范式

第一范式

表项不可再分

第二范式

非主属性完全依赖于主属性
例表:(学号,院系,宿舍,课程号,成绩),不满足第二范式
修改为: (学号,课程号,成绩),(学号,院系,住址)

第三范式

非主属性无传递依赖到码
非主属性依赖于其它非主属性时,必不满足第三范式。

上述例子修改结果符合第二范式,但是注意到有学号→院系→住址学号\rightarrow院系\rightarrow住址学号院系住址
(学号,课程号,成绩),(学号,院系,住址)进一步分为
(学号,课程号,成绩),(学号,院系)(院系,住址)

BCNF

消除主属性对码的部份依赖和传递依赖
(学生,课程,老师)
假设一个老师只上一门课,,则候选码有(学生,课程),(学生,老师)
(学生,课程)→老师,(老师)→课程(学生,课程)\rightarrow老师,(老师)\rightarrow课程(学生,课程)老师,(老师)课程,主属性对主属性部份依赖了。
拆为(学生,老师),(老师,课程)。

多值依赖

X→→YX\rightarrow\rightarrow YX→→Y,当X确定时,Y为固定的几个值
例:一个教师可以教多门课,则有
教师→→课程教师\rightarrow\rightarrow课程教师→→课程

http://www.lryc.cn/news/2864.html

相关文章:

  • CUDA中的底层驱动API
  • 【博客616】prometheus staleness对PromQL查询的影响
  • 多传感器融合定位十三-基于图优化的建图方法其二
  • linux 服务器线上问题故障排查
  • Sandman:一款基于NTP协议的红队后门研究工具
  • 【SSL/TLS】准备工作:HTTPS服务器部署:Nginx部署
  • 微搭低代码从入门到精通11-数据模型
  • 【算法基础】前缀和与差分
  • LTD212次升级 | 官网社区支持PC端展示 • 官网新增证件查询应用,支持条形码扫码查询
  • 【安全】nginx反向代理+负载均衡上传webshell
  • 线程池框架
  • 【TCP的拥塞控制】基于窗口的拥塞控制
  • STP协议基础
  • Linux上面配置Apache2支持Https(ssl)具体方案实现
  • [Linux]进程替换
  • 常见的锁策略面试题
  • 设计师一定要知道这几个网站,解决你80%的设计素材。
  • QT基础入门
  • 高数不定积分72题解答
  • 基于北方苍鹰算法优化LSTM(NGO-LSTM)研究(Matlab代码实现)
  • Linux内核启动(理论,0.11版本)分段与分页
  • 数据与C(字符串)
  • Python+Go实践(电商架构三)
  • 基于 MySQL 排它锁实现分布式可重入锁解决方案
  • 【大数据】Hadoop-HA-Federation-3.3.1集群高可用联邦安装部署文档(建议收藏哦)
  • 【设计模式之美 设计原则与思想:面向对象】14 | 实战二(下):如何利用面向对象设计和编程开发接口鉴权功能?
  • 工作技术小结
  • 无重复字符的最长子串-力扣3-java
  • java ssm高校教材管理平台 idea maven
  • 【Python学习笔记】25.Python3 输入和输出(1)