软考——数据库(一)

数据库第一部分,我们先来熟悉数据库的三范式。
在熟悉三范式之前,大家先和小编一起了解一些概念:

一、键

1、超键

在关系中能唯一标识元组的属性集。

2、候选键

不含多余属性的超键

3、主键

用户选作元组标识的候选键

4、主属性

如果A是关系模式R的候选键的属性,那么A就是R的主属性,即候选键中的属性都是主属性。

5、关系图

这里写图片描述

6、举例

关系模式R(学号、姓名、年龄、身份证号、家庭住址)
解析:
①学号唯一标识这个元组,可以是超键
②身份证号唯一标识这个元组,可以是超键
③(学号、姓名)唯一标识这个元组,可以是超键
④(学号,姓名、年龄)唯一标识这个元组,可以是超键
–这里可以看出,超键的组合是唯一标识这个元组的,但可能不是最小唯一
①超键只含有属性学号,所以学号是候选键
②超键只含有属性身份证号,所以身份证号是候选键
③超键中有两个属性——学号和姓名,但是学号可以唯一确定一个元组,所以姓名是多余属性,学号是候选键
④同③,学号是候选键
–这里可以看出,候选键是没有多余属性的超键
主键可以是学号也可以是身份证号
–主键是选中的一个候选键
学号和身份证号都是主属性
–候选键中的属性都是主属性

二、函数依赖

对于当前关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有个X值就有一个Y值与之相对应。

三、范式

第一范式:

关系模式R中的每个关系r的属性值都是不可分的原子值,则为第一范式(1NF)
——1NF是关系模式应具备的最起码的条件

第二范式:

①完全依赖
对于FD W→A,如果存在X⊆W有X→A成立,那么称W→A是局部依赖,否则为完全依赖。
②2NF
如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,则为2NF。即每个非主属性只能由候选键决定。
③例题
某销售公司数据库的零件关系P(零件号,零件名称,供应商,供应商所在地,库存量),函数依赖集F={零件号→零件名称,(零件号,供应商)→库存量,供应商→供应商所在地)。零件关系模式P属于( )。
分析:
根据函数依赖关系可以判断(零件号、供应商)为候选键,零件名称、供应商所在地、库存量为非主属性,(零件号、供应商)→零件名称,而零件号→零件名称,所以(零件号、供应商)→零件名称是局部依赖,所以为1NF。

第三范式:

①传递依赖
如果X→Y,Y→A,且X不依赖于Y和A∉Y,那么称X→A是传递依赖。
②3NF
如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,则为3NF。即每个非主属性可以由候选键直接决定。
③例题
建立一个供应商、零件数据库。其中“供应商”表S(Sno,Sname,Zip,City)中的属性分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:Sno→(Sname,Zip,City),Zip→City。“供应商”表S属于()
分析:
关系模式S的候选键为Sno,非主属性——Sname,Zip,City完全依赖于Sno,所以符合2NF;而非主属性Zip,City之间存在Zip→City,所以S表中存在传递依赖,所以最高为2NF。

BCNF:

①BCNF
如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键,则R是BCNF模式
②例题
关系模式R2(学生、课程、成绩),函数依赖为(学生,课程)→成绩,则R2为()。
分析:
候选键为(学生、课程),主属性也为(学生、课程),非主属性为成绩,每个属性都不传递依赖于候选键,所以为BCNF。

总结

对于三范式,重点理解候选键和非主属性以及他们之间的关系——完全依赖和传递依赖。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 38
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值