数据库系统之数据库规范化

本文详细介绍了数据库规范化的过程,包括超键、最小键、主键和候选键的概念,以及函数依赖和键的关系。讨论了第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及Boyce-Codd范式(BCNF),并通过实例解释了各个范式的应用和转换方法,帮助理解数据库设计的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Superkey,Minimal key,Primary key和Candidate key

A superkey is a nonempty subset X of relational schema R = (A1 , … , An ) such that for any two rows t1 , t 2in a relational table created over a relational schema R t 1[X] ≠ t2 [X]
简而言之,如果X是R的一个超键,那么X→ A1 , … , An.

A minimal key is a superkey K with an additional property such that removal of any attribute from K will cause K not to be a superkey
最小键是超键的子集,它比起超键有一个附加条件就是如果在超键中删除任何一个属性就会导致它不再是超键。

例如,一个关系模式:DRIVER(licence#, employee#, first-name, last-name)
有两个最小键(licence#) and (employee#)
但是它可以有很多个超键:
(licence#) ,(employee#) , (licence#, employee#) , (licence#, first-name), (licence#, last-name) , (licence#, first-name, last-name)等等。

A primary key is an arbitrarily selected minimal key.
A candidate key is any other minimal key which is not a primary key.
举例:
DRIVER(licence#, employee#, first-name, last-name)
has a primary key (licence#) and a candidate key (employee#) 或者反过来也成立。

函数依赖项和键

如果函数依赖 licence#, employee# → first-name, last-nam在关系模式中有效

DRIVER(licence#, employee#, first-name, last-nam

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值