IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【数据库系统设计,和网易大牛的技术面谈 -> 正文阅读

[大数据]【数据库系统设计,和网易大牛的技术面谈

  • 多值依赖(Multivalued Dependency,简记为MVD)

  • 连接依赖

  • … …

数据依赖对关系模式的影响

  • 不合适的数据依赖,造成插入异常、删除异常、更新异常和数据冗余问题

关系模式的简化表示


关系模式的形式化定义:R ( U, D, DOM, F )

  • R:关系名,是符号化的元组语义

  • U:该关系的属性集合

  • D:属性组U中属性所来自的域

  • DOM:属性向域的映象集合

  • F:属性间数据的依赖关系集合

关系模式的简化表示:R<U, F>

将关系模式简化为一个三元组,影响数据库模式设计的主要是 U 和 F。

当且仅当 U 上的一个关系 r 满足 F 时,r 称为关系模式 R(U, F) 的一个关系。

例如:关系模式 STUDENT<U, F>

  • 属性集合 U = { Sno, Sdept, Mname, Cno, Grade }

  • 依赖关系 F ={ Sno → Sdept, Sdept → Mname, (Sno, Cno) → Grade}

  • **STUDENT ( Sno, Sdept, Mname, Cno, Grade,

    Sno → Sdept, Sdept → Mname, (Sno, Cno) → Grade )**

    在这里插入图片描述该关系模式 STUDENT<U,F> 存在诸多问题。

如何解决关系模式中存在的问题?

规范化理论 — 找出关系模式中不合适的数据依赖,消除它们,可以在不同程度上解决插入异常、删除异常、更新异常和数据冗余问题。

6.2 规范化 — 关系的规范化理论

=====================================================================================

6.2.1 函数依赖


1.函数依赖

定义:

设 R(U) 是一个属性集 U 上的关系模式,X 和 Y 是 U 的子集。若对于 R(U) 的任意一个可能的关系 r,r 中不可能存在两个元组在 X 上的属性值相等, 而在 Y 上的属性值不等则称 “X函数确定Y” 或 “Y函数依赖于X” ,记作X → Y。X 称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。

在这里插入图片描述

反例:

在这里插入图片描述

问:由下面的关系表, 能否得出 Sname → Sno ?

在这里插入图片描述

答:只由关系表不能得出依赖关系。函数依赖不是指关系模式R的某个或某些关系实例r满足的约束条件,而是指R的所有关系实例r均要满足的约束条件

如何确定函数依赖?

函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。

  • 如Sname →Sno函数依赖只有在“学生不允许有重名”的条件下成立。

数据库设计者可以对现实世界作强制的规定。

  • 例如设计者可以强行规定不允许学生有重名,因而使函数依赖

    Sname → Sno,Sname → Ssex, Sname → Sage,Sname → Sdept 成立。

函数依赖是指关系模式R在任何时刻的关系实例均要满足的约束条件

  • 不是指某个或某些关系实例r满足的约束条件,而是指R的所有关系实例r均要满足的约束条件。

2.平凡函数依赖与非平凡函数依赖

定义:

在这里插入图片描述

示例:

在这里插入图片描述

对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖

3.完全函数依赖与部分函数依赖

定义:

在这里插入图片描述

示例:

在这里插入图片描述

4.传递函数依赖

定义:

在这里插入图片描述

示例:

在这里插入图片描述

6.2.2 码


候选码、超码

候选码、超码定义:

在这里插入图片描述

候选码、超码示例:

在这里插入图片描述

主码

在这里插入图片描述

主属性、非主属性

主属性、非主属性定义:

在这里插入图片描述

主属性、非主属性示例:

在这里插入图片描述

全码

在这里插入图片描述

外码

外码定义:

在这里插入图片描述

外码示例:

在这里插入图片描述

6.2.3 范式


  • 范式是符合某一种级别的关系模式的集合。

  • 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。

范式的种类:

  • 第一范式(1NF)

  • 第二范式(2NF)

  • 第三范式(3NF)

  • BC范式(BCNF,Boyce和Codd共同提出的范式)

  • 第四范式(4NF)

  • 第五范式(5NF)

各种范式之间存在联系:

在这里插入图片描述

第一范式

1NF的定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。

在这里插入图片描述

第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据模式。(不能表中有表)

6.2.4 第二范式(2NF)


只满足第一范式的关系模式并不一定是一个好的关系模式

在这里插入图片描述

2NF定义:

在这里插入图片描述

2NF示例:

在这里插入图片描述

一个关系模式R不属于2NF,就会产生问题。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

原因: SLC(Sno, Sdept, Sloc, Cno, Grade) 中

Sdept、 Sloc 部分函数依赖于码。SLC的码为(Sno, Cno)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2NF的问题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.2.5 第三范式(3NF)


3NF的定义:

在这里插入图片描述

3NF示例:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3NF的性质:

在这里插入图片描述

3NF的问题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.2.6 BC范式(BCNF)


BC范式定义:

在这里插入图片描述

BC范式示例:

在这里插入图片描述

BC范式的性质:

在这里插入图片描述

6.2.9 规范化小结


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.3 数据依赖的公理系统

================================================================================

在这里插入图片描述

Armstrong公理系统:

在这里插入图片描述

导出规则:

在这里插入图片描述

函数依赖闭包

闭包 F+ 定义:

在这里插入图片描述

X关于函数依赖集F的闭包XF+定义:

在这里插入图片描述

求属性集X 关于F的闭包XF+

算法:

在这里插入图片描述

示例:

在这里插入图片描述

Armstrong公理系统的有效性与完备性:

在这里插入图片描述

函数依赖集等价的概念

函数依赖集等价定义:

在这里插入图片描述

最小依赖集

最小依赖集定义:

在这里插入图片描述

最小依赖集例题:

在这里插入图片描述

在这里插入图片描述

求出了A+,发现 B 是冗余的。

在这里插入图片描述

求出 B+,B 不是冗余的。

在这里插入图片描述

这边一眼就能看出来了,所谓求XX的闭包不过是种说法罢了,千万不要被思维定式。

在这里插入图片描述

F 的最小依赖集 Fm 不一定是唯一的

在这里插入图片描述

6.4 模式的分解

============================================================================

6.4.1 模式分解的3个定义


在这里插入图片描述

在这里插入图片描述

模式分解示例

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.4.2 分解的无损连接性和保持函数依赖性


1.具有无损连接性的模式分解

定义:

面试资料整理汇总

成功从小公司跳槽进蚂蚁定级P7,只因刷了七遍这些面试真题

成功从小公司跳槽进蚂蚁定级P7,只因刷了七遍这些面试真题

这些面试题是我朋友进阿里前狂刷七遍以上的面试资料,由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考。

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了

shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)

6.4.2 分解的无损连接性和保持函数依赖性


1.具有无损连接性的模式分解

定义:

面试资料整理汇总

[外链图片转存中…(img-er9i6O78-1630857563891)]

[外链图片转存中…(img-bjY2T5Q7-1630857563892)]

这些面试题是我朋友进阿里前狂刷七遍以上的面试资料,由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考。

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了

在这里祝大家能够拿到心仪的offer!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:13:37  更:2021-09-06 11:14:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:45:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码