关系模式中的各属性之间的相互依赖,相互制约的联系称为数据依赖。

数据依赖一般分为函数依赖,多值依赖,连接依赖,最重要的是函数依赖。

1.函数依赖是关系模式中属性之间的一种逻辑依赖关系。

下面是展示的3个关系示例:

学生关系:S(SNO,SN,AGE,DEPT);

选课关系:SC(SNO,CNO,SCORE);

系关系:D(DEPT,MN);

由于一个SNO对应一个学生,而一个学生只属于一个系,所以当SNO确定之后,SN,AGE,DEPT的值也唯一确定了,可以说SNO决定函数(SN,AGE,DEPT),或者是(SN,AGE,DEPT)函数依赖于SNO。或者表示为:SN0->(SN,AGE,DEPT);可以抽象成:X->Y(Y依赖于X,X决定Y)。

平凡依赖与非平凡依赖

非平凡函数依赖和部分函数依赖的区别就在于X包不包含Y,也就是Y是不是X的子集的区别。

比如:非平凡:SN0->(SN,AGE,DEPT)

平凡:(SNO,CNO)->CNO

函数依赖反应了一种语义完整性约束,比如SN->AGE,这种必须是在学生没有重名的条件下才能成立。

2.函数依赖与属性之间的联系类型有关

在一个关系模式中,如果属性X与Y有1:1联系,则存在XY,比如如果学生不存在重名,SNOSN

如果X与Y有1:m关系,比如SNO与AGE之间为1:m联系,SNO->AGE,SNO->DEPT(班级)

如果是m:n,则不存在任何函数依赖,比如一个学生可以选择多门课程,这个课程可以由多个学生选择

3.函数依赖的存在与否与时间无关

因为函数依赖是指关系中的所有元组应该满足的约束条件,而不是关系中的某个或某些元组所满足的约束条件。关系中的元组的增删改都不能破坏这种函数依赖,

所以必须根据语义来确定属性之间的函数依赖,不是根据某一时刻关系中的实际数据来判断

4.函数依赖的定义

设关系模式R(U),U是属性全集,X和Y是U的子集,如果X->Y,并且对于X的任何一个真子集X',都有X'不决定Y,则称Y对完全函数依赖。否则称为部分函数依赖。

注意:只有当决定因素是组合属性的时候,讨论部分依赖才有意义,当决定因素是单属性的时候,只能是完全函数依赖。

比如:SNO->(SN,AGE,DEPT),决定因素是SNO,不存在部分函数依赖。

设关系模式R(U),U是属性全集,X和Y是U的子集,X,Y,Z是U的子集。若X->Y,Y->Z,但Y不决定X,则称Z对X传递函数依赖,但是如果XY,则称Z对X直接函数依赖。

比如:学号->班级,班级->讲师,但是讲师不能决定班级,所以讲师对学号是传递函数依赖。假设学生不重名,学号决定学生名,学生名决定学号,学生名决定了班级,这时候班级对学号是直接函数依赖。

各个mysql的依赖_关系数据库中的函数依赖相关推荐

  1. mysql数据库管理文件_数据库管理中文件的使用教程

    摘要:这篇MySQL栏目下的"数据库管理中文件的使用教程",介绍的技术点是"数据库管理.使用教程.数据库.的使用.文件.管理",希望对大家开发技术学习和问题解决 ...

  2. mysql数据库管理文件_数据库管理中文件的使用_MySQL

    bitsCN.com 数据库管理中文件的使用 从文本文件中读取数据(import) 常用的文本文件:CSV(Comma Separated Values)文件,即:以逗号分隔的数值 形式如下: [pl ...

  3. mysql开发问题解决_开发过程中mysql常见问题的解决方法

    本篇文章给大家带来的内容是关于开发过程中mysql常见问题的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录开发过程中遇到mysql相关的问题以及解决方法,长期更新. 远 ...

  4. mysql 数据仓库 元数据_数据仓库中的元数据管理

    1. 引言 元数据是数据仓库中的一个重要组成部分,元数据管理系统则是构建,管理,维护和使用数据仓库系统的核心部件. 2. 基础知识 2.1 元数据的定义 元数据是指来自企业内外的所有物理数据和知识,包 ...

  5. 关于mysql的项目_项目中常用的MySQL 优化

    本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下: 一.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我 ...

  6. sql 删除依赖_关系数据库标准语言SQL(二)

    声明:最近在准备考试,故整理数据库原理笔记. 视图 视图的创建和删除 CREATE VIEW <视图名 > [ <列名 > , --, <列名 >)] AS &l ...

  7. mysql数据库击穿_面试中经常出现的缓存穿透、雪崩和击穿到底是什么?

    对于缓存穿透.缓存雪崩和缓存击穿常常出现在面试中,今天来看看它到底是何方神圣 ​ ​ redis缓存穿透 ​理解重在穿透吧,也就是访问透过redis直接经过mysql,通常是一个不存在的key,在数据 ...

  8. mysql 邮箱长度_数据库中电子邮件地址的最佳长度是多less?

    数据库中电子邮件地址的最佳长度是多less? 这里是我查询的一部分,反映了EMAIL_ADDRESS列的数据types和属性: EMAIL_ADDRESS CHARACTER VARYING(20) ...

  9. 在工作中mysql常用知识_工作中常用的mysql命令

    1.啟動數據庫 #啟動mysql(skip-name-resolve參數是必須的) su - mysql -c "mysqld_safe --skip-name-resolve --open ...

最新文章

  1. POJ 3126 Prime Path(筛法,双向搜索)
  2. 计算机类和鼠标类是什么关系,常见鼠标的种类
  3. SCCM 2007系列5 播发操作系统下
  4. 信息化教学与计算机的关联性,信息化教学方法应用探索——以计算机基础课程为例.pdf...
  5. php通用的树型类创建无限级树型菜单
  6. LeetCode 1278. 分割回文串 III(区间DP)
  7. Ztree手风琴效果(第三版)
  8. Ubuntu替换pip源
  9. Flutter之SnackBar原理详解
  10. MASM DEBUG LINKER免费下载
  11. python剪切文件到另外路径_python剪切文件
  12. 服务器系统试用,苹果“雪豹”服务器操作系统试用安装篇
  13. Python 抓取钢铁价格 ==> 计算季度平均价格
  14. 自我介绍(思维导图)
  15. ADSP21489 Target halted due to software breakpoint but no breakpoint found at address: 0x208c0b6 ()
  16. 渗透测试之AppScan篇
  17. 阿里云视频云推出低代码音视频工厂vPaaS
  18. 最全的 lombok 注解详情(随着版本不定时更新)
  19. TensorFlow 图像识别功能在树莓派上的应用
  20. rabbitmq简介及安装

热门文章

  1. 基于QT的一款P2P共享文件系统
  2. VS调试:未能向文件“obj\Debug\\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs”写入命令行。
  3. linux分区格式8e,linux磁盘分区格式化
  4. JavaScript - Vue经典教程系列-李游Leo-专题视频课程
  5. 【热门主题:5代火影黑色主题】
  6. 3.0 Jmeter应用进阶三--利用Jmeter进行web性能测试(一)
  7. ffmpeg实例,比特率码率(-b)、帧率(-r)和文件大小(-fs)相关操作
  8. rust放置木箱转向_rust船厂保险丝放在哪里 | 手游网游页游攻略大全
  9. FZ(File Zilla)服务发布
  10. 性能优化专题八--webp图片压缩实战