数据库设计-UML模型
數據建模
即對于一個特定的應用,如何在數據庫中表示數據
設計關系模型方法:
關系模型設計理論
概念設計模型
-E/R--傳統(tǒng)的
-UML子集--目前常用的
Unified Modeling Language,統(tǒng)一建模語言
UML用于面向對象建模,但是現(xiàn)在也用于數據庫建模
UML與E/R模型相似,但是不提供多元聯(lián)系
UML和E/R術語對比
UML ? ? ? ? ? ? ? ? ? ER
class(類)? ?--? ? ? Entity set(實體集)
Association(關聯(lián))-- Binary relationship(二元聯(lián)系)
? ? ? ? ?
Association Class(關聯(lián)類) ?? -- Attributes on a relationship(聯(lián)系的屬性)
Subclass(子類)--? ? Isa hierarchy(Isa 層次關系)
Aggregation(聚集)-- Many-one relationship(多對一聯(lián)系)
Composition(組成)-- Many-one relationship with referential?integrity(帶參照完整性的多對一聯(lián)系)
UML中
類是具有相同屬性和方法的對象的集合
屬性是靜態(tài)的,是狀態(tài),具有數據類型
PK表示主鍵
方法是動態(tài)的,是行為,包括參數的聲明和返回值的聲明
兩個類間對象的聯(lián)系稱為關聯(lián)(association)
表示方法:
兩個類間用直線(箭頭可選)連接
連接名字通常寫在直線下方
在直線連接兩個類的端點處標上關聯(lián)類型(Multiplicity)
m ..n 表示與C2類中一個對象有關的C1類對象的個數最少為m,最多為n。
*表示“無上限”
m ..*表示“沒有上限”
0..n表示“沒有下限”
0..*表示“根本沒有限制”
關聯(lián)類型(Multiplicity)簡寫和默認值
*”是“0..*”的簡寫
“1”是“1..1”的簡寫
默認值為“1..1”
關聯(lián)也可以有屬性
-稱為關聯(lián)類( association class) .
-與E/R圖中聯(lián)系的屬性類似
自身關聯(lián)(Self-Associations)
類自己與自己關聯(lián)
子類(Subclasses)
UML類都可以包含下級子類
子類用連線連接父類,與父類連接處以空心三角指向父類
主鍵來自父類(Superclass)
子類繼承父類的屬性(包括attributes and associations)
子類可以有子類自己的屬性以及與其它類的關聯(lián)
UML允許4種類型的子類
-Complete(完全)(父類中的每個對象都是某個子類的成員)或partial(部分).
-Disjoint(分散)(一個對象不能包含在兩個子類中)或overlapping(重疊).
在0bject-Oriented系統(tǒng)中,子類是disjoint,即兩個子類中不存在同一對象。
E/R模型自動允許overlapping子類
E/R模型和00系統(tǒng)都允許complete或partial子類
有兩種類型的多對一(n:1)關聯(lián)(many-one associations)
-聚集(Aggregations)
-組成(compositions)
聚集(Aggregations)
聚集用連線連接兩個類,一方以空心菱形箭頭結束
空心菱形箭頭指向一方參與對象的個數必須為0..1,不需要另外標注
組成(Compositions)
組成與聚集類似.
但是菱形箭頭一方參與對象必須為1..1.
菱形箭頭相反一方類的每個對象必須與菱形箭頭方的一個對象關聯(lián)
組成以實心菱形表示
UML子類轉換為關系
1.E/R風格:每個子類關系只存儲其自身屬性和碼
2.OO風格:子類關系存儲其自身和其父類所有的屬性
?
總結:
UML(統(tǒng)一建模語言)跟E/R模型都屬于概念設計模型
UML類就是E/R中的實體集,關聯(lián)類-屬性,PK-標識符,方法-類型
如果沒有標注關聯(lián)類型默認1..1
關聯(lián)類型0..*-沒有限制
0..n-無下限
1-1個
n..*-無上限
感覺UML模型跟E/R的制作思路都差不多,只是換了一種形式,對E/R多熟悉一些,UML也會特別容易上手
總結
以上是生活随笔為你收集整理的数据库设计-UML模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cybertec PostgreSQL透
- 下一篇: 关于SQLite创建视图