关系数据库理论【数据库系统概论】

1.问题的提出

1.1关系模式的表示

关系模式由五部分组成,是一个五元组:R(U,D,DOM,F)

元组概念
R关系名R是符号化的元组语义。
UU为一组属性。比如学号,姓名。
DD为属性组U中的属性所来自的域。比如年龄的取值范围。
DOMDOM为属性到域的映射。具体的取值。
FF为属性组U上的一组数据依赖。

【说明】
(1)由于D、DOM与模式设计关系不大,因此在本章中把关系模式看作一一个三元组: R<U、F>。R就相当于表的名字,U就是表中的每个字段属性,F就是每个字段之间的属性关系。
(2)当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系。r就相当于实际的值之间的关系。
(3)作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式了就属于第一范式(1NF)。每一行可能叫元组也有的叫记录

1.2 数据依赖

数据依赖是一个关系内部属性与属性之间的一种约束关系是通过属性间值的相等与否体现出来的数据间相互联系。

数据依赖的主要类型:

  • 函数依赖(Funct ional Dependency, 简记为FD)
  • 多值依赖(Multi-Valued Dependency,简记为MVD)

1.3.函数依赖在现实生活中的体现

例1:
描述一个学生关系,可以有学号、姓名、系名等属性。一个学号只对应一个学生,一个学生只在一个系中学习,“学号”确定后,学生的姓名及所在系的值就被唯一确定。
Sname=f (Sno),
Sdept=f (Sno)即Sno函数决定Sname, Sn确定Sdept,
记作Sno->Sname, Sno-> Sdept.

例2:
建立一个描述学校教务的数据库。涉及的对象包括:学生的学号、(Sno) 、所在系(Sdept)、系主任姓名(Mname) 、课程号(Cno)、成绩(Grade)。。
假设学校教务的数据库模式用一个单一的关系模式Student来表示,则该关系模式的属性集合为:
U= {Sno, Sdept, Mname, Cno, Grade}

现实世界的已知事实(语义) :

  • 一个系有若干学生,但-一个学生只属于一个系;
  • 一个系只有一名(正职)负责人;
  • 一个学生可以选修多门课程,每门课程有若干学生选修:
  • 每个学生学习每一门课程有一一个成绩。

由此可得到属性组U.上的一-组函数依赖F:
F= {Sno->Sdept, Sdent -> Mname, (Sno,Cno)->Grade}
在这里插入图片描述

1.4 函数依赖中存在的问题

  • 数据冗余
  • 更新异常
  • 插入异常
  • 删除异常

为了解决这些问题就需要使用到规范

2.规范化

2.1 函数依赖

【定义1】设R (U)是属性集U上的关系模式,X、 Y是U的子集。若对于R (U)的任意一个可能的关系r,r中不可能存在两个元组上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X->Y。

函数依赖有以下5种:

依赖关系概念数学表示
非平凡函数依赖X → \rightarrow Y,但Y ⊊ \subsetneq X
平凡函数依赖X → \rightarrow Y,但Y ⊆ \subseteq X
决定因素X → \rightarrow Y,则X称之为函数依赖的决定因素
完全函数依赖X → \rightarrow Y,并且对X集合中的任何真子集X’,都有X’ ↛ \nrightarrow Y,即Y依赖于X中的所有属性。 X → F Y X\overset{F}{\rightarrow}Y XFY
部分函数依赖X → \rightarrow Y,但又不完全依赖X的属性 X → P Y X\overset{P}{\rightarrow}Y XPY
传递函数依赖在R(U)中,如果X → \rightarrow Y(Y ⊊ \subsetneq X),Y ↛ \nrightarrow X,Y → \rightarrow Z,Z ⊊ \subsetneq Y,则称Z对X是传递依赖 X → 传递 Y X\overset{传递}{\rightarrow}Y X传递Y
直接函数依赖如果在传递函数依赖中的X ← → \leftarrow\rightarrow ←→Y,则X就是直接能推出Z,称之为直接函数依赖

【例】Student (Sno, Sname, Ssex, Sage, Sdept)。
假设不允许重名,则有:
Sno ->Ssex, Sno–>Sage, Sno->Sdept, Sno->Sname
Sname->Ssex, Sname->Sage, Sname ->Sdept。
但Ssex->Sage, Ssex ↛ \nrightarrow Sdept。

