![數(shù)據(jù)庫可視化管理系統(tǒng)_第1頁](http://file4.renrendoc.com/view4/M02/39/17/wKhkGGY7ATeAfVqPAAMeKHX6KVw170.jpg)
![數(shù)據(jù)庫可視化管理系統(tǒng)_第2頁](http://file4.renrendoc.com/view4/M02/39/17/wKhkGGY7ATeAfVqPAAMeKHX6KVw1702.jpg)
![數(shù)據(jù)庫可視化管理系統(tǒng)_第3頁](http://file4.renrendoc.com/view4/M02/39/17/wKhkGGY7ATeAfVqPAAMeKHX6KVw1703.jpg)
![數(shù)據(jù)庫可視化管理系統(tǒng)_第4頁](http://file4.renrendoc.com/view4/M02/39/17/wKhkGGY7ATeAfVqPAAMeKHX6KVw1704.jpg)
![數(shù)據(jù)庫可視化管理系統(tǒng)_第5頁](http://file4.renrendoc.com/view4/M02/39/17/wKhkGGY7ATeAfVqPAAMeKHX6KVw1705.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE1數(shù)據(jù)庫可視化管理系統(tǒng)第一章緒論1.1研究背景與意義1.1.1研究背景零八年北京奧林匹克運(yùn)動(dòng)會(huì)開幕式上,有一幅巨大的LED畫軸吸引了全世界觀眾的目光,畫軸緩緩展開,將中華民族上下五千年的璀璨歷史以動(dòng)畫的形式表現(xiàn)出了。全世界人民通過這種可視的形式,消除了全球各個(gè)國家因?yàn)檎Z言文字而產(chǎn)生的隔閡和文化的差異,使得全世界人民都可以欣賞到我國悠久輝煌的文明,把中國展現(xiàn)在世界舞臺(tái)。當(dāng)今社會(huì),伴隨著計(jì)算機(jī)信息技術(shù)的快速發(fā)展,越來越多的信息可以被直觀的獲取,可視化的重要性在日常生活中體現(xiàn)的越來越明顯。視覺,是人類獲取外界信息最直接而且最重要的方式之一,可視化技術(shù)就是讓人們更直觀的看到信息,從而提升用戶的空間想象關(guān)系。而數(shù)據(jù)作為一類抽象的信息,數(shù)據(jù)可視化技術(shù)應(yīng)運(yùn)而生,數(shù)據(jù)可視化技術(shù)是是一種數(shù)據(jù)處理方式,可以提高人們處理數(shù)據(jù)的效率和準(zhǔn)確性的有效工具。說到數(shù)據(jù)可視化領(lǐng)域的起源,要追溯到二十世紀(jì)五十年代計(jì)算機(jī)圖形學(xué)的早期。數(shù)據(jù)可視化技術(shù)的基本思想,就是將數(shù)據(jù)庫中的每一個(gè)數(shù)據(jù)項(xiàng)作為單個(gè)元素表示,使大量的數(shù)據(jù)集構(gòu)成數(shù)據(jù)圖像,同時(shí)將數(shù)據(jù)的各個(gè)屬性值以多維數(shù)據(jù)的形式表示出來,就可以從不同的維度觀察數(shù)據(jù),從而對(duì)數(shù)據(jù)進(jìn)行更深入的觀察和分析。通俗的理解就是數(shù)據(jù)可視化是用視覺形式向人們展示數(shù)據(jù)重要性的一種方法。所謂數(shù)據(jù)可視化是利用圖像處理技術(shù)和計(jì)算機(jī)圖形學(xué)理論,將數(shù)據(jù)轉(zhuǎn)換成圖形然后在屏幕上顯示出來,并進(jìn)行交互處理的方法、理論和技術(shù)。它涉及到多個(gè)領(lǐng)域,比如計(jì)算機(jī)圖形學(xué)、圖像處理、計(jì)算機(jī)視覺、計(jì)算機(jī)輔助設(shè)計(jì)等,現(xiàn)今,已經(jīng)成為用于研究數(shù)據(jù)表示、數(shù)據(jù)處理、決策分析等解決一系列問題的綜合技術(shù)。1.1.2
研究意義2016年當(dāng)今世界,我們正處于大數(shù)據(jù)時(shí)代,每個(gè)人每天都在產(chǎn)生數(shù)據(jù)和分享數(shù)據(jù),產(chǎn)生了龐大的數(shù)據(jù)庫。而數(shù)據(jù)可視化技術(shù)更是讓數(shù)據(jù)如虎添翼。這對(duì)于企業(yè)來說,做好數(shù)據(jù)庫可視化管理,對(duì)于業(yè)務(wù)增長(zhǎng)有著巨大意義。面對(duì)互聯(lián)網(wǎng)中每天產(chǎn)生海量數(shù)據(jù),想要迅速的對(duì)其進(jìn)行細(xì)化分析,從而更好了解網(wǎng)民的興趣,并不是一件簡(jiǎn)單的事情,在碎片化時(shí)代,用戶的興趣也在隨著時(shí)間變化而遞減,所以分析掌握數(shù)據(jù)一定要及時(shí)有效。面對(duì)大數(shù)據(jù)的磅礴之勢(shì),網(wǎng)絡(luò)數(shù)據(jù)定向,該如何可以實(shí)現(xiàn)?而數(shù)據(jù)的可視化,允許你與數(shù)據(jù)實(shí)現(xiàn)互動(dòng),讓你洞悉搜集數(shù)據(jù)背后的趨勢(shì),深入研究客戶體驗(yàn)和其他數(shù)據(jù)結(jié)果,從而可以讓公司發(fā)現(xiàn)一個(gè)又一個(gè)可能的潛在新機(jī)會(huì)。數(shù)據(jù)可視化讓得企業(yè)從海量的看似無關(guān)的繁雜的數(shù)據(jù)之中預(yù)見公司接下來的商業(yè)機(jī)會(huì),并有理有據(jù)的指導(dǎo)企業(yè)決策者行動(dòng),降低主觀決策風(fēng)險(xiǎn)。第二章相關(guān)技術(shù)介紹數(shù)據(jù)庫可視化分析系統(tǒng)選定使用交互數(shù)據(jù)可視化分析語言IDL研發(fā)。原因是IDL內(nèi)部已經(jīng)嵌入了數(shù)據(jù)可視化引擎和數(shù)據(jù)分析引擎,同時(shí)還嵌入了針對(duì)大數(shù)據(jù)的面向數(shù)組運(yùn)算的快速數(shù)據(jù)運(yùn)算引擎以及眾多的數(shù)據(jù)分析模塊(IDL提供的InternationalMathematical&StatisticalLibrary,IMSL),使得大數(shù)據(jù)量的可視化分析更加簡(jiǎn)單、靈活、方便、快捷、高效。2.1
數(shù)據(jù)庫管理系統(tǒng)DBMS介紹數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是在操作系統(tǒng)的基礎(chǔ)上,位于操作系統(tǒng)與用戶之間的數(shù)據(jù)管理軟件,負(fù)責(zé)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制。數(shù)據(jù)庫管理系統(tǒng)保證了數(shù)據(jù)的安全性和完整性,同時(shí)提供了數(shù)據(jù)的并發(fā)控制和數(shù)據(jù)恢復(fù)機(jī)制。2.2.1DBMS的功能(1)數(shù)據(jù)定義數(shù)據(jù)定義功能是指用戶利用DBMS提供的DDL可以方便的定義數(shù)據(jù)庫系統(tǒng)的對(duì)象以及對(duì)象之間的關(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)還提供了實(shí)體完整性、參照完整性和用戶定義完整性約束機(jī)制,如果再配合5)則可以定義任意更復(fù)雜的完整性約束。(2)數(shù)據(jù)操縱數(shù)據(jù)操縱功能是指用戶利用DBMS提供的DML可以靈活方便的對(duì)數(shù)據(jù)庫中數(shù)據(jù)表的元組數(shù)據(jù)進(jìn)行插入、修改、刪除、查詢、表報(bào)和打印等基本操作。具體內(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可以方便的實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的安全性、完整性、數(shù)據(jù)并發(fā)和數(shù)據(jù)恢復(fù)等進(jìn)行保護(hù)控制,以保證數(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ù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)功能是指用戶利用DBMS提供的存儲(chǔ)結(jié)構(gòu)和訪問方式,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的統(tǒng)一組織、存儲(chǔ)和管理,減少數(shù)據(jù)冗余,并最終實(shí)現(xiàn)用戶對(duì)數(shù)據(jù)庫文件的存儲(chǔ)和訪問,提高數(shù)據(jù)庫的利用率。數(shù)據(jù)存儲(chǔ)功能對(duì)應(yīng)于DBMS的數(shù)據(jù)存儲(chǔ)層。例如:SQLServer的數(shù)據(jù)庫存儲(chǔ)為:*.MDF、日志文件存儲(chǔ)為:*.LDF。(5)數(shù)據(jù)接口數(shù)據(jù)接口功能是指用戶利用DBMS提供的系統(tǒng)內(nèi)部接口和外部應(yīng)用程序接口API,實(shí)現(xiàn)DBMS內(nèi)部DDL、DML、DCL功能之間的相互配合與調(diào)用,同時(shí)實(shí)現(xiàn)DBMS與外部軟件系統(tǒng)的之間功能調(diào)用和數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)取?shù)據(jù)接口對(duì)應(yīng)于DBMS的應(yīng)用層。(6)運(yùn)行管理運(yùn)行管理功能是DBMS的控制中心。包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制和數(shù)據(jù)存貯的具體實(shí)現(xiàn);對(duì)數(shù)據(jù)庫的安全性、完整性、并發(fā)控制和數(shù)據(jù)恢復(fù)的控制管理;數(shù)據(jù)庫的備份、重組織、性能的監(jiān)視與分析等內(nèi)部維護(hù)等。對(duì)數(shù)據(jù)庫的所有訪問操作都要在DBMS的相應(yīng)控制程序的統(tǒng)一管理之下進(jìn)行,以保護(hù)和保證數(shù)據(jù)的安全性、完整性、一致性、有效性和共享性。運(yùn)行管理是對(duì)DBMS的應(yīng)用層、語言處理層、數(shù)據(jù)存取層和數(shù)據(jù)存儲(chǔ)層的整體協(xié)調(diào)管理,實(shí)現(xiàn)四層之間的功能轉(zhuǎn)換,確保系統(tǒng)安全穩(wěn)定的運(yùn)行。2.1.2
DBMS的結(jié)構(gòu)對(duì)于整個(gè)數(shù)據(jù)庫系統(tǒng),面向用戶的應(yīng)用程序需要對(duì)基于操作系統(tǒng)的數(shù)據(jù)庫進(jìn)行建立、添加、查詢、修改、刪除、計(jì)算、統(tǒng)計(jì)、報(bào)表、存儲(chǔ)、傳送等復(fù)雜的數(shù)據(jù)管理。所有這些管理操作,都需要經(jīng)過介于應(yīng)用程序和操作系統(tǒng)之間的DBMS對(duì)用戶的應(yīng)用請(qǐng)求進(jìn)行語法檢查、語法分析、代碼優(yōu)化、代碼生成、完整性檢查、視圖管理、空間管理、設(shè)備管理、訪問控制、并發(fā)控制、日志管理、恢復(fù)控制和安全性檢查等。為了能夠使面向用戶的應(yīng)用程序更高效的實(shí)施對(duì)數(shù)據(jù)庫的眾多復(fù)雜管理,DBMS的系統(tǒng)結(jié)構(gòu)采用了目前通用的分層結(jié)構(gòu)的管理模式。即把DBMS分成應(yīng)用層、語言層、訪問層和存儲(chǔ)層四個(gè)層次,并通過結(jié)構(gòu)上下層之間提供的接口及其服務(wù)實(shí)現(xiàn)數(shù)據(jù)管理。DBMS的四層系統(tǒng)結(jié)構(gòu)對(duì)復(fù)雜的數(shù)據(jù)管理進(jìn)行了合理有效的分類,使得DBMS的系統(tǒng)結(jié)構(gòu)層次更加清晰、從而使得數(shù)據(jù)管理更加靈活方便,同時(shí)也更加方便了DBMS的設(shè)計(jì)、實(shí)施和維護(hù)。2.1.3DBMS的工作過程對(duì)于數(shù)據(jù)庫系統(tǒng),用戶在利用應(yīng)用程序訪問數(shù)據(jù)庫的數(shù)據(jù)時(shí),應(yīng)用程序、DBMS、操作系統(tǒng)、硬件等必須協(xié)調(diào)工作,共同完成用戶的訪問請(qǐng)求。在這個(gè)復(fù)雜的數(shù)據(jù)訪問過程中,DBMS起著關(guān)鍵的橋梁作用。DBMS的具體工作過程如下:(1)應(yīng)用程序向DBMS發(fā)出訪問數(shù)據(jù)庫數(shù)據(jù)的請(qǐng)求命令。(2)DBMS對(duì)該命令進(jìn)行語法檢查、優(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è)計(jì)在理解了DBMS的基本功能、系統(tǒng)結(jié)構(gòu)和工作原理之后,DBMS本身就相當(dāng)于一個(gè)功能更加豐富、管理機(jī)制更加完善、系統(tǒng)結(jié)構(gòu)更加復(fù)雜的應(yīng)用軟件系統(tǒng)。盡管DBMS也是一個(gè)軟件系統(tǒng),但是DBMS作為用于開發(fā)一般通用應(yīng)用軟件系統(tǒng)的開發(fā)工具,DBMS的設(shè)計(jì)與實(shí)現(xiàn)與一般應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)有著本質(zhì)的區(qū)別。一般的應(yīng)用系統(tǒng)是面向于無程序設(shè)計(jì)能力的最終應(yīng)用用戶,而DBMS是面向于開發(fā)應(yīng)用系統(tǒng)的各類設(shè)計(jì)和管理人員,所以DBMS需要提供能夠勝任和完成開發(fā)應(yīng)用系統(tǒng)的各種功能。因此DBMS在語言處理能力(自含一個(gè)語言系統(tǒng))、數(shù)據(jù)表達(dá)能力(數(shù)據(jù)類型、常量、變量、數(shù)組、結(jié)構(gòu)、函數(shù)、表達(dá)式等表達(dá)能力)、應(yīng)用和管理接口、系統(tǒng)結(jié)構(gòu)、系統(tǒng)功能、系統(tǒng)性能、系統(tǒng)穩(wěn)定性、系統(tǒng)完整性、系統(tǒng)可用性、系統(tǒng)實(shí)用性、系統(tǒng)可操作性以及系統(tǒng)的方便靈活性等諸多方面都有更高更嚴(yán)格的要求。DBMS設(shè)計(jì)的內(nèi)容主要包括:系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、文件系統(tǒng)設(shè)計(jì)、DDL設(shè)計(jì)、DML設(shè)計(jì)、DCL設(shè)計(jì)、GUI和接口設(shè)計(jì)、系統(tǒng)實(shí)施、系統(tǒng)測(cè)試、幫助系統(tǒng)設(shè)計(jì)、打包與銷售等。(1)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)隨著DBMS的規(guī)模越來越大、系統(tǒng)越來越復(fù)雜,DBMS的系統(tǒng)結(jié)構(gòu)顯得越來越重要。DBMS系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)是整個(gè)系統(tǒng)開發(fā)過程的關(guān)鍵步驟。對(duì)于龐大而復(fù)雜的DBMS,如果沒有為DBMS設(shè)計(jì)合理的系統(tǒng)結(jié)構(gòu),則要想成功設(shè)計(jì)DBMS幾乎是不可能的。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)通常是一個(gè)DBMS設(shè)計(jì)成敗的關(guān)鍵。因此系統(tǒng)結(jié)構(gòu)設(shè)計(jì),應(yīng)該按照層次系統(tǒng)結(jié)構(gòu)模型,首先設(shè)計(jì)系統(tǒng)結(jié)構(gòu)的核心語言層,然后再根據(jù)應(yīng)用層的需求,逐層設(shè)計(jì)訪問層和存儲(chǔ)層,最后完成應(yīng)用層的查詢分析和存儲(chǔ)管理應(yīng)用接口。因?yàn)镈BMS需要滿足各種不同應(yīng)用系統(tǒng)的設(shè)計(jì)需求,所以必須首先抽象應(yīng)用系統(tǒng)設(shè)計(jì)的本質(zhì)的公共需求,設(shè)計(jì)出完成基本功能需求的基本語言系統(tǒng),然后再根據(jù)不同應(yīng)用系統(tǒng)的設(shè)計(jì)需要,通過依次擴(kuò)展功能的方法逐步擴(kuò)充和完善語言層的設(shè)計(jì),進(jìn)而逐層完成系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。例如:在抽象應(yīng)用系統(tǒng)設(shè)計(jì)的公共需求時(shí),對(duì)于用于數(shù)據(jù)處理的數(shù)據(jù)類型體系的設(shè)計(jì),需要抽象出具體需要多少種數(shù)據(jù)類型,每一種數(shù)據(jù)類型的取值范圍、存儲(chǔ)方式和存儲(chǔ)空間。即:DBVAS的數(shù)據(jù)類型、取值范圍、存儲(chǔ)方式和存儲(chǔ)空間設(shè)計(jì)如下:字符型:'';邏輯型:0/1B;日期型:'2008-06-06';時(shí)間型:'22:22:22';單字節(jié)整型:0B;雙字節(jié)整型:0;四字節(jié)整型:0L;八字節(jié)整型:0LL;四字節(jié)實(shí)型:0.0;八字節(jié)實(shí)型:0.0D;媒體型:*.mid,*.JPG,*.MP3,*.MPG等。(2)文件系統(tǒng)設(shè)計(jì)文件系統(tǒng)是用于組織和存儲(chǔ)文件的目錄結(jié)構(gòu)。對(duì)于一個(gè)DBMS應(yīng)該有自己的文件系統(tǒng),用于管理DBMS支持的諸多文件。因此合理設(shè)計(jì)適合于DBMS的文件系統(tǒng),可以提高系統(tǒng)的運(yùn)行速度。由于操作系統(tǒng)已經(jīng)提供了功能豐富完善的文件管理系統(tǒng)。所以DBMS的文件系統(tǒng)設(shè)計(jì)應(yīng)該通過操作系統(tǒng)提供的應(yīng)用程序接口API,充分利用操作系統(tǒng)的文件管理功能。文件系統(tǒng)設(shè)計(jì)主要包括DBMS提供和支持的文件類型、存儲(chǔ)路徑、存儲(chǔ)結(jié)構(gòu)、存取方式等。文件類型不宜太多,文件的存儲(chǔ)路徑不宜太復(fù)雜,均應(yīng)該按照能夠滿足實(shí)際需要為標(biāo)準(zhǔn),同時(shí)提供適當(dāng)?shù)臄U(kuò)展。文件的存儲(chǔ)結(jié)構(gòu)包括DBMS本身的文件存儲(chǔ)結(jié)構(gòu)和使用DBMS的DDL創(chuàng)建的數(shù)據(jù)庫和數(shù)據(jù)表的存儲(chǔ)結(jié)構(gòu)。文件的存儲(chǔ)結(jié)構(gòu)和存取方式原則上在操作系統(tǒng)的基礎(chǔ)上,充分利用操作系統(tǒng)的API資源,同時(shí)做適當(dāng)?shù)恼{(diào)整。文件的存儲(chǔ)路徑、存儲(chǔ)結(jié)構(gòu)和存取方式將直接影響文件訪問的效率。例如:DBVAS的數(shù)據(jù)庫系列文件類型設(shè)計(jì)為:*.DBF(數(shù)據(jù)庫文件),*.DTF(數(shù)據(jù)表文件),*.IDX(索引文件),*.STS(數(shù)據(jù)庫狀態(tài)文件),*.DVF(視圖文件)等。(3)DDL設(shè)計(jì)DDL設(shè)計(jì)是指數(shù)據(jù)庫定義功能的設(shè)計(jì)。DDL應(yīng)該提供功能完善豐富的數(shù)據(jù)定義功能(外模式、模式、內(nèi)模式)以及模式之間的映像。具體主要包括:數(shù)據(jù)庫和數(shù)據(jù)表定義、索引的定義、視圖定義、數(shù)據(jù)完整性定義、數(shù)據(jù)安全性定義等,并且需要把這些定義保存到DBMS的數(shù)據(jù)字典中,以備DML和DCL使用。(4)DML設(shè)計(jì)DML設(shè)計(jì)是指數(shù)據(jù)庫操縱功能的設(shè)計(jì)。DML應(yīng)該提供功能完善豐富的數(shù)據(jù)操縱功能。具體主要包括:數(shù)據(jù)添加、修改、查詢、刪除、統(tǒng)計(jì)、報(bào)表等,設(shè)計(jì)人員利用DML能夠方便、快捷的實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。(5)DCL設(shè)計(jì)DCL設(shè)計(jì)是指數(shù)據(jù)庫保護(hù)控制功能的設(shè)計(jì)。在進(jìn)行DCL設(shè)計(jì)時(shí),應(yīng)該充分考慮和提供數(shù)據(jù)安全性控制、數(shù)據(jù)完整性控制、多用戶環(huán)境并發(fā)控制和數(shù)據(jù)庫的恢復(fù)機(jī)制等四項(xiàng)基本數(shù)據(jù)保護(hù)控制能力。目前數(shù)據(jù)的安全性、完整性、并發(fā)性和恢復(fù)性控制能力已經(jīng)成為DBMS的基本性能指標(biāo)。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ù)對(duì)象的可視化功能的同時(shí),提供對(duì)數(shù)據(jù)對(duì)象的可視化分析能力的數(shù)據(jù)可視化分析系統(tǒng)。即:DBVAS是能夠進(jìn)行數(shù)據(jù)可視化分析的DBMS。因此,把DBVAS的系統(tǒng)結(jié)構(gòu)分為應(yīng)用層、語言層、可視層、訪問層和存儲(chǔ)層等五個(gè)層次。其中可視層主要包括數(shù)據(jù)可視化引擎和數(shù)據(jù)分析引擎。9582151295400DBOS應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲(chǔ)層可視層應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲(chǔ)層可視層DBOS應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲(chǔ)層可視層應(yīng)用層應(yīng)用系統(tǒng)語言層訪問層用戶存儲(chǔ)層可視層圖1DBVAS系統(tǒng)結(jié)構(gòu)2.2.1
數(shù)據(jù)可視技術(shù)數(shù)據(jù)可視技術(shù)(DataVisualizationTechnology,DVT)是指運(yùn)用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換為圖形或圖像在屏幕上顯示出來,并進(jìn)行交互處理的理論、方法和技術(shù)。數(shù)據(jù)可視化涉及計(jì)算機(jī)圖形學(xué)、圖像處理、計(jì)算機(jī)輔助設(shè)計(jì)、計(jì)算機(jī)視覺及人機(jī)交互技術(shù)等多個(gè)領(lǐng)域。數(shù)據(jù)可視化引擎是指包含先進(jìn)可視化技術(shù)的數(shù)據(jù)可視化功能模塊。2.2.2數(shù)據(jù)可視分析技術(shù)數(shù)據(jù)可視分析技術(shù)(DataVisualAnalysisTechnology,DVAT)是指運(yùn)用數(shù)據(jù)分析技術(shù),對(duì)可視的數(shù)據(jù)對(duì)象進(jìn)行復(fù)雜數(shù)據(jù)分析的理論、方法和技術(shù)。數(shù)據(jù)分析涉及基礎(chǔ)數(shù)學(xué)、應(yīng)用數(shù)學(xué)、統(tǒng)計(jì)、模糊集理論、粗糙集理論、遺傳算法、信息論等多個(gè)領(lǐng)域。數(shù)據(jù)分析引擎是指包含先進(jìn)數(shù)據(jù)分析技術(shù)的數(shù)據(jù)可視化分析功能模塊。利用可視層提供的數(shù)據(jù)可視化分析引擎,可以方便靈活的進(jìn)行數(shù)據(jù)可視化分析。第三章DBVAS的DDL設(shè)計(jì)按照DBVAS的文件系統(tǒng)的設(shè)計(jì)要求,DDL設(shè)計(jì)的主要內(nèi)容包括:建立數(shù)據(jù)庫、數(shù)據(jù)表、索引文件和視圖。具體格式要求與實(shí)現(xiàn)方法如下:3.1建立數(shù)據(jù)庫(1)建立數(shù)據(jù)庫語句格式(程序名:Create_D):Create_Database,'DBFName.DBF'語句功能:建立名稱為DBFName.DBF的數(shù)據(jù)庫。擴(kuò)展名可以省略。如省略數(shù)據(jù)庫的名稱,則建立默認(rèn)數(shù)據(jù)庫:NoName.DBF。如果建立的數(shù)據(jù)庫已經(jīng)存在,則提示是否覆蓋。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(shù)據(jù)庫是否存在(使用下述WHERE方法)。如果存在,則提示是否覆蓋。3)把數(shù)據(jù)庫名稱添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中,實(shí)現(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ù)庫。擴(kuò)展名可以省略。實(shí)現(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ù)庫。擴(kuò)展名可以省略。如果刪除的數(shù)據(jù)庫不存在,則提示。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)使用WHERE方法檢測(cè)數(shù)據(jù)庫是否存在。如果不存在,則提示。3)在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中找到刪除的數(shù)據(jù)庫,并刪除。實(shí)現(xiàn)方法是使用WHERE函數(shù)找到不被刪除的數(shù)據(jù)下標(biāo),然后采用下標(biāo)賦值即可。即: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ù)表,并刪除。實(shí)現(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ù)表。擴(kuò)展名可以省略。如省略數(shù)據(jù)表的名稱,則建立默認(rèn)數(shù)據(jù)表:IDLDBF$NoName.DTF。如果建立的數(shù)據(jù)表已經(jīng)存在,則提示是否覆蓋。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)使用WHERE方法檢測(cè)數(shù)據(jù)庫是否存在。如果存在,則直接使用;否則,則建立DBFName.DBF。3)使用WHERE方法檢測(cè)數(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中,實(shí)現(xiàn)方法如下:DBVAS_DBF=[DBVAS_DBF,'DBFName']DBVAS_DTF=[DBVAS_DTF,'DBFName$DTFName']5)對(duì)索引屬性,需要建立相應(yīng)的索引文件。6)對(duì)外鍵,需要使用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ù)表。擴(kuò)展名可以省略。實(shí)現(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ù)表。擴(kuò)展名可以省略。如果刪除的數(shù)據(jù)表不存在,則提示。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(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ù)表的字段信息。擴(kuò)展名可以省略。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)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中添加字段。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測(cè)字段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中刪除指定字段。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測(cè)字段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中修改字段。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測(cè)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的索引文件。擴(kuò)展名可以省略。如果建立的索引文件已經(jīng)存在,則提示是否覆蓋。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFName.DTF是否存在。如果不存在,則提示。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測(cè)Field1、…、Fieldn是否均存在,如果有一個(gè)不存在,則不建立索引;否則按照Field1、…、Fieldn重組DBFName$DTFName_Structure。4)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_RecordData中把Field1、…、Fieldn對(duì)應(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ù)表的所有索引文件。實(shí)現(xiàn)方法:1)使用FILE_SEARCH檢索并獲取索引文件目錄中,以DBFName$DTFName開頭的索引文件。2)輸出檢索結(jié)果。3)刪除索引文件語句格式(程序名:Delete_I):Delete_Index,'Field1,Field2,…,FieldnFORDBFName$DTFName.DTF'語句功能:刪除指定的索引文件。如果刪除的索引文件不存在,則提示。實(shí)現(xiàn)方法:使用FILE_SEARCH檢測(cè)索引文件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的視圖文件。擴(kuò)展名可以省略。如果建立的視圖文件已經(jīng)存在,則提示是否覆蓋。說明:執(zhí)行視圖時(shí),把第二個(gè)參數(shù)轉(zhuǎn)化為Browse_Record的語句格式,然后調(diào)用Browse_Record語句。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFNamei.DTF是否存在。如果有一個(gè)數(shù)據(jù)表不存在,則提示并退出。2)使用RESTORE恢復(fù)DBFName$DTFNamei.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中檢測(cè)SField1、…、SFieldn是否均存在,如果有一個(gè)不存在,則提示并退出;否則把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ù)庫的所有視圖文件。實(shí)現(xiàn)方法:1)使用FILE_SEARCH檢索并獲取視圖文件目錄中,以DBFName開頭的視圖文件。2)輸出檢索結(jié)果。3)刪除視圖語句格式(程序名:Delete_V):Delete_View,'DBFName$DTFName.DVF'語句功能:刪除指定的視圖文件。如果刪除的視圖文件不存在,則提示。實(shí)現(xiàn)方法:使用FILE_SEARCH檢測(cè)索引文件DBFName$DTFName.DVF,在索引文件目錄中是否存在,如果存在,則刪除;否則提示。第四章DBVAS的DML設(shè)計(jì)按照DBVAS的文件系統(tǒng)和DDL的設(shè)計(jì)要求,DML設(shè)計(jì)的主要內(nèi)容包括:操縱數(shù)據(jù)庫和操縱數(shù)據(jù)表。具體格式要求與實(shí)現(xiàn)方法如下:4.1操縱數(shù)據(jù)庫(1)添加數(shù)據(jù)庫語句格式(程序名:Add_D):Add_Database,'DBFName.DBF'語句功能:添加自由數(shù)據(jù)庫DBFName.DBF到DBVAS系統(tǒng)中。擴(kuò)展名可以省略。如果添加的數(shù)據(jù)庫已經(jīng)存在,則提示并退出。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(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中,同時(shí)還原相應(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ù)庫。擴(kuò)展名可以省略。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)打包數(shù)據(jù)表目錄中所有以DBFName開頭的數(shù)據(jù)表文件,并存入數(shù)據(jù)庫DBFName.DBF,放入自由庫的目錄。同時(shí)刪除相應(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ù)庫,使之成為當(dāng)前數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則提示。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(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成為當(dāng)前數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則提示并退出。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(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)移動(dòng)數(shù)據(jù)表語句格式(程序名:Move_T):Move_Table,'DBFName$DTFName.DTFtoDBFName2.DBF'語句功能:把數(shù)據(jù)表DBFName$DTFName.DTF從一個(gè)數(shù)據(jù)庫DBFName.DBF移動(dòng)到另一個(gè)數(shù)據(jù)庫DBFName2.DBF。擴(kuò)展名可以省略。如果移動(dòng)的數(shù)據(jù)表在DBFName2.DBF已經(jīng)存在,則提示并退出。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(shù)據(jù)庫DBFName2.DBF是否存在。如果存在,則檢測(cè)移入數(shù)據(jù)表是否存在,如果存在,則提示并退出;如果不存在,則在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中找到DBFName$DTFName,并改名為DBFName2$DTFName。同時(shí)把相應(yīng)的數(shù)據(jù)表文件使用SPAWN通過調(diào)用Windows的Rename命令進(jìn)行重命名。3)如果數(shù)據(jù)庫DBFName2.DBF不存在,則建立該數(shù)據(jù)庫并移入。實(shí)現(xiàn)方法是:先把DBFName2添加到結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DBF中,然后在結(jié)構(gòu)DBVAS_Status的成員數(shù)組DBVAS_DTF中找到DBFName$DTFName,并改名為DBFName2$DTFName。同時(shí)把相應(yīng)的數(shù)據(jù)表文件使用SPAWN通過調(diào)用Windows的Rename命令進(jìn)行重命名。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ù)表,使之成為當(dāng)前數(shù)據(jù)表。如果數(shù)據(jù)表不存在,則提示。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(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成為當(dāng)前數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則提示并退出。實(shí)現(xiàn)方法:1)使用RESTORE恢復(fù)DBVAS_Status.STS。2)檢測(cè)數(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ù)。擴(kuò)展名可以省略。如果省略CONDITION,則按照笛卡爾集輸出;如果'Field1,Field2,…,Fieldn'為空串'',則顯示所有字段;如果DBFName$DTFNamei.DTF只有一個(gè)數(shù)據(jù)表,則為單表查詢。說明:DBFName$DTFNamei.DTF可以是視圖,如果是視圖,則擴(kuò)展名不能省略,用于區(qū)分?jǐn)?shù)據(jù)表與視圖。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFNamei.DTF是否存在。如果有一個(gè)數(shù)據(jù)表不存在,則提示并退出。2)使用RESTORE恢復(fù)DBFName$DTFNamei.DTF得到DBVAS_TableStructure。3)按照條件ConditionExpreeion,對(duì)DBVAS_TableStructure的記錄數(shù)據(jù)DBFName$DTFName_RecordData進(jìn)行連接。溫馨提示:需要使用作者提供的函數(shù)GetTableInfo()或者GetTableInfoGUI()同時(shí)獲取多個(gè)數(shù)據(jù)表的數(shù)據(jù),然后進(jìn)行相應(yīng)操作。4)按照Field1,Field2,…,Fieldn從連接結(jié)果中取出相應(yīng)數(shù)據(jù),并輸出。5)按照VAnalysisn的值,調(diào)用數(shù)據(jù)可視化分析引擎,進(jìn)行可視化分析。6)使用SAVE命令,根據(jù)需要保存查詢結(jié)果到SelectResult.Dat中。溫馨提示:Browse_Record是整個(gè)DBVAS中使用率最高、也是最復(fù)雜、要求最高最嚴(yán)格的程序模塊,如果完善實(shí)現(xiàn)該語句,需要花費(fèi)大量的時(shí)間。希望認(rèn)真編寫該模塊!請(qǐng)參考作者提供的程序Browse_RecordGUI.pro。(5)添加記錄語句格式(程序名:Add_R):Add_Record,'DBFName$DTFName.DTF',$'FIELDField1,…,Fieldn',$'VALUEValue1,…,Valuen',$'FROMTABLEDBFName$DTFName2.DTF'思考題:把FROMTABLEDBFName$DTFName2.DTF改為FROMSTRUCTStructData,如何實(shí)現(xiàn)。即:把一個(gè)結(jié)構(gòu)StructData的數(shù)據(jù)添加到數(shù)據(jù)表中。溫馨提示:請(qǐng)參閱作者提供的Add_RecordGUI.pro中“導(dǎo)入”數(shù)據(jù)功能。語句功能:在DBFName$DTFName.DTF中添加記錄。擴(kuò)展名可以省略。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFName.DTF是否存在。如果不存在,則提示退出。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中,檢測(cè)字段Fieldi是否存在,如果有一個(gè)不存在,則不添加并退出;4)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_RecordData中,按照Field1,…,Fieldn把Value1,…,Valuen添加到DBFName$DTFName_RecordData中。5)如果參數(shù)FROMTABLEDBFName$DTFName2.DTF存在,則首先驗(yàn)證兩個(gè)數(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中刪除滿足條件的記錄。在進(jìn)行刪除時(shí),通常首先給出提示信息,然后讓用戶確定是否真的刪除。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)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中記錄的值。實(shí)現(xiàn)方法:1)使用FILE_TEST檢測(cè)DBFName$DTFName.DTF是否存在。如果不存在,則提示退出。2)使用RESTORE恢復(fù)DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Structure中,檢測(cè)字段Fieldi是否存在,如果有一個(gè)不存在,則不添加并退出;4)在結(jié)構(gòu)DBVAS_TableStructure的成員DBFName$DTFName_Reco
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023八年級(jí)歷史上冊(cè) 第五單元 從國共合作到國共對(duì)立第17課 中國工農(nóng)紅軍長(zhǎng)征說課稿 新人教版
- 3 歡歡喜喜慶國慶(說課稿)-2024-2025學(xué)年統(tǒng)編版道德與法治二年級(jí)上冊(cè)
- Module 3 Unit 1 What are you doing?(說課稿)-2024-2025學(xué)年外研版(三起)英語四年級(jí)上冊(cè)
- 11《趙州橋》說課稿-2023-2024學(xué)年統(tǒng)編版語文三年級(jí)下冊(cè)
- 1學(xué)會(huì)尊重(說課稿)-2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版001
- Unit 3 Festivals and Customs Extended reading 說課稿-2024-2025學(xué)年高中英語譯林版(2020)必修第二冊(cè)
- 2023九年級(jí)物理下冊(cè) 專題六 材料、信息和能源B 能源學(xué)說課稿 (新版)新人教版
- 2023二年級(jí)數(shù)學(xué)下冊(cè) 六 田園小衛(wèi)士-萬以內(nèi)的加減法(二)我學(xué)會(huì)了嗎說課稿 青島版六三制
- 2024-2025學(xué)年高中化學(xué) 專題五 電化學(xué)問題研究 5.1 原電池說課稿 蘇教版選修6
- 《10 身邊的新聞?wù){(diào)查》(說課稿)-2023-2024學(xué)年三年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)吉美版
- 父母贈(zèng)與協(xié)議書
- 員工之愛崗敬業(yè)培訓(xùn)課件1
- 高校鑄牢中華民族共同體意識(shí)教育的路徑研究
- 醫(yī)療機(jī)構(gòu)依法執(zhí)業(yè)自查管理辦法
- 《個(gè)人所得稅征管問題及對(duì)策研究》
- JGJT46-2024《施工現(xiàn)場(chǎng)臨時(shí)用電安全技術(shù)標(biāo)準(zhǔn)》條文解讀
- 2022年云南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 大學(xué)輔導(dǎo)員崗位考核參考指標(biāo)
- 隱名股東協(xié)議股權(quán)代持的協(xié)議書(范本)
- 駕照體檢表完整版本
- 效率提升和品質(zhì)改善方案
評(píng)論
0/150
提交評(píng)論