前事不忘,后事之师,不忘国耻!

 注册  找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2076|回复: 0

关系模型和关系运算

[复制链接]

关系模型和关系运算

[复制链接]
ehxz

主题

0

回帖

7251

积分

管理员

积分
7251
2007-10-16 08:56:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
1. 基本概述
    关系数据库是应用关系数据模型来建立和处理数据库中的数据。这其中主要涉及几个重要的概念。

2. 关系
    关系实际上就可以看作是一个二维表。其中,表的每一列称为属性,并用属性名来标识。每个属性的取值范围,就是该属性所对应的值域。表的每一行称为元组。约定该表的行、列的次序的改变,不改变关系的语义性质。

对于一个关系,应该具备下列性质:

      -     关系中每一个属性值都是不可分解的;
      -     关系中不允许出现相同的元组;不让用户考虑元组的顺序;
      -     用户在使用时应考虑列的顺序。

3. 关键字(键)
      -     候选键
    关系中的某一属性或属性组,若它的值可以唯一标识关系中的一个元组而又不含有多余的属性,则称该属性或属性组为候选关键字。

      -     主键
    关系模式中用户正使用的候选关键字称为主关键字。

      -     外关键字
    若模式R中某属性集是其他模式的候选键,那么该属性集对模式R而言就是外关键字。

      -      超键
    关系模式中,为唯一标识元组的属性集称为超键。

4. 关系模型
    关系模型是目前最流行的一种数据模型,它是用二维表格结构表示实体集,关键码表示实体间的联系。
    关系模型遵循数据库的3级体系结构。

(1) 关系模式
    数据库的概念模式定义为关系模式的集合。每个关系模式就是记录类型。(2) 关系子模式
    这是对用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与模式中相应数据的联系,即指出子模式与模式之间的对应性。

(3) 关系存储模式(关系内模式)
    这是作为文件看待的,每个元组就是一个记录。
    关系模型有3个部分构成:

      -      数据结构    关系模型采用的数据结构是关系。

      -     关系操作    关系模型提供一组完备的关系运算,以支持对数据库的各种操作。关系运算的理论是关系代数和关系演算。

      -     关系的完整性
    在关系模型中,数据的约束条件通过三类完整性约束条件来描述。即:
实体完整性:要求关系中的元组的主键值不能是空值。
参照完整性:要求在关系中不允许引用不存在的实体。
用户定义的完整性:这是针对某一具体数据的约束条件,由应用环境决定,例如属性的值限制。

5. 关系代数
    关系查询语言根据其理论基础的不同分成两大类:

      -     关系代数语言:查询操作是以集合操作为基础的运算。
      -     关系演算语言:查询操作是以谓词演算为基础的运算。

    其中,关系代数是以集合代数为基础发展起来的,它是以关系为运算对象的一组高级运算的集合。关系代数的运算可分为两类:

    基本运算操作:并、差、笛卡尔积、投影和选择。
    组合运算操作:交、联接、自然联接和除。
    另外,还有几种扩充的关系代数操作:外联接(左外联接和右外联接)、外部并和半联接。

    以下对几种常用的关系运算作一个简单的介绍。

      -     基本运算

并:设有两个关系R和S具有相同的关系模式,关系R和S的并是由属于R或属于S的元组组成的集合,记为R∪S。形式定义如下:R∪S≡{t│t∈R∨t∈S}

差:设有两个关系R和S具有相同的关系模式,关系R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。形式定义如下:R-S≡{t│t∈R∧t ̄∈S}

笛卡儿积:设关系R和S元数分别为r和s。定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为R×S形式定义如下:R×S≡{t│t=<tr,ts>tr∈R∧ts∈S},若R有m个元组,S有n个元组,则R×S有(mn)个元组。

投影:该操作是对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。

选择:这个操作是根据某些条件对关系作水平分割,即选择符合条件的元组。条件可用命题公式F表示,F中的运算对象是常数(用引号括起来)或元组分量(属性名或列的序号)。运算符有算术比较运算符(≤,<,≥,>,=,≠)和逻辑运算符(∧,∨,┐)。δF(R)≡{t│t∈R∧F(t)= true},δ为选择运算符,δF(R)表示从R中挑选满足公式F的元组所构成的集合。常量用引号括起来,而属性号或属性名不要用引号括起来。

      -     组合运算

交:设有两个关系R和S具有相同的关系模式,关系R和S的交是由属于R又属于S的元组组成的集合,记为R∩S。形式定义如下:R∩S≡{t│t∈R∧t∈S}

联接(又称θ联接):从关系R和S的笛卡尔积中选取属性值之间满足一定条件的元组,记为:R│×│S≡δiθ(i+j)(R×S) ijθ,这里R的元数是r,θ是算术比较运算符。R│×│S操作是在R和S ijθ的笛卡尔积中挑选第i个分量和第(r+j)个分量满足θ运算的元组组成的新的关系。

自然联接:两个关系R和S的自然联接用R│×│S表示,具体计算过程如下:

A) 计算R×S

B)设R和S的公共属性是A1,A2,A3,..Ak.,挑选R×S中满足,A1=S.A1,R.A2,...,R.Ak=S.Ak的那些元组

C) 去掉S.A1,S.A2,..S.Ak,R│×│S可用下列形式定义:

R│×│S≡πi1i2,...,im(δR.A1=S.A1∧...∧R.Ak=S.Ak(R×S)。

除法:设两个关系R和S的元数分别为r和s(r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系,其中每个元组t与S中每个元组u组成的新元组必在关系R中。

R÷S的具体计算过程如下:

A) T=π1,2,..r-s(R)

B) W=(T×S)-R求出T×S中不在R的元组

C) V=π1,2,...r-s(W)

D) R÷S=T-V

因此R÷S≡π1,2,..r-s (R)- π1,2,..r-s ((π1,2,..r-s (R) ×S) -R )。
免责申明1、欢迎访问本站,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@dbabbs.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|DBA论坛中国 ( 鲁ICP备20017503号-2 )

GMT+8, 2024-12-22 12:17 , Processed in 0.052797 second(s), 11 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表