第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.

Slides:



Advertisements
Similar presentations
数据库系统概述 数据模型 关系数据库和SQL语言 关系数据库操作 数据仓库和数据挖掘简介 小结和习题
Advertisements

第2章 关系数据库基础 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社
2012年9月等级考试辅导 数据库设计基础.
Access数据库基础与应用(第2版).
复习: :对任意的x∈A,都有x∈B。 集合A与集合B间的关系 A(B) A B :存在x0∈A,但x0∈B。 A B A B.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
第2章 数据模型 本章学习要求: 1. 层次数据模型、网状数据模型 了解层次及网状数据模型的基本概念和结构。 2. 关系数据模型
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
第3章 关系数据库的基本理论 冯万利.
非计算机应用专业教材 数据库原理与应用 李 明 科学出版社.
Principles and Applications of the Database
河北化工医药职业技术学院 数据库原理及应用教案.
Access数据库基础 系列教学课件 安丘市职业中专 雷云龙.
第二章 关系数据库 2.1 关系模型概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算 2.6 小结.
An Introduction to Database System An Introduction To Database System
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
软件设计师培训.
高级数据库技术 金培权
计算机应用基础 上海大学计算中心.
第1章 数据库基础 1.1 数据库基本概念 数据处理 数据(Data)是对客观事物的某些特征及其相互联系的一种抽象化、符号化表示。 例如:王华出生日期为1970年7月12日,身高1.75m,体重65kg,部门代码A01,职称是副教授,其中王华、1970年7月12日、1.75m、65kg、A01、副教授等都是数据.
数据库原理与应用.
Database Principles & Applications
第5章 数据库基础 5.1 数据库系统概述 5.2 数据模型 5.3 关系模型 5.4 关系数据库 5.5 常见的关系数据库管理系统简介.
第2章 关系数据库系统.
请写出下列查询语句并给出结果 1、列出student表中所有记录的sname、sex和class列。
Chap 5 關聯式代數與計算.
課程名稱:資料庫系統 授課老師:李春雄 博士
作业三讲评 04计算机.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
数据库技术 第二章 关系数据库 中国科学技术大学网络学院 阚卫华.
第2章 关系数据库 2.1 关系模型 2.2 关系代数 2.3 查询优化.
元素替换法 ——行列式按行(列)展开(推论)
An Introduction to Database System An Introduction to Database System
An Introduction to Database System
第2章 关系数据库数学模型 本章导读: 2.1 关系模型概述 2.2 关系代数的原理 2.3 关系代数 2.4 关系演算
第2章数据基础知识 2.1数据库基本概念 2.1.1数据库技术的发展
第三章 关系模型.
数据库应用技术 SQL Server 2005.
Thanks for the Slides from Renmin U
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介
数据库系统概论 An Introduction to Database System
四、投影运算 在数据库中, 用关系来描述数据时常用投影运算进行数据操作。
An Introduction to Database System An Introduction to Database System
第二章 关系数据库 2.1 关系数据库的基本概念 2.2 关系模型及其描述 2.3 关系代数 2.4 关系演算 本章小结.
第10章 数据库.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
作业2讲评.
VB与Access数据库的连接.
Thanks for the Slides from Renmin U
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
1.2 子集、补集、全集习题课.
学习目标 1、了解基本运算符 2、运算符优先级.
2.2矩阵的代数运算.
上杭二中 曾庆华 上杭二中 曾庆华 上杭二中 曾庆华.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
§2 方阵的特征值与特征向量.
第3章 关系数据库 内容提要 关系模型的数据结构 关系模型的常用术语 关系数据库的完整性概念 数据库的关系运算 函数依赖的定义
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
基于列存储的RDF数据管理 朱敏
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
VB与Access数据库的连接.
第2章 关系模型和 关系运算理论.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
§4.5 最大公因式的矩阵求法( Ⅱ ).
Chapter 14 Databases.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
第4章 关系系统及其查询优化 关系系统 关系系统的查询优化 关系系统的分类 关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则
关系数据库 第2章 关系数据结构 关系定义 关系性质 关系模式 关系的完整性 实体完整性 参照完整性 用户定义完整性 关系代数 关系演算
Presentation transcript:

