【数据库】关系代数以及关系演算

写在前面

如果哪里出现问题需要改正还请路过的大佬指点 smile()(p≧w≦q)

第一章

数据库系统的特点

  • 实现数据的集中化控制

1)数据库中的数据是集成式的

一个部分所涉及到的数据都组织在一个数据库里,部门里各部分可以通过自己的访问权限来访问此数据库

2)数据库管理员DBA

通过数据库管理员对本部门数据库进行管理和维护

  • 数据的冗余度小,易扩充

相对于文件系统,数据库对于相同的数据只存储一次,大大降低了数据的冗余度。(比如说文件系统里同一个文件可以在不同的目录下存在)。

  • 采用一定的数据模型实现数据结构化

这里就涉及到了常说的层次模型、网状模型和关系模型了,区别这三种数据库类型的基础就是数据库采用层次模型、网状模型和关系模型。

  • 避免了数据的不一致性

数据的不一致性是指数据的不相容性和矛盾性,也就是违反了数据完整性约束条件,使同一数据在数据库内重复反复出现不同的值。 在数据库系统里,由于冗余度降低,避免了大量不一致的数据产生。同时数据库系统提供了对数据进行控制和检查的功能,从而使得数据在更新的时候就能更新数据的所有副本,保证数据的一致性

  • 实现数据共享

在数据库系统里,一组数据集合被多种应用程序和多个用户共同使用:

多个用户:当前所有的用户(批处理用户、终端用户)可以同时使用数据库

多个应用程序:数据库既能满足用户的需求,又能适应新的应用需求。增加新的应用需求不会影响原有的应用

具有多种用户接口提供与PL/SQL、C/C++、COBOL、VB等数据库的接口

  • 提供数据库的保护

数据库系统提供了安全性控制、完整性控制、并发控制、故障的检测与恢复等一系列数据控制功能。

  • 数据的独立性

数据的独立性是指数据库中数据是独立于应用程序,即数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。

数据的独立性一般分为数据逻辑独立性和数据物理独立性

数据逻辑独立性指的是数据库总体逻辑改变(修改数据定义、增加新的数据类型、改变数据间的联系等)不需要修改应用程序

数据的物理独立性是指数据的物理结构的改变,如存储设备的更换、物理存储格式和存取方式的改变等等不会影响数据库的逻辑结构,因而不会引起应用程序的变化。

图示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r38yygoY-1653311596817)(D:\My Blog\数据库\img\image-20220522114412259.png)]

  • 数据由DBMS统一管理和控制

1)数据的安全性保护

2)数据的完整性保护

完整性保护是指诗句控制在有效范围内或使数据之间满足一定的关系(外键值为引用实体的关键字值或为空值),以保证数据的正确性、有效性和相容性

3)并发控制

当多个用户进程同时对数据库进行并发存取的时候,就需要对多用户的并发操作加以控制和协调

4)数据库恢复

当数据库系统发生故障的时候,DBMS必须具有将数据库从错误状态恢复到某一个正确状态。

数据完整性约束条件

  • 关系模型的完整性规则是对数据的约束
  • 关系模型提供了三类完整性规则:实体完整性、参照完整性、用于定义的完整性
  • 其中实体完整性和参照完整性是关系模型必须满足的完整性的约束条件。
    • 实体完整性:关系中元组的主码值不能为空且不能重复,主码若包含多个属性(属性集),则其中的任何属性取值都不能为空
    • 参照完整性:在关系模式中实体和实体间的联系都是用关系来描述,因此可能存在关系与关系间的引用(---->外键)
    • 用户自定义的完整性:针对某一具体的数据的约束条件,由应用环境决定。他反应某一具体应用所涉及的数据必须满足的语义要求。比如说Q龄就不能大于年龄

第二章

数据模型

三大经典的数据模型

  • 关系模型:表的形式组织数据
  • 层次模型:树的形式组织数据
  • 网状模型:图的形式组织数据

表示(描述)实体及实体间联系的数据库的数据结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9AxQnq7-1653311596818)(D:\My Blog\数据库\img\image-20220310163602026.png)]

E-R数据模型

方框代表实体;菱形代表联系;椭圆代表属性;用实线将属性和实体(联系)联系;在实线上加了一个杠表示该属性是实体的关键属性(唯一可以区分实体的属性)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SvbzR81g-1653311596819)(D:\My Blog\数据库\img\image-20220522120324973.png)]
联系分为:两个实体E1,E2之间的联系,分为:

