当前位置:文档之家› 数据库原理(第二章)

数据库原理(第二章)

11
关系代数
关系代数运算符:P52 集合运算符 专门的关系运算符(比较运算符,逻辑运算符) 传统的集合运算:并,交,差,笛卡尔积 专门的关系运算:选择(对关系进行水平分 割),投影(对关系进行垂直分割),连接(关系的 合并),除运算
12
关 系 运 算(续)
t:元组变量 t R:t属于关系R t R:t不属于关系R t.A:属性A在元组t中的值
1. δsex=‘女’ ∧ age<22(S) 2. Πsno(δgrade>90(SC)) Πsno,sname(S) 3. Πsname( (Πcno(δpcno=‘005’(C))) Πsno,cno(SC) Πsno,sname(S)) 4.Πsname,grade( Πcno(δcname=‘数据库’(C)) SC Πsno,sname(S))
26
综合运算答案(续)
5.Πsname,age ((Πsno(S)- Πsno(δcno=‘005’(SC)) ) Πsno,sname,age(S)) 6. Πsno,cno(SC)÷Πcno(C) Πsno,sname(S )
27
28
R }
注意:新关系的元组数小于等于原关系的元组数(去掉重复 元组)。
19
扩 充 的 关 系 运 算(续)
3. 连接运算 把两个关系按相应属性值的比较条件(R.AθS.B)进 行连接,它是两个关系的笛卡尔积的一个子集。相应的连接 称为该比较运算符连接(R 大于连接 小于等于连接 等于连接(等值连接) ……
24
综合运算举例
1.求年龄在22岁以下的女学生; 2.求成绩在90分以上的学生的学号和姓名; 3.查询至少选修了一门其直接先修课为005号课程的学生名; 4.求选修数据库课程的学生的姓名和成绩; 5.查询没选005号课程的学生姓名与年龄。 6.查询选修了全部课程的学生的学号和姓名。
25
综合运算答案
数据库原理
The Principle of Database
主 讲: 马 进
2
第二章 关系模型和关系运算理论
2.1 2.2 2.3
关系数据结构 关系完整性规则 关系运算
2
2.1
ห้องสมุดไป่ตู้
关系数据结构
数据库中全部数据及其相互联系都被组织成关系(二 维表)的形式。 注意:规范化了的二维表 有关概念:P42-P47 域 笛卡尔积(基数) 关系(目)
关系模型要求,由关系系统自动支持
用户定义的完整性
6
实体完整性规则
实体完整性规则: 基本关系的主码(一个或一组属性)不能取空值。 空值:不知道、不存在的值 例:SC(Sno,Cno,Grade)
7
参照完整性规则
关系与关系间存在引用。 例1:两个或两个以上的关系间存在引用关系 学生(学号,姓名,年龄,性别) 课程(课程号,课程名,课程学分) 选课(学号,课程号,成绩) 例2:同一关系内部属性间也可能存在引用关系 课程(课程号,课程名,先修课课程号)
8
参 照 完 整 性 规 则(续)
外码:设F是基本关系R的一个或一组属性,但不是关系R的 码;Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的 外码,并称基本关系R为参照关系,基本关系S为被参照关系。 注:外码与相应的主码必须定义在同一个域上,但不一定同名。 参照完整性规则: 在参照和被参照两个关系中,参照关系中每个元组的外码 或者为空(视具体问题而定),或者等于被参照关系中某个元 组的主码。
4. 笛卡尔积
设关系R具有n个属性k1个元组,关系S具有m个属性k2 个元组,则R和S的笛卡尔积仍是一个关系,该关系的结构 是R和S的结构的连接:
R × S={ tRtS | tR R Λ tS S }
R × S的属性个数为n+m个,元组个数为k1×k2个 R×S≠S×R
17
2.3.2
扩充的关系运算
13
2.3.1
传统的集合运算
1. 并运算
设关系R和关系S具有完全相同的模式,则R和S的并仍 是一个具有该模式的关系:
R U S={ t | t R V t S } RUS=SUR
14
传 统 的 集 合 运 算(续)
2. 交运算
设关系R和关系S具有完全相同的模式,则R和S的交仍 是一个具有该模式的关系:
R.AθS.B
S):
20
扩 充 的 关 系 运 算(续)
等值连接: 学生(学号,姓名,年龄,专业) 课程(课程号,课程名,学分) 选课(学号,课程号,成绩) 自然连接(R S) 特殊的等值连接,把两个关系按属性名相同进行等值连 接,并在结果中只保留相同属性中的一个。(P57)
21
扩 充 的 关 系 运 算(续)
3
码 关系模式
关 系
关系模型要求关系必须是规范的(规范化的关系简称为范式)。
关系应具备下列性质: ① ② ③ ④ ⑤ ⑥ 列的同质性; 列名惟一性; 列序无关性; 元组相异性; 行序无关性; 分量原子性。
注:在许多实际RDB产品中,基本表并不完全具有这6条性质。
4
关系的三种类型
关系可分为以下三种类型: ① 基本表:实际存在的表,它是实际存储数据的逻 辑表示; ② 查询表:查询结果对应的表; ③ 视图表:由基本表或其他视图表导出的表,是虚 表,不对应实际存储的数据。
9
用户定义的完整性
反映某一具体应用所涉及的数据必须满足的语义要 求,是对关系中每个属性的取值限制/约束的具体定义。 例:CHECK(GRADE BETWEEN 0 AND 100) 关系模型应提供相应的定义和检验机制,不再由应用 程序承担此项工作。
10
2.3
关系运算
关于关系数据库查询的理论称为“关系运算理论”。 关系数据语言: 关系代数语言:用对关系的运算来表达查询要求 关系演算语言:用谓词来表达查询要求 具有关系代数和关系演算双重特点的语言 共同特点:具有完备的表达能力,是非过程化、集合 操作语言,功能强,能够嵌入高级语言中使用。
4. 除运算 给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。 R中的Y与S中的Y可以有不同的属性名,但必须来自 相同的域。 R÷S= { t.X | t
R Λ ΠY(S) Yx}
Yx为x在R中的象集(象集定义及举例:P55 图2.3)。 除运算举例:P59 例6
22
2.3.3
5
2.2
关系完整性规则
为了维护数据库中数据与现实世界的一致性,关 系数据库的数据与更新操作必须遵循各类完整性规则。 完整性规则记录在DBMS的数据字典中,在数据库操 作时,DBMS会自动根据各种完整性规则进行操作监 控,拒绝不符合要求的数据进入数据库。 定义:关系模型中数据的正确性、有效性和相容性。 分类:实体完整性 参照完整性
1.选择运算 从关系中选择出满足给定条件的所有元组,并与原关系 具有相同的结构。它提供了横向分割关系的手段。 对关系R按元组逻辑表达式F(t)做选择运算: δF(t)(R) = { t | t
R Λ F(t)= TRUE }
18
扩 充 的 关 系 运 算(续)
2. 投影运算 从关系中按所需顺序选取若干个属性。它提供了纵向分 割关系的手段。 对关系R按属性子集A做投影运算: ΠA(R) = { t . A | t
注意:
综合运算举例(P55)
选择和投影运算的时间复杂度为n数量级(n为元组个数); 连接运算的时间复杂度为n×m数量级(n和m分别是两个关 系中的元组个数); 为了减少关系运算的时间复杂度,从而提高效率,通常先做 选择运算,再做投影运算,最后做连接运算。
23
综合运算举例
例:设某学生-选课关系数据库的关系模式如下: 学生表S(sno,sname,sex,age,dept) 课程表C(cno,cname,credit,pcno) 学生选课表SC(sno,cno,grade) 注:上述关系中,除age,credit,grade属性的值为整数型 外,其余均为字符串型。
R ∩ S={ t | t R Λ t S } R∩S=S∩R
15
传 统 的 集 合 运 算(续)
3. 差运算
设关系R和关系S具有完全相同的模式,则R和S的差仍 是一个具有该模式的关系:
R - S={ t | t R Λ t S } R-S≠S-R
16
传 统 的 集 合 运 算(续)
相关主题