数据库教学课件:第2章 数据模型1_第1页
数据库教学课件:第2章 数据模型1_第2页
数据库教学课件:第2章 数据模型1_第3页
数据库教学课件:第2章 数据模型1_第4页
数据库教学课件:第2章 数据模型1_第5页
已阅读5页,还剩170页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章数据模型2.1综述2.2经典数据模型回顾2.3面向对象数据模型2.4可扩展/对象-关系数据模型2.5半结构化数据模型2.6数据的语义2.7数据模型统一框架:本体2.1综述

为什么需要数据模型?如何描述数据模型?数据模型有哪些内容?如何评价数据模型?数据模型为什么有层次性?数据模型的未来?

为什么需要数据模型?数据库中的数据是有组织的,即不只有数据,还包括描述数据的部分,通常称为数据模式(schema)早期的数据库系统一般都是在应用中直接描述模式但是,用这种方式描述企业的数据需求,层次太低,不便用户理解因此,需要一种更高层次的描述模式的方法,即数据模型现有的数据库系统均是基于某种数据模型为什么需要数据模型?为了将数据的定义与操作从应用程序中分离出来,交由DBMS定义和管理,DBMS需要采用某种数据结构来定义、存储所要管理的数据这种狭义的数据结构即相当于DBMS的数据模型数据抽象数据模型是数据库技术的核心数据模型既提供了考虑面向数据处理应用的概念基础,也提供了使用数据库系统的技术和工具的形式基础数据模型涉及数据的语法(syntactic)和语义(semantics)两个方面而数据抽象则是数据模型的基础数据抽象现实世界信息世界计算机世界概念化形式化用户计算机信息世界数据库系统是面向计算机的,而应用是面向现实世界的,两个世界存在着很大差异要直接将现实世界中的语义映射到计算机世界是十分困难的因此需要引入一个信息世界作为现实世界通向计算机实现的“桥梁”信息世界一方面,信息世界是对现实世界的抽象,从纷繁的现实世界中抽取出能反映现实本质的概念和基本关系另一方面,信息世界中的概念和关系,要以一定的方式映射到计算机世界中去,在计算机系统上最终实现信息世界起到承上启下的作用数据模型的定义(1)数据模型是数据库系统中用于提供信息表示和操作手段的形式构架应用概念数据模型结构数据模型现实世界信息世界计算机世界数据模型的定义(2)Adatamodelisanintegratedcollectionofconceptsfordescribingandmanipulatingdata,relationshipbetweendata,andconstraintsonthedatainanorganization数据模型的定义(3)Adatamodelrepresentationof“realworld”objectsandevents,andtheirassociationsIt’sabstractionthatconcentratesonessential,inherentaspectsofanorganizationandignorestheaccidentalproperties数据模型的定义(4)Adatamodelisacollectionofconceptsfordescribingdatapropertiesanddomainknowledge:DatarelationshipsDatasemanticsDataconstraints数据模型的定义(5)Adatamodelisanabstractmodelthatdescribeshowdataisrepresentedandaccessed数据模型的定义(5)Thetermdatamodelhastwogenerallyacceptedmeanings:Adatamodeltheory,i.e.aformaldescriptionofhowdatamaybestructuredandaccessedAdatamodelinstance,i.e.applyingadatamodeltheorytocreateapracticaldatamodelinstanceforsomeparticularapplication(datamodeling)

