版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE1數(shù)據(jù)庫可視化管理系統(tǒng)第一章緒論1.1研究背景與意義1.1.1研究背景零八年北京奧林匹克運動會開幕式上,有一幅巨大的LED畫軸吸引了全世界觀眾的目光,畫軸緩緩展開,將中華民族上下五千年的璀璨歷史以動畫的形式表現(xiàn)出了。全世界人民通過這種可視的形式,消除了全球各個國家因為語言文字而產(chǎn)生的隔閡和文化的差異,使得全世界人民都可以欣賞到我國悠久輝煌的文明,把中國展現(xiàn)在世界舞臺。當今社會,伴隨著計算機信息技術(shù)的快速發(fā)展,越來越多的信息可以被直觀的獲取,可視化的重要性在日常生活中體現(xiàn)的越來越明顯。視覺,是人類獲取外界信息最直接而且最重要的方式之一,可視化技術(shù)就是讓人們更直觀的看到信息,從而提升用戶的空間想象關(guān)系。而數(shù)據(jù)作為一類抽象的信息,數(shù)據(jù)可視化技術(shù)應(yīng)運而生,數(shù)據(jù)可視化技術(shù)是是一種數(shù)據(jù)處理方式,可以提高人們處理數(shù)據(jù)的效率和準確性的有效工具。說到數(shù)據(jù)可視化領(lǐng)域的起源,要追溯到二十世紀五十年代計算機圖形學(xué)的早期。數(shù)據(jù)可視化技術(shù)的基本思想,就是將數(shù)據(jù)庫中的每一個數(shù)據(jù)項作為單個元素表示,使大量的數(shù)據(jù)集構(gòu)成數(shù)據(jù)圖像,同時將數(shù)據(jù)的各個屬性值以多維數(shù)據(jù)的形式表示出來,就可以從不同的維度觀察數(shù)據(jù),從而對數(shù)據(jù)進行更深入的觀察和分析。通俗的理解就是數(shù)據(jù)可視化是用視覺形式向人們展示數(shù)據(jù)重要性的一種方法。所謂數(shù)據(jù)可視化是利用圖像處理技術(shù)和計算機圖形學(xué)理論,將數(shù)據(jù)轉(zhuǎn)換成圖形然后在屏幕上顯示出來,并進行交互處理的方法、理論和技術(shù)。它涉及到多個領(lǐng)域,比如計算機圖形學(xué)、圖像處理、計算機視覺、計算機輔助設(shè)計等,現(xiàn)今,已經(jīng)成為用于研究數(shù)據(jù)表示、數(shù)據(jù)處理、決策分析等解決一系列問題的綜合技術(shù)。1.1.2
研究意義2016年當今世界,我們正處于大數(shù)據(jù)時代,每個人每天都在產(chǎn)生數(shù)據(jù)和分享數(shù)據(jù),產(chǎn)生了龐大的數(shù)據(jù)庫。而數(shù)據(jù)可視化技術(shù)更是讓數(shù)據(jù)如虎添翼。這對于企業(yè)來說,做好數(shù)據(jù)庫可視化管理,對于業(yè)務(wù)增長有著巨大意義。面對互聯(lián)網(wǎng)中每天產(chǎn)生海量數(shù)據(jù),想要迅速的對其進行細化分析,從而更好了解網(wǎng)民的興趣,并不是一件簡單的事情,在碎片化時代,用戶的興趣也在隨著時間變化而遞減,所以分析掌握數(shù)據(jù)一定要及時有效。面對大數(shù)據(jù)的磅礴之勢,網(wǎng)絡(luò)數(shù)據(jù)定向,該如何可以實現(xiàn)?而數(shù)據(jù)的可視化,允許你與數(shù)據(jù)實現(xiàn)互動,讓你洞悉搜集數(shù)據(jù)背后的趨勢,深入研究客戶體驗和其他數(shù)據(jù)結(jié)果,從而可以讓公司發(fā)現(xiàn)一個又一個可能的潛在新機會。數(shù)據(jù)可視化讓得企業(yè)從海量的看似無關(guān)的繁雜的數(shù)據(jù)之中預(yù)見公司接下來的商業(yè)機會,并有理有據(jù)的指導(dǎo)企業(yè)決策者行動,降低主觀決策風(fēng)險。第二章相關(guān)技術(shù)介紹數(shù)據(jù)庫可視化分析系統(tǒng)選定使用交互數(shù)據(jù)可視化分析語言IDL研發(fā)。原因是IDL內(nèi)部已經(jīng)嵌入了數(shù)據(jù)可視化引擎和數(shù)據(jù)分析引擎,同時還嵌入了針對大數(shù)據(jù)的面向數(shù)組運算的快速數(shù)據(jù)運算引擎以及眾多的數(shù)據(jù)分析模塊(IDL提供的InternationalMathematical&StatisticalLibrary,IMSL),使得大數(shù)據(jù)量的可視化分析更加簡單、靈活、方便、快捷、高效。2.1
數(shù)據(jù)庫管理系統(tǒng)DBMS介紹數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是在操作系統(tǒng)的基礎(chǔ)上,位于操作系統(tǒng)與用戶之間的數(shù)據(jù)管理軟件,負責(zé)對數(shù)據(jù)庫進行統(tǒng)一的管理和控制。數(shù)據(jù)庫管理系統(tǒng)保證了數(shù)據(jù)的安全性和完整性,同時提供了數(shù)據(jù)的并發(fā)控制和數(shù)據(jù)恢復(fù)機制。2.2.1DBMS的功能(1)數(shù)據(jù)定義數(shù)據(jù)定義功能是指用戶利用DBMS提供的DDL可以方便的定義數(shù)據(jù)庫系統(tǒng)的對象以及對象之間的關(guān)系。具體內(nèi)容主要包括:數(shù)據(jù)庫、數(shù)據(jù)表、視圖、索引、觸發(fā)器等。DDL隸屬于DBMS系統(tǒng)結(jié)構(gòu)的語言處理層。1)能夠建立、修改、刪除數(shù)據(jù)庫。例如:SQLServer的CREATEDATABASE、ALTERDATABASE和DROPDATABASE。2)能夠建立、修改、刪除數(shù)據(jù)表。例如:SQLServer的CREATETABLE、ALTERTABLE和DROPTABLE。3)能夠建立、修改、刪除視圖。例如:SQLServer的CREATEVIEW、ALTERVIEW和DROPVIEW。4)能夠建立修改、、刪除索引。例如:SQLServer的CREATEINDEX、ALTERINDEX和DROPINDEX。5)能夠建立、修改、刪除觸發(fā)器。例如:SQLServer的CREATETRIGGER、ALTERTRIGGER和DROPTRIGGER。其中2)還提供了實體完整性、參照完整性和用戶定義完整性約束機制,如果再配合5)則可以定義任意更復(fù)雜的完整性約束。(2)數(shù)據(jù)操縱數(shù)據(jù)操縱功能是指用戶利用DBMS提供的DML可以靈活方便的對數(shù)據(jù)庫中數(shù)據(jù)表的元組數(shù)據(jù)進行插入、修改、刪除、查詢、表報和打印等基本操作。具體內(nèi)容主要包括:數(shù)據(jù)表元組數(shù)據(jù)的插入、修改、刪除和查詢等。DML隸屬于DBMS系統(tǒng)結(jié)構(gòu)的語言處理層。例如:SQLServer的SELECT、INSERT、DELETE和UPDATE。(3)數(shù)據(jù)控制數(shù)據(jù)操縱功能是指用戶利用DBMS提供的DCL可以方便的實現(xiàn)對數(shù)據(jù)庫的安全性、完整性、數(shù)據(jù)并發(fā)和數(shù)據(jù)恢復(fù)等進行保護控制,以保證數(shù)據(jù)的安全、正確、完整、一致和有效。具體內(nèi)容主要包括:授權(quán)訪問權(quán)限、MAC控制、DAC控制、規(guī)則管理和角色管理等。DCL屬于DBMS系統(tǒng)結(jié)構(gòu)的數(shù)據(jù)存取層,而提供給用戶的最終管理命令則隸屬于語言處理層。例如:SQLServer的GRANT、REVOKE、CREATERULE和CREATEROLE。DDL、DML和DCL構(gòu)成了DBMS的核心引擎。(4)數(shù)據(jù)存儲數(shù)據(jù)存儲功能是指用戶利用DBMS提供的存儲結(jié)構(gòu)和訪問方式,實現(xiàn)對數(shù)據(jù)庫的統(tǒng)一組織、存儲和管理,減少數(shù)據(jù)冗余,并最終實現(xiàn)用戶對數(shù)據(jù)庫文件的存儲和訪問,提高數(shù)據(jù)庫的利用率。數(shù)據(jù)存儲功能對應(yīng)于DBMS的數(shù)據(jù)存儲層。例如:SQLServer的數(shù)據(jù)庫存儲為:*.MDF、日志文件存儲為:*.LDF。(5)數(shù)據(jù)接口數(shù)據(jù)接口功能是指用戶利用DBMS提供的系統(tǒng)內(nèi)部接口和外部應(yīng)用程序接口API,實現(xiàn)DBMS內(nèi)部DDL、DML、DCL功能之間的相互配合與調(diào)用,同時實現(xiàn)DBMS與外部軟件系統(tǒng)的之間功能調(diào)用和數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)?。?shù)據(jù)接口對應(yīng)于DBMS的應(yīng)用層。(6)運行管理運行管理功能是DBMS的控制中心。包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制和數(shù)據(jù)存貯的具體實現(xiàn);對數(shù)據(jù)庫的安全性、完整性、并發(fā)控制和數(shù)據(jù)恢復(fù)的控制管理;數(shù)據(jù)庫的備份、重組織、性能的監(jiān)視與分析等內(nèi)部維護等。對數(shù)據(jù)庫的所有訪問操作都要在DBMS的相應(yīng)控制程序的統(tǒng)一管理之下進行,以保護和保證數(shù)據(jù)的安全性、完整性、一致性、有效性和共享性。運行管理是對DBMS的應(yīng)用層、語言處理層、數(shù)據(jù)存取層和數(shù)據(jù)存儲層的整體協(xié)調(diào)管理,實現(xiàn)四層之間的功能轉(zhuǎn)換,確保系統(tǒng)安全穩(wěn)定的運行。2.1.2
DBMS的結(jié)構(gòu)對于整個數(shù)據(jù)庫系統(tǒng),面向用戶的應(yīng)用程序需要對基于操作系統(tǒng)的數(shù)據(jù)庫進行建立、添加、查詢、修改、刪除、計算、統(tǒng)計、報表、存儲、傳送等復(fù)雜的數(shù)據(jù)管理。所有這些管理操作,都需要經(jīng)過介于應(yīng)用程序和操作系統(tǒng)之間的DBMS對用戶的應(yīng)用請求進行語法檢查、語法分析、代碼優(yōu)化、代碼生成、完整性檢查、視圖管理、空間管理、設(shè)備管理、訪問控制、并發(fā)控制、日志管理、恢復(fù)控制和安全性檢查等。為了能夠使面向用戶的應(yīng)用程序更高效的實施對數(shù)據(jù)庫的眾多復(fù)雜管理,DBMS的系統(tǒng)結(jié)構(gòu)采用了目前通用的分層結(jié)構(gòu)的管理模式。即把DBMS分成應(yīng)用層、語言層、訪問層和存儲層四個層次,并通過結(jié)構(gòu)上下層之間提供的接口及其服務(wù)實現(xiàn)數(shù)據(jù)管理。DBMS的四層系統(tǒng)結(jié)構(gòu)對復(fù)雜的數(shù)據(jù)管理進行了合理有效的分類,使得DBMS的系統(tǒng)結(jié)構(gòu)層次更加清晰、從而使得數(shù)據(jù)管理更加靈活方便,同時也更加方便了DBMS的設(shè)計、實施和維護。2.1.3DBMS的工作過程對于數(shù)據(jù)庫系統(tǒng),用戶在利用應(yīng)用程序訪問數(shù)據(jù)庫的數(shù)據(jù)時,應(yīng)用程序、DBMS、操作系統(tǒng)、硬件等必須協(xié)調(diào)工作,共同完成用戶的訪問請求。在這個復(fù)雜的數(shù)據(jù)訪問過程中,DBMS起著關(guān)鍵的橋梁作用。DBMS的具體工作過程如下:(1)應(yīng)用程序向DBMS發(fā)出訪問數(shù)據(jù)庫數(shù)據(jù)的請求命令。(2)DBMS對該命令進行語法檢查、優(yōu)化、生成可執(zhí)行代碼序列,并調(diào)用應(yīng)用程序?qū)?yīng)的外模式,檢查應(yīng)用程序的存取權(quán)限,決定是否執(zhí)行該命令。(3)如果拒絕執(zhí)行,則向用戶返回拒絕的相關(guān)信息,返回應(yīng)用程序。(4)如果接受執(zhí)行,則DBMS調(diào)用模式,根據(jù)外模式/模式映像,確定應(yīng)訪問數(shù)據(jù)庫模式中的哪些數(shù)據(jù)。(5)DBMS調(diào)用內(nèi)模式,依據(jù)模式/內(nèi)模式映像,確定其訪問的數(shù)據(jù)文件,選擇合理優(yōu)化訪問方式,訪問選定數(shù)據(jù)庫文件中的元組數(shù)據(jù)。(6)DBMS向操作系統(tǒng)發(fā)出執(zhí)行訪問所需物理元組的命令。(7)操作系統(tǒng)執(zhí)行訪問數(shù)據(jù)的相關(guān)操作,并從外存把數(shù)據(jù)庫送至內(nèi)存的緩沖區(qū)。(8)DBMS根據(jù)外模式/模式映像,導(dǎo)出應(yīng)用程序所要訪問的元組數(shù)據(jù)。(9)DBMS把元組數(shù)據(jù)從內(nèi)存緩沖區(qū)傳送到應(yīng)用程序的用戶工作區(qū)(UserWorkArea,UWA)。(10)DBMS向應(yīng)用程序返回訪問命令執(zhí)行情況的狀態(tài)信息。2.1.4DBMS的設(shè)計在理解了DBMS的基本功能、系統(tǒng)結(jié)構(gòu)和工作原理之后,DBMS本身就相當于一個功能更加豐富、管理機制更加完善、系統(tǒng)結(jié)構(gòu)更加復(fù)雜的應(yīng)用軟件系統(tǒng)。盡管DBMS也是一個軟件系統(tǒng),但是DBMS作為用于開發(fā)一般通用應(yīng)用軟件系統(tǒng)的開發(fā)工具,DBMS的設(shè)計與實現(xiàn)與一般應(yīng)用系統(tǒng)的設(shè)計與實現(xiàn)有著本質(zhì)的區(qū)別。一般的應(yīng)用系統(tǒng)是面向于無程序設(shè)計能力的最終應(yīng)用用戶,而DBMS是面向于開發(fā)應(yīng)用系統(tǒng)的各類設(shè)計和管理人員,所以DBMS需要提供能夠勝任和完成開發(fā)應(yīng)用系統(tǒng)的各種功能。因此DBMS在語言處理能力(自含一個語言系統(tǒng))、數(shù)據(jù)表達能力(數(shù)據(jù)類型、常量、變量、數(shù)組、結(jié)構(gòu)、函數(shù)、表達式等表達能力)、應(yīng)用和管理接口、系統(tǒng)結(jié)構(gòu)、系統(tǒng)功能、系統(tǒng)性能、系統(tǒng)穩(wěn)定性、系統(tǒng)完整性、系統(tǒng)可用性、系統(tǒng)實用性、系統(tǒng)可操作性以及系統(tǒng)的方便靈活性等諸多方面都有更高更嚴格的要求。DBMS設(shè)計的內(nèi)容主要包括:系統(tǒng)結(jié)構(gòu)設(shè)計、文件系統(tǒng)設(shè)計、DDL設(shè)計、DML設(shè)計、DCL設(shè)計、GUI和接口設(shè)計、系統(tǒng)實施、系統(tǒng)測試、幫助系統(tǒng)設(shè)計、打包與銷售等。(1)系統(tǒng)結(jié)構(gòu)設(shè)計隨著DBMS的規(guī)模越來越大、系統(tǒng)越來越復(fù)雜,DBMS的系統(tǒng)結(jié)構(gòu)顯得越來越重要。DBMS系統(tǒng)結(jié)構(gòu)的設(shè)計是整個系統(tǒng)開發(fā)過程的關(guān)鍵步驟。對于龐大而復(fù)雜的DBMS,如果沒有為DBMS設(shè)計合理的系統(tǒng)結(jié)構(gòu),則要想成功設(shè)計DBMS幾乎是不可能的。系統(tǒng)結(jié)構(gòu)設(shè)計通常是一個DBMS設(shè)計成敗的關(guān)鍵。因此系統(tǒng)結(jié)構(gòu)設(shè)計,應(yīng)該按照層次系統(tǒng)結(jié)構(gòu)模型,首先設(shè)計系統(tǒng)結(jié)構(gòu)的核心語言層,然后再根據(jù)應(yīng)用層的需求,逐層設(shè)計訪問層和存儲層,最后完成應(yīng)用層的查詢分析和存儲管理應(yīng)用接口。因為DBMS需要滿足各種不同應(yīng)用系統(tǒng)的設(shè)計需求,所以必須首先抽象應(yīng)用系統(tǒng)設(shè)計的本質(zhì)的公共需求,設(shè)計出完成基本功能需求的基本語言系統(tǒng),然后再根據(jù)不同應(yīng)用系統(tǒng)的設(shè)計需要,通過依次擴展功能的方法逐步擴充和完善語言層的設(shè)計,進而逐層完成系統(tǒng)結(jié)構(gòu)設(shè)計。例如:在抽象應(yīng)用系統(tǒng)設(shè)計的公共需求時,對于用于數(shù)據(jù)處理的數(shù)據(jù)類型體系的設(shè)計,需要抽象出具體需要多少種數(shù)據(jù)類型,每一種數(shù)據(jù)類型的取值范圍、存儲方式和存儲空間。即:DBVAS的數(shù)據(jù)類型、取值范圍、存儲方式和存儲空間設(shè)計如下:字符型:'';邏輯型:0/1B;日期型:'2008-06-06';時間型:'22:22:22';單字節(jié)整型:0B;雙字節(jié)整型:0;四字節(jié)整型:0L;八字節(jié)整型:0LL;四字節(jié)實型:0.0;八字節(jié)實型:0.0D;媒體型:*.mid,*.JPG,*.MP3,*.MPG等。(2)文件系統(tǒng)設(shè)計文件系統(tǒng)是用于組織和存儲文件的目錄結(jié)構(gòu)。對于一個DBMS應(yīng)該有自己的文件系統(tǒng),用于管理DBMS支持的諸多文件。因此合理設(shè)計適合于DBMS的文件系統(tǒng),可以提高系統(tǒng)的運行速度。由于操作系統(tǒng)已經(jīng)提供了功能豐富完善的文件管理系統(tǒng)。所以DBMS的文件系統(tǒng)設(shè)計應(yīng)該通過操作系統(tǒng)提供的應(yīng)用程序接口API,充分利用操作系統(tǒng)的文件管理功能。文件系統(tǒng)設(shè)計主要包括DBMS提供和支持的文件類型、存儲路徑、存儲結(jié)構(gòu)、存取方式等。文件類型不宜太多,文件的存儲路徑不宜太復(fù)雜,均應(yīng)該按照能夠滿足實際需要為標準,同時提供適當?shù)臄U展。文件的存儲結(jié)構(gòu)包括DBMS本身的文件存儲結(jié)構(gòu)和使用DBMS的DDL創(chuàng)建的數(shù)據(jù)庫和數(shù)據(jù)表的存儲結(jié)構(gòu)。文件的存儲結(jié)構(gòu)和存取方式原則上在操作系統(tǒng)的基礎(chǔ)上,充分利用操作系統(tǒng)的API資源,同時做適當?shù)恼{(diào)整。文件的存儲路徑、存儲結(jié)構(gòu)和存取方式將直接影響文件訪問的效率。例如:DBVAS的數(shù)據(jù)庫系列文件類型設(shè)計為:*.DBF(數(shù)據(jù)庫文件),*.DTF(數(shù)據(jù)表文件),*.IDX(索引文件),*.STS(數(shù)據(jù)庫狀態(tài)文件),*.DVF(視圖文件)等。(3)DDL設(shè)計DDL設(shè)計是指數(shù)據(jù)庫定義功能的設(shè)計。DDL應(yīng)該提供功能完善豐富的數(shù)據(jù)定義功能(外模式、模式、內(nèi)模式)以及模式之間的映像。具體主要包括:數(shù)據(jù)庫和數(shù)據(jù)表定義、索引的定義、視圖定義、數(shù)據(jù)完整性定義、數(shù)據(jù)安全性定義等,并且需要把這些定義保存到DBMS的數(shù)據(jù)字典中,以備DML和DCL使用。(4)DML設(shè)計DML設(shè)計是指數(shù)據(jù)庫操縱功能的設(shè)計。DML應(yīng)該提供功能完善豐富的數(shù)據(jù)操縱功能。具體主要包括:數(shù)據(jù)添加、修改、查詢、刪除、統(tǒng)計、報表等,設(shè)計人員利用DML能夠方便、快捷的實現(xiàn)對數(shù)據(jù)庫的操作。(5)DCL設(shè)計DCL設(shè)計是指數(shù)據(jù)庫保護控制功能的設(shè)計。在進行DCL設(shè)計時,應(yīng)該充分考慮和提供數(shù)據(jù)安全性控制、數(shù)據(jù)完整性控制、多用戶環(huán)境并發(fā)控制和數(shù)據(jù)庫的恢復(fù)機制等四項基本數(shù)據(jù)保護控制能力。目前數(shù)據(jù)的安全性、完整性、并發(fā)性和恢復(fù)性控制能力已經(jīng)成為DBMS的基本性能指標。2.2數(shù)據(jù)庫可視化分析系統(tǒng)(DBVAS)介紹DBVAS是指利用現(xiàn)有的數(shù)據(jù)可視化分析技術(shù),在DBMS系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,添加數(shù)據(jù)可視化分析引擎后,使得DBMS在提供數(shù)據(jù)對象的可視化功能的同時,提供對數(shù)據(jù)對象的可視化分析能力的數(shù)據(jù)可視化分析系統(tǒng)。即:DBVAS是能夠進行數(shù)據(jù)可視化分析的DBMS。因此,把DBVAS的系統(tǒng)結(jié)構(gòu)分為應(yīng)用層、語言層、可視層、訪問層和存儲層等五個層次。其中可視層主要包括數(shù)據(jù)可視化引擎和數(shù)據(jù)分析引擎。9582151295400DBOS應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲層可視層應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲層可視層DBOS應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲層可視層應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲層可視層圖1DBVAS系統(tǒng)結(jié)構(gòu)2.2.1
數(shù)據(jù)可視技術(shù)數(shù)據(jù)可視技術(shù)(DataVisualizationTechnology,DVT)是指運用計算機圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換為圖形或圖像在屏幕上顯示出來,并進行交互處理的理論、方法和技術(shù)。數(shù)據(jù)可視化涉及計算機圖形學(xué)、圖像處理、計算機輔助設(shè)計、計算機視覺及人機交互技術(shù)等多個領(lǐng)域。數(shù)據(jù)可視化引擎是指包含先進可視化技術(shù)的數(shù)據(jù)可視化功能模塊。2.2.2數(shù)據(jù)可視分析技術(shù)數(shù)據(jù)可視分析技術(shù)(DataVisualAnalysisTechnology,DVAT)是指運用數(shù)據(jù)分析技術(shù),對可視的數(shù)據(jù)對象進行復(fù)雜數(shù)據(jù)分析的理論、方法和技術(shù)。數(shù)據(jù)分析涉及基礎(chǔ)數(shù)學(xué)、應(yīng)用數(shù)學(xué)、統(tǒng)計、模糊集理論、粗糙集理論、遺傳算法、信息論等多個領(lǐng)域。數(shù)據(jù)分析引擎是指包含先進數(shù)據(jù)分析技術(shù)的數(shù)據(jù)可視化分析功能模塊。利用可視層提供的數(shù)據(jù)可視化分析引擎,可以方便靈活的進行數(shù)據(jù)可視化分析。第三章DBVAS的DDL設(shè)計按照DBVAS的文件系統(tǒng)的設(shè)計要求,DDL設(shè)計的主要內(nèi)容包括:建立數(shù)據(jù)庫、數(shù)據(jù)表、索引文件和視圖。具體格式要求與實現(xiàn)方法如下:3.1建立數(shù)據(jù)庫(1)建立數(shù)據(jù)庫語句格式(程序名:Create_D):Create_Database,'DBFName.DBF'語句功能:建立名稱為DBFName.DBF的數(shù)據(jù)庫。擴展名可以省略。如省略數(shù)據(jù)庫的名稱,則建立默認數(shù)據(jù)庫:NoName.DBF。如果建立的數(shù)據(jù)庫已經(jīng)存在,則提示是否覆蓋。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)庫是否存在(使用下述WHERE方法)。如果存在,則提示是否覆蓋。3)把數(shù)據(jù)庫名稱添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中,實現(xiàn)方法如下:DBVAS_DBF=[DBVAS_DBF,'DBFName']4)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(2)瀏覽數(shù)據(jù)庫語句格式(程序名:Browse_D):Browse_Database語句功能:瀏覽DBVAS的所有數(shù)據(jù)庫。擴展名可以省略。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)使用WHERE方法顯示結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF的值。(3)刪除數(shù)據(jù)庫語句格式(程序名:Delete_D):Delete_Database,'DBFName.DBF'語句功能:刪除名稱為DBFName.DBF的數(shù)據(jù)庫。擴展名可以省略。如果刪除的數(shù)據(jù)庫不存在,則提示。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)使用WHERE方法檢測數(shù)據(jù)庫是否存在。如果不存在,則提示。3)在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中找到刪除的數(shù)據(jù)庫,并刪除。實現(xiàn)方法是使用WHERE函數(shù)找到不被刪除的數(shù)據(jù)下標,然后采用下標賦值即可。即:DeleteSuffix=WHERE(DBVAS_DBFEQ'DBFName',DeleteNo,$COMPLEMENT=UnDeleteSuffix,NCOMPLEMENT=UnDeleteNo)DBVAS_DBF=DBVAS_DBF[UnDeleteSuffix]4)在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中找到與刪除數(shù)據(jù)庫匹配的數(shù)據(jù)表,并刪除。實現(xiàn)方法同上。5)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。3.2建立數(shù)據(jù)表(1)建立數(shù)據(jù)表語句格式(程序名:Create_T):Create_Table,'DBFName$DTFName($Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK;$……Fieldn,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK)'其中:Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK的含義如下:字段,類型,寬度,是否主鍵,是否索引,是否外鍵>主鍵表>主鍵例如:建立數(shù)據(jù)庫Student.DBF的數(shù)據(jù)表:Stdent$Student.DTF、Stdent$Course.DTF和Stdent$StdentCourse.DTF如下:Create_Table,'Student$Student($SNo,C,10,1,1,0;SName,C,10,0,0,0;$SSex,L,1,0,0,0;SAge,2I,2,0,0,0)'Create_Table,'Student$Course($CNo,C,10,1,1,0;CName,C,20,0,0,0;$CCredit,1I,1,0,0,0)'Create_Table,'Student$StudentCourse($SNo,C,10,1,1,1>Student$Student>SNo;$CNo,C,10,1,1,1>Student$Course>CNo;$Grade,4E,4,0,0,0)'語句功能:建立名稱為DBFName$DTFName.DTF的數(shù)據(jù)表。擴展名可以省略。如省略數(shù)據(jù)表的名稱,則建立默認數(shù)據(jù)表:IDLDBF$NoName.DTF。如果建立的數(shù)據(jù)表已經(jīng)存在,則提示是否覆蓋。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)使用WHERE方法檢測數(shù)據(jù)庫是否存在。如果存在,則直接使用;否則,則建立DBFName.DBF。3)使用WHERE方法檢測數(shù)據(jù)表是否存在。如果存在,則提示是否覆蓋。4)把數(shù)據(jù)庫名稱添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中(如果已經(jīng)存在,則不再添加),數(shù)據(jù)表名稱添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中,實現(xiàn)方法如下:DBVAS_DBF=[DBVAS_DBF,'DBFName']DBVAS_DTF=[DBVAS_DTF,'DBFName$DTFName']5)對索引屬性,需要建立相應(yīng)的索引文件。6)對外鍵,需要使用FILE_TEST判斷主鍵表是否存在,主鍵是否匹配。7)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。8)使用SAVE保存數(shù)據(jù)表結(jié)構(gòu)DBVAS_TableStructure到DBFName$DTFName.DTF。(2)瀏覽數(shù)據(jù)表語句格式(程序名:Browse_T):Browse_Table'DBFName.DBF'語句功能:瀏覽指定數(shù)據(jù)庫的所有數(shù)據(jù)表。擴展名可以省略。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)使用WHERE方法,檢索匹配的數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則提示。3)檢索并顯示結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中匹配的數(shù)據(jù)表。(3)刪除數(shù)據(jù)表語句格式(程序名:Delete_T):Delete_Table,'DBFName$DTFName.DTF'語句功能:刪除名稱為DBFName$DTFName.DBF的數(shù)據(jù)表。擴展名可以省略。如果刪除的數(shù)據(jù)表不存在,則提示。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)表是否存在。如果不存在,則提示。3)使用WHERE方法檢索數(shù)據(jù)庫(數(shù)據(jù)表中$之前的字符串為數(shù)據(jù)庫名)。4)使用WHERE方法檢索與數(shù)據(jù)庫匹配的數(shù)據(jù)表,并刪除。5)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(4)瀏覽字段語句格式(程序名:Browse_F):Browse_Field'DBFName$DTFName.DTF'語句功能:瀏覽指定數(shù)據(jù)表的字段信息。擴展名可以省略。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)顯示結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure的值。(5)添加字段語句格式(程序名:Add_F):Add_Field,'DBFName$DTFName($Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK;$……Fieldn,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK)'語句功能:在DBFName$DTFName.DTF中添加字段。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測字段Fieldi是否存在,如果存在,則不添加;否則添加。其它處理同Create_table。4)使用SAVE保存新結(jié)構(gòu)DBVAS_TableStructure到DBFName$DTFName.DTF。(6)刪除字段語句格式(程序名:Delete_F):Delete_Field,'DBFName$DTFName(Field1;Field2;…;Fieldn)'語句功能:在DBFName$DTFName.DTF中刪除指定字段。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測字段Fieldi是否存在,如果存在,則刪除;否則提示。4)使用SAVE保存新結(jié)構(gòu)DBVAS_TableStructure到DBFName$DTFName.DTF。(7)修改字段語句格式(程序名:Alter_F):Add_Field,'DBFName$DTFName($Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK;$……Fieldn,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK)'語句功能:在DBFName$DTFName.DTF中修改字段。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測Fieldi是否存在,如果不存在,則不修改;否則先調(diào)用Delete_Field刪除原同字段的字段,然后調(diào)用Add_Field添加該字段。其它處理同Create_table、Add_Field、Delete_Field。4)使用SAVE保存新結(jié)構(gòu)DBVAS_TableStructure到DBFName$DTFName.DTF。3.3建立索引文件(1)建立索引文件語句格式(程序名:Create_I):Create_Index,'Field1,Field2,…,FieldnFORDBFName$DTFName.DTF'語句功能:建立名稱為DBFName$DTFName__Field1__...__Fieldn.IDX的索引文件。擴展名可以省略。如果建立的索引文件已經(jīng)存在,則提示是否覆蓋。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測Field1、…、Fieldn是否均存在,如果有一個不存在,則不建立索引;否則按照Field1、…、Fieldn重組DBFName$DTFName_Structure。4)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_RecordData中把Field1、…、Fieldn對應(yīng)的字段列取出,并重組DBFName$DTFName_RecordData。5)使用SAVE保存DBFName$DTFName_Structure和DBFName$DTFName_RecordData到索引文件DBFName$DTFName__Field1__...__Fieldn.IDX。(2)瀏覽索引文件語句格式(程序名:Browse_I):Browse_Index,'DBFName$DTFName.DTF'語句功能:瀏覽指定數(shù)據(jù)表的所有索引文件。實現(xiàn)方法:1)使用FILE_SEARCH檢索并獲取索引文件目錄中,以DBFName$DTFName開頭的索引文件。2)輸出檢索結(jié)果。3)刪除索引文件語句格式(程序名:Delete_I):Delete_Index,'Field1,Field2,…,FieldnFORDBFName$DTFName.DTF'語句功能:刪除指定的索引文件。如果刪除的索引文件不存在,則提示。實現(xiàn)方法:使用FILE_SEARCH檢測索引文件DBFName$DTFName__Field1__...__Fieldn.IDX,在索引文件目錄中是否存在,如果存在,則刪除;否則提示。3.4建立視圖(1)建立視圖語句格式(程序名:Create_V):Create_View,'DBFName$ViewName(TField1,TField2,…,TFieldn)',$'Browse_Record[SField1,SField2,…,SFieldn$FROMDBFName$DTFName1,…,DBFName$DTFNamen$CONDITIONConditionExpressionVAnalysisn]'語句功能:建立名稱為DBFName$ViewName.DVF的視圖文件。擴展名可以省略。如果建立的視圖文件已經(jīng)存在,則提示是否覆蓋。說明:執(zhí)行視圖時,把第二個參數(shù)轉(zhuǎn)化為Browse_Record的語句格式,然后調(diào)用Browse_Record語句。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFNamei.DTF是否存在。如果有一個數(shù)據(jù)表不存在,則提示并退出。2)使用RESTORE恢復(fù)DBFName$DTFNamei.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測SField1、…、SFieldn是否均存在,如果有一個不存在,則提示并退出;否則把SField1、…、SFieldn存入ViewTableField。4)把TField1、…、TFieldn存入ViewTableField。5)把n存入ViewVAnalysis。6)使用SAVE保存DBVAS_ViewInfo到視圖文件DBFName$ViewName.DVF。(2)瀏覽視圖語句格式(程序名:Browse_V):Browse_View,'DBFName.DBF'語句功能:瀏覽指定數(shù)據(jù)庫的所有視圖文件。實現(xiàn)方法:1)使用FILE_SEARCH檢索并獲取視圖文件目錄中,以DBFName開頭的視圖文件。2)輸出檢索結(jié)果。3)刪除視圖語句格式(程序名:Delete_V):Delete_View,'DBFName$DTFName.DVF'語句功能:刪除指定的視圖文件。如果刪除的視圖文件不存在,則提示。實現(xiàn)方法:使用FILE_SEARCH檢測索引文件DBFName$DTFName.DVF,在索引文件目錄中是否存在,如果存在,則刪除;否則提示。第四章DBVAS的DML設(shè)計按照DBVAS的文件系統(tǒng)和DDL的設(shè)計要求,DML設(shè)計的主要內(nèi)容包括:操縱數(shù)據(jù)庫和操縱數(shù)據(jù)表。具體格式要求與實現(xiàn)方法如下:4.1操縱數(shù)據(jù)庫(1)添加數(shù)據(jù)庫語句格式(程序名:Add_D):Add_Database,'DBFName.DBF'語句功能:添加自由數(shù)據(jù)庫DBFName.DBF到DBVAS系統(tǒng)中。擴展名可以省略。如果添加的數(shù)據(jù)庫已經(jīng)存在,則提示并退出。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)庫是否存在。如果存在,則提示并退出。3)把數(shù)據(jù)庫添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中4)把數(shù)據(jù)庫的數(shù)據(jù)表添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中,同時還原相應(yīng)的數(shù)據(jù)表文件。5)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(2)移去數(shù)據(jù)庫語句格式(程序名:Remove_D):Remove_Database,'DBFName.DBF'語句功能:從DBVAS中移去數(shù)據(jù)庫DBFName.DBF,成為自由數(shù)據(jù)庫。擴展名可以省略。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)打包數(shù)據(jù)表目錄中所有以DBFName開頭的數(shù)據(jù)表文件,并存入數(shù)據(jù)庫DBFName.DBF,放入自由庫的目錄。同時刪除相應(yīng)的文件。3)使用WHERE方法在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中找到并刪除數(shù)據(jù)庫DBFName。4)使用WHERE方法在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中,找到并刪除所有以DBFName開頭的數(shù)據(jù)表。5)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(3)使用數(shù)據(jù)庫語句格式(程序名:Use_D):Use_Database,'DBFName.DBF'語句功能:使用名稱為DBFName.DBF的數(shù)據(jù)庫,使之成為當前數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則提示。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)庫是否存在。如果不存在,則提示。3)把結(jié)構(gòu)DBVAS_Status的成員DBVAS_Current_DBF的值改為DBFName。4)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(4)關(guān)閉數(shù)據(jù)庫語句格式(程序名:Close_D):Close_Database,'DBFName.DBF'語句功能:關(guān)閉名稱為DBFName.DBF的數(shù)據(jù)庫,使IDLDBF.DBF成為當前數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則提示并退出。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)庫是否存在。如果不存在,則提示并退出。3)把結(jié)構(gòu)DBVAS_Status的成員DBVAS_Current_DBF的值改為IDLDBF。4)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。4.2操縱數(shù)據(jù)表(1)移動數(shù)據(jù)表語句格式(程序名:Move_T):Move_Table,'DBFName$DTFName.DTFtoDBFName2.DBF'語句功能:把數(shù)據(jù)表DBFName$DTFName.DTF從一個數(shù)據(jù)庫DBFName.DBF移動到另一個數(shù)據(jù)庫DBFName2.DBF。擴展名可以省略。如果移動的數(shù)據(jù)表在DBFName2.DBF已經(jīng)存在,則提示并退出。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)庫DBFName2.DBF是否存在。如果存在,則檢測移入數(shù)據(jù)表是否存在,如果存在,則提示并退出;如果不存在,則在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中找到DBFName$DTFName,并改名為DBFName2$DTFName。同時把相應(yīng)的數(shù)據(jù)表文件使用SPAWN通過調(diào)用Windows的Rename命令進行重命名。3)如果數(shù)據(jù)庫DBFName2.DBF不存在,則建立該數(shù)據(jù)庫并移入。實現(xiàn)方法是:先把DBFName2添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中,然后在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中找到DBFName$DTFName,并改名為DBFName2$DTFName。同時把相應(yīng)的數(shù)據(jù)表文件使用SPAWN通過調(diào)用Windows的Rename命令進行重命名。4)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(2)使用數(shù)據(jù)表語句格式(程序名:Use_T):Use_Table,'DBFName$DTFName.DTF'語句功能:使用名稱為DBFName$DTFName.DTF的數(shù)據(jù)表,使之成為當前數(shù)據(jù)表。如果數(shù)據(jù)表不存在,則提示。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)表是否存在。如果不存在,則提示并退出。3)把結(jié)構(gòu)DBVAS_Status的成員DBVAS_Current_DTF的值改為DBFName$DTFName。4)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(3)關(guān)閉數(shù)據(jù)表語句格式(程序名:Close_T):Close_Table,'DBFName$DTFName.DTF'語句功能:關(guān)閉名稱為DBFName.DBF的數(shù)據(jù)庫,使IDLDBF.DBF成為當前數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則提示并退出。實現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測數(shù)據(jù)表是否存在。如果不存在,則提示并退出。3)把結(jié)構(gòu)DBVAS_Status的成員DBVAS_Current_DTF的值改為IDLDBF$IDLDTF。4)使用SAVE保存新結(jié)構(gòu)DBVAS_Status到DBVAS_Status.STS。(4)瀏覽記錄語句格式(程序名:Browse_R):Browse_Record,'Field1,Field2,…,Fieldn',$'FROMDBFName$DTFName1.DTF,…,DBFName$DTFNamen.DTF',$'CONDITIONConditionExpreeion,$'VAnalysisn'語句功能:瀏覽指定數(shù)據(jù)表的指定字段的記錄數(shù)據(jù)。擴展名可以省略。如果省略CONDITION,則按照笛卡爾集輸出;如果'Field1,Field2,…,Fieldn'為空串'',則顯示所有字段;如果DBFName$DTFNamei.DTF只有一個數(shù)據(jù)表,則為單表查詢。說明:DBFName$DTFNamei.DTF可以是視圖,如果是視圖,則擴展名不能省略,用于區(qū)分數(shù)據(jù)表與視圖。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFNamei.DTF是否存在。如果有一個數(shù)據(jù)表不存在,則提示并退出。2)使用RESTORE恢復(fù)DBFName$DTFNamei.DTF得到DBVAS_TableStructure。3)按照條件ConditionExpreeion,對DBVAS_TableStructure的記錄數(shù)據(jù)DBFName$DTFName_RecordData進行連接。溫馨提示:需要使用作者提供的函數(shù)GetTableInfo()或者GetTableInfoGUI()同時獲取多個數(shù)據(jù)表的數(shù)據(jù),然后進行相應(yīng)操作。4)按照Field1,Field2,…,Fieldn從連接結(jié)果中取出相應(yīng)數(shù)據(jù),并輸出。5)按照VAnalysisn的值,調(diào)用數(shù)據(jù)可視化分析引擎,進行可視化分析。6)使用SAVE命令,根據(jù)需要保存查詢結(jié)果到SelectResult.Dat中。溫馨提示:Browse_Record是整個DBVAS中使用率最高、也是最復(fù)雜、要求最高最嚴格的程序模塊,如果完善實現(xiàn)該語句,需要花費大量的時間。希望認真編寫該模塊!請參考作者提供的程序Browse_RecordGUI.pro。(5)添加記錄語句格式(程序名:Add_R):Add_Record,'DBFName$DTFName.DTF',$'FIELDField1,…,Fieldn',$'VALUEValue1,…,Valuen',$'FROMTABLEDBFName$DTFName2.DTF'思考題:把FROMTABLEDBFName$DTFName2.DTF改為FROMSTRUCTStructData,如何實現(xiàn)。即:把一個結(jié)構(gòu)StructData的數(shù)據(jù)添加到數(shù)據(jù)表中。溫馨提示:請參閱作者提供的Add_RecordGUI.pro中“導(dǎo)入”數(shù)據(jù)功能。語句功能:在DBFName$DTFName.DTF中添加記錄。擴展名可以省略。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示退出。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中,檢測字段Fieldi是否存在,如果有一個不存在,則不添加并退出;4)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_RecordData中,按照Field1,…,Fieldn把Value1,…,Valuen添加到DBFName$DTFName_RecordData中。5)如果參數(shù)FROMTABLEDBFName$DTFName2.DTF存在,則首先驗證兩個數(shù)據(jù)表的結(jié)構(gòu)是否匹配,如果不匹配,則提示并退出;如果匹配,則合并結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_RecordData。6)使用SAVE保存新結(jié)構(gòu)DBVAS_TableStructure到DBFName$DTFName.DTF。(6)刪除記錄語句格式(程序名:Delete_R):Delete_Record,'DBFName$DTFName.DTFFORExpressionL'語句功能:在DBFName$DTFName.DTF中刪除滿足條件的記錄。在進行刪除時,通常首先給出提示信息,然后讓用戶確定是否真的刪除。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示退出。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_RecordData中檢索滿足條件的記錄,如果存在,則刪除;否則提示。4)使用SAVE保存新結(jié)構(gòu)DBVAS_TableStructure到DBFName$DTFName.DTF。(7)修改記錄語句格式(程序名:Alter_R):Alter_Record,,'DBFName$DTFName.DTFFORExpressionL',$'FIELDField1,…,Fieldn',$'WITHValue1,…,Valuen'語句功能:修改DBFName$DTFName.DTF中記錄的值。實現(xiàn)方法:1)使用FILE_TEST檢測DBFName$DTFName.DTF是否存在。如果不存在,則提示退出。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中,檢測字段Fieldi是否存在,如果有一個不存在,則不添加并退出;4)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Reco
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 負面情緒處理課程設(shè)計
- 2024年幼兒健康管理知識培訓(xùn)題庫(含答案)
- 二零二五版四荒地承包經(jīng)營權(quán)投資融資合同3篇
- 年度多用客房車市場分析及競爭策略分析報告
- 年度垃圾收轉(zhuǎn)裝備戰(zhàn)略市場規(guī)劃報告
- 2024版遠程教育平臺搭建合同3篇
- 二零二五年度門店租賃合同范本:環(huán)保節(jié)能標準版4篇
- 室外電氣工程施工方案
- 送水泵房的課程設(shè)計
- 2025年度個人電子設(shè)備買賣合同模板2篇
- 骨科手術(shù)后患者營養(yǎng)情況及營養(yǎng)不良的原因分析,骨傷科論文
- GB/T 24474.1-2020乘運質(zhì)量測量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實施方案(一)
- 高血壓患者用藥的注意事項講義課件
- 特種作業(yè)安全監(jiān)護人員培訓(xùn)課件
- (完整)第15章-合成生物學(xué)ppt
- 太平洋戰(zhàn)爭課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
評論
0/150
提交評論