ch4高级数据库模型2(UML、ODL).ppt_第1页
ch4高级数据库模型2(UML、ODL).ppt_第2页
ch4高级数据库模型2(UML、ODL).ppt_第3页
ch4高级数据库模型2(UML、ODL).ppt_第4页
ch4高级数据库模型2(UML、ODL).ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

4.1 数据库系统设计概述 4.2 E/R模型 4.3 UML统一建模语言 4.4 对象定义语言ODL nUML (Unified Modeling Language)从面向对象 软件设计的图形化标注工具发展为数据库设计描述 的标注。 n除了多路联系外,UML提供了与E/R模型相同的能 力。 UMLE/R模型 类类实实体集 关联联二元联联系 关联类联类联联系的属性 子类类isa层层次 聚集多对对一联联系 组组合具有引用完整性的多对对一 1. UML类 nUML中的类与E/R模型中的实体集类似。 n一个类框分为三部分: 顶部:类名 中间:属性 底部:方法 Movies title PK year PK length genre 2. UML类的键 指定UML中类的主键,是在每个键属性的后面加 上关键字PK。 3.关联 n类之间的二元联系称为关联。UML中没有多路联系,一 个多路联系由多个二元联系表示。 n两个UML类之间的关联通过在两个类之间划一条线来表 示,并在线下方给出名字。 n关联类中连接对象的数量有一定的约束,该约束通过在连 接线的末端用一个mn标签表示,表示至少m个、至多n 个对象与另外一端的对象连接。 m*表示无上限 0* 表示对象的数目没有任何约束 如果在关联的末端没有任何标签,那么相当于11,即“有 且只有一个” n例4.36 01 0* n例4.37 在UML中表达引用完整性 4.自关联 n一个关联的两端可以连接同一个类,这样的关联称为自关 联。 n为了区分一个类在自关联中表现的不同角色,分别给这个 关联的两端一个名字。 n例4.38 电影续集的关联 5. 关联类 nUML中的关联类对应联系的属性,关联类放置关 联的中间,拥有自己的名字,其属性是它依附的 关联的属性。 n例4.39 某个影星参演某部影片的薪水。 6. UML中的子类 n子类的特点: 完整对局部:每个类的对象是否是该子类的一 个成员? 分离对重叠:一个对象能够出现在两个子类中 吗? n面向对象系统中的子类是分离的,而E/R模型允 许重叠子类; nE/R模型和面向对象系统都允许完整的或者局部 的子类。 nUML的子类中只记录其父类中没有的额外的属性 ,且使用一个空三角箭头指向父类。子类还可以 有自己的与其他类的联系。 n例4.40 7.聚集和组合 n聚集 表示类与菱形端类的多对一联系; 两个类之间的一条线,末端为一个空的菱形, 表示标注为01 n组合 表示类与菱形端类的一对一联系; 两个类之间的连线,末端为一个实心的黑色菱 形。 n例4.41 8. UML图到关系的转化 n类到关系 为每个类创建一个关系,关系名为类名,关系的属性 为类的属性。 n关联到关系 为每个关联创建一个名字为关联名的关系,关联的属 性是两个连接类的键属性; 如果有关联类附在联系上,则关系的属性中应包括关 联类的属性。 该UML转化为如下的关系模式: Movies (title, year, length, genre) Stars (name, address) Studio (name, address) Stars-In (movieTitle, movieYear, starName) Owns (movieTitle, movieYear, studioName) UML转化为如下的关系模式: Movies (title, year, length, genre) Stars (name, address) Stars-in (movieTitle, movieYear, starName, salary, residuals) 从UML子类到关系 n考虑子类是“分离的还是重叠的”、“是完整的还是 局部的”,在E/R模式方法、面向对象方法和空值 法中进行选择: 如果每一层都是分离的,用面向对象; 如果每一层既是完整又是分离的、则用面向对象只需为 叶子节点构建关系; 如果层次很大并且在某些或者所有的层上是重叠的,则 E/R方法是合适的。 从聚集组合到关系 n聚集和组合表示的是多对一的关联。 n不为聚集和组合构建任何关系,将菱形端类的键 属性添加到非菱形端类中,在聚集(而非组合)情 况下,这些属性可以为空。 转化为如下的关系模式: Studios (name, address) Movies (title, year, length, genre, studioName) MoviesExecs (cert#, name, address, networth) Presidents (cert#, studioName) UML中的支持组合 nUML中的支持组合是指“弱”类(不提供键属性的类 )与“支持”类之间的具有引用完整性的多对一关系 ; n支持组合的标注:使用一个带有字母“PK”的弱类 框作为一个支持组合的锚,其含义是在组合另外 一端的支持类的键属性是弱类键的一部分,连同 弱类的任一属性被标记为“PK”。 对应的关系模式为: Studios (name, address) Crews (number, crewChief, studioName) 4.1 数据库系统设计概述 4.2 E/R模型 4.3 UML统一建模语言 4.4 对象定义语言ODL 1. ODL简介(1) n一种基于文本的使用面向对象术语描述数据库 结构的语言。 n类声明 关键词class、类名、类的特性列表 class ; 这里的特征可以是属性、联系或者方法。 ODL简介(2) nODL中的属性 属性的声明由关键字attribute、属性的类型和名字表 示。 可以是基本数据类型,也可以是复杂类型; n例4.2,原子类型的属性 n例4.3,address是非原子类型的属性 nODL中的联系 ODL联系的声明通过关键字relationship、类型和联系 名字来声明。 联系类型描述类的一个单个对象与这个联系连接;联 系类型可以是另外一个类(多对一)或者一个集合类型( 一对多或多对多)。 一个:类/对象名 | 一组:Set relationship Studio ownedBy; 例4.48,relationship Set stars; 该行对应一个联系定义,放在Movie类的声明中,表示 每个Movie对象和一组Star对象连接。 ODL简介(3) n联系的多重性 和E/R中的二元联系类似,可分为多对一、一对一和多 对多; 不同类型对应的两个联系声明中分别使用“Set ODL简介(8) n属性的类型 先由原子类型或其他类型构造,然后可以多次使用结构 体和集合类型构建器来构建; 一些属性类型的例子 nInteger ;原子类型 nStruct N string field1, integer field2;原子类型 结构 nList;原子类型的集合类型 nArray; 由原子类型构成的结构的集合类型 2. ODL中的子类 n子类继承父类的所有属性,此外子类还可以有自己的属 性 n将一个类C声明为另一个类D的子类,在C的声明后加 上extends name of D 例4.52 n多继承:用冒号将类别分开 3. 在ODL中声明键 nODL中的键声明 声明键对于一个类来说是可选的,因为在面向对象 ODL中,所有对象都有一个对象标识。 也可以使用关键字key ( keys),后跟属性或属性列表来 声明键; 其中若某个键由多个属性构成,则加括号; n例4.53单个键, class Movie (key (title, year) 多个键 nkeys 键1,键2, 方法键。将方法声明为键,表示类中不同对象 在该方法上的返回值不同 联系键。多对一联系声明为键表示该联系中一 端“可以”是多端的键。 例4.54 4. 从ODL设计到关系设计(1) nODL到关系模型的转化方法类似于E/R模型,但有些不同 E/R中实体集一定要有键,而ODL中键是可选项 n为类创建关系时,自创一个属性作为键 E/R属性和关系属性都要求必须是原子类型,但ODL没 有这样的限制 n非原子类型要按照特定的处理方式转化为原子类型 n如果转化后产生了不规范的关系,则要按照前面介 绍过的关系模式分解的方法进行优化处理 ODL允许声明方法作为设计的一部分,但是方法不能 转化为关系模式,可通过建立对象关系模型来解决。 4. 从ODL设计到关系设计(2) n从ODL属性到关系属性 满足两个假设,则直接转化 n类中的所有特性都是属性(不是联系或方法) n属性的类型都是原子类型(不是结构或集合) 可以创建一个属性来表达对象标识并且让它作为相应 关系的键。 例4.55, MovieExecs (cert#, name, address, networth) n类中的非原子类型属性 简单的结构类型 n为结构的每个字段定义一个关系的属性即可 n如果重名则重命名 n例4.56 Star (name, street, city) 4. 从ODL设计到关系设计(3) n集合类型属性的表示 主流办法 n对于属性A的值的集合,为集合中的每个值都构造一 个元组,该元组中包括属性A和类中的所有其他属性 的相应值 例4.57 Star (name, street, address, birthdate) 注意:对于属性A的值的集合,要为集合的每个取 值构造一个元组。 n一个问题:可能会导致不规范的关系,一般来说 会违反BCNF的要求 采用前面介绍的分解方法消除异常 n另一种方法 把所有的集合类型的属性分离出来,将这些属性的值 域与类的对象集合之间的关系看作是一个多对多联系 ,再去表示联系 4 从ODL设计到关系设计(4) n其他类型构建器的表示 包:增加count属性记录包中每个元组出现的次数。 列表:增加position属性指示对应的地址在列表中的位 置。 定长数组 字典:表示成一个由键域和值域组成的二元组的集合 。 4. 从ODL设计到关系设计(5) nODL中联系的表示 E/R模型中可为每个联系创建 一个新关系,该关系联接两个 相关类的键 ODL中为每对联系建立一个关 系 n例如:为联系对ownedBy和owns 创建一个关系StudioOf: StudioOf (title, year, studioname) 为联系对stars和starredIn创建一 个关系StarsIn: StarsIn (title, year, starname) n对多对一联系,将该联系与联系中“多”的那一方的类建 立一个关系(即组合两个拥有共同键的关系),不会破坏 BCNF条件 Movies (title, year, length, genre, studioname) n多对多联系不可 Movies (title, year, length, genre, studioname, starname) n多对一联系不能组合“一”方,会违反BCNF条件 Studio (name, address, movietitle, movieyear) 4. 从ODL设计到关系设计(6) n如果没有键会怎样? 如果不存在可以充当键

温馨提示

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

评论

0/150

提交评论