20321关系数据库理论基础 (4)

 

20321关系数据库理论基础

 

3.用户定义的完整性

l 用户定义的完整性是指由用户定义的、针对某一具体应用需求制定的约束条件,多用于满足数据的一些语义要求。

【例子】在表2.5所示的关系SC中,经常定义这样的约束:成绩的取值必须在0~100之间;又如,某些属性值不能为空或取值必须唯一等。

l 用户定义完整性约束可以有效减少应用程序的负担,关系数据库管理系统都提供定义和检验这类完整性的机制和方法。

 

 

2.2 关系代数 l  2.2.1 基本集合运算

    基本集合运算是指集合的并、交、差和笛卡儿积运算,这些运算都是二元运算。我们约定:本节中R和S都默认是n元关系,且对应属性取自同一个值域。以下介绍基于关系的基本集合运算。

1. 并∪

Ø n元关系R和S的并是一种新的n元关系,这个新的关系是由R的元组或S的元组组成,记为R∪S,即R∪S = {x |  x∈ R∨x ∈ S}

2. 交∩

Ø n元关系R和S的交是一种新的n元关系,这个新的关系是由R和S的共同元组组成,也就是说,由既属于R的元组又属于S的元组组成,记为R∩S,

     即R∩S = {x | x ∈ R ∧ x ∈S }

 

 

3. 差-

Ø n元关系R和S的差是一种新的n元关系,这个新的关系是由属于R的元组但不属于S的元组组成,记为R-S,即R-S = {x | x ∈ R∧x ∈S}

 

4. 笛卡儿积

Ø 设R和S分别是n元关系和m元关系,则R和S的笛卡儿积是一种(n + m)元关系,该关系是由R的每一个元组分别与S每一个元组进行“首尾并接”所得到的元组的集合,记为R×S,即R×S = {xr  xs| xr ∈ R∧ xs ∈ S}

Ø xrxs是表示由元组xr和元组xs并接而得到的新元组。

【例子】如果xr =(1班,李好,78)且xs =(03987,陈永江,01,3班),

则xrxs =(1班,李好,78,03987,陈永江,01,3班)。

Ø  关系R和S的元组个数分别为kr和ks,则R×S的元组个数为kr×ks。

 

 

•         2.2.2 关系运算

 关系一些特殊的运算,主要包括选择(σ)、投影(π)、连接(⋈ )、除(/)等。

Ø  先约定一种表示方法:设x为某一个关系R的一个元组,L为R的关系模式的一个子集(即属性子集),则令x(L)表示由元组x在属性子集L上的所有分量构成的新元组。

【例子】对于关系R(A,B,C,D),令x = (a , b ,c , d),则x({A,B,C}) = (a , b , c),x({C,D}) = (c , d),x({B}) = (b),等。

 

 

•                 选择σ

  从关系中筛选出满足既定条件的元组,这些元组组成了一个新的关系,这个操作过程称为选择。

Ø  选择的操作符用σ表示,选择条件则用逻辑公式来表示,用R表示逻辑公式。对关系R的选择运算就可以表示为σt(R),即

σt(R) = {x | x∈R∧t(x) = true}

    “t(x) = true”表示元组x满足条件公式t。对于选择运算,关键是设置选择条件t。

    在数据查询中,条件公式t通常是由<、>、≤、≥、=、between、∧、∨等连接符号构成的条件表达式或逻辑表达式。

 

 

【例子】表2.3所示的学生关系student。令选择条件t = (性别=‘男’∧专业号=‘z3’),则选择运算st(student)表示查找那些专业号为“z3”的男同学,结果如表2.7所示。

 

20321关系数据库理论基础

 

 

2. 投影π

l  投影是指从关系中选出若干个指定的属性来组成新的关系。令投影的操作符为π,L为指定的属性子集,则关系R在属性子集L上的投影就可以表示为πL(R),即 πL(R) = {x(L) | x ∈ R}

                           x(L)表示由元组x在属性集L上的取值构成的新元组。

l  投影还有一种表示方法就是在投影运算表达式πL(R)中用指定的属性在关系R中的序号来代替L中的属性名。

 【例子】对于上述的投影π{姓名,性别} (student)也可以表示为π{2,3}(student)。

l  投影就是从关系表中按指定的属性抽取相应的列,这些列组成一个新的关系。

l  注意,投影运算是对列进行筛选而选择运算则对行进行筛选

 

 

【例子】对于表2.3所示的学生关系student,令L = {姓名,性别},则学生关系在L上的投影:

         πL(student)  = {x(L) | x∈  R}

      = {x({姓名,性别}) | x∈  R}

      = {(刘洋,男), (李思思,女), (陈永江,男), (王大河,男), (吕文星,男), (李鑫,女)}

 

结果如表2.8所示。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygszg.html