此外,我們還應(yīng)加上一些額外的可選功能,如
1. 數(shù)據(jù)的版本信息
2. 數(shù)據(jù)的狀態(tài)管理
3. 數(shù)據(jù)的變更記錄
4. 數(shù)據(jù)的基線功能
5. 自動的全文搜索
3.需求
在做這個數(shù)據(jù)庫前我們還是先確定一下上述的第2種情況主要有那些需求.
3.1數(shù)據(jù)的定義
本數(shù)據(jù)庫是用條目(item)、關(guān)系(relationship)和屬性組(attributeGroup)三個概念來組織數(shù)據(jù)的,用戶可以按自已的需求定義這三種對象,將數(shù)據(jù)庫的數(shù)據(jù)看成一個有屬性的有向圖,如下
條目(item)就是圖中的節(jié)點, 關(guān)系(relationship)就是圖中的邊。節(jié)點和邊都具有屬性,它們用屬性組(attributeGroup)來組織。這三個對象的UML類圖如下
所有用戶自定義的條目(item)、關(guān)系(relationship)和屬性組(attributeGroup)都必須從它們繼承。
3.1.1條目(item)
一個條目(item)代表一個對象實例(如計算機,應(yīng)用軟件,或其它),<!--[if !supportLists]-->1. <!--[endif]-->每一個條目(item)將至少有一個唯一的Id,并充當(dāng)一個Key <!--[if !supportLists]-->2. <!--[endif]-->為一個條目(item)指定一個Id.后,它可能用在任何需要Id的場合 <!--[if !supportLists]-->3. <!--[endif]-->一個條目(item)具有0個或多個屬性組(attributeGroup)。注意它自己不能直接包含屬性.
3.1.2關(guān)系(relationship)
一個關(guān)系(relationship)表示源條目(item)與目標(biāo)條目(item)之間的連接。如一個軟件“運行(runs)”在一個操作系統(tǒng)上、一個操作系統(tǒng)“安裝(installed)”在一個計算機上、一個故障(incident)記錄“影響(affects)”一個計算機、以及一個服務(wù)使用另一個服務(wù)。關(guān)系(relationship)有下列特征:
<!--[if !supportLists]-->1. <!--[endif]-->一個關(guān)系(relationship)嚴(yán)格的連接兩個條目(item),一個是源,一個是目標(biāo),并提供關(guān)于這個關(guān)系(relationship)的信息。 <!--[if !supportLists]-->2. <!--[endif]-->一個關(guān)系(relationship)是一個條目(item)的子類,并具有一個條目(item)的所有特征。如每個關(guān)系(relationship)都將有一個唯一的ID,并作為key。 <!--[if !supportLists]-->3. <!--[endif]-->一個關(guān)系是有方向的,但本系統(tǒng)并沒有為這個方向賦予什么特殊的意義。但刪除是依賴于方向的,具體請見刪除條目。 <!--[if !supportLists]-->4. <!--[endif]-->一個關(guān)系(relationship)具有0個或多個屬性組(attributeGroup)。注意它自己不能直接包含屬性.
3.1.3屬性組(attributeGroup)
屬性組(attributeGroup)表示一個含有描述條目(item)或關(guān)系的屬性(注意這里的屬性是類似于數(shù)據(jù)庫表中的字段,而不是像C#語言中的屬性)的集合。屬性組(attributeGroup)有下列特征:
出處:博客園
責(zé)任編輯:bluehearts
上一頁 GraphDatabase在關(guān)系數(shù)據(jù)庫中的實現(xiàn) [1] 下一頁 GraphDatabase在關(guān)系數(shù)據(jù)庫中的實現(xiàn) [3]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|