BCNF是比第三范式更严格的范式。 关系模型中的所有属性(包括主属性和非主属性)都必须不传递依赖于任何候选项的关键字。 即,在关系表内功能上相互依赖的列的各列为关键字候补的情况下,应该满足BCNF。
BCNF实际上基于第三范式,进一步消除了主属性的传递依赖。
一次Lab的作业主题如下。
aluxurycar-rentalcompanyhasbeentrackingtheirrentaldatainasimplespreadsheet,butnowwwantstomigratetoaproperdatabase.conside
(a ) identify atleast 10功能从属关系(非三级分布式) that hold on the table above。
(b ) classifythefunctionaldependenciesfoundaseither‘sensible’or‘accidental’。
我给了这个租车表,要求写函数依赖关系。 这里只写敏感的东西。 因为accidental的东西没有固定标准,所以不写。
依存关系如下。
平板标记
make -daily_rate
license_nr-dob
license_nr-name
plate start_date -* (* (表示可以显示这两个以外的其他部分) ) ) ) ) ) ) ) ) ) )。
考虑一个人()一个驾照可以借很多车,所以也需要区分租车的开始时间或结束时间) )。
其他东西不需要说明
这里为了强调传递函数依赖,把plate、make、daily_rate分开,理解车号决定厂家,厂家决定该车的日收入,同样的车价应该都一样,所以互相依赖
剩下的依赖关系都是部分函数依赖
建设表如下。
制作4个表
表1
(plate start _ dateend _ date license _ NR (plate start _ date是主键) ) ) ) ) 65 )
表2
namedoblicense _ NR (许可证_ NR是主键) ) ) ) ) ) ) ) ) )。
将table3和table4的传递关系分开写
表3
plate make
表4
make daily_rate
转载关于BCNF分解算法的博文:
3359 blog.csdn.net/panxiqie _ _/article/details/38899021
现在,根据这个dalao写的东西分析一下自己的:
平板标记
make -daily_rate
license_nr-dob
license_nr-name
plate start_date -*
结束了