uml设计数据库步骤

上传人:真** 文档编号:242981037 上传时间:2024-09-13 格式:PPT 页数:22 大小:1.44MB
返回 下载 相关 举报
uml设计数据库步骤_第1页
第1页 / 共22页
uml设计数据库步骤_第2页
第2页 / 共22页
uml设计数据库步骤_第3页
第3页 / 共22页
点击查看更多>>
资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,Your company slogan,UML,进行数据库设计的步骤,步骤,1,:基于,UML,中的类图生成数据库,1,2,对象标识映射为主键,属性类型映射为域,类模式是,UML,建模技术的核心,数据库的逻辑视图由,UML,类图衍生。,类图是面向对象系统的建模中最常见的图之一。类图显示了一组类、接口、协作以及它们之间的关系,主要用于对系统静态设计视图建模 。其中,类是面向对象系统组织结构的核心,表示被建模的应用领域中的离散概念,是具有相同结构、行为和关系的一组对象的描述符号。,步骤,1.1,:对象标识映射为主键,设计数据库模型,合理选择主键是一个关键的问题。一般定义主键可以有两种方法:,(1),为每个类增加一个对象标识符,(OID),属性,将其映射为数据库中相应类表的主键。,EmployeeOID,Name,Salary,Phone,其中,(primary key),表示主键。对象标志符作为单独属性,所占空间较小而且大小相同,简化了主键选择方案,使得数据库更新时不会产生完整性问题,同时方便了数据库操作。,(2),根据客观事实,将某个属性或属性的组合作为主键。该主键具有实际意义,容易进行维护;,缺点在于涉及到外键,一旦其他类发生变化,更改比较困难。,步骤,1.2,:属性类型映射为域,属性类型对应于数据库中的域,域的使用可使数据库设计更具一致性,优化了数据库应用的移植性。一般来说,实现简单域比较方便,只须定义相应的数据类型和空间大小,类的属性描述了其所有对象共有的特性。属性的类型可以是基本数据类型,如整数、实数、布尔型等,也可以是用户自定义类型。,总结:类映射为表,通常,一个类映射为一张类表,类的属性映射为表的各列,类的对象则映射为表中的各个记录。值得注意的是存在以下两种特殊情况:,(1),类的属性中某些属性只是暂时性使用,不需要在数据库中永久保存,则该类属性无须映射。,(2),类的属性如果是多值,则该属性映射为多个列。另外,由于附加对象标志符,OID,或附加关联关系等原因,需要在表中增加一些新的列。,步骤,2,:,类关系的映射,1,2,关联关系映射,泛化关系映射,3,4,聚集关系映射,组合关系映射,类图由一系列类、接口和它们之间的关系,(,依赖、泛化、关联和实现等,),所组成。,在将,UML,模型向关系数据库转换时,不仅需要转换模型中的类,还需要转换类与类之间的关系,例如,关联关系、泛化关系等。聚合关系和组合关系是特殊的关联。,在设计数据库之前,对,UML,类图进行简化,去除一些冗余的关系。,步骤,2.1,:关联关系映射,UML,中的关联关系描述了系统中对象或实例之间的离散连接,是一种结构关系,规定了一种事物的对象可以与另一事物的对象相关联。当类参与关联时,类在关联关系中扮演一个特定的角色,(1),一对一关联:,A,B,1,1,表示,A,的一个对象与,B,的一个对象关联。在这种情况下,可在两个类中任意选择一方,在其所对应的类表中添加一个外键,(foreign key),,指向另一方所对应类表中的主键,从而实现两张类表之间的连接,将关联关系成功映射到数据库中。,需要注意的是,不要在两个表中均放置对方的主键,这样会造成冗余。,(2),零或一对一关联:,A,B,0.1,*,这表明,B,的一个对象可与,0,个或,1,个,A,对象发生关联,一般在,A,类,(,即对象个数为零或一的那一方,),所对应的表中添加一个外键,指向另一方,B,类所对应的类表中的主键,建立两表之间的连接。,projectOID,(,main Key,),Project_Name,Startdate,contactpersonOID,(foreign Key),contactpersonOID,(,main Key,),Phone,Fax,email,(3),一对多关联:,表示,A,的一个对象与,B,的多个对象关联,这种关联关系可以通过在,B,类,(,即具有多个对象的类,),所对应的类表中增加一个外键,指向另一方,A,类的主键,从而建立两个表之间的关联。,A,B,1,*,3,、,UML,中类关系的映射策略,projectOID,(,main Key,),Project_Name,Startdate,TaskOID,(,main Key,),Task_name,Startdate,enddate,projectOID,(,foeign,Key),(4),多对多关联:,A,B,*,*,实现多对多关联,通常需要建立一个关联表,映射关联对象,从而将多对多关联转化为两个一对多关联。实现时,在新建的关联表中设置一个对象标志符,OID,,同时增加两个外键,分别指向初始关联的两个类对应表的主键。,studentOID,(,main Key,),student_Name,enroldate,courseOID,(,main Key,),Course_name,Textbook,Stu&CouOID,(,main Key,),studentOID,(foreign Key),courseOID,(foreign Key),步骤,2.2,: 泛化关系映射,泛化关系是一种存在于一般元素和特殊元素之间的分类关系,它只使用在类型上,而不是实例上。在类中,一般元素被称为超类或父类,而特殊元素被称为子类。,从实现的角度来看,,UML,的泛化体现了分类与继承原则,与面向对象程序设计语言中的继承性概念相关。一个子类继承超类的全部属性和方法,一个子类本身又可以有自己的子类,从而构成复杂的一般特殊结构。,在关系数据库模型中没有直接的方法实现泛化,可以通过,3,种方法实现其映射。,(1),类层次映射为单个表,通过这种方法,将泛化关系中所有类都映射在单个表中,所有类的属性都保存在该表中;同时在表中增加一个对象标志符,OID,,以及一个对象类型,用以标识角色类型,(2),每个子类映射为单张表,将超类属性分别复制到各个子类中,这样每个子类既包含自身属性,又包含超类属性,同时在各个子类中增设各自的对象标志符,OID,,从而实现映射。在这个过程中,超类不需要参与映射。,(3),每个类映射为单张表,为每个类都建一张表,但每张表中的对象标志符,OID,都设为超类的类表中的,OID,。在子类的类表中,,OID,既是主键又是外键,各自属性不变。,步骤,2.3,: 聚集关系映射,聚集是一种特别类型的关联,用于描述“总体到局部”的关系。在基本的聚集关系中, 部分类的生命周期独立于整体类的生命周期。属于“,has a”,关系较弱的情况。,将这种关系映射到关系数据库中,可分为两种情况:一种是聚集关系较为紧密的情况下,可将其映射在一张表中;,另一种是聚集关系较为松散的情况下,可以用一对多关联的映射方法实现,须在子类的类表中增设一个外键指向超类的类表的主键。,组成指聚合关系的另一种形式,但是子类实例的生命周期依赖于父类实例的生命周期 。属于“,contains a”,关系较弱的情况。,具体的映射策略与聚集类似,由于组合关系中整体和部分间存在很强的所有关系和一致的生命周期,所以子类所对应的子表中的外键不能为空。,步骤,2.4,:,组合关系映射,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!