当前位置:文档之家› 数据库系统概论(第四版)王珊、萨师煊 第二章知识点

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

第二章关系数据库关系数据结构及形式化定义按照数据模型的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上投影的集合。

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

关系演算元组关系演算语言ALPHAALPHA语言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP6条语句。

语句的基本格式是: 操作语句工作空间名(表达式):操作条件检索操作:用GET语句实现GET W(o)GET W(Student.Sno,Student.Sage):Student.Sdept=’IS’∧Student.Sage<20GET W(Student.Sno,Student.Sage):Student.Sdept=’CS’ DOWN Student.Sage带定额的检索GET W(3)( Student.Sno,S tudent.Sage):Student.Sdept=’I S’ DOWN Student.Sage用元组变量的检索,元组变量主要有两方面的用途:1.简化关系名;2.操作条件中使用量词时必须用元组变量。

RANGE Student XGET W(X.Sname):X.Sdept=’IS’用存在量词的检索:查询条件使用量词时必须用元组变量。

RANGE Course CXSC SCXGET W(Student.Sname):SCX CX(SCX.Sno=Student.Sno∧o=o∧CX.Pcno=’6’)用全称量词的检索:RANGE SC SCXGET W(Student.Sname):SCX(SCX.Sno≠Student.Sno∨o≠’1’)用蕴涵的检索RANGE Couse CXSC SCXSC SCYGET W(Student.Sno):CX(SCX(SCX,Sno=’95002’∧o=o)SCY(SCY.Sno=Student.Sno∧o=o))聚集函数,关系演算中提供了COUNT, TOTAL, MAX, MIN, AVG等聚集函数。

GET W(COUNT(Student.Sdept))GET W(AVG(Student.Sage):Student=’IS’)更新操作:修改操作:用UPDATE语句实现为修改数据而读取元组时必须使用HOLD语句,HOLD语句是带上并发控制的GET语句。

HOLD W (Stuednt.Sno, Student.Sdept):Student.Snp=’95007’MOVE ‘IS’ TO W.SdeptUPDATE W插入操作:用PUT语句实现MOVE ‘8’ TO oMOVE ‘计算机组织与结构’ TO ameMOVE ‘6’ To W.CpnoMOVE‘2’ To reditPUT W(Course) (把W中的元组插入制定关系Course中)删除操作:用DELETE语句实现HOLD W(Student):Stude nt.Sno=’95110’DELETE WExp:若要将学号95001改为95102先将95001的记录读取到工作空间中;然后删除这条记录;再用宿主语言MOVE在工作空间中建立新元组;用PUT语句把该元组存入指定的关系中。

元组关系演算域关系演算语言QBE域关系演算以元组变量的分量即域变量作为谓词变元的基本对象。

QBE是一种高度非过程化的基于屏幕表格的查询语言,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,而查询结果也是以表格形式显示。

简单操作简单查询:P.是操作符,表示打印,实际上是显示。

条件查询聚集函数,主要包括CNT,SUM,AVG,MAX,MIN等对查询结果排序:“AO(i).”或“DO(i).”,升序降序,i表示排序的优先级,i值越小优先级越高。

相关主题