关系模型与关系代数——数据库原理 总结2

2.1 关系模型

关系数据结构

关系模型的相关概念

列就是数据项 或 字段 或 属性attribute

列的个数称为关系的元或度

列的取值范围称为值域,简称域domain

行也称为元组tuple或记录record

行中的一个属性值称为分量component

行的个数称为关系的基数cardinality

域:是一组具有相同数据类型的值的集合。

笛卡尔积:给定一组域D1, D2, …, Dn,它们之中可以有相同的域。D1, D2, …, Dn的笛卡尔积为:

     D1×D2×…×Dn = {(d1, d2, …, dn)∣di∈Di }     (“每列来自一个域”)

笛卡尔积例子:

码(重点)

  • 候选码 (candidate key):在码中不能去除任何一个属性,否则它就不再是这个关系的码。(最小超码

        主属性:包含在任何一个候选码中的属性称为主属性,反之为非主属性

关系的最基本要求

  • 关系中的每个属性的域必须是原子的,即域中的每个值都是不可再分的一个完整单元。
  • 关系中的每个元组都是可区分的,即存在唯一标识不同元组的属性(集)——码。

关系模式形式化:r(U, D, DOM, F) ,简记为:r(U) 或 r(A1, A2, …, An)

        r为关系名

        U为组成该关系的属性名的集合{A1, A2, …, An}

        D为属性集U中所有属性所来自的域的集合

        DOM为属性向域的映像集合,(描述类型、长度等)

        F为属性间数据的依赖关系集合 (即体现各属性取值之间的“关联”性)。

2.2 关系完整性约束

数据完整性:数据的正确性、合理性、相容性

完整性约束条件:实体完整性、参照完整性、用户定义的完整性

1. 实体完整性

  • 主码属性不能为空值null
  • 如果主码是由若干个属性的集合构成,则要求构成主码的每一个属性的值都不能取空值。

2. 参照完整性

  • 外码属性要么为null,要么为参照的主码值

3. 用户自定义完整性

  • 任何关系数据库管理系统都应该支持实体完整性参照完整性
  • 用户定义完整性是针对某一具体应用要求来定义的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

2.3 关系操作

关系操作的特点是集合操作方式,即操作的对象和结果都是集合。

二维表的操作:

  • 更新:添加、修改、删除
  • 查询:选择、投影、并、差、笛卡尔积(5种基础操作);连接、除、交

关系操作可用两种方式来表示——代数方式和逻辑方式。

关系代数是用代数方式表达的关系查询语言。

关系演算是用逻辑方式表达的关系查询语言。

对于关系代数、关系演算均是抽象的查询语言,在表达能力上是完全等价的。

2.4 关系代数

关系代数

  • 关系代数是一种抽象查询语言,用关系代数运算来表达查询。
  • 关系代数运算:运算对象是关系,运算结果也是关系。
  • 基本的关系代数运算有选择、投影、集合并、集合差、笛卡尔积和更名等。

一、传统的集合运算

前提假设:关系r和关系s具有相同的n个属性,且相应的属性取自同一个域,即两个关系的模式或结构相同。t是元组变量,t∈r表示t是r的一个元组。

  • 并运算:关系r与关系s的并记作 :r\cup s = \{ t | t\in r \vee t\in s \}

其结果关系仍为n目关系,由属于r或属于s的所有元组组成

  • :关系r与关系s的差:r- s = \{ t | t\in r \wedge t \notin s \}

其结果关系仍为n目关系,由属于r而不属于s的所有元组组成

  • :关系r与关系s的交记作:r \cap s = \{ t | t\in r \wedge t\in s \}

其结果关系仍为n目关系,由既属于r又属于s的所有元组组成。关系的交可以通过差来表达,即rs = r-(r-s)。  “减去特有部分”

笛卡尔积

  • 两个分别为n目和m目的关系rs的笛卡尔积是一个n+m目元组的集合。     
  • 若关系rkr个元组,关系sks个元组,则关系rs的笛卡尔积有kr×ks个元组。记作 : r×s = { tr·ts∣trÎr∧tsÎs }
  • 元组的前n列是关系r的一个元组,后m列是关系s的一个元组。

二、专门的关系运算

专门的关系运算:选择、投影、连接、除

  • 选择

选择操作是在关系r中查找满足给定谓词(即选择条件)的所有元组

记作: \sigma _p(r) = \{t | t\in r\wedge P(t) \}

P表示谓词(即选择条件),它是一个逻辑表达式,取值为“真”或“假”。

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

  • 投影:

关系是一个二维表,对它的操作可以从水平(行)的角度进行,即选择操作;也可以从纵向(列)的角度进行,即投影操作

关系r上的投影是从r中选择出若干属性列组成新的关系。记作:\Pi _A(r) = \{t[A] | t\in r\}

A为关系r的属性集合。

  • 连接:

连接运算中有两种最常用、最重要的连接,一种是等值连接(equijoin),另一种是自然连接(natural join)。

1. 等值连接

θ为等值比较谓词的连接运算。记为A op B,其中AB分别为关系rs中的属性个数相等且可比的连接属性集,op为比较运算符。

θ连接是从两个关系的笛卡尔积中选取连接属性间满足谓词θ的所有元组

θ连接运算就是从关系rs的笛卡尔积r×s中,选取r关系在A属性集上的值与s关系在B属性集上的值满足连接谓词θ的所有元组。即:

一般连接操作从行的角度进行运算。

2. 自然连接

自然连接是一种特殊的等值连接,它要求两个参与连接的关系具有公共的属性集,并在这个公共属性集上进行等值连接;同时,还要求将连接结果中的重复属性列去除掉,即在公共属性集中的列只保留一次。

设关系r(R)和s(S),属性集S是R的子集,即SÍR,则关系r÷s是关系r中满足下列条件的元组在属性集R-S上的投影:\forall t_r \in r,记 x= tr[R-S],则关系r中属性集R-S的取值x的象集Sx包含关系s。记作 r\div s = \{t_r[R-S] | t_r\in r\wedge s\subset S_x \}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值