【数据库系统概念】第7-14章集合
文章目录
- 第七章 数据库设计和E-R模型(重点!!!)
- ~~7.1 设计过程概览(了解)~~
- 7.1.1 设计阶段
- 7.1.2 设计选择
- ==7.2 实体-联系模型(重点掌握)==
- 7.2.1 实体集
- 7.2.2 联系集
- 联系集的度
- 7.2.3 属性
- 各种属性在E-R图中的表示
- 7.3 约束
- 7.3.1 映射基数
- 7.3.2 参与约束
- 7.3.3 码
- 键、码的概念
- 7.4 从实体集中删除冗余属性
- ==7.5 实体-联系图(重点!!!)==
- 7.5.1 基本结构
- 7.5.2 映射基数
- 7.5.3 复杂的属性
- 7.5.4 角色
- 7.5.5 非二元的联系集
- 7.5.6 弱实体集
- 7.5.7 大学的E-R图
- ==7.6 转换为关系模式(重点!!!)==
- 7.6.1 具有简单属性的强实体集表示
- 7.6.2 具有复杂属性的强实体集表示
- 7.6.3 弱实体集的表示
- 7.6.4 联系集的表示
- 7.7 实体-联系设计问题
- ==设计数据库的步骤==
- ~~7.8 拓展的E-R属性~~
- 第八章 关系数据库设计(重点!!!)
- 8.1 好的关系设计的特点
- 8.1.1 设计选择:更大的模式
- 8.1.2 设计选择:更小的模式
- 8.2 原子域和第一范式
- 8.3 使用函数依赖进行分解
- 8.3.1 码和函数依赖
- **非规范化设计的问题:数据冗余,插入/删除/更新异常**
- **函数依赖的概念(Functional Dependency)**
- 8.3.2 Boyce-Codd 范式(Boyce-Codd Normal Form, BCNF)
- 8.3.3 BCNF和保持依赖
- 8.3.4 第三范式
- ~~8.3.5 更高的范式(不考)~~
- 8.4 函数依赖理论
- 8.4.1 函数依赖集的闭包
- 8.4.2 属性集的闭包
- 8.4.3 正则覆盖
- 8.4.4 无损分解
- 8.4.5 保持依赖
- 8.5 分解算法
- 8.5.1 BCNF分解
- 8.5.2 3NF分解
- 8.5.3 3NF算法的正确性
- 8.5.4 BCNF和3NF的比较
- ~~8.6 使用多值依赖的分解(不考)~~
- ~~8.7 更多的范式(不考)~~
- ~~8.8 数据库设计过程(不考)~~
- ~~8.9 时态数据建模(不考)~~
- ~~9.10.11章不考~~
- 第12章 查询处理考到12.5
- 第14章 事务考到14.8
- 事务
- 应试
- 重装系统……备份数据时把这个文件夹抛弃了……且不可能重新整理
- 本文来源于能寻觅到的最后残骸
- 目录如下,待有缘人使用
- 文章不宜阅读and本系列文章止于此
第七章 数据库设计和E-R模型(重点!!!)
7.1 设计过程概览(了解)
7.1.1 设计阶段
7.1.2 设计选择
在软件开发中,需要经历这几个阶段
其中设计过程中需要进行数据库设计
关于E-R模式的引入
设计E-R模型的观点是,世界是由一组称为实体的基本对象和这些对象之间的联系构成的
E-R图的作用
帮助澄清用户数据需求,使分析人员和用户对数据需求达成高度一致
是数据逻辑模型设计的基础
7.2 实体-联系模型(重点掌握)
数据库可被建模为:实体集合和实体间联系。
7.2.1 实体集
- 实体是客观存在的对象并且与其他对象可区分,例如: 特定的人,公司,事件,植物,具有属性,例如:人具有姓名和地址,并且实体集是相同类型的实体的集合,他们具有相同的性质,例如:所有人的集合,所有公司的集合。
- 实体集的图例如下,以instructor(导师)为例:
实体用一个属性集合来表示,即实体集中所有成员都具有的描述性特性,域表示所有属性允许的值的集合。属性的种类有以下几种:
-
简单属性与复合属性
-
单值属性与多值属性
- 例,多值属性:phone-numbers
-
派生属性
- 可由其他属性计算得到
- 例,给定出生日期可计算出年龄
- 基属性或存储属性
-
复合属性的图例如下:
7.2.2 联系集
联系是指多个实体之间的联系,联系集是相同类型联系的集合。
- 例如导师和学生的关系,一个学生有一个导师,一个导师可以有多个学生,导师的id用s_ID表示,student的id用i_ID表示,导师和学生的联系可以用如下数据表表示:
advisor(s_ID,i_ID)
一般联系集存放的是两个表的主键,对应的图示如下:
- 联系集也可具有属性,例如导师和学生双选的日期,如下图所示:
联系集的度
联系集的度指的是参加联系的实体集的个数,涉及两个实体集的联系集称为二元的,联系集可以涉及多于两个的实体集,例:一个student在每个项目上最多只能有一位导师,如下图,包含三个实体集instructor、student和project(三元联系)(多于两个实体集之间的联系较少见,数据库系统中的联系集一般多为二元的)
7.2.3 属性
- 简单属性:不可再分的属性
- 复合属性:可以划分为更小的属性,如Birthday = year + month + day
- 单值属性:每个实体在该属性上的取值唯一
- 多值属性:每个实体在该属性上的取值可以有多个,比如一个教师可能有多个电话号码
- 派生属性:可以从其它相关属性或实体派生出来的属性,如教师(编号,姓名,出生日期,年龄),其中年龄即为派生属性,年龄可由当前年份-出生日期得到
各种属性在E-R图中的表示
7.3 约束
7.3.1 映射基数
二元联系集的映射基数有以下几种情况:
- 一对一,如:就任总统(总统,国家)
- 注意一对一不是一 一对应
- 一对多,如:分班情况(班级,学生)
- 多对一,如:就医(病人,医生)
- 多对多,如:选课(学生,课程)
7.3.2 参与约束
7.3.3 码
键、码的概念
实体集的超码是能够唯一标识每个实体的一个或多个属性,候选码是实体集的最小超码,候选码可能存在多个,我们只会选择一个候选码作为主码或主键
-
例:instructor (ID,name,dept_name,salary
-
候选码:ID
-
超码:{ID},{ID, name},{ID,…}
7.4 从实体集中删除冗余属性
自主忽略~
7.5 实体-联系图(重点!!!)
E-R图(E-R diagram)可以图形化表示数据库的全局逻辑结构。E-R图既简单又清晰,这些是致使E-R模型广泛使用的重要性质。
7.5.1 基本结构
实体集之间不可以相连,必须通过联系集。
7.5.2 映射基数
在前面的7.3.1我们已经讨论过映射技术的四种形式,可以说任意二元联系都属于下面四种类型,现在我们用E-R图的形式表现出来。
7.5.3 复杂的属性
即上述简单-复合属性,单值-多值属性,派生属性等,见图7-11.
7.5.4 角色
7.5.5 非二元的联系集
7.5.6 弱实体集
如果一个实体的所有属性合在一起都不足以形成主码,则称这样的实体为弱实体,反之称为强实体。同一类型的弱实体形成弱实体集
依赖于其他实体集的实体集都叫做弱实体集,例如课程实体集(course)和开课学期实体集(section),所开课程需要依赖于课程实体集,因为没有课程,也就没有开课信息,如下图所示:
在E-R图中,弱实体集和强实体集有相似之处,但有两点主要的区别
- 弱实体集的分辨符以虚下划线标明,而不是实线
- 关联弱实体集与强实体集的联系集用双菱形表示
7.5.7 大学的E-R图
E-R图如下图所示,矩形代表实体集,有阴影的第一部分包含实体集的名字, 第二部分包含实体集中所有属性的名字,菱形代表联系集,未分割的矩形代表联系集的属性。构成主码的属性以下划线标明,线段将实体集连接到联系集:
参加联系的实体集不必是互不相同的
例,下图给出了course实体集和preq联系集之间的角色标识course_id和 prereq_id:
上图中course_id表示课程id,prereq_id表示学习某一个课程的前置课程。
在开发中一般我们使用二元联系,任何非二元联系都能转换成二元联系,例,将如下非二元联系schooling 转换成二元联系
特化用从特化实体指向另一方实体的空心箭头来表示。这种关系为ISA关 系,代表“is a”(“是一个”)。例如,一个教师“是一个”雇员:
7.6 转换为关系模式(重点!!!)
实体集和联系集都可以转化为关系模式,用以存储数据库中的内容。
若数据库符合E-R图,则可以表示成模式的集合。
在E-R图中,每个实体集和联系集均对应一个唯一的模式。
在每个模式中,均有多个列,且模式内列名不重复。
步骤:
1.转换强实体集; 2.转换弱实体集; 3.转换联系集(注意分情况讨论);
7.6.1 具有简单属性的强实体集表示
对于只有简单属性的强实体集,直接将E-R图转换为关系模式即可
7.6.2 具有复杂属性的强实体集表示
对于复合属性:将每个组合属性作为复合属性所在实体的属性
对于多值属性:将其转换为新的关系+所在实体的主码
复合属性全部拆开,多值属性建了一张新的表
7.6.3 弱实体集的表示
7.6.4 联系集的表示
7.7 实体-联系设计问题
设计数据库的步骤
7.8 拓展的E-R属性
第八章 关系数据库设计(重点!!!)
8.1 好的关系设计的特点
8.1.1 设计选择:更大的模式
8.1.2 设计选择:更小的模式
8.2 原子域和第一范式
如果一个域被认为是不可再分的单元,那么这个域是原子的
如果一个关系模式R的所有属性都是原子的,那么这个关系模式R属于第一范式(1NF)
注意要对这个原子性有正确的理解,具体的例子课本里有
8.3 使用函数依赖进行分解
首先明确,我们学习和使用函数依赖的目的是什么?
利用函数依赖,可以对现有关系进行分解,所以,函数依赖的本质作用是对现有的冗余的关系模式进行分解
关于后续相关符号的介绍
8.3.1 码和函数依赖
在现实世界中,数据通常存在各种约束,而满足所有这种约束的实例,被称为合法实例
现实世界中的约束可以转换为数据库中的码(超码,候选码,主码)
非规范化设计的问题:数据冗余,插入/删除/更新异常
- 数据冗余(想修改一个属性,就要更新多行数据)
- 插入异常(想要插入数据,结构因为表设计的问题,导致不能成功插入)
- 删除异常(只想删除其中的某些数据 ,结果把不该删的也删了)
- 更新异常(想更新一条数据,结果工作量大,还容易出错)
函数依赖的概念(Functional Dependency)
8.3.2 Boyce-Codd 范式(Boyce-Codd Normal Form, BCNF)
8.3.3 BCNF和保持依赖
8.3.4 第三范式
8.3.5 更高的范式(不考)
8.4 函数依赖理论
8.4.1 函数依赖集的闭包
8.4.2 属性集的闭包
8.4.3 正则覆盖
8.4.4 无损分解
8.4.5 保持依赖
8.5 分解算法
8.5.1 BCNF分解
8.5.2 3NF分解
8.5.3 3NF算法的正确性
8.5.4 BCNF和3NF的比较
8.6 使用多值依赖的分解(不考)
8.7 更多的范式(不考)
8.8 数据库设计过程(不考)
8.9 时态数据建模(不考)
9.10.11章不考
第12章 查询处理考到12.5
第14章 事务考到14.8
事务
事务(transaction)由查询和更新语句的序列组成。SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务。下列SQL语句之一会结束一个事务:
Commit work:提交当前事务,也就是将该事务所做的更新在数据库中持久保存。在事务被提交后,一个新的事务自动开始。
Rollback work:回滚当前事务,即撤销该事务中所有SQL语句对数据库的更新。这样,数据库就恢复到执行该事务第一条语句之前的状态
数据库系统概念笔记——第十四章:事务_设有两个事务t1和t2: t1从帐户a过户500元到帐户b t2从帐户a过户20%的余额到帐户b-CSDN博客
应试
方法:
- E是边集,边集由满足先I=read(Q)后J=write(Q),先I=write(Q)后J=read(Q),先I=write(Q)后J=write(Q) 这三个条件之一的所有Ti→Tj的边组成
- 若图无环,S是冲突可串行化的
- 等价的串行调度是,按有向边出口依次截取结点
相关文章:

【数据库系统概念】第7-14章集合
文章目录 第七章 数据库设计和E-R模型(重点!!!)~~7.1 设计过程概览(了解)~~7.1.1 设计阶段7.1.2 设计选择 7.2 实体-联系模型(重点掌握)7.2.1 实体集7.2.2 联系集联系集的…...

Kibana
Kibana是一个针对Elastic Search的开源分析及可视化的平台,使用kibana可以查询、查看并与存储在ES索引的数据进行交互操作,可以理解为一个客户端的工具,比如mysql和navicat。 使用kibana能执行高级的数据分析,并能以图表、表格和地…...

C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式
C# 去获取电脑相关的基础信息,还是需要借助 外部的库,我这边尝试了自己去实现它 网上有一些信息,但不太完整,都比较零碎,这边尽量将代码完整的去展示出来 OpenHardwareMonitor获取CPU的温度和频率需要管理员权限 在没…...
K8S--- volumesvolumeMount
一、Volume 简介 在容器当中的磁盘文件(on-disk file )是短暂的(ephemeral),这会对重要的应用程序或者数据产生一些问题。当容器崩溃或停止时,会出现一个问题,即容器状态不会被保存,因此在容器生命周期内被创建或者修改的文件都将丢失。在容器崩溃期间,kubelet会以干净状…...

AntV-G6 -- 将G6图表应用到项目中
1. 效果图 2. 安装依赖 npm install --save antv/g6 3. 代码 import { useEffect } from alipay/bigfish/react; import G6 from antv/g6;const data {id: root,label: 利息收入,subLabel: 3,283.456,ratio: 3,children: [{id: child-a,label: 平均利息,subLabel: 9%,ratio:…...
第二百五十回
文章目录 1. 概念介绍2. 使用方法2.1 简单用法2.2 自定义用法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"三方包open_settings"相关的内容,本章回中将介绍另外一个三方包:bluetooth_enable_fork.闲话休提,让我们一起Talk Flu…...

如何把硬盘(分区)一分为二?重装系统的小伙伴不可不看
注意事项:本教程操作不当会导致数据丢失 请谨慎操作 请谨慎操作 请谨慎操作 前言 相信各位小伙伴都会切土豆吧,本教程就是教大家如何切土豆切得好的教程。 啊哈哈哈,开玩笑的。 比如你有一个D盘是200GB,想要把它变成两个100G…...

【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023
AI视野今日CS.NLP 自然语言处理论文速览 Tue, 31 Oct 2023 (showing first 100 of 141 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers The Eval4NLP 2023 Shared Task on Prompting Large Language Models a…...

解决Canvas画图清晰度问题
最近在开发Web端远程桌面的时候遇到的一个问题,解决记录一下,分享给各位有需要用到的朋友。 先吹下水:远程桌面的连接我们是通过Websocket连接后,后端不断返回远程端的界面二进制数据流,我接收到之后转为图像…...

zookeeper经典应用场景之分布式锁
1. 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候,大家往往采用Synchronized(同步)或者其他同一个JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中,就需要一种更加高级的锁机制来处理跨机器的进…...

红队专题-Web安全/渗透测试-文件上传/下载/包含
文件上传/下载/包含 招募六边形战士队员利用目录穿越反弹SHELL实战测试2.2 提交报文修改检测3.2 文件内容检测绕过完整文件结构 检测 第四章:解析漏洞第一节 常见解析漏洞iis/nginx php fastcgi 取值错误 解析漏洞 (配置错误)nginx 文件名逻…...

安装阿里云CLI之配置阿里云凭证信息
有时候需要再主机上通过 OpenAPI 的调用访问阿里云,并完成控制,此时就需要在服务器上安装阿里云CLI,并完成账号的设置。 1. 登录阿里云创建账号 1.1 点击阿里云头像 ——》 控制访问 ——》创建一个拥有DNS权限的用户 这个用户不用太多权限…...
阿里云和腾讯云2核2G3M服务器上传速度多少?
2核2G3M服务器上传速度多少?上传是按10M带宽算,上传速度是1280KB/秒,即1.25M/秒;下载速度按3M带宽计算,下载速度是384KB/秒。本文阿腾云atengyun.com是以阿里云为例的,阿里云服务器当公网带宽小于10M及10M以…...

Python中的cls语法
在Python中,cls 是一个用于指代类本身的约定性名称,通常用作类方法(class method)中的第一个参数。cls 类似于 self,它是对类的引用,而不是对实例的引用。cls 通常在类方法中用于访问类级别的属性和方法。举…...
【Java】java -jar 读取jar包之外的yml
需求描述 springboot项目接入nacos配置,代码中使用bootstrap.yml来指定nacos信息,为了防止不同环境的来回切换,服务器中都单独在放一个bootstrap.yml,来指定具体环境的nacos配置,如sit服务器使用sit的nacos配置&#…...

遥感影像-语义分割数据集:山体滑坡数据集详细介绍及训练样本处理流程
原始数据集详情 简介:该遥感滑坡数据集由卫星光学图像、滑坡边界的形状文件和数字高程模型组成。该数据集中的所有图像,即770张滑坡图像(红点)和2003张非滑坡图像,都是从2018年5月至8月拍摄的TripleSat卫星图像中截取…...
ubuntu 22.04 安装r-base时缺少r-recommended
sudo apt-get install r-base时报错: 下列软件包有未满足的依赖关系: r-base : 依赖: r-recommended ( 4.3.2-1.2004.0) 但无法安装它 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 解决方…...

HarmonOS 通用组件(Button)
本文 我们来看看基础组件中的 Button 这是 ArkTS ui 原生支持的一个组件 用来创建不同样式的按钮 首先 我们还是创建一个最基本的组件结构 Entry Component struct Index {build() {Row() {Column() {}.width(100%)}.height(100%)} }我们可以在 Column 组件中 加入一个button…...

代码随想录算法训练DAY22|二叉树8
算法训练DAY22|二叉树8 235. 二叉搜索树的最近公共祖先 力扣题目链接(opens new window) 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点…...
如何解决跨域问题
跨域是什么 跨域是指在浏览器中运行的前端程序试图通过XMLHttpRequest等方式向不同域的后端服务器发送请求时,会遭遇浏览器同源策略限制的情况默认情况下,浏览器只允许在同一来源(协议、域名、端口)下进行请求,而跨域…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...