分享
分享赚钱 收藏 举报 版权申诉 / 46

类型ch4_高级数据库模型_2(UML、ODL)89923.ppt

  • 上传人:fmgc7290
  • 文档编号:8436413
  • 上传时间:2019-06-27
  • 格式:PPT
  • 页数:46
  • 大小:658KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    ch4_高级数据库模型_2(UML、ODL)89923.ppt
    资源描述:

    1、4.1 数据库系统设计概述 4.2 E/R模型 4.3 UML统一建模语言 4.4 对象定义语言ODL,UML (Unified Modeling Language)从面向对象软件设计的图形化标注工具发展为数据库设计描述的标注。 除了多路联系外,UML提供了与E/R模型相同的能力。,1. UML类,UML中的类与E/R模型中的实体集类似。 一个类框分为三部分: 顶部:类名 中间:属性 底部:方法,2. UML类的键,指定UML中类的主键,是在每个键属性的后面加上关键字PK。,3.关联,类之间的二元联系称为关联。UML中没有多路联系,一个多路联系由多个二元联系表示。 两个UML类之间的关联通过在

    2、两个类之间划一条线来表示,并在线下方给出名字。 关联类中连接对象的数量有一定的约束,该约束通过在连接线的末端用一个mn标签表示,表示至少m个、至多n个对象与另外一端的对象连接。 m*表示无上限 0* 表示对象的数目没有任何约束 如果在关联的末端没有任何标签,那么相当于11,即“有且只有一个”,例4.36,01,0*,例4.37 在UML中表达引用完整性,4.自关联,一个关联的两端可以连接同一个类,这样的关联称为自关联。 为了区分一个类在自关联中表现的不同角色,分别给这个关联的两端一个名字。 例: 电影续集的关联,5. 关联类,UML中的关联类对应联系的属性,关联类放置关联的中间,拥有自己的名字

    3、,其属性是它依附的关联的属性。 例: 某个影星参演某部影片的薪水。,6. UML中的子类,UML允许一个类C有四种不同的子类: 完整对局部:每个类C的对象是否是该子类的一个成员? 分离对重叠:一个对象能够出现在两个子类中吗? 面向对象系统中的子类是分离的,而E/R模型允许重叠子类; E/R模型和面向对象系统都允许完整的或者局部的子类。,UML的子类中只记录其父类中没有的额外的属性,且使用一个空三角箭头指向父类。子类还可以有自己的与其他类的联系。 例:电影子类的UML 子类分离是分离的、局部的,因为许多电影既不是卡通片也不是凶杀片,7.聚集和组合,聚集 表示类与菱形端类的多对一联系; 两个类之间

    4、的一条线,末端为一个空的菱形,表示标注为01 组合 表示具有引用完整性的多对一联系; 两个类之间的连线,末端为一个实心的黑色菱形,表示标注为11,8. UML图到关系的转化,类到关系 为每个类创建一个关系,关系名为类名,关系的属性为类的属性。 关联到关系 为每个关联创建一个名字为关联名的关系,关联的属性是两个连接类的键属性; 如果有关联类附在联系上,则关系的属性中应包括关联类的属性。,该UML转化为如下的关系模式:Movies (title, year, length, genre)Stars (name, address)Studio (name, address)Stars-In (mov

    5、ieTitle, movieYear, starName)Owns (movieTitle, movieYear, studioName),UML转化为如下的关系模式:Movies (title, year, length, genre)Stars (name, address)Stars-in (movieTitle, movieYear, starName, salary, residuals),从UML子类到关系,考虑子类是“分离的还是重叠的”、“是完整的还是局部的”,在E/R模式方法(每个子类的关系仅有键属性和该子类属性)、面向对象方法(每个实体在一个子类的关系中)和空值法(所有子类用

    6、一个关系表示)中进行选择:如果每一层都是分离的,用面向对象;如果每一层既是完整又是分离的、则用面向对象只需为叶子节点构建关系;如果层次很大并且在某些或者所有的层上是重叠的,则E/R方法是合适的。,从聚集组合到关系,聚集和组合表示的是多对一的关联。 不为聚集和组合构建任何关系,将菱形端类的键属性添加到非菱形端类中,在聚集(而非组合)情况下,这些属性可以为空。,转化为如下的关系模式:MoviesExecs (cert#, name, address, networth) Studios (name, address)Movies (title, year, length, genre, studi

    7、oName) Presidents (cert#, studioName),UML中的支持组合,UML中的支持组合是指“弱”类(不提供键属性的类)与“支持”类之间的具有引用完整性的多对一联系; 支持组合的标注:使用一个带有字母“PK”的弱类框作为一个支持组合的锚,其含义是在组合另外一端的支持类的键属性是弱类键的一部分,连同弱类的任一属性被标记为“PK”。,对应的关系模式为:Studios (name, address)Crews (number, crewChief, studioName),本节习题: P27 练习2.1.1,画出UML图 2.1.2 c) d) 问题:使用面向对象方法,针对

    8、如下的一个三级层次要创建多少关系?这个三级层次的第一层和第二层的每个类有三个子类,并且其层次是: 在每一层是分离和完整的 在每一层是分离的但不是完整的 既不是分离的也不是完整的,4.1 数据库系统设计概述 4.2 E/R模型 4.3 UML统一建模语言 4.4 对象定义语言ODL,1. ODL简介(1),一种基于文本的使用面向对象术语描述数据库结构的语言。 类声明 关键词class、类名、类的特性列表class ; 这里的特征可以是属性、联系或者方法。,ODL简介(2),ODL中的属性 属性的声明由关键字attribute、属性的类型和名字表示,可以是基本数据类型,也可以是复杂类型; 例2.1

    9、,原子类型的属性例2.2,address是非原子类型的属性,ODL中的联系 ODL联系的声明通过关键字relationship、类型和联系名字来声明。 联系类型描述类的一个对象与这个联系连接; 联系类型可以是另外一个类(多对一)或者一个集合类型(一对多或多对多)。 多对一:类/对象名 relationship Studio ownedBy; 一对多、多对多:Set relationship Set stars;,ODL简介(3),联系的多重性 和E/R中的二元联系类似,可分为多对一、一对一和多对多; 不同类型对应的两个联系声明中分别使用“Set”(多)和“类型名”(一)的不同组合; “多”可以

    10、是“零”,表示“任一个子集(包括空集)均可”,例2.3,图4-45中的两对联系:Stars和starredIn是多对多的,ownedBy和owns是多对一/一对多的。,ODL简介(4),反向联系 用于表达一对联系之间的“互逆”性,注意反向是成对出)。 反向联系的定义:inverse 如跨类,则原类名:原联系名; 例2.5,对应P25图2.6中的代码段。其中有两个反向联系对,ODL简介(5),ODL中的基本类型 原子类型:整型、浮点型、字符型、字符串型、布尔型和枚举型 类名:实际是一个包含类的所有属性和联系的结构 用类型构建器(type constructor)将基本类型组合成结构化类型 集合类

    11、型,以下均设T为任意类型, 集合(set):Set,无序、元素不能重复出现 包(bag):Bag,无序、元素可重复出现 1,2,1和2,1,1是相同的包 链表(list):List,长度可为0、有序。string即list。1,2,1和2,1,1是不同的链表,ODL简介(6),数组(array):Array,整数i表示长度Arraychar,10 字典(dictionary):Dictionary,表示T,S元素对的有限集合。每对元素由一个键类型T的值和一个值域类型S的值构成,不能有T值相同的元素对,但可以是多对一 结构(structure)类型 若T1, , Tn是类型,F1, , Fn分别

    12、是其域名,则Struct NT1 F1, , Tn Fn表示一个名为N的结构类型,包含n个域,其第i个类型为Ti,域名为Fi 。,ODL简介(7),ODL数据类型的使用 声明联系的类型 可以是一个类,或者应用于类的集合类型构建器的单独使用; 合法的声明:Movie; 一个类 Bag;一个类的集合类型 注意以下几种错误的联系声明: 联系类型不能含有结构类型Struct N Movie field1, Star field2 联系类型不能含有原子类型Set 联系类型不能含有多个集合类型Set,ODL简介(8),属性的类型 先由原子类型或其他类型构造,然后可以多次使用结构体和集合类型构建器来构建;

    13、一些属性类型的例子 Integer ;原子类型 Struct N string field1, integer field2;原子类型结构 List;原子类型的集合类型 Array;由原子类型构成的结构的集合类型,2. ODL中的子类,子类继承父类的所有属性,此外子类还可以有自己的属性 将一个类C声明为另一个类D的子类,在C的声明后加上extends name of D 例4.52多继承:用冒号将类别分开,3. 在ODL中声明键,ODL中的键声明 声明键对于一个类来说是可选的,因为在面向对象ODL中,所有对象都有一个对象标识。 也可以使用关键字key ( keys),后跟属性或属性列表来声明键

    14、;其中若某个键由多个属性构成,则加括号; 单个键, class Movie (key (title, year) 多个键 keys 键1,键2,,方法键。将方法声明为键,表示类中不同对象在该方法上的返回值不同 联系键。多对一联系声明为键表示该联系中一端“可以”是多端的键。 例4.54,4. 从ODL设计到关系设计(1),ODL到关系模型的转化方法类似于E/R模型,但有些不同 E/R中实体集一定要有键,而ODL中键是可选项 为类创建关系时,自创一个属性作为键 E/R属性和关系属性都要求必须是原子类型,但ODL没有这样的限制 非原子类型要按照特定的处理方式转化为原子类型 如果转化后产生了不规范的关

    15、系,则要按照前面介绍过的关系模式分解的方法进行优化处理,4. 从ODL设计到关系设计(2),从ODL属性到关系属性 满足两个假设,则直接转化 类中的所有特性都是属性(不是联系或方法) 属性的类型都是原子类型(不是结构或集合) 可以创建一个属性来表达对象标识并且让它作为相应关系的键。 例4.55,MovieExecs (cert#, name, address, networth),类中的非原子类型属性 简单的结构类型 为结构的每个字段定义一个关系的属性即可 如果命名冲突则重命名 例4.56Star (name, street, city),4. 从ODL设计到关系设计(3),集合类型属性的表示

    16、 主流办法 对于属性A的值的集合,为集合中的每个值都构造一个元组,该元组中包括属性A和类中的所有其他属性的相应值 例4.57Star (name, street, address, birthdate),一个问题:可能会导致不规范的关系,一般来说会违反BCNF的要求采用前面介绍的分解方法消除异常 另一种方法 把所有的集合类型的属性分离出来,将这些属性的值域与类的对象集合之间的关系看作是一个多对多联系,再去表示联系,4 从ODL设计到关系设计(4),其他类型构建器的表示 包:增加count属性记录包中每个元组出现的次数。列表:增加position属性指示对应的地址在列表中的位置。定长数组,字典:

    17、表示成一个由键域和值域组成的二元组的集合。,4. 从ODL设计到关系设计(5),ODL中联系的表示 E/R模型中可为每个联系创建一个新关系,该关系联接两个相关类的键 ODL中为每对联系建立一个关系例如:为联系对ownedBy和owns创建一个关系StudioOf: StudioOf (title, year, studioname) 为联系对stars和starredIn创建一个关系StarsIn: StarsIn (title, year, starname),对“多对一”联系,将该联系与联系中“多”的那一方的类建立一个关系(即组合两个拥有共同键的关系),不会破坏BCNF条件 Movies

    18、(title, year, length, genre, studioname) 多对多联系不可Movies (title, year, length, genre, studioname, starname) 多对一联系不能组合“一”方,会违反BCNF条件 Studio (name, address, movietitle, movieyear),4. 从ODL设计到关系设计(6),如果没有键会怎样? 如果不存在可以充当键的属性(ODL中的键是可选项) 创建一个新的属性-证书,用来标识对象 例:假设明星名字不足以为键,则建立一个“证书号”属性作为键。Stars (cert#, name, street, city, birthdate) 则电影与明星之间的多对多联系可以表示为:StarsIn (title, year, cert#),习题 P27 2.1.1, 2.1.5, 2.1.9 将2.1.1和2.1.5中的ODL设计转换成关系数据库模式,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:ch4_高级数据库模型_2(UML、ODL)89923.ppt
    链接地址:https://www.docduoduo.com/p-8436413.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开