`
xiaoer_1982
  • 浏览: 1864227 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

UML在关系型数据库设计中的应用

阅读更多
 

介绍

许多人认为面向对象概念和关系型数据库相互不一致,并且不能结合。事实上完全相反!经过灵活的使用,一个关系型数据库能够为面向对象(OO)模型提供一套优秀的实现。同样的模型能够用来开发编程代码和关系型数据库结构。

关系型数据库技术是意义深远的、强大的,但它比许多开发商使你相信的要难得多。单个表是简单易懂的、直观的。但由数以百计的表组成(这是常见的)的应用要彻底了解是相当困难的。这正是OO模型有用之处。 OO模型使你深入地、连贯地思考问题。

OO模型提供一种问题的超结构(superstructure)的思考方式,然后该方式能够用关系型数据库的更低层的组成块来实现。

本文章综合地讨论了关系型数据库技术,而不是集中于特定的产品上。我们将不讨论物理设计细节(例如存储分配和物理聚集),因为它们是依赖于产品的。

用关系型数据库实现UML模型有两个方面:映射结构(第2节)和映射功能(第3节)。第4节注解了面向对象到关系型数据库的扩展。第5节总结本文章。

2. 结构映射到表

UML对象模型在本质上只是一个扩展的实体-关系(ER)模型 。使用设计数菘獾腅R模型的方式受到普遍接受,而我们以一种近似的但更强大的方式-使用UML对象模型。OO模型的主要优势在于编程和数据库的相同的模型工作。而且,作为考虑功能性的一种方式(第3节),我们强调OO模型的导航。这一节显示如何实现UML对象模型的主要构造。

2.1 标识(identity)

实现对象模型的第一步是处理标识。我们从定义几个术语开始。

1)候选键(candidate key)是一个或多个属性的组合,它唯一地确定某个表里的记录。一个候选键里的属性集必须是最小化的;除非破坏唯一性,否则属性不能从候选键删除。候选键里的属性不能为空。

2)主键(primary key)是一个特定地选定的候选键,用来优先地参考记录。

3)外键(foreign key)是一个候选键的参考。外键必须包括每个要素属性的一个值,或者它必须全部为空。外键用来实现关联和一般化。

正常地你应该为每个表定义一个主键,尽管偶尔有例外。我们强烈建议所有的外键都只指向主键而不是其它的候选键。

定义主键有两种基本的方法:

1)基于存在的标识。你应该为每个类表加一个对象标识符属性,并将它设为主键。每个关联表的主键包括一个或更多的相关类的标识符。基于存在的标识符有作为单独属性的优势,占位小且大小相同。只要你的关系型数据库管理系统(RDBMS)受支持,基于存在的标识符就没有性能的劣势。(多数RDBMS提供有效的基于存在的标识符的分配顺序号码。)唯一的劣势是基于存在的标识符在维护时内没有固有的意义。

2)基于值的标识。一些真实世界的属性的组合确定了每个对象。基于值的标识有不同的优势。主键对于用户有固有的意义,容易进行调试和数据库维护。在另一面,基于值的主键很难改变。一个主键的改变需要传播到许多外键。一些对象没有自然的真实世界里的标识符。

我们推荐你在超过30个类的RDBMS应用里使用基于存在的标识。基于存在和基于值的标识都是所有RDBMS应用的可行选项。

2.2 域(属性类型)

属性类型是UML术语,对应于数据库著作里的域的术语。比起直接用数据类型,域提升到更一致的设计,并便利了应用的定位。

简单域很容易实现。你仅仅要定义相应的数据类型和大小。并且每个用了域的属性,你都必须为每个域约束加入一条SQL查询子句。简单域的一些例子是:名字(name),长字符(longString)和电话号码(phone-Number)。

一个枚举域把一个属性限制在一系列的值里。枚举域比简单域实现起来更复杂,图表1显示了四个方法。

图表1:枚举的实现方法
2.3类

正常情况下,我们把每个类映射为一个表,每个属性映射为一个列。你可能因一个已产生的标识符(基于存在的标识符)、隐藏的关联(第2.4节)和通用鉴别器(第2.5节)需要一些另外的列。

2.4关联

现在我们讨论关联的实现。我们已经把我们的陈述分为建议的映射(我们正常使用的映射),可选的映射(我们偶尔使用的映射)和不鼓励的映射(我们遇到的应该避免的错误)。我们所有的例子都采用基于存在的标识。

分享到:
评论

相关推荐

    UML在关系数据库设计中的应用

    ### UML在关系数据库设计中的应用 #### 引言与背景 在当今的软件密集型系统中,持久性对象的管理成为了面向对象研究的核心议题。尽管面向对象数据库(OODB)与对象关系数据库(O-RDB)的发展为数据管理带来了新的...

    UML类图在关系数据库中的实现

    而在数据库设计中,类通常对应于关系型数据库中的表。因此,将UML类图映射至关系数据库成为了一项重要的任务。本文主要探讨将UML类图中的类及其对象映射成关系型数据库中的表的具体策略。 #### 将UML类图中的类映射...

    uml在数据库建模中的应用

    将UML类图映射到关系型数据库中的表时,首先需要考虑如何将类图中的属性映射到表中的列。在大多数情况下,类图中的属性可以直接映射成表的一列,但在某些特殊情况下需要额外考虑: 1. **数据库性能**:在大多数...

    使用UML进行面向对象分析与设计:第13章 数据库设计.pdf

    在这个过程中,需要注意的是,关系数据库管理系统(RDBMS)与面向对象系统在设计理念上有所不同。RDBMS侧重于数据和关系,适合用于处理结构化数据和报表,而面向对象系统更注重对象的行为和状态,数据通常是封装在...

    UML讲义13-数据库设计.ppt

    综上所述,UML与数据库设计的关系是将面向对象的模型转换为关系型数据库的实体和关系。这种转换需要考虑性能、扩展性和维护性等多个方面,以确保设计出高效、灵活且易于理解的数据库结构。在实际应用中,开发者需要...

    基于 ECO 的 UML 模型驱动的数据库应用开发1.pdf

    ObjectRDBMS Mapping,也称为ORM(Object-Relational Mapping),是一种软件工程的技术,用于将对象模型与关系型数据库模型之间进行转换。它的核心目标在于减少应用代码中的复杂性和冗余,并提高软件系统的可维护性...

    使用UML设计数据库应用

    这篇文章陈述如何用关系型数据库实现UML模型。假设我们熟悉UML对象建模表示法和关系型数据库。1.介绍许多人认为面向对象概念和关系型数据库相互不一致,并且不能结合。事实上完全相反!经过灵活的使用,一个关系型...

    一种基于UML和Oracle8i的工程数据库的设计方法.pdf

    【标签】: 本文涉及的关键技术包括Oracle数据库(一种关系型数据库)、UML(统一建模语言)以及专业数据库设计指导。 【主要内容】: 在工程数据库设计中,UML作为一种强大的建模工具,被用于描述和处理复杂的工程...

    数据库设计概论,介绍数据库设计的人物和特点、设计方法以及步骤

    在设计过程中,有几个关键准则需要遵循:完备性确保数据库能完全满足应用需求;一致性保证数据的一致性和无冲突;优化则要求数据库具有良好的规范化程度和执行效率;易维护性意味着数据库设计应便于未来的修改和扩展...

    A Simple Methodology for Applying UML to Database Design

    采用UML后,课程内容得到了显著增强,学生能够更好地理解和应用关系型数据库的设计原理。此外,研究者还认为,如果有一本针对本科生的教科书能够系统地使用UML来讲解关系型数据库设计,将会非常有效。 综上所述,...

    《公立大学注册系统》Java桌面版源码+文档+UML设计类图+数据库设计图

    3. **MySQL数据库**: MySQL是一款开源的关系型数据库管理系统,被广泛应用于Web应用中。在这个注册系统中,MySQL用于存储学生信息、课程信息等数据,支持SQL查询语句进行数据操作,确保了数据的持久性和一致性。 4....

    UML+数据库+JSP课程资源

    1. **关系型数据库(Relational Database)**:如MySQL、Oracle等,基于关系模型,使用表格来存储数据。 2. **SQL(Structured Query Language)**:用于管理关系数据库的语言,包括查询、更新和操作数据。 3. **ER...

    精品课程网站_UML图和数据库源码等

    在IT行业中,UML(Unified Modeling Language)图是一种标准的建模语言,用于软件系统的设计和分析。它通过图形化的方式表达系统的结构和行为,帮助开发者更好地理解和沟通软件设计思想。UML图主要包括用例图、类图...

    基于UML的教师管理系统设计 计算机软件综合设计

    在本设计中,可能使用关系型数据库如MySQL或SQL Server,通过ER(实体关系)模型来规划数据库结构,确保数据的有效组织和高效查询。 VB(Visual Basic)程序则是实现该系统的编程语言。VB以其直观易学的特性,常...

Global site tag (gtag.js) - Google Analytics