数据库系统概论复习笔记(二)关系数据库

数据库笔记汇总:数据库系统概论复习笔记(五)笔记汇总
教材:数据库系统概论(第五版)
出版社:高等教育出版社

第二章的思维导图(考试部分)
数据库系统概论复习笔记(二)关系数据库_第1张图片

关系数据库

关系数据库系统:是支持关系模型的数据库系统

关系模型:由关系数据结构、关系操作集合和关系完整性约束三部分组成

关系模型的基础:集合代数

2.1 关系数据结构及形式化定义

关系模型的数据结构(单一):关系

2.1.1 关系

相关概念

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

定义了列的取值范围

笛卡尔积

是所有可能的组合

  • 笛卡尔积可表示为一张二维表
  • 表中的每行对应一个元组,表中的每列对应一个域
元组

笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组

分量

笛卡尔积元素(d1,d2,…,dn)中的每一个di 叫作一个分量

关系

是笛卡尔积的一个有实际意义的有限子集

是元组的集合

D1×D2×…×Dn的有实际意义子集叫作在域D1,D2,…,Dn上的关系,常常表示为R(D1,D2,…,Dn)

  • R:关系名
  • n:关系的目或度
单元关系与二元关系
  • 当n=1时,称该关系为单元关系或一元关系

  • 当n=2时,称该关系为二元关系

候选码/候选键

关系中的某一组属性能唯一的标识一个元组,而它的子集不能

候选码可以有多个

主码

若一个关系中有多个候选码,则选定其中一个作为主码

主码只有一个,唯一标识一个元组

主属性

组成候选码的属性

非主属性/非码属性

不包含在任何侯选码中的属性

关系的三种类型
  • 基本关系(基本表/基表)
  • 查询表
  • 视图表(是虚表,不对应实际存储的数据)
基本关系的性质
  • 列是同质的。列中的分量是同类型数据,
  • 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名
  • 列的顺序无所谓,,列的次序可以任意交换
  • 任意两个元组的候选码不能相同
  • 行的顺序无所谓,行的次序可以任意交换
  • 分量必须取原子值。即每个分量都是不可分的数据项**(属性是不可分割的数据项)**

2.1.2 关系模式

是对关系的描述(有哪些属性,各个属性之间的依赖关系如何)

关系模式的表示

关系模式可以形式化地表示为:R(U,D,DOM,F)

  • R:关系名
  • U:组成该关系的属性名集合
  • D:U中属性所来自的域
  • DOM:属性向域的映象集合
  • F:属性间数据的依赖关系的集合

可以简记为R (U)或R (A1,A2,…,An)

  • R: 关系名
  • A1,A2,…,An : 属性名

如:学生(学号,姓名,年龄,性别,系名,年级)

关系模式与关系的区别

  • 关系模式是型;关系是值
  • 关系模式是静态的、稳定的;关系是动态的,随时间不断变化的。
  • 关系模式是对关系的描述;关系是关系模式在某一时刻的状态或内容

2.1.3 关系数据库

在一个给定的应用领域中,所有关系的集合构成一个关系数据库

关系数据库的型: 关系数据库模式,是对关系数据库的描述

关系数据库的值: 关系模式在某一时刻对应的关系的集合,通常称为关系数据库

2.1.4 关系模型的存储结构

  • 有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成

  • 有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理;

2.2 关系操作

  • 查询

选择、投影、连接、除、并、交、差

  • 数据更新

插入、删除、修改

集合操作方式:操作的对象和结果都是集合,也称为一次一集合的方式

2.3 关系的完整性

  • 实体完整性和参照完整性

是关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持

  • 用户定义的完整性

应用领域需要遵循的约束条件,体现了具体领域中的语义约束

实体完整性

若属性A是基本关系R的主属性,则属性A不能取空值
(主属性不能取空值)

参照完整性

若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

  • 或者取空值(F的每个属性值均为空值)
  • 或者等于S中某个元组的主码值
