Java教程

数据库设计-UML模型

本文主要是介绍数据库设计-UML模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数据建模
即对于一个特定的应用,如何在数据库中表示数据

设计关系模型方法:

关系模型设计理论

概念设计模型
-E/R--传统的
-UML子集--目前常用的

Unified Modeling Language,统一建模语言
UML用于面向对象建模,但是现在也用于数据库建模
UML与E/R模型相似,但是不提供多元联系

UML和E/R术语对比

UML                   ER
class(类)   --      Entity set(实体集)

Association(关联)-- Binary relationship(二元联系)
         
Association Class(关联类)    -- Attributes on a relationship(联系的属性)

Subclass(子类)--    Isa hierarchy(Isa 层次关系)

Aggregation(聚集)-- Many-one relationship(多对一联系)

Composition(组成)-- Many-one relationship with referential integrity(带参照完整性的多对一联系)

UML中
类是具有相同属性和方法的对象的集合
属性是静态的,是状态,具有数据类型
PK表示主键
方法是动态的,是行为,包括参数的声明和返回值的声明

两个类间对象的联系称为关联(association)
表示方法:
两个类间用直线(箭头可选)连接
连接名字通常写在直线下方
在直线连接两个类的端点处标上关联类型(Multiplicity)
m ..n 表示与C2类中一个对象有关的C1类对象的个数最少为m,最多为n。
*表示“无上限”
m ..*表示“没有上限”
0..n表示“没有下限”
0..*表示“根本没有限制”

关联类型(Multiplicity)简写和默认值
*”是“0..*”的简写
“1”是“1..1”的简写
默认值为“1..1”

关联也可以有属性
-称为关联类( association class) .
-与E/R图中联系的属性类似

自身关联(Self-Associations)
类自己与自己关联

子类(Subclasses)
UML类都可以包含下级子类
子类用连线连接父类,与父类连接处以空心三角指向父类
主键来自父类(Superclass)
子类继承父类的属性(包括attributes and associations)
子类可以有子类自己的属性以及与其它类的关联

UML允许4种类型的子类
-Complete(完全)(父类中的每个对象都是某个子类的成员)或partial(部分).
-Disjoint(分散)(一个对象不能包含在两个子类中)或overlapping(重叠).
在0bject-Oriented系统中,子类是disjoint,即两个子类中不存在同一对象。
E/R模型自动允许overlapping子类
E/R模型和00系统都允许complete或partial子类

有两种类型的多对一(n:1)关联(many-one associations)
-聚集(Aggregations)
-组成(compositions)

聚集(Aggregations)
聚集用连线连接两个类,一方以空心菱形箭头结束
空心菱形箭头指向一方参与对象的个数必须为0..1,不需要另外标注

组成(Compositions)
组成与聚集类似.
但是菱形箭头一方参与对象必须为1..1.
菱形箭头相反一方类的每个对象必须与菱形箭头方的一个对象关联
组成以实心菱形表示

UML子类转换为关系
1.E/R风格:每个子类关系只存储其自身属性和码
2.OO风格:子类关系存储其自身和其父类所有的属性
 

总结:

UML(统一建模语言)跟E/R模型都属于概念设计模型

UML类就是E/R中的实体集,关联类-属性,PK-标识符,方法-类型

如果没有标注关联类型默认1..1

关联类型0..*-没有限制

0..n-无下限

1-1个

n..*-无上限

感觉UML模型跟E/R的制作思路都差不多,只是换了一种形式,对E/R多熟悉一些,UML也会特别容易上手

这篇关于数据库设计-UML模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!