【数据库系统概念】第7-14章集合

news2025/1/9 1:32:39

文章目录

  • 第七章 数据库设计和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.coloradmin.cn/o/1362245.html

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

相关文章

Spring配置提示: File is included in 4 contexts

问题描述: spring配置文件上面提示: mvc application context in module studyDemo file is included in 4 contexts 导致原因:因为所有的配置文件都没有放在同一个上下文中 所谓File is included in 4 contexts是因为spring的配置文件放…

从vue小白到高手,从一个内容管理网站开始实战开发第六天,登录功能后台功能设计--API项目中的登录实现(二),工厂模式创建数据库连接

一、回顾 在第五天的时候我们开始创建后台所以需项目,并创建项目所需要的相关实体类,具体内容没有掌握的小伙伴可以看点击下面的链接去学习。 从vue小白到高手,从一个内容管理网站开始实战开发第六天,登录功能后台功能设计--API项目中的登录实现(一)-CSDN博客文章浏览阅读…

首次引入大模型!Bert-vits2-Extra中文特化版40秒素材复刻巫师3叶奈法

Bert-vits2项目又更新了,更新了一个新的分支:中文特化,所谓中文特化,即针对中文音色的特殊优化版本,纯中文底模效果百尺竿头更进一步,同时首次引入了大模型,使用国产IDEA-CCNL/Erlangshen-Megat…

H5通过getUserMedia拍照黑屏原因

项目需求背景:如同我上篇文章,https://blog.csdn.net/carfge/article/details/135417741 问题场景: 小米手机中访问H5,网页已获得摄像头授权(左上角相机出现图标),但页面黑屏。 原因排查&#x…

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…

【Spring Cloud】Nacos及Ribbon组件的使用

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 &am…

SQL Server 权限管理

CSDN 成就一亿技术人! 2024年 第一篇 难度指数:* * CSDN 成就一亿技术人! 目录 1. 权限管理 什么是权限管理? SQL server的安全机制 服务器级角色 数据库级角色 对象级角色 2. 创建用户 赋予权限 最重要的一步骤 1. 权限…

【信号处理:小波包转换(WPT)/小波包分解(WPD) 】

【信号处理:小波包转换(WPT)/小波包分解(WPD) 】 小波包变换简介WPT/WPD的基础知识WPT/WPD的主要特点The Wavelet Packet Transform 小波包变换前向小波数据包变换最佳基础和成本函数数学中波纹的最佳基础其他成本函数…

计算机中的数据运算

放上计算机中的数据的表示方法 计算机中的数据表示方法-CSDN博客 补码的运算: 连同符号位一起相加,符号位产生的进位自然丢掉,这里要特别注意机器数的位数,计算数的位数决定了可以存放的数据的大小,加减产生的数据的…

软件测试|Docker Kill/Pause/Unpause命令详细使用指南

简介 Docker是一种流行的容器化平台,提供了各种命令和功能来管理和操作容器。本文将详细介绍Docker中的三个重要命令:kill、pause和unpause。我们将深入了解它们的作用、用法和示例,帮助您更好地理解和使用这些命令。 什么是Docker Kill/Pa…

解决 Postman 报错问题:一份综合指南

Postman 是一个流行的 API 测试工具,它可以帮助开发者和测试人员快速地创建和发送各种 HTTP 请求,并查看响应结果。但是,在使用 Postman 的过程中,有时候会遇到一些报错或异常情况,影响了正常的测试流程。本文将介绍一…

MongoDB索引详解

概述 索引是一种用来快速查询数据的数据结构。BTree 就是一种常用的数据库索引数据结构,MongoDB 采用 BTree 做索引,索引创建 colletions 上。MongoDB 不使用索引的查询,先扫描所有的文档,再匹配符合条件的文档。使用索引的查询&…

【linux笔记1】

目录 【linux笔记1】文件内容的理解用户管理用户管理命令添加用户切换用户修改用户信息删除用户 用户组 【linux笔记1】 文件内容的理解 etc文件夹:etc是拉丁语"et cetera"的缩写,意思是“和其他的”或“等等”。在linux系统中,“…

【C++】类和对象详解(类的使用,this指针)

文章目录 前言面向过程和面向对象的初步认识类的引入类的定义类的访问限定符和封装性访问限定符封装性 类的作用域类的实例化类对象模型如何计算类对象的大小类对象的存储方式猜测结构体内存对齐规则 this指针this指针的引出this指针的特性 总结 前言 提示:这里可以…

【DevOps-07-3】Jenkins集成Sonarqube

一、简要说明 Jenkins安装Sonarqube插件Jenkins安装和配置Sonar-Scanner信息Jenkins打包项目中,增加Sonar-Scanner代码质量扫描二、Jenkins安装Sonarqube插件 1、登录Jenkins管理后台,搜索安装Sonar-Scanner插件 Jenkins管理后台示例:http://192.168.95.131:8080/jenkins/

MySQL之视图内连接、外连接、子查询案例

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

HttpRunner的测试用例分层机制

测试用例分层介绍: 在接口自动化测试维护过程中,由于测试用例的增加和需求变更导致测试用例的调整,使自动化测试用例的维护非常麻烦,直接关系到自动化测试能否持续有效地在项目中开展。 概括来说,测试用例分层机制的核…

性能优化-OpenMP基础教程(三)

本文主要介绍OpenMP并行编程的环境变量和实战、主要对比理解嵌套并行的效果。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 &…

MiniTab的宏基础知识

什么是宏? 宏是包含一系列 Minitab 会话命令的文本文件。可以使用宏自动执行重复性任务(例如,生成月度报表)或扩展 Minitab 的功能(例如,计算特殊检验统计量)。 Minitab 提供以下类型的宏&…

JetBrains Rider使用总结

简介: JetBrains Rider 诞生于2016年,一款适配于游戏开发人员,是JetBrains旗下一款非常年轻的跨平台 .NET IDE。目前支持包括.NET 桌面应用、服务和库、Unity 和 Unreal Engine 游戏、Xamarin 、ASP.NET 和 ASP.NET Core web 等多种应用程序…