当前位置: 首页 > news >正文

【数据库系统概论】第6章-关系数据库理论

真别看吧,抄ppt而已啊

文章目录

    • 6.1 引言
    • 6.2 规范化
      • 6.2.1 函数依赖
      • 6.2.2 码
      • 6.2.3 范式(Normal Form)
      • 6.2.4 BC范式
      • 6.2.5 规范化小结

6.1 引言

我们有这样一张表:
在这里插入图片描述
but 为啥这样设计呢?由此引出怎样设计一个关系数据库的问题。
进而出现:数据库逻辑设计的工具——关系数据库的规范化理论
关系数据库有严格的理论支撑,这也是它的过人之处。

  • 回顾关系模式
    在这里插入图片描述
    在这里插入图片描述
  • 数据依赖
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    根据上图,关系中的映射不一定是单射的,即y不能确定x。(可能处于既不满也不单的混合态)
    单射、满射、双射
    X -> Y,可以认为知道了元组的X就能确定它的Y。
  • 且看下面的问题
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这是一个关系模式,而且不咋地。
    Q: 怎么让它变好呢?
    A: 通过分解关系模式来消除其中不合适的数据依赖。
    在这里插入图片描述
    为什么这样分解就好呢?
    引入关系规范化

6.2 规范化

6.2.1 函数依赖

  1. 定义
    在这里插入图片描述
  2. 解释
    在这里插入图片描述
  3. 平凡与非平凡函数依赖
    在这里插入图片描述
    在这里插入图片描述
  4. 完全函数与部分函数依赖
    在这里插入图片描述
    在这里插入图片描述
  5. 传递函数依赖
    在这里插入图片描述
    事实上,如果 Y 是 X的子集或者,Y->X,那么X是直接函数决定Z的。
    在这里插入图片描述

6.2.2 码

  • 主码、候选码
    在这里插入图片描述
    在这里插入图片描述
  • 主属性、非主属性、全码
    在这里插入图片描述
    在这里插入图片描述
  • 外码
    在这里插入图片描述
  • 习题
    在这里插入图片描述
    AC -> A, AC -> C,
    A -> B => AC -> BC => AC -> D
    从而 AC -> U, AC为码
    

6.2.3 范式(Normal Form)

在这里插入图片描述

  • 1NF
    在这里插入图片描述
    反例:
    在这里插入图片描述

  • 2NF
    在这里插入图片描述
    反例:
    在这里插入图片描述
    坏处:
    在这里插入图片描述
    解决方法:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 3NF

  1. 定义
    在这里插入图片描述
    在这里插入图片描述
    直白点说,sdept能确定sloc,你把sloc与sdept 放在一张表里是多余的,放到(sdept,sloc)这张表里一条就够了。
  2. 存在问题
    在这里插入图片描述
  3. 解决办法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 习题
    在这里插入图片描述
    在这里插入图片描述

6.2.4 BC范式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.5 规范化小结

在这里插入图片描述
在这里插入图片描述

  • 习题
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分成若干子表以后要多设一个表来保存二者之间的关系。

相关文章:

【数据库系统概论】第6章-关系数据库理论

真别看吧,抄ppt而已啊 文章目录 6.1 引言6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3 范式(Normal Form)6.2.4 BC范式6.2.5 规范化小结 6.1 引言 我们有这样一张表: but 为啥这样设计呢?由此引出怎样设计一个关系数据库…...

算法设计与分析实验报告-贪心算法

校课程的简单实验报告。 算法设计与分析实验报告-递归与分治策略 算法设计与分析实验报告-动态规划算法 算法设计与分析实验报告-贪心算法 dijkstra迪杰斯特拉算法(邻接表法) 算法设计与分析实验报告-回溯法 算法设计与分析实验报告-分支限界法 …...

Unity读取服务器声音文件

Unity读取服务器声音文件 功能1.在网站的根目录放置一个声音文件Alarm01.wav(这个是window系统自带的找不到这个格式的可以直接在C盘搜索)2.在WebManager.cs脚本中添加clipPath、audio、m_downloadClip属性和DownloadSound()函数&…...

掌握ElasticSearch(一):Elasticsearch安装与配置、Kibana安装

文章目录 〇、简介1.Elasticsearch简介2.典型业务场景3.数据采集工具4.名词解释 一、安装1.使用docker(1)创建虚拟网络(2)Elasticsearch安装步骤 2.使用压缩包 二、配置1.目录介绍2.配置文件介绍3.elasticsearch.yml节点配置4.jvm.options堆配置 二、可视化工具Kibana1.介绍2.安…...

《剑指offer》Java版--13.机器人的运动范围(BFS)

剑指offer原题13:机器人的运动范围 地上有一个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为353…...

基于流程挖掘的保险理赔优化策略实践

引言 在当今日益竞争的商业环境中,保险公司面临着日益增长的业务量和客户期望的挑战。特别是在理赔领域,理赔是保险行业的重要环节,也是保险公司和客户之间最直接的联系点。然而,长周期和繁琐的理赔流程常常给保险公司和投保人带来困扰。因此,如何提供准确且高效的理赔处…...

