1TABLEAnarrangementofwords,numbers,orsigns,orcombinationsofthem,asinparallelcolumns,toexhibitasetoffactsorrelationsinadefinite,compact,andcomprehensiveform;asynopsisorscheme.——Webster’sDictionaryoftheEnglishLanguage2第二章关系数据库2.1概述2.2关系基本概念2.3关系模型2.4关系代数2.5关系演算3•第二章学习目标关系模型的数据表示完整性约束的表达数据操纵的实现关系代数关系演算42.1概述一九七0年,IBM公司的E.F.Codd发表论文,首先提出了关系数据模型。随后他又发表一系列论文,阐述了关系规范化的概念。(ARelationalModeofDataforLargeSharedDataBanks)Thepurposeofmodelsisnottofitthedatabuttosharpenthequestion(SamuelKarlin)早期代表系统SystemR:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商业数据库系统Oracle,Informix,Sybase,DB2,SQLServerAccess,Foxpro,FoxbasePostgresSQL,Mysql5•Codd的十二条准则Rule1:TheInformationRuleRule2:GuaranteedAccessRuleRule3:SystematicTreatmentofNullValuesRule4:DynamicOn-lineCatalogBasedontheRelationalModelRule5:ComprehensiveDataSublanguageRuleRule6:ViewUpdatingRuleRule7:High-levelInsert,Update,andDeleteRule8:PhysicalDataIndependenceRule9:LogicalDataIndependenceRule10:IntegrityIndependenceRule11:DistributionIndependenceRule12:NonsubversionRule62.2关系基本概念域(Domain)笛卡尔积(Car’tesianProduct)关系(Relation)候选码(CandidateKey)主码(PrimaryKey)主属性(PrimaryAttribute)外部码(ForeignKey)72.2关系基本概念(续)域一组值的集合,这组值具有相同的数据类型。笛卡尔积一组域D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,…,n}笛卡尔积的每个元素(d1,d2,…,dn)称作一个n-元组(n-tuple)元组的每一个值di叫做一个分量(component)若Di的基数为mi,则笛卡尔积的基数为inim182.2关系基本概念(续)例:设D1为教师集合(T)={t1,t2}D2为学生集合(S)={s1,s2,s3}D3为课程集合(C)={c1,c2}则D1×D2×D3是个三元组集合,元组个数为2×3×2,是所有可能的(教师,学生,课程)元组集合92.2关系基本概念(续)笛卡儿积可表示为一个二维表TSCt1s1c1t1s1c2t1s2c1………t2s3c2元组域(课程集合)102.2关系基本概念(续)学号姓名性别年龄住址班级0012011张三男21武汉0010012012李四女18北京0010012013王五男18长沙0020012012李四男18北京002。。。。。。112.2关系基本概念(续)关系笛卡尔积D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,用R(D1,D2,…,Dn)表示R是关系的名字,n是关系的度或目单元关系(unaryrelation)二元关系(binaryrelation)关系是笛卡尔积中有意义的子集,关系也可以表示为二维表关系TEACH(T,S,C)TSCt1s1c1t1s1c2t1s2c1t2s3c2元组(行)属性(列)122.2关系基本概念(续)关系的性质列是同质的行列的顺序无关紧要任意两个元组不能完全相同每一分量必须是不可再分的数据。(原子特性)不同的属性,属性名不能相同学生姓名学号年月出生日期日132.2关系基本概念(续)候选码关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。任何一个候选码中的属性称作主属性主码进行数据库设计时,从一个关系的多个候选码中选定一个作为主码主码的选择问题外部码关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码。142.2关系基本概念(续)CidCnameAddressDiscnt%C001李磊武汉5C002王平宜昌6C003刘阳锦州10C005李涛南昌8属性(列)属性名元组(行)主码字符串实数域关系152.2关系基本概念(续)补充说明笛卡儿积不满足交换律,因此,按照数学定义,(d1,d2,…,dn)的(d2,d1,…,dn)。当关系作为关系数据模型的数据结构时,我们需要给予如下的限定和扩充:(1)限定关系数据模型中的关系必须为有限集合(2)关系元组的无序性:(d1,d2,…,dn)=(d2,d1,…,dn)162.3关系模型2.3.1数据结构2.3.2关系模式2.3.3关系的完整性约束2.3.4关系操作2.3.5关系语言172.3关系模型2.3.1数据结构学生课程选修属于系教师教授工作管理DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)SC(S#,C#,SCORE)EMPL(P#,PN,D#,SAL)TEACH(P#,C#)182.3关系模型(续)192.3关系模型(续)202.3关系模型(续)2.3.2关系模式1.定义关系的描述称作关系模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等。其中,域名以及属性向域的映射常常直接反映属性的类型、长度。形式化为:R(U,D,dom,F),简记为R(A1,A2,…,An)或R(U)。2.说明212.3关系模型(续)2.3.2关系模式3.关系数据库关系模式的集合,数据库描述,数据库的内涵(Intension)某一时刻关系的集合,数据库的外延(Extension)关系模式关系型值静态、稳定动态,内容随时间变化222.3关系模型(续)2.3.3关系的完整性约束(IntegrityConstraint,IC)1.作用2.实体完整性3.参照完整性4.用户自定义完整性5.实现232.3关系模型(续)2.3.3关系的完整性约束(IntegrityConstraint,IC)2.实体完整性•空值:不知道或无意义•关系的主属性中的属性值不能为空值•意义242.3关系模型(续)2.3.3关系的完整性约束(IntegrityConstraint,IC)3.参照完整性•如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1中某个元组的Pk值,或者为空值•意义:•示例:关系S在D#上的取值有两种可能•空值,…•若非空值,…•约束方式:•插入规则、删除规则、修改规则252.3关系模型(续)2.3.3关系的完整性约束(IntegrityConstraint,IC)3.参照完整性•父表•子表•外码的取值•插入规则:在子表中插入记录时应遵循的规则•限制,递归,忽略•删除规则:在父表中删除记录时应遵循的规则;•级联,限制,置空值删除,忽略•更新规则:当父表的关键字被修改时应遵循的规则;•级联,限制,忽略26举例:Class(clano,major,dept,tno)Students(sno,sname,sex,birthdate,clano)Sc(sno,cno,point1,point2)本身既是主属性,又是外部码本身不是主属性的外码272.3关系模型(续)供应商号供应商名所在城市B01红星北京S10宇宙上海T20黎明天津Z01立新重庆零件号颜色供应商号010红B01312白S10201蓝T20今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A.(null,‘黄’,‘T20’)B.(‘201’,‘红’,‘T20’)C.(‘105’,‘蓝’,‘B01’)D.(‘101’,‘黄’,‘T11’)零件关系P(主码是“零件号”,外码是“供应商号”)供应商关系S(主码是“供应商号”)282.3关系模型(续)2.3.3关系的完整性约束(IntegrityConstraint,IC)4.用户定义的完整性•用户针对具体的应用环境定义的完整性约束条件•如S#要求是8位整数,SEX要求取值为“男”或“女”5.系统支持•实体完整性和参照完整性由系统自动支持•系统应提供定义和检验用户定义的完整性的机制292.3关系模型(续)2.3.4关系操作1.说明关系操作,一次一集合(Set-at-a-time)的方式而非关系型的数据操作方式,一次一记录(Record-at-a-time)关系操作可以用关系代数和关系演算两种方式来表示•关系代数是一种代数的符号•关系演算是一种逻辑符号302.3关系模型(续)2.3.4关系操作2.分类关系代数•传统集合运算(并,交,差…)•专门关系运算(选择,投影,连接)关系演算•域关系演算•元组(记录)关系演算312.3关系模型(续)2.3.5关系语言1.分类关系代数•用对关系的运算来表达查询,需要指明所用操作关系演算•用谓词来表达查询,只需描述所需信息的特性元组关系演算•谓词变元的基本对象是元组变量域关系演算•谓词变元的基本对象是域变量322.3关系模型(续)2.3.4关系语言2.实际应用SQLQUELQBE332.3关系模型(续)2.3.5关系语言3.关系数据语言的特点一体化非过程化面向集合的存取方式34•关系模型的优缺点优点*数据结构简单(实体、联系、数据字典、索引)*有扎实的理论基础(关系运算理论、关系模式设计理论)*数据独立性强*实现集合操作*直接用关系表示M:N的联系缺点*查询效率低*内存资源消耗大*设计人员应熟悉关系理论35•2.4关系代数2.4.1关系代数运算介绍2.4.2传统的集合运算2.4.3专门的关系运算2.4.4其他操作362.4关系代数(续)2.4.1关系代数运算介绍1.运算汇总基本运算•一元运算•选择、投影•多元运算•笛卡儿积、并、交、集合差其它运算•自然连接、除扩展运算•内、外连接37???传统集合运算并、差、交、笛卡尔积∈38???专门关系运算投影、选择、联接392.4关系代数(续)2.4.1关系代数运算介绍2.记号说明给定关系模式R(A1,A2,…,An),设R是它的一个具体的关系,tR是关系的一个元组•分量设tR,则t[Ai]表示元组t中相应于属性Ai的一个分量•属性列Ai={Ai1,Ai2,…,Aik}{A1,A2,…,An},称A为属性列Ā表示{A1,A2,…,An}中去掉Ai后剩余的属性组t[Ai]=(t[Ai1],t[Ai2],…,t[Aik])402.4关系代数(续)2.4.1关系代数运算介绍3.关系代数表达式•基本关系运算的有限次复合而成的式子。∏S#(C#=001(SC))∪∏S#(C#=002(SC))∏DN(S#=001(S)DEPT)412.4关系代数(续)2.4.3传统的集合运算1.并定义•所有至少出