ImageVerifierCode 换一换
格式:PPT , 页数:46 ,大小:658KB ,
文档编号:5656885      下载积分:16 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5656885.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(hwpkd79526)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(ch4-高级数据库模型-2(UML、ODL).ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

ch4-高级数据库模型-2(UML、ODL).ppt

1、4.1 数据库系统设计概述数据库系统设计概述4.2 E/R模型模型4.3 UML统一建模语言统一建模语言4.4 对象定义语言对象定义语言ODLnUML(Unified Modeling Language)从面向对象从面向对象软件设计的图形化标注工具发展为数据库设计描软件设计的图形化标注工具发展为数据库设计描述的标注。述的标注。n除了多路联系外,除了多路联系外,UML提供了与提供了与E/R模型相同的能模型相同的能力。力。UMLE/R模型模型类类实体集实体集关联关联二元联系二元联系关联类关联类联系的属性联系的属性子类子类isa层次层次聚集聚集多对一联系多对一联系组合组合具有引用完整性的多对一具有引

2、用完整性的多对一1.UML类类nUML中的类与中的类与E/R模型中的实体集类似。模型中的实体集类似。n一个类框分为三部分:一个类框分为三部分:顶部:类名顶部:类名中间:属性中间:属性底部:方法底部:方法Moviestitle PKyear PKlengthgenre2.UML类的键类的键n指定指定UML中类的主键,是在每个键属性的后面加中类的主键,是在每个键属性的后面加上关键字上关键字PK。3.关联关联n类之间的二元联系称为关联。类之间的二元联系称为关联。UML中没有多路联系,一中没有多路联系,一个多路联系由多个二元联系表示。个多路联系由多个二元联系表示。n两个两个UML类之间的关联通过在两个

3、类之间划一条线来表类之间的关联通过在两个类之间划一条线来表示,并在线下方给出名字。示,并在线下方给出名字。n关联类中连接对象的数量有一定的约束,该约束通过在连关联类中连接对象的数量有一定的约束,该约束通过在连接线的末端用一个接线的末端用一个m.n标签表示,表示至少标签表示,表示至少m个、至多个、至多n个对象与另外一端的对象连接。个对象与另外一端的对象连接。m.m.*表示无上限表示无上限0.0.*表示对象的数目没有任何约束表示对象的数目没有任何约束如果在关联的末端没有任何标签,那么相当于如果在关联的末端没有任何标签,那么相当于1.11.1,即,即“有有且只有一个且只有一个”n例4.360.10.

4、*n例例4.37 在在UML中表达引用完整性中表达引用完整性4.自关联自关联n一个关联的两端可以连接同一个类,这样的关联称为自关一个关联的两端可以连接同一个类,这样的关联称为自关联。联。n为了区分一个类在自关联中表现的不同角色,分别给这个为了区分一个类在自关联中表现的不同角色,分别给这个关联的两端一个名字。关联的两端一个名字。例:例:电影续集的关联电影续集的关联5.关联类关联类nUML中的关联类对应联系的属性,关联类放置关中的关联类对应联系的属性,关联类放置关联的中间,拥有自己的名字,其属性是它依附的联的中间,拥有自己的名字,其属性是它依附的关联的属性。关联的属性。例:例:某个影星参演某部影片

5、的薪水。某个影星参演某部影片的薪水。6.UML中的子类中的子类nUML允许一个类允许一个类C有四种不同的子类:有四种不同的子类:完整对局部:每个类完整对局部:每个类C的对象是否是该子类的的对象是否是该子类的一个成员?一个成员?分离对重叠:一个对象能够出现在两个子类中分离对重叠:一个对象能够出现在两个子类中吗?吗?n面向对象系统中的子类是分离的,而面向对象系统中的子类是分离的,而E/R模型允模型允许重叠子类;许重叠子类;nE/R模型和面向对象系统都允许完整的或者局部模型和面向对象系统都允许完整的或者局部的子类。的子类。nUML的子类中只记录其父类中没有的额外的属性,的子类中只记录其父类中没有的额

6、外的属性,且使用一个空三角箭头指向父类。子类还可以有且使用一个空三角箭头指向父类。子类还可以有自己的与其他类的联系。自己的与其他类的联系。例:例:电影子类的电影子类的UML 子类分离是分离的、局部的,因为许多电影既不是卡子类分离是分离的、局部的,因为许多电影既不是卡通片也不是凶杀片通片也不是凶杀片7.聚集和组合聚集和组合n聚集聚集表示类与菱形端类的多对一联系;表示类与菱形端类的多对一联系;两个类之间的一条线,末端为一个两个类之间的一条线,末端为一个空的菱形空的菱形,表示标注为表示标注为0.1n组合组合表示具有引用完整性的多对一联系;表示具有引用完整性的多对一联系;两个类之间的连线,末端为一个两

7、个类之间的连线,末端为一个实心的实心的黑色黑色菱形,表示标注为菱形,表示标注为1.18.UML图到关系的转化图到关系的转化n类到关系类到关系为每个类创建一个关系,关系名为类名,关系的属性为每个类创建一个关系,关系名为类名,关系的属性为类的属性。为类的属性。n关联到关系关联到关系为每个关联创建一个名字为关联名的关系,关联的属为每个关联创建一个名字为关联名的关系,关联的属性是两个连接类的键属性;性是两个连接类的键属性;如果有关联类附在联系上,则关系的属性中应包括关如果有关联类附在联系上,则关系的属性中应包括关联类的属性。联类的属性。该该UML转化为如下的关系模式:转化为如下的关系模式:Movies

8、(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考虑子类是考虑子类是“分离

9、的还是重叠的分离的还是重叠的”、“是完整的还是局部是完整的还是局部的的”,在,在E/R模式方法(每个子类的关系仅有键属性和该子模式方法(每个子类的关系仅有键属性和该子类属性)、面向对象方法(每个实体在一个子类的关系中)类属性)、面向对象方法(每个实体在一个子类的关系中)和空值法(所有子类用一个关系表示)中进行选择:和空值法(所有子类用一个关系表示)中进行选择:如果每一层都是分离的,用面向对象;如果每一层都是分离的,用面向对象;如果每一层既是完整又是分离的、则用面向对象只需为如果每一层既是完整又是分离的、则用面向对象只需为叶子节点构建关系;叶子节点构建关系;如果层次很大并且在某些或者所有的层上是

10、重叠的,则如果层次很大并且在某些或者所有的层上是重叠的,则E/R方法是合适的。方法是合适的。从聚集组合到关系从聚集组合到关系n聚集和组合表示的是多对一的关联。聚集和组合表示的是多对一的关联。n不为聚集和组合构建任何关系,将菱形端类的键不为聚集和组合构建任何关系,将菱形端类的键属性添加到非菱形端类中,在聚集属性添加到非菱形端类中,在聚集(而非组合而非组合)情情况下,这些属性可以为空。况下,这些属性可以为空。转化为如下的关系模式:转化为如下的关系模式:MoviesExecs(cert#,name,address,networth)Studios(name,address)Movies(title,

11、year,length,genre,studioName)Presidents(cert#,studioName)UML中的支持组合中的支持组合nUML中的支持组合是指中的支持组合是指“弱弱”类类(不提供键属性的不提供键属性的类类)与与“支持支持”类之间的具有引用完整性的多对一类之间的具有引用完整性的多对一联系;联系;n支持组合的标注:使用一个带有字母支持组合的标注:使用一个带有字母“PK”的弱的弱类框作为一个支持组合的锚,其含义是在组合另类框作为一个支持组合的锚,其含义是在组合另外一端的支持类的键属性是弱类键的一部分,连外一端的支持类的键属性是弱类键的一部分,连同弱类的任一属性被标记为同弱类

12、的任一属性被标记为“PK”。对应的关系模式为:对应的关系模式为:Studios(name,address)Crews(number,crewChief,studioName)本节习题:本节习题:P27 练习练习2.1.1,画出,画出UML图图 2.1.2 c)d)问题:使用面向对象方法,针对如下的一个三级层问题:使用面向对象方法,针对如下的一个三级层次要创建多少关系?这个三级层次的第一层和次要创建多少关系?这个三级层次的第一层和第二层的每个类有三个子类,并且其层次是:第二层的每个类有三个子类,并且其层次是:a)在每一层是分离和完整的在每一层是分离和完整的b)在每一层是分离的但不是完整的在每一层