DatamodelingUnderstandingofdataFormaldefinitionsforrealworldthingsandrelationsbetweenthemUsinghighlevellanguagelikeUMLBasisofsoftwareengineeringStructuralrepresentationofdata:Relationaldatabases,XML…BasisforcommunicationbetweenITpeopleanddomainexperts对数据模型的要求(1)数据模型是对现实世界的表示,如何把现实世界的对象抽象为计算机可识别、可操作、并且是正确的数据集合,是数据模型的根本所在不同的数据模型提供了模型化数据和信息的不同工具对数据模型的要求(2)能比较真实地模拟现实世界容易为人所理解便于在计算机上实现注意:前2条与第3条之间往往是矛盾的!数据模型的组成要素结构部分:数据结构的集合,用于创建数据库,表示由数据库模拟的实体或对象操作(manipulation)部分:运算子(operators)的集合,这些运算子可以被施用数据结构,更新和查询数据库内的数据内容完整性(integrity)约束部分:规则的集合,用于控制放置在这些数据结构上的约束以便保证结构的完整性数据结构数据结构定义了数据的组织规则,数据库基于这些规则而构建,如关系模型中数据按域、属性、关系等组织构建数据结构是刻画一个数据模型性质最重要的方面数据结构在数据库系统中,人们通常按照其数据结构的类型来命名数据模型例如层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型数据结构是对系统静态特性的描述数据操作数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则数据库主要有检索和更新(包括插入、删除、修改)两大类操作数据操作是对系统动态特性的描述完整性约束数据的完整性约束是一组条件规则的集合完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容例如,在学校的数据库中规定大学生入学年龄不得超过30岁,硕士研究生入学年龄不得超过35岁,学生累计成绩不得有三门以上不及格等等数据模型的分类根据模型描述的内容和应用的层次不同,可划分为:概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计数据模型,也称逻辑模型,主要包括网状模型、层次模型、关系模型、面向对象模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现物理模型,也称存储模型,用于在最低层次上描述数据,与具体实现有关数据模型的分类根据描述方法不同,可划分为:基于记录的逻辑模型:用记录描述数据,每个记录由若干字段组成,与基于对象的逻辑模型不同,它不但描述了数据库的全局逻辑结构,还提供关于实现的高层描述层次模型网状模型关系模型基于对象的逻辑模型:用实体、属性、联系描述数据,用于逻辑层和视图层,包括实体-联系模型(E-R)面向对象模型(object-orientedmodel语义数据模型(Semanticmodel)数据模型的分类根据数据模型的表达方式,可划分为:面向语法的vs.面向语义的Logicbasedvs.Graphbased根据数据模型的应用范围,可划分为:通用的vs.面向领域的……数据模型的分类根据数据模型的发展历史,可划分为:第一代:文件系统第二代:层次和网状第三代:关系第四代:面向对象和可扩展…:半(非)结构化、XML、RDF、Ontologe数据模型的分类(9/9)根据数据对象结构化程度,可划分为:StructureddatamodelsSemi-structureddatamodelsUnstructureddatamodelsStructuredDataModels“Structured”dataDatahavearigidlyandpredefinedschema,thatcanberepresentedbyshortsymbolstringsandnumbersapplication-specificdatatypes:relations,objectsApplicationspecifictypesarecapturedinSchemasSchemasallowrepresentationofreal-worldconceptsastypes“real-worldsemantics”StructuredDataModels

Advantagesofschemasuseapplication-specificpredicatesandfunctionsforselectingdatamaintainintegrityofdataoptimizeaccesstoandstorageofdataStructuredDataModels

Eg,Relationaldatamodelcleanmathematicalfoundation:optimization,normalizationsimpletounderstandeachIDandNameisuniqueSchema:PGATour(ID,Name,Earning,DrivingDist)Unstructureddatamodels“Unstructured”DataAnydatawithoutawell-definedmodelforinformationaccess,suchasthenatural-languagetextofdocumentsorpictorialimagesExamples,WorddocumentsimagesUnstructuredDataManagement(UDM)TheprocessofminingandanalyzingunstructureddatatocaptureactionableinformationValueinUnstructuredData“Amountoftext-baseddataalonewillgrowtoover1600terabytesby2009”–Forrester2007“Amountofunstructureddatainlargecorporationsdoublesevery

18months”-IDC“Theaverageknowledgeworkerspends2.5hoursperdaysearchingfordocuments”-IDC–March2008“80-90%ofinformationonthecorporatenetworksisunstructured”-GoldmanSachsValueinUnstructuredDataBusinessValueBetterinformationMoretimelyinformationMorerelevantinformationBetterdecisionsupportITImpactMoreinformationtostoreandmanageMorecomplexanalysisGreaterbusinessimpactSource:METAGroup,9/20/2001UDMIncreasesInformationalContentStructuredData(10-40%)UnstructuredData(60-90%)+UDMComplementsStructuredDataUDMConsolidatedDataStructuredDataUnstructuredDataContextualInformationGreaterValueUDMTechnologiesText-MiningAudio-MiningImage-MiningDocumentsE-mailsWebpagesChatroomsNewsstoriesetc.TelephonecallsSpeechBroadcastsSoundsetc.PhotographsVideoTVbroadcastsArialphotogrammetrySurveillancecamerasetc.TextMiningTheprocessofextractinginformationfromtextualdata,andutilizingitforbetterbusinessdecisionsBasedonmultipletechnologies,e.g.,ComputationallinguisticsStatisticsAnewbusinessintelligencetoolFocuson“semantics”andnot“keywords”AnemergingtechnologyComputationalLinguisticsDefinitionStudyofcomputeralgorithmsfor:NaturallanguageunderstandingNaturallanguagegenerationObjectivesMachinetranslationInformationretrievalHuman-MachineinterfaceEarlyworkbeganin1950sSyntaxAnalysisStructureDetermination:GenerationofaparsetreeusingagrammarSentenceSubjectVerbPhraseVerbObjectMaryeatscheeseSemanticAnalysisExampleofambiguitiesatthesyntacticlevel:“Isawamanintheparkwithatelescope”SemanticanalysisisrequiredSynonymsDeepparsingPriorknowledgeCategoriesofText-MiningFeatureExtractionEntities(e.g.,names,companies,places)Events(e.g.,mergers,elections,sales)RelationsamongentitiesandeventsDocumentCategorizationGroupingmultiplearticlesbasedontheircontextualsimilaritiesCategoriesofText-MiningSummarization(摘要)Acondensed(浓缩的)versionofoneormoredocumentsDocumentNavigation(导航)Thematic(主题)AnalysisDiscoveryofthetheme/contextwithinadocumentSampleApplicationsNewsanalysisforevidencegatheringPatentanalysisE-mailroutingCompetitiveintelligenceWarrantyclaimsanalysisCRMContentmanagementMarketresearchRecruitingHumanResourceeLearningAutomatedhelp-desksChatroommonitoringWebpagemonitoringDocumentclusteringLegacydocumentconversionMachinetranslationKnowledgemanagementIntelligentsearchenginese-ProcurementAudioMiningAnalysisofaudiodataSpeechMusicOthersoundsGoal:ExtractinformationfromaudioWhoisthespeakerWhatissaidDefectdetectionMusicidentificationTelecommunicationsmonitoringAudioMiningAnalysisisbasedonaudioattributes,e.g.,Volume(音量)Pitch(音调)Timber(音质)SourcesofaudioforanalysisVoicerecordingsFactorysoundsTelecommunicationsBroadcastsetc.SampleApplicationsBroadcastcontentmanagementCallcenterautomationCRMManufacturingqualitycontrolMusicretrieval(querybyhumming)etc.ImageMiningAnalysisofdigitalimagesPicturesDrawingsVideosGoal:ExtractinformationfromimagesFacerecognitionDefectdetectionObjectrecognitionAction/eventdetectionImageMiningAnalysisisbasedonspatialattributese.g.,ColorSizeTexture(macroandmicro)纹理ShapesOutlinesShadowsSourcesofimagesDigitalphotographsSurveillance监视

camerasBroadcastsetc.SampleApplicationsManufacturingqualitycontrolBroadcastcontentmanagementRemoteSensingSecurityandauthenticationVideologsGeophysics地球物理AerialPhotogrammetry航空摄影学RelatedTechnologiesBusinessIntelligenceKnowledgeManagementContentManagementE-LearningInnovationManagementSalesForceAutomationDataMiningDataVisualizationSampleArchitectureInformationExtractionRulesDataWarehouseStructuredDataAnalysisandDecisionSupportUnstructuredDataVisualizationSemi-StructuredDataDatadoesnothavearigidlyandpredefinedschema,butdatahasacertaindegreeofschemas,whichmakesitunderstandableandusefule.g.,HTML,XML,scientificdata,…Semi-StructuredDataManagingsuchdatarequiresrethinkingthedesignofcomponentsofaDBMS:datamodelquerylanguageoptimizerstoragesystem…Semi-StructuredDataExampleofSemi-StructuredData:name:PeterWoodemail:ptw@dcs.bbk.ac.uk,

p.wood@bbk.ac.uk

name:firstname:Marklastname:Levene

email:mark@dcs.bbk.ac.uk

name:AlexPoulovassilis

affiliation:Birkbeck

Semi-StructuredDataModelsImportantaspectsforsemi-structureddatamodelsrepresentationofrelationships:hypertextgraphs,semanticnetworksself-describing:schema-lessdataVolatility(易变性):changingschemasstandardization:representdatafromanystructuredmodelserializability:exchangeofdocumentsSemi-StructuredDataModelsThesemi-structuredmodelisadatabasemodelInthismodel,thereisnoseparationbetweenthedataandtheschema,andtheamountofstructureuseddependsonthepurposeSemi-StructuredDataModelsGraphs-basedortrees-basedtypicaloperation:navigationLogic-basedtypicaloperation:inference2.2经典数据模型回顾层次(Hierarchical)模型(略讲)网状(Network)模型(略讲)关系(Relational)实体-联系(EntityRelationship)层次模型(略讲)

按照层次结构(即树型结构)来组织数据,树中的每一个结点表示一个记录类型,箭头表示双亲-子女关系

性质有且仅有一个结点无双亲,该结点称为根结点其它结点有且仅有一个双亲,这些结点称为从属结点由“双亲子女关系”确定记录间的联系,上一层记录类型和下一层记录类型的联系是一对多联系

特点反映现实世界中数据的层次关系,比较简单、直观。

通过指针来实现记录之间的联系,查询效率较高。

只能描述1:M联系,且复杂的层次使得数据的查询和更新操作比较复杂。

网状模型(略讲)

使用有向图(网络)结构表示实体类型和实体间类型的数据模型,又称为网络模型。

结点具有的性质:

至少有一个结点有多于一个双亲结点

可以有一个以上的结点无双亲结点

特点:

能够描述M:N联系。

通过指针来实现记录之间的联系,查询效率较高

编写应用程序比较复杂关系模型(回顾)数据结构关系模型的完整性关系运算关系代数关系演算关系数据库语言SQL关系数据库理论关系模型扩展关系模型数据结构直观描述用二维表来表示实体及其相互联系属性元组男女男性别192221年龄D01李红S02D02王伟S03D01张军S01系号姓名学号关系模型数据结构数学定义域:原子值的集合元组:(d1,…,dn)笛卡尔积:D1×…×Dn关系:元组集合关系模式:R(A1,…,An)键:超键、候选键、主键、外键关系模型的完整性域完整性实体完整性参照完整性用户定义完整性关系运算关系代数以集合代数为基础,以“关系”为运算对象和结果的代数演算系统代数演算系统的组成运算对象+运算符+封闭性+运算规则关系演算以谓词演算为基础,以元组(域)变量为谓词变元的逻辑演算系统课后复习

Chapter3:RelationalModel(第4版)关系数据库的结构StructureofRelationalDatabases关系代数RelationalAlgebra元组关系演算TupleRelationalCalculus域关系演算DomainRelationalCalculus扩展关系代数操作ExtendedRelational-Algebra-Operations数据库更新ModificationoftheDatabase视图Views关系数据库语言SQL数据定义语言(DDL)数据查询语言(QL)基本查询块集合运算嵌套(子)查询数据操纵语言(DML)数据控制语言(DCL)嵌入式SQLSQLAPICLI/ODBC/JDBC课后复习

Chapter4:SQL(第4版)基本结构BasicStructure集合操作SetOperations聚集函数AggregateFunctions空值NullValues嵌套子查询NestedSubqueries派生关系DerivedRelations视图Views数据库更新ModificationoftheDatabase连接关系JoinedRelations数据定义语言DataDefinitionLanguage嵌入式SQL,ODBC和JDBC。EmbeddedSQL,ODBCandJDBC关系数据库理论关系数据库设计的理论基础数据依赖函数依赖(FD)、多值依赖(MVD)、连接依赖(JD)逻辑蕴含(|=)、逻辑导出(=>)、Armstrong公理、FD集合闭包属性集合闭包、FD集合的等价覆盖、最小FD集合关系数据库理论关系模式分解无损连接分解、保持FD分解、判别算法关系模式规范化1NF2NF3NFBCNF4NF5NF规范化算法(分解法、合成法)课后复习

Chapter7:RelationalDatabaseDesign(第4版)FirstNormalFormPitfalls(陷阱)inRelationalDatabaseDesignFunctionalDependenciesDecompositionBoyce-CoddNormalFormThirdNormalFormMultivaluedDependenciesandFourthNormalFormOverallDatabaseDesignProcess关系模型扩展嵌套(非1NF)关系模型可扩展的对象-关系模型时态关系模型概率关系模型模糊关系模型E-R模型(回顾)

E-R模型是实体-联系(Entity-Relationship)模型的缩写,是一种概念数据模型

基本思想:首先设计一个概念模型,它是现实世界中实体及其联系的一种信息结构,不依赖于具体的计算机系统,与存储组织、存取方法、效率等无关然后再将概念模型转换为计算机上某个数据库管理系统所支持的逻辑数据模型在E-R模型中包括:实体、联系和属性三种基本成分

E-R模型

实体(Entity):即实在之体,是可区别且可被识别的客观存在的事、物或概念。具有共性的实体可划分为实体集。实体的内涵用实体类型表示属性(Attribute):是实体所具有的特性或特征。一个实体可以有多个属性。不能再细分的属性称为原子属性,还可以细分的属性称为可分属性。属性的可能取值范围称为属性的值域,简称为属性域。属性将实体集中每个实体和该属性的值域中的一个值联系起来。一个实体诸属性的一组特定的属性值,确定一个特定的实体E-R模型

实体(Entity)定义:即实在之体,是客观存在的且可被识别的事、物或概念实体集(EntitySet):具有共性的实体可划分为实体集实体类型(EntityType):实体的内涵用实体类型表示要点:①客观存在②可以标识E-R模型

属性(Attribute)定义:实体及联系所具有的特性或特征,一个实体可以有多个属性。原子属性与可分属性:不能再细分的属性称为原子属性,可以细分的属性称为可分属性单值属性与多值属性:只能取单个值的属性称为单值属性,可以取多个值的属性称为多值属性值域:属性的取值范围称为属性的值域,简称为属性域值标识:属性将实体集中每个实体和该属性的值域中的一个值联系起来,一个实体诸属性的一组特定的属性值,可唯一标识一个特定的实体E-R模型

联系(relationship)定义:发生在实体之间具有特定含义的对应关系联系值与联系集:二元联系与多元联系:角色(role):基数比约束(cardinalityratioconstraint):

二元联系:1:1,1:M,M:N

三元联系:1:1:1,1:1:P,1:N:P,M:N:P实体的参与度:(min,max),0<=min<=max>=1部分参与(min=0)和全参与(min>0):联系的属性:强实体与弱实体:E-R图

E-R图的基本符号

矩形框:表示实体类型

菱形框:表示联系类型

椭圆形框:表示实体类型和类型类型的属性

直线:联系类型与其相关的实体类型之间用直线相连接,并在其旁边标记联系的种类(1:1、1:N或M:N),表示实体与联系之间的关系E-R图的设计步骤确定实体类型

确定联系类型

确定实体类型和联系类型的属性

画出E-R图E-R模型中使用的符号汇总E-R模型中使用的符号汇总课后复习

Chapter2:Entity-RelationshipModel(第4版)EntitySets实体集RelationshipSets联系集DesignIssues模型设计MappingConstraints 映射约束Keys码E-RDiagramE-R图ExtendedE-RFeatures扩展E-R功能DesignofanE-RDatabaseSchemaE-R数据库模式的设计ReductionofanE-RSchematoTablesE-R模式转换成表经典数据模型的不足经典数据模型都是基于记录,面向机器的经典数据模型缺乏对以下特征的支持DataabstractionComplexConstraintsUnstructuredobjectsDynamicpropertiesofanapplication子类关系(has-subtype)属性关系(has-attribute)实例关系(has-instance)2.3Object-OrientedDataModelDescribesasystemusing

classes,operations,class

cooperationandbehaviourExtension

of

the

Entity-Relationship

modelClass=EntityCan

model

different

aspects

ofdata/entitiesGeneralisation

hierarchyCompositedatatypes/AggregationObject

behaviour/Operations

(methods)Can

model

different

aspect

of

thesystemDomain

model/DesignmodelInteraction

between

objects

(user/system/classes)ObjectOrientedCoreConceptsTheobject-orientedparadigmisbasedonencapsulatingcodeanddatarelatedtoanobjectintosingleunit--objectAdaptationoftheobject-orientedprogrammingparadigm(e.g.,Smalltalk,C++)todatabasesystemsObjectOrientedCoreConceptsObjectPropertiesofobjectsObjectIdentity(OID)

MethodsEncapsulationLiteralClassification&TaxonomyClassesInheritancePolymorphism

Overloading,overriding,andlatebindingCoreConceptsObjectStructureAnobjecthasassociatedwithit:Asetofvariablesthatcontainthedatafortheobject.Thevalueofeachvariableisitselfanobject.Asetofmessagestowhichtheobjectresponds;eachmessagemayhavezero,one,ormoreparameters.Asetofmethods,eachofwhichisabodyofcodetoimplementamessageamethodreturnsavalueastheresponsetothemessageThephysicalrepresentationofdataisvisibleonlytotheimplementoroftheobjectMessagesandresponsesprovidetheonlyexternalinterfacetoanobjectMessagesandMethodsThetermmessagedoesnotnecessarilyimplyphysicalmessagepassingMessagescanbeimplementedasprocedureinvocationsMethodsareprogramswritteningeneral-purposelanguagewiththefollowingfeaturesonlyvariablesintheobjectitselfmaybereferenceddirectlydatainotherobjectsarereferencedonlybysendingmessagesMessagesandMethodsStrictlyspeaking,everyattributeofanentitymustberepresentedbyavariableandtwomethods,e.g.,theattributeaddressisrepresentedbyavariableaddressandtwomessagesget-addressandset-addressForconvenience,manyobject-orienteddatamodelspermitdirectaccesstovariablesofotherobjectsObjectClassesSimilarobjectsaregroupedintoaclass;eachsuchobjectiscalledaninstanceofitsclassAllobjectsinaclasshavethesamevariabletypesmessageinterfaceMethodsThemaydifferinthevaluesassignedtovariablesClassesareanalogoustoentitysetsintheE-RmodelClassDefinitionExampleclassemployee{

/*Variables*/

string name;

string address;

date

start-date;

int salary;

/*Messages*/

int annual-salary();

string get-name();

string get-address();

int

set-address(stringnew-address);

int

employment-length();

};Forstrictencapsulation,methodstoreadthesetothervariablesarealsoneededInheritanceE.g.,classofbankcustomerssimilartoclassofbankemployees:bothsharesomevariablesandmessages,e.g.,nameandaddressButtherearevariablesandmessagesspecifictoeachclasse.g.,salaryforemployeesandcredit-ratingforcustomers.Everyemployeeisaperson;thusemployeeisaspecializationofpersonInheritanceEveryemployeeisaperson;thusemployeeisaspecializationofpersonSimilarly,customerisaspecializationofpersonCreateclassesperson,employeeandcustomervariables/messagesapplicabletoallpersonsassociatedwithclassperson.variables/messagesspecifictoemployeesassociatedwithclassemployeesimilarlyforcustomerInheritancePlaceclassesintoaspecialization/IS-Ahierarchyvariables/messagesbelongingtoclasspersonareinheritedbyclassemployeeaswellascustomerResultisaclasshierarchyClassHierarchyExample

classperson{

string name;

string address:

};

classcustomerisaperson{

int

credit-rating;

};

classemployeeisaperson{

datestart-date;

int

salary;

};

classofficerisaemployee{

int

office-number,

int

expense-account-number,

};

...ClassHierarchyExampleFullvariablelistforobjectsintheclassofficer:office-number,expense-account-number:definedlocallystart-date,salary:inheritedfromemployeename,address:inheritedfrompersonMethodsinheritedsimilartovariablesSubstitutabilityAnymethodofaclass,sayperson,canbeinvokedequallywellwithanyobjectbelongingtoanysubclass,suchassubclassofficerofpersonClassextentClassextent(类外延/区间):setofallobjectsintheclass.Twooptions:1. Classextentofemployeeincludesallofficer,tellerandsecretaryobjects.2. Classextentofemployeeincludesonlyemployeeobjectsthatarenotinasubclasssuchasofficer,teller,orsecretaryMultipleInheritanceTheclass/subclassrelationshipisrepresentedbyadirectedacyclicgraph(DAG)aclassmayhavemorethanonesuperclass.AclassinheritsvariablesandmethodsfromallitssuperclassesThereispotentialforambiguity.E.g.,variablewiththesamenameinheritedfromtwosuperclassesDifferentsolutionssuchasflaganderror,renamevariables,orchooseoneMultipleInheritanceCanusemultipleinheritancetomodel“roles”ofanobject.Apersoncanplaytherolesofstudent,ateacherorfootballPlayer,oranycombinationofthethreee.g.,studentteachingassistantwhoalsoplayfootballCreatesubclassessuchasstudent-teacherandstudent-teacher-footballPlayerthatinheritfrommultipleclassesExampleofMultipleInheritanceClassDAGforbankingexample.ObjectIdentifiersObjectidentifiersusedtouniquelyidentifyobjectsCanbestoredasafieldofanobject,torefertoanotherobject.E.g.,thespousefieldofapersonobjectmaybeanidentifierofanotherpersonobjectCanbesystemgenerated(createdbydatabase)orexternal(suchassocial-securitynumber)ObjectIdentityAnobjectretainsitsidentityevenifsomeorallofthevaluesofvariablesordefinitionsofmethodschangeovertimeObjectidentityisastrongernotionofidentitythaninprogramminglanguagesordatamodelsnotbasedonobjectorientationValue–datavalue;usedinrelationalsystemsName–suppliedbyuser;usedforvariablesinprocedures.Built-in–identitybuiltintodatamodelorprogramminglanguage.nouser-suppliedidentifierisrequired.formofidentityusedinobject-orientedsystems.ObjectContainmentEachcomponentinadesignmaycontainothercomponentsCanbemodeledascontainmentofobjects.Objectscontaining;otherobjectsarecalledcompositeobjects.Multiplelevelsofcontainmentcreateacontainmenthierarchy:linksinterpretedasis-part-of,notis-a.Allowsdatatobeviewedatdifferentgranularitiesbydifferentusers.Object-OrientedLanguagesObject-orientedconceptscanbeusedasadesigntool,andbeencodedinto,forexample,arelationaldatabaseTheconceptsofobjectorientationcanbeincorporatedintoaprogramminglanguagethatisusedtomanipulatethedatabasePersistentprogramminglanguages

Extendobject-orientedprogramminglanguagetodealwithdatabasesbyaddingconceptssuchaspersistenceandcollectionsPersistentProgrammingLanguagesAllowobjectstobecreatedandstoredinadatabasewithoutanyexplicitformatchanges(formalchangesarecarriedouttransparently).Allowobjectstobemanipulatedin-memory–donotneedtoexplicitlyloadfromorstoretothedatabaseAllowdatatobemanipulateddirectlyfromtheprogramminglanguagewithouthavingtogothroughadatamanipulationlanguagelikeSQLPersistentProgrammingLanguagesDuetopowerofmostprogramminglanguages,itiseasytomakeprogrammingerrorsthatdamagethedatabaseComplexityoflanguagesmakesautomatichigh-leveloptimizationmoredifficultDonotsupportdeclarativequeryingverywell.PersistenceofObjectsApproachestomaketransientobjectspersistentincludeestablishingpersistenceby:Class–declareallobjectsofaclasstobepersistent;simplebutinflexible.Creations–extendthesyntaxforcreatingtransientobjectstocreatepersistentobjects.Marking–anobjectthatistopersistbeyondprogramexecutionismarkedaspersistentbeforeprogramtermination.Reference-declare(root)persistentobjects;objectsarepersistentiftheyarereferredto(directlyorindirectly)fromarootobject.ObjectIdentityandPointersAPersistentobjectisassignedapersistentobjectidentifier.Degreesofpermanenceofidentity:Intraprocedure–identitypersistsonlyduringtheexecutionsofasingleprocedureIntraprogram–identitypersistsonlyduringexecutionofasingleprogramorquery.Interprogram–identitypersistsfromoneprogramexecutiontoanother.Persistent–identitypersiststhroughoutprogramexecutionsandstructuralreorganizationsofdata;requiredforobject-orientedsystems.ObjectIdentityandPointersInO-OlanguagessuchasC++,andobjectidentifierisactuallyanin-memorypointerPersistentpointer:persistsbeyondprogramexecution,canbethoughtofasapointerintothedatabaseStorageandAccessof

PersistentObjectsNameobjects(asyouwouldnamefiles)–cannotscaletolargenumberofobjectstypicallygivenonlytoclassextentsandothercollectionsofobjects,butnotobjects.Exposeobjectidentifiersorpersistentpointerstotheobjects–canbestoredexternally.AllobjectshaveobjectidentifiersStorecollectionsofobjectsandallowprogramstoiterateoverthecollectionstofindrequiredobjectsModelcollectionsofobjectsascollectiontypesClassextent-thecollectionofallobjectsbelongingtotheclass;usuallymaintainedforallclassesthatcanhavepersistentobjectsHowtofindobjectsinthedatabase:PersistentC++SystemsC++languageallowssupportforpersistencetobeaddedwithoutchangingthelanguageDeclareaclasscalledPersistent_ObjectwithattributesandmethodstosupportpersistenceOverloadingabilitytoredefinestandardfunctionnamesandoperators(i.e.,+,–,thepointerdeferenceoperator–)whenappliedtonewtypesPersistentC++SystemsProvidingpersistencewithoutextendingtheC++languageisrelativelyeasytoimplementbutmoredifficulttouseODMGC++ObjectDefinitionLanguageStandardizelanguageextensionstoC++tosupportpersistenceODMGusesstandardC++,providingmostfunctionalityviatemplateclassesandclasslibrariesTemplateclassd_Ref<class>usedtospecifyreferences(persistentpointers)Templateclassd_Set<class>usedtodefinesetsofobjects.Providesmethodssuchasinsert_elementanddelete_elementODMGC++ObjectDefinitionLanguageOthercollectionclassessuchasd_Bag(setwithduplicatesallowed),d_Listandd_Varray(variablelengtharray)alsoprovided.d_versionofmanystandardtypesprovided,e.g.d_Long.Interpretationofthesetypesisplatformindependent.ODMGC++ODL:ExampleclassPerson:publicd_Object{

public:

d_Stringname;//shouldnotuseString! d_Stringaddress;

};classCustomer:publicPerson{

public:

d_Datemember_from;

d_Longcustomer_id;

d_Ref<Branch>home_branch;

d_Set<Ref<Account>>accounts;};ODMGC++ODL:ExampleclassAccount:publicd_Object{

private:

d_Longbalance;

public:

d_Longnumber;

d_Set<d_Ref<Customer>>owners

intfind_balance();

int

update_balance(intdelta);

};ImplementingRelationshipsRelationshipsbetweenclassesimplementedbyreferences;specialreferencetypesenforcesintegritybyadding/removinginverselinks.Typed.Rel.Ref<Class,InvRef>isareferencetoClass,whereattributeInvRefOfClass,istheinversereference.Similarly,d.Rel.Set<Class,InvRef>forasetofreferences

ImplementingRelationships

externconstchar_owners[],_accounts[];

classAccount:publicd.Object{

….

d.Rel.Set<Customer,_accounts>owners;

}

//Sincestringscan’tbeusedintemplates…

constchar_owners=“owners”;

constchar_accounts=“accounts’;ODMGObjectModelODMG(ObjectDataManagementGroup)EstablishedbyvendorsofOODBMSstodefinestandardsHaveproducedanObjectModelthatspecifiesastandardmodelforthesemanticsofdatabaseobjectsDesignofclasslibrariesandapplicationsusingthesesemanticsshouldbeportableacrossvariousOODBMSsODMGObjectModelMajorcomponentsofODMGarchitectureforanOODBMSare:ObjectModel(OM)ObjectDefinitionLanguage(ODL)ObjectQueryLanguage(OQL)LanguageBinding:C++,Smallt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论