数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)

news2024/11/23 16:53:21

上一次我们介绍了数据库中关系代数查询,从选择、投影到连接等操作符,探索了数据库查询
大家可以移步我的文章:数据库系统概论期末经典大题讲解(用关系代数进行查询)-CSDN博客
今天,我们将继续沿着数据库系统的精髓探索之路,深入研究数据库系统概论中的经典大题:范式、闭包和主码。让我们深入挖掘这些概念,并为期末考试做好充分准备


目录

一.范式提升

1NF

2NF 

3NF

BCNF

综合例子: 

二.求闭包

三.求主码


一.范式提升

1NF

关系R中每个分量都是不可分割的数据项,则R属于1NF

2NF 

定义 若R属于1NF,且每个非主属性完全函数依赖于码,则称R属于2NF。 

 该关系模式属于1NF,不属于2NF。 因为有非主属性部分函数依赖于码:

  • 非主属性Sdept、 Sloc部分函数依赖于码

方法:

非主属性有两种: 一种完全依赖于码;

                           一种部分依赖于码 --- 将其分出 

就是完全依赖的单独作为一个关系模式,部分依赖的将部分依赖费主码和非主属性作为一个关系模式

 可变为SC(SNO, CNO, G)    S-L(SNO, SDEPT, SLOC)  此时便是2NF

3NF

定义:若R属于2NF, 且它的任何一个非主属性都不传递依赖于任何候选码,则R属于3NF

(不能有传递依赖)

上述例子存在  SNO->SDEPT   ,  SDEPT->SLOC (存在传递依赖了,不是3NF)

规范化过程中通过一组投影分解消除传递依赖,建议作如下分解(第二步分解):

已知关系R(A,B,C), A为主码(A->B, A->C),且B->C,     

则将R分解成为两个投影:         R1(B,C), B为主码         R2(A,B), A为主码,B为外码

 据此可分解为:SC(SNO, CNO, G)    S-L1(SNO, SDEPT,)  S-L2(SDEPT, SLOC)

BCNF

关系模式R中每一个决定因素都包含(或是)码,则R属于BCNF 

综合例子: 

某书店购书情况汇总登记表 :