13、是分离的但不是完整的c)既不是分离的也不是完整的既不是分离的也不是完整的4.1 数据库系统设计概述数据库系统设计概述4.2 E/R模型模型4.3 UML统一建模语言统一建模语言4.4 对象定义语言对象定义语言ODL1.ODL简介简介(1)n一种基于文本的使用面向对象术语描述数据库一种基于文本的使用面向对象术语描述数据库结构的语言。结构的语言。n类声明类声明关键词关键词classclass、类名、类的特性列表、类名、类的特性列表 class ;这里的特征可以是属性、联系或者方法。这里的特征可以是属性、联系或者方法。ODL简介简介(2)nODL中的属性中的属性属性的声明由关键字属性的声明由关键字a

14、ttributeattribute、属性的类型和名字、属性的类型和名字表示,可以是基本数据类型,也可以是复杂类型;表示,可以是基本数据类型,也可以是复杂类型;n例例2.1,原子类型的属性,原子类型的属性n例例2.2,address是非原子类型的属性是非原子类型的属性nODL中的联系中的联系ODLODL联系的声明通过关键字联系的声明通过关键字relationshiprelationship、类型和联系、类型和联系名字来声明。名字来声明。联系类型描述类的一个对象与这个联系连接;联系类型描述类的一个对象与这个联系连接;联系类型可以是另外一个类联系类型可以是另外一个类(多对一多对一)或者一个集合类型或

