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

    xiaoxiao2025-04-11  26

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

    第二章的思维导图(考试部分)

    关系数据库

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

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

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

    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中某个元组的主码值
    例子

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

    “班长”是外码

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

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

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

    外码

    设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)

    连接

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

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

    等值连接

    θ为“=”时的θ连接

    自然连接

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

    是特殊的等值联结

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

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

    外连接

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

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

    除运算

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

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

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