《数据库原理二章关系数据库ppt课件》由会员分享,可在线阅读,更多相关《数据库原理二章关系数据库ppt课件(71页珍藏版)》请在金锄头文库上搜索。
1、数据库原理数据库原理第二章:关系数据库第二章:关系数据库授课教师:王哲本章主要学习内容本章主要学习内容v关系模型v关系数据构造v关系操作v关系的完好性约束v关系代数v集合计算v关系运算v关系演算v元组关系演算言语ALPHAv域关系演算言语QBE一、关系数据构造及方式化定义一、关系数据构造及方式化定义v单一的数据构造-关系v现实世界的实体以及实体间的各种联络均用关系来表示v逻辑构造-二维表 v从用户角度,关系模型中数据的逻辑构造是一张二维表v关系操作的对象和结果都是集合,关系模型建立在集合代数的根底上;1、域、域v域域DomainDomain:一组具有一样数据类型的值的集合,也称为值:一组具有一
2、样数据类型的值的集合,也称为值域,用域,用D D表示。表示。v域中所包含的值的个数称为域的基数,用域中所包含的值的个数称为域的基数,用m m表示。表示。v关系中用域表示属性的取值范围。例如:关系中用域表示属性的取值范围。例如:vD1=D1=李力,王平,刘伟李力,王平,刘伟 m1=3m1=3vD2=D2=男,女男,女 m2=2m2=2vD3=47,28,30 D3=47,28,30 m3=3m3=3v其中,其中,D1D1,D2D2,D3D3为域名,分别表示教师关系中姓名、性别、为域名,分别表示教师关系中姓名、性别、年龄的集合。年龄的集合。v域名无陈列次序,如域名无陈列次序,如D2=D2=男,女男
3、,女=女,男女,男 2、笛卡尔积、笛卡尔积v1笛卡笛卡尔积Cartesian Productv给定一定一组域域D1,D2,.Dn(域可一域可一样,它,它们的笛卡儿的笛卡儿积为: D1xD2x.xDn=(d1,d2,.,dn)|diDi,i=1,2,.,n v一切域的一切取一切域的一切取值组成一个集合,其中每一个元素成一个集合,其中每一个元素d1,d2,.,dn)叫做一个叫做一个n元元组,简称元称元组。v元元组中的每个中的每个值di叫做一个分量。元叫做一个分量。元组的每个分量的每个分量di是按序是按序陈列的。如:列的。如:1,2,32,3,11,3,2;v元元组不能反复,元不能反复,元组之之间是
4、无序的。是无序的。2实例实例例1:D1=a1,a2 D2=b1,b2,b3那么:D1XD2=(a1,b1),(a1,b2),(a1,b3),(a2,b1),(a2,b2),(a2,b3)其中a1、b1、b2等是分量(a1,b1),(a1,b2)等是元组该笛卡尔积的基数为2x3=6元组的个数为6例例2 2:D1=D1=导师集合集合SUPERVISOR=SUPERVISOR=张清玫,刘逸清玫,刘逸D2=D2=专业集合集合SPECIALITY=SPECIALITY=计算机算机专业,信息,信息专业D3=D3=研研讨生集合生集合POSTGRADUATE=POSTGRADUATE=李勇,刘晨,王敏李勇,刘
5、晨,王敏那么:那么:D1XD2XD3=D1XD2XD3= 张清玫,清玫,计算机算机专业,李勇,李勇,张清玫,清玫,计算机算机专业,刘晨,刘晨,张清玫,清玫,计算机算机专业,王敏,王敏,张清玫,信息清玫,信息专业,李勇,李勇,张清玫,信息清玫,信息专业,刘晨,刘晨,张清玫,信息清玫,信息专业,王敏,王敏,刘逸,刘逸,计算机算机专业,李勇,李勇,刘逸,刘逸,计算机算机专业,刘晨,刘晨,刘逸,刘逸,计算机算机专业,王敏,王敏,刘逸,信息刘逸,信息专业,李勇,李勇,刘逸,信息刘逸,信息专业,刘晨,刘晨,刘逸,信息刘逸,信息专业,王敏,王敏 该笛卡笛卡尔积的基数的基数为2x2x3=122x2x3=12即
6、元即元组的个数的个数为12123笛卡尔积的二维表表示笛卡尔积的二维表表示v笛卡尔积也可以用二维表表示,其中表的框架由域构成,表的恣意一行就是一个元组,每一列数据来那么同一域。v例1:D1=学生的集合甲,乙,丙vD2=性别的集合男,女vD3=班级的集合01,02v共223=12个元组,用二维表可表示为:D1D2D3甲男01甲男02甲女01甲女02乙男01乙男02乙女01乙女02丙男01丙男02丙女01丙女023、关系、关系v关系关系RelationRelationvD1D2DnD1D2Dn的子集叫作在域的子集叫作在域D1D1,D2D2,DnDn上的上的关系。关系。v表示表示为R RD1D1,D2
7、D2,DnDnvR R:关系名:关系名vn n:关系的目或度:关系的目或度DegreeDegreevT T:关系中的每个元素是关系中的元:关系中的每个元素是关系中的元组几点阐明几点阐明v1单元关系与二元关系vn:关系的目或度Degree v当n=1时,称该关系为单元关系Unary relation或一元关系。 v当n=2时,称该关系为二元关系Binary relationvv当n=n时,称为n元关系。v2在数学上,关系是笛卡尔积的恣意子集,按照笛卡儿积的定义,关系可以是一个无限集合。v但在实践运用中关系是笛卡尔积中所取的有意义的子集。例如在表中选取一个子集构成如下关系,显然不符合实践情况。姓名
8、性别李力男李力女v属性属性AttributeAttributev关系中不同列可以对应一样的域关系中不同列可以对应一样的域v为了加以区分,必需对每列起一个名字,称为属性名为了加以区分,必需对每列起一个名字,称为属性名vn n目关系必有目关系必有n n个属性个属性v码码KeyKeyv1 1候选码候选码Candidate keyCandidate keyv假设关系中的某一属性组的值能独一地标识一个元组,那假设关系中的某一属性组的值能独一地标识一个元组,那么称该属性组为候选码。么称该属性组为候选码。v最简单的情况:候选码只包含一个属性最简单的情况:候选码只包含一个属性2 2全码全码All-keyAll
9、-key最极端的情况:关系方式的一切属性组是关系方式的候选码,称为全码。最极端的情况:关系方式的一切属性组是关系方式的候选码,称为全码。3 3主码主码Primary keyPrimary key假设一个关系有多个候选码,那么选定其中一个为主码。假设一个关系有多个候选码,那么选定其中一个为主码。4 4主属性主属性Prime attributePrime attribute候选码的诸属性称为主属性候选码的诸属性称为主属性5 5非主属性非主属性Non-key attributeNon-key attribute不包含在任何侯选码中的属性称为非主属性或非码属性。不包含在任何侯选码中的属性称为非主属性或
10、非码属性。根本关系的6条性质 列是同质的 不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名 列的顺序无所谓,列的次序可以恣意交换 恣意两个元组的候选码不能一样 行的顺序无所谓,行的次序可以恣意交换 分量必需取原子值4、关系方式、关系方式Relation Schemav关系方式是型,关系是值v关系方式是对关系的描画v元组集合的构造v属性构成v属性来自的域 v属性与域之间的映象关系v元组语义确定v满足一定的完好性约束条件v属性间的数据依赖v关系方式可以方式化地表示为:关系方式可以方式化地表示为:v R RU U,D D,DOMDOM,F FvR R 关系名关系名vU U
11、组成该关系的属性名集合组成该关系的属性名集合vD D 属性组属性组U U中属性所来自的域中属性所来自的域vDOM DOM 属性向域的映象集合属性向域的映象集合vF F 属性间的数据依赖关系集合属性间的数据依赖关系集合v注:域名及属性向域的映象经常直接阐明为属性的类型、注:域名及属性向域的映象经常直接阐明为属性的类型、长度长度v关系方式通常可以简记为v R (U) 或R (A1,A2,An)vR: 关系名vA1,A2,An : 属性名关系方式与关系关系方式与关系v关系方式v对关系的描画v静态的、稳定的v关系v关系方式在某一时辰的形状或内容v动态的、随时间不断变化的v关系方式和关系往往统称为关系,
12、经过上下文加以区别5、关系数据库、关系数据库v关系数据库v在一个给定的运用领域中,一切关系的集合构成一个关系数据库。v关系数据库的型:关系数据库方式,对数据库的描画。是稳定的。v关系数据库的值:关系方式在某一时辰对应的关系的集合。通常就称为关系数据库。二、关系操作二、关系操作v常用的关系操作v查询:查询是关系操作中最主要的部分,包括选择、投影、衔接、除、并、交、差、笛卡尔积,其中选择、投影、并、差、笛卡尔积是5种根本操作。v数据更新:插入、删除、修正v 关系操作的特点v集合操作方式:操作的对象和结果都是集合,一次一集合的方式关系数据言语的分类关系数据言语的分类v 关系代数言语v用对关系的运算来
13、表达查询要求,代表:ISBLv关系演算言语:用谓词来表达查询要求v元组关系演算言语,谓词变元的根本对象是元组变量,代表:APLHA, QUELv域关系演算言语,谓词变元的根本对象是域变量,代表:QBEv具有关系代数和关系演算双重特点的言语v代表:SQL,集查询、DDL、DML、DCL于一体的关系数据言语,它充分表达了关系数据言语的特点和优点,是关系数据库的规范言语。三、关系的完好性三、关系的完好性v为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修正操作必需有一定的约束条件,这就是关系模型的三类完好性:v实体完好性v参照完好性v用户定义的完好性v实体完好性和参照完好性:实体完
14、好性和参照完好性:v 关关系系模模型型必必需需满满足足的的完完好好性性约约束束条条件件,称称为为关关系系的的两两个不变性,应该由关系系统自动支持。个不变性,应该由关系系统自动支持。v用户定义的完好性:用户定义的完好性:v 运运用用领领域域需需求求遵遵照照的的约约束束条条件件,表表达达了了详详细细领领域域中中的的语义约束。语义约束。1、实体完好性、实体完好性Entity Integrity规规那那么么2.1 2.1 实实体体完完好好性性规规那那么么Entity Entity IntegrityIntegrity,假假设设属性属性A A是根本关系是根本关系R R的主属性,那么属性的主属性,那么属性
15、A A不能取空值。不能取空值。如:学生学号,姓名,性别,专业号,年龄如:学生学号,姓名,性别,专业号,年龄 课程课程号,课程名,学分课程课程号,课程名,学分其中主码学号,课程号不可取空值。其中主码学号,课程号不可取空值。实体完好性规那么的阐明(1) 实体完好性规那么是针对根本关系而言的。一个根本表通常对应现实世界的一个实体集。(2) 现实世界中的实体是可区分的,即它们具有某种独一性标识。(3) 关系模型中以主码作为独一性标识。(4) 主码中的属性即主属性不能取空值。主属性取空值,就阐明存在某个不可标识的实体,即存在不可区分的实体,这与第2点相矛盾,因此这个规那么称为实体完好性2、参照完好性、参
16、照完好性v在关系模型中实体及实体间的联络都是用关系来描画的,因此能够存在着关系与关系间的援用。v例1:学生实体、专业实体v学生学号,姓名,性别,专业号,年龄v专业专业号,专业名v学生关系援用了专业关系的主码“专业号。v学生关系中的“专业号值必需是确实存在的专业的专业号 ,即专业关系中有该专业的记录。例2:学生、课程、学生与课程之间的多对多联络学生学号,姓名,性别,专业号,年龄课程课程号,课程名,学分选修学号,课程号,成果例3:学生实体及其内部的一对多联络学生学号,姓名,性别,专业号,年龄,班长“学号是主码,“班长是外码,它援用了本关系的“学号 “班长 必需是确实存在的学生的学号v外码外码For
17、eign KeyForeign Keyv 设设F F是根本关系是根本关系R R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R R的码。的码。假设假设F F与根本关系与根本关系S S的主码的主码KsKs相对应,那么称相对应,那么称F F是根本关系是根本关系R R的外码。的外码。v根本关系根本关系R R称为参照关系称为参照关系Referencing RelationReferencing Relationv根本关系根本关系S S称为被参照关系称为被参照关系Referenced RelationReferenced Relation或目的关系或目的关系Target RelationTar
18、get Relation规那么规那么2.2 2.2 参照完好性规那么参照完好性规那么 假假设设属属性性或或属属性性组组F F是是根根本本关关系系R R的的外外码码,它它与与根根本本关关系系S S的的主主码码KsKs相相对对应应根根本本关关系系R R和和S S不不一一定定是是不不同同的的关关系系,那那么么对对于于R R中中每每个个元元组组在在F F上上的的值值必必需需为:为:或者取空值或者取空值F F 的每个属性值均为空值的每个属性值均为空值或者等于或者等于S S 中某个元组的主码值中某个元组的主码值例1:学生关系中每个元组的“专业号属性只取两类值:1空值,表示尚未给该学生分配专业2非空值,这时
19、该值必需是专业关系中某个元组的“专业号值,该学生不能够分配一个不存在的专业。例2:选修学号,课程号,成果“学号和“课程号能够的取值 : 1选修关系中的主属性,不能取空值 2只能取相应被参照关系中曾经存在的主码值例3:学生学号,姓名,性别,专业号,年龄,班长“班长属性值可以取两类值:1空值,表示该学生所在班级尚未选出班长2非空值,该值必需是本关系中某个元组的学号值3、用户定义的完好性、用户定义的完好性v针对某一详细关系数据库的约束条件,反映某一详细运用所涉及的数据必需满足的语义要求。v关系模型应提供定义和检验这类完好性的机制,以便用一致的系统的方法处置它们,而不要由运用程序承当这一功能。v例:1
20、选修关系中成果的取值范围为0100之间v2某个属性如:课程名必需取独一值v最后,关系模型的优点:v构造简单,具有高度的简明性和高度性v可直接处置多对多关系v一次处置一个元组集合v数据独立性很高v坚实的数学实际根底四、关系代数四、关系代数v关系数据库的数据支配言语DML的语句分成查询语句和更新语句两大类。查询语句用于描画用户的各种检索要求;更新语句用于描画用户进展插入、删除、修正等操作。v根据关系查询言语其实际根底的不同分成两大类:v关系代数言语:查询操作是以集合操作为根底的演算v关系演算言语:查询操作是以谓词演算为根底的演算关系代数关系代数v关系代数是一种笼统的查询言语,属于关系操作的一种v经
21、过对关系的运算来表达查询操作v运算的对象及结果均为关系v运算v集合运算、关系运算、比较运算、逻辑运算关系代数的运算符关系代数的运算符v由于关系定义为元数一样的元组的集合,因此把关系看成集合,集合代数中的运算并、差、交、笛卡尔积就可以引入到关系运算中来。还有一些运算是针对关系数据库环境专门设计的,譬如对关系进展垂直分割投影、程度分割选择、关系的结合衔接等。v分别为v1. 传统的集合运算v2. 专门的关系运算1、传统的集合运算、传统的集合运算v1并并UnionvR和和Sv具有一具有一样的目的目n即两个关系都有即两个关系都有n个属性个属性v相相应的属性取自同一个域的属性取自同一个域vRS v仍仍为n
22、目关系,由属于目关系,由属于R或属于或属于S的元的元组组成成v可表示可表示为:RS = t|t Rt S RS那么那么RSRS为:2差差Except vR和Sv具有一样的目nv相应的属性取自同一个域vR-S v仍为n目关系,由属于R而不属于S的一切元组组成v可表示为: R -S = t|tRtS R-SR-S那么那么R-SR-S为:3交交Intersect vR和Sv具有一样的目nv相应的属性取自同一个域vRSv仍为n目关系,由既属于R又属于S的元组组成v可表示为:RS = t|t Rt S v RS = R (R-S= ?RS那么那么RSRS为:4笛卡尔积笛卡尔积Cartesian Prod
23、uctv关系R、S的笛卡尔积是两个关系的元组的集合所组成的新关系。vRS:v属性是R和S的组合n+m个列,有反复v元组是R和S一切元组的能够组合K1k2个元组v是R、S的无条件衔接,使恣意两个关系的信息能组合在一同v记作RS=tr ts |tr R tsS 2、专门的关系运算、专门的关系运算v选择、投影、衔接、除法v符号引见v1R,tR,tAiv2A,tA, Av3tr tsv4象集Zx1 R,tR,tAi 设关系方式为R(A1,A2,An) 它的一个关系设为R tR表示t是R的一个元组 tAi那么表示元组t中相应于属性Ai的一个分量2A,tA,A 假设A=Ai1,Ai2,Aik,其中Ai1,
24、Ai2,Aik是A1,A2,An中的一部分,那么A称为属性列或属性组。 tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。 A那么表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。 3tr ts R为n目关系,S为m目关系。 tr R,tsS, tr ts称为元组的衔接。 tr ts是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。4象集Zx 给定一个关系RX,Z,X和Z为属性组。 当tX=x时,x在R中的象集Images Set为: Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合vx1
25、在R中的象集v Zx1 =Z1,Z2,Z3,vx2在R中的象集v Zx2 =Z2,Z3,vx3在R中的象集v Zx3=Z1,Z31选择选择Selection v 从关系R中选择符合条件的元组构成新的关系vF(R) = t|tRF(t)= 真v为选取运算符vF(R),表示从R中选择满足条件(F表示选择条件)的元组v 选取运算实践上是从关系R中选取使逻辑表达式为真的元组,是从行的角度进展的运算,即对行的运算。选择运算练习选择运算练习ABC367257723443RA5(R) ABC367257443A5 C=7(R) ABC367257例1:查询计算机系的全体学生 Sdept = IS (Stud
26、ent) 或 5 =IS (Student) 例2:查询年龄小于20岁的男同窗 Sage 20 (SSex=男) (Student) 或4 20 (3=男) (Student)留意:对于5 =IS,其中5为DEPT的属性序号,表示从Student中挑选第5个分量值等于IS的元组所构成的关系。字符型数据的值应该运用单引号括起来,例如:IS,计算机,男。2投影投影Projectionv对R的垂直分割,从关系R中选择假设干属性组成新的关系vA1,A2,An(R),表示从R中选择属性集A1,A2,An组成新的关系v对列的运算v投影运算的结果中,也要去除能够的反复元组v例1:查询学生关系中有哪些系vSd
27、ept(Student) 或 5(Student) v例2:查询学生关系中学生的姓名和所在系vSname,Sdept(Student)v例3:查询男同窗所在的系vSdept(SEX=男 Student)v例4:查询学号为95001的学生的课程号及成果vCno,Grade(Sno=95001 S C)v其中5(Student) 表示关系Student只取第5列,组成新的关系。3衔接衔接Join v从RS的笛卡尔积结果集中选取在指定的属性集上满足条件的元组,组成新的关系。vR S = | tr Rts StrAtsB vA和B:分别为R和S上度数相等且可比的属性组v是比较运算符 ABtr tsvR
28、 S是在R和S的笛卡尔积中挑选第a个分量和S中第b个分量满足运算的元组。v两类常用衔接运算v等值衔接为“的衔接运算v自然衔接一种特殊的等值衔接 AB不等衔接不等衔接那么那么 结果结果为为 等值衔接等值衔接RSR.B=S.B自然衔接自然衔接RS等值衔接与自然衔接的区别等值衔接与自然衔接的区别v1. 等值衔接中不要求相等属性值的属性名一样,而自然衔接要求相等属性值的属性名必需一样。即两关系只需在同名属性才干进展自然衔接。如上例R中的C列和S中的D列可进展等值衔接,但由于属性名不同,不能进展自然衔接。v2. 等值衔接不将反复属性去掉,而自然衔接去掉反复属性。也可以说,自然衔接是去掉反复列的等值衔接。
29、如上例R中的B列和S中的B列进展等值衔接时,结果有两个反复的属性列B,而进展自然衔接时,结果只需一个属性列B。 v外衔接v假设把舍弃的元组也保管在结果关系中,而在其他属性上填空值(Null),这种衔接就叫做外衔接OUTER JOIN。v左外衔接v假设只把左边关系R中要舍弃的元组保管就叫做左外衔接(LEFT OUTER JOIN或LEFT JOIN)v右外衔接v假设只把右边关系S中要舍弃的元组保管就叫做右外衔接(RIGHT OUTER JOIN或RIGHT JOIN)。 等值衔接与自然衔接的区别等值衔接与自然衔接的区别v1. 等值衔接中不要求相等属性值的属性名一样,而自然衔接要求相等属性值的属性
30、名必需一样。即两关系只需在同名属性才干进展自然衔接。v2. 等值衔接不将反复属性去掉,而自然衔接去掉反复属性。也可以说,自然衔接是去掉反复列的等值衔接。RS自然衔接自然衔接v外衔接外衔接v假设把舍弃的元组也保管在结果关系中,而在其他属性上填空假设把舍弃的元组也保管在结果关系中,而在其他属性上填空值值(Null)(Null),这种衔接就叫做外衔接,这种衔接就叫做外衔接OUTER JOINOUTER JOIN。v左外衔接左外衔接v假设只把左边关系假设只把左边关系R R中要舍弃的元组保管就叫做左外衔接中要舍弃的元组保管就叫做左外衔接(LEFT (LEFT OUTER JOINOUTER JOIN或或
31、LEFT JOIN)LEFT JOIN)v右外衔接右外衔接v假设只把右边关系假设只把右边关系S S中要舍弃的元组保管就叫做右外衔接中要舍弃的元组保管就叫做右外衔接(RIGHT (RIGHT OUTER JOINOUTER JOIN或或RIGHT JOIN)RIGHT JOIN)。 ABCBDa1b12b15a1b24b26a2b36b47a2b48b58RSABCDa1b125a1b246a2b36nulla2b487nullb5null8外衔接外衔接ABCDa1b125a1b246a2b36nulla2b487左外衔接左外衔接ABCDa1b125a1b246a2b487nullb5null8右外衔接右外衔接3、关系代数的运用实例、关系代数的运用实例例:数据库中有三个关系S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE)查询讲授数据库课程的教师检索学习课程号为C2的学生的学号与成果检索学习课程号为C2的学生的学号与姓名检索选修课程名为Maths的学生学号与姓名检索选修课程号为C2或C4的学生学号检索不学C2课的学生姓名与年龄