您好,欢迎访问三七文档
第2章关系数据理论理解关系数据理论的相关概念。理解关系数据库模型的基本概念,掌握关系数学定义中的域、笛卡尔积、元组、关系、候选码、主码、关系模式,掌握关系的完整性的含义。熟练掌握关系代数中的并、差、交、广义笛卡尔积等运算;选择、投影、连接、除等专门的关系运算,掌握元组关系演算和域关系演算。理解关系模式设计中可能出现的问题、问题产生的根源、解决的途径。掌握基本范式的概念、函数依赖、码和外码、主属性、非主属性、部分\完全\传递函数依赖的概念。本章的主要内容2.1关系的数学定义2.2关系代数2.3关系演算2.4关系的完整性2.5关系操作2.6关系的规范化2.1关系的数学定义关系型数据库是目前最常用的数据库所谓关系型数据库通常指的就是采用了关系模型的数据库管理系统关系模型是建立在严格的数学概念的基础上的这里从集合论角度来讨论关系数据结构的形式化定义。2.1.1基本概念1.域(Domain)2.笛卡尔积(CartesianProduct)3.关系(Relation)1.域(Domain)定义2.1域是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数指定长度的字符串集合{‘男’,‘女’}介于某个取值范围的日期2.笛卡尔积(CartesianProduct)定义2.2给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中,每一个元素(d1,d2,…,dn)叫做一个n元组(n-tuple),或简称为元组(Tuple)。元素中的每一个值di叫做一个分量(Component)。【例2-1】设给出两个域:姓名集:D1={谭丁,王静,张默}性别集:D2={男,女}笛卡尔积:则D1×D2={(谭丁,男),(谭丁,女),(王静,男),(王静,女),(张默,男),(张默,女)。笛卡儿积产生的这6个元组可构成一张二维表。D1D2谭丁男谭丁女王静男王静女张默男张默女D1×D23.关系(Relation)定义2.3D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,用R(D1,D2,…,Dn)表示。这里R表示关系的名字,n是关系的目或度(Degree)。关系中的每个元素是关系中的元组,通常用t表示。若Di(i=1,2,…,n)为有限集,其基数(Cardinalnumber)为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为:m=niim1【例2-2】设:D1为教师集合T={t1,t2},D2为学生集合S={s1,s2,s3}D3为课程集合C={c1,c2}则D1×D2×D3是一个三元关系,该关系的元组个数即基数为:2×3×2=12,是教师、学生、课程集合中元素构成的所有元组的集合。关系是笛卡积的有限子集,所以关系也是一个二维表,表中行被称为元组或记录(Record),列称为属性(Attribute)或字段(Field),表的第一行是字段名的集合,被称为关系框架(或表结构),列中的元素为该字段(属性)的值,且值总是限定在某个值域(domain)内。n目关系必有n个属性。关系的基本数据结构是二维表。每一张表称为一个具体的关系或简称为关系。二维表的表头也称为关系的型,二维表中的值(元组)也称为关系的值。关系与二维表关系的几个概念候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidatekey)。主码:若一个关系有多个候选码,则选定其中一个为主码(Primarykey)。主属性与非主属性:主码的诸属性称为主属性(Primeattribute)。不包含在任何侯选码中的属性称为非主属性(Non-keyattribute)。全码:在最极端的情况下,关系模式的所有属性组是这个关系模式的侯选码,称为全码(All-key)。关系的性质①列的同质性。②列名唯一性。③列序无关性。④元组相异性。⑤行序无关性。⑥分量原子性。关系的三种类型基本关系(通常又称为基本表或基表):是实际存在的表,它是实际存储数据的逻辑表示。查询表:查询表是查询结果对应的表。视图表:视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。2.1.2关系模式与关系数据库定义2.4关系的描述称为关系模式(RelationSchema)。它可以形式化地表示为:R(U,D,DOM,F)其中,R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。关系数据库是对应于一个关系模型的某个应用领域所有关系的集合。关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库。2.2关系代数关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。2.2.1集合运算符关系R与关系S的并由属于R或属于S的元组组成,其结果关系仍为n目关系。记作:R∪S={t|t∈R∨t∈S}并关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:R∩S={t|t∈R∧t∈S}或:R∩S=R-(R-S)交关系R与关系S的差由属于R而不属于S的所有元组组成,其结果关系仍为n目关系。记作:R-S={t|t∈R∧t∉S}差两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:R×S={t|t=tn,tm∧tn∈R∧tm∈S}广义笛卡尔积并ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S差ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S交ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S广义笛卡尔积ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×SABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c12.2.2专门的关系运算符选择投影连接关系代数运算符集合运算符(∪-∩×)专门的关系运算符(σπ⋈÷)比较运算符(>≥<≤=≠)逻辑运算符(¬∧∨)1.选择(Selection)选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:σF(R)={t|t∈R∧F(t)=‘真’}其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。选择运算是从行的角度进行的运算。σ【例2-4】已知关系T,求选择运算σA25۷A3≠’f’(T)的结果。A1A2A3a3fb2dc2de6fg6fTA1A2A3b2dc2de6fg6fσA25VA3≠’f’(T)【例2-9】写出选择关系Student中年龄在22岁以下的女学生的关系代数表达式。σssex=’女’∧sage22(Student)2.投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。记作:πA(R)={t[A]|t∈R}其中A为R中的属性列。投影操作主要是从列的角度进行运算π【例2-5】求关系T的投影:πA1,A3(T)或π1,3(T)。A1A2A3a3fb2dc2de6fg6fTA1A3afbdcdefgfπA1,A3(T)或π1,3(T)3.连接(Join)连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:RS={trts|tr∈R∧ts∈S∧tr[A]θts[B]}其中A和B分别为R和S上度数相等且可比的属性组,θ是比较运算符。连接运算从R和S的笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属性组上值满足比较关系θ的元组。AθBABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310RSC<ERS等值连接(equijoin)θ为“=”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为:A=BRS={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}A=B例等值连接RSR.B=S.BAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS自然连接(Naturaljoin)它是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:RS={trts|tr∈R∧ts∈S∧tr[B]=ts[B]}例ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS自然连接RSABCEa1b153a1b267a2b3810a2b382连接(续)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。AθBRS外连接、左外连接、右外连接外连接如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(FULLOUTERJOIN)。左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或RIGHTJOIN)。见教材P19例2-74.除(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:R÷S={tr[X]|trR∧πY(S)Yx}Yx:x在R中的象集,x=tr[X]除操作是同时从行和列角度进行运算÷RS设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)分析在关系R中,A可以取四个值{a1,a2,a3,a4}a1的象集为{(b1,c2),(b2,c3),(b2,c1)}a2的象集为{(b3,c7),(b2,c3)}a3的象集为{(b4,c6)}a4的象集为{(b6,c6)}S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)属性组上的投影所以R÷S={a1}关系代数运算举例已知有学生S(Sno,Sname,Sex,SD,Age),课程C(Cno,Cname,Pcno,Credit),学生选课SC(Sno,Cno,Grade)三个关系,求:1、检索选修“数学”的学生号和学生姓名;2、检索至少选修了课程号为“1”和“3”的学生号;3、检索选修了“操作系统”或“数据库”课程的学号和姓名;4、检索年龄在18到20岁之间(含18和20)的女生的学号、姓名
本文标题:数据库课件
链接地址:https://www.777doc.com/doc-2333287 .html