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

【数据库篇】关系模式的表示——(2)规范化

范式:范式是符合某一种级别的关系模式的集合

规范化:是指一个低一级的范式的关系模式,通过模式的分解转换为若干个高一级范式的关系模式的集合。

1NF

每个分量必须是不可分开的数据项,满足这个条件的关系模式就是1NF。

2NF

若关系模式R属于1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R属于2NF。

一个关系模式不满足2NF,会产生以下问题,例如:

snocnoSdeptSlocGrade
s1c1数学系1号宿舍楼99
s1c2数学系1号宿舍楼100
s1c3数学系1号宿舍楼78
s1c4数学系1号宿舍楼78
s2c1数学系1号宿舍楼56
s2c2数学系1号宿舍楼78
s2c3数学系1号宿舍楼56
s2c4数学系1号宿舍楼89
s2c5数学系1号宿舍楼90

(1)插入异常

如果插入一个学生,但该学生未选课,即无Cno,由于插入元组时,必定给定码值,因此插入失败。

(2)删除异常

如果一个学生s4只选了一门课c3,现在他不再选这门课,则删除c3以后,整个元组的其他信息也被删除了。

(3)修改复杂

如果一个学生选了多门课,则Sdept,Sloc被存储了k次,如果该学生转到了其他系,则需要修改所有相关的Sdept和Sloc,造成修改的复杂化。

若修改为2NF

SC(Sno,Cno,Grade)

S-L(Sno,Sdept,Sloc)

3NF

设关系模式R<U,F>属于1NF,若R中不存在这样的码X、属性Y及非主属性Z(Z 不包含 Y),使得X->Y , Y->Z成立,Y无法推出Z不成立,则称R<U,F>属于3NF。

比如:S-S-L(Sno,Sdept,Sloc)中sno学号可以推出Sdept系,Sdept系可以推出Sloc学生住所,存在传递依赖,不属于3NF。

可以修改为:

S-S(Sno,Sdept)

S-L(Sdept,Sloc)

这样就属于3NF了。

BCNF

比3NF更进一步,通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。 设关系模式R<U,F>属于1NF,若X可以推出Y且Y不属于X时必含有码,则R<U,F>属于BCNF。

BCNF的关系模式所具有的性质:

(1)所有非主属性都完全函数依赖于每个候选码。

(2)所有主属性都完全函数依赖于每个不包含他的候选码。

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

 

相关文章:

  • UVA1025 城市里的间谍 A Spy in the Metro
  • 【深度学习】如何选择神经网络的超参数
  • 《微信小程序从入门到精通》---笔记1
  • 百战python04-循环结构
  • RESTful
  • Ubuntu 安装 JMeter:轻松上手
  • nodejs微信小程序+python+PHP-健身俱乐部在线管理平台的设计与实现-安卓-计算机毕业设计
  • 车载以太网-网络层-IPv4
  • 人工智能|机器学习——循环神经网络的简洁实现
  • 天线的负载
  • 跨越行业边界,CodeMeter护航AI领域安全与合规
  • 入门指南:介绍Python库——Pandas
  • 【数据库设计和SQL基础语法】--数据库设计基础--数据规范化和反规范化
  • 【技术分享】RK3399 Ubuntu通过Python实现录音和播放功能
  • 重新开启GPT Plus充值通道——基于前端开发者工具
  • 电脑技巧:电脑常见蓝屏、上不了网等故障及解决办法
  • 用户与组管理:如何在服务器系统中管理用户和权限
  • npm,yarn,pnpm 清理缓存
  • 【鬼鬼鬼iiARPG开发记录】
  • webpack打包三方库直接在html里面使用
  • 尊严的代价:新加坡福利体系下的价值困境
  • 习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式并发表重要讲话
  • 刘国中:持续加强护士队伍建设,更好保障人民身体健康
  • 扶桑谈|从石破茂“越菲行”看日本周边外交布局战略新动向
  • 祝贺!苏翊鸣成功解锁“2160”
  • 西甲上海足球学院揭幕,用“足球方法论”试水中国青训