2.2 码

码是关系模式中的一个重要概念。在数据库中有以下几种码:

概念
候选码设K为R<U, F>中的属性或属性组合,若 K → F F K\overset{F}{\rightarrow}F KFF,则K为R的候选码
超码设K为R<U, F>中的属性或属性组合,,如果U部分函数依赖于K,即K-U,则K称为超码( Surpkey)。 候选码是最小的超码,即K的任意一个真子集都不是候选码。
主码若候选码多于一个, 则选定其中的一个为主码(primary key)。
主属性包含在任何一个候选码中的属性称为主属性(primeattribute)
非主属性\非码属性不包含任何候选码中的属性称为非主属性(nonprime attribute)或非码属性(non-key attribute)。
全码整个属性都是码,则称为全码

2.3 第一范式(1FN)

【定义】数据表中的每一个属性都不可再分,就属于第一范式。比如说价格可以分为售价和进价,就不能直接用价格来表示,必须单独把他们进行表示。

2.4 第二范式(2FN)

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

【例子】S-L-C(Sno, Sdept, Sloc, Cno, Grade), Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno, Cno)。
函数依赖有:
(Sno, Cno) → F \overset{F}{\rightarrow} F Grade
Sno→Sdept, (Sno, Cno) → F \overset{F}{\rightarrow} FSdept
Sno → \rightarrow Sloc, (Sno, Cno) → P \overset{P}{\rightarrow} PSIoc
Sdept → \rightarrow Sloc

在这里插入图片描述
【说明】
①图中虚线表示部分函数依赖。
②非主属性Sdept、Sloc并不完全依赖于码。
③关系模式S-L-C不属于2NF。
因为在候选依赖中,非主属性(Sdep)部分依赖于候选码(Cno),所以不满足第二范式。
不满足2FN的会产生插入异常删除异常修改复杂等问题。

出现这种问题的原因:
例子中有两类非主属性: -类如Grade,它对码完全函数依赖,另一类如Sdept、Sloc, 它们对码不是完全函数依赖。
解决方法:
用投影分解把关系模式S-L-C分解成两个关系模式。
SC (Sno, Cno, Grade)。
S-L (Sno, Sdept, Sloc)。
在这里插入图片描述
SC的码为(Sno, Cno),SL的码为Sno,这样使得非主属性对码都是完全函数依赖了。

2.5 第三范式(3FN)

[定义7]设关系模式R<U, F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (ZPY),使得X-→Y,Y→Z成立,Y → \rightarrow X不成立,则称R<U, F>∈3NF。即第三范式中不能有传递依赖。
[例] SC没有传递依赖,因此SC∈3NF。
S-L中Sno → \rightarrow Sdept (Sdept ↛ \nrightarrow Sno),Sdept → \rightarrow Sloc,
传递
可得Sno → 传递 \overset{传递}{\rightarrow} 传递 Sloc.
解决的办法是将S-L分解成:
S-D (Sno, Sdept) ∈ 3NF。
D-L (Sdept, Sloc) ∈3NF。

2.6 BC范式(BCNF)

BCNF (Boyce Codd Normal Form) 由Boyce和Codd提出, 比3NF更进了一步。通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。
【定义8】设关系模式R<U, F>∈1NF,若X→Y且Y ⊄ \not\subset X时X必含有码,则R<U, F> 属于BCNF。换言之,在关系模式R<U, F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。

BCNF的关系模式所具有的性质:
(1)所有非主属性都完全函数依赖于每个候选码。比如能X → \rightarrow Y,Y必须完全依赖于X中任何一个属性。
(2)所有主属性都完全函数依赖于每个不包含它的候选码。
(3)没有任何属性完全函数依赖于非码的任一组属性。
如果一个关系数据库中的所有关系模式都属于BCNF,那么数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规程度,消除了插入异常和删除异常。

【例1】考察关系模式C (Cno, Cname, Pcno),它只有一个码Cno,没有任何属性对Cno部分依赖或传递依赖,F所以C∈3NF。同时中Cno是唯一的决定因素 ,所以C∈BCNF。Cno是课程编号,Cname是课程名字,Pcno是课程先导课。
由题知Cno → \rightarrow Cname,Cno → \rightarrow Pcno。

