博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server中各类范式的理解
阅读量:4078 次
发布时间:2019-05-25

本文共 843 字,大约阅读时间需要 2 分钟。

sql server中各类范式的理解

常见的范式有1NF 2NF 3NF 以及BCNF 除此之外还有更高级别的范式

范式被理解为某一种级别的关系模式的集合 即R为第几范式 可写成R∈xNF

对于R∈1NF 通俗的来说 就是不允许表中有表 即R中的属性不可再分

 

对于 R∈2NF 在满足1NF的情况下 还需要R中的每一个非主属性完全依赖于码 

码(可以是单个属性或者是属性的集合) 如学生成绩表SC(Sno Cno Grade)

这里的码就是(Sno,Cno) primary key  因为一门课程的成绩需要学号和课程号一起来决定 这样才能唯一标识

(Sno,Cno)→Grade

这里的非主属性Grade就完全依赖于码

并不能由学号或课程号来得到某名学生课程的成绩

对于R∈3NF  则在2NF的基础上 还需要要求每一个非主属性不传递依赖于码

也就是要消除传递依赖  

如学生成绩表SC(Sno Cno Grade) 它就没有传递依赖 故它也是3NF 属性3NF的必定属于2NF 

若对于R,有Sno →Sdept(院系号)而Sdept不可以推导出学号 Sdept →Sloc 根据传递性

有Sno →Sloc 此时非主属性Sloc就传递依赖于码Sno 那么R就不属于3NF了

对于R∈BCNF(Boyce Codd Normal Form) 它是由Boyce和Codd提出的 比3NF又进了一步 通常认为BCNF是修正的第三范式 也称为扩充的第三范式

属于BCNF的必定属于3NF

满足BCNF范式的条件:

①所有非主属性对每一个码都是完全函数依赖

②所有主属性对每一不包含它的码也是完全函数依赖

③没有任何属性完全函数依赖于非码(非主属性)的任何一组属性

如课程表C(Cno,Cname)它只有一个码Cno 这里没有任何属性对Cno的部分依赖和传递依赖 故C∈3NF

且Cno是唯一的决定因素 故C∈BCNF

同样学生表S(Sno,Sname,Ssex,Sdept,Sage)也是属于BCNF

 

转载地址:http://rqsni.baihongyu.com/

你可能感兴趣的文章
感觉mavlink对于目前的我而言还是麻烦了点,干脆用串口吧(现在回看这可能是错误的想法)
查看>>
树莓派利用串口进行通信(这个是用c写的树莓派的串口)
查看>>
树莓派3 B+ 的串口(USART)使用问题 (也是用C写的)
查看>>
ROS下树莓派USB串口通信(具体为接收到某个ROS的topic数据后,向串口下发数据。)
查看>>
ROS系统的串口数据读取和解析
查看>>
ROS串口编程学习笔记
查看>>
ROS环境下串口通信
查看>>
ros中使用serial包实现串口通信
查看>>
做机械臂导航时遇到的问题5:如何使用ROS内嵌serial功能包实现串口通信
查看>>
ROS为上位机与STM32为下位机串口通讯(一)
查看>>
github上搜了下有ROS uart方面的
查看>>
STM32和ROS的串口通信(这篇是公众号文章写得比较正规详细)
查看>>
全网最实用的STM32和ROS机器人的串口通信方案
查看>>
我觉得还是把ACfly的传感器的逻辑弄清楚,这样再去二次开发好一些。(折腾半天发现有很关键一部分没有开源,怪不得找不到,这让我很失望)
查看>>
freertos工程似乎都是先创建一个任务,再在这个任务里面创建其他任务,似乎就像任务树
查看>>
无人机的高度自适应
查看>>
别人对ACfly的评价
查看>>
还有你怎么判断ACfly是正常接收到了数据,怎么从ACfly端能看到实时的T265传给ACfly的位置数据。
查看>>
我觉得对双目VIO+无人机,单单靠VIO这边输出很好的位置信息还是不够的,无人机这边还是需要做做滤波,比如防止跳变什么的,保证无人机的稳定。
查看>>
英特尔RealSense激光雷达摄像头L515拆解分析
查看>>