Docker五 | DockerFile

目录 DockerFile 常用保留字 FROM MAINTAINER RUN EXPOSE WORKDIR USER ENV VOLUME ADD COPY CMD ENTRYPOINT DockerFile案例 前期准备 编写DockerFile文件 运行DockerFile 运行镜像 DockerFile是用来构建Docker镜像的文本文件,是由一条条构建…...

2023年度总结:技术旅程的杨帆远航⛵

文章目录 职业规划与心灵成长 ❤️‍🔥我的最大收获与成长 💪新年Flag 🚩我的技术发展规划 ⌛对技术行业的深度思考 🤔祝愿 🌇 2023 年对我来说是一个充实而令人难以忘怀的一年。这一年,我在CSDN上发表了 1…...

SpringBoot+AOP+Redis 防止重复请求提交

本文项目基于以下教程的代码版本&#xff1a; https://javaxbfs.blog.csdn.net/article/details/135224261 代码仓库: springboot一些案例的整合_1: springboot一些案例的整合 1、实现步骤 2.引入依赖 我们需要redis、aop的依赖。 <dependency><groupId>org.spr…...

偷流量、端口占用、网络负载高、socket创建释放异常等Android高阶TCP/IP网络问题定位思路

一&#xff0c;背景 通常一些偷流量、端口占用、网络负载高、socket创建释放异常等Android网络相关问题&#xff0c;可以通过使用tcpdump抓tcp/ip报文&#xff0c;来定位。但是tcpdump无进程信息&#xff0c;也没有APK包名信息&#xff0c;无法确认异常的报文来自哪些Apk或者n…...

《人人都能用英语》学习笔记

https://github.com/xiaolai/everyone-can-use-english 核心&#xff1a; 用 What──它究竟是什么&#xff1f;Why──为什么它是那个样子&#xff1f;How──要掌握它、应用它&#xff0c;必须得遵循什么样的步骤&#xff1f; 在运行程序之前&#xff0c;要反复浏览代码&a…...

NFC与ZigBee技术在智慧农业物联网监测系统中的应用

近年来&#xff0c;我国农业物联网技术飞速发展&#xff0c;基于物联网技术的智能农业监测系统有望得到较大规模的推广应用。但传统的物联网农业监测系统其网络结构层次单一&#xff0c;多采用基于有线或无线结构的节点-上位机数据采集模式&#xff0c;节点数据访问模式缺乏灵活…...

k8s-cni网络 10

Flannel vxlan模式跨主机通信原理 在同一个节点上的pod 流量通过cni网桥可以直接进行转发&#xff1b; 在需要跨主机访问时&#xff0c;数据包通过flannel(隧道) 知道另一边的mac地址&#xff0c;就可以拿到另一边的ip地址&#xff0c;然后构建常规的以太网数据包&#xff0c;…...

听GPT 讲Rust源代码--src/tools(27)

File: rust/src/tools/clippy/clippy_lints/src/methods/suspicious_to_owned.rs 文件rust/src/tools/clippy/clippy_lints/src/methods/suspicious_to_owned.rs的作用是实施Clippy lint规则&#xff0c;检测产生潜在性能问题的字符转换代码&#xff0c;并给出相关建议。 在Rus…...

经济危机下,我们普通人如何翻身?2024创业新风口,适合普通人的创业项目

明年的商业环境会比今年更残酷&#xff0c;不是贩卖危机。旅游行业还在刺激性消费&#xff0c;再过几个月大家就没钱了&#xff0c;估计慢慢也消停。中小微企业资金链断裂&#xff0c;大部分公司倒闭&#xff0c;大批人失业&#xff0c;所以经济恢复需要一个周期。 30年河东&am…...

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第五节 引用类型复制问题及用克隆接口ICloneable修复

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第五节 引用类型复制问题及用克隆接口ICloneable修复 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节…...

python中基本元素的pop函数

python中基本元素的pop函数 一、列表List二、元组Tuple三、字典dict四、集合set 一、列表List pop() 根据索引删除并返回被删除的元素&#xff0c;索引默认为-1 a [1, 2, 3, 2, 5] b a.pop() # b5&#xff0c;默认返回最后一个值 print(b) b a.pop(2) # b3,返回a[2] pri…...

MPLS动态协议LDP配置示例

一、预习&#xff1a; MPLS是一种根据报文中携带的标签来转发数据的技术&#xff0c;两台LSR必须在它们之间转的数据 的标签使用上“达成共识”。LSR之间可以运行LDP来告知其他LSR本设备上的标签绑定信息&#xff0c;从而实现标签报文的正确转发。 LSR&#xff1a;Label Switch…...

JS调用栈:为何会栈溢出

