本發(fā)明涉及一種數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)方法,屬于軟件領(lǐng)域。
背景技術(shù):
數(shù)據(jù)庫(kù)具有高效、可靠、完整、自同步等特性,是業(yè)務(wù)系統(tǒng)進(jìn)行數(shù)據(jù)控制的最佳選擇。數(shù)據(jù)庫(kù)系統(tǒng)一般提供高效的數(shù)據(jù)控制和數(shù)據(jù)檢索功能,采用SQL語(yǔ)言來(lái)進(jìn)行數(shù)據(jù)操作。如圖1所示,即為傳統(tǒng)的數(shù)據(jù)庫(kù)的數(shù)據(jù)存取系統(tǒng)。目前市面上流行的數(shù)據(jù)庫(kù)系統(tǒng)很多:較小型的數(shù)據(jù)庫(kù)系統(tǒng)有:mysql,MSSQL_SERVER等等,適用于企業(yè)級(jí)的大型數(shù)據(jù)庫(kù)有:ORACEL,DB2(IBM),INFORMIX(IBM)等等。因此系統(tǒng)架構(gòu)師、軟件開(kāi)發(fā)人員習(xí)慣于進(jìn)行基于數(shù)據(jù)庫(kù)的軟件設(shè)計(jì)和編程。但數(shù)據(jù)庫(kù)通常比較龐大,需要額外占用存儲(chǔ)和內(nèi)存,運(yùn)行數(shù)據(jù)庫(kù)需要額外的CPU開(kāi)銷,數(shù)據(jù)庫(kù)通常需要購(gòu)買,更為重要的是,有些應(yīng)用對(duì)數(shù)據(jù)庫(kù)的高效、可靠、完整、自同步等特性要求不高。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問(wèn)題,本發(fā)明提供一種遵循數(shù)據(jù)庫(kù)接口標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)模塊的實(shí)現(xiàn)方法。
一種遵循數(shù)據(jù)庫(kù)接口標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)模塊的實(shí)現(xiàn)方法,包括命令映射子模塊,包括以下步驟:
1)建立數(shù)據(jù)存儲(chǔ)模塊,帶有命令映射子模塊;
2)數(shù)據(jù)存儲(chǔ)本身,基于數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu),分配數(shù)據(jù)存儲(chǔ)單元;
3)所述命令映射子模塊,用于接受數(shù)據(jù)應(yīng)用發(fā)來(lái)的命令,再將此命令轉(zhuǎn)換成此數(shù)據(jù)存儲(chǔ)模塊能夠識(shí)別的命令。
當(dāng)系統(tǒng)采用某數(shù)據(jù)庫(kù)時(shí),把命令轉(zhuǎn)換成此數(shù)據(jù)庫(kù)對(duì)應(yīng)的命令,進(jìn)行數(shù)據(jù)存取,當(dāng)系統(tǒng)沒(méi)有采用數(shù)據(jù)庫(kù),而采用數(shù)據(jù)存儲(chǔ)模塊時(shí),系統(tǒng)用此命令進(jìn)行數(shù)據(jù)存取。
步驟3)中,把命令轉(zhuǎn)換成各種商用數(shù)據(jù)庫(kù)能夠識(shí)別的命令的具體方法為,如果數(shù)據(jù)庫(kù)存儲(chǔ)模塊對(duì)應(yīng)于某個(gè)數(shù)據(jù)庫(kù)且設(shè)該數(shù)據(jù)庫(kù)對(duì)應(yīng)的命令為命令A(yù),那么調(diào)用這個(gè)數(shù)據(jù)庫(kù)里的對(duì)應(yīng)命令A(yù)的命令;如果沒(méi)有找到對(duì)應(yīng)的數(shù)據(jù)庫(kù),那么調(diào)用命令A(yù)。
本發(fā)明所達(dá)到的有益效果:
采用這種遵循數(shù)據(jù)庫(kù)接口標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)模塊,由于模塊小巧,占用存儲(chǔ)和內(nèi)存很?。挥捎谀K簡(jiǎn)單,運(yùn)行該模塊需要額外的CPU開(kāi)銷很??;由于該模塊簡(jiǎn)單,因此可以自有開(kāi)發(fā),省去了購(gòu)買數(shù)據(jù)庫(kù)需要的花費(fèi);對(duì)那些對(duì)數(shù)據(jù)庫(kù)的高效、可靠、完整、自同步等特性要求不高的應(yīng)用,這種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)模塊完全滿足需求,即使針對(duì)那些對(duì)數(shù)據(jù)庫(kù)的高效、可靠、完整、自同步等特性要求較高的應(yīng)用,也給部署該模塊的開(kāi)發(fā)者提供了一種逐步提高這些特性的持續(xù)改進(jìn)的機(jī)會(huì)。
附圖說(shuō)明
圖1為傳統(tǒng)的數(shù)據(jù)庫(kù)的數(shù)據(jù)存取系統(tǒng)圖。
圖2為本方法的遵循數(shù)據(jù)庫(kù)接口標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)模塊的數(shù)據(jù)存取系統(tǒng)圖。
具體實(shí)施方式
請(qǐng)結(jié)合圖2所示,為本方法中采用的遵循數(shù)據(jù)庫(kù)接口標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)模塊的數(shù)據(jù)存取系統(tǒng)圖。其中,建立數(shù)據(jù)存儲(chǔ)模塊,帶有命令映射子模塊;數(shù)據(jù)存儲(chǔ)本身,基于數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu),分配數(shù)據(jù)存儲(chǔ)單元;所述命令映射子模塊,用于接受數(shù)據(jù)應(yīng)用發(fā)來(lái)的命令,再將此命令轉(zhuǎn)換成此數(shù)據(jù)存儲(chǔ)模塊能夠識(shí)別的命令。
以下為按照遵循數(shù)據(jù)庫(kù)接口標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)模塊下發(fā)的存取命令與傳統(tǒng)數(shù)據(jù)庫(kù)的命令轉(zhuǎn)換示例。
命令A(yù)
如果數(shù)據(jù)庫(kù)存儲(chǔ)模塊對(duì)應(yīng)于某個(gè)數(shù)據(jù)庫(kù),那么調(diào)用這個(gè)數(shù)據(jù)庫(kù)里的對(duì)應(yīng)命令A(yù)的命令。如果沒(méi)有找到對(duì)應(yīng)的數(shù)據(jù)庫(kù),那么調(diào)用命令A(yù)。
即:
IF(數(shù)據(jù)存儲(chǔ)模塊=數(shù)據(jù)庫(kù)1),命令A(yù)=數(shù)據(jù)庫(kù)1的對(duì)應(yīng)于命令A(yù)的命令;
IF(數(shù)據(jù)存儲(chǔ)模塊=數(shù)據(jù)庫(kù)2),命令A(yù)=數(shù)據(jù)庫(kù)2的對(duì)應(yīng)于命令A(yù)的命令;
…
IF(數(shù)據(jù)存儲(chǔ)模塊=數(shù)據(jù)庫(kù)N),命令A(yù)=數(shù)據(jù)庫(kù)N的對(duì)應(yīng)于命令A(yù)的命令;
ELSEIF命令A(yù);
命令B
如果數(shù)據(jù)庫(kù)存儲(chǔ)模塊對(duì)應(yīng)于某個(gè)數(shù)據(jù)庫(kù),那么調(diào)用這個(gè)數(shù)據(jù)庫(kù)里的對(duì)應(yīng)命令B的命令。如果沒(méi)有找到對(duì)應(yīng)的數(shù)據(jù)庫(kù),那么調(diào)用命令B。
即:
IF(數(shù)據(jù)存儲(chǔ)模塊=數(shù)據(jù)庫(kù)1),命令B=數(shù)據(jù)庫(kù)1的對(duì)應(yīng)于命令B的命令;
IF(數(shù)據(jù)存儲(chǔ)模塊=數(shù)據(jù)庫(kù)2),命令B=數(shù)據(jù)庫(kù)2的對(duì)應(yīng)于命令B的命令;
…
IF(數(shù)據(jù)存儲(chǔ)模塊=數(shù)據(jù)庫(kù)N),命令B=數(shù)據(jù)庫(kù)N的對(duì)應(yīng)于命令B的命令;
ELSEIF命令B;
…。