一对一:E1实体集中的一个实体和E2实体集中的一个实体有关系,反之亦然

一对多:E1实体集中的一个实体和E2实体集中的多个实体有关系

多对多:E1实体集中的一个实体和E2实体集中的多个实体有关系,反之亦然

扩充的E-R模型

1.依赖关系和弱实体集

在现实世界里,一些实体集之间存在依赖关系,例如班级学生这个实体,那么学生成绩就需要依赖于班级学生才能存在。这种依赖于另一个实体集的存在而存在的实体集称为弱实体集

2.子类和超类

进一步描述实体集中某些实体的不同特性,从该实体集中取出一部分实体构成一个或者多个实体集,这个新的实体集叫做原实体集的子类,原实体集叫做新实体集的超类。比如说学校职工是一个类(集合),教师,食堂工作人员,教辅人员,管理人员这些实体集合就是职工的子类,而职工就是教师,食堂工作人员,教辅人员,管理人员的超类。子类在E-R图上是用在实线上画圈表示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NqONc12h-1653311596819)(D:\My Blog\数据库\img\image-20220522170640523.png)]
3.聚集

将实体和联系集合在一块是聚集(将联系视为实体,和参与联系的实体一起组合新的实体集,称为聚集)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lTmVJmHX-1653311596820)(D:\My Blog\数据库\img\image-20220522171024778.png)]
4.范畴

由不同类型的实体组成的实体集称为范畴,设E1,E2,E3……En是n个不同的实体集,那么范畴就可以定义为:T⊆E1∪E2∪……∪En
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kmldIJI7-1653311596821)(D:\My Blog\数据库\img\image-20220522171703564.png)]

关系数据模型

属性和域

描述一个事物,抽取事物若干特征,称为属性;属性的取值范围(取值集合)称为域;

关系和元组

关系:所有属性域上的多元关系(所有具体的值)

元组:所有取值的一个值;

键:关系中某一属性(某几个属性)的值能唯一地决定其他所有的属性值(唯一元组),则该属性(属性组)为关系的候选键,简称键

码、超码、候选码、主属性、非主属性、主码的区别:

  • 能唯一确定元组的属性或者属性组称为超码(键);
  • 满足超码条件的基础上(能唯一确定元组的属性或者属性组),其任何真子集都不能唯一确定元组的值,那么我们就称这样的属性或者属性组为候选码(键),简称键或者码
  • 主属性是所有候选码的并集,包含所有的候选码;
  • 非主属性就是属性集去掉主属性后的属性;主码就是从候选码里选择一条作为一个或者一组唯一并且不能为空值的属性或者属性组;

一图理解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1uukPEXX-1653311596821)(D:\My Blog\数据库\img\image-20220316083438468.png)]

第三章❗️

数据库的三个模式与三个视图

其实模式与视图是相伴相生的,下面一图描述清楚里三模式与三视图的概念与图解:

External Schema外模式(外部视图)与Conceptual Schema概念模式(概念视图)是局部和全局上的关系;Internal Schema 内模式是存储视图,与数据库的物理结构相关,与存储介质相关,是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D1yTp0ol-1653311596822)(D:\My Blog\数据库\img\image-20220323082701177.png)]

两个数据独立性与两级映像

两级映像:

外部模式/概念模式(E-C映像)定义了各个外部模式与概念模式间的映像关系,这些映像定义通常在各自的外部模式(应用数据员)中加以描述

概念模式/内部模式(C-I映像)映像定义了数据库全局逻辑结构和存储结构之间的对应关系,这个映像定义通常内部模式中加以描述

两个数据的独立性:

逻辑数据独立性:当概念模式发生变化时,可以不改变外部模式(只需概念E-C Mapping E-C映像)从而无需改变应用程序

物理数据独立性:当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping C-I映像),从而不改变外部模式