15、者一个集合类型(一对多或多对多一对多或多对多)。n多对一:多对一:类类/对象名对象名relationship Studio ownedBy;n一对多、多对多:一对多、多对多:Setrelationship Set stars;ODL简介简介(3)n联系的多重性联系的多重性和和E/R中的二元联系类似,可分为多对一、一对一和多中的二元联系类似,可分为多对一、一对一和多对多;对多;不同类型对应的两个联系声明中分别使用不同类型对应的两个联系声明中分别使用“Set”(多)(多)和和“类型名类型名”(一)的不同组合;(一)的不同组合;“多多”可以是可以是“零零”,表示,表示“任一个子集(包括空集)任一个子

16、集(包括空集)均可均可”n例例2.3,图,图4-45中的中的两对联系:两对联系:Stars和和starredIn是多对多是多对多的,的,ownedBy和和owns是多对一是多对一/一对一对多的。多的。ODL简介简介(4)n反向联系反向联系用于表达一对联系之间用于表达一对联系之间的的“互逆互逆”性,注意反性,注意反向是成对出)。向是成对出)。反向联系的定义:反向联系的定义:inverse 如跨类,则原类如跨类,则原类名名:原联系名;原联系名;例例2.5,对应,对应P25图图2.6中中的代码段。其中有两个的代码段。其中有两个反向联系对反向联系对ODL简介简介(5)nODL中的基本类型中的基本类型原

17、子类型:整型、浮点型、字符型、字符串型、布尔型原子类型:整型、浮点型、字符型、字符串型、布尔型和枚举型和枚举型类名:实际是一个包含类的所有属性和联系的结构类名:实际是一个包含类的所有属性和联系的结构n用类型构建器用类型构建器(type constructor)将基本类型组合成将基本类型组合成结构化类型结构化类型集合类型,以下均设集合类型,以下均设T为任意类型为任意类型,n集合集合(set):Set,无序、元素不能重复出现无序、元素不能重复出现n包包(bag):Bag,无序、元素可重复出现无序、元素可重复出现 1,2,1和和2,1,1是相同的包是相同的包n链表链表(list):List,长度可为