【例2】关系模式S (Sno, Sname, Sdept, Sage),假定Sname也具有唯一性,那么S就有两个码,这两个码都由单个属性组成,彼此不相交。其他属性不存在对码的传递依赖与部分依赖,所以S∈3NF。同时S中除Sno, Sname外没有其他决定因素,所以S也属于BCNF。
由题知:
Sno → \rightarrow Sname
Sname → \rightarrow Sno
则Sno ← → \leftarrow\rightarrow ←→Sname
Sno → \rightarrow Sdept
Sno → \rightarrow Sage

小结:

范式简单概念
1FN属性不可再分
2FN不存在部分依赖
3FN不存在传递依赖
BCFN在满足三大范式的条件下,没有属性依赖于非码属性

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

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

相关文章

国学短剧《我是小影星》栏目火热开拍

近日&#xff0c;国学短剧《我是小影星》栏目花絮拍摄&#xff0c;在上海市徐汇区漕溪路595号A座B1层开拍。该节目招募全国各地的有才华&#xff0c;有表现力怀揣梦想的小朋友来参与节目拍摄。节目旨在以中华传统文化为切入点&#xff0c;通过戏剧、歌舞、音乐等多种艺术形式的…

opencv将32位深图片合成视频跳帧解决办法

在合成视频时候&#xff0c;大多数的图片都是24位深度的&#xff08;即RGB三通道&#xff0c;一个通道8位&#xff09;&#xff0c;但是也存在少量的32位深的图片&#xff08;RGBA&#xff0c;三个颜色通道加上A这个透明度通道&#xff09;&#xff0c;32位和24位的格式是不一样…

html页面直接使用elementui Plus时间线 + vue3

直接上效果图 案例源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"../js/vue3.3.8/vue.global.js"></script><link rel"styles…

chatGPT PLUS 绑卡提示信用卡被拒的解决办法

一、 ChatGPT Plus介绍 作为人工智能领域的一项重要革新&#xff0c;ChatGPT Plus的上线引起了众多用户的关注&#xff0c;其背后的OpenAI表现出傲娇的态度&#xff0c;被誉为下一个GTP 4.0。总的来说&#xff0c;ChatGPT Plus的火爆主要有两个原因。首先&#xff0c;其在人工…

PHP/Laravel通过经纬度计算距离获取附近商家