第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统

2.1关系数据库概述 关系数据库系统是支持关系模型的数据库系统 关系理论是建立在集合代数理论基础上的,关系的定义和各种操作运算可以用集合代数给出 关系模型的三要素 关系数据结构:二维表 关系操作:选择、投影、连接、除、并,交、差等查询以及增、删、改 完整性约束 :实体、参照、自定义

关系数据语言 关系代数语言 ISBL 关系演算语言 具有关系代数和关系演算双重特点的语言 SQL 元组关系演算语言 ALPHA,QUEL 域关系演算语言 QBE 具有关系代数和关系演算双重特点的语言 SQL

2.2关系数据结构 2.2.1关系 域:域是一组具有相同数据类型的值的集合。值的个数称为域的基数 笛卡儿乘积 :给定一组域:D1,D2,……Dn,域可以相同,定义D1D2……Dn的笛卡儿乘积为:D1×D2×……×Dn={(d1,d2,……dn) |di∈Di,i=1,2,……n} ; (d1,d2,……dn)称为一个元组 关系(Relation):笛卡儿乘积D1×D2×……×Dn的任一子集D’,称作D1,D2,……Dn上的关系。 用R(D1,D2……Dn)来表示 D’中的每个元素(d1,d2,……dn)是关系的一个元组 实际应用中关系往往是笛卡儿乘积中有意义的子集构成 n=1是单元关系/一元关系;n=2是二元关系

举例 域 笛卡儿乘积 关系 性别集={男、女}。基数=2 月份集={1,2,3,4,5,6,7,8,9,10,11,12},基数=12 D1=姓名集合={赵一平,钱峰,孙英} D2=性别集合={男,女} D3=年龄集合={16,17,18} 关系 姓名 性别 年龄 赵一平 男 16 钱峰 17 孙英 女

2.2.2关系模式 关系的描述称为关系模式(Relation schema),一般表示为R(U,D,DOM,F) 其中,R是关系名,U是组成该关系的属性集合,D为属性组U中属性所来自的域,DOM是属性向域的映象集合,F是属性间数据的依赖关系集合。 2.2.3关系数据库 在一个给定的现实世界领域里,所有实体及实体间的联系的关系所构成的集合是一个关系数据库 关系数据库有型和值之分:关系数据库的型也称关系数据库模式,是对关系数据库的描述它包括若干域的定义以及在这些域上定义的若干关系模式;关系数据库的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合 关系数据库的值与关系数据库模式通称为关系数据库

2.3关系的完整性 实体完整性 参照完整性 自定义完整性 若属性A是基本关系R的主属性,则A不能取空值 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(关系R、S不一定是不同的关系),则对于R中的每一个元组在F上的取值必须: 取空值(F的每个属性值均取空值) 等于S中某个元组的主码值 ] 自定义完整性

2.4关系代数 关系代数由一组关系运算组成,是对于关系的操作集。关系运算以一个或多个关系作为操作的对象,运算结果是一个新的关系。用关系运算实现查询 关系代数运算符 集合运算符:∪(并)-(差)∩(交)×(笛卡儿积) 专门运算符:σ选择 П 投影  连接 ÷ 除 比较运算符: > ≥ < ≤ = ≠ 逻辑运算符: 非 ∧与 ∨或 常用的关系运算 交、并、差、笛卡儿积、投影、选择、连接、除 基本关系运算有 并、差、笛卡儿积、投影、选择 同类关系:具有相同的度,且两个关系每个属性属同一个域

2.4.1传统的集合运算 假设: Name Sex Age Zhang F 22 Wang M 25 Lu 37 Chen 27 S R Name Sex Age Zhang F 22 Wang M 25 Lu 37 Chen 27 S Name Sex Age Zhang F 22 Wang M 25 Lu 30 Sun 28

并(Union): 同类关系R和S的并记为R∪S,或R union S 定义:R∪S={t|t∈R ∨ t∈S}注意去除重复元组 R∪S Name Sex Age Zhang F 22 Wang M 25 Lu 37 Chen 27 30 Sun 28