根据分析可以得到一组函数依赖: F={ NO→C#,C#→CN,C#→CA,B#→BN,B#→EU,B#→UP,(NO,B#) →QUA },表中(NO,B#)为关键字

 先升级为2NF

    

再分解为3NF

            


二.求闭包

在关系模式R<U, F>中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F+

 

设F为属性集U上的一组函数依赖,X属于U, X+F={A|X ->A能由Armstrong公理导出}, X+F称为属性集X关于函数依赖F的闭包

步骤: 

 eg:

 


三.求主码

设关系模式R<U, F> (1) 将R的所有属性分为 L、 R、N和 LR四类 

1.   

  • L类: 仅出现在F的函数依赖左部的属性;    
  • R类: ………………………...右…………;    
  • N类: 在F的函数依赖左右两边都不出现的属性;    
  • LR类: …………………………都出现的属性

2.

  • 开始求L类中单个属性的闭包 ,如果最后结果是全部属性,那个那个属性即为主码
  • 所有单个属性都不能达到结果,那就开始找多个属性结合的闭包(从2到n慢慢增加,直到结果是全部属性)
  • 如果L类中用完了都不行,那就加上N类属性,先加一个,不行在增加。
  • 如果L+N都不行,最后加上LR类吧(当然老师不会出那么复杂的,一般顶多加上N类就行了)

 

eg:

设关系模式R(A, B, C, D, E, P), 其函数依赖集:     F={A→D, E→D, D→B, BC→D, DC→A}    

求R的所有候选码。

解:  L类: C, E          

R类:          

N类: P            

LR类: A, B, D

因为(CEP)F+=CEPDBA,所以CEP是R的唯一候选码


那么今天就先到这里了,之前写博客都是用富文本,今天发现好多符号都不能打出,影响大家的观感,只能截图进来,看来要去学习学习markdown了。希望下次能学会markdown来有更好的格式吧

 

 

 

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

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

相关文章

111.am40刷机折腾记4-firefly镜像-dp正常显示

1. 平台&#xff1a; rk3399 am40 4g32g 2. 内核&#xff1a;firefly的内核&#xff08;整体镜像&#xff09; 版本&#xff1a; linux4.4.194 3. 交叉编译工具 &#xff1a;暂时不编译 4. 宿主机&#xff1a;ubuntu18.04 5. 需要的素材和资料&#xff1a;boot-am40-202…

14、SQL注入——HTTP文件头注入

文章目录 一、HTTP Header概述1.1 HTTP工作原理1.2 HTTP报文类型1.3 较重要的HTTP Header内容 二、HTTP Header注入2.1 HTTP Header注入的前提条件2.2 常见的HTTP Header注入类型 一、HTTP Header概述 1.1 HTTP工作原理 1.2 HTTP报文类型 &#xff08;1&#xff09;请求报文 …

CrystalDiskInfo中文版(硬盘检测工具) v9.1.1.0 绿色汉化版-供大家学习研究参考

更新内容 重新支持三星SATA SSD寿命报告 增加对ZHITAI SC001的支持 新增SK hynix Gold S31支持 增加了KLEVV NEO N610的支持。 改进的Micron/Crucial SATA SSD支持 已更改 卸载程序将显示一个确认对话框&#xff0c;用于删除设置。 强大功能 1.拥有多国语言&#xff0c;…

element中el-select多选v-model是对象数组

文章目录 一、问题二、解决三、最后 一、问题 element中的el-select的v-model一般都是字符串或者字符串数组&#xff0c;但是有些时候后端接口要求该字段要传对象或者对象数组&#xff0c;如果再转换一次数据&#xff0c;对于保存配置和回显都是吃力不讨好的事情。如下所示&am…

Linux--学习记录(2)

解压命令&#xff1a; gzip命令&#xff1a; 参数&#xff1a; -k&#xff1a;待压缩的文件会保留下来&#xff0c;生成一个新的压缩文件-d&#xff1a;解压压缩文件语法&#xff1a; gzip -k pathname(待压缩的文件夹名)gzip -kd name.gz&#xff08;待解压的压缩包名&#x…

数据库版本管理框架-Flyway(从入门到精通)

一、flyway简介 Flyway是一个简单开源数据库版本控制器&#xff08;约定大于配置&#xff09;&#xff0c;主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL&#xff08;PL/SQL、T-SQL&#xff09;方式和Java方式&#xff0c;支持命令行客户端等&am…

SpringIOC之@Configuration

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

手机的隐私空间的相关知识

一、删除: 进入隐私空间: 打开手机的设置,找到隐私空间(或类似名称)选项,然后输入密码或验证方式进入隐私空间。浏览内容: 在隐私空间中,您可以浏览存储在其中的照片、视频、文件等内容。选择删除: 选择您想要删除的内容,通常可以通过长按或选中复选框的方式进行多选…

孩子都能学会的FPGA:第二十六课——用FPGA实现CIC抽取滤波器

&#xff08;原创声明&#xff1a;该文是作者的原创&#xff0c;面向对象是FPGA入门者&#xff0c;后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门&#xff0c;作者不光让大家知其然&#xff0c;还要让大家知其所以然&#xff01;每个工程作者都搭建了全自动化的仿…

第二次上机测试:Javascript. (第一组)

需求&#xff1a;&#xff08;注意在规定的时间&#xff0c;在自己的博客提交作品&#xff0c;便于统计测试的完成情况。博客题目《第二次上机测试&#xff1a;Javascript.》&#xff09; 1、点击按钮&#xff0c;将图片加上边框 2、点击按钮&#xff0c;将图片缩小为长和宽都…

windows安装protoc、protoc-gen-go、protoc-gen-go-grpc

文章目录 一、 protoc二、protoc-gen-go三、protoc-gen-go-grpc 一、 protoc 1&#xff0c;下载&#xff1a;https://github.com/google/protobuf/releases 下载对应的protoc&#xff0c;注意选择windows 2&#xff0c;下好之后解压就行&#xff0c;然后把bin目录加入到环境…

无损放大神器,Topaz Gigapixel AI,让你的图像更清晰!

无论是摄影爱好者、设计师还是专业摄影师&#xff0c;我们都希望能够拍摄到最清晰、最细腻的图像。然而&#xff0c;在现实生活中&#xff0c;我们往往会面临图像放大后模糊失真的问题。为了解决这一难题&#xff0c;我们推荐一款强大的图像无损放大工具——Topaz Gigapixel AI…

2020年第九届数学建模国际赛小美赛B题血氧饱和度的变异性解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 B题 血氧饱和度的变异性 原题再现&#xff1a; 脉搏血氧饱和度是监测患者血氧饱和度的常规方法。在连续监测期间&#xff0c;我们希望能够使用模型描述血氧饱和度的模式。   我们有36名受试者的数据&#xff0c;每个受试者以1 Hz的频率连…

对python自动生成接口测试的示例讲解

在python中Template可以将字符串的格式固定下来&#xff0c;重复利用。 同一套测试框架为了可以复用&#xff0c;所以我们可以将用例部分做参数化&#xff0c;然后运用到各个项目中。 代码如下&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2…

GPT-4 变懒了?官方回复

你是否注意到&#xff0c;最近使用 ChatGPT 的时候&#xff0c;当你向它提出一些问题&#xff0c;却得到的回应似乎变得简短而敷衍了&#xff1f;对于这一现象&#xff0c;ChatGPT 官方给出了回应。 译文&#xff1a;我们听到了你们所有关于 GPT4 变得更懒的反馈&#xff01;我…

记录 | vscode设置自动换行

右上菜单栏 -> 查看 -> 打开自动换行 或者还有种方式&#xff0c;如下&#xff0c; 左下角小齿轮&#xff0c;点击设置 然后输入 Editor: Word Wrap &#xff0c;把开关打开为 on

web前端开发html/css练习

目标图&#xff1a; 素材&#xff1a; 代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"…

【ET8】2.ET8入门-ET框架解析

菜单栏相关&#xff1a;ENABLE_DLL选项 ET->ChangeDefine->ADD_ENABLE_DLL/REMOVE_ENABLE_DLL 一般在开发阶段使用Editor时需要关闭ENABLE_DLL选项。该选项关闭时&#xff0c;修改脚本之后&#xff0c;会直接重新编译所有的代码&#xff0c;Editor在运行时会直接使用最…

【Vue3+Ts项目】硅谷甄选 — 路由配置+登录模块+layout组件+路由鉴权

一、路由配置 项目一共需要4个一级路由&#xff1a;登录&#xff08;login&#xff09;、主页&#xff08;home&#xff09;、404、任意路由&#xff08;重定向到404&#xff09;。 1.1 安装路由插件 pnpm install vue-router 1.2 创建路由组件 在src目录下新建views文件…