关系数据库设计理论-->3NF

简介:

函数依赖

1.函数依赖定义

A-> B,即   A函数决定B    ,A称为决定因素。

2.关系的键码、超键码

属性函数决定关系R的所有其它属性,并且该属性的任何真子集都不能函数决定R的所有其它属性,则属性是键码。 键码必须是最小的。

包含键码的属性集称为  超键码  。每个键码都是超键码。

例题: 已知关系R包含属性{A,B,C,D},R的键码为{A,B},则下面的选项哪1个是R

的超键码(  )。

  A.{A}    B.{C,D}   C.{A,B,C,D}  D.{B,C,D}

答案:C

 

3.几个概念

平凡依赖:如果B是A的子集,则称该依赖为平凡的。

非平凡依赖:如果B中至少有一个属性不在A中,则称该依赖为非平凡的。

完全非平凡依赖:如果B中没有一个属性在A中,则称该依赖为完全非平凡的。

平凡依赖规则:函数依赖A1A2  An  B1B2  Bm等价于A1A2  An  C1C2  Ck,其中   C是B的子集,但不在A中出现。称这个规则为  平凡依赖规则  

 

4.传递规则

    如果A1A2  An  B1B2  Bm和B1B2  Bm  C1C2  Ck,在关系R中成立,则A1A2  An  C1C2  Ck在R中也成立。这个规则就称为传递规则。

 

例题: 现给定一个关系R的实例如下表,则可能是函数依赖的是( B ).

    Fl

    F2

    R

    F。

    F5

    李华

    20020330

    H

    1

    lO

    金谦

    20020330

    0

    1

    5

    李华

    20020218

    O  ·

    3

    15

    吕宋

    200201]5

    H

     2

    5

    顾小华

    20020218

    O

    1

    20

A.F1 F2            B.F1F2→F5

C.F3 F4→F5        D.F2F3→F4

 

学习要点二

1. 函数依赖集:假设{A1,A2,  An}是属性集,记为A,S是函数依赖集。

属性集A在依赖集S下的封闭集是这样的属性集X,它使得满足依赖集S中的所有依赖的每个关系也都满足A X。

A1A2  An  X是蕴含于S中的函数依赖。

2.封闭集:

对于给定的函数依赖集S,属性集A函数决定的属性的集合就是属性集A在依赖集S下的封闭集。

学会计算某属性集的封闭集,可以根据给定的函数依赖集推导蕴含于该依赖集的其他函数依赖。

 

例题: 假设关系模式为R(A,B,C,D),函数依赖为A→B,B→C和B→D。

    (1)求蕴含于给定函数依赖的所有非平凡函数依赖;

    (2)求R的所有键码;

    (3)求R的所有超码(不包括键码)。

    参考答案:

    (1)先求各种属性组合的封闭集,再从中找出新的函数依赖。

    A+=ABCD         B+=BCD   C+=C   D+=D

    A→C,A→D    (2)

    AB+==ABCD  AC+==ABCD    AD+=ABCD  BC+=BCD   BD+=BCD

CD+=CD

    AB→C,AB→D AC→B,AC→D  AD→B,AD→C  BC→D  BD→C

    ABC+=ABCD  ABD+=ABCD   BCD+=BCD

    ABC→D  ABD→C   

    ABCD+=ABCD

    蕴含于给定函数依赖的非平凡函数依赖共12个。

    (2)A为键码。

    (3)AB,AC,AD,ABC,ABD,ABCD为超键码。

   

学习要点三

1. 几个概念

l         主属性:键码所在的属性称为主属性。

l         主属性:键码所在的属性称为主属性。

l         非主属性:键码属性以外的属性称为非主属性。

l         非主属性:键码属性以外的属性称为非主属性。

l         完全依赖:对于函数依赖W  A,如果存在V是W的真子集而函数依赖

    V  A成立,则称A部分依赖于W;若不存在这种V,则称A完全依赖于W。

l         传递依赖

    对于函数依赖X  Y,如果X不函数依赖于Y,而函数依赖Y  Z成立,则称Z对X传递依赖。

 

学习要点四

1.第一范式(1NF)

如果一个关系模式R的所有属性都是不可分的基本数据项,则这个关系属于第一范式。

2.第二范式(2NF)

若关系模式R属于第一范式,且每个非主属性都完全函数依赖于键码,则R属于第二范式。

例题:学生关系模式Student(Sno,Sname,Sdept,Mname,Cname,Grade)。



本文转自yonghu86 51CTO博客,原文链接:http://blog.51cto.com/yonghu/1321466,如需转载请自行联系原作者

相关实践学习
使用DAS实现数据库SQL优化
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。
相关文章
|
9月前
|
存储 关系型数据库 数据库
关系型数据库设计规范第一范式(1NF)
【5月更文挑战第14天】关系型数据库设计规范第一范式(1NF
277 8
|
9月前
|
关系型数据库 数据库
关系型数据库设计规范第二范式(2NF)
【5月更文挑战第14天】关系型数据库设计规范第二范式(2NF)
455 7
|
9月前
|
关系型数据库 数据库
关系型数据库设计规范第三范式(3NF)
【5月更文挑战第14天】关系型数据库设计规范第三范式(3NF)
381 3
|
JavaScript 数据库 Python
数据库系统概论——函数依赖、码和范式(1NF、2NF、3NF、BCNF)详解
关系模式由五部分组成,即它是一个五元组: R(U,D,DOM,F)R(U, D, DOM, F)R(U,D,DOM,F)关系模式R(U,D,DOM,F)R(U, D, DOM, F)R(U,D,DOM,F)中,DDD和DOMDOMDOM与逻辑结构设计关系不大,因此,将关系模式简化为一个三元组:当且仅当UUU上的一个关系rrr 满足FFF时,rrr称为关系模式R(U,F)R(U, F)R(U,F)的一个。设R(U)R(U)R(U)是一个属性集UUU上的关系模式,XXX和YYY是UUU的子集。若对于R(U)R(
514 0
数据库系统概论——函数依赖、码和范式(1NF、2NF、3NF、BCNF)详解
|
数据库
关系数据库设计理论-->3NF
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/2869551 关系数据库设计理论-->3NF 函数依赖 1.函数依赖定义 A-> B,即  “ A函数决定B ”   ,A称为决定因素。
891 0
|
23天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
10天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
81 42
|
1天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
40 25
|
28天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
220 0
|
2月前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
72 3