关系模型 几大范式和术语的解释

函数依赖:

身份证号 姓名 年龄

例如 身份证号 可以 决定 姓名 年龄 就是2个函数依赖(身份证号--姓名,身份证号--年龄)

闭包:

上例中的姓名+年龄即身份证号的闭包

候选键:

身份证号 姓名 年龄 婚否

身份证号虽然可以决定姓名年龄 却不能决定婚否 所以身份证号不是候选键

身份证号+婚否 是一个候选键

候选键是一个最小集

主属性:

候选键中的所有成员都是主属性

第一范式:1NF

每一列的值不可再分

违反第一范式的解决方案:某列含2个属性,1、则将此行分为两行,分别存储2、一列分两列

第二范式:2NF

目的:消除不完全依赖

满足第一范式 并且每一个非主属性完全函数依赖于R的某个候选键,则称为第二范式模式。

例:学生学号 课程号 学生成绩 课程学分

学号+课程号是候选键 但是课程号-->课程学分 课程学分不完全依赖于候选键 即不满足第二范式

不满足第二范式会导致:数据冗余,更新、插入、删除异常。


典然:学生信息与课程信息应该分离。

注意:候选键只有一个属性时 必然满足2NF(唯一标示每行的ID)

第三范式:3NF

目的:消除非主属性候选健的传递依赖

传递依赖:X->Y->Z    Y不能决定X Z不属于Y 则X->Z是传递依赖

满足第二范式,且每个非主属性都不传递依赖于候选键,则为第三范式。

例:学号,姓名,所在系,系名称和系地址

学号为候选键 是2NF 但是有大量冗余

学号->所在系->系地址 当这个依赖关系逆转时 发现 所在系无法决定学号 所以是传递依赖

显然:学生信息与 系的信息应该分离

BCNF:修正的3NF

目的:消除所有属性候选键的传递依赖







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值