交(Intersection) 同类关系R和S的交记为R∩S,或R intersect S 定义:R∩S={ t|t∈R ∧ t∈S } R-(R-S) R∩S Name Sex Age Zhang F 22 Wang M 25

差(Minus/Difference) 同类关系R和S的差记为R-S或R minus S 定义:R-S={ t|t∈R ∧ tS } Name Sex Age Lu M 37 Chen F 27

笛卡儿积(Cartesian Product) 关系R和S的笛卡儿积记为R×S 定义:R×S={ t⌒s|t∈R, s∈S } R S CNo CN C-11 OS C-21 DB SNo SN Age S-01 Huang 21 S-21 Lin 20 S-30 Shao 22 R×S CNo CN SNo SN Age C-11 OS S-01 Huang 21 S-21 Lin 20 S-30 Shao 22 C-21 DB

2.4.2专门的关系运算 引入以下记号 : 设关系模式R(A1,A2,……An),它的一个关系为Rt,t∈Rt表示t是Rt的一个元组。t[Ai]则表示元组t中相应于Ai的一个分量 若A={Ai1,Ai2,……Aik}是A1,A2,……An的一部分,k<=n,则A称为属性列(组)或域列。t[A]=(t[Ai1],t[Ai2],……t[Aik])表示元组在属性列A上诸分量的集合 R为n元关系,S为m元关系。tr∈R,ts∈S,tr ⌒ ts称为元组的连接(Concatenation)。它是一个m+n列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组 给定一个关系R(X,Z),X和Z为属性组,定义:当t[X]=x时,x在R中的象集(image set)为 Zx={t[Z]|t∈R,t[X]=x},表示R中属性组X上值为x的诸元组在Z属性组上的分量的集合

投影(Projection) 关系R上的投影是从R中选择出若干属性,并且去掉重复元组组成一个新关系,属于单目运算 记作: A(R)={t[A]| t∈R } A为R中的属性列 假设Student SNo SName Sex Age S01 Wang F 17 S02 Zhang M 20 S03 Lin 18 S04 Sun 19 SName Age Wang 17 Zhang 20 Lin 18 Sun 19 Sna=Sname,Age(Student)

选择(Selection) 又称限制(Restriction),在给定的关系R中,抽出满足条件的元组,组成一个新关系,新关系与原关系同类,是原关系一个子集 记做:  F(R)={t| t∈R ∧ F(t)=’真’ } F表示条件 Sa18=  age>=18(Student) SNo SName Sex Age S02 Zhang M 20 S03 Lin 18 S04 Sun F 19

等值连接(equi-join):为“=”时称为等值连接 从两个关系的笛卡儿乘积中选取属性满足一定条件的元组,组成新的关系 记做:R  S ={tr⌒ts| tr∈R ∧ts∈S ∧ tr[A]ts[B]}  AB AB (R×S) AB表示R上的属性A和S上的属性B满足条件,是比较运算符,A、B的度数相等且可比。这里假设AB分别在R、S关系的第i、j列,R度为r 等值连接(equi-join):为“=”时称为等值连接 记:R  S ={tr⌒ts| tr∈R ∧ts∈S ∧ tr[A]=ts[B]} A=B 自然连接(Natioal Join):两个关系中具有相同的属性,并且在相同的属性上做等值连接。自然连接需要取消重复列,而等值连接不需要 。 记:R  S ={tr⌒ts| tr∈R ∧ts∈S ∧ tr[A]=ts[A]}

假设 R S A C D 30 C1 D3 40 C2 50 C3 D1 10 C4 B E F 20 E1 F1 50 E2 F3 40 E3 R  S A>B A B C D E F 30 20 C1 D3 E1 F1 40 C2 50 C3 D1 E3

除法(Division) 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组,R中的Y与S中的Y可以不同属性名,但必须有相同的域。记R÷S。令P(X)=R÷S,则P是R中满足以下条件的元组在X属性列上的投影:元组在X上的分量值x的象集Yx包含S在Y上投影的集合 记做:R÷S={tr[X]|tr∈R ∧ YxY(S)} R÷S  X(R)-X((X(R)×Y(S))-R)

