BCNF范式及其分解方法(对一次Lab作业的总结)

Posted northernmashiro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BCNF范式及其分解方法(对一次Lab作业的总结)相关的知识,希望对你有一定的参考价值。

一次Lab的作业题目如下:

A luxury car-rental company has been tracking their rental data in a simple spreadsheet, but now wants to migrate to a proper database. Consider the table given below, containing some sample data.

技术分享图片

 (a) Identify at least 10 functional dependencies (non-trivial with minimal LHS) that hold on the table above.

(b) Classify the functional dependencies found as either ‘sensible’ or ‘accidental’.

给了个这个租车表,要求写函数依赖关系,这里只写sensible的,accidental的没有固定标准,不写。

依赖如下:

plate->make
make ->daily_rate
license_nr->dob
license_nr->name
plate+start_date ->*  (*表示除这两项之外的剩余部分都可以表示)

 

考虑到一个人(一个驾照可以租很多车,所以还需要租车的开始时间或者结束时间来区分)

其他的不用解释了

这里为了突出传递函数依赖,将plate,make,daily_rate分开,理解为车牌号决定厂家,厂家决定该车型每日收入,同一车型收费应该都相同,所以为互相依赖。

剩余的依赖关系都为部分函数依赖

 

建表如下:

建立4个表

table1
plate start_date end_date license_nr  (plate start_date为主键)

table 2
name dob license_nr  (license_nr为主键)

table3和table4传递关系 分开写

table 3
plate make  

table 4
make daily_rate

 

转载一篇博文,有关BCNF的分解算法的:

 









以上是关于BCNF范式及其分解方法(对一次Lab作业的总结)的主要内容,如果未能解决你的问题,请参考以下文章

关系模式范式分解教程 3NF与BCNF口诀

如何将关系模式分解到BCNF(3NF)

数据库系统方面的问题,求最小函数依赖集、候选码、分解满足范式的关系模式

数据库中的1NF、2NF、3NF、BCNF、4NF、5NF是怎么回事?

数据库范式小结 1NF 2NF BCNF 3NF 4NF DB normal form

BCNF与3NF之间有啥区别