判断关系属于哪一种范式(期末考试必看)

简介: 判断关系属于哪一种范式(期末考试必看)

1NF(第一范式)

属性值是不可分的原子值

2NF(第二范式)

R1NF,每个非主属性都完全函数依赖于R的候选键

3NF(第三范式)

R1NF,每个非主属性都不传递依赖于 R的候选键

BCNF(BC范式)

R1NF,每个属性都不传递依赖于 R的候选键(定义1)

R1NF,每个非平凡函数依赖的左侧都是超键(定义2)

4NF(第四范式)

R1NF,每个非平凡多值依赖的左侧都是超键

5NF(第五范式)

R1NF,每个连接依赖均由R的候选键蕴含


如果还是不理解可以看这里http://t.csdn.cn/Dwh5c,这里就不细讲了,直接上例题吧!


例1:判断右边关系最高属于哪个范式(BCNF)


零件号 单价

P1 25

P2 8

P3 25

P4 9

任意的二元关系必为(BCNF)


例2:判断右边关系最高属于哪个范式(2NF)


材料号 材料名 生产厂

M1 线材 武汉

M2 型材 武汉

M3 板材 广东

M4 型材 武汉

材料号→材料名,材料名→生产厂

唯一候选键:材料号

R的候选键为单属性→R2NF

非主属性生产厂对候选键材料号传递依赖→R3NF


例3:关系W(工号,姓名工种定额)规范到3NF,最合适的

A.W1工号,姓名),W2(工种,定额)

B.W1(工号,工种,定额),W2(工号,姓名)

C.W1(工号,姓名,工种),W2(工种,定额)

D.以上都不对


分析:


F={工号→姓名,工号→工种,工种→定额}

唯一候选键:工号

A:W1 和 W2 没有公共属性

B:有传递依赖


例4:R(ABCD), F ={B→C,C →D,D → A}

判断R最高属于哪个范式

A.1NFB.2NFC.3NFD.BCNF


分析:

唯一候选键 B

B→C, C→D (CB, DC. C 不能推B)

非主属性 D 传递依赖于候选键 B,R3NF

所有函数依赖左边都是单属性,不存在部分依赖,R2NF


例5:R(STJ), F = {(S,J)→T,(S,T)→ J,T → J}}

判断R最高属于哪个范式


分析:

候选键 (S,J),(S,T)

所有属性都是主属性,R3NF

T →J左边不是超键,RBCNF


目录
相关文章
|
SQL 存储 前端开发
SQL注入从入门到进阶(一)--->入门篇
看完本章节内容:1. 知道什么是Sql注入 2. 实现最基础的Sql注入
2401 0
|
数据采集 算法 数据可视化
【优秀python算法设计】基于Python网络爬虫的今日头条新闻数据分析与热度预测模型构建的设计与实现
本文设计并实现了一个基于Python网络爬虫和机器学习模型的今日头条新闻数据分析与热度预测系统,通过数据采集、特征工程、模型构建和可视化展示,挖掘用户行为信息和内容特征,预测新闻热度,为内容推荐和舆情监控提供决策支持。
725 0
【优秀python算法设计】基于Python网络爬虫的今日头条新闻数据分析与热度预测模型构建的设计与实现
|
关系型数据库 MySQL 测试技术
使用docker部署MySQL测试环境
使用docker部署MySQL测试环境
265 0
|
JSON Java 测试技术
ChaosBlade编译问题之报错如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
ChaosBlade编译问题之报错如何解决
HOSTAPD ht_capab设置
HOSTAPD ht_capab设置
550 1
|
存储 弹性计算 监控
【数据传输服务用户测评】阿里云DTS和MongoShake的性能对比
本文聚焦DTS MongoDB->MongoDB 和 MongoShake 数据同步的性能,分别针对副本集/分片集群架构、单表/多表、全量/增量同步进行性能的对比。
86710 9
|
机器学习/深度学习 定位技术
GEE(CCDC-2)——根据以获取的研究区CCDC系数进行土地覆被分类分析
GEE(CCDC-2)——根据以获取的研究区CCDC系数进行土地覆被分类分析
422 0
|
存储 网络协议 Java
Java String类
Java String类
114 0
|
JavaScript 前端开发
js 实现三级联动
js 实现三级联动
183 0