Chapter3TheRelationalModel(关系模型)-概述RelationalDBS:基于关系模型的DBS关系数据结构关系操作完整性约束:二维表(关系)表达实体、联系1.特点:集合操作查询:找满足条件的~更新:增、删、改2.分类:关系代数3.语言:关系演算元组演算域演算混合型:实体~参照~用户定义的~由DBMS支持如SQL,QBE第5,6章;第7章用关系运算来表达查询第4章用谓词公式来表达查询本章Chapter3TheRelationalModel(关系模型)3.1BriefHistoryoftheRelationalModel3.2Terminology3.3RelationalIntegrity/IntegrityConstraints3.4Views3.1BriefHistoryoftheRelationalModelRelationalmodelwasfirstproposedbyE.F.Coddinhisseminal(开创性的)paper‘Arelationalmodelofdataforlargeshareddatabanks’(Codd,1970)(关系模型由E.F.Codd在其开创性论文“~”中首次提出).ThispaperisnowacceptedasalandmarkinDBS(这篇论文现在已被看成DBS发展过程中的一个地标).Relationalmodel’sobjectives(关系模型的目标):Toallowahighdegreeofdataindependence.(允许高度的数据独立性)Toenabletheexpansionofset-orientedDML.(扩充面向集合的DML)3.1BriefHistoryoftheRelationalModelHistorically,therewerethreefamousprojects(关系数据库发展史上有3个著名项目):IBM’sSystemR(late1970s),whichledto(1970年代后期:IBM的SystemR,项目成果):developmentofSQL(提出并发展了SQL语言);productionofcommercialRDBMSs:DB2,Oracle(奠定了商用RDBMS产品DB2、ORACLE的基础)INGRES(InteractiveGraphicsRetrievalSystem)ofUniversityofCaliforniaatBerkeley(加利福尼亚大学柏克利分校的INGRES(交互式图形检索系统)),whichcontributedtomanyrelationalconcepts(提出许多关系概念),LedtocommercialRDBMSs:Sybase,Informix,etc.(奠定了商用RDBMS产品Sybase、Informix的基础)PRTV(PeterleeRelationalTestVehicle)ofIBMUKScientificCentreinPeterlee,whichresearched(IBM英国彼得利科研中心的PRTV(彼得利关系测试手段),研究内容为):queryprocessingandoptimization(查询处理和优化),andfunctionalextension(功能扩展).3.1BriefHistoryoftheRelationalModelOwingtothepopularityoftherelationalmodel,manynon-relationalsystemsnowprovidearelationaluserinterface(鉴于关系模型日益流行,许多非关系系统都提供了关系型用户接口,例如早期的层次和网状数据库).Relationalmodelhavebeenextendedto(关系模型已在以下两个方面得到扩充):supportobject-orientedconcepts(支持面向对象的概念,产生:对象关系模型);supportdeductivecapabilities(支持演绎推理能力,产生:演绎数据库)Chapter3TheRelationalModel(关系模型)3.1BriefHistoryoftheRelationalModel3.2Terminology3.3RelationalIntegrity/IntegrityConstraints3.4Views3.2Terminology1.RelationalDataStructure2.MathematicalDefinitionofRelation3.DatabaseRelations4.PropertiesofRelations5.RelationalKeys6.RepresentingRelationalDatabaseSchemas1.RelationalDataStructureRelation(关系)isatablewithcolumnsandrows(二维表).BranchbranchNostreetcitypostcodeB00522DeerRdLondonSW14EHB00716ArgyllStAberdeenAB23SUB003163MainStGlasgowG119QXB00432ManseRdBristolBS991NZB00256CloverDrLondonNW106EURelationAttributeAttributeDomainNameMeaningDomainDefinitionbranchNoBranchNumberThesetofallpossiblebranchnumberscharacter:size4,rangeB001-B999streetStreetNamesThesetofallstreetnamesinBritaincharacter:size25cityCityNamesThesetofallcitynamesinBritaincharacter:size15postcodePostcodesThesetofallpostcodesinBritaincharacter:size8–Onlyappliestologicalstructureofthedatabase,notthephysicalstructure(只是逻辑结构而非物理结构).Attribute(属性)isanamedcolumnofarelation(关系的列).Domain(域)isthesetofallowablevaluesforattributes(允许的属性取值构成的集合,属性的取值范围).1.RelationalDataStructureTuple(元组)isarowofarelation(关系的一行).BranchbranchNostreetcitypostcodeB00522DeerRdLondonSW14EHB00716ArgyllStAberdeenAB23SUB003163MainStGlasgowG119QXB00432ManseRdBristolBS991NZB00256CloverDrLondonNW106EURelationDegree(度、目)isthenumberofattributesinarelation(属性数)Cardinality(基数)isthenumberoftuplesinarelation(元组数).RelationalDatabase(关系数据库)isacollectionofnormalized(规范化)relationswithdistinctrelationnames(关系名不同的若干规范关系的集合).TupleDegree=4CardinalityAttribute1.RelationalDataStructureAlternativeterminology(可供选择的等价术语):FormaltermsAlternative1Alternative2Relation(关系)Table(表)File(文件)Tuple(元组)Row(行)Record(记录)Attribute(属性)Column(列)Field(字段)3.2Terminology1.RelationalDataStructure2.MathematicalDefinitionofRelation3.DatabaseRelations4.PropertiesofRelations5.RelationalKeys6.RepresentingRelationalDatabaseSchemasisthesetofalln-tuples,2.MathematicalDefinitionofRelationCartesianproduct(笛卡儿积):AnelementinD1(D1中任意一个元素)…d1…D1…d2…D2…dn…Dn……AnelementinD2(D2中任意一个元素)LetD1,…,Dnbensets.AnelementinDn(Dn中任意一个元素)TheirCartesianproduct,D1×D2×...×Dn,D1×D2×…×Dn…(d1,d2,…,dn)…m1elementsm2elementsmnelementsm1×m2×…mnelementsn-tuples(n元组,简称元组)thenumberofelementsinaset:CardinalitywherethefirstcomponentisanelementfromD1,thesecondcomponentisanelementfromD2,andsoon.Component(分量)TheCartesianproductofnsets(D1,D2,...,Dn)isdenotedas:D1×D2×...×Dn={(d1,d2,...,dn)|d1D1,d2D2,...,dnDn}orn×Di={(d1,d2,...,dn)|d1D1,d2D2,...,dnDn}i=1ExampleofCartesianproduct张清正刘逸导师D1计算机信息专业D2李勇刘晨王名研究生D3D1×D2×D3=(张清正,计算机,李勇)张清正刘逸导师D1计算机信息专业D2李勇刘晨王名研究生D3(张清正,计算机,李勇)(张清正,计算机,刘晨)ExampleofCartesianproductD1×D2×D3=张清正刘逸导师D1计算机信息专业D2李勇刘晨王名研究生D3(张清正,计算机,李勇)(张清正,计算机,刘晨)(张清正,计算机,王名)ExampleofCartesianproductD1×D2×D3=张清正刘逸导师D1计算机信息专业D2李勇刘晨王名研究生D3(张清正,计算机,李勇)(张清正,计算机,刘晨)(张清正,计算机,王名)(张清正,信息,李勇)ExampleofCartesianproductD1×D2×D3=张清正刘逸导师D1计算机信息专业D2李勇刘晨王名研究生D3(张清正,计算机,李勇)(张清正,计算机,刘晨)(张清正,计算机,王名)(张清正,信息,李勇)(张清正,信息,刘晨)ExampleofCartesianproductD1×D2×D3=张清正刘逸导师D1计算机信息专业D2李勇刘晨王名研究生D3(张清正,计算机,李勇)(张清正,计算机,刘晨)(张清正,计算机,王名)(张清正,信息,李勇)(张清正,信息,刘晨)(张清正,信息,王名)ExampleofCartesianproductD1×D2×D3=张清正刘逸导师D1计算机信息专业D2李勇刘晨王名研究生D3(张清正,计算机,李勇)(张清正,计算机,刘晨)(张清正,计算机,王名)(张清正,信息,李勇)(张清正,信息,刘晨)(张清正,信息,王名)(刘逸,计算机,李勇)ExampleofCartesianproductD1×D2