摘要:數據模型是表示現實世界的一種方法與工具。本文簡要介紹了語義模型的一些基本概念,并對E-R模型進行了一些描述,同時提出了E-R建模的一些原理和方法,希望對語義數據庫建模的E-R方法進行一些探討。
關鍵詞:E-R模型;數據庫;方法
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)05-10ppp-0c
1 引言
商品化的數據庫管理系統已經存在20多年了,最初是基于層次和網狀模型的,70年代初引入了關系模型,70年代中期開發了語義數據模型。語義模型比關系模型更復雜,且促成了數據聯系更繁的導航視圖的出現。語義模型領域在不斷地發展,近年來人們越來越感興趣于實現以語義模型作基礎的“全真”(Full-fledged)數據庫管理系統。
自1974年發表第一個語義模型以來到80年代中期,語義建模研究的核心成果是開發了表示商務數據的結構方面的強有力機制。近年來數據庫研究者們已將注意力轉移到將數據的行為(或動態)方面加到建模體系中去,這個工作大大地受到面向對象的程序設計語言的影響。
2 語義模型的涵義
研制語義模型的動機與高級程序設計語言類似。開發像ALGOL這樣的語言是為了提供更豐富更方便的程序設計抽象。它們使用戶擺脫了低級的機器考慮。類似地,語義模型是為了提供比傳統模型(層次、網狀、關系)所支持的更強的數據庫模式說明抽象。
歷史上,開發語義模型最初是為了便于數據庫設計,進入70年代后,傳統的數據模型已被廣泛地接受力有效的數據管理工具。最終將數據視為由可打印的字段值或指針字段值組成的記錄的集合,故這些模型可以稱為是基于記錄的。語義模型的開發為數據建模提供了更高級的抽象。從而使數據庫設計者能以直接涉及數據在現實世界如何產生的方式來考慮它們。
與傳統的模型不一樣,大多數語義模型的構造自然地支持自頂向下的、模塊的數據庫模式視圖,所以既簡化了模式設計又簡化了數據庫的使用[1]。語義模型固然最初是作為設計工具而被引入的,但現在人們越來越關注和研究它們的數據庫管理系統的實現。
語義模型的主要部件是對象和對象的屬性及對象間的聯系的顯式表示,建立新對象類型的構造符和導出模式部件的顯式表示。對象類型可以分為基本型和構造型,而基本型又有抽象型與可打印或可顯示型之分。抽象型是對應現實世界的物理對象(如PERSON)和概念對象(如BUSINESS)的抽象數據類型。基本可打印型(如PNAME(人名))典型地就是字母數字串。而在一些基于圖形的系統中還包括圖形[2]。構造型是通過類型構造運算而成的。類型構造也就是數據抽象,大多數語義模型中使用的類型構造機制有聚集、組合、概括、聚集是一種說明性構造機制。
組合與概括(或特化)是一種推導性構造機制。推導是處理重復信息的一種手段,通過推導位一種對象的屬性由另一種對象計算而得。組合是一種推導,組合類型的屬性可以用來包含關于作為一個整體對象的集合類型的推導信息。
概括可以看作是一種推導的特例情況,它使較一般對象的屬性由更特殊對象來繼承,這種繼承就是其計算為恒等函數的平凡推導。
屬性是對象問的有向二元聯系,或者說是一個函數。對于每一屬性有一個映像,它將其源對象類型相聯的對象集映像到其目的對象類型相聯的對象集。
3 E-R模型
E-R(實體一聯系)方法是當前最常用的系統分析與建模方法,在整個信息系統領域中應用日益廣泛。顧名思義,該方法的核心特征就是用E-R圖(模型)來抽象表示現實世界。
在E-R模型中使用了三種模型結構元素;實體、聯系、屬性(及其值域)。它們都是抽象數據類型。實體是現實世界中存在且可識別的事物或概念,聯系表示實體間的相互作用,在一個聯系中的每一實體都起著特定的作用。說明聯系中的作用是E-R模型表示有關數據語義的一個方面。屬性描述實體與聯系的特征。
在建立E-R模型時,應遵循下列原則:
(1)一個聯系集可以聯系兩個以上的實體集,稱為多元聯系。
(2)一個聯系集可以只聯系一個實體集。
(3)兩個實體集問可以有多個聯系集。
(4)聯系集可以有屬性也可以沒有。
屬性具有下列特性:
(1)名字:屬性的標識符。一個實體集或聯系集的各屬性名必須唯一,但在不同的實體集或聯系集中可以相同,不過語義不一樣。
(2)說明:屬性的語義解釋。
(3)值集:屬性取值的范圍,在同一值集上可以定義多個屬性。
(4)作用:屬性的特定使用。
屬性在E-R模型中有多種用途。最普遍的一種是用來描述實體或聯系的特征;另一種是作標識符;它的每一特定值唯一地標識一個實體或聯系。此外,還可以用來推導其他的值;提供有關特定環境下的操作信息。在E-R模型中運用了自然的圖形技術。這就是有名的E-R圖[3]。
4 E-R建模
用E-R方法進行數據建模的過程一般是先標識實體,再標識實體間的聯系,最后加上屬性。說起來極其簡單,做起來卻不容易,關鍵是無法建立一套統一而有效的原則,用來確定實體、聯系和屬性,同時也無一標準的過程可遵循。
關于實體、聯系和屬性的選定。實體、聯系與屬性也是相對的,在很大程度上依賴于看待它們的觀點,有的甚至包含一定的個人感情色彩。如何解決這類問題,這里本文提出一個原理。
令x(A)為含有屬性A的實體(或聯系)集,x(a)表示x中屬性A的值為a的一個實體,若對于某個a0,在組織中以(x一{x<a0> xX})代替X,a0對該組織仍然是有意義的,則A應作為一個實體集的存在標志。否則,A只是一種特性而應作為屬性存在。本文稱這為“存在性原理”。
例如,實體集課程COURSE(C”,C-NAME,T-NAME)中含有屬性教師名T—NAME、對于某教師“張三”,即使他在該校完全未講課,即去掉張三所講的全部課程,張三對于該校顯然還是有意義的(他從事科研或別的事情)。所以,T—NAME應是一個實體集(“教師”)存在的標志。前面所述的“顏色”是否作實體標志,決定于組織的語義。
另一個重要的原理是規范化。由于規范化的要求,有的數據不代表現實世界客觀存在的對象,也必須作為實體。
E-R模型是第一個中心圍繞聯系而不是屬性的語義模型。尤其是多年來對它進行了很多擴展,使之具有很強的語義描述能力,能支持多種關于實體與聯系的語義約束[4]。
首先是存在性依賴聯系。
其次是標識依賴聯系,它表示相聯系的兩個實體集之一的標識符必須包含另一個的標識符作為其組成部分的語義約束。
第三是條件聯系,它表明另一種語義約束。即對于聯系中一個實體集的一個給定實體,另一實體集中或者有一個實體與之相聯,或者沒有。
若原來的E—R模型只支持聚集抽象,則我們也可以將其擴展到包括概括(特殊化)抽象,并在E-R圖中用雙線箭頭來表示這種聯系而不再帶有表示一般聯系的棱形。
從某種意義上講,聯系也是實體,必須進行標識。但在標識聯系時,要處理多值聯系。本文提出三種方法:
方法:1:擴展聯系的標識符。將引起“多值”的聯系屬性包含到聯系的標識符中。例如在上述“講課”聯系中,其標識符除包含“教師”與“課程”的標識符外,還包含其多值屬性“地點”或“時間”,這樣“講課”聯系的多值性就不復存在了。
方法2:建立依賴實體。對多值聯系中的一或多個實體集建立“經歷”的依賴實體集,則去掉了聯系的多值性。
方法3:使用交互作用實體。將多值聯系所代表的交互作用作為一個實體集,給予它自己的標識符,它分別與原實體集相聯系。
在現實世界中,有許多場合是多種對象同時交互作用的,所以在建立組織的E-R模型時,經常遇到多元聯系,即一個聯系集包含兩個以上的實體集。這種聯系也具有一些不利之處,一是無法在E-R圖中作聯系的基的表示1:M,N:M,1:l,因為這種標識的組合使其中的些含義不確定。另一個是大量的實體同時聯系容易使設計者思想混亂,導致非規范形式。
為了防止這種情況,有時人們限制只允許二元聯系,為此要將多元聯系轉換成二元聯系。這種轉換的簡單方法是將該多元聯系變成一個實體,這個實體再與原實體構成多個二元聯系。另一種方法是打破多元聯系,首先考慮兩個實體間的聯系,將其分解出來變成聯合依賴實體,再與其他實體構成二元聯系。
參考文獻:
[1]姜翠霞.E-R模型向關系模型轉換的研究[J].齊齊哈爾大學學報,2004(4).
[2]李生琦.支持數據庫E-R模型設計的本體論及其獲取方法[J].計算機工程,2004(9).
[3]莊琴生.以E-R模型為基礎構造數據倉庫的概念模型[J].計算機工程與應用,2004(10).
[4]廖明潮.語義對象模型及與E-R模型的比較[J].武援工業學院學報,2003(4).
[5]耿瑞峰.基于元數據的語義搜索技術研究[J].徽計算機信息,2005(26).
收稿日期:2008-01-12
作者簡介:陳志群(1967-),女,廣東肇慶人,大學本科,實驗師,研究方向:計算機應用。