- 相關(guān)推薦
GKD-BASE PL/SQL引擎實(shí)現(xiàn)關(guān)鍵技術(shù)研究
摘要:在數(shù)據(jù)庫管理系統(tǒng)GKD-BASE上設(shè)計(jì)并實(shí)現(xiàn)了兼容Oracle PL/SQL V2.3語言規(guī)范的PL/SQL引擎,擴(kuò)展了GKD-BASE過程處理功能。關(guān)鍵詞:過程語言PL/SQL符號(hào)表 游標(biāo)
GKD-BASE數(shù)據(jù)庫是一個(gè)具有自主知識(shí)產(chǎn)權(quán)的數(shù)據(jù)庫管理系統(tǒng),具有兼容SQL89標(biāo)準(zhǔn)的SQL引擎,能夠?yàn)橛脩籼峁┮粋(gè)統(tǒng)一、有效的數(shù)據(jù)庫訪問接口,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的各種操作。但是SQL語言缺乏對(duì)算法的描述能力,難以勝任復(fù)雜的程序設(shè)計(jì)。為了融合SQL語言強(qiáng)大的集合數(shù)據(jù)處理能力和第三代語言(3GL)靈活的過程處理能力,主流數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品都已提供了對(duì)過程式SQL語言的支持,如Oracle的PL/SQL[1]。為了使GKD-BASE適應(yīng)發(fā)展現(xiàn)狀,滿足管理人員和開發(fā)人員的需求,急需開發(fā)GKD-BASE自身的PL/SQL引擎。
本文在數(shù)據(jù)庫管理系統(tǒng)GKD-BASE上設(shè)計(jì)并實(shí)現(xiàn)了兼容Oracle PL/SQL V2.3語言規(guī)范的PL/SOL引擎,擴(kuò)展了GKD-BASE過程處理功能。
1 GKD-BASE PL/SQL引擎的體系結(jié)構(gòu)
GKD-BASE PL/SQL引擎的基本功能是將用戶用PL/SQL語言編寫的程序通過詞法分析程序、語法分析程序進(jìn)行解析,生成中間代碼并解釋執(zhí)行。如果在分析階段或解釋執(zhí)行階段發(fā)現(xiàn)錯(cuò)誤,則向用戶報(bào)告錯(cuò)誤號(hào)及相應(yīng)的錯(cuò)誤信息,以便用戶排錯(cuò)[2]。根據(jù)PL/SQL語言兼有過程式語句和SQL語句的特點(diǎn),采取分治策略,把過程語句和SQL語句分開處理。PL/SQL引擎在對(duì)PL/SQL源程序編譯執(zhí)行時(shí),首先進(jìn)行預(yù)處理,把SQL語句和過程語句分開;然后對(duì)SQL語句和過程語句分別解析,生成語法樹;最后通過執(zhí)行模塊對(duì)中間代碼進(jìn)行解釋執(zhí)行。
圖1
GKD-BASE PL/SQL引擎對(duì)源程序編譯生成中間代碼,不能直接在目標(biāo)機(jī)器上執(zhí)行,需要一個(gè)解釋中間代碼的環(huán)境,以提供對(duì)PL/SQL語言中的數(shù)據(jù)類型的支持,保證PL/SQL正確執(zhí)行。因此GKD-BASE PL/SQL引擎可分為編譯器和解釋器兩部分,如圖1。編譯器接收到PL/SQL語句塊后進(jìn)行預(yù)處理,將句子分為SQL語句和過程語句。對(duì)于SQL語句,編譯器建立SQL語句節(jié)點(diǎn),進(jìn)行相應(yīng)的變量綁定和語法檢查;檢查無誤后產(chǎn)生中間代碼。對(duì)于過程語句,編譯器對(duì)語句成分進(jìn)行語法分析并建立相應(yīng)的符號(hào)表,也生成中間代碼。因此,可以把編譯器劃分為SQL語言解析、過程語言解析、符號(hào)表生成與管理、中間代碼表示與管理等模塊。解釋器的作用是對(duì)編譯器生成的中間代碼進(jìn)行解釋執(zhí)行[3],與編譯器對(duì)應(yīng),具有獨(dú)立的SQL語句解釋模塊和過程語句解釋模塊。解釋器還包括執(zhí)行狀態(tài)堆棧的管理、與GKD-BASESQL引擎的調(diào)用接口。異常處理模塊主要實(shí)現(xiàn)程序運(yùn)行時(shí)的錯(cuò)誤檢查和報(bào)告,并支持用戶自定義異常和預(yù)定義異常的檢查和處理。
2 GKD-BASE PL/SQL編譯器實(shí)現(xiàn)中的一些關(guān)鍵問題
[1] [2] [3]
【GKD-BASE PL/SQL引擎實(shí)現(xiàn)關(guān)鍵技術(shù)研究】相關(guān)文章:
GNSS軟件接收機(jī)關(guān)鍵技術(shù)研究及實(shí)現(xiàn)05-01
表橫向分區(qū)在SQL Server 2005中的實(shí)現(xiàn)04-29
軍用飛艇的發(fā)展及關(guān)鍵技術(shù)研究04-29
軍機(jī)LRM及其關(guān)鍵技術(shù)研究05-02
班組長(zhǎng)是實(shí)現(xiàn)安全生產(chǎn)的關(guān)鍵05-02
產(chǎn)品發(fā)明創(chuàng)意提出的關(guān)鍵技術(shù)研究04-26