数据库原理总复习

一、数据库设计合理性验证

ER图(数据库概念模型)->关系模式(数据库逻辑模型)

得到关系模式后采用范式来验证合理性

数据的抽象是模式(schema),表的定义是表的模式(schema)。数据库模式是所有表模式的集合。 

数据的抽象(结构)是模式,模式的抽象(结构)是数据模型(关系数据模型)。 

 

 

 表table就是关系relation。relation schema关系模式就是表的定义

 1.函数依赖

 函数依赖可以用来确定一个关系的候选键

只关心有实际含义,精简的函数依赖

 完全/部分函数依赖:去除左边一个属性后不成立,则为完全依赖,否则部份依赖

函数依赖推导

Armstrong公里​​​​​公理

 需要解决的一些问题类型

 属性集X的闭包XF+

 

 X在F中能利用公理推出来的所有属性的集合

 eg格式

应用1.X->Y是否成立?

只要Y属于X+即可 

应用2.求函数依赖集F的闭包F+(所有能推出来的函数依赖的集合)

 

 应用3:判断属性集Xk是否为R的候选键

 候选键具有最小性,注意从函数依赖的定义回到关系模式中

Xk->A成立,说明是超键。这个属性集能唯一决定整个元组

例题:

应用4:两个函数依赖集F和E是否等价

 如果E中每个函数依赖都属于F+,那么F覆盖E

 E中的每个函数依赖X-》Y,每个X通过F的依赖集,能够推出Y(Y∈XF+

应用5:函数依赖集的最小集

 

 

一个是不需要X就能推出A,另一个是只需要部分X就能推出A 

只能去除、替换因子是多个的依赖。又出现在右端,又出现在左端,就要注意

因子是多个的依赖,如果因子是别的依赖的右边,那么就要注意咯。用想删或者替换的左边闭包验证能不能修改该依赖。

例题:

 瞪眼法,求闭包,假设去除替换A,看看能不能F‘推导出A

2.范式

 检查是否存在潜在的冗余和更新异常

后面范式是在前面范式基础上,进一步增加约束条件。

第一范式1NF

 

 

authors和keywords两个多值属性在一起就不可以。 

 第二范式2NF

 

去除局部依赖的多余属性,并组成一个关系。再将其他的非主键属性并上主键

关键还是消除局部依赖即可,自己看着分把.....

在判断是否满足NF时,不仅仅只看基本的最简函数依赖,一个关系中有太多太多的依赖了,只要有一个不满足,那就得分解

 第三范式3NF

 

 

 

 BCNF

 

 所有因子都是候选键

保持依赖分解成3NF:

F是最小覆盖

把R中不出现在F中的属性去掉,并单独组成一个模式

对X->A中 XA1A2组成一个模式

定理:如果X是候选键,分解中包含候选键X,则保持依赖和无损链接

无损检验chase算法:

有一行全a,则为无损链接

 

 

BCNF的分解:?

 

第二章 数据库建模设计

crow’s foot方法

第三章 概念模型转换逻辑模型

 实体集先转化成table,主键保持不变

接下来再通过完善联系来完善table。

对每个联系:

1.一对多:不用开一张新表。一很少(轻量)(多的依赖(引用)少的),所以直接让多的通过一的外键引用一即可

2.多对多:需要开一张新表来描述联系。新表的属性是联系集本身的属性+参与联系的主键,并且主键是外键,新表的主键由参与联系的主键(外键)构成

3.一对一:不开新表。参考一对多,找到谁是依赖谁是被依赖。依赖的表需要加上被依赖的主键作为外键

4.继承:参照前面的转换规则。子实体集转换成一张表,属性需要加上父实体集的主键作为外键,并作为主键。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值