18、,长度可为0、有序有序。string即即list。1,2,1和和2,1,1是不同的链表是不同的链表ODL简介简介(6)数组数组(array):Array,整数,整数i表示长度表示长度Arraychar,10字典字典(dictionary):Dictionary,表示,表示T,S元素对的元素对的有限集合。每对元素由一个键类型有限集合。每对元素由一个键类型T的值和一个值域类型的值和一个值域类型S的值构成,不能有的值构成,不能有T值相同的元素对,但可以是多对一值相同的元素对,但可以是多对一n结构结构(structure)类型类型若若T1,Tn是类型,是类型,F1,Fn分别是其域名,则分别是其域名,则

19、 Struct NT1 F1,Tn Fn 表示一个名为表示一个名为N的结构类型,包含的结构类型,包含n个域,其第个域,其第i个类型为个类型为Ti,域名为域名为Fi。ODL简介简介(7)nODL数据类型的使用数据类型的使用声明联系的类型声明联系的类型n可以是一个类,或者应用于类的集合类型构建器的可以是一个类,或者应用于类的集合类型构建器的单独使用;单独使用;合法的声明:合法的声明:Movie;一个类一个类 Bag;一个类的集合类型;一个类的集合类型注意以下几种错误的联系声明:注意以下几种错误的联系声明:n联系类型不能含有结构类型联系类型不能含有结构类型 Struct N Movie field1

20、,Star field2n联系类型不能含有原子类型联系类型不能含有原子类型 Setn联系类型不能含有多个集合类型联系类型不能含有多个集合类型 SetArrayODL简介简介(8)n属性的类型属性的类型先由原子类型或其他类型构造,然后可以多次使用结构先由原子类型或其他类型构造,然后可以多次使用结构体和集合类型构建器来构建;体和集合类型构建器来构建;一些属性类型的例子一些属性类型的例子nInteger;原子类型;原子类型nStruct N string field1,integer field2;原子类型结;原子类型结构构nList;原子类型的集合类型;原子类型的集合类型nArray;由由原子类型

21、构成的结构的集合类型原子类型构成的结构的集合类型2.ODL中的子类中的子类n子类继承父类的所有属性,此外子类还可以有自己的子类继承父类的所有属性,此外子类还可以有自己的属性属性n将一个类将一个类C C声明为另一个类声明为另一个类D D的子类,在的子类,在C C的声明后加上的声明后加上extends name of Dextends name of D例例4.52n多继承:用冒号将类别分开多继承:用冒号将类别分开3.在在ODL中声明键中声明键nODL中的键声明中的键声明声明键对于一个类来说是可选的,因为在面向对象声明键对于一个类来说是可选的,因为在面向对象ODLODL中,所有对象都有一个对象标识

