《教妹学数据库系统》(五)逻辑数据库设计(上)

百般思念 提交于 2020-04-22 13:27:24

hello大家好,今天我们来学习逻辑数据库设计。教妹学数据库,没见过这么酷炫的标题吧?“语不惊人死不休”,没错,标题就是这么酷炫。

我的妹妹小埋18岁,校园中女神一般的存在,成绩优异体育万能,个性温柔正直善良。然而,只有我知道,众人眼中光芒万丈的小埋,在过去是一个披着仓鼠斗篷,满地打滚,除了吃就是睡和玩的超级宅女。而这一切的转变,是从那一天晚上开始的。

从此之后,小埋经常让我帮她辅导功课。今天她想了解逻辑数据库设计。由于逻辑数据库设计内容较多,所以分成上下两个部分来讲。这次是上部分:ER模型转换为关系数据库模式与函数依赖。本篇教程通过我与小埋的对话的方式来谈一谈逻辑数据库设计。

博客还在持续更新中,想看同系列的其他博客。欢迎访问我的专栏《教妹学数据库系统》希望大家能够关注我,一起学数据库系统。

小埋:“ER图表示的概念数据库怎么转换成关系数据库模式呢”

ER模型转换为关系数据库模式

在这里插入图片描述

复合属性的转换

在这里插入图片描述

多值属性的转换

在这里插入图片描述

弱实体型的转换

  1. 转换规则
  • 弱实体型的名称
  • 弱实体型的属性集U属主实体型的主键----->关系的属性集
  • 弱实体型的部分集U属主实体型的主键----->关系的主键
  • 建立弱实体型关系到属主实体型关系的外键约束
    在这里插入图片描述

M:N二元联系型的转换

在这里插入图片描述

N:1二元联系型的转换

在这里插入图片描述

如果单独构建一个controls(Number,DNumber),根据Number找DNumber,需要进行连接操作。

在这里插入图片描述

1:1 二元联系型的转换

在这里插入图片描述

二元自联系型的转换

在这里插入图片描述

标识联系型的转换

在这里插入图片描述

小埋:“什么是函数依赖呢”

在这里插入图片描述

函数依赖

  1. 定义:设R(U)是属性集U上的关系模式,X⊆U,Y⊆U。对于R(U)的任意关系实例中的任意两个元组t1和t2,如果由t1[X]=t2[X]可以推出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记作X→Y。
    在这里插入图片描述
  2. 重要提示
  • 函数依赖是关系模式的所有关系实例上都成立的依赖关系,不能只根据某些关系实例来确定函数依赖

  • 函数依赖是语义范畴的概念,只能根据数据的语义来确定函数依赖。例如,Sname→Sno只有在学生不同名时才成立

  • 数据库设计者可以对现实世界作出强制规定。例如,规定学生不允许同名,从而使得Sname→Sno成立

函数依赖的类型

平凡(trivial)函数依赖:若Y⊆X,则X→Y是平凡函数依赖
在这里插入图片描述
在这里插入图片描述

函数依赖的公理系统

  1. 逻辑蕴含

设R(U,F)是一个关系模式,其属性集为U,函数依赖集为F。若在R的任意关系实例r中,函数依赖X→Y都成立(即对于r中任意两个元组t1和t2,若t1[X]=t2[X],则t1[Y]=t2[Y]),则称F逻辑蕴含X→Y,记作F|=X→Y。

在这里插入图片描述
在这里插入图片描述

  1. Armstrong公理系统是正确(sound)且完备(complete)的
  • 正确性:使用Armstrong公理系统推出的任何函数依赖一定被F逻辑蕴含

  • 完备性:任何被F逻辑蕴含的函数依赖一定能够使用Armstrong公理系统推出

属性集的闭包

在这里插入图片描述

计算算法

1:i←0;X(0)←X{初始化}
2:repeat
	3:B←{A|V→W∈F,V⊆X(i),A∈W}{匹配函数依赖}
	4:X(i+1)X(i)∪B{扩充闭包}
	5:i←i+1
6:untilX(i)=X(i−1)X(i)=U{终止条件}
7:returnX(i)

在这里插入图片描述

等价函数依赖集

  1. Definition (函数依赖集的闭包)

设R(U,F)是一个关系模式,由F逻辑蕴含的全部函数依赖的集合叫做F的闭包(closure),记作F+

  1. Definition(等价函数依赖集)

设F和G是关系模式R(U)上的两个函数依赖集,如果F+=G+,则F与G等价

  1. Definition(函数依赖集的覆盖)

设F和G是关系模式R(U)上的两个函数依赖集,如果G+⊆F+(即G中每个函数依赖都被F逻辑蕴含),则称F覆盖G(FcoversG)

  1. Theorem:函数依赖集F与G等价,当且仅当F覆盖G且G覆盖F

等价函数依赖集的判定

  1. 方法1: 使用F+=G+来判定F与G等价,但是计算F+和G+的代价太高

  2. 方法2: 如果F覆盖G(F逻辑蕴含G中任意函数依赖),且G覆盖F(G逻辑蕴含F中任意函数依赖),则F与G等价

最小覆盖

关系模式R(U)的函数依赖集F的最小覆盖(canonicalcover)是满足下列3个条件的F的等价函数依赖集Fc

  1. (不存在冗余函数依赖)Fc中不存在函数依赖X→Y,使得Fc与Fc−{X→Y}等价

  2. (函数依赖左部不存在冗余属性)Fc中不存在函数依赖X→Y,有Z⊂X使得Fc与(Fc−{X→Y})∪{Z→Y}等价

  3. (函数依赖左部唯一)Fc中任意两个函数依赖的左部不相同

总结

咱们玩归玩,闹归闹,别拿学习开玩笑。

ER转换为关系库模式虽然看上去简单,但转换类型方式多样,既有联系型,又有实体型,还有弱实体型,一定要结合题目多练。函数依赖相关的概念要记住,在今后学习中会经常遇到,到时候可以回过头来看这篇博客。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!