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

【数据库系统概论】第6章 (一)函数依赖和码

目录

函数依赖

1、函数依赖

2、平凡函数依赖与非平凡函数依赖

3、完全函数依赖与部分函数依赖

4、传递函数依赖

候选码

主属性与非主属性

第二章提过:在本章中把关系模式看作一个三元组:R<U,F>

在本章中把关系模式看作一个三元组:R<U,F>

  • R:表示关系模式的名称,通常是关系的名字。

  • U:是一个属性集合,表示关系中的所有属性。属性可以理解为表中的列。

  • F:表示一组函数依赖(Functional Dependencies),即属性之间的约束关系。函数依赖指的是在给定关系中,某些属性的值确定了其他属性的值。

函数依赖

数据依赖是关系内部属性与属性之间的一种约束关系(通过属性间值的相等与否体现出来的数据间相互联系;是现实世界属性间相互联系的抽象;是数据内在的性质;是语义的体现

主要类型

函数依赖(FunctionalDependency,简记为FD)

函数依赖描述了一个属性或属性集如何唯一确定另一个属性或属性集的值

多值依赖(Multi-Valued Dependency,简记为MVD)

要定义属性之间的关系,也就是函数依赖

学号(Sno)和课程号(Cno)共同决定了成绩(Grade)

学号 Sno\text{Sno}Sno 是主键,它唯一标识一个学生,因此它决定了学生所在的系(Sdept),所在的系决定了系主任的姓名(Mname)

1、函数依赖

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

若X→Y,并且Y→X,则记为X←→Y。
若Y不函数依赖于X,则记为XY。

任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同

函数依赖不是指关系模式R的某个或某些关系实例满足约束条件,而是R的所有关系实例均要满足约束条件

  • 属性集X 的值决定了属性集 Y 的值。
  • 如果两个元组在属性集 X上的值相同,那么它们在属性集Y 上的值也必须相同
  • X 的值唯一确定了 Y 的值

2、平凡函数依赖与非平凡函数依赖

平凡函数依赖其实是“显然的”依赖,它表示某个属性集 XXX 通过自身或其子集决定了 YYY。这种依赖没有实际的约束意义,因为它只描述了属性本身之间的关系。例如,学号总是决定学号本身,或者学号和课程号的组合总是决定学号本身,这些依赖显然是不需要特别关注的。


对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。
若不特别声明 ,我们总是讨论非平凡函数依赖,

3、完全函数依赖与部分函数依赖

在R(U)中,如果X→Y,并且对于x的任何一个真子集X'

若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖

完全函数依赖表示某个非主属性(或属性集)完全依赖于复合主键的所有属性

 

4、传递函数依赖

如果Y→X 即X←→Y,则Z直接依赖于X,而不是传递函数依赖。

候选码

则K称以为的一个候选码(Candidate Key)。

如果U函数依赖于K即K→U从则K称为超码(Surpkey);候选码是最小的超码。

若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)

码(键)

在关系中由唯一可标识元组的属性或属性组构成

候选码(键)

且属性个数最少的码

主码(键)

多个候选码,则选定其中一个为主码。主码不允许为空值(非零和空格)

主属性与非主属性

包含在任何一个候选码中的属性,称为主属性Prime attribute

不包含在任何码中的属性称为非主属性(Nonprimeattribute)或非码属性(Non-key attribute)》

全码:整个属性组是码,称为全码(AI-key)

外码:在关系R中包含另一个关系S的主键所对应的属性或属性组【主码与外部码一起提供了表示关系间联系的手段】


http://www.mrgr.cn/news/78571.html

相关文章:

  • SQLark:高效数据库连接管理的新篇章
  • 今日总结 2025-01-06
  • openwrt 清缓存命令行
  • BOOST 库在深度学习中的应用及具体代码分析(三)
  • mysql连接时报错1130-Host ‘hostname‘ is not allowed to connect to this MySQL server
  • 数据在内存中的存储【C语言版】
  • 3.26线性回归对率回归
  • 大米中的虫子检测-检测储藏的大米中是否有虫子 支持YOLO,VOC,COCO格式标注,4070张图片的数据集
  • 2008年IMO几何预选题第3题
  • Gazebo插件相机传感器(可订阅/camera/image_raw话题)
  • 力扣刷题TOP101:6.BM7 链表中环的入口结点
  • 输出1~n中能被3整除,且至少有一位数字是5的所有整数.:JAVA
  • 3.22决策树,离散值
  • 【前端】Next.js 服务器端渲染(SSR)与客户端渲染(CSR)的最佳实践
  • 《Django 5 By Example》阅读笔记:p388-p454
  • 使用C#开发VTK笔记(一)-开发环境搭建
  • 开发指南080-邮箱录入控件
  • 单细胞细胞通讯全流程分析教程,代做分析和辅导
  • 《深入理解经典广度优先遍历算法》
  • C语言 qsort及应用
  • 每天五分钟深度学习PyTorch:搭建卷积神经网络完成手写字体识别
  • DAMODEL丹摩|Faster-Rcnn训练与部署实战
  • 【AIGC】大模型面试高频考点-RAG中Embedding模型选型
  • Ubuntu24.04初始化教程(包含基础优化、ros2)
  • 屏幕分辨率|尺寸|颜色深度指纹
  • Git(一)基本使用