22、。中,所有对象都有一个对象标识。也可以使用关键字也可以使用关键字key(keys)key(keys),后跟属性或属性列表,后跟属性或属性列表来声明键;其中若某个键由多个属性构成,则加括号;来声明键;其中若某个键由多个属性构成,则加括号;n单个键,单个键,class Movie(key(title,year)n多个键多个键keys 键键1,键,键2,方法键。将方法声明为键,表示类中不同对象方法键。将方法声明为键,表示类中不同对象在该方法上的返回值不同在该方法上的返回值不同联系键。多对一联系声明为键表示该联系中一联系键。多对一联系声明为键表示该联系中一端端“可以可以”是多端的键。是多端的键。例例4

23、.544.从从ODL设计到关系设计设计到关系设计(1)nODL到关系模型的转化方法类似于到关系模型的转化方法类似于E/R模型,但有些模型,但有些不同不同E/R中实体集一定要有键,而中实体集一定要有键,而ODL中键是可选项中键是可选项n为类创建关系时,自创一个属性作为键为类创建关系时,自创一个属性作为键E/R属性和关系属性都要求必须是原子类型,但属性和关系属性都要求必须是原子类型,但ODL没有这样的限制没有这样的限制n非原子类型要按照特定的处理方式转化为原子类非原子类型要按照特定的处理方式转化为原子类型型n如果转化后产生了不规范的关系,则要按照前面如果转化后产生了不规范的关系,则要按照前面介绍过

24、的关系模式分解的方法进行优化处理介绍过的关系模式分解的方法进行优化处理4.从从ODL设计到关系设计设计到关系设计(2)n从从ODL属性到关系属性属性到关系属性满足两个假设,则直接转化满足两个假设,则直接转化n类中的所有特性都是属性(不是联系或方法)类中的所有特性都是属性(不是联系或方法)n属性的类型都是原子类型(不是结构或集合)属性的类型都是原子类型(不是结构或集合)可以创建一个属性来表达对象标识并且让它作为相应可以创建一个属性来表达对象标识并且让它作为相应关系的键。关系的键。例例4.55,MovieExecs(cert#,name,address,networth)n类中的非原子类型属性类中

25、的非原子类型属性简单的结构类型简单的结构类型n为结构的每个字段定义一个关系的属性即可为结构的每个字段定义一个关系的属性即可n如果命名冲突则重命名如果命名冲突则重命名例例4.56 Star(name,street,city)4.从从ODL设计到关系设计设计到关系设计(3)n集合类型属性的表示集合类型属性的表示主流办法主流办法n对于属性对于属性A A的值的集合,为集合中的每个值都构造一的值的集合,为集合中的每个值都构造一个元组,该元组中包括属性个元组,该元组中包括属性A A和类中的所有其他属性和类中的所有其他属性的相应值的相应值例例4.57 Star(name,street,address,bir

26、thdate)一个问题:可能会导致不规范的关系,一般来说会违反一个问题:可能会导致不规范的关系,一般来说会违反BCNF的要求的要求采用前面介绍的分解方法消除异常采用前面介绍的分解方法消除异常n另一种方法另一种方法把所有的集合类型的属性分离出来,将这些属性的值域把所有的集合类型的属性分离出来,将这些属性的值域与类的对象集合之间的关系看作是一个多对多联系,再与类的对象集合之间的关系看作是一个多对多联系,再去表示联系去表示联系4 从从ODL设计到关系设计设计到关系设计(4)n其他类型构建器的表示其他类型构建器的表示包:增加包:增加count属性记录包中每个元组出现的次数。属性记录包中每个元组出现的次

27、数。列表:增加列表:增加position属性指示对应的地址在列表中的位属性指示对应的地址在列表中的位置。置。定长数组定长数组字典:表示成一个由键域和值域组成的二元组的集合。字典:表示成一个由键域和值域组成的二元组的集合。4.从从ODL设计到关系设计设计到关系设计(5)nODL中联系的表示中联系的表示E/RE/R模型中可为每个联系创建模型中可为每个联系创建一个新关系,该关系联接两个一个新关系,该关系联接两个相关类的键相关类的键ODLODL中为每对联系建立一个关中为每对联系建立一个关系系n例如:为联系对例如:为联系对ownedBy和和owns创建一个关系创建一个关系StudioOf:StudioO

28、f(title,year,studioname)为联系对为联系对stars和和starredIn创建一创建一个关系个关系StarsIn:StarsIn(title,year,starname)n对对“多对一多对一”联系,将该联系与联系中联系,将该联系与联系中“多多”的那一方的那一方的类建立一个关系(即组合两个拥有共同键的关系)的类建立一个关系(即组合两个拥有共同键的关系),不会破坏不会破坏BCNF条件条件Movies(title,year,length,genre,studioname)n多对多联系不可多对多联系不可 Movies(title,year,length,genre,studion

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

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|