本文主要是介绍数据库 关系数据库设计理念——基本概念,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
关系数据库设计理念,致力于解决关系模式中不合适的数据依赖问题,而函数依赖与多值依赖是最重要的数据依赖。
函数依赖
简单的说,对于函数 Y = F(X),很显然X的值决定Y,则说Y函数依赖于X。
对应到数据库中,假设有一学生关系——学生(学号,姓名,年龄),以学号为主键。那么给定一个学号,就可以找到姓名或年龄。若以学号为X,姓名、年龄为Y,则有Y = F(X),就有Y函数依赖于X。可简写为 Y → X。
注意几点:
- 函数依赖对关系中所有实例均满足约束条件,换句话说就是关系里面, Y = F(X)对所有X都成立(套用一下函数定义)
- 用户只能根据语义来确定一个依赖,不能按照其形式化定义来证明一个函数依赖是否成立。
还是上面那个学生表,假设表里面学生的名字不重复,则可以推导出 姓名 → 年龄,意思是通过姓名可以找到唯一存在的年龄(跟用学号查一样),这也侧面说明函数依赖反映了一种语义完整性约束。 - 函数依赖存在的时间无关性:意思就是,后面插入的数据,不能破坏之前定好的规则,比如插入的数据主键重复是错误的。
- 若X→Y,称X为这个函数依赖的决定因素
- 若X→Y且X←Y,则X ←→ Y
非平凡函数依赖
- 如果X→Y,并且Y不包含于X,则称X→Y是非平凡函数依赖,否则称为平凡函数依赖
完全函数依赖
- 如果X→Y(我理解为X推导出Y),并且对于X的任何一个真子集X‘ 都有X‘推导不出Y,则说明Y对X完全函数依赖,记为
否则称为Y对X的部分函数依赖
传递函数依赖
- 如果有X → Y, Y→ Z, 且Y推导不出X,则称Z传递函数依赖于X,记为
码
如果存在,则X可以作为关系(可以理解为数据表)的候选码,一个关系可以有多个候选码,选定其中一个为主键。
包含在任何一个候选码中的属性称为主属性,不包含在任何码中的属性称为非主属性。
关系模式R中属性X并非R的码,但X是另一个关系模式S中的码,则X为R的外键
这篇关于数据库 关系数据库设计理念——基本概念的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!