实际开发中,常常需要获取用户附近的商家,思路是 获取用户位置(经纬度信息)在数据库中查询在距离范围内的商家 注: 本文章内计算距离所使用地球半径统一为 6378.138 km public function mpa_list($latitude,$longitude,$distance){// $latitude 34.306465;// $longitude 10…

2019年计网408

第33题 OSI 参考模型的第 5 层&#xff08;自下而上&#xff09;完成的主要功能是()A. 差错控制B. 路由选择C. 会话管理D. 数据表示转换 本题考察开放系统互联参考模型的第五层完成的主要功能。开放系统互联参考模型是一个七层的体系结构。自下而上&#xff0c;依次是物理层、…

centos7 利用nc命令探测某个tcp端口是否在监听

脚本 # 安装nc yum install -y ncnc -vz 192.168.3.128 60001 if [ $? -eq 0 ]; thenecho "tcp succeed" elseecho "tcp failed" fi nc -vz 192.168.3.128 60001 探测192.168.3.128服务器上60001 tcp端口, -vz说明是探测TCP的 端口开启的情况 执行…

【工具与中间件】IDEA工具的使用:热部署、快捷键与版本控制

文章目录 0. 前言1. IDEA 配置热部署2. IDEA 常用快捷键3. IDEA 绑定GIT4. 小结 IDEA工具配置热部署&#xff0c;让我们的开发更有效率 0. 前言 以下是水文字&#xff0c;心急的读者可以直接阅读下面的章节。 有时&#xff0c;新&#xff0c;先进的东西确实可以给这个时代的…

隧道ip网络广播系统

隧道ip网络广播系统 隧道ip网络广播系统的优势有那些&#xff1f; 节省人力及维护成本&#xff1a;隧道ip网络广播系统可以自动播放节目&#xff0c;无需人工操作&#xff0c;节省了人力成本。定时广播&#xff0c;分区广播&#xff0c;全区广播&#xff0c;方便管理和简易化…

「Verilog学习笔记」实现3-8译码器①

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 ① 本题要求根据38译码器的功能表实现该电路&#xff0c;同时要求采用基础逻辑门实现&#xff0c;那么就需要将功能表转换为逻辑表达式。 timescale 1ns/1nsmodule d…

企业降低成本方法有哪些?

企业的经营管理离开不两件事&#xff1a;提升营业额&#xff0c;降低成本。企业的发展壮大&#xff0c;离不开销售&#xff0c;按理说&#xff0c;营业额越高&#xff0c;企业的发展就越大&#xff1b;事实上&#xff0c;除了销售好&#xff0c;营业额高&#xff0c;还需重视一…

阿里云4核8G服务器优惠价格表,最低价格501.90元6个月、983.80元1年

阿里云4核8G服务器优惠价格表&#xff0c;云服务器ECS计算型c7实例4核8G配置3M带宽40GB ESSD云盘&#xff08;系统盘&#xff09;叠加使用优惠券后价格501.90元6个月、983.80元1年&#xff0c;现在购买经济型e、通用算力型u1、计算型c7和计算型c8a与c8i实例4核8G配置均有优惠&a…

5-Nacos环境搭建

本文介绍nacos集群环境的搭建。 1、基础环境 机器&#xff1a;mac&#xff0c;intel版本jdk&#xff1a;1.8数据库&#xff1a;mysql 8.029nacos&#xff1a;2.03 2、下载 nacos点击这里下载。 3、开始配置 这里搭建在自己机器上搭建两台nacos集群。下载完成后&#xff0…

MR混合现实教学系统在汽车检修与维护课堂教学中的应用

传统的汽车检修与维护课堂教学主要依赖教师口头讲解和黑板演示&#xff0c;这种方式存在一定的局限性。首先&#xff0c;对于一些复杂的机械结构和操作过程&#xff0c;教师难以生动形象地展示给学生。其次&#xff0c;学生无法直接观察到实际操作中的细节和注意事项&#xff0…

从字典到 CookieJar 的转换技巧

在使用requests库进行HTTP请求时&#xff0c;经常需要传递cookies参数来实现一些特定的功能&#xff0c;例如保持用户会话状态或者进行身份验证。 在HTTP请求中&#xff0c;Cookie是一种用来在客户端和服务器之间传递状态信息的方式&#xff0c;通常用于记录用户的身份验证信息…

透视maven打包编译正常,intellj idea编译失败问题的本质

前言 maven多模块类型的项目&#xff0c;在Java的中大型应用中非常常见&#xff0c; 在 module 很多的情况&#xff0c;经常会出现各种各样的编辑依赖错误问题&#xff0c;今天记录一种比较常见的 case &#xff1a; A 子模块依赖 B 子模块&#xff0c;在 Terminal 上终端上 …

迷你型洗衣机好用吗?内衣洗衣机便宜好用的牌子

随着科技的快速发展&#xff0c;现在的人们越来越注重自己的卫生问题&#xff0c;不仅在吃上面会注重卫生问题&#xff0c;在用的上面也会更加严格要求&#xff0c;而衣服做为我们最贴身的东西&#xff0c;我们对它的要求也会更加高&#xff0c;所以最近这几年较火爆的无疑是内…

机器学习第8天:SVM分类

文章目录 机器学习专栏 介绍 特征缩放 示例代码 硬间隔与软间隔分类 主要代码 代码解释 非线性SVM分类 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 作用&#xff1a;判别种类 原理&#xff1a;找出一个决策边界&#xff0c;判断数据所处区域来识别种类 简单…

Matlab通信仿真系列——图形处理函数

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、plot函数 (1)绘制一…

振弦式渗压计与振弦采集仪组成大坝水库安全监测的案例

振弦式渗压计与振弦采集仪组成大坝水库安全监测的案例 振弦式渗压计是一种常用的水文地质监测仪器&#xff0c;主要用于测量土体中的渗流压力、水位变化等参数。而振弦采集仪则是一种数据采集和传输装置&#xff0c;可以将振弦式渗压计采集到的数据进行处理和传输。 在大坝水库…