数据库系统

  • 数据库的定义:DBMS提供一套**数据定义语言(DDL:Data Definition Language)**给用户用户使用DDL描述其所要建立的表的格式;DBMS依照用户的定义创建数据库及其中的Table
  • 数据库的操作:DBMS提供一套**数据操纵语言(DML:Data Manipulation Language)**给用户,如果用于要对数据库进行操作,用具就需要使用DML描述其操作需求,DBMS依照用户的操作描述实际对数据库进行操作。
  • 数据库的控制:DBMS提供一套**数据控制语言(DCL:Data Control Language)**给用户;用户使用DCL描述其对数据库所要实施的控制;DBMS依照拥挤的描述实际进行控制
  • 数据库的查询:DQL(Data Query Language) 数据查询语言,用来查询数据 常用语句:SELECT
  • 数据库的维护:DBMS提供一系列程序(使用程序/例行程序)给用户;在这些程序中提供了对数据库的各种功能;用户使用这些程序进行各种数据库的维护操作
    - [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6250Iinp-1653311596822)(D:\My Blog\数据库\img\image-20220323085041782.png)]
    - [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ELcDiHJL-1653311596823)(D:\My Blog\数据库\img\image-20220323085554393.png)]

DBS分类

集中式DSB

运行在单个计算机中

客户机/服务器式DBS

C/S结构的关键在于功能的分布,一些功能放在前端机(客户机)

分布式DBS(Distributed DBS)

使用通信网络连接起来的场地的集合,每个场地都可以拥有集中式DBS的计算机系统;

并行式DBS(parallel DBS)

数据库的数据量急剧提高,对于事务处理速度极快,集中式和C/S都不能应付这种问题;并行系统使用多个CPU和多个磁盘进行并行操作,提高数据处理和I/O速度;并行处理时,许多操作同时进行,而不是采用分时方法

数据库管理系统DBMS

主要功能:主要还是看课本P36-P39吧

  • 数据库定义
  • 数据库管理功能
  • 数据库的建立和维护功能
  • 数据组织、存储和管理功能
  • 通信功能

DBMS的组成:系统运行程序组、语言处理程序和服务性程序3部分程序模块组成

第四章

笛卡尔积

域:属性的取值集合

关系的产生是由笛卡尔积产生的,对于一些给定的域D1、D2、……Dn,那么这些域的笛卡尔积就是从每个域里选取一个元素组成一个新的域。D1×D2×……×Dn={(d1,d2,……dn)|di∈Di,i=1,2,……,n}

举例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YvhdJACn-1653311596824)(D:\My Blog\数据库\img\image-20220323093046243.png)]
关系的特点:

  • 一个关系表列出了n个域的所有笛卡尔积,而关系就是笛卡尔积的一个子集,具有实际的意义
  • 每一个列来自于同一个域,每一行就是一个元组;不同的列可以来来自同一个域;
  • 关系表中列位置和行位置可以互换
  • 关系表中理论上任意的两个元组不能相同
  • 关系的第一范式:属性不可再分,即属性里不能再分属性;如果第一范式都满足不了,何谈关系模式?

属性可再分就如下面这种

/*-------姓名--------*/
/*---姓---|---名字---*/

关系的性质:

  • 属性值是原子的,不可分解
  • 没有重复元组
  • 没有行序
  • 理论上没有列序,使用时可以有列序

键的种类点击这里

补充:

  • 外键:一个关系R中包含另一个关系S的主键所对应的属性集F,则称F为R的外键,并称S为参照关系,R为依赖关系
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K5hMeAh8-1653311596824)(D:\My Blog\数据库\img\image-20220323115648181.png)]

  • 全码就是一个关系模式全部的属性

关系模式、关系子模式和存储模式

在关系模型中,概念模式是关系模式的结合,外模式是关系子模式的集合,内模式是寸触摸时的集合

关系可以使用R(A1:D1,A2:D2,……,An:Dn)表示,可以简记为R(A1,A2,……,An),这种描述又被成为关系模式;

关系子模式是对用户所需数据的结构的描述,是从若干关系模式中抽取满足一定条件的数据;

存储模式描述了关系在物理设备上是如何存储的。关系存储时的基本组织方式是文件。由于关系模式有键,因此存储一个关系可以使用散列方法或索引方法实现。如果关系中元组数目较少(100以内),那么也可以使用堆文件实现;此外,还可以对任意的属性集建立辅助索引。

关系代数😹

/*-----有问题的地方-----*/
关系R和关系S进行关系演算的前提是二者必须存在相容性。
什么是相容性?
如果关系R和关系S存在相容性,当且仅当:
关系R和关系S的属性数目必须相同
对于任意的i,关系R的第i个属性的域必须和关系S的第i属性的域相同

