范式(下)-BC范式(BCNF)、关系模式的规范化

news2024/11/19 8:41:07

一、关系模式STC

假设有一个关系模式STC,包含有学号Sno、教师编号Tno、课程编号Cno、选课成绩G四个属性

即STC(Sno,Tno,Cno,G)

数据间的关系为

  • 每个学生可选修多门课程,每门课程可以被多名学生选修
  • 每个老师只能讲授一门课程,每门课程可由多名老师来讲授
  • 学生选定课程就确定了授课教师,并有一个选课成绩

该关系模式中存在有哪些函数依赖?候选键是什么?主属性是什么?非主属性是什么? 

二、BC范式(BCNF)

1、引言

对于关系模式STC,依旧存在着数据冗余(教师编号和课程号)、数据更新异常(无法插入老师教

授课程信息或无法取消学生选课信息或删除学生选课元组之后会丢失老师教授课程信息

STC只所以存在这样的问题是由于

如何解决这一问题呢?

2、BC范式的定义

对于关系模式R,若X\rightarrow YY\nsubseteq X时,X必含有候选键,即R中所有非平凡的、完全的函数依

赖的决定因素是候选键,则R\in BCNF

也就是说如果R属于BCNF,则R中没有任何属性完全函数依赖于非候选键的任何一组属性

3、分析关系模式STC

(1)在关系模式STC中,由于存在着Tno\overset{f}{\rightarrow}Cno,因此关系模式STC不属于BCNF

(2)可将决定因素不是候选键的函数依赖所涉及的属性单独构成一个关系模式,即将STC分解为TC和ST两个关系模式

则分解后的两个关系模式TC和ST均属于BCNF

(3)通过将STC分解为满足BCNF的关系模式,解决了插入教师授课信息和删除学生选课信息不

能实现的问题

4、BC范式的优点

(1)消除了“主属性对于候选键的部分函数依赖和传递函数依赖”,关系中没有任何属性完全函数

依赖于非候选键的任何一组属性

(2)进一步消除了关系模式中存在的数据冗余和更新异常等问题

5、结论:满足BCNF的关系模式要比满足3NF的关系模式要好

三、关系模式的规范化

1、BC范式

(1)BC范式使得在函数依赖范畴中,实现了数据库中数据的彻底分离,也使BCNF被广泛用来衡

量关系数据库模式是否能满足一般应用的数据处理要求,范式从低到高对关系模式的约束逐渐加

强,所以范式之间是一种包含关系

(2)从低范式到高范式,不断消除着关系模式所带来的数据冗余、更新异常和数据不一致问题,

从而把一个不好的关系模式转换为好的关系模式

2、关系模式的规范化的定义

关系模式的规范化是指将一个低一级的关系模式分解为若干高一级关系模式的集合的这个过程

3、关系模式规范化需要解决的问题

(1) 用一组函数依赖充分表达应用语义所包含的关系模式属性间的约束关系

(2)范式的判定(关键是确定关系模式的候选键)

(3)关系模式的分解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1838519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虹科免拆诊断案例 | 15款马自达3偶发高速CAN网络故障

CAN总线大家都不陌生,遇到这类故障,我们第一反应可能是用万用表测一下电压,看看存不存在短路、断路等问题。不过,使用万用表测得的电压值只是CAN总线上的平均电压,是一个大概的数值,并不能反映真实的CAN总线…

用户组相关的一些命令

1./etc/passwd>列出了系统里的所有用户 2./etc/shadow>保存了用户的密码信息 空表示密码为空 *表示账号被在锁定 !表示未设置密码 !!表示这个密码已经过期 $1表示MD5加密, $2表示用Blowfish加密, $5表示用SHA-256加密, $6表示SHA-512加…

关于微信小程序(必看)

前言 为规范开发者的用户个人信息处理行为,保障用户的合法权益,自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则…

FANUC喷涂机器人P-350iA电机过热维修解决方案

发那科喷涂机器人作为自动化喷涂生产线的重要组成部分,其性能稳定性和可靠性对于生产效率和产品质量具有重要影响。然而,在实际使用过程中,FANUC喷涂机器人P-350iA电机过热故障问题往往成为影响其正常运行的主要因素之一。 FANUC机器人M-100…

数据库实战(一)(关系数据库设计)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀数据库 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 前言 练习题 题型一:判断关系…

登录爆破神器:Hydra 保姆级教程

前言 Hydra 是一个广泛使用的网络登录破解工具,支持多种协议(如 HTTP、FTP、SSH、Telnet 等),用于执行暴力破解攻击。它由 Van Hauser 和 The Hackers Choice (THC) 团队开发,设计用于快速和高效地尝试大量用户名和密…

信息技术课如何禁止学生玩游戏

在信息技术课上禁止学生玩游戏是一个常见的挑战,但可以通过一系列策略和工具来有效地实现。以下是一些建议: 明确课堂规则和纪律: (1)在课程开始时,明确告知学生课堂规则和纪律,包括禁止玩游戏的规定。 (2)强调遵守…

创建一个electron桌面备忘录

Sound Of Silence 1.创建electron项目命令: npm create quick-start/electron my-new-project 2选择:√ Select a framework: vue √ Add TypeScript? ... No √ Add Electron updater plugin? ... Yes √ Enable Electron download mirror proxy? .…

记一次生产事故,来来回回搞了一个月

🍅我是小宋,关注我,带你轻松过面试 读源码。提升简历亮点(14个demo) 🌏号:tutou123com。拉你进专属群。 记一次生产事故,来来回回搞了一个月 背景 我们的主要业务是台湾省的一个小…

工业自动化中OBC充电机测试负载箱的应用

在工业自动化中,OBC充电机是电动汽车和混合动力汽车的重要组成部分。它的主要功能是为电动汽车的电池组提供电能,保证车辆的正常运行。为了保证OBC充电机的性能和安全性,通常需要对其进行严格的测试。在这个过程中,负载箱是一种非…

【SQL server速成之路】函数

(3)LEFT函数 LEFT ( character_expression , integer_expression ) 功能:返回从字符串character_expression左边开始,由integer_expression指定个数的字符。参数character_expression:为字符型表达式,integ…

C#的Switch语句2(如何快速中断函数执行)

文章目录 switch语法结构case具体的值枚举值字符串const关键字 如果没有匹配的值default语句不一定要在最后与C的差异-case穿透(Fall-through) 下一篇文章 switch语法结构 基础的语法结构,在上一篇文章已经写了,具体请看&#xf…

Python --- 如何修改Jupyter Notebook在本地保存文件的默认路径?

如何修改Jupyter Notebook在本地保存文件的默认路径? 一直以来都比较喜欢jupter notebook,自从用了以后就爱上了。平时用的时候,因为大多都是临时调用,每次在界面里直接new一个新的file就开干。 曾经也想过我创建的这些python文件…

MySQL从5.7升级到8.0步骤及其问题

MySQL从5.7升级到8.0步骤及其问题 前言 本文源自微博客,且以获得授权,请尊重版权。 一、需求背景 Docker环境下,MySQL5.7升级到8.0,数据迁移时使用的是mysqldump方式迁移。 二、迁移步骤 数据备份: docker exec -i 1…

QEMU + Vscode + Arm Arch‘s Linux调试小记

目录 下载QEMU 下载aarch64-gcc 下载BusyBox 编译linux 6.9.5的内核 启动! 链接到vscode进行远程调试 Reference 前几天看到了一篇讲授如何调试ARM Linux内核的文章,这里现在记录一下调试ARM Linux内核的办法 下载QEMU 对于Arch Linux用户而言&a…

结构思考力:让你的思维更有条理

在这个信息爆炸的时代,如何让自己的思维更有条理,更高效地沟通显得尤为重要。最近读了《结构思考力》一书。今天,我想和大家分享一下读后感,从以下几个方面展开:1. 什么是结构思考力及其重要性;2. 为什么要…

数据治理创新路:建设数据集市,强化数据报送一致性新实践

随着信息化和数字化的飞速发展,数据已经成为企业运营和决策的核心要素。然而,数据治理的复杂性和多样性给企业带来了不小的挑战。为了更好地应对这些挑战,许多企业开始探索数据治理的创新路径,其中建设数据集市和强化数据报送一致…

Vue08-webpack使用

webpack使用 1、什么是Webpack 本质上, webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler) 。当webpack处理应用程序时, 它会递归地构建一个依赖关系图(dependency graph) , 其中包含应用程序需要的每个模块&#xff0…

期货以旁观者心态关注市场,会更加理性

1.期货交易具备较高灵活度,相比于股票,期货盈利速度明显提升。针对普通投资者,适量参与中线投机更为合适。 2.选择期货品种需兼顾市场属性稳定与计划特点较弱两方面,以及波动剧烈、投机特征显著的品种。 3.若市场环境不利且缺乏机…

temu跨境选品师是怎么样的一个项目?

TEMU(特穆)跨境选品师项目,作为一项创新的全球商品采购和选品服务,正在逐步改变消费者对于跨境电商产品的认知和选择方式。这个项目不仅仅是一个简单的商品推荐平台,更是一种以数据驱动的精准选品策略的体现,为消费者提供了全新的…