【数据库系统概念】第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是冲突可串行化的
  • 等价的串行调度是,按有向边出口依次截取结点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BLE Mesh蓝牙组网技术详细解析之Model Layer模型层(八)

目录 一、什么是BLE Mesh Model Layer模型层? 二、SIG Model 2.1 模型概念 2.2 消息格式 2.3 开关模型 四、资料获取 一、什么是BLE Mesh Model Layer模型层? Models Layer的作用是定义了一些通用的或特定的模型,用于实现网络节点设备…

Beauty algorithm(四)眼影

一、skills 前瞻 略 二、目标区域定位 1、 眼影区域 1、眼部关键点 左侧:36,37,38,39,40,41 右侧:42,43,44,45,46,47 2、计算roi区域的w,h,center 目的调整mask的比列。 FaceRegion left_es, right_es; left_es.w = landmarks.at(39).x - landmarks.at(36).x; left_es.…

书生·浦语大模型实战营第一次课堂笔记

书生浦语大模型全链路开源体系。大模型是发展通用人工智能的重要途径,是人工通用人工智能的一个重要途径。书生浦语大模型覆盖轻量级、重量级、重量级的三种不同大小模型,可用于智能客服、个人助手等领域。还介绍了书生浦语大模型的性能在多个数据集上全面超过了相似量级或相近…

并发(3)

目录 11.Synchronized本质上是通过什么保证线程安全的? 12.Synchronized使得同时只有一个线程可以执行,性能比较差,有什么提升的方法? 13.Synchronized由什么样的缺陷?Java Lock是怎么弥补这些缺陷的? 1…

看了致远OA的表单设计后的思考

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…

通信原理期末复习——计算大题(一)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

交换机04_远程连接

通过远程管理方式连接交换机 1、telnet简介 telnet 是应用层协议 基于传输层TCP协议的,默认端口:23 采用的是明文密码方式 不是很安全,一般用于内网管理。 2、ssh协议简介 ssh 是应用层的协议,基于传输层的TCP协议&#x…

打造清晰的日志管理策略:如何在 NestJS 中集成 winston 高级日志系统

前言 在Web应用程序的开发过程中,日志管理是不可或缺的一部分。日志可以帮助我们了解应用程序的运行状态,监控系统行为,以及在出现问题时快速定位和解决问题。 对于使用NestJS框架的项目来说,集成一个高效、可扩展的日志系统尤为…

面试官:说说接口和抽象类有什么区别

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

Python中的cls语法

在Python中,cls 是一个用于指代类本身的约定性名称,通常用作类方法(class method)中的第一个参数。cls 类似于 self,它是对类的引用,而不是对实例的引用。cls 通常在类方法中用于访问类级别的属性和方法。举…

LLM Agent之数据分析领域的应用

数据分析:Data-Copilot paper: Data-Copilot: Bridging Billions of Data and Humans with Autonomous Workflow github: https://github.com/zwq2018/Data-Copilot 先介绍下浙大提出的已扩展的数据分析框架,支持多种金融数据类型的查询,数…

论文笔记 Understanding Electricity-Theft Behavior via Multi-Source Data

WWW 2020 oral 1 INTRO 1.1 背景 1.1.1 窃电 窃电(electricity theft)指用户为了逃避电费而进行非法操作的一种行为 常用的反窃电方法可分为两类: 基于硬件驱动的反窃电方法 ​​​​​​​电表开盖检测、集中器检测。。。。 硬件驱动的…

MySQL之视图案例

目录 一.视图1.1 含义1.2 操作 二.案例三.思维导图 一.视图 1.1 含义 虚拟表,和普通表一样使用 1.2 操作 1.创建视图 create view 视图名 as 查询语句; 2.视图的修改 方式一: create or replace view 视图名 as 查询语句 方式二&#x…

图像分割-Grabcut法(C#)

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本文的VB版本请访问:图像分割-Grabcut法-CSDN博客 GrabCut是一种基于图像分割的技术,它可以用于将图像中的…

Linux第15步_安装FTP客户端

安装完FTP服务器后,还需要安装FTP客户端,才可以实现Ubuntu系统和Windows系统进行文件互传。 1、在STM32MP157开发板A盘基础资料\03软件中,找到“FileZilla_3.51.0_win64-setup.exe”,双击它,就可以安装。 2、点击“I …

Fontfabric:一款字体与设计的完美结合

一、产品介绍 Fontfabric是一款由国际字体设计公司Fontfabric开发的字体设计软件。它提供了一整套完整的字体设计工具,让用户可以轻松地创建、设计和定制自己的字体。Fontfabric拥有丰富的字体库,包括各种风格和类型,能够满足用户在不同场景…

安全加密基础—基本概念、keytool、openssl

安全加密基础—基本概念、keytool、openssl 目录 前言 一、概念 明文通信 无密钥密文通信 对称加密 非对称加密 数字签名 消息摘要(MD5) CA数字证书(解决公钥分发的问题) HTTPS 相关文件扩展名 常用后缀名 普通的pem文件内容 二、keytool 2.1常用的命令如下 2…

docker 完成MySQL的主从复制

文章目录 搭建步骤 搭建步骤 拉取镜像 docker pull mysql:5.7运行主从 docker run -p 3307:3306 --name mysql-master -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_P…

外包干了1个月,技术退步一大半。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

c语言版:数据结构(时间复杂度,空间复杂度,练习)

时间复杂度 概念 时间复杂度是用来衡量算法执行时间的一个指标。它表示随着输入规模的增加,算法执行时间的增长率。时间复杂度通常用大O符号表示。 在计算时间复杂度时,通常会忽略常数项、低阶项和系数项,只关注随着输入规模增长而导致的主要…