关系数据库——第二章

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

2.1.1  关系

1. 域(Domain):是一组具有相同数据类型的值的集合。

2. 笛卡尔积(Cartesian Product)

(1)定义:

  • 给定一组域D1D2Dn允许其中某些域是相同的。

    D1D2Dn笛卡尔积为:

    D1×D2×…×Dn =        

{(d1d2dn)|diÎDii12n

  •  所有域的所有取值的一个组合
  • 不能重复

(2)元组Tuple

  • 笛卡尔积中每一个元素(d1d2dn)叫作一个n元组(n-tuple)或简称元组
  • (张清玫,计算机专业,李勇)  (张清玫,计算机专业,刘晨等 都是元组   

(3)分量Component

  • 笛卡尔积元素(d1d2dn)中的每一个值di 叫作一个分量
  • 张清玫、计算机专业、李勇、刘晨等都是分量

(4)基数(Cardinal number

Dii12n)为有限集,其基数为mii12n),则D1×D2×…×Dn的基数M为:

(5)笛卡尔积的表示方法

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

例如给出3个域:

D1=导师集合SUPERVISOR={张清玫,刘逸}

D2=专业集合SPECIALITY={计算机专业,信息专业}

D3=研究生集合POSTGRADUATE={李勇,刘晨,王敏}

vD1D2D3的笛卡尔积为

vD1×D2×D3={

        (张清玫,计算机专业,李勇)(张清玫,计算机专业,刘晨)

        (张清玫,计算机专业,王敏)(张清玫,信息专业,李勇)

        (张清玫,信息专业,刘晨)(张清玫,信息专业,王敏)

        (刘逸,计算机专业,李勇)(刘逸,计算机专业,刘晨)

        (刘逸,计算机专业,王敏)(刘逸,信息专业,李勇)

        (刘逸,信息专业,刘晨)(刘逸,信息专业,王敏)

v基数为2×2×3=12

关系数据库——第二章_第1张图片

 3. 关系(Relation

 1 关系

D1×D2×…×Dn子集叫作在域D1D2Dn上的

关系,表示为

         RD1D2Dn

  • R关系名
  • n关系的Degree

 2元组:关系中的每个元素是关系中的元组,通常用t表示。

 (3单元关系与二元关系

n=1时,称该关系为单元关系(Unary relation一元关系                            

n=2时,称该关系为二元关系(Binary relation

 4关系的表示:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域

5属性

  • 关系中不同列可以对应相同的域
  • 为了加以区分,必须对每列起一个名字,称为属性(Attribute
  • n目关系必有n个属性

6

候选码(Candidate key)

    若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码

    简单的情况:候选码只包含一个属性

全码(All-key):  最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)

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

主属性

候选码的诸属性称为主属性(Prime attribute) 

不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute)

 7三类关系

基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示

查询表:查询结果对应的

视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

 8基本关系的性质

① 列是同质的(Homogeneous

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

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

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

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

2.1.2  关系模式

1.什么是关系模式

v关系模式(Relation Schema)是型

v关系是值

v关系模式是对关系的描述

2.定义关系模式

(1)关系模式可以形式化地表示为:

      RUDDOMF

  R              关系名

  U              组成该关系的属性名集合

  D              U中属性所来自的域

  DOM         属性向域的映象集合

  F               属性间数据的依赖关系的集合

(2)关系模式通常可以简记为

   R (U)    或    R (A1A2An)

R: 关系名

A1A2A: 属性名

注:域名及属性向域的映象常常直接说明为属性的类型、长度

 2.2  关系操作

(1)常用的关系操作

n查询操作:选择、投影、连接、除、并、差、交、笛卡尔积

  •    选择、投影、并、差、笛卡尔基是5种基本操作

n数据更新:插入、删除、修改

(2)关系代数语言:用对关系的运算来表达查询要求

(3)关系演算语言:用谓词来表达查询要求

(4)具有关系代数和关系演算双重特点的语言:代表:SQLStructured Query Language

2.3  关系的完整性

        2.3.1 实体完整性

  • 基本关系R主属性不能取空值
  • 空值就是“不知道”或“不存在”或“无意义”的值

     例:

选修(学号,课程号,成绩)

“学号、课程号”为主码

“学号”和“课程号”两个属性都不能取空值

2.3.2 参照完整性

1. 外码

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

v基本关系R参照关系Referencing  Relation

v基本关系S被参照关系Referenced Relation 或目标关系Target Relation

例:

选修关系的“学号” 与学生关系的主码“学号”相对应

选修关系的“课程号”与课程关系的主码“课程号”相对应

n“学号”和“课程号”是选修关系的外码

n学生关系和课程关系均为被参照关系

选修关系为参照关系

2. 参照完整性规则

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

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

2.3.3 用户定义的完整性

v针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求

 2.4  关系代数

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

关系代数运算符

运 算 符

含 义

集合

运算符

-

×

笛卡尔积

专门的

关系

运算符

σ

选择

π

投影

连接

÷

2.4.1 传统的集合运算

(1)并  RS

由属于R或属于S的元组组成(①RS具有相同的目n(即两个关系都有n个属性)②相应的属性取自同一个域)

          

(2)差 R - S

由属于R而不属于S的所有元组组成(①RS具有相同的目n(即两个关系都有n个属性)②相应的属性取自同一个域)

               

(3)交 RS

由既属于R又属于S的元组组成

(4)笛卡尔积

R: n目关系,k1个元组

S: m目关系,k2个元组

R×S

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

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

m列是关系S的一个元组

行:k1×k2个元组

实例: 

关系数据库——第二章_第2张图片    关系数据库——第二章_第3张图片      关系数据库——第二章_第4张图片

 2.4.2 专门的关系运算

引入:象集Zx

  给定一个关系RXZ),XZ为属性组。

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

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

举例: 关系数据库——第二章_第5张图片           关系数据库——第二章_第6张图片

1. 选择

选择运算符的含义:

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

         

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

             ②基本形式为:X1θY1(θ表示比较运算符,它可以是>,≥,<,≤,=或<>)

关系数据库——第二章_第7张图片

选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算

2. 投影:R中选择出若干属性列组成新的关系

           投影操作主要是从列的角度进行运算,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)

关系数据库——第二章_第8张图片

3. 连接(也称为θ连接)

(1)连接运算的含义

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

①AB分别为RS上度数相等且可比的属性组   ②θ:比较运算符  

连接运算从RS的广义笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组

(2)两类常用连接运算

Ⅰ  等值连接(equijoin) :θ为“=”的连接运算称为等值连接

从关系RS的广义笛卡尔积中选取AB属性值相等的那些元组,即等值连接为:

Ⅱ   自然连接Natural join (自然连接是一种特殊的等值连接)

Ø两个关系中进行比较的分量必须是相同的属性组

Ø在结果中把重复的属性列去掉

                           自然连接的含义:RS具有相同的属性组B

     

实例: 

一般连接: 

关系数据库——第二章_第9张图片     关系数据库——第二章_第10张图片   关系数据库——第二章_第11张图片   两个关系先做笛卡尔积,然后从中挑选出符合要求的元组。

等值连接和自然连接: 

关系数据库——第二章_第12张图片  关系数据库——第二章_第13张图片

 (3)悬浮元组(Dangling tuple

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

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

左外连接(LEFT OUTER JOINLEFT JOIN):只保留左边关系R中的悬浮元组

右外连接(RIGHT OUTER JOINRIGHT JOIN):只保留右边关系S中的悬浮元组

4. 除运算

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

RS的除运算得到一个新的关系P(X)PR中满足下列条件的元组在 X 属性列上的投影:

元组在X上分量值x的象集Yx包含SY上投影的集合,记作:

例1 :

关系数据库——第二章_第14张图片  关系数据库——第二章_第15张图片   关系数据库——第二章_第16张图片              解法: 关系数据库——第二章_第17张图片

    R中A为x,BC为y      S中BC为y,D为z 

例2: 

关系数据库——第二章_第18张图片   (R中的AB为x,CD为y) 关系数据库——第二章_第19张图片 (S中的CD为y,无z)   关系数据库——第二章_第20张图片

实际上就是取出R中y等于S中的y的对应的R的x值;

2.5  小结

集合运算实现的数据库操作:

(1) 数据记录的添加和插入:关系并运算
  

(2) 数据记录的删除:关系差运算

(3) 数据记录的修改操作:先删除后插入→关         系差运算+关系并运算

(4) 关系的连接:关系的笛卡儿积
 

 

集集合运算实现的数据库操作合运算实现的数据库操作 

集集合运算实现的数据库操作合运算实现的数据库操作 

集合运算实现的数据库操作 

集合运算集合运算实现的数据库操作实现的数据库操作

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