数据库系统概念关系模型总结.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据库系统概念关系模型总结.pptx》由会员分享,可在线阅读,更多相关《数据库系统概念关系模型总结.pptx(110页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、17 三月 20231提纲2.1关系数据库的结构2.2关系代数基本运算2.3附加的关系代数运算2.4扩展的关系代数运算2.5空值2.6数据库的修改本章之后讲解5.1:元组关系演算Chapter3-4:sql第1页/共110页17 三月 20232关系模型回顾于70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖关系理论是建立在集合代数理论基础上的,有着坚实的数学基础早期代表系统System:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商业数据库系统Oracle,SQL Server,DB2Access,Foxpro,Foxbase第2页/共110页17 三月 2
2、0233关系数据结构单一的数据结构-关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构-二维表从用户角度,关系模型中数据的逻辑结构是一张二维表 第3页/共110页17 三月 20234关系基本概念域(Domain)一组值的集合,这组值具有相同的数据类型如整数的集合、字符串的集合、全体学生的集合笛卡尔积(Cartesian Product)一组域D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,n笛卡尔积的每个元素(d1,d2,dn)称作一个n-元组(n-tuple)元组的每一个值di叫做一个分量(component)若Di的基数为mi,则笛卡尔
3、积的基数为第4页/共110页17 三月 20235关系基本概念例:设 D1为教师集合(T)=t1,t2 D2为学生集合(S)=s1,s2,s3 D3为课程集合(C)=c1,c2 则D1D2D3是个三元组集合,元组个数为232,是所有可能的(教师,学生,课程)元组集合笛卡尔积可表示为二维表的形式TSCt1s1c1t1s1c2t1s2c1t2s3c2第5页/共110页17 三月 20236关系基本概念关系笛卡尔积D1D2Dn的子集叫做在域D1,D2,Dn上的关系,用R(D1,D2,Dn)表示R是关系的名字,n是关系的度或目关系是笛卡尔积中有意义的子集关系也可以表示为二维表关系TEACH(T,S,C
4、)TSCt1s1c1t1s1c2t1s2c1t2s3c2元组属性第6页/共110页17 三月 20237关系基本概念关系的性质列是同质的即每一列中的分量来自同一域,是同一类型的数据如TEACH(T,S,C)=(t1,s1,c1),(t1,t2,c1)是错误的不同的列可来自同一域,每列必须有不同的属性名如P=t1,t2,s1,s2,s3,C=c1,c2,则TEACH不能写成TEACH(P,P,C),还应写成TEACH(T,S,C)第7页/共110页17 三月 20238关系基本概念行列的顺序无关紧要遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列但也有许多数据库产品没
5、有遵循这一性质,例如FoxPro仍然区分了属性顺序任意两个元组不能完全相同(集合内不能有相同的两个元素)由笛卡尔积的性质决定,但许多关系数据库产品没有遵循这一性质例如,Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件第8页/共110页17 三月 202310数据库模式DB schema关系的模式和实例关系模式(型),关系(变量),实例(值)表述方式关系模式:S(sno,sname,dept)关系及关系模式:scSC不同关系中属性名称相同,用以阐述不同关系的元组之间的联系ssccSnoSnameDeptSnoCnoScoreCnoCnameS1甲
6、计S1C180C1DSS2乙软S1C290C2DBS3丙软S2C170第10页/共110页17 三月 202311数据库模式关系模式表现了型的概念,它代表着表的框架;关系表现为值的概念,成为关系实例一个关系模式下可以建立多个关系,例如在学生关系的关系模式下,可以为全校所有班级各建一个学生表表是动态的,是数据库中数据的快照关系数据库是关系的集合,其中每个关系都有自己的关系模式 第11页/共110页17 三月 202312模式构造问题S同SC合并为一个表如何?优点:表的数量少缺点:数据冗余、被迫引入空值、插入异常、删除异常模式构造的方法和原则SCSnoCnoScoreS1C180S1C290S2C
7、170SSnoSnameS1甲S2乙S3丙S-SCSnoSnameCnoScoreS1甲C180S1甲C290S2乙C170S3丙第12页/共110页17 三月 202313模式构造问题银行例子第13页/共110页17 三月 202314模式构造问题第14页/共110页17 三月 202315其他可能的模式优点:表的数量少缺点:数据冗余、被迫引入空值、插入异常、删除异常第15页/共110页17 三月 202316码超码(superkey)是一个或多个属性的集合,这些属性的集合可以使我们在一个关系中唯一地标识一个元组候选码(Candidate Key)关系中的一个属性组,其值能唯一标识一个元组。
8、若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码,如DEPT中的D#,DN都可作为候选码任何一个候选码中的属性称作主属性,如SC中的S#,C#第16页/共110页17 三月 202317码主码(Primary Key)进行数据库设计时,从一个关系的多个候选码中选定一个作为主码,如可选定D#作为DEPT的主码外部码(Foreign Key)关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码,如S关系中的D#属性R是参照关系(Referencing Relation)S是被参照关系(Referenced Relation)R通过外
9、码F参照关系S如何确定超码按照现实世界语义约束定义码不能依据对数据的归纳总结定义码第17页/共110页17 三月 202318模式图schema diagram模式图表示各关系模式l属性l主码l关系引用第18页/共110页17 三月 202319我们常用的例子数据结构单一的数据结构关系实体集、联系都表示成关系DEPT(DEPT(D#D#,DN,DN,DEANDEAN)S(S(S#S#,SN,SEX,AGE,SN,SEX,AGE,D#D#)C(C(C#C#,CN,CN,PC#PC#,CREDIT),CREDIT)SC(SC(S#,C#S#,C#,SCORE),SCORE)PROF(PROF(P#
10、P#,PN,PN,D#D#,SAL),SAL)学生学生选修属于系系教师教师工作管理课程课程先修第19页/共110页17 三月 202320关系模型DEANDND#D#DEPTD#AGESEXSNS#S#SPC#CREDITCNC#C#CD#SALPNP#P#PROFSCOREC#C#S#S#SC第20页/共110页17 三月 202321例子S#SNAGESDS#C#G9801张三20D19801C1629805李四21D29801C2739805C380S SC 第21页/共110页17 三月 202322关系模式的完整性实体完整性关系的主码中的属性值不能为空值空值:不知道或无意义意义:关系
11、对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的第22页/共110页17 三月 202323关系模式的完整性关系模型必须遵守实体完整性规则的原因实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识相应地,关系模型中以主码作为唯一性标识主码中的属性即主属性不能取空值空值就是“不知道”或“无意义”的值主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与实体的可区分性相矛盾,因此这个规则称为实体完整性第
12、23页/共110页17 三月 202324关系模式的完整性注意实体完整性规则规定基本关系的所有主属性都不能取空值例选修(学号,课程号,成绩)“学号、课程号”为主码,则两个属性都不能取空值。第24页/共110页17 三月 202325关系模式的完整性参照完整性(Referential Integrity)在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用例1 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,院系编号,年龄)专业(院系编号,专业名)第25页/共110页17 三月 202326关系模式的完整性参照完整性如果关系R2的外部码Fk与
13、关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在例如关系S在D#上的取值有两种可能空值,表示该学生尚未分到任何系中若非空值,则必须是DEPT关系中某个元组的D#值,表示该学生不可能分到一个不存在的系中第26页/共110页17 三月 202327关系模式的完整性第27页/共110页17 三月 202328关系模式的完整性学生、课程、学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)第28页/共110页
14、17 三月 202329关系模式的完整性学生实体及其内部的领导联系(一对多)第29页/共110页17 三月 202330关系模式的完整性用户定义的完整性用户针对具体的应用环境定义的完整性约束条件如S#要求是8位整数,SEX要求取值为“男”或“女”系统支持实体完整性和参照完整性由系统自动支持系统应提供定义和检验用户定义的完整性的机制第30页/共110页17 三月 202331关系模式的完整性课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4第31页/共110页17 三月 202332关系模式的完整性供应商号供应商名所在城市B01
15、红星北京S10宇宙上海T20黎明天津Z01立新重庆零件号颜色供应商号010红B01312白S10 201蓝T20 今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A.(037,绿,null)B.(null,黄,T20)C.(201,红,T20)D.(105,蓝,B01)E.(101,黄,T11)零件关系P(主码是“零件号”,外码是“供应商号”)供应商关系S(主码是“供应商号”)第32页/共110页17 三月 202333查询语言 关系操作关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time)的方式 而非关系型的数据操作方式是一次一记录(Recor
16、d-at-a-time)关系操作可以用关系代数和关系演算两种方式来表示,它们是相互等价的 如用关系代数来表示关系的操作,可以有选择、投影、连接、除、交、差、并等第33页/共110页17 三月 202334查询语言关系数据语言的特点一体化一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对关系的操作非过程化用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成面向集合的存取方式操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一
17、次一记录的方式第34页/共110页17 三月 202335查询语言抽象的查询语言关系代数用对关系的运算来表达查询,需要指明所用操作关系演算用谓词来表达查询,只需描述所需信息的特性元组关系演算谓词变元的基本对象是元组变量域关系演算谓词变元的基本对象是域变量第35页/共110页17 三月 202336查询语言具体系统中的实际语言SQL介于关系代数和关系演算之间,由IBM公司在研制System R时提出QUEL基于Codd提出的元组关系演算语言ALPHA,在INGRES上实现QBE基于域关系演算,由IBM公司研制第36页/共110页17 三月 2023372.2关系代数运算汇总基本运算一元运算选择、
18、投影、更名多元运算笛卡儿积、并、集合差其它运算集合交、连接、自然连接、除、赋值第37页/共110页17 三月 2023382.2关系代数的一些记号 给定关系模式R(A1,A2,An),设R是它的一个具体的关系,tR是关系的一个元组分量设tR,则tAi表示元组t中相应于属性Ai的一个分量属性列A=Ai1,Ai2,AikA1,A2,An,称A为属性列A表示A1,A2,An中去掉A后剩余的属性组tA=(tAi1,tAi2,tAik)第38页/共110页17 三月 202339基本运算-选择运算定义在关系R中选择满足给定条件的元组(从行的角度)F(R)=t|t R,F(t)=真F是选择的条件,t R,
19、F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:X Y X,Y是属性名、常量、或简单函数 是比较算符,,第39页/共110页17 三月 202340基本运算-选择运算选择运算是从行的角度进行的运算第40页/共110页17 三月 202341基本运算-选择运算ABC367257723443RA5(R)ABC367257443A5 C=7(R)ABC367257第41页/共110页17 三月 202342基本运算-选择运算示例找perridge 支行的存款branch_name=perridge(account)找年龄不小于20的男学生AGE20 SEX
20、=male(S)第42页/共110页17 三月 202343基本运算-投影定义从关系R中取若干列组成新的关系(从列的角度)A A(R)=tA|t(R)=tA|t R ,AR ,A R R投影的结果中要去掉相同的行cbcfedcbaCBABCbcef R R B,C(R)第43页/共110页17 三月 202344基本运算-投影投影操作主要是从列的角度进行运算第44页/共110页17 三月 202345基本运算-投影示例给出所有学生的姓名和年龄SN,AGE(S)第45页/共110页17 三月 202346基本运算-投影示例找001号学生所选修的课程号C#(S#=001(SC)第46页/共110页
21、17 三月 202347基本运算-并运算定义所有至少出现在两个关系中之一的元组集合R R S=r|rS=r|r R R r r S S R R S Sl两个关系R和S若进行并运算,则它们必须是相容的:l关系R和S必须是同元的,即它们的属性数目必须相同l对i,R的第i个属性的域必须和S的第i个属性的域相同l不要求对应列同名第47页/共110页17 三月 202348基本运算-并运算ABC367257723443RABC345723SABC367257723443345RS 第48页/共110页17 三月 202349基本运算-并运算示例求选修了001号或002号课程的学生号方案1:S#(C#=0
22、01 C#=002(SC)方案2:S#(C#=001(SC)S#(C#=002(SC)第49页/共110页17 三月 202350基本运算-差运算定义所有出现在一个关系而不在另一关系中的元组集合R R S=r|rS=r|r R R r r S S R和S必须是相容的R R S SS S R R第50页/共110页17 三月 202351基本运算-差运算ABC367257723443RABC345723SABC367257443RS ABC345SR 第51页/共110页17 三月 202352基本运算-差运算示例求选修了001号而没有选002号课程的学生号S#(C#=001(SC)S#(C#=
23、002(SC)求未选修c1号课程的学生号 方案1:S#(S)S#(C#=c1(SC)方案2:S#(C#c1(SC)哪一个正确?96c2s195c1s290c1s1GC#S#s3s2s1AGESNS#第52页/共110页17 三月 202353基本运算的分配律投影和并可以分配pid,name(ST)pid,name(S)pid,name(T)投影和差不可分配pid,name(S-T)pid,name(S)-pid,name(T)tPidTnoTnamep1t1甲p3t2丙sPidSnoSnamep1s1甲p2s2乙第53页/共110页17 三月 202354基本运算-笛卡尔积运算元组的连串(Co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概念 关系 模型 总结
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内