假设R(A~1~,A~2~,……,A~n~)和S(B~1~,B~2~,……,B~m~)具有并相容性:n=m&&Domain(A~i~)=Domian(B~i~)

并操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fgvapYR6-1653311596825)(D:\My Blog\数据库\img\image-20220324163502002.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-usg5hCKL-1653311596825)(D:\My Blog\数据库\img\image-20220324163706403.png)]

广义笛卡尔积

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nr47R7F7-1653311596826)(D:\My Blog\数据库\img\image-20220324183315425.png)]

举例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e0rjNNTt-1653311596827)(D:\My Blog\数据库\img\image-20220324183350269.png)]

R×S=S×R

对于两个关系R、S,他们的属性个数分别为n和m,则笛卡尔积的R×S的个数就是n+m

元组的个数分别为x和y,那么笛卡尔积的R×S就是n×m

选择

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SwXblmIO-1653311596827)(D:\My Blog\数据库\img\image-20220324184031756.png)]
举例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-72keKB0T-1653311596828)(D:\My Blog\数据库\img\image-20220324184251408.png)]
选择操作从给定的关系中选出满足条件的行;运算符的优先顺序为:{括号>(大于小于等于等)>非[not]>交[and]>并[or]}🆘

运算符优先级理解:

Sage<20 or Sgae>18 and D#="3"    //这一种Sage<20这一个条件不受D#=“3”的限制
Sage>18 and D#="3"就可以让这个条件成立
(Sage<20 or Sage>18) and D#="3"  //这种就是严格意义上的18<Sage<20并且D#=“3”的条件

投影

投影得到的属性如果元组的属性值相同只保留一个
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r3s4hVOK-1653311596828)(D:\My Blog\数据库\img\image-20220324185508035.png)]
举例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6lyRDkpC-1653311596829)(D:\My Blog\数据库\img\image-20220324185556915.png)]
选择和投影操作组合运用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z45FA6Wt-1653311596829)(D:\My Blog\数据库\img\image-20220324185948827.png)]

在这里插入图片描述

θ \theta θ-连接

可以看做是笛卡尔积与选择操作的组合
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JvmAkCSR-1653311596831)(D:\My Blog\数据库\img\image-20220324192132483.png)]
举例:

例1:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J0YY6KQZ-1653311596831)(D:\My Blog\数据库\img\image-20220324192324028.png)]
例2:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lEwAssTw-1653311596832)(D:\My Blog\数据库\img\image-20220324192540393.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nCGOAAZ2-1653311596832)(D:\My Blog\数据库\img\image-20220324192605253.png)]
注意:在战神的讲解视频里对于 θ \theta θ-连接操作的时候,先使用笛卡尔积再进行选择得到 θ \theta θ-连接的结果,但是在引入连接操作之后,DBMS可直接进行连接操作,而不必先形成笛卡尔积

更名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E7yzcJyA-1653311596833)(D:\My Blog\数据库\img\image-20220324193011623.png)]

等值连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uq69F5WD-1653311596833)(D:\My Blog\数据库\img\image-20220324194325566.png)]
举例:
在这里插入图片描述
例2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DijCRsim-1653311596834)(D:\My Blog\数据库\img\image-20220324194446737.png)]

自然连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HueOrOED-1653311596835)(D:\My Blog\数据库\img\image-20220324194902087.png)]
举例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJShSVGq-1653311596835)(D:\My Blog\数据库\img\image-20220324194922102.png)]
例2:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0w1JAh2u-1653311596836)(D:\My Blog\数据库\img\image-20220324194951182.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RGTiBrm9-1653311596836)(D:\My Blog\数据库\img\image-20220324195010460.png)]

除法运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qm8fgh1u-1653311596837)(D:\My Blog\数据库\img\image-20220406084049707.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cFuP9s1P-1653311596837)(D:\My Blog\数据库\img\image-20220406084658417.png)]

应用关系代数操作训练

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6M2MhcoH-1653311596838)(D:\My Blog\数据库\img\image-20220406091851394.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w9JMkztw-1653311596838)(D:\My Blog\数据库\img\image-20220406093844520.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-izJRuKrQ-1653311596839)(D:\My Blog\数据库\img\image-20220406094819732.png)]

T i m e T o S a y G o o d B y e − − M r . Z h a n g TimeToSayGoodBye--Mr.Zhang TimeToSayGoodByeMr.Zhang

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明璐花生牛奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值