关系 数据库 六, 关系代数 关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。 1 ,传统的集合" name="description" />

数据库学习笔记(四)

发表于:2007-05-25来源:作者:点击数: 标签:数据库笔记宋体学习
MI LY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> 关系 数据库 六, 关系代数 关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。 1 ,传统的集合
MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">

关系数据库

六, 关系代数

关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。

1,传统的集合运算

(union),差(difference),交(intersection),广义笛卡儿(extended Cartesian product)

      2,专门的关系运算

规定的几个记号。

设关系模式为R(A1,A2, ,AN)。它的一个关系设为RtR表示tR的一个元组。t[Ai]则表示元组t中相应于属性Ai上的一个分量。

A={Ai1,Ai2, ,Aik},其中Ai1,Ai2, ,AikA1,A2, ,AN中的一部分,则A称为属性列或域列。t[A]=(t[Ai1],t[Ai2],,t[Aik])表示元组t在属性列A上诸分量的集合。则表示(A1,A2, ,AN)中去掉{Ai1,Ai2, ,Aik}后剩余的属性组。

Rn目关系,Sm目关系。trRtsStr ts称为元组的连接。它是一个nm列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。

给定一个关系R(XZ)XZ为属性组。定义当t[X]=x时,xR中的象集为:

Zx={t[Z] | tRt[X]=x}

3,下面给出关系运算的定义:

1.选择(Selection)

σFR)={ t | tRF(t)=’真’}

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

2.投影(Projection)

关系R上的投影使从R中选择出若干属性列组成新的关系。记做:

πAR)={ t[A] | tR }

投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。

3.连接(Join)

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

            连接运算中由两种常用的连接,一种是等值连接,一种是自然连接。

1,为“=”的连接运算称为等值连接。它是从关系RS的广义笛卡儿积中选取AB属性值相等的那些元组,集等值连接为:

2,自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

4.除(Division)

给定关系RXY)和SYZ),其中XYZ为属性组。R中的YS中的Y可以有不同的属性名,但必须出自相同的域集。RS的除运算得到一个新的关系PX),PR中满足下列条件的元组在X属性列上的投影,元组在X上分量值x的象集Yx包含SY上投影的集合。除操作是同时从行和列的角度进行运算。

七,关系演算

1,  元素关系演算语言ALPHA

ALPHA语言主要有GETPUTHOLDUPDATEDELETEDROP六条语句,语句的基本格式是:
操作语句  工作空间名(表达式): 操作条件

表达式用于指定语句的操作对象,它可以是关系名或属性名,一条语句可以同时操作多个关系或多个属性。操作条件是一个逻辑表达式,用于将操作对象限定在满足条件的元组中,操作条件可以为空。

1,  GET检索操作

2,  UPDATE更新操作,步骤如下:

·首先用HOLD语句将要修改的元组从数据库中读到工作空间中
·
然后用宿主语言修改工作空间中元组的属性

·
最后用UPDATE语句将修改后的元组送回数据库中

3,  PUT插入操作,步骤如下:

    ·首先用宿主语言在工作空间中建立新元组
·
然后用PUT语句把该元组存入指定的关系中

4,  HOLD带着并发控制的GET语句

5,  DELETE删除操作

    ·HOLD语句把要删除的元组从数据库中读到工作空间中
·
DELETE语句删除该元组

2,  域关系演算QBEQuery  By  Example

    最突出的特点是它的操作方式。它是一种高度非过程化的基于屏幕表格的查询语言,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,而查询结果也是以表格形式显示,因此非常直观,易学易用。

八,关系数据库管理系统:

关系数据库管理系统简称为关系系统,是指支持关系模型的系统。一个数据库管理系统可定义为关系系统,当且仅当它至少支持:

1,  关系数据库(即关系数据结构)。也就是说,从用户观点看,数据库是由表构成的,并且系统中只有表这种结构。

2,  支持选择、投影和(自然)连接运算。对这些运算不要求用户定义任何物理存取路径。

按照E.F.Codd的思想,依据关系系统支持关系模型的程度不同,可以把关系系统分为四类:

       1,表式系统。

        这类系统仅支持关系数据结构(即表),不支持集合级的操作。表式系统实际上不能算关系系统。倒排表列(Inverted list)系统就属于这一类。

        2,(最小)关系系统。

  即上面定义的关系系统,它支持关系数据结构和选择、投影、连接三种关系操作。许多微机关系系统如FoxBASEFoxPro等就属于这一类。

        3,关系上完备的系统。

            这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。目前许多中大型关系系统如DB2 ORACLE等就属于这一类。

        4,全关系系统。

            这类系统支持关系模型的所有特征,特别是数据结构中域的概念,实体完整性和参照完整性。虽然DB2 ORACLE等系统已经接近这个目标,但到目前为止尚没有一个系统是全关系系统。

           

尽管不同的关系系统对关系模型的支持程度不同,但它们的体系结构都符合三级模式结构,提供了模式、外模式、内模式以及模式与外模式之间的映象、模式与内模式之间的映象。表就是关系系统的模式,在表上面可以定义视图,这就是关系系统的外模式,关系系统通常都提供了定义视图即外模式的语句。内模式则是实际存储在磁盘或磁带上的文件。

   未完待续。

 

小康

Xiaokang1949@hotmail.com

2004-2-29

原文转自:http://www.ltesting.net