JS调用栈&#xff1a;为何会栈溢出 JS调用栈什么是函数调用什么是栈在开发中利用调用栈栈溢出 JS调用栈 JavaScript 经常会出现一个函数中调用另外一个函数的情况&#xff0c;调用栈就是用来管理函数调用关系的一种数据结构&#xff0c;首先你要先弄明白函数调用和栈结构 什么…...

代码随想Day52 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300.最长递增子序列 这道题目的重点在于动态数组的定义 dp[i]&#xff1a;以nums[i]为结尾的最长递增子序列&#xff0c;因为这样定义可以进行递推&#xff1b; 递推&#xff1a;j从0-i进行对比&#xff0c;如果nums[i]大于nums[j]&#xff0c;dp[i]dp[j]1&#xff1b; 初始化…...

保姆级教程:用Docker Compose一键部署带汉化和HTTPS的n8n,并配置反向代理(Nginx)

企业级n8n自动化平台全栈部署实战&#xff1a;从容器编排到安全加固 在数字化转型浪潮中&#xff0c;自动化工作流平台已成为企业降本增效的核心基础设施。n8n作为GitHub上增长最快的开源自动化工具之一&#xff0c;凭借其可视化编排能力和400节点生态&#xff0c;正在重塑企业…...

SAP IDoc入站出站处理全流程拆解:从WE19测试到IDOC_INPUT_函数调试

SAP IDoc接口开发实战&#xff1a;从零构建到生产环境调试全指南 在SAP系统集成领域&#xff0c;IDoc&#xff08;Intermediate Document&#xff09;作为企业级数据交换的标准载体&#xff0c;其重要性不言而喻明。不同于简单的文件传输&#xff0c;一个健壮的IDoc接口需要开发…...

零基础一键配置黑苹果:OpCore-Simplify智能工具让复杂变简单

零基础一键配置黑苹果&#xff1a;OpCore-Simplify智能工具让复杂变简单 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为黑苹果配置时面对满屏代…...

EtherCAT模块化实战:如何为你的设备设计可热插拔的IO模块(基于SSC与0x4711示例)

EtherCAT模块化实战&#xff1a;如何为你的设备设计可热插拔的IO模块 在工业自动化领域&#xff0c;设备的灵活性和可扩展性正变得越来越重要。想象一下&#xff0c;当你的客户需要在生产线上快速更换不同类型的传感器或执行器时&#xff0c;如果每次硬件变更都需要重新配置整个…...

通用GUI编程技术——Win32 原生编程实战(十八)——GDI 设备上下文(HDC)完全指南

通用GUI编程技术——Win32 原生编程实战&#xff08;十八&#xff09;——GDI 设备上下文&#xff08;HDC&#xff09;完全指南 前面一系列文章我们聊了对话框、控件、资源这些内容&#xff0c;我们的窗口已经能够显示各种控件了。但你可能已经发现了一个问题&#xff1a;我们所…...

手把手教你用ROS2和ZED2 SDK搭建3D视觉开发环境(Ubuntu 20.04版)

手把手教你用ROS2和ZED2 SDK搭建3D视觉开发环境&#xff08;Ubuntu 20.04版&#xff09; 在自动驾驶、增强现实和机器人导航等领域&#xff0c;3D视觉感知已成为核心技术之一。ZED2相机凭借其双目深度感知能力和高精度SLAM算法&#xff0c;成为开发者构建空间智能系统的首选传感…...

MCprep插件终极指南:从Minecraft世界到专业动画的完整解决方案

MCprep插件终极指南&#xff1a;从Minecraft世界到专业动画的完整解决方案 【免费下载链接】MCprep Blender python addon to increase workflow for creating minecraft renders and animations 项目地址: https://gitcode.com/gh_mirrors/mc/MCprep 你是否曾梦想将Min…...

3步玩转Balena Etcher:开源镜像烧录工具完全指南

3步玩转Balena Etcher&#xff1a;开源镜像烧录工具完全指南 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher Balena Etcher是一款开源跨平台镜像烧录工具&#x…...

[特殊字符]空间智能目标追踪系统:从“看视频”到“掌控空间”的技术跃迁——多模态识别 × 空间建模 × 轨迹预测,让视频系统具备“感知与决策能力”[特殊字符] 视频系统的终极形态,不是记录世

&#x1f6a8;空间智能目标追踪系统&#xff1a;从“看视频”到“掌控空间”的技术跃迁——多模态识别 空间建模 轨迹预测&#xff0c;让视频系统具备“感知与决策能力”&#x1f4a5; 视频系统的终极形态&#xff0c;不是记录世界&#xff0c;而是理解世界。一、系统定位&am…...

Souliss嵌入式状态同步框架:轻量级去中心化智能家居通信实践

1. Souliss 智能家居网络框架深度解析&#xff1a;面向嵌入式工程师的底层通信架构实践指南Souliss 是一个专为资源受限嵌入式节点设计的轻量级、去中心化智能家居网络框架。其核心目标并非构建通用物联网平台&#xff0c;而是解决真实家庭场景中多协议共存、低功耗节点协同、边…...