3.2.2.2數(shù)據(jù)的版本管理
每一個(gè)數(shù)據(jù)我們都給它一個(gè)版本,初始值為0,以后對(duì)數(shù)據(jù)的每次變化時(shí),都給它一個(gè)新的版本號(hào),以便用戶進(jìn)行調(diào)試或查詢(xún)。
3.2.2.3數(shù)據(jù)的變更記錄
對(duì)數(shù)據(jù)的每次變更都記錄下來(lái),形成一個(gè)歷史記錄,以便用戶進(jìn)行調(diào)試或查詢(xún)。它可以與基線管理配合使用。
3.2.2.4數(shù)據(jù)的基線管理
將數(shù)據(jù)的某個(gè)版本作為一個(gè)基線,以后每次的變更都是針對(duì)這個(gè)基線的增量。
3.2.2.5數(shù)據(jù)的全文搜索
3.3非功能性需求
3.3.1分布式的需求
本數(shù)據(jù)庫(kù)暫時(shí)對(duì)分布式方面的要求不高,或者說(shuō)暫時(shí)不需要,在第一個(gè)實(shí)現(xiàn)中不與考慮.
3.3.2數(shù)據(jù)庫(kù)事務(wù)的要求
雖然本數(shù)據(jù)庫(kù)對(duì)分布式要求不高,但對(duì)事務(wù)時(shí)要求卻很高,必須有完整ACID支持,幸運(yùn)的是我們有下層的RDBMS來(lái)保證,我們只要提供封裝就可以了。
3.3.3移植的要求
這個(gè)分為兩個(gè)方面
一、對(duì)RDBMS數(shù)據(jù)庫(kù)的移植要求,暫時(shí)不要求支持多種數(shù)據(jù)庫(kù),僅支持PostgreSQL.
二、對(duì)操作系統(tǒng)方面的移植要求,暫時(shí)要求支持windows和redhat。
4.設(shè)計(jì)思路
本數(shù)據(jù)庫(kù)的架構(gòu)大致如下
<!--[if !mso]-->
整個(gè)數(shù)據(jù)庫(kù)分為兩大部分:Model generator負(fù)責(zé)將用戶創(chuàng)建的數(shù)據(jù)類(lèi)圖生成為多個(gè)RDBMS表或視圖的創(chuàng)建或修改語(yǔ)句。而DB front-end 則負(fù)責(zé)將客戶端的請(qǐng)求轉(zhuǎn)化為一個(gè)或多個(gè)SQL語(yǔ)句?傊M量讓RDBMS來(lái)完成工作.
那么本數(shù)據(jù)庫(kù)的對(duì)象模型如何映射到RDBMS上呢?在說(shuō)明這個(gè)之前我們先來(lái)介紹一下PostgreSQL數(shù)據(jù)庫(kù)的兩個(gè)功能:
<!--[if !supportLists]--> <!--[if !supportLists]--> 一、<!--[endif]-->表的繼承二、遞歸查詢(xún),或者叫公共表表達(dá)式 <!--[endif]-->(Common Table Expression,CTE)<!--[endif]-->
現(xiàn)在聰明的你差不多應(yīng)該明白我的想法了, 我們按數(shù)據(jù)的定義中的UML類(lèi)圖中定義的那樣子在RDBMS中定義5個(gè)基本的表,其它用戶定義的派生條目(item) 、派生關(guān)系(relationship)和派生屬性組(attributeGroup)則各對(duì)應(yīng)一個(gè)表,所有的這些表的繼承均與類(lèi)的繼承關(guān)系完全一致。
出處:博客園
責(zé)任編輯:bluehearts
上一頁(yè) GraphDatabase在關(guān)系數(shù)據(jù)庫(kù)中的實(shí)現(xiàn) [6] 下一頁(yè) GraphDatabase在關(guān)系數(shù)據(jù)庫(kù)中的實(shí)現(xiàn) [8]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|