b1 c2 b2 c1 c3 b2 c3 b3 c7 b4 c6 b6 c6 假设 R S A B C a1 b1 c2 a2 b3 c7 D b1 c2 d1 b2 c1 c3 d2 R÷S 象集: Yx=a1 Yx=a2 Yx=a3 Yx=a4 A a1 b1 c2 b2 c1 c3 b2 c3 b3 c7 b4 c6 b6 c6

外连接(Outer Join) 外部并(Outer Union) 半连接(Semijoin) 如果R和S在做自然连接时,把该舍弃的元组也保存在新关系中,在新增加的属性上填空值(null),这种操作称为“外连接”。如果把R中该舍弃的元组保留在新关系中称左连接;把S中该舍弃的元组保留在新关系中称右连接 外部并(Outer Union) 若关系R和S不同类,则新关系的属性由R和S的属性组成,公共属性只取一次,新关系的元组由属于R或S的元组构成,新增的属性上均填空(null) 半连接(Semijoin) 关系R和S的半连接定义为R和S的自然连接在关系R的属性集上的投影

假设 R S A B C a b c f d B C D b c d e a f g R Outer Join S R left Outer Join S A B C D a b c d e f null g A B C D a b c d e f null

R right Outer Join S R Outer Union S A B C D a b c d e null f g A B C D a b c null f d e g R Semijoin S  R(R  S) S Semijoin R  S(R  S) A B C a b c d B C D b c d e a

检索选修课程名为Maths的学生学号与姓名 2.4.3*关系代数运算应用举例 假设 S(S#,SN,SSEX,SAGE) C(C#,CN,TEACHER) SC(S#,C#,GRADE) 检索学习课程号为C2的学生学号与成绩 S#,GRADE( C#=’C2’(SC)) 或1,3( 2=’C2’(SC)) 检索学习课程号为C2的学生学号与姓名 S#,SN( C#=’C2’(S  SC)) 检索选修课程名为Maths的学生学号与姓名 S#,SN( CN=’Maths’(S  SC  C))

检索所学课程包含学生S3所学课程的学生学号 检索选修课程为C2或C4的学生学号 S#( C#=’C2’ ∨ C#=’C4’(SC) ) 检索至少选修课程为C2和C4的学生学号 S#( 1=4 ∧ 2=’C2’ ∧ 5=’C4’(SC×SC) 检索不选修C2课程的学生姓名与年龄 SN,SAGE (S)-SN,SAGE( C#=’C2’(SC  S)) 检索选修全部课程的学生姓名 SN(S (S#,C#(SC)÷ C#(C) ) ) 检索所学课程包含学生S3所学课程的学生学号 S#,C#(SC)÷ C# ( S#=’S3’(SC))

2.4.4关系代数式的等价规则 1.连接、笛卡尔积交换律 2.连接、笛卡尔积结合律 E1×E2 ≡ E2×E1 E1  F E2 ≡ E2  F E1 2.连接、笛卡尔积结合律 (E1×E2) ×E3 ≡ E1×(E2×E3) (E1  E2)  E3 ≡ E1 (E2  E3) (E1  F1 E2)  F2 E3 ≡ E1  F1 (E2  F2 E3)

3.投影的串接定律 4.选择的串接定律 5.选择与投影的交换律 例:  A ( R.A=S.B(R×S)) A1,A2,…An(Ak1,Ak2,…Akm (R)) ≡ A1,A2,…An (R) A1,A2,…An是Ak1,Ak2,…Akm 的子集 4.选择的串接定律  F1( F2(R)) ≡  F1^F2(R) 5.选择与投影的交换律  A1,A2,…An (F(R)) ≡  F(A1,A2,…An (R)) A1,A2,…An (F(R)) ≡  A1,A2,…An (F(A1,A2,…An,B1,B2,..Bn (R))) 例:  A ( R.A=S.B(R×S)) ≡  A ( R.A=S.B( A,B (R×S))) ≡  A ( R.A=S.B( A(R)×B(S)))

6.选择对笛卡尔积的分配率  F ( E1×E2) ≡  F1 ( E1)×  F2 ( E2) F=F1^F2,F1只涉及E1,F2只涉及E2  F ( E1×E2) ≡  F ( E1)× E2 F只涉及E1  F ( E1×E2) ≡  F2( F1 ( E1)× E2) F1只涉及E1,F2涉及E1,E2

7.选择对并的分配率 8.选择对差的分配率 9.投影对笛卡尔积的分配率 10.投影对并的分配率  F ( E1∪E2) ≡  F1 ( E1)∪  F2 ( E2) 8.选择对差的分配率  F ( E1 - E2) ≡  F1 ( E1) -  F2 ( E2) 9.投影对笛卡尔积的分配率 A1,A2,…An,B1,B2,..Bn (E1×E2) ≡ A1,A2,…An(E1) ×  B1,B2,..Bn (E2) A1,A2,…An是E1属性,B1,B2,..Bn是E2 属性 10.投影对并的分配率 A1,A2,…An(E1∪E2) ≡ A1,A2,…An(E1)∪A1,A2,…An(E2)

11.选择对自然连接的分配率 12.选择与连接操作的结合率  F ( E1  E2) ≡  F1 ( E1)   F2 ( E2) F=F1^F2,F1只涉及E1,F2只涉及E2 12.选择与连接操作的结合率  F ( E1×E2) ≡ E1 F E2 F形如E1.A  E2.B  F1 ( E1  F2 E2) ≡ E1  F1^F2 E2 F1,F2形如E1.A  E2.B

利用规则优化查询 例:设学生选课系统中,学生关系S有1000条记录,每个学生平均选课10门,则SC关系有10000条记录,课程关系C有1000条记录。若需要查询学生“王芳”所选修课程的成绩在85分以上的课程名。 设 F1表示S.sno=SC.sno F2表示SC.cno=C.cno F3表示S.sn=‘王芳’ F4表示SC.grade>=85  cn(F1^F2^F3^F4(S×SC×C)) 1010条连接记录O(1010)  cn(F3^F4(S F1SC F2C)) 104条记录,运算O(1010)  cn(F3(S)F4(SC)  C)) <=10条记录,运算O(104)

