美文网首页
软件设计师考试 | 第九章 数据库技术基础 | 关系代数

软件设计师考试 | 第九章 数据库技术基础 | 关系代数

作者: Levi_moon | 来源:发表于2021-05-29 22:57 被阅读0次

    (一)关系数据库的基本概念

    1. 属性和域

    在现实世界中,要描述一个事物常常取若干特征来表示,这些特征称为属性(Attribute)。例如,用学号、姓名、性别等属性来描述学生。

    每个属性的取值范围对应一个值的集合,称为该属性的域(Domain)。例如,学号的域是六位整型数,姓名的域是十位字符等。

    在关系数据模型中,通常对域加了一个限制,所有的域都应是原子数据(Atomic Data)。例如,整数、字符串是原子数据,而集合、记录等是非原子数据。

    2. 笛卡尔积与关系

    笛卡尔积:

    笛卡尔乘积是指在数学中,两个集合XY的笛卡尔积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。

    假设集合A={a, b},集合B={0, 1, 2},
    则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
    

    类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则AB的笛卡尔积表示所有可能的选课情况。A表示所有声母的集合,B表示所有韵母的集合,那么AB的笛卡尔积就为所有可能的汉字全拼。

    A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做AB的笛卡尔积,记作AxB.

    笛卡尔积的符号化为:

    A×B={(x,y)|x∈A∧y∈B}
    
    例如,A={a,b}, B={0,1,2},
    则
    A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}
    B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}
    

    关系:
    笛卡尔积的子集称为在域上的关系。

    例如,
    D₁XD₂X···XDiX···XDn的子集称为在域D₁,D₂,···,Di,···,Dn上的关系,
    记为R(D₁,D₂,···,Di,···,Dn),称关系R为n元关系。
    

    3. 关系的相关名词

    • 目或度
      R表示关系的名字,n表示关系的目或度。
    • 候选码
      若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为候选码。
    • 主码
      若一个关系有多个候选码,则选定其中一个为主码。
    • 主属性
      包含在任何候选码中的诸属性称为主属性。
      不包含在任何候选码中的属性称为非码属性。
    • 外码
      如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外码。
    • 全码
      关系模型的所有属性组是这个关系模式的候选码,称为全码。

    4. 关系的3种类型

    • 基本关系
      又称为基本表或基表,它是实际存在的表,是实际存储数据的逻辑表示。
    • 查询表
      是查询结果对应的表。
    • 视图表
      是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表。

    5. 关系数据库模式

    在数据库中要区分型和值。关系数据库中的型也称为关系数据库模式,是关系数据库结构的描述。它包括若干域的定义以及在这些域上定义的若干关系模式。实际上,关系的概念对应于程序设计语言中变量的概念,而关系模式对应于程序设计语言中类型定义的概念。

    关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常称之为关系数据库。

    关系的描述称之为关系模式,可以形式化地表示为:R(U,D,dom,F)
    其中,R表示关系名;U是组成该关系的属性名集合;D是属性的域;dom是属性向域的映像集合;F为属性间数据的依赖关系集合。

    通常将关系模式简记为:

    R(U)或R(A₁,A₂,A₃,···,An)
    

    其中,R为关系名,A₁,A₂,A₃,···,An为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。

    通常在关系模式主属性上加下划线表示该属性为主码属性。

    6. 完整性约束

    完整性规则防止的是对数据的意外破坏。

    关系的完整性分为:

    • 实体完整性
      规定基本关系R的主属性A不能取空值。
    • 参照完整性
      现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体集间的联系是用关系来描述的,这样自然就存在关系与关系间的引用。
    • 用户定义完整性
      用户定义完整性就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。

    7. 关系运算

    关系操作的特点的操作对象和操作结果都是集合,而非关系数据模型的数据操作方式则为一次一个记录的方式。

    关系数据语言分为三类:

    • 关系代数语言
    • 关系演算语言
    • 具有关系代数和关系演算双重特点的语言

    (二)5种基本的关系代数运算

    1. 并(Union)

    关系RS具有相同的关系模式,即RS的元素相同(结构相同)。关系RS的并是由属于R或属于S的元组构成的集合,记作R∪S,其形式定义如下:

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

    式中t为元组变量。

    2. 差(Difference)

    关系RS具有相同的关系模式,关系RS的差是由属于R但不属于S的元组构成的集合,记作R-S,其形式定义如下:

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

    3. 广义笛卡尔积(Extended Cartesian Product)

    两个元数分别为n目和m目的关系RS的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组,记作RXS,其形式定义如下:

    RXS={t|t=<t^n,t^m>∧t^n∈R∧t^m∈S}
    

    4. 投影(Projection)

    投影运算是从关系的垂直方向进行运算,在关系R中选出若干属性列A组成新的关系,记作πΑ(R),其形式定义如下:

    πΑ(R)={t[A]|t∈R}
    

    5. 选择(Selection)

    选择运算是从关系的水平方向进行运算,是从关系R中选择满足给定条件的诸元组,记作σF(R),其形式定义如下:

    σF(R)={t|t∈R∧F(t)=true}
    

    其中,F中的运算对象是属性名(或列的序号)或常数,运算符、算术比较符(<、<=、>、>=、≠)和逻辑运算符(∧、∨、¬)。


    (三)扩展的关系代数运算

    1. 交(Intersection)

    关系RS具有相同的关系模式,关系RS的交是由属于R同时又属于S的元组构成的集合,记作R∩S,其形式如下:

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

    显然,R∩S=R-(R-S),或R∩S=S-(S-R)

    2. 连接(Join)

    连接分为以下三种:

    • θ连接
    • 等值连接
    • 自然连接

    3. 除(Division)

    除运算是同时从关系的水平方向和垂直方向进行运算。

    给定关系R(X,Y)S(Y,Z)X,Y,Z为属性组。R÷S应当满足元组在X上的分量值x的象集Yx包含关系S在属性组Y上投影的集合。其形式如下:

    R÷S={t^n[X]|t^n∈R∧πy(S)⊆Yx}
    

    其中,YxxR中的象集,x=t^n[X],且R÷S的结果集的属性组为X

    4. 广义投影(Generalized Projection)

    广义投影运算允许在投影列表中使用算术运算,实现了对投影运算的扩充。

    5. 外连接(Outer Join)

    外连接运算是连接运算的扩展,可以处理由于连接运算而缺失的信息。

    外连接运算有以下三种:

    • 左外连接
      取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值充填所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中。
    • 右外连接
      取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值填充所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中。
    • 全外连接
      完成左外连接和右外连接的操作。即填充左侧关系中所有与右侧关系中任一元组都不匹配的元组,并填充右侧关系中所有与左侧关系中任一元组都不匹配的元组,将产生的新元组加入自然连接的结果中。

    相关文章

      网友评论

          本文标题:软件设计师考试 | 第九章 数据库技术基础 | 关系代数

          本文链接:https://www.haomeiwen.com/subject/hjzqrltx.html