数据库系统概论(第四版)王珊、萨师煊 第二章知识点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章关系数据库

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

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

关系

在用户看来,关系模型中的数据的逻辑结构是一张扁平的二维表。

关系模型是建立在集合代数的基础上的,从集合论角度给出关系数据结构的形式化定义为:

1、域

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

2、笛卡尔积

笛卡尔积是域上面的一种集合运算。

定义2.2 给定一组域D1,D2,…,D n,这些域中可以是相同的域。D1,D2,…,D n的笛卡尔积为

D1×D2×…×D n={(d1,d2,…,d n)∣di∈Di,i=1,2,…,n}

其中每一个元素(d1,d2,…,d n)叫做一个n元组或简称元组。

元组中的每一个值d i叫作一个分量。

若D i(i=1,2,…,n)为有限集,其基数为m i(i=1,2,…,n),则D1×D2×…×D n的基数M为

笛卡尔积可表示为一个二维表。表中每行对应一个元组,表中每一列的值来自一个域。

3、关系

定义2.3 D1×D2×…×D n的子集叫作在域D1×D2×…×D n上的关系,表示为R(D1,D2,…,D n)

这里R表示关系的名字,n是关系的目或度。

当n=1时,为单元关系或一元关系;当n=2时为二元关系。

关系是笛卡尔积的有限子集,表的每列对应一个域。由于列可以相同,为了加以区分,必须对每列起

一个名字,称为属性。

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

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

候选码的诸属性成为主属性。不包含在任何候选码中的属性成为非主属性或非码属性。

在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。

关系可以由三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。

基本关系具有6条性质:

列是同质的;

不同的列可以出自同一个域,不同的属性要给与不同的属性名;

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

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

行的顺序无所谓;

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

关系模式

定义2.4 关系的描述称为关系模式。它可以形式化地表示为R(U,D,DOM,F)

其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为

属性向域的映像集合,F为属性间数据的依赖关系集合。

关系模式通常可以简记为R(U)或R(A1,A2,…,A n),其中R为关系名,A1,A2,…,A n为属性名。

关系数据库

关系数据库也有型和值之分。关系数据库的型也成为关系数据库模式,是对关系数据库的描述。关系数

据库模式包括:

若干域的定义;

在这些域上定义的若干关系模式。

关系操作

基本的关系操作

关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。

查询操作又可分为:选择、投影、连接、除、并、差、交、笛卡尔积等。

其中选择(σ)、投影(π)、并(∪)、差(-)、笛卡尔积(×)是5种基本操作。

关系操作的特点是集合操作方式

关系数据语言的分类

关系代数是用对关系的运算来表达查询要求的。

关系演算式用谓词来表达查询要求的。

关系数据语言可以分为三类:

关系代数语言例如ISBL

元组关系演算语言例如APLHA、QUEL

关系数据语言关系演算语言

域关系演算语言例如QBE

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

这些关系数据语言的共同特点是:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能

够嵌入高级语言中使用。

关系的完整性

关系的三类完整性约束

关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

实体完整性和参照完整性被称作是关系的两个不变性,由关系系统自动支持。

实体完整性

规则2.1 实体完整性规则若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。

参照完整性

定义2.5 设F是基本关系R的一个或一组属性,但不是关系R的码。K s是基本关系S的主码。如果F 与K s相对应,则称F是R的外码。并称基本关系R为参照关系,基本关系S为被参照关系或

目标关系。关系R和S不一定是不同的关系。

同一关系内部属性之间也可能存在引用关系;

外码并不一定要与相应的主码同名。

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

或者取空值(F的每个属性值均为空值);

或者等于S中某个元组的主码值。

用户定义的完整性

关系代数

关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。

传统的集合运算将关系看作元组的集合,运算是从关系的“水平”方向进行。

专门的关系运算不仅涉及行而且涉及列。

比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。

传统的集合运算

传统的集合运算是二目运算,包括并、差、交、笛卡尔积四种运算。

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

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

R∩S ={t︱t∈R∧t∈S}=R-(R-S)

R×S={︱t r∈R∧t s∈S}

专门的关系运算

专门的关系运算包括选择、投影、链接、除运算等。

选择:又称为限制,它是在关系R中选择满足给定条件的诸元组,记作σF(R)={ t︱t∈R∧F(t)=’真’} 其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。

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

Exp:σSdept=’IS’(Student)

投影:关系R上的投影是从R中选择出若干属性列组成新的关系。记作πA(R)={t[A] ︱t∈R} 其中A为R中的属性列。

投影操作时从列的角度进行的运算。

投影操作不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后可

能出现重复行。

Exp:πSname,Sdept(Student)

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

连接运算中有两种最为重要最为常用的连接:

等值连接:即θ为“=”的连接运算

自然连接:要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列

去掉。

一般的连接是从行的角度进行运算。自然连接是同时从行和列的角度进行运算。

在两个关系R和S作自然连接时,关系R中某些元组有可能在关系S中不存在公共属性上值相等

的元组,从而造成这些元组在操作时被舍弃了。如果把被舍弃的元组也保存在结果关系中,而在

其他属性上填空值(NULL),那么这种连接就叫做外连接。

如果只把左边关系R中要舍弃的元组保留就叫做左外连接,如果只把右边关系S中舍弃的元组保

留就叫作右外连接。

除运算:给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。R中的Y与S中的Y可以由不同的属性名,但必须出自相同的域集。

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

元组在X上分量值x的象集Y x包含S在Y上投影的集合。

除操作是同时从行和列的角度进行运算。

关系演算

元组关系演算语言ALPHA

ALPHA语言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP6条语句。

相关文档
最新文档