第2章 关系数据库——复习笔记

简介: 第2章 关系数据库——复习笔记

第2章 关系数据库


复习笔记


01一、关系数据结构及形式化定义


关系数据库系统是支持关系模型的数据库系统。按照数据模型的三个要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。


01关系


关系模型的数据结构只包含单一的数据结构-关系,能够描述出现实世界的实体以及实体问的各种联系。在关系模型中,现实世界的实体以及实体间的各种联系均用单一的结构类型,即关系来表示。

1)域(domain

域是一组具有相同数据类型的值的集合。

2)笛卡儿积(cartesian product

笛卡儿积是域上的一种集合运算。D1D2···Dn的笛卡儿积为D1×D2×···×Dn={d1d2···dn|diDii=12···n},其中每一个元素(d1d2···dn)是一个n元组(n-tuple)或简称元组(Tuple)。笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每一列的值来自一个域。

3)关系(relation

D1×D2×···×Dn的子集叫作在域D1D2···Dn上的关系,表示为RD1D2···Dn)。R表示关系的名字,n是关系的目或度(Degree)。关系中的每个元素是关系中的元组,通常用t表示。关系是笛卡儿积的有限子集,所以关系也是一张二维表,表的每行对应一个元组,表的每列对应一个域。若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(candidate key)。若一个关系有多个候选码,则选定其中一个为主码(primary key)。候选码的诸属性称为主属性(prime attribute)。不包含在任何候选码中的属性称为非主属性(non.prime attribute)或非码属性(non——key attribute)。

基本关系的性质为:

①列是同质的(homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。

②不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。

③列的顺序无所谓,即列的次序可以任意交换。

④任意两个元组的候选码不能取相同的值。

⑤行的顺序无所谓,即行的次序可以任意交换。

⑥分量必须取原子值,即每一个分量都必须是不可分的数据项。


02关系模式


关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述。关系的描述称为关系模式(relation schema),它可以形式化地表示为RUDDOMF),其中R为关系名,U为组成该关系的属性名集合,D U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。


03关系数据库


在关系模型中,实体以及实体间的联系都是用关系来表示的。在一个给定的应用领域中,所有关系的集合构成一个关系数据库。关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。


04关系模型的存储结构


在关系数据库的物理组织中,有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成;有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。



02二、关系操作


01基本的关系操作


1)查询(query)操作

关系的查询表达能力很强,是关系操作中最主要的部分。查询操作又可以分为选择(select)、投影(project)、连接(join)、除(divide)、并(union)、差(except)、交(intersection)、笛卡儿积(Cartesian Product)等。

2)插入(insert)、删除(delete)、修改(update)操作。


02关系数据语言的分类


关系数据语言可以分为三类,如图2-1所示。

e56cee4d01cad61e6f8285ea9c538071_640_wxfrom=5&wx_lazy=1&wx_co=1.png2-1 关系数据语言分类



03三、关系的完整性


关系模型的完整性规则是对关系的某种约束条件。关系模型中有三类完整性约束:实体完整性(entity integrity)、参照完整性(referential integrity) 和用户定义的完整性(user-defined integnty)。


01实体完整性


1)定义

若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(null value)。所谓空值就是不知道""不存在""无意义"的值。如果主码由若干属性组成,则所有这些主属性都不能取空值。

2)规则说明

①实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。

②现实世界中的实体是可区分的,即它们具有某种唯一性标识。

③以主码作为唯一性标识。

④主属性不能取空值。


02参照完整性


1)定义

F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果FKs相对应,则称FR的外码(foreign key),并称基本关系R为参照关系(referencing relation),基本关系S为被参照关系(referenced relation)或目标关系(target relation)。

2)参照完整性规则

参照完整性规则就是定义外码与主码之间的引用规则。若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系RS不一定是不同的关系),则对于R中每个元组在F上的值必须取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。


03用户定义的完整性


用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能。


04四、关系代数


关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。运算的三大要素为:运算对象、运算符、运算结果。关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括两类:集合运算符和专门的关系运算符。

01传统的集合运算


设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,t是元组变量,tR表示tR的一个元组。

1)并(Union

关系R与关系S的并记作:

其结果仍为n目关系,由属于R或属于S的元组组成。

2)差(Except

关系R与关系S的差记作:

其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。

3)交(Intersection

关系R与关系S的交记作:

其结果关系仍为n目关系,由既属于R又属于S的元组组成。

4)笛卡尔积(Cartesian Product

两个分别为n目和m目的关系RS的笛卡尔积是一个n+m列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若Rk1个元组,Sk2个元组,则关系R和关系S的笛卡尔积有k1k2个元组。记作:


02专门的关系运算


1)选择(selection

选择又称为限制(restriction)。它是在关系R中选择满足给定条件的诸元组,记作:

fe45104758fe6b90298e505cb5feb5b0_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

其中F表示选择条件,它是一个逻辑表达式,取逻辑值""""。逻辑表达式F的基本形式为:b8cd5ce45e6b44976ae973d79171cdd6_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

其中表示比较运算符,它可以是><=<>XY,等是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替。

2)投影(projection

关系R上的投影是从R中选择出若干属性列组成新的关系。记作:

2878beaa3cb3f559c6163ed61c236264_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

其中AR中的属性列。投影操作是从列的角度进行的运算。

3)连接(join

连接也称为连接。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:

image.png

其中,AB分别为RS上列数相等且可比的属性组,A是比较运算符。连接运算从RS的笛卡儿积RxS中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系的元组。"="的连接运算称为等值连接。它是从关系RS的广义笛卡儿积中选取AB属性值相等的那些元组,即等值连接为:

0513602a542a8239e5546f348eb71238_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。即若RS中具有相同的属性组BURS的全体属性集合,则自然连接可记作:

13a653cc7c05baf64e217c56f8d4ec24_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

4)除运算(division

给定关系RXY)和SYZ),其中XYZ为属性组。R中的YS中的Y可以有不同的属性名,但必须出自相同的域集。

RS的除运算得到一个新的关系PX),PR中满足下列条件的元组在X属性列上的投影:元组在X 上分量值x的象集Yx包含SY上投影的集合。记作:

33ac553a8e1a860a0a0a44b770f49d54_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

其中YxxR中的象集,a3851a3ae6aa7fb096f722e47b14aeb5_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg


相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
7月前
|
Go 数据库
数据库的实现【笔记】
数据库的实现【笔记】
|
7月前
|
数据库
数据库设计【笔记】
数据库设计【笔记】
|
2月前
|
SQL NoSQL 数据库
Cassandra数据库与Cql实战笔记
Cassandra数据库与Cql实战笔记
42 1
Cassandra数据库与Cql实战笔记
|
3月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
3月前
|
前端开发 应用服务中间件 API
|
6月前
|
SQL 安全 API
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
|
5月前
数据库系统工程师考点笔记
数据库系统工程师考点笔记
479 0
|
5月前
|
编解码 算法 vr&ar
软考中级之数据库系统工程师笔记总结(六)多媒体基础
软考中级之数据库系统工程师笔记总结(六)多媒体基础
36 0
|
5月前
|
网络协议 安全 网络安全
软考中级之数据库系统工程师笔记总结(五)网络基础
软考中级之数据库系统工程师笔记总结(五)网络基础
50 0
|
5月前
|
人工智能 数据管理 Java
软考中级之数据库系统工程师笔记总结(四)程序设计基础
软考中级之数据库系统工程师笔记总结(四)程序设计基础
36 0