例子

学生(学号,姓名,性别,专业号,年龄,班长

  • “班长”是外码

  • 学生关系既是参照关系也是被参照关系

“班长”属性值(外码)可以取两类值:

  1. 空值,表示该学生所在班级尚未选出班长
  2. 非空值,该值必须是本关系中某个元组的学号值

外码

设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是R的外码。(F是R中一个或一组属性,但不是R的码,是S的主码,则F是R的外码)

  • 基本关系R称为参照关系
  • 基本关系S称为被参照关系或目标关系
注意:
  • 关系R和S不一定是不同的关系(如班长与学号的例子)
  • 目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上
  • 外码并不一定要与相应的主码同名(当外码与相应的主码属于不同关系时,往往取相同的名 字,以便于识别)
例子

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

“专业号”属性是学生关系的外码

专业关系是被参照关系,学生关系为参照关系

用户定义的完整性

关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能

2.4 关系代数

是一种抽象的查询语言,它用对关系的运算来表达查询

运算三大要素:

  • 运算对象(关系)
  • 运算符(集合运算符和专门的关系运算符)
  • 运算结果(关系)

2.4.1 传统的集合运算

R∪S = { t|t∈R∨t ∈S }

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

R -S = { t|t∈R∧t∉S }

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

R∩S = { t|t∈R∧t∈S }

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

笛卡尔积

无条件的头尾连接

  • R: n目关系,k1个元组
  • S: m目关系,k2个元组

R×S :

  • 列:(n+m)列元组的集合

元组的前n列是关系R的一个元组

元组的后m列是关系S的一个元组

  • 行:k1 × k2个元组

2.4.2 专门的关系运算

引入记号

分量:t[Ai]

设关系模式为R(A1,A2,…,An)

它的一个关系设为R

t∈R表示t是R的一个元组

t[Ai]则表示元组t中相应于属性Ai的一个分量

剩余属性组
元组的连接
象集

给定一个关系R(X,Z),X和Z为属性组

当t[X]=x时,x在R中的象集(Images Set)为:

Zx={t[Z]|t∈R,t[X]=x}

它表示R中属性组X上值为x的诸元组在Z上分量的集合

本质上是一次选择行的运算和一次选择列的运算

求x1在表A中的象集

  • 先选出所有x属性中x=x1的那些行
  • 然后选择出不包含x1的那些列

选择

从行的角度进行的运算

在关系R中选择满足给定条件的诸元组

σF® = {t|t∈R∧F(t)= ‘真’}

F:选择条件,是一个逻辑表达式,取值为“真”或“假”

F = X1θY1

θ表示比较运算符,它可以是>,≥,<,≤,=或<>

例:查询信息系(IS系)全体学生

σ Sdept = ‘IS’ (Student)

投影

主要是从列的角度进行运算

从R中选择出若干属性列组成新的关系

πA® = { t[A] | t∈R }

A:R中的属性列

例:查询学生的姓名和所在系

πSname,Sdept(Student)

连接

从行的角度进行运算
1
也称θ连接

从两个关系的笛卡尔积中选取属性间满足一定条件的元组

等值连接

θ为“=”时的θ连接

自然连接

自然连接还需要取消重复列,所以是同时从行和列的角度进行运算

是特殊的等值联结
在这里插入图片描述

  • 两个关系中进行比较的分量必须是相同的属性组
  • 在结果中把重复的属性列去掉
悬浮元组

两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组

外连接

如果把悬浮元组也保存在结果关系中,而在其他属性上填空值(Null),就叫做外连接

  • 左外连接只保留左边关系R中的悬浮元组
  • 右外连接只保留右边关系S中的悬浮元组

除运算

同时从行和列角度进行运算

对于表A和表B,求A÷B

  • 找出表B中与A属性相同的那些列
  • 求表A中各个不同x对应的象集
  • 找表A中的x,这个x要满足:表B是x的象集的子集

你可能感兴趣的:(数据库)