非常详细的范式讲解(1NF/2NF/3NF/BCNF)|编程一对一教学(上)

简介: 范式在计算机方面运用广泛,在计算机二级三级均涉及到,今天就来讲讲范式。要是能够认真的看完,相信一定能够理解的。

在讲范式之前,我们先来了解有关范式的基本概念,听懂了有利于后面的学习。


1. 函数依赖


首先一个好的关系模式是不会出现以下问题的:

  1. 插入异常
  2. 删除异常
  3. 更新异常
  4. 数据冗余尽量少

如果出现那是由于 数据依赖,其中数据依赖分为:函数依赖,多值依赖,连接依赖等等。


所以,当关系模式出现问题,解决方法为—— 规范化理论(找到关系模式中不适合的数据依赖,并消除它们)


在范式这里经常使用函数依赖。那么什么是函数依赖呢?关系R中的属性 X,R 中的属性 Y 只有唯一值与之对应,则称 X 函数决定 Y 或称 Y 函数依赖于 X ,记作 X—>Y 。其中,X 称为决定因素。以下关系模型经常简化为 R<U,F>,如下图。

7.png

这里给出一个例子,后面就根据这个例子来讲解。

非常主要

8.png在函数依赖中还有以下几种分类:


1.1 平凡函数依赖和非平凡函数依赖


(1)X→YY∉X,则 X→Y 是非平凡函数依赖。例如 (sno,cno)→grade

(2)X→YY∈X,则X→Y 是平凡函数依赖。例如 (sno,cno)→sno(sno,cno)→cno


1.2 完全函数依赖和部分函数依赖


(1)X→Y,在 x 的真子集 X'Y 均不依赖于 X',则称 Y 完全函数依赖于 X。在箭头上面加上 F。

(2)X→Y,在 x 的真子集X',Y存在依赖于X',则称Y完全函数依赖于 X。在箭头上面加上 P。

例如以下的例子

9.png

1.3 传递函数依赖


X→YY→Z 所以 X→Z,Z 传递函数依赖于 X。

例如,sno→sdeptsdept→sloc,所以 sno→sloc







目录
相关文章
|
存储 安全 Java
|
数据库
1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖(最详细的讲解1NF、2NF、3NF的关系)
这篇文章详细讲解了数据库范式中的1NF、2NF和3NF,包括它们的定义、区分方法和如何判断部分函数依赖和传递函数依赖,以及如何将数据表规范化到相应的范式。
1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖(最详细的讲解1NF、2NF、3NF的关系)
|
安全 编译器 C语言
【C语言】typeof 关键字详解
`typeof` 关键字在GCC中用于获取表达式的类型,便于动态类型定义和宏编程。它可以用于简化代码、提高代码的灵活性和可维护性。虽然 `typeof` 是 GCC 扩展,并非标准C的一部分,但它在实际编程中非常有用。
744 1
|
机器学习/深度学习 人工智能 搜索推荐
探索未来:人工智能在日常生活中的应用与影响
本文将深度探讨人工智能(AI)如何在我们的日常生活中扮演着越来越重要的角色,从智能家居到个性化医疗、从教育辅助到职场变革。我们将通过具体案例和最新统计数据,分析AI技术带来的便利与挑战,并对其未来发展进行预测。 【7月更文挑战第25天】
2562 1
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
265 0
|
应用服务中间件 API nginx
解决跨域问题 Response to preflight request doesn't pass access control check
解决跨域问题 Response to preflight request doesn't pass access control check
13218 1
|
移动开发 前端开发 JavaScript
HTML5 中 `id` 属性和 `class` 属性的区别
【8月更文挑战第24天】
582 0
|
Java 编译器
强烈推荐的一款 Java 反编译工具:JAD
强烈推荐的一款 Java 反编译工具:JAD
7679 0
强烈推荐的一款 Java 反编译工具:JAD
|
安全 算法 网络安全
CDN:配置HTTPS证书
CDN:配置HTTPS证书
499 1