多值依赖与部分函数依赖
多值依赖的定义:
设R(U)是一个属性集合U上的一个关系模式,X, Y, 和Z是U的子集,并且Z=U-X-Y,多值依赖X->->Y成立当且仅当对R的任一个关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。
若X->->Y,而Z=空集,则称X->->Y为平凡的多值依赖。否则,称X->->Y为非平凡的多值依赖。
可以看出,如果把上面的一组改为一个,那么多值依赖就变成了函数依赖。当然一个值组成的组也是组,所以说,函数依赖是多值依赖的特殊情况。
如下表:
课程C 教师T 参考书B
数学 邓军 数学分析
数学 邓军 高等代数
数学 邓军 微分方程
表中,U = C+T+B,(C,T)确定一组B,但是这组B其实与T无关,仅由C确定,所以(C,T)->->B。又因为T不是空集,所以(C,T)->->B为非平凡多值依赖。
要想消除多只依赖,可以分解为:(C,T), (C,B)及
表1:
课程C 教师T
数学 邓军
表2:
课程C 参考书B
数学 数学分析
数学 高等代数
数学 微分方程
对于R中的每个非平凡多值依赖X->->Y(Y不属于X),X都含有候选码,则R属于4NF。
分析:对于每一个非平凡多值依赖X->->Y,X若含有候选码,也就是X->Y,所以4NF所允许的非平凡多值依赖是函数依赖。
函数依赖是唯一确定的关系,例如在一个表 授课(课程号,课程名,课程学分,教师号,教师姓名,参考书号,参考书名)。当然这个表的主键是(课程号,教师号,参考书号)
课程名和课程学分函数依赖课程号,也就是说课程号唯一确定名字和学分;
同理,教师姓名函数依赖教师号;参考书名函数依赖参考书号。
但是,教师号可能多值依赖课程号,因为给定一个(课程号,参考书号)的组合,可能有对应多个教师号。这是因为多个老师可以使用相同或不同的参考书上同一门课。
简单点讲,函数就是唯一确定的关系;多值依赖却不能唯一确定。
我是看了百度知道才明白的, 标公式的都去使啊看都看不懂, 部分函数依赖是一种特殊的多值依赖, 多值依赖是有多个教师依赖到同一个(课程号,参考书号)组合里了, 而部分函数依赖只是一个教师依赖一个(课程号,参考书号), 就是单单老王依赖于(01,数据库)中的01了, 这是部分函数依赖, 如果还有个老五也依赖于(01,数据库)中的01的话, 就是多值依赖了, 有n个值部分函数依赖于一个东西上了
.
贴一个分解为4NF的步骤
一般情况求主键只看函数依赖,但一般也不是与多值依赖无关
你说的问题有点象将一个关系分解成4NF,分解成4NF的步骤
1.先将该关系模式分解成BCNF,消除了基于函数依赖的多值依赖不包含码,因为各个子模式中的函数依赖的左部都包含码(书上有分解成BCNF的方法)
2.再在各个分解成BCNF的关系模式中,看是否有不是基于函数依赖的非平凡的多值依赖,也就是说例如一个子模式存在X-->Y,X-->Z,Z=U-X-Y,Z非空集,此时必定X不->Y且X不->Z,
分解成(X,Y)和(X,Z)就将该子模式分解成4NF了,理论上是这样,当然在一般的数工考试题目中不需要这样,有时当分解成3NF和BCNF时,原有的多值依赖就破坏了.
多值依赖与部分函数依赖相关推荐
- 多值依赖与部分函数依赖 转
终于理解了多值依赖 转自http://blog.csdn.net/smstong " 多值依赖的定义: 设R(U)是一个属性集合U上的一个关系模式,X, Y, 和Z是U的子集,并且Z=U-X ...
- 6.0 《数据库系统概论》之关系数据库的规范化理论(数据依赖对表的影响[插入-删除-修改-冗余]、1NF-2NF-3NF-BCNF-4NF、函数依赖与多值依赖)
文章目录 0.思维导图 1.为什么要学习关系数据库规范化理论? (1)基本概念回顾 (2)关系模式的形式化定义 (3)什么是数据依赖F? (4)数据依赖F对关系模式的影响 1️⃣ 数据冗余(Data ...
- 基本函数依赖和候选键_[总结]关系数据库设计基础(函数依赖、无损连接性、保持函数依赖、范式、……)...
联系(Relationship)1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中一个实体有联系,反之亦然,那么实体集E1对E2的联系成为一对一联系,记为1:1: 1:N联系:一对多,记为1 ...
- 传递函数依赖与第三范式
基本概念 1.数据依赖 在计算机科学中,数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态.其中最重要的是函数依赖和多值依赖. 2.函数依赖 设X,Y是关系R的两个属性集合,当任何时 ...
- 第6章 关系数据理论—多值依赖和4NF
第6章 关系数据理论-多值依赖和4NF 本篇文章全部内容来自数据库系统概论第五版-王珊.萨师煊著. 这是对自己学习的总结,如有错误,请大家指正,一起进步! 1.多值依赖 例:学校某一门课程由多个教授讲 ...
- 2019/5/12 查漏补缺
目录 2019/5/12 查漏补缺 数据类型分为两大类:基本类型和引用类型: java中类的继承关系 关于接口 重载和重写 静态变量 java中的关键字和保留字 数据库操作 实现数据库收回部分权限的操 ...
- 数据库设计范式1NF-5NF白话总结
NF: normal form,中文叫范式.实质是数据库建表的规则,旨在减少数据库存储的冗赘. 1NF 符合1NF的关系中的每个属性都不可再分. 相当于ER-diagram中任何multiple at ...
- 数据库设计的三大范式、BCNF、4NF
一.理解数据库的范式需要理解几个基本概念: 码:表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫候选码,我们从候选码中挑一个出来做老大,它就叫主码.相当于键值的意 ...
- 2022考研计算机-数据库原理教程1-7章
文章链接 https://gitee.com/fakerlove/database-management-system 数据库系统概论-第五版 1. 绪论 1.1. 数据库4个基本概念 1.1.1. ...
最新文章
- php mssql_result 255 string,PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
- pyecharts第五节、关系图
- linux笔记:shell基础-bash基本功能
- 适合 Python 入门的 8 款强大工具,赶紧收藏一波!
- 全连接的多层神经网络结构(MultiLayerNet)
- .NET Core RSA 签名和验签(密钥为 16 进制编码)
- python视频教程-中谷python中文视频教程(全38集)
- 大数据可视化面临哪些挑战
- STM32F103_study62_The punctual atoms(Clock system initialization function analysis)
- 判断入射满射c语言编码,数学上可以分三类函数包括() 答案:单射双射满射...
- install package vif包_每天学点之CentOS软件源码包安装
- Python学习心得(一):词频统计,自顶向下设计
- Adaboost算法——详细讲解
- 使用google map v3 api 开发地图服务
- 端口号被占用的解决办法
- Xilinx PCIE CORE学习
- python语言创意绘画是什么-Python街机模块的draw系列绘画例子集合
- 重押农业,拼多多正在扛起乡村振兴大旗
- css3动画添加间隔
- 秒懂集成商,分销商和代理商的区别