UML系统分析与设计教程(第2版) 课件 第12章 数据库设计_第1页
UML系统分析与设计教程(第2版) 课件 第12章 数据库设计_第2页
UML系统分析与设计教程(第2版) 课件 第12章 数据库设计_第3页
UML系统分析与设计教程(第2版) 课件 第12章 数据库设计_第4页
UML系统分析与设计教程(第2版) 课件 第12章 数据库设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

UML系统分析与设计SystemAnalysis&Design第十二章数据库设计持久性数据库层对象数据库模型对象关系数据库模型关系数据库模型UML系统分析与设计第2版ZhenyanJi2数据库设计在UML中,类图定义了应用程序所需要的数据结构,用实体类以及实体类之间的关系来为数据库中持久存在的数据结构建模。因此,需要将实体类映射为可以被数据库识别的数据结构。如何将实体类、关联关系、聚合关系、类属关系转变为3种数据库(面向对象型、对象关系型、关系型数据库)模型中的数据结构?UML系统分析与设计第2版ZhenyanJi3持久性数据库层数据模型数据模型(DataModel)是以比原始的位和字节更易理解的方式描述数据库结构的抽象。通用的数据模型层分类法认可3种抽象。概念数据模型概念数据模型是面向用户、面向现实世界的数据模型逻辑数据模型逻辑数据模型提供的模型反应了数据库管理系统DBMS的存储结构,它是用户从数据库所看到的数据模型。物理数据模型物理数据模型定义了实际应用中数据是如何存储于持久存储设备(如磁盘)中的。UML系统分析与设计第2版ZhenyanJi4持久性数据库层UML模型与持久数据库层UML系统分析与设计第2版ZhenyanJi5对象数据库模型ODB建模原语对象数据库模型的基本建模基元是对象和字面量。每个对象都有个对象标识符,字面量没有对象标识符。ODB区分类(Class)和类型(Type),一个类型可以有多个类。例如,类“Tiger”和类“Lion”都实现了接口“Animal”,它们的类型都是“Animal”。ODB类可以有特性(Properties)和操作,特性可以是属性(Attribute)或关系(Relationship),即连接该对象与其他对象的属性。UML系统分析与设计第2版ZhenyanJi6对象数据库模型ODB建模原语1.字面量和对象类型字面量可以分为以下3种类型:(1)原子字面量(AtomicLiterals)。(2)结构化字面量(StructuredLiterals)。(3)集字面量(CollectionLiterals)。对象类型可以分为以下3种类型。(1)原子对象。(2)结构化对象。(3)集(如set<Person>,Person是一个类)。UML系统分析与设计第2版ZhenyanJi7对象数据库模型ODB建模原语2.关系对于关联关系、聚合关系和类属关系这3种关系,ODB模型可直接支持关联关系和类属关系,聚合关系则通过约束关联来支持。UML系统分析与设计第2版ZhenyanJi8对象数据库模型ODB建模原语3.ISA和EXTENDS继承ODMG对象模型定义了两种类属关系,即ISA关系和EXTENDS关系。其中,ISA关系对应于早期的接口继承(InterfaceInheritance),EXTENDS关系对应于实现继承(Implemen-tationInheritance)。UML系统分析与设计第2版ZhenyanJi9对象数据库模型映射到ODB1.映射实体类理论上,UML没有禁止设计者通过定义新类(在分析阶段)和使用模板(在设计阶段)来扩充类型系统。但在实践中,为了避免UML中次要类的激增,只有当实现平台支持可扩充的类型系统、内建的结构化类型、集类型时,设计者才这样做。UML系统分析与设计第2版ZhenyanJi10对象数据库模型将实体类映射到ODB设计UML系统分析与设计第2版ZhenyanJi11对象数据库模型映射到ODB2.映射关联在UML模型中,类之间的关联允许类对象之间的导航,这正是对象数据库所擅长的,即由永久对象标识符连接的对象之间的导航。在映射过程中,可对设计进行优化,将一些UML属性或UML类模拟为ODB接口,从而将这些接口用作ODB类的属性的类型。UML系统分析与设计第2版ZhenyanJi12对象数据库模型关联的映射UML系统分析与设计第2版ZhenyanJi13对象数据库模型映射到ODB3.映射聚合UML的聚合有两种语义,即具有引用语义的聚合(Aggregation)和具有值语义的组合(Composition)。在数据库中,聚合被模拟为关联或嵌套属性。如果要加入特别的聚合语义,则需通过过程的方式(在程序中)实现,而不是通过声明的方式(在数据结构中)实现。UML系统分析与设计第2版ZhenyanJi14对象数据库模型聚合关系和组合关系UML系统分析与设计第2版ZhenyanJi15对象数据库模型映射到ODB4.映射类属从UML类属关系到ODB的ISA和EXTENDS关系的映射基本上是“一对一”的,接口继承用ISA关系来模拟,类继承用EXTENDS关系来模拟。UML系统分析与设计第2版ZhenyanJi16对象数据库模型类属关系的映射UML系统分析与设计第2版ZhenyanJi17对象关系数据库模型对象关系数据库(Object-RelationalDatabaseMode,ORDBM)合并了老式关系模型数据库和新式对象模型数据库,使得对象关系数据库管理系统(Object-RelationalDatabaseManagementSystem,ORDBMS)既能处理关系数据结构(关系表),又能处理对象数据结构(对象表)。UML系统分析与设计第2版ZhenyanJi18对象关系数据库模型ORDB建模原语ORDB建模原语由对象建模原语和关系建模原语组成。主要的对象建模原语是用户定义的结构化类型(StructuredType),该类型对应于ODB的“Interface”概念和UML的“Class”概念。ORDB的存储机制是表(Table),表的列代表了可以接受用户定义的结构化类型的值。为了与常规的关系表相区别,在ORDBMS实现中将这样的表称为对象表(ObjectTable)。UML系统分析与设计第2版ZhenyanJi19对象关系数据库模型ORDB建模原语1.结构化类型ORDB表的列可以接受内建类型或用户定义类型的值,ORDB的内建类型的功能类似于ODB的内建类型的功能。UML系统分析与设计第2版ZhenyanJi20对象关系数据库模型ORDB建模原语2.对象表(ObjectTable)对象表是具有一个或多个列的行的集合。行是行类型的实例,对象表中的每一行都是由一个OID唯一标识的对象。行是可以插入表中或从表中删除的数据的最小单位。为了快速区别对象类型和对象表,建议结构化后的类型名使用后缀TY。UML系统分析与设计第2版ZhenyanJi21对象关系数据库模型ORDB建模原语3.行类型(RowType)行类型允许表在没有使用结构化类型或集类型的情况下,具有相当复杂的内部结构。行类型是域的序列(即<域名><数据类型>对)。实际上,行类型允许将一个表嵌入到另一个表中,且表中的列可以含有行值。从数据库编程的角度来说,行类型允许将完整的行存储到变量中,允许将完整的行作为操作的输入参数进行传递,还允许将完整的行作为操作的输出参数或返回值进行返回。UML系统分析与设计第2版ZhenyanJi22对象关系数据库模型ORDB建模原语4.引用类型(ReferenceType)结构化类型可以用来定义引用类型,用关键字“ref”来定义引用。例如,studref(StudentTY)就表示对象表中一个对结构化类型的引用。在SQL:1999中,引用类型是有作用域的,即它们引用的表在编译时是确定的。UML系统分析与设计第2版ZhenyanJi23对象关系数据库模型ORDB建模原语5.OF和UNDER继承SQL:1999允许为已存在类型创建子类型,目前,SQL:1999只支持单一的实现继承。对应于类型层次结构,可创建表层次结构。也就是说,为超类型创建超表,为子类型创建子表。但有时候,在表层次结构中有可能忽略类型层次结构中的类型UML系统分析与设计第2版ZhenyanJi24对象关系数据库模型ORDB中的继承UML系统分析与设计第2版ZhenyanJi25映射到ORDB1.映射实体类(EntityClass)UML系统分析与设计第2版ZhenyanJi26对象关系数据库模型映射到ORDB2.映射关联(Association)UML系统分析与设计第2版ZhenyanJi27对象关系数据库模型映射到ORDB3.映射聚合(Aggregation)UML系统分析与设计第2版ZhenyanJi28对象关系数据库模型映射到ORDB4.映射类属(Generalization)UML系统分析与设计第2版ZhenyanJi29对象关系数据库模型关系数据库模型在过去的20年,关系数据库模型(RelationalDatabaseModel)已经基本占领了数据库软件市场,关系数据库模型已经取代了分层数据库(HierarchicalDatabase)和网络数据库(NetworkDatabase)模型。最后的关系数据库模型标准是SQL92,它是1992年得到ANSI和ISO的批准而发布的。市场上所有重要的RDBMS产品(包括Oracle、DB2、Sybase、Informix、SQLServer等)都遵守这一标准,虽然其方式各不相同。UML系统分析与设计第2版ZhenyanJi30关系数据库模型RDB建模原语1.列、域和规则关系数据库将数据存储在由行和列组成的表中。其中存储在行列交叉点的数据值必须是不可分的、单一的值,也就是说,列具有原子域(数据类型)。域定义了列可以接受的合法的值集,域可以是匿名的(如namevarchar(40))也可以是有名的(如nameName),域Name在用来定义列“name”之前已经定义过了。UML系统分析与设计第2版ZhenyanJi31关系数据库模型RDB建模原语2.关系表关系表是由它的固定列集定义的,列具有内建的或用户定义的类型。表可以有任意多行,但没有重复的行。特定行的列值可以是Null,Null值意味着“值目前不知道”或“值不适用”。由于RDB模型要求“没有重复行”,因此每个表都有一个主键(PrimaryKey)。一个表可以有多个键,任意选择这些键中的一个作为对用户最重要的主键,其他的键则被称为备用键(AlternateKeys)。UML系统分析与设计第2版ZhenyanJi32RDB建模原语3.引用完整性(ReferentialIntegrity)RDB模型通过引用完整性约束来维护表之间的关系。这种表之间关系不是固定的行到行的连接,而是每当用户请求系统发现关系时,RDB才去发现行到行的连接。这种发现是通过比较一个表的主键值与该表或另一个表的外键值来实现的。外键(ForeignKey)被定义为表中的列的集合,其值为Null,或者通过匹配同一个表中或另一个表中的主键值所得。主、外键的一致性被称作引用完整性,引用完整性中的主键和外键必须是基于同一个域定义的,但可以有不同的名字。UML系统分析与设计第2版ZhenyanJi33关系数据库模型引用完整性UML系统分析与设计第2版ZhenyanJi34关系数据库模型RDB建模原语4.范式(NormalForms)RDB设计中一个最重要、但同时最不容易被理解的概念就是规范化。关系表必须是范式(NormalForm,NF),范式被分为以下6种。第一范式。第二范式。第三范式。BC范式(Boyce-Codd范式)。第四范式。第五范式。UML系统分析与设计第2版ZhenyanJi35关系数据库模型映射到RDB如同ODB和ORDB模型一样,RDB设计也可以用UML衍型和其他扩充机制来模拟。从UML类模型到RDB模式设计的映射需考虑RDB模型的局限性,即在关系模式中表达类的一些内建的声明式语义是不可能存在的,这样的语义必须在数据库程序中解决。1.映射实体类(EntityClass)实体类到关系表的映射必须遵循表的第一范式,列必须是原子的。UML系统分析与设计第2版ZhenyanJi36关系数据库模型映射实体类UML系统分析与设计第2版ZhenyanJi37关系数据库模型映射到RDB2.映射关联(Association)将关联映射到RDB的过程涉及了表之间引用完整性约束的使用。任何“一对一”或“一对多”的关联都可以通过在一个表中插入一个外键来匹配另一个表中的主键来表达。对于“一对一”关联,可以将外键添加到其中任何一个表中,也可将两个实体类合并在一个表中(取决于想达到的规范化水平)。对于递归的“一对一”或“一对多”关联,外键和主键位于同一个表中。UML系统分析与设计第2版ZhenyanJi38关系数据库模型映射关联UML系统分析与设计第2版ZhenyanJi39关系数据库模型映射到RDB3.映射聚合(Aggregation)关联映射的主要原理也适用于聚合映射。对于强形式聚合——组合(具有引用语义的聚合被看作是弱形式的聚合,具有值语义的组合则被看作是强形式的聚合),应该将子集和超集实体类组合到一张表中。这对于“一对一”的聚合是可能的,但对于“一对多”的聚合,子集类(无论是强形式聚合还是弱形式聚合)则必须被模拟为一个单独的表(用一个外键将它和它的超集类的表连接起来)。UML系统分析与设计第2版ZhenyanJi40关系数据库模型映射聚合UML系统分析与设计第2版ZhenyanJi41关系数据库模型映射到RDB

温馨提示

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

评论

0/150

提交评论