优化过程  cn (F1^F2^F3^F4(S×SC×C)) //式 =  cn (F3^F4F2(F1((S×SC)×C))) //规则4,2 =  cn (F3^F4F2(F1(S×SC)×C)) //规则6 =  cn (F3^F4 F2 ((S  SC)×C)) //规则12 =  cn (F3^F4 ((S  SC)  C)) //规则12 式 =  cn (F3(S)  F4(SC)  C) //规则11 式

基于语法树优化 检索选修DB课程的女生学号及姓名。  sno,sname(cname=‘db’^sex=‘F’(S.sno=SC.sno^SC.cno=C.no (S×SC×C)))  sno,sname cname=‘db’^sex=‘F’ S.sno=SC.sno^SC.cno=C.no × SC C S 初始语法树

 sno,sname  sno,sname S.sno=SC.sno cname=‘db’^sex=‘F’ S.sno=SC.sno^SC.cno=C.no × SC C S  sno,sname sex=‘F’ S.sno=SC.sno × SC C S cname=‘db’ SC.cno=C.no 条件分解 条件下移

 sno,sname  sno,sname sex=‘F’ S.sno=SC.sno × SC C S cname=‘db’ SC.cno=C.no 笛卡尔积和选择合成连接  sno  sno,cno  cno  sno,sname sex=‘F’ S.sno=SC.sno × SC C S cname=‘db’ SC.cno=C.no 投影前移  sno  cno  sno,cno

 sno,sname  sno  sno,sname sex=‘F’  cno  sno,cno S cname=‘db’   sno  sno,sname  sex=‘F’  sno,cno  cno S cname=‘db’ SC C 最终语法树

2.5关系演算** 2.5.1元组关系演算语言ALPHA 2.5.2域关系演算语言QBE

2.6关系数据库管理系统 关系数据库管理系统简称关系系统 一个数据库管理系统可成为关系系统的最小条件 关系数据库(即关系数据结构) 支持选择、投影和连接运算 E.F.Codd思想对关系系统的分类(P63 图2-5) 表式系统:仅只是关系数据结构,不支持集合级操作 最小关系系统:支持关系结构和选择、投影、连接集合操作 关系完备系统:支持关系结构和所有关系代数操作 全关系系统:支持关系模型的所有特征。