引論:我們?yōu)槟砹?3篇數(shù)據(jù)庫(kù)設(shè)計(jì)范文,供您借鑒以豐富您的創(chuàng)作。它們是您寫作時(shí)的寶貴資源,期望它們能夠激發(fā)您的創(chuàng)作靈感,讓您的文章更具深度。
篇1
需求分析是在項(xiàng)目確定之后,用戶和設(shè)計(jì)人員通過(guò)詳細(xì)的調(diào)查研究,充分了解用戶的組織機(jī)構(gòu)、業(yè)務(wù)規(guī)則、數(shù)據(jù)需求等等。所謂需求是指用戶對(duì)軟件的功能和性能的要求,就是用戶希望軟件能做什么事情,完成什么樣的功能,達(dá)到什么性能。需求分析是數(shù)據(jù)庫(kù)設(shè)計(jì)最基礎(chǔ)的工作,如果這個(gè)階段的工作不準(zhǔn)確或有誤,那么后面幾個(gè)階段的任務(wù)就會(huì)有偏差,如果到測(cè)試階段才發(fā)現(xiàn)錯(cuò)誤再去更改必然會(huì)付出很大的代價(jià),因此必須高度重視這個(gè)階段的人任務(wù)。需求分析階段的后期編寫系統(tǒng)分析報(bào)告,主要包括:系統(tǒng)的概況、目標(biāo)、范圍、現(xiàn)狀等;系統(tǒng)及子系統(tǒng)的結(jié)構(gòu)說(shuō)明;系統(tǒng)的功能劃分;系統(tǒng)的組織機(jī)構(gòu)聯(lián)系圖;數(shù)據(jù)流程圖;功能模塊圖及數(shù)據(jù)字典等內(nèi)容。然后將此需求分析報(bào)告提交給用戶的決策部門討論審查,通過(guò)審查以后的需求分析報(bào)告作為今后各階段設(shè)計(jì)和工作的依據(jù)。
例如:公司職工人事檔案資料繁多,查詢、統(tǒng)計(jì)、更新等各方面工作都不能更快更好進(jìn)行,急需一管理系統(tǒng)實(shí)現(xiàn)人事資料的錄入、維護(hù)、統(tǒng)計(jì)、查詢等工作,明確要求后將具體事項(xiàng)形成書面報(bào)告審查后作為今后設(shè)計(jì)的依據(jù)。
2.概念結(jié)構(gòu)設(shè)計(jì)
概念結(jié)構(gòu)設(shè)計(jì)的目標(biāo)是產(chǎn)生出一個(gè)能反映組織信息需求的概念模型,其特點(diǎn)有簡(jiǎn)單明確表示用戶業(yè)務(wù)數(shù)據(jù)需求、數(shù)據(jù)之間的聯(lián)系、數(shù)據(jù)約束條件等。概念結(jié)構(gòu)的策略有四種自頂向下、自底向上、逐步擴(kuò)張、混合策略。概念結(jié)構(gòu)設(shè)計(jì)的最著名、最常用的方法是實(shí)體-聯(lián)系方法,簡(jiǎn)稱E-R方法。它雖然只有幾個(gè)基本元素(實(shí)體、屬性、聯(lián)系),但能夠表達(dá)現(xiàn)實(shí)世界復(fù)雜的數(shù)據(jù)、數(shù)據(jù)之間的關(guān)系和約束條件。
E-R圖設(shè)計(jì)是對(duì)需求分析階段所得到的數(shù)據(jù)進(jìn)行分類、聚集、概括,確定實(shí)體、屬性和聯(lián)系,具體步驟如下:
2.1選擇局部應(yīng)用
數(shù)據(jù)流圖是對(duì)業(yè)務(wù)處理過(guò)程從高層到底層的一級(jí)級(jí)抽象,高層抽象流圖一般反映系統(tǒng)的概貌,對(duì)數(shù)據(jù)的引用較為籠統(tǒng),選擇適當(dāng)層次的數(shù)據(jù)流圖,讓這一層的每一部分對(duì)應(yīng)一個(gè)局部應(yīng)用,實(shí)現(xiàn)某一項(xiàng)功能。
2.2逐一設(shè)計(jì)局部E-R圖
規(guī)劃好各個(gè)局部應(yīng)用之后,對(duì)每一個(gè)局部應(yīng)用設(shè)計(jì)局部E-R圖,按照局部應(yīng)用的數(shù)據(jù)流圖,從數(shù)據(jù)字典中提取數(shù)據(jù),使用抽象機(jī)制,確定局部應(yīng)用中的實(shí)體、實(shí)體的屬性、實(shí)體標(biāo)示符、實(shí)體間的聯(lián)系和類型,但是許多實(shí)物是實(shí)體還是屬性沒(méi)有明確的界定,要根據(jù)具體情況判斷,一般來(lái)說(shuō),屬性不能再分,屬性也不能和其他實(shí)體發(fā)生聯(lián)系,因?yàn)槁?lián)系是實(shí)體和實(shí)體間的聯(lián)系。
2.3 E-R圖合并
根據(jù)局部應(yīng)用設(shè)計(jì)好的局部E-R圖之后,就可以對(duì)各局部E-R圖進(jìn)行合并,合并的目的是在合并過(guò)程中解決局部E-R圖之間存在的沖突,消除存在的信息冗余,使之成為供用戶理解的統(tǒng)一的、精練的全局概念模型。對(duì)所有的局部E-R圖合并之后,就形成了全局E-R圖,從而完成了概念結(jié)構(gòu)設(shè)計(jì)。
3.邏輯結(jié)構(gòu)設(shè)計(jì)
邏輯結(jié)構(gòu)設(shè)計(jì)是在概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上進(jìn)行的數(shù)據(jù)模型設(shè)計(jì),一般有層次、網(wǎng)狀模型和關(guān)系模型,現(xiàn)在絕大多數(shù)DBMS都是基于關(guān)系模型的,此階段的主要任務(wù)有確定數(shù)據(jù)模型、將E-R圖轉(zhuǎn)換為指定的數(shù)據(jù)模型、確定完整性約束、確定用戶視圖。
例如:部門(1)————職工(M)。
4.物理結(jié)構(gòu)設(shè)計(jì)
在實(shí)現(xiàn)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)之后,就要確定數(shù)據(jù)庫(kù)在計(jì)算機(jī)中的具體存儲(chǔ)。數(shù)據(jù)庫(kù)在計(jì)算機(jī)物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)完全依賴于給定的數(shù)據(jù)庫(kù)軟件和硬件設(shè)備。層次和網(wǎng)狀模型物理設(shè)計(jì)比較復(fù)雜,而關(guān)系DBMS對(duì)物理設(shè)計(jì)要求很少,由DBA來(lái)實(shí)現(xiàn)。物理結(jié)構(gòu)設(shè)計(jì)需要確定數(shù)據(jù)分布、確定存儲(chǔ)結(jié)構(gòu)、確定存取方式。
5.數(shù)據(jù)庫(kù)實(shí)施階段
確定了數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以后,可以利用DBMS提供的數(shù)據(jù)定義語(yǔ)言建立數(shù)據(jù)庫(kù)的結(jié)構(gòu)。
例如:CREATE TABLE 職工庫(kù)。
(職工編號(hào) CHAR(6) NOT NULL,
姓名 CHAR(8) NOT NULL,
性別 CHAR(2),
所屬部門 CHAR(10),
PRIMARYKEY KEY (職工編號(hào)));
當(dāng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)建成之后,就可向數(shù)據(jù)庫(kù)中加載數(shù)據(jù),由于數(shù)據(jù)庫(kù)中的數(shù)據(jù)量非常大,為了避免浪費(fèi)大量人力財(cái)力時(shí)間等,通常專門設(shè)計(jì)一個(gè)錄入子系統(tǒng)來(lái)提高效率,滿足用戶的要求。該子系統(tǒng)一般包括數(shù)據(jù)錄入、錄入過(guò)程的數(shù)據(jù)校驗(yàn)、代碼轉(zhuǎn)換、數(shù)據(jù)完整性約束、安全性檢查等功能。
6.數(shù)據(jù)庫(kù)的運(yùn)行與維護(hù)
數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用開發(fā)工作完成之后系統(tǒng)便進(jìn)入運(yùn)行與維護(hù)階段。為保證數(shù)據(jù)庫(kù)系統(tǒng)的安全穩(wěn)定運(yùn)行,需要綜合考慮可能遇到的各種問(wèn)題,指定詳盡的運(yùn)行計(jì)劃和應(yīng)對(duì)措施。任何因素導(dǎo)致系統(tǒng)初選問(wèn)題,都可能給用戶帶來(lái)?yè)p失。
數(shù)據(jù)庫(kù)的運(yùn)行與維護(hù)階段主要任務(wù)有:
6.1維護(hù)數(shù)據(jù)的安全性和數(shù)據(jù)完整性
為保障系統(tǒng)的穩(wěn)定運(yùn)行,必須制定運(yùn)行策略。數(shù)據(jù)庫(kù)的運(yùn)行離不開用戶的訪問(wèn)和操作,安全性策略包括網(wǎng)絡(luò)安全、用戶的權(quán)限管理、設(shè)備的安全及數(shù)據(jù)的安全等方面。按照設(shè)計(jì)階段提供的安全和故障規(guī)范。實(shí)施授權(quán)和設(shè)定密碼,并經(jīng)常檢查系統(tǒng)的安全性和可靠性,實(shí)施備份、恢復(fù)和數(shù)據(jù)重組的任務(wù)。
6.2監(jiān)測(cè)并改變數(shù)據(jù)庫(kù)性能
經(jīng)常對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)空間的狀況和響應(yīng)速度進(jìn)行評(píng)價(jià)分析,確定優(yōu)化和改善的措施,及時(shí)調(diào)整系統(tǒng)的運(yùn)行狀況。
6.3數(shù)據(jù)庫(kù)的維護(hù)
在數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行過(guò)程中,可能會(huì)由于某些原因需要修改數(shù)據(jù)庫(kù)的結(jié)構(gòu),稱為數(shù)據(jù)庫(kù)的重構(gòu),重構(gòu)包括表結(jié)構(gòu)的修改和視圖的修改。還要根據(jù)用戶環(huán)境的擴(kuò)大,適時(shí)的向數(shù)據(jù)庫(kù)增加一些新的數(shù)據(jù)和功能。
篇2
4、數(shù)據(jù)庫(kù)物理設(shè)計(jì):為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu);
篇3
1 數(shù)據(jù)庫(kù)概述
數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的最新技術(shù)。數(shù)據(jù)管理先后經(jīng)過(guò)了人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫(kù)系統(tǒng)階段。在數(shù)據(jù)庫(kù)領(lǐng)域中最常用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷取jP(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)是建立在關(guān)系模型基礎(chǔ)上的。
關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)遵循嚴(yán)格的數(shù)學(xué)基礎(chǔ),它應(yīng)用數(shù)學(xué)方法,主要是集合代數(shù)的概念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,它的邏輯結(jié)構(gòu)可以看做是一張二維表。
2 數(shù)據(jù)庫(kù)設(shè)計(jì)方法及流程
大型數(shù)據(jù)庫(kù)的設(shè)計(jì)是涉及多學(xué)科的綜合性技術(shù)。數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造優(yōu)化的數(shù)據(jù)庫(kù)邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求。數(shù)據(jù)庫(kù)的設(shè)計(jì)應(yīng)符合“三分技術(shù)、七分管理、十二分基礎(chǔ)數(shù)據(jù)”的基本原則。其基本設(shè)計(jì)步驟分為:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)六個(gè)階段。
2.1 需求分析
需求分析是數(shù)據(jù)庫(kù)設(shè)計(jì)的起點(diǎn),簡(jiǎn)單地說(shuō)就是分析用戶的需求。該階段的任務(wù)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)工作狀況,明確用戶的各種需求(包括信息要求、安全性與完整性要求),然后在此基礎(chǔ)上確定新系統(tǒng)的功能。注意新系統(tǒng)必須充分考慮今后可能的擴(kuò)充和改變,以預(yù)留出足夠的可擴(kuò)展空間等。例如:對(duì)于一個(gè)教務(wù)管理系統(tǒng)的設(shè)計(jì),設(shè)計(jì)之初首先應(yīng)了解其工作需求,確定要實(shí)現(xiàn)哪些功能、應(yīng)包含哪些屬性以及未來(lái)可能的擴(kuò)展需求等。
2.2 概念結(jié)構(gòu)設(shè)計(jì)
概念結(jié)構(gòu)設(shè)計(jì)是將需求分析階段所得到的用戶需求抽象為信息結(jié)構(gòu)的過(guò)程,它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。概念結(jié)構(gòu)的主要特點(diǎn)包括:能真實(shí)充分的反應(yīng)現(xiàn)實(shí)世界,易于理解,易于改正,易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。
概念結(jié)構(gòu)設(shè)計(jì)通常有自頂向下、自底向上、逐步擴(kuò)張、混合策略四種方法。概念結(jié)構(gòu)是對(duì)現(xiàn)實(shí)世界的一種抽象,一般包括分類、聚集和概括三種抽象。利用抽象機(jī)制對(duì)數(shù)據(jù)進(jìn)行分類、聚集,形成實(shí)體、實(shí)體的屬性,標(biāo)識(shí)實(shí)體的碼,確定實(shí)體之間的聯(lián)系類型,設(shè)計(jì)分E-R圖是概念結(jié)構(gòu)設(shè)計(jì)的第一步。具體做法包括:選擇局部應(yīng)用,一般以中層數(shù)據(jù)流圖作為設(shè)計(jì)分E-R圖的依據(jù);逐一設(shè)計(jì)分E-R圖,即對(duì)每個(gè)局部應(yīng)用設(shè)計(jì)分E-R圖。最后,將得到的各分E-R圖綜合形成一個(gè)系統(tǒng)的總E-R圖。在教務(wù)管理系統(tǒng)中有學(xué)生、教師、主任等實(shí)體,學(xué)生實(shí)體有包含姓名、學(xué)號(hào)、班級(jí)、成績(jī)等屬性,應(yīng)對(duì)其逐一設(shè)計(jì)E-R圖。
注意在形成總E-R圖的過(guò)程中并不是將各個(gè)分E-R圖進(jìn)行簡(jiǎn)單的合并,因?yàn)樵诤喜⑦^(guò)程中分E-R圖之間會(huì)因?yàn)楦鞣N原因?qū)е略S多不一致的地方,即會(huì)產(chǎn)生沖突現(xiàn)象。應(yīng)先通過(guò)討論、協(xié)商并根據(jù)應(yīng)用的語(yǔ)義解決各類沖突。
2.3 邏輯結(jié)構(gòu)設(shè)計(jì)
邏輯結(jié)構(gòu)設(shè)計(jì)是指將概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。設(shè)計(jì)邏輯結(jié)構(gòu)首先將概念結(jié)構(gòu)轉(zhuǎn)換為關(guān)系、網(wǎng)狀、層次模型。例如,設(shè)計(jì)關(guān)系模型就要根據(jù)E-R圖設(shè)計(jì)二維表,二維表中包括字段名、數(shù)據(jù)類型、長(zhǎng)度、描述等。最后設(shè)計(jì)符合用戶習(xí)慣的外模式。
實(shí)現(xiàn)E-R圖向關(guān)系模型的轉(zhuǎn)換實(shí)際是就是將實(shí)體型、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼,實(shí)體之間的聯(lián)系應(yīng)注意它是一對(duì)一、一對(duì)多還是多對(duì)多的聯(lián)系。形成初步的關(guān)系模型后,然后就是對(duì)模型的優(yōu)化。關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。在對(duì)外模式的設(shè)計(jì)上,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)一般都使用視圖這一功能設(shè)計(jì)更符合局部用戶需要的用戶外模式。
2.4 物理設(shè)計(jì)
物理結(jié)構(gòu)設(shè)計(jì)就是為邏輯結(jié)構(gòu)設(shè)計(jì)階段所得到的數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)。在關(guān)系數(shù)據(jù)庫(kù)中主要是先指定存取方法和存儲(chǔ)結(jié)構(gòu),然后主要對(duì)時(shí)間和空間效率進(jìn)行評(píng)價(jià)。
考慮到數(shù)據(jù)庫(kù)系統(tǒng)是多用戶的共享系統(tǒng),所以應(yīng)建立多條存取路徑以滿足多用戶的多種應(yīng)用要求。常用的存取方法有索引方法、聚簇方法、HASH方法。
2.5 數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)
在數(shù)據(jù)庫(kù)實(shí)施階段,設(shè)計(jì)人員要用RDBMS提供的數(shù)據(jù)定義語(yǔ)言和其他實(shí)用程序?qū)?shù)據(jù)庫(kù)邏輯設(shè)計(jì)和物理設(shè)計(jì)結(jié)果嚴(yán)格描述出來(lái),成為DBMS可以接受的源代碼,再經(jīng)過(guò)調(diào)試產(chǎn)生目標(biāo)模式,最后就可以組織數(shù)據(jù)入庫(kù)了。
在數(shù)據(jù)庫(kù)試運(yùn)行后,由于應(yīng)用環(huán)境、物理存儲(chǔ)等不斷的變化,所以應(yīng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行長(zhǎng)期的維護(hù)工作。對(duì)數(shù)據(jù)庫(kù)的維護(hù)包括:數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù),數(shù)據(jù)庫(kù)的安全性、完整性控制,數(shù)據(jù)庫(kù)性能的監(jiān)督、分析和改造,數(shù)據(jù)庫(kù)的重組織與重構(gòu)造等。
3 數(shù)據(jù)庫(kù)的規(guī)范化及約束條件
由于邏輯結(jié)構(gòu)設(shè)計(jì)并不唯一,對(duì)于任何一種數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)如何構(gòu)造出合適的邏輯結(jié)構(gòu),這就涉及到規(guī)范化問(wèn)題。對(duì)于關(guān)系模式最基本的要求是應(yīng)滿足第一范式,即每一個(gè)分量必須是不可分割的數(shù)據(jù)項(xiàng)。此外,為了消除關(guān)系模式中存在的插入刪除異常,修改復(fù)雜,數(shù)據(jù)冗余等毛病,應(yīng)使關(guān)系模式逐步滿足第二、第三范式、BC范式等。
關(guān)系的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。它包括實(shí)體完整性、參照完整性和用戶自定義的完整性三種完整性約束。其中,實(shí)體完整性要求關(guān)系中的主屬性不能為空;參照完整性是用來(lái)描述實(shí)體與實(shí)體之間聯(lián)系的完整性約束,這兩個(gè)是必不可少的完整性約束條件。此外,數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)應(yīng)用環(huán)境的不同可能會(huì)有某些特殊的約束條件,這就需要用戶自定義完整性。
完整性約束和規(guī)范化是數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)中必不可少的約束條件。只有滿足這些約束條件才能設(shè)計(jì)出完整、高效、可靠的數(shù)據(jù)庫(kù)系統(tǒng)。
總之,在信息化社會(huì),能充分有效地管理和利用各類信息資源,是進(jìn)行科學(xué)研究和決策管理的前提條件。數(shù)據(jù)庫(kù)技術(shù)是管理信息系統(tǒng)、辦公自動(dòng)化系統(tǒng)、決策支持系統(tǒng)等各類信息系統(tǒng)的核心部分。
高思,1993年9月,漢族,河北省石家莊,本科,學(xué)生,計(jì)算機(jī)科學(xué)與技術(shù)。
趙博,1992年6月,漢族,河北省張家口市,本科,學(xué)生,計(jì)算機(jī)科學(xué)與技術(shù)。
參考文獻(xiàn)
[1] 王珊,薩師煊,《數(shù)據(jù)庫(kù)系統(tǒng)概論》,高等教育出版社,2013.12.
[2] 王晴,《新編關(guān)系數(shù)據(jù)庫(kù)與SQL Server 2008》,清華大學(xué)出版社2013.8.
[3] 勝,趙會(huì)東,《SQL Server入門經(jīng)典》,機(jī)械工業(yè)出版社,2103.4.
[4] 李巧君,劉春茂,淺析數(shù)據(jù)庫(kù)設(shè)計(jì)的一般流程和原則.技術(shù)與市場(chǎng).2010.
篇4
1 現(xiàn)狀
現(xiàn)在信息系統(tǒng)的開發(fā)中數(shù)據(jù)庫(kù)的設(shè)計(jì)所在比重越來(lái)越大,防止數(shù)據(jù)庫(kù)不被非法訪問(wèn)、破壞和提高數(shù)據(jù)庫(kù)的性能是數(shù)據(jù)庫(kù)設(shè)計(jì)非常重要的環(huán)節(jié),數(shù)據(jù)庫(kù)安全性設(shè)計(jì)和性能優(yōu)化已被廣大系統(tǒng)開發(fā)者所重視。
2 保護(hù)數(shù)據(jù)庫(kù)安全的措施
2.1 用戶標(biāo)識(shí)與鑒別
在我們使用的計(jì)算機(jī)系統(tǒng)中,安全措施是分很多層次的,用戶標(biāo)識(shí)與鑒別是系統(tǒng)所能夠提供的安全保護(hù)措施中最外面的一層。其方法是由系統(tǒng)為用戶提供一定的方式和規(guī)則讓用戶標(biāo)識(shí)自己的名字或身份,以便每次用戶登陸系統(tǒng)時(shí),對(duì)比數(shù)據(jù)庫(kù)記錄的合法用戶信息,通過(guò)驗(yàn)證方能訪問(wèn)數(shù)據(jù)庫(kù)。具體設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)我們可以創(chuàng)建sys_user表,這些用戶的標(biāo)識(shí)和鑒別信息在sys_user表中保存,用戶每次登錄系統(tǒng)時(shí)應(yīng)用程序都會(huì)對(duì)比用戶所輸入的用戶名和密碼與數(shù)據(jù)庫(kù)這樣就可以確定用戶是否合法。
2.2 存取控制
數(shù)據(jù)庫(kù)安全中最重要的一方面是確保只允許有一定資格的用戶去訪問(wèn)數(shù)據(jù)庫(kù)定的表或者數(shù)據(jù),這主要是通過(guò)數(shù)據(jù)庫(kù)系統(tǒng)的存取控制實(shí)現(xiàn)的。目的是將用戶權(quán)限等級(jí)到數(shù)據(jù)字典中。用戶只訪問(wèn)他有權(quán)訪問(wèn)的數(shù)據(jù)。每當(dāng)用戶進(jìn)行某些數(shù)據(jù)的查詢、插入、修改、刪除等操作時(shí),先對(duì)其進(jìn)行一些檢查,主要檢查這些用戶的操作權(quán)限,若用戶的操作請(qǐng)求超出了或者不符合系統(tǒng)定義的權(quán)限,系統(tǒng)將拒絕用戶執(zhí)行此操作。
比如:管理人員可以被允許訪問(wèn)系統(tǒng)內(nèi)全部的數(shù)據(jù);單個(gè)部門只能訪問(wèn)本部門的在建以及歷史數(shù)據(jù)。
2.3 定義視圖
視圖是從一個(gè)或者多個(gè)表(視圖)中所導(dǎo)出的表,其結(jié)構(gòu)的構(gòu)成和數(shù)據(jù)確立是建立在查詢這些表(視圖)基礎(chǔ)上的。視圖并不是真是存在的表而是一張?zhí)摫恚晥D所對(duì)應(yīng)的數(shù)據(jù)是在視圖所引用的基礎(chǔ)表中存儲(chǔ)的。
在關(guān)系數(shù)據(jù)庫(kù)中,可以根據(jù)實(shí)際的需求為特定的用戶定義特定的視圖。讓表中的一部分?jǐn)?shù)據(jù)只對(duì)一部分特定的用戶可見。如果一些數(shù)據(jù)是保密的,就可以使用視圖把這些數(shù)據(jù)隱藏起來(lái),使沒(méi)有獲得授權(quán)的用戶不能看到這些數(shù)據(jù)。對(duì)數(shù)據(jù)庫(kù)提供安全保護(hù)。
比如某公司有A、B兩個(gè)部門,A部門只能訪問(wèn)本部門的在建、歷史項(xiàng)目數(shù)據(jù);其他項(xiàng)目的數(shù)據(jù)對(duì)其是不可見的。可以為A項(xiàng)目建立“部門人力資源視圖”,從數(shù)據(jù)庫(kù)“部門人力資源信息表”查看A項(xiàng)目的人員情況。
2.4 使用存儲(chǔ)過(guò)程
存儲(chǔ)過(guò)程通過(guò)隔離的方法提高了數(shù)據(jù)庫(kù)的安全性,通過(guò)授權(quán)可以讓用戶只能執(zhí)行存儲(chǔ)構(gòu)成而不能直接訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象。建立一個(gè)存儲(chǔ)過(guò)程是很靈活的,并且可以實(shí)現(xiàn)一定的邏輯處理。
2.5 充分利用系統(tǒng)全局區(qū)域SGA(System Global Area)
我們用Oracle設(shè)計(jì)數(shù)據(jù)庫(kù),當(dāng)我們啟動(dòng)Oracle的數(shù)據(jù)庫(kù)時(shí),系統(tǒng)為了儲(chǔ)存用戶所需要數(shù)據(jù)及Oracle正常運(yùn)行所必備系統(tǒng)信息,首先會(huì)在內(nèi)存內(nèi)規(guī)劃出來(lái)一個(gè)固定的區(qū)域使用。這個(gè)區(qū)域我們稱為系統(tǒng)全局區(qū)(System Global Area),簡(jiǎn)稱SGA。數(shù)據(jù)庫(kù)管理員可以依據(jù)數(shù)據(jù)庫(kù)實(shí)際運(yùn)行狀況根據(jù)需要調(diào)整數(shù)據(jù)庫(kù)系統(tǒng)全局區(qū)(SGA區(qū))的數(shù)據(jù)庫(kù)緩沖區(qū)、共享池和日志緩沖區(qū)的大小。只有合理設(shè)置這些內(nèi)存緩沖區(qū),才可很大加快數(shù)據(jù)的查詢速度,只要所使用的內(nèi)存區(qū)足夠大就可以把絕大多數(shù)的數(shù)據(jù)都存儲(chǔ)在內(nèi)存中,只有那些不活躍的不經(jīng)常使用的數(shù)據(jù),才從磁盤中讀取。這里有一點(diǎn)是需要注意的,SGA區(qū)并不是我們想象的越大越好,SGA區(qū)如果過(guò)大就會(huì)占用操作系統(tǒng)所使用的內(nèi)存從而引起虛擬內(nèi)存的頁(yè)面交換,這樣的話反而會(huì)降低系統(tǒng)運(yùn)行性能, SGA的尺寸不大于物理內(nèi)存的一半是我們所設(shè)計(jì)的原則。
在 Oracle8i 中,SGA 的大小不是手動(dòng)設(shè)置而是由初始化參數(shù)文件內(nèi)的一些參數(shù)所設(shè)定,這其中有不是很方便的地方是每次調(diào)整后必須等重新激活數(shù)據(jù)庫(kù)這才能生效。從Oracle9i 以后,DBA 可以動(dòng)態(tài)配置內(nèi)存的大小;這樣的數(shù)據(jù)庫(kù)技術(shù)我們稱為「dynamicSGA。有了dynamic SGA ,SGA的各組成區(qū)域都可以動(dòng)態(tài)地進(jìn)行規(guī)劃與調(diào)整,而不需先關(guān)閉數(shù)據(jù)庫(kù)。
3 結(jié)束語(yǔ)
數(shù)據(jù)庫(kù)管理員只有認(rèn)真分析Oracle在其運(yùn)行使用過(guò)程中可能出現(xiàn)的各種安全性問(wèn)題,綜合運(yùn)用上面介紹的規(guī)律,Oracle數(shù)據(jù)庫(kù)才能高效、安全、可靠地運(yùn)行。這里還需要指出的是,數(shù)據(jù)庫(kù)的安全是一個(gè)系統(tǒng)工程,涉及到方方面面,我們?cè)O(shè)計(jì)的時(shí)候要考慮到各個(gè)方面綜合分析,不能只根據(jù)一個(gè)特定時(shí)間點(diǎn)的安全情況就斷定數(shù)據(jù)庫(kù)安全運(yùn)行的好與壞。
參考文獻(xiàn):
[1]聶軍.論數(shù)據(jù)庫(kù)安全性設(shè)計(jì)[J].中國(guó)現(xiàn)代教育裝備,2009(01).
篇5
1.2虛擬數(shù)據(jù)庫(kù)的實(shí)現(xiàn)虛擬數(shù)據(jù)庫(kù)操作的底層接口是各種物理數(shù)據(jù)庫(kù)提供的API,虛擬數(shù)據(jù)庫(kù)需要將這些API集中地封裝起來(lái),并根據(jù)用戶的需求選擇使用。封裝結(jié)構(gòu)可以如下所示。示例中僅封裝了幾個(gè)常用的數(shù)據(jù)庫(kù)API,也可以根據(jù)需求追加定義其他API進(jìn)入封裝結(jié)構(gòu),也可以根據(jù)用戶需求隨時(shí)將其他數(shù)據(jù)庫(kù)API封裝進(jìn)來(lái)。
2數(shù)據(jù)下發(fā)過(guò)程
2.1數(shù)據(jù)正常下發(fā)過(guò)程(1)底層網(wǎng)元首先向上層網(wǎng)元上報(bào)數(shù)據(jù)資源審計(jì)請(qǐng)求,并將底層網(wǎng)元的數(shù)據(jù)標(biāo)識(shí)(通常為MD5校驗(yàn)碼)帶給上層網(wǎng)元。(2)計(jì)算底層網(wǎng)元數(shù)據(jù)審計(jì)標(biāo)識(shí),判斷底層數(shù)據(jù)是否與上層網(wǎng)元數(shù)據(jù)一致,如果一致,發(fā)送數(shù)據(jù)審計(jì)結(jié)果正確給底層網(wǎng)元,否則發(fā)送數(shù)據(jù)不一致給底層網(wǎng)元。(3)根據(jù)結(jié)果判斷,如果無(wú)需同步,向上層網(wǎng)元發(fā)送數(shù)據(jù)審計(jì)流程結(jié)束,如果需要同步,向上層網(wǎng)元發(fā)送數(shù)據(jù)請(qǐng)求,數(shù)據(jù)請(qǐng)求中包含請(qǐng)求數(shù)據(jù)表,以及數(shù)據(jù)指針,用于標(biāo)識(shí)上次請(qǐng)求到的數(shù)據(jù)位置。(4)按照請(qǐng)求數(shù)據(jù),從數(shù)據(jù)庫(kù)中取出數(shù)據(jù),以及數(shù)據(jù)指針,封裝進(jìn)數(shù)據(jù)下發(fā)包。(5)數(shù)據(jù)循環(huán)向下層網(wǎng)元發(fā)送,直到底層網(wǎng)元不在請(qǐng)求數(shù)據(jù)為止,同時(shí)底層網(wǎng)元上報(bào)數(shù)據(jù)審計(jì)流程結(jié)束,完成數(shù)據(jù)下發(fā)過(guò)程。
2.2數(shù)據(jù)異常下發(fā)過(guò)程(1)底層網(wǎng)元在無(wú)法打開本地的數(shù)據(jù)庫(kù)情況下,判斷為本地?cái)?shù)據(jù)庫(kù)已經(jīng)損壞,向上層網(wǎng)元發(fā)送數(shù)據(jù)庫(kù)崩潰通知。(2)生成下層網(wǎng)元的數(shù)據(jù)庫(kù),根據(jù)網(wǎng)元類型,通過(guò)FTP向底層網(wǎng)元發(fā)送數(shù)據(jù)庫(kù)文件或者數(shù)據(jù)文件。(3)底層網(wǎng)元接收完成數(shù)據(jù)庫(kù)后,打開數(shù)據(jù)庫(kù),上報(bào)數(shù)據(jù)資源審計(jì)請(qǐng)求。
篇6
0 引 言
啟動(dòng)VS 2010集成開發(fā)環(huán)境[1],鏈接Excel電子表格,以程序方式將Excel電子表格中的數(shù)據(jù)讀出,定義一個(gè)中間件Dataset數(shù)據(jù)集,將取到的數(shù)據(jù)緩存在內(nèi)存中的一個(gè)臨時(shí)存儲(chǔ)區(qū),鏈接各種數(shù)據(jù)庫(kù),構(gòu)造插入數(shù)據(jù)記錄的程序代碼,打開數(shù)據(jù)庫(kù)鏈接,將中間件Dataset數(shù)據(jù)集中暫存的數(shù)據(jù)永久插入數(shù)據(jù)庫(kù)中,關(guān)閉數(shù)據(jù)庫(kù)鏈接[2]。
1 導(dǎo)入Office模塊
VS 2010加強(qiáng)了對(duì)Office的支持,給開發(fā)帶來(lái)了極大的靈活性,增強(qiáng)了應(yīng)用程序與Office的交互,并且能夠在很大程度上精簡(jiǎn)代碼。
2 鏈接數(shù)據(jù)源
數(shù)據(jù)源泛指各種不同位置上的數(shù)據(jù)庫(kù)、各類數(shù)據(jù)文件,每種數(shù)據(jù)源都有自己不同的鏈接規(guī)范,VS 2010按這些不同規(guī)范都組織在一起,為編程人員提供了一個(gè)統(tǒng)一的操作接口,編程人員可根據(jù)自己應(yīng)用程序所用不同數(shù)據(jù)源,而選取不同的鏈接方式和參數(shù)。
在這里把Excel表數(shù)據(jù)導(dǎo)入MySQL數(shù)據(jù)庫(kù),因此具體論述這種數(shù)據(jù)源的鏈接方式,其他數(shù)據(jù)庫(kù)原理相同。
2.1 鏈接Excel電子表格文件
2.2 鏈接SQL Server數(shù)據(jù)庫(kù)
VS 2010帶有一個(gè)輕型的SQL 2008數(shù)據(jù)庫(kù)系統(tǒng)[4],首先用這個(gè)系統(tǒng)建立一個(gè)SQL數(shù)據(jù)庫(kù)abc.mdf,在數(shù)據(jù)庫(kù)中建立一張二維數(shù)據(jù)表文件,取名為temp1。在VS 2010中的操作路徑是:在項(xiàng)目上右擊鼠標(biāo)在快捷菜單中先“添加”菜單項(xiàng)在下一級(jí)級(jí)聯(lián)菜單中選“新建項(xiàng)”菜單項(xiàng)打開添加新項(xiàng)對(duì)話框,選擇“數(shù)據(jù)”選項(xiàng)卡在“數(shù)據(jù)”選項(xiàng)卡內(nèi)選擇“基于服務(wù)的數(shù)據(jù)庫(kù)”項(xiàng),填好自己的數(shù)據(jù)庫(kù)名,本例用abc.mdf。
3 將數(shù)據(jù)永久存入數(shù)據(jù)庫(kù)
下一步要把中間件DataSet中的臨時(shí)數(shù)據(jù)永久存入數(shù)據(jù)庫(kù)中[5]。根據(jù)2.2節(jié)所述內(nèi)容,數(shù)據(jù)庫(kù)已經(jīng)連通,庫(kù)結(jié)構(gòu)也已經(jīng)建好,并與Excel電子表格數(shù)據(jù)結(jié)構(gòu)一致。為了使用SQL數(shù)據(jù)庫(kù),需要在本項(xiàng)目的名字空間之上加入引用語(yǔ)句:using System.Data.SqlClient,程序代碼如下:
4 結(jié) 語(yǔ)
在科研工作中,常會(huì)遇到海量數(shù)據(jù)處理的問(wèn)題。這些數(shù)據(jù)通常由采集卡保存在Excel中,如果能夠方便地輸入數(shù)據(jù)庫(kù)中,可以幫助科研工作者完成很多重復(fù)性、規(guī)律性的工作,節(jié)約人力,提高效率,便于后續(xù)的數(shù)據(jù)處理和數(shù)據(jù)分析[7]。程序開發(fā)者也可以針對(duì)具體的應(yīng)用,將Office開發(fā)做成一些類或組件,增強(qiáng)軟件重用性,更加提高開發(fā)效率。
參考文獻(xiàn)
[1] ROBINSON S.C#高級(jí)編程指南[M].北京:清華大學(xué)出版社,2009.
[2] 羅斌.Visual C#.NET精彩編程實(shí)例集錦[M].北京:中國(guó)水利水電出版社,2009.
[3] PETZOLD C.Microsoft C# Windows程序設(shè)計(jì)(上冊(cè))[M].北京:北京大學(xué)出版社,2009.
[4] 王晟.Visual C#.NET數(shù)據(jù)庫(kù)開發(fā)經(jīng)典案例解析[M].北京:清華大學(xué)出版社,2010.
[5] PETZOLD C. Microsoft C# Windows程序設(shè)計(jì)(下冊(cè))[M].北京:北京大學(xué)出版社,2009.
篇7
城市現(xiàn)有規(guī)劃測(cè)繪數(shù)據(jù)資源存在以下六個(gè)方面的問(wèn)題:一是數(shù)據(jù)資源分散、未能有效利用;二是數(shù)據(jù)內(nèi)容單一;三是數(shù)據(jù)格式標(biāo)準(zhǔn)不統(tǒng)一;四是更新機(jī)制無(wú)法建立;五是組織管理機(jī)構(gòu)不健全;六是投資渠道單一而不穩(wěn)定,重復(fù)建設(shè)嚴(yán)重。龍巖市城鄉(xiāng)規(guī)劃局測(cè)繪服務(wù)站在城市信息化建設(shè)過(guò)程中,碰到以上一樣的問(wèn)題。為此,龍巖學(xué)院數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院和龍巖市城鄉(xiāng)規(guī)劃局測(cè)繪服務(wù)站共同合作完成基于ArcGIS龍巖規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)建設(shè)研究項(xiàng)目(福建省教育廳項(xiàng)目JB12209)。通過(guò)該項(xiàng)目建設(shè),基本上解決了龍巖規(guī)劃測(cè)繪數(shù)據(jù)統(tǒng)一格式采集、AutoCAD數(shù)據(jù)格式和ArcGIS平臺(tái)數(shù)據(jù)庫(kù)統(tǒng)一建庫(kù)問(wèn)題。
本文針對(duì)項(xiàng)目建設(shè)過(guò)程中規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)設(shè)計(jì)問(wèn)題進(jìn)行研究,詳細(xì)分析了規(guī)劃測(cè)繪數(shù)據(jù)組成要素,把幾何網(wǎng)絡(luò)模型和邏輯網(wǎng)絡(luò)模型相結(jié)合構(gòu)建了數(shù)據(jù)庫(kù)模型,基于ArcGIS平臺(tái)和AutoCAD二次開發(fā)環(huán)境,對(duì)規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)進(jìn)行了設(shè)計(jì)。
本項(xiàng)目建設(shè)采用ArcSDE(ArcGIS的空間數(shù)據(jù)引擎)+MySQL(Oracle公司開放源代碼數(shù)據(jù)庫(kù)管理系統(tǒng))存儲(chǔ)空間及其屬性數(shù)據(jù),基于ArcGIS平臺(tái)和AutoCAD2010二次開發(fā),研究了規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)設(shè)計(jì)的技術(shù)路線、模型設(shè)計(jì)方法和注意事項(xiàng)。[1]
2 規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)設(shè)計(jì)的原則和分類
2.1 規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)設(shè)計(jì)的原則
對(duì)城市建設(shè)各部門建立統(tǒng)一有效的管理制度,按統(tǒng)一的標(biāo)準(zhǔn)收集、整理和分析各部門在行政辦公過(guò)程中產(chǎn)生的各種空間信息,建成一個(gè)內(nèi)容涵蓋從空中到地表,再到地下包括地形、地貌、地下綜合管線、工程地質(zhì)、建筑物紋理、道路紋理等全方位的,多比例尺、多分辨率、多時(shí)相、多種數(shù)據(jù)來(lái)源的城市三維立體空間數(shù)據(jù)庫(kù),并建立有效的數(shù)據(jù)更新機(jī)制。主要原則總結(jié)為以下六點(diǎn):1)標(biāo)準(zhǔn)化原則,2)數(shù)據(jù)共享原則3)先進(jìn)性原則,4)實(shí)用性原則,5)安全性原則,6)可擴(kuò)展性原則。
2.2 規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)設(shè)計(jì)的分類
規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)和城市基礎(chǔ)空間數(shù)據(jù)庫(kù)一樣,也分為基本空間數(shù)據(jù)庫(kù)和外延空間數(shù)據(jù)庫(kù)兩個(gè)部分。[2]
1)基本空g數(shù)據(jù)庫(kù)設(shè)計(jì)
基本空間數(shù)據(jù)庫(kù)設(shè)計(jì)是規(guī)劃測(cè)繪應(yīng)用系統(tǒng)的空間定位參考基準(zhǔn),目標(biāo)是建成一個(gè)多種表現(xiàn)形式、多數(shù)據(jù)源、多種比例尺、多分辨率、多時(shí)相、多種數(shù)據(jù)組織形式的綜合數(shù)據(jù)庫(kù)。其內(nèi)容包括數(shù)字線劃地形數(shù)據(jù)庫(kù)、數(shù)字高程模型數(shù)據(jù)庫(kù)、數(shù)字正射影像數(shù)據(jù)庫(kù)和數(shù)字柵格數(shù)據(jù)庫(kù)等。基本空間數(shù)據(jù)庫(kù)的建設(shè)投資巨大,最佳方案分期逐步建設(shè)。
2)外延空間數(shù)據(jù)庫(kù)設(shè)計(jì)
外延空間數(shù)據(jù)庫(kù)是基本空間數(shù)據(jù)庫(kù)的補(bǔ)充,如果說(shuō)基本空間數(shù)據(jù)庫(kù)是城市空間信息的骨架,外延空間數(shù)據(jù)庫(kù)則是城市信息化建設(shè)的靈魂。以基本空間數(shù)據(jù)庫(kù)為基礎(chǔ),從城市建設(shè)部門(特別是城市規(guī)劃部門)的行政審批流程中收集和整理現(xiàn)狀建筑、土地利用、房地產(chǎn)、地下綜合管線和工程地質(zhì)等空間信息,作為基本空間數(shù)據(jù)庫(kù)的補(bǔ)充。外延空間數(shù)據(jù)庫(kù)設(shè)計(jì)的主要內(nèi)容包括現(xiàn)狀建筑數(shù)據(jù)庫(kù)、地名數(shù)據(jù)庫(kù)、現(xiàn)狀路網(wǎng)數(shù)據(jù)庫(kù)、工程地質(zhì)數(shù)據(jù)庫(kù)和地下綜合管網(wǎng)數(shù)據(jù)庫(kù)等。
3 規(guī)劃測(cè)繪數(shù)據(jù)基本要素和數(shù)據(jù)結(jié)構(gòu)模型分析
3.1 規(guī)劃測(cè)繪數(shù)據(jù)基本要素分析
基于AutoCAD平臺(tái)DWG格式數(shù)據(jù)信息主要是通過(guò)矢量圖來(lái)表示,其屬性只能通過(guò)標(biāo)注表示,不能夠進(jìn)行空間分析;基于ArcGIS平臺(tái)SHP數(shù)據(jù)格式信息屬性能夠以屬性表的形式存儲(chǔ),圖形對(duì)應(yīng)屬性,能夠通過(guò)空間數(shù)據(jù)庫(kù)對(duì)規(guī)劃測(cè)繪數(shù)據(jù)進(jìn)行管理、操作和GIS空間分析等。
上述兩種數(shù)據(jù)本質(zhì)上的區(qū)別在于:DWG數(shù)據(jù)格式主要是以圖面的形式表現(xiàn)規(guī)劃測(cè)繪數(shù)據(jù)名稱、層數(shù)、面積等屬性數(shù)據(jù),不利于對(duì)圖形進(jìn)行查詢和分析,而SHP格式數(shù)據(jù)是把AutoCAD原圖面上的規(guī)劃測(cè)繪各屬性數(shù)據(jù)轉(zhuǎn)變?yōu)橥ㄟ^(guò)空間數(shù)據(jù)庫(kù)管理和查詢。AutoCAD支持的DWG格式數(shù)據(jù)信息主要用作規(guī)劃測(cè)繪數(shù)據(jù)成果的表現(xiàn),而規(guī)劃測(cè)繪管理信息系統(tǒng)中數(shù)據(jù)不僅可以表現(xiàn)城市規(guī)劃測(cè)繪成果,還可以支持疊加分析及統(tǒng)計(jì)分析等GIS功能分析 。因此,建設(shè)數(shù)據(jù)庫(kù)之前需要對(duì)DWG格式支持的數(shù)據(jù)進(jìn)行必要的取舍和處理。
3.2 規(guī)劃測(cè)繪數(shù)據(jù)結(jié)構(gòu)模型分析
規(guī)劃測(cè)繪數(shù)據(jù)可以從地理角度和網(wǎng)絡(luò)角度兩個(gè)方面認(rèn)識(shí)。從地理角度看,應(yīng)能使規(guī)劃測(cè)繪數(shù)據(jù)本身符合空間實(shí)體要素表現(xiàn)和數(shù)據(jù)庫(kù)管理的需求;從網(wǎng)絡(luò)角度看,則需要明確各數(shù)據(jù)之間的連通關(guān)系。若按原有AutoCAD格式中的表現(xiàn)方式,規(guī)劃信息易產(chǎn)生邏輯上的混亂。
一個(gè)幾何網(wǎng)絡(luò)總是與一個(gè)邏輯網(wǎng)絡(luò)相聯(lián)系,在編輯幾何網(wǎng)絡(luò)要素的同時(shí),相應(yīng)的邏輯網(wǎng)絡(luò)元素會(huì)自動(dòng)更新。在幾何網(wǎng)絡(luò)中的網(wǎng)絡(luò)要素和邏輯網(wǎng)絡(luò)的元素間有一對(duì)一和一對(duì)多的關(guān)聯(lián)關(guān)系。一個(gè)網(wǎng)絡(luò)要素類是以下四種網(wǎng)絡(luò)要素類型之一的集合:簡(jiǎn)單交匯點(diǎn)要素、復(fù)雜交匯點(diǎn)要素、簡(jiǎn)單邊線要素、復(fù)雜邊線要素。幾何網(wǎng)絡(luò)中的簡(jiǎn)單邊線要素與邏輯網(wǎng)絡(luò)中的一條邊元素相聯(lián)系,幾何網(wǎng)絡(luò)中的復(fù)雜邊線要素與邏輯網(wǎng)絡(luò)中多個(gè)邊元素相對(duì)應(yīng),同時(shí),這些邊必須是一個(gè)鏈狀結(jié)構(gòu)。當(dāng)對(duì)一個(gè)幾何網(wǎng)絡(luò)要素進(jìn)行添加或刪除時(shí),系統(tǒng)也會(huì)自動(dòng)添加或刪除相應(yīng)的網(wǎng)絡(luò)元素。在進(jìn)行網(wǎng)絡(luò)分析時(shí),系統(tǒng)會(huì)向邏輯網(wǎng)絡(luò)傳遞分析方案,幾何網(wǎng)絡(luò)和邏輯網(wǎng)絡(luò)是密不可分的。
4 規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)設(shè)計(jì)的技術(shù)路線、模型設(shè)計(jì)方法
4.1 技術(shù)路線
基于ArcGIS平臺(tái)設(shè)計(jì)規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)同樣也遵循普通數(shù)據(jù)庫(kù)設(shè)計(jì)的三個(gè)階段, 即概念模型、邏輯模型和物理模型的設(shè)計(jì)。
1) 概念模型設(shè)計(jì)階段應(yīng)根據(jù)規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)的特點(diǎn)和ArcGIS平臺(tái)的內(nèi)部結(jié)構(gòu), 確定各地圖要素所屬的專題圖層, 并對(duì)要素的類型、屬性、相互之間的聯(lián)系和約束行為進(jìn)行簡(jiǎn)單描述[6]。可利用實(shí)體- 關(guān)系模型或添加了象形圖的擴(kuò)展E-R模型表示要素類的組織結(jié)構(gòu)及其關(guān)聯(lián)關(guān)系。
2) 邏輯模型設(shè)計(jì)應(yīng)根據(jù)概念設(shè)計(jì)階段定義的數(shù)據(jù)類型、屬性及其關(guān)系和行為, 確定各地理要素的描述方式。①將離散的矢量數(shù)據(jù)組織到要素?cái)?shù)據(jù)集、要素類或關(guān)系類中, 影像數(shù)據(jù)和表面數(shù)據(jù)組織到柵格數(shù)據(jù)集或柵格目錄中, 地圖說(shuō)明信息組織到注記類中;②定義要素類和表格應(yīng)包含屬性字段, 并指定各字段的屬性域、缺省值、精度和范圍等特性;③根據(jù)地理要素編碼標(biāo)準(zhǔn)恰當(dāng)應(yīng)用子類控制要素的行為, 設(shè)定要素間的關(guān)聯(lián)規(guī)則以增強(qiáng)要素的空間一致性。在邏輯模型設(shè)計(jì)階段, 可利用面向?qū)ο蟮墓I(yè)化標(biāo)準(zhǔn)建模語(yǔ)言UML, 將E-R模型中的實(shí)體、屬性和聯(lián)系分別映射成UML的類、對(duì)象和關(guān)系, 組成UML靜態(tài)結(jié)構(gòu)圖。
3) 物理模型設(shè)計(jì)可利用現(xiàn)有的軟件工程技術(shù),借助Case工具將數(shù)據(jù)庫(kù)的邏輯模型直接轉(zhuǎn)換成物理模型, 從而避免物理模型設(shè)計(jì)階段手工建模的差錯(cuò), 提高數(shù)據(jù)庫(kù)的設(shè)計(jì)效率。
4.2 模型設(shè)計(jì)方法
1) 借助Microsoft Visio、Rational Rose或Oracle Designer 2000等Case工具設(shè)計(jì)UML類圖。ArcGIS中要素?cái)?shù)據(jù)集、要素類、表格、幾何網(wǎng)絡(luò)和關(guān)系等元素可用UMLCD中的包、類和關(guān)聯(lián)來(lái)表示。最后將設(shè)計(jì)好的UMLCD輸出到XMI文件或Microsoft Repository中。
2) 在Case工具中對(duì)生成的XMI文件或Repository進(jìn)行語(yǔ)意上的差錯(cuò)處理, 在確保沒(méi)有錯(cuò)誤報(bào)告的情況下可利用ArcCatalog提供的Case子系統(tǒng)從XMI文件或Repository生成ArcGIS方案。
3) 因橄鐘械Case工具還無(wú)法對(duì)ArcGIS方案定義空間參考和創(chuàng)建拓?fù)鋄7], 可利用ArcCatalog數(shù)據(jù)庫(kù)管理工具對(duì)Case工具生成的ArcGIS方案定義空間參考并創(chuàng)建拓?fù)洌?同時(shí)對(duì)Case工具定義的部分關(guān)聯(lián)關(guān)系及整個(gè)數(shù)據(jù)庫(kù)方案作進(jìn)一步的提煉和擴(kuò)展, 以適應(yīng)規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)的特殊需求。
4.3 主要成果展示
分為三部分,一是數(shù)據(jù)庫(kù)系統(tǒng)啟動(dòng)界面,二是建筑樓層查詢子系統(tǒng),三是市區(qū)三維地形圖查詢。詳細(xì)情況在此省略。
5 總結(jié)與展望
以規(guī)劃部門對(duì)信息管理的需求,通過(guò)對(duì)規(guī)劃測(cè)繪數(shù)據(jù)的基本要素和數(shù)據(jù)結(jié)構(gòu)的模型的研究,基本完成了基于ArcGIS平臺(tái)和AutoCAD二次開發(fā)環(huán)境對(duì)龍巖城鄉(xiāng)規(guī)劃測(cè)繪數(shù)據(jù)庫(kù)的設(shè)計(jì)方案,該設(shè)計(jì)方案基本實(shí)現(xiàn)了規(guī)劃部門所要求的功能和需求。但真要付之實(shí)踐應(yīng)用,至少還需滿足以下三個(gè)條件:一是資金投入,不斷完善基本空間數(shù)據(jù)庫(kù)和外延空間數(shù)據(jù)庫(kù)的建庫(kù)工作;二是提升相關(guān)工作人員的技術(shù)水平;三是必須有強(qiáng)力部門牽頭協(xié)調(diào)組織,制定相應(yīng)技術(shù)標(biāo)準(zhǔn)和規(guī)范,協(xié)調(diào)各部門工作。
參考文獻(xiàn)
[1] 邱建康. 基于AutoCAD的ArcGIS空間數(shù)據(jù)庫(kù)互操作實(shí)現(xiàn)[J].湖北:城市勘測(cè),2010(5):54-56.
[2] 熊勤芳,何一明.論城市建設(shè)基礎(chǔ)空間數(shù)據(jù)庫(kù)建設(shè)[J].北京:中國(guó)測(cè)繪,2007(3):80-83.
篇8
數(shù)據(jù)庫(kù)是承載數(shù)據(jù)的載體,存放和提供數(shù)據(jù)的“庫(kù)房”,為我們進(jìn)行數(shù)據(jù)查詢、修改、管理等操作提供便利。建立數(shù)據(jù)庫(kù)可以幫我們提升工作效率,通常適合較為龐大的系統(tǒng)數(shù)據(jù)存儲(chǔ)。
例如,國(guó)網(wǎng)新疆電力目前覆蓋全疆14個(gè)地州(市),涉及用戶達(dá)2000多萬(wàn)人口,管理40多個(gè)部門和下屬單位。這么復(fù)雜的機(jī)構(gòu)需要高效穩(wěn)定的IT系統(tǒng)支撐國(guó)網(wǎng)新疆電力公司。國(guó)網(wǎng)新疆電力目前有多個(gè)IT系統(tǒng),比較重要的系統(tǒng)有綜合管理數(shù)據(jù)庫(kù)、營(yíng)銷系統(tǒng)數(shù)據(jù)庫(kù)、ODS系統(tǒng)、財(cái)務(wù)系統(tǒng)。這么多系統(tǒng)數(shù)據(jù)日增長(zhǎng)量超過(guò)2TB,這需要有效的優(yōu)化手段解決數(shù)據(jù)庫(kù)的性能問(wèn)題。
目前通用的方式為采用Oracle數(shù)據(jù)庫(kù)來(lái)對(duì)這些數(shù)據(jù)進(jìn)行存儲(chǔ)管理,面對(duì)廠里人員的變動(dòng)則需要進(jìn)行數(shù)據(jù)更新,隨著系統(tǒng)長(zhǎng)期運(yùn)行、用戶數(shù)和數(shù)據(jù)量不斷增大以及業(yè)務(wù)不斷變化,系統(tǒng)運(yùn)行期間就會(huì)涉及到數(shù)據(jù)庫(kù)優(yōu)化。本文就從Oracle數(shù)據(jù)庫(kù)優(yōu)化進(jìn)行簡(jiǎn)單的討論,針對(duì)在優(yōu)化過(guò)程中的一些注意事項(xiàng)、優(yōu)化事項(xiàng)進(jìn)行分析,為我們?cè)诠ぷ髦心軌蚴炀毜恼莆諆?yōu)化技術(shù)。
二、Oracle數(shù)據(jù)庫(kù)介紹
Oracle數(shù)據(jù)庫(kù),英文全名為Oracle Data-base,又被稱為Oracle RDBMS或者直接簡(jiǎn)稱為Oracle。目前最流行的B/S和C/S架構(gòu)的系統(tǒng)中均應(yīng)用到了數(shù)據(jù)庫(kù),由于它們的架構(gòu)設(shè)計(jì)中都具有自己的服務(wù)器,而數(shù)據(jù)存在這些服務(wù)器中,則需要數(shù)據(jù)庫(kù)對(duì)其進(jìn)行儲(chǔ)存。目前對(duì)于數(shù)據(jù)庫(kù)的使用越來(lái)越廣泛,隨著人們對(duì)于數(shù)據(jù)庫(kù)的研究越來(lái)越深入,逐漸出現(xiàn)了數(shù)據(jù)庫(kù)云,將計(jì)算機(jī)的云計(jì)算應(yīng)用到了數(shù)據(jù)庫(kù)之中,這樣使得多個(gè)數(shù)據(jù)庫(kù)聯(lián)合組成了更加龐大的數(shù)據(jù)庫(kù)網(wǎng),它們之間實(shí)現(xiàn)了數(shù)據(jù)共享,因此對(duì)于知識(shí)、信息的涵蓋將會(huì)變得更廣。云計(jì)算的實(shí)現(xiàn),帶給計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展巨大的空間,使得將世界的計(jì)算機(jī)聯(lián)合起來(lái)形成一層一層的網(wǎng)絡(luò),與此同時(shí)也將數(shù)據(jù)庫(kù)采用云管理,為數(shù)據(jù)庫(kù)的發(fā)展提供更加廣闊的空間[1]。
三、數(shù)據(jù)庫(kù)優(yōu)化方案介紹
多數(shù)研究者在面對(duì)Oracle數(shù)據(jù)庫(kù)優(yōu)化課題時(shí),都會(huì)存在這樣的思想誤區(qū),即認(rèn)為只有在系統(tǒng)出現(xiàn)運(yùn)行問(wèn)題時(shí)才需要進(jìn)行系統(tǒng)性能調(diào)整。而事實(shí)上,對(duì)Oracle數(shù)據(jù)庫(kù)的性能進(jìn)行調(diào)整和優(yōu)化是一個(gè)漫長(zhǎng)而復(fù)雜的過(guò)程,是貫穿于整個(gè)系統(tǒng)運(yùn)行周期的。因此,在進(jìn)行系統(tǒng)性能優(yōu)化時(shí),應(yīng)按照以下流程來(lái)進(jìn)行:對(duì)系統(tǒng)各功能組件和硬件設(shè)備進(jìn)行正確的配置對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行調(diào)整對(duì)SQL語(yǔ)句進(jìn)行優(yōu)化調(diào)整參數(shù)進(jìn)行磁盤I/O與服務(wù)器網(wǎng)絡(luò)性能的調(diào)整。以上流程是一個(gè)密切聯(lián)系的整體,只有保證嚴(yán)格按照這一流程進(jìn)行Oracle數(shù)據(jù)庫(kù)系統(tǒng)性能調(diào)整,才能確保系統(tǒng)的性能達(dá)到最佳狀態(tài),真正實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)的優(yōu)化設(shè)計(jì)。
圖1所示是進(jìn)行數(shù)據(jù)庫(kù)優(yōu)化時(shí)需要考慮的內(nèi)容。優(yōu)化是數(shù)據(jù)庫(kù)體系的延續(xù),數(shù)據(jù)庫(kù)的結(jié)構(gòu)和運(yùn)行的機(jī)制決定了數(shù)據(jù)庫(kù)的優(yōu)化模式,所以說(shuō)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)是優(yōu)化的基石。如果對(duì)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)有深刻的理解,優(yōu)化便水到渠成。反過(guò)來(lái),通過(guò)優(yōu)化數(shù)據(jù)庫(kù),可以更深入的了解數(shù)據(jù)庫(kù)體系結(jié)構(gòu)。數(shù)據(jù)庫(kù)各個(gè)方面都有優(yōu)化的余地,主要的優(yōu)化方向分為實(shí)例的優(yōu)化、數(shù)據(jù)庫(kù)的優(yōu)化、SQL語(yǔ)句的優(yōu)化。其中SQL優(yōu)化是重中之重。
對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化,應(yīng)該遵循優(yōu)化SQL查詢語(yǔ)句――索引優(yōu)化――合理分布數(shù)據(jù)庫(kù)物理文件――分析及優(yōu)化Oracle內(nèi)存分配原則。具體如下:
(一)SQL查詢優(yōu)化
SQL查詢,主要針對(duì)數(shù)據(jù)庫(kù)的信息進(jìn)行搜索,尋找自己的需求信息。數(shù)據(jù)庫(kù)內(nèi)的一切操作都是經(jīng)由SQL語(yǔ)句進(jìn)行執(zhí)行,因此SQL語(yǔ)句的執(zhí)行效率很大程度上決定了Oracle數(shù)據(jù)庫(kù)的性能。進(jìn)行SQL語(yǔ)句的優(yōu)化,首先應(yīng)該構(gòu)建原始數(shù)據(jù)庫(kù)BASICPROJECT,其中包含了與生產(chǎn)數(shù)據(jù)庫(kù)基本一致的數(shù)據(jù)庫(kù)對(duì)象;其次,應(yīng)該充分的利用SQL Trace、awrsqrpt、sqlplus中的autotrace、explain等跟蹤技術(shù)對(duì)語(yǔ)句進(jìn)行優(yōu)化重寫 [4]。我們?cè)诮QL語(yǔ)句的時(shí)候要盡量的避免出現(xiàn)相關(guān)子查詢,以及選擇語(yǔ)句的使用,這樣就能從數(shù)據(jù)建立的時(shí)候減輕查詢的負(fù)擔(dān)。針對(duì)聯(lián)合查詢連接遇到5張或者5張表單以上的選擇時(shí),建議采用優(yōu)化器對(duì)SQL語(yǔ)句中所包含的表單進(jìn)行物理大小排序,建立起一定的查詢順序,來(lái)提升查詢的效率。
(二)索引優(yōu)化分析
索引技術(shù)是提升檢索速度和系統(tǒng)性能的主要技術(shù),對(duì)于數(shù)據(jù)查詢來(lái)說(shuō),合理使用索引可以極大的提高查詢的命中率和效率。索引是將表中數(shù)據(jù)的邏輯值映射到rowid中,所以在查詢時(shí)使用索引功能能夠快速的定位出查詢數(shù)據(jù)的物理地址,從而找出數(shù)據(jù)。
索引對(duì)數(shù)據(jù)庫(kù)的性能影響是巨大的,但索引不是萬(wàn)能的,數(shù)據(jù)庫(kù)對(duì)索引的使用是有選擇的,我們可以強(qiáng)制使用索引,也可以強(qiáng)制不使用索引。一般的情況下數(shù)據(jù)庫(kù)會(huì)自動(dòng)的判斷是否使用索引,除非你明確的在SQL語(yǔ)句中指定。
所有索引的原形都是樹狀結(jié)構(gòu),由根、枝干和葉子組成。根和枝干中存放鍵值范圍的導(dǎo)引指針,葉子中存放的是條目,條目中存放的是索引的鍵值和該數(shù)據(jù)行ROWID。索引的葉子間通過(guò)指針橫向的聯(lián)系在一起,前一個(gè)葉子指向下一片葉子,這樣的目的是數(shù)據(jù)庫(kù)在找到一個(gè)葉子后就可以查找相臨近的葉子,而不必再次去查找根和枝干的數(shù)據(jù)塊。
有的DBA發(fā)現(xiàn)了索引并不能提高查詢速度,反而對(duì)整個(gè)數(shù)據(jù)庫(kù)的性能有較大的不良影響,出現(xiàn)該問(wèn)題主要是和SGA數(shù)據(jù)管理方式有關(guān)。當(dāng)Oracle進(jìn)行數(shù)據(jù)高速緩存管理時(shí),普通數(shù)據(jù)的駐留權(quán)限要比索引數(shù)據(jù)的權(quán)限要低,當(dāng)兩者在空間上競(jìng)爭(zhēng)時(shí),索引數(shù)據(jù)往往會(huì)駐留;如果是大型表建立索引時(shí),索引數(shù)據(jù)占了大部分的緩存空間,使Oracle只能通過(guò)磁盤讀寫來(lái)獲得數(shù)據(jù),所以在大型表分區(qū)后,伴隨索引也得進(jìn)行相應(yīng)分區(qū),索引的使用應(yīng)該有一個(gè)指定的合適路徑[5]。
(三)分布表空間
在整個(gè)數(shù)據(jù)庫(kù)工作過(guò)程中,各相關(guān)進(jìn)程會(huì)將數(shù)據(jù)庫(kù)中的事務(wù)分別寫到聯(lián)機(jī)日志文件、歸檔日志文件和數(shù)據(jù)文件當(dāng)中,這會(huì)不可避免的造成這三類文件之間的I/O沖突;并且歸檔日志文件因其特殊性,無(wú)法同系統(tǒng)、業(yè)務(wù)和索引這些表空間共存,這就需要一個(gè)獨(dú)立的磁盤來(lái)完成合理分布表空間的功能,對(duì)各項(xiàng)數(shù)據(jù)進(jìn)行合理的分配,以避免文件之間的I/O沖突。
(四)數(shù)據(jù)緩沖區(qū)的調(diào)整分析
數(shù)據(jù)庫(kù)的緩沖區(qū)是SGA不可缺少的組成部分,它的作用是對(duì)磁盤的讀入數(shù)據(jù)進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)為用戶共享。如果需要修改數(shù)據(jù)時(shí),首先要從數(shù)據(jù)文件中將數(shù)據(jù)讀取出來(lái)存儲(chǔ)在數(shù)據(jù)緩沖區(qū);如果用戶對(duì)數(shù)據(jù)緩沖區(qū)的設(shè)置太小,那么數(shù)據(jù)的操作性能將會(huì)受到很大的影響。用戶越多,該問(wèn)題越突出,該問(wèn)題的出現(xiàn)使得很多人去關(guān)心如何判斷數(shù)據(jù)緩沖區(qū)大小,如何確定緩沖區(qū)的效率,該類問(wèn)題可以通過(guò)計(jì)算命中率來(lái)進(jìn)行確認(rèn)。
數(shù)據(jù)緩沖區(qū)V$sysstat中的consistent_gets、db_block_gets是consistent mode和current mode模式下的數(shù)據(jù)讀取總量,physical reads是整個(gè)磁盤物理數(shù)據(jù)讀取總量,這兩個(gè)數(shù)據(jù)的讀取總量的比值就是所謂的命中率,如果兩個(gè)數(shù)據(jù)比值<90%,那么就需要對(duì)該緩沖區(qū)大小進(jìn)行調(diào)整[2]。
(五)共享池調(diào)整分析
共享池同樣也是SGA的重要組成部分,它主要包含了數(shù)據(jù)字典高速緩存與庫(kù)高速緩存,這兩者的作用是對(duì)整個(gè)SQL程序進(jìn)行語(yǔ)法分析、編譯以及執(zhí)行。
庫(kù)高速緩存中會(huì)將解析過(guò)的SQL語(yǔ)句、PL/SQL(存儲(chǔ)過(guò)程、函數(shù)、包)進(jìn)行緩存。如果為了工作的需要,將解析過(guò)的SQL信息重用會(huì)提高整個(gè)數(shù)據(jù)庫(kù)的性能,可以將解析過(guò)的SQL信息存儲(chǔ)在共享池中,這就需要共享池的設(shè)置要足夠的大。通過(guò)對(duì)V$librarycache查詢實(shí)例來(lái)觀察整個(gè)庫(kù)高速度緩存的活動(dòng)情況,其中的reloads和pins,它們分別是庫(kù)高速緩存執(zhí)行階段的未命中數(shù)目和庫(kù)高速緩存中被執(zhí)行的次數(shù),如果庫(kù)緩沖區(qū)的失敗率超過(guò)的1%,那么就需要對(duì)其進(jìn)行調(diào)整。除此之外,還有些情況也需要共享池的設(shè)置要大,字典數(shù)據(jù)高速緩存的總丟失數(shù)和總的存取數(shù)的比值應(yīng)該接近零,當(dāng)這個(gè)數(shù)值超過(guò)10%,那么就需要對(duì)其進(jìn)行調(diào)整。如將表定義的詳細(xì)信息長(zhǎng)期的存儲(chǔ)在共享池中,將其進(jìn)行重用,提高數(shù)據(jù)庫(kù)的整體性能[3]。
通過(guò)V$rowcache來(lái)對(duì)數(shù)據(jù)字典高速緩存活動(dòng)進(jìn)行詳細(xì)查詢,其中的get misses和gets分別代表的是字典數(shù)據(jù)讀取的失敗和成功次數(shù),通常要求的比值小于10%,若超過(guò)則需要進(jìn)行及時(shí)的調(diào)整。
(六)日志緩沖區(qū)優(yōu)化方案
日志緩沖區(qū)主要是保存了對(duì)數(shù)據(jù)庫(kù)修改信息,設(shè)置的大小一般為2兆以內(nèi)的內(nèi)存,最小為500K。日志緩沖區(qū)也不能過(guò)小,否則會(huì)增加日志的寫盤次數(shù),從而為I/O接口增加負(fù)擔(dān)。日志緩沖區(qū)中的常見指令為:immediate gets表示成功立即得到日志緩沖區(qū)次數(shù);immediate misses 則表示未成功立即獲取日志緩沖區(qū)次數(shù)。V$latch中的gets和misses表示成功獲得緩沖日志次數(shù)以及未成功獲得日志緩沖區(qū)次數(shù),其失敗率要小于1%,如果超出則需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行調(diào)整。
(七)合理的使用工具
有時(shí)候想直接在SQLPLUS中看ASH/ADDM/AWR報(bào)告,用下面方法比較方便,因?yàn)锳WR數(shù)據(jù)在數(shù)據(jù)庫(kù)中默認(rèn)只保留7天,當(dāng)我們進(jìn)行性能對(duì)比分析需要保留時(shí)段之前的AWR時(shí),可以采用腳本定時(shí)將AWR報(bào)告輸出保存。
ASH (Active Session History)
ASH以V$SESSION為基礎(chǔ),每秒采樣一次,記錄活動(dòng)會(huì)話等待的事件。不活動(dòng)的會(huì)話不會(huì)采樣,采樣工作由新引入的后臺(tái)進(jìn)程MMNL來(lái)完成。
生成ASH報(bào)告:
SQLPLUS>@?/rdbms/ashrpt.sql
ASH內(nèi)存記錄數(shù)據(jù)始終是有限的,為了保存歷史數(shù)據(jù),引入了自動(dòng)負(fù)載信息庫(kù)(Autom-atic Workload Repository ,AWR) 由后臺(tái)進(jìn)程MMON完成。ASH信息同樣被采集寫出到AWR負(fù)載庫(kù)中。由于內(nèi)存不是足夠的,所以MMNL進(jìn)程在ASH寫滿后會(huì)將信息寫出到AWR負(fù)載庫(kù)中。ASH全部寫出是不可接受的,所以一般只寫入收集的10%的數(shù)據(jù)量,而且使用direct-path insert完成,盡量減少日志的生成,從而最小化數(shù)據(jù)庫(kù)性能影響。
寫出到AWR負(fù)載庫(kù)的ASH信息記錄在AWR的基礎(chǔ)表wrh$active_session_hist中,wrh$active_session_hist是一個(gè)分區(qū)表,Oracle會(huì)自動(dòng)進(jìn)行數(shù)據(jù)清理。
AWR(Automatic Workload Repository)自動(dòng)工作負(fù)載信息庫(kù)
AWR是Oracle 10g中的一個(gè)新特性,類似于10g以前的statspack。不過(guò)在使用上要比statspack簡(jiǎn)單,提供的性能指標(biāo)要比statspack多很多,能更好的幫助DBA來(lái)發(fā)現(xiàn)數(shù)據(jù)庫(kù)的性能瓶頸。
AWR 是Oracle安裝好后自動(dòng)啟動(dòng)的,不需要特別的設(shè)置。收集的統(tǒng)計(jì)信息存儲(chǔ)在SYSAUX表空間SYS模式下,以WRM$_*和WRH$_*的格式命名, 默認(rèn)會(huì)保留最近7天收集的統(tǒng)計(jì)信息。每個(gè)小時(shí)將收集到的信息寫到數(shù)據(jù)庫(kù)中,這一系列操作是由一個(gè)叫MMON的進(jìn)程來(lái)完成的。
AWR存儲(chǔ)的數(shù)據(jù)分類:
WRM$表存儲(chǔ)AWR的元數(shù)據(jù)(awrinfo.sql腳本)
WRH$表存儲(chǔ)采樣快照的歷史數(shù)據(jù)(awrrpt.sql腳本)
WRI$表存儲(chǔ)同數(shù)據(jù)庫(kù)建議功能相關(guān)的數(shù)據(jù)(ADDM相關(guān)數(shù)據(jù))
生成AWR報(bào)告:
SQL>@?/rdbms/admin/awrrpt
根據(jù)向?qū)?lái)完成AWR報(bào)告的生成。需要注意的是,在選擇時(shí)間范圍的時(shí)候,中間不能有停機(jī)(如果顯示的中間有空白行,表示有停機(jī)情況)。在選擇報(bào)告類型的時(shí)候一般使用默認(rèn)的HTML,方便查看。
查看數(shù)據(jù)庫(kù)的AWR的設(shè)置:
SQL> select snap_interval, retention from dba_hist_wr_control;
SNAP_INTERVAL
RETENTION
--------------------------------- ----------------------------------
+00000 01:00:00.0(每小時(shí)收集一次) +00007 00:00:00.0(保留7天)
修改默認(rèn)設(shè)置:
begin
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 20,
retention => 2*24*60);
end;
修改成每20分鐘收集一次統(tǒng)計(jì)量,保留最近的2天統(tǒng)計(jì)量信息。
手動(dòng)收集一次數(shù)據(jù)庫(kù)的統(tǒng)計(jì)信息:
exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;
我們還可以通過(guò)DBMS_WORKLOAD_REPOSITORY包完成對(duì)基線、默認(rèn)設(shè)置的修改等操作。
ADDM (Automatic Database Diagnostic Monitor AWR)
是Oracle內(nèi)部的一個(gè)顧問(wèn)系統(tǒng),能夠自動(dòng)的完成最數(shù)據(jù)庫(kù)的一些優(yōu)化的建議,給出SQL 的優(yōu)化、索引的創(chuàng)建、統(tǒng)計(jì)量的收集等建議。
ADDM報(bào)告生成:
SQLPLUS>@?/rdbms/addmrpt.sql
Oracle 性能調(diào)整最重要的就是對(duì)最影響性能的SQL的調(diào)整。在一個(gè)應(yīng)用中,能夠影響到數(shù)據(jù)庫(kù)的只有SQL,也只能是SQL。我們不能一味依靠增強(qiáng)硬件,修改系統(tǒng)、數(shù)據(jù)庫(kù)參數(shù)來(lái)提高數(shù)據(jù)庫(kù)的性能,更多的應(yīng)該關(guān)注那些最影響性能的SQL語(yǔ)句。ASH報(bào)告、AWR報(bào)告、ADDM報(bào)告都是能夠找出最影響性能的SQL語(yǔ)句的工具。 在分析ASH報(bào)告、AWR報(bào)告的時(shí)候,最重要的就是關(guān)注SQL Statistics,SQL Statistics中最應(yīng)該關(guān)注的是SQL ordered by Gets和SQL ordered by Reads兩個(gè)指標(biāo)。大量的Gets(邏輯讀)會(huì)占用大量的CPU時(shí)間,大量的Reads(物理讀)會(huì)引起IO的瓶頸出現(xiàn)。一般情況下,大量的Gets會(huì)伴隨著大量的Reads出現(xiàn)。當(dāng)然,我們可以通過(guò)增大SGA的大小來(lái)減少Reads的量。通過(guò)這兩個(gè)指標(biāo)找到了最影響性能的SQL,這是首要的,也是必要的。下一步就可以通過(guò)創(chuàng)建索引,調(diào)整SQL來(lái)提高SQL單獨(dú)執(zhí)行的性能,減少SQL執(zhí)行時(shí)出現(xiàn)的高Gets,Reads。當(dāng)然整體的性能影響還和excutions有關(guān),如果這條SQL執(zhí)行的次數(shù)過(guò)多,累加起來(lái)的量很大,那么就可以考慮通過(guò)在應(yīng)用上緩存等手段來(lái)減少SQL執(zhí)行的次數(shù)。另外還有一個(gè)需要注意的問(wèn)題就是在開發(fā)過(guò)程中SQL一定要使用綁定變量,來(lái)減少硬解析(大量的硬解析也會(huì)消耗大量的CPU時(shí)間,占用大量的Latch)。在開發(fā)過(guò)程中有個(gè)原則就是:小事務(wù)操作完成及時(shí)提交。
我們使用這么多種方式、報(bào)告只有一個(gè)目的:找出最影響系統(tǒng)性能的SQL語(yǔ)句。找到SQL下一步就是對(duì)它進(jìn)行調(diào)整了。
我們?cè)诒O(jiān)控?cái)?shù)據(jù)庫(kù)時(shí),如果是當(dāng)前正在發(fā)生的問(wèn)題,我們可以通過(guò)v$session+v$sqlarea來(lái)找出性能最差的SQL語(yǔ)句。如果在一個(gè)小時(shí)以內(nèi)發(fā)生的我們可以通過(guò)生成ASH報(bào)告來(lái)找出SQL。如果是1小時(shí)以上或幾天我們可以通過(guò)AWR報(bào)告來(lái)找出幾小時(shí),幾天以來(lái)最影響系統(tǒng)的SQL語(yǔ)句。ADDM報(bào)告基于AWR庫(kù),默認(rèn)可以保存30天的ADDM報(bào)告。
我們也可以直接查詢?cè)噲D:
v$session (當(dāng)前正在發(fā)生)
v$session_wait (當(dāng)前正在發(fā)生)
v$session_wait_history
(會(huì)話最近的10次等待事件)
v$active_session_history
(內(nèi)存中的ASH采集信息,理論為1小時(shí))
wrh$_active_session_history (寫入AWR庫(kù)中的ASH信息,理論為1小時(shí)以上)
dba_hist_active_sess_history (根據(jù)wrh$_active_session_history生成的視圖)
四、總結(jié)語(yǔ)
企業(yè)中使用Orcale數(shù)據(jù)庫(kù)來(lái)儲(chǔ)存數(shù)據(jù),有效的改善了以前對(duì)于企業(yè)信息數(shù)據(jù)處理的問(wèn)題。有效的節(jié)約了信息處理資源,且采用Orcale數(shù)據(jù)庫(kù)將所有的員工等信息進(jìn)行備份,方便以后查詢,若數(shù)據(jù)庫(kù)的數(shù)據(jù)不丟失,那么則能夠通過(guò)查詢進(jìn)行查詢。本文主要針對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行介紹,然后根據(jù)數(shù)據(jù)庫(kù)中的內(nèi)容進(jìn)行優(yōu)化,為以后企業(yè)在數(shù)據(jù)庫(kù)的優(yōu)化上提供借鑒。
參考文獻(xiàn)
[1]溫創(chuàng)新.電視廣告商務(wù)平臺(tái)中Oracle數(shù)據(jù)庫(kù)的ADICI設(shè)計(jì)與優(yōu)化研究[D].中南大學(xué),2011.
[2]王斌.基于Oracle數(shù)據(jù)庫(kù)技術(shù)的航行情報(bào)系統(tǒng)(CNMS)性能優(yōu)化[D].電子科技大學(xué),2010.
[3]張舒.超大型Oracle數(shù)據(jù)庫(kù)的基礎(chǔ)設(shè)計(jì)和優(yōu)化設(shè)計(jì)[J].價(jià)值工程,2011,10:178.
篇9
1 引言
信息是信息化戰(zhàn)爭(zhēng)中的決定因素,而數(shù)據(jù)鏈的根本作用就是解決信息獲取、信息處理和信息傳輸?shù)慕Y(jié)合問(wèn)題,并從速度上進(jìn)行優(yōu)化,極大地增強(qiáng)部隊(duì)的整體作戰(zhàn)效能。
復(fù)雜電磁環(huán)境是信息化戰(zhàn)場(chǎng)的重要特征,在未來(lái)信息化條件作戰(zhàn)中,戰(zhàn)場(chǎng)復(fù)雜電磁環(huán)境將對(duì)各類信息化武器裝備將產(chǎn)生嚴(yán)重影響。
戰(zhàn)場(chǎng)環(huán)境千變?nèi)f化,參戰(zhàn)平臺(tái)也是多種多樣,大規(guī)模作戰(zhàn)應(yīng)用條件下的數(shù)據(jù)鏈綜合應(yīng)用,是作戰(zhàn)研究的關(guān)鍵,也是數(shù)據(jù)鏈推演系統(tǒng)研究的核心內(nèi)容。而能夠支撐大規(guī)模數(shù)據(jù)鏈平臺(tái)接入模擬的數(shù)據(jù)庫(kù)是推演的基礎(chǔ)。本文在對(duì)Link-16數(shù)據(jù)鏈應(yīng)用研究的基礎(chǔ)上,提出了系統(tǒng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)和應(yīng)用流程,使之能夠快速高效地支撐推演系統(tǒng)的運(yùn)行。
2 數(shù)據(jù)鏈推演系統(tǒng)
Link-16數(shù)據(jù)鏈,又稱戰(zhàn)術(shù)數(shù)字信息鏈路-J(TADIL-J)是美國(guó)和北約部隊(duì)廣泛采用的一種戰(zhàn)術(shù)數(shù)據(jù)鏈。Link-16數(shù)據(jù)鏈已經(jīng)裝備美國(guó)和北約全部的預(yù)警機(jī)和許多地面防空指揮所、戰(zhàn)斗機(jī)、直升機(jī)、驅(qū)逐艦和航母等典型的作戰(zhàn)平臺(tái)。
數(shù)據(jù)鏈推演系統(tǒng)是針對(duì)美軍及北約部隊(duì)廣泛應(yīng)用的Link-16數(shù)據(jù)鏈而建立的仿真推演系統(tǒng),通過(guò)加載想定和網(wǎng)絡(luò)規(guī)劃,在統(tǒng)一的推演控制下,在網(wǎng)絡(luò)運(yùn)行模擬設(shè)備、各參與平臺(tái)和支撐平臺(tái)的參與下,對(duì)任務(wù)規(guī)劃和行動(dòng)需求一致性、Link-16網(wǎng)絡(luò)規(guī)劃以及網(wǎng)絡(luò)資源的合理性進(jìn)行驗(yàn)證。
3 推演數(shù)據(jù)庫(kù)組成
推演系統(tǒng)數(shù)據(jù)庫(kù)組成如圖1所示。
3.1 數(shù)據(jù)庫(kù)管理系統(tǒng)
數(shù)據(jù)庫(kù)管理系統(tǒng)是根據(jù)不同的需求對(duì)平臺(tái)庫(kù)、裝備庫(kù)、行為模型庫(kù)以及復(fù)雜電磁環(huán)境庫(kù)等進(jìn)行管理、包括添加、刪除和參數(shù)修改等工作,同時(shí)對(duì)數(shù)據(jù)庫(kù)整體進(jìn)行備份和存貯。
3.2 平臺(tái)模型數(shù)據(jù)庫(kù)
平臺(tái)模型庫(kù)主要建立平臺(tái)模型各種參數(shù)信息,包含空中、水面、陸地和水下平臺(tái),為推演系統(tǒng)提供平臺(tái)數(shù)據(jù)。
3.3 裝備模型數(shù)據(jù)庫(kù)
裝備模型數(shù)據(jù)庫(kù)主要建立平臺(tái)數(shù)據(jù)鏈裝備模型的各種參數(shù)信息,包含Link16數(shù)據(jù)鏈裝備、雷達(dá)裝備、電子戰(zhàn)裝備等,為推演系統(tǒng)提供數(shù)據(jù)鏈所需的各種裝備數(shù)據(jù)。
3.4 行為模型數(shù)據(jù)庫(kù)
行為模型庫(kù)主要建立平臺(tái)所參與的行為模型,包含平臺(tái)的起飛、降落、到達(dá)指定高度、巡航、按照軌跡運(yùn)動(dòng)、按照軌跡前往等行為,為推演系統(tǒng)提供平臺(tái)行動(dòng)數(shù)據(jù)。
3.5 復(fù)雜電磁環(huán)境模型數(shù)據(jù)庫(kù)
復(fù)雜電磁環(huán)境模型庫(kù)主要建立戰(zhàn)場(chǎng)復(fù)雜電磁環(huán)境干擾模型以及根據(jù)不同環(huán)境下的電磁環(huán)境參數(shù)庫(kù),為推演系統(tǒng)提供復(fù)雜電磁環(huán)境態(tài)勢(shì)以及為裝備受干擾狀態(tài)下的干擾計(jì)算提供基礎(chǔ)參數(shù)。
3.6 行動(dòng)腳本數(shù)據(jù)庫(kù)
行動(dòng)腳本數(shù)據(jù)庫(kù)主要建立推演劇情的各種數(shù)據(jù)信息的綜合,包含推演平臺(tái)組成、裝備情況、推演平臺(tái)行為、網(wǎng)絡(luò)組織情況、數(shù)據(jù)鏈應(yīng)用情況等,為推演提供全部數(shù)據(jù)以及推演劇情的保存。
4 數(shù)據(jù)庫(kù)及應(yīng)用流程設(shè)計(jì)
4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)
推演系統(tǒng)數(shù)據(jù)庫(kù)包括:平臺(tái)模型庫(kù),裝備模型庫(kù),行為模型庫(kù),復(fù)雜電磁環(huán)境模型庫(kù),行動(dòng)腳本數(shù)據(jù)庫(kù)。模型是以參數(shù)的集合進(jìn)行定義,即每種模型由一系列參數(shù)描述。例如,戰(zhàn)斗機(jī)模型的平臺(tái)類型為空中平臺(tái),油量為50000L,機(jī)翼為50m,機(jī)長(zhǎng)200m等。Link-16數(shù)據(jù)鏈裝備模型的鏈路類型為L(zhǎng)ink16,波道號(hào)為01,網(wǎng)絡(luò)號(hào)為16等。每種模型庫(kù)以樹形結(jié)構(gòu)進(jìn)行組織管理。根模型擁有模型基本參數(shù)集,子模型在繼承父模型的參數(shù)集的同時(shí),擁有自己特有的參數(shù)集。如圖2所示,假設(shè)某平臺(tái)模型的樹形結(jié)構(gòu)圖如下:
R表示根節(jié)點(diǎn)的參數(shù)集,A,B,C分別表示子節(jié)點(diǎn)獨(dú)有的參數(shù)集,A1,A2;B1,B2;C1,C2表示葉子節(jié)點(diǎn)獨(dú)有的參數(shù)集。
圖2 參數(shù)繼承圖
最左側(cè)葉子結(jié)點(diǎn)的所有參數(shù)的集合為:
(1)數(shù)據(jù)庫(kù)管理系統(tǒng)。
數(shù)據(jù)庫(kù)管理系統(tǒng)是對(duì)推演系統(tǒng)的模型庫(kù)進(jìn)行管理維護(hù)的系統(tǒng)。主要完成推演系統(tǒng)數(shù)據(jù)庫(kù)的維護(hù),包括模型的查詢,添加,刪除,編輯,保存,備份功能,如圖3所示。推演數(shù)據(jù)庫(kù)包括:平臺(tái)模型庫(kù),裝備模型庫(kù),行為模型庫(kù),復(fù)雜電磁環(huán)境模型庫(kù),行動(dòng)腳本庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)啟動(dòng)之后,建立與各個(gè)模型庫(kù)的連接。每個(gè)時(shí)刻只能由一個(gè)連接是活動(dòng)狀態(tài),只有在活動(dòng)狀態(tài)下才能完成模型庫(kù)的編輯。系統(tǒng)支持一鍵切換各個(gè)模型庫(kù)連接的活動(dòng)狀態(tài)。系統(tǒng)以樹形結(jié)構(gòu)展示庫(kù)中的各個(gè)模型及其參數(shù)數(shù)據(jù)。在進(jìn)行了添加,刪除,編輯參數(shù)等操作之后,通過(guò)保存將數(shù)據(jù)寫入模型庫(kù)。另外,系統(tǒng)支持?jǐn)?shù)據(jù)庫(kù)的備份。
圖3 數(shù)據(jù)庫(kù)管理流程圖
1)模型庫(kù)的添加。
執(zhí)行模型添加功能時(shí),系統(tǒng)自動(dòng)建立該模型的基本參數(shù)集。用戶可以為該模型添加特有參數(shù),并為其設(shè)置參數(shù)值。基本參數(shù)集和特有參數(shù)共同構(gòu)成該新增模型的參數(shù)集。
2)模型庫(kù)的刪除。
執(zhí)行模型刪除功能時(shí),系統(tǒng)刪除該模型庫(kù)的參數(shù)集,假如該模型有子模型,系統(tǒng)首先刪除其子模型,繼而刪除該模型。
模型的編輯主要包括模型的參數(shù)集的編輯,包括添加,刪除,修改參數(shù)值等。
4)模型的保存。
保存功能主要完成對(duì)以修改模型的保存,將修改后數(shù)據(jù)存入平臺(tái)模型數(shù)據(jù)庫(kù)。
5)模型的備份。
系統(tǒng)將模型數(shù)據(jù)庫(kù)按制定的文件類型另存為到制定的物理存儲(chǔ)空間。存儲(chǔ)文件類型包括:.sql,.txt,.xml等。
(2)平臺(tái)模型庫(kù)。
平臺(tái)模型庫(kù)為推演系統(tǒng)提供平臺(tái)數(shù)據(jù)。平臺(tái)模型庫(kù)以樹形結(jié)構(gòu)進(jìn)行組織管理。一級(jí)模型包括空中平臺(tái)、陸地平臺(tái)、水面平臺(tái)、水下平臺(tái)四種類型。二級(jí)空中平臺(tái)模型包括:戰(zhàn)斗機(jī)、加油機(jī)、預(yù)警機(jī)、無(wú)人機(jī)等。二級(jí)陸地平臺(tái)模型包括:指揮所,裝甲車,雷達(dá)站,坦克等。二級(jí)水面平臺(tái)模型包括:航空母艦,艦船。二級(jí)水下平臺(tái)模型包括:潛艇等。模型以參數(shù)的集合描述。子模型在繼承了父模型的參數(shù)同時(shí),擁有自己特有的參數(shù)。
下面說(shuō)明空中平臺(tái)模型,地面模型,以及空中模型的子模型――戰(zhàn)斗機(jī)模型的參數(shù)集。其中戰(zhàn)斗機(jī)模型參數(shù)表中說(shuō)明了子模型和父模型之間的參數(shù)繼承關(guān)系,見表1和表2所示。
表1 平臺(tái)模型示例
表2 戰(zhàn)斗機(jī)平臺(tái)模型
(3)裝備模型庫(kù)。
裝備模型數(shù)據(jù)庫(kù)主要建立平臺(tái)數(shù)據(jù)鏈裝備模型的各種參數(shù)信息,包含Link16數(shù)據(jù)鏈裝備、雷達(dá)裝備、電子戰(zhàn)裝備等,為推演系統(tǒng)提供數(shù)據(jù)鏈所需的各種裝備數(shù)據(jù)。該模型庫(kù)只有一級(jí),模型庫(kù)中每個(gè)模型擁有自己的參數(shù)集,示例如表3所示。
表3 裝備模型示例
(4)行為模型庫(kù)。
行為模型庫(kù)主要建立平臺(tái)所參與的行為模型,包含平臺(tái)的起飛、降落、到達(dá)指定高度、巡航、按照軌跡運(yùn)動(dòng)、按照軌跡前往等行為,為推演系統(tǒng)提供平臺(tái)行動(dòng)數(shù)據(jù)。該模型庫(kù)只有一級(jí),每個(gè)行為模型擁有自己的參數(shù)集,示例如表4所示。
表4 行為模型示例
(5)復(fù)雜電磁環(huán)境模型庫(kù)。
復(fù)雜電磁環(huán)境模型庫(kù)主要建立戰(zhàn)場(chǎng)復(fù)雜電磁環(huán)境干擾模型以及根據(jù)不同環(huán)境下的電磁環(huán)境參數(shù)庫(kù),為推演系統(tǒng)提供復(fù)雜電磁環(huán)境態(tài)勢(shì)以及為裝備受干擾狀態(tài)下的干擾計(jì)算提供基礎(chǔ)參數(shù),示例如表5所示。
表5 復(fù)雜電磁環(huán)境模型示例
(6)行動(dòng)腳本庫(kù)。
行動(dòng)腳本數(shù)據(jù)庫(kù)主要建立推演劇情的各種數(shù)據(jù)信息的綜合,包含推演平臺(tái)組成、裝備情況、推演平臺(tái)行為、網(wǎng)絡(luò)組織情況、數(shù)據(jù)鏈應(yīng)用情況等,為推演提供全部數(shù)據(jù)以及推演劇情的保存。
4.2 數(shù)據(jù)庫(kù)應(yīng)用流程
根據(jù)數(shù)據(jù)鏈推演要求,數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用流程如圖4所示。
圖4 數(shù)據(jù)庫(kù)應(yīng)用流程設(shè)計(jì)
數(shù)據(jù)庫(kù)管理系統(tǒng)按照行動(dòng)文件中描述的數(shù)據(jù)鏈應(yīng)用場(chǎng)景和行動(dòng)計(jì)劃,分解提煉該次行動(dòng)的平臺(tái)組成、裝備情況、行為狀態(tài)、數(shù)據(jù)鏈網(wǎng)絡(luò)應(yīng)用情況以及復(fù)雜電磁環(huán)境狀態(tài)。根據(jù)上述推演行動(dòng)數(shù)據(jù),系統(tǒng)在復(fù)雜電磁環(huán)境模型庫(kù)、平臺(tái)模型庫(kù)、行動(dòng)模型庫(kù)、裝備模型庫(kù)中提取相關(guān)模型及數(shù)據(jù),利用推演標(biāo)繪生成行動(dòng)腳本文件并存入行動(dòng)腳本庫(kù)。推演展現(xiàn)可以直接調(diào)用行動(dòng)腳本庫(kù)的行動(dòng)預(yù)案進(jìn)行推演,該行動(dòng)腳本包含行動(dòng)單位組織結(jié)構(gòu),行動(dòng)網(wǎng),行動(dòng)軌跡等信息。推演系統(tǒng)可直接加載行動(dòng)腳本,并在推演時(shí)展現(xiàn)整個(gè)行動(dòng)腳本的推演態(tài)勢(shì)。
5 結(jié)束語(yǔ)
21世紀(jì)的戰(zhàn)爭(zhēng)是高科技的戰(zhàn)爭(zhēng),信息權(quán)是戰(zhàn)爭(zhēng)爭(zhēng)奪的制高點(diǎn),復(fù)雜電磁環(huán)境下的數(shù)據(jù)鏈綜合應(yīng)用關(guān)系到聯(lián)合作戰(zhàn)的整體作戰(zhàn)效能,數(shù)據(jù)鏈推演系統(tǒng)是對(duì)Link-16數(shù)據(jù)鏈網(wǎng)絡(luò)規(guī)劃及資源進(jìn)行模擬仿真驗(yàn)證,而數(shù)據(jù)庫(kù)是推演的核心和基礎(chǔ),良好的數(shù)據(jù)庫(kù)設(shè)計(jì)能夠提升系統(tǒng)的計(jì)算能力和靈活性,為大規(guī)模數(shù)據(jù)鏈作戰(zhàn)應(yīng)用提供很好地支撐,對(duì)其它類似系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)提供一定的借鑒。
參考文獻(xiàn):
[1] 高斌,唐曉斌,彭益,等.復(fù)雜電磁環(huán)境下的數(shù)據(jù)鏈資源分配技術(shù)研究[J].中國(guó)電子科學(xué)研究院學(xué)報(bào),2010,5(3):248-252.
[2] 魏立柱,彭益,高斌.Link 16數(shù)據(jù)鏈驗(yàn)證測(cè)試技術(shù)[J].電訊技術(shù),2011,51(3):9-13.
[3] 彭益,魏立柱.基于HLA的Link-16推演支持系統(tǒng)設(shè)計(jì)[J].微處理機(jī),2012,33(1):87-93.
[4] 孫義民,楊麗萍.信息化戰(zhàn)爭(zhēng)中的戰(zhàn)術(shù)數(shù)據(jù)鏈[M].北京:北京郵電大學(xué)出版社,2005.
篇10
二、數(shù)據(jù)庫(kù)簡(jiǎn)介
所謂數(shù)據(jù)庫(kù),就是一個(gè)長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的、統(tǒng)一管理的數(shù)據(jù)集合。它是一個(gè)按一定的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)和管理數(shù)據(jù)的計(jì)算機(jī)軟件系統(tǒng)。不同的用戶可以按各自的需求使用數(shù)據(jù)庫(kù)中的數(shù)據(jù),多個(gè)用戶可以同時(shí)共享數(shù)據(jù)庫(kù)中的數(shù)據(jù)。數(shù)據(jù)庫(kù)系統(tǒng)立足于數(shù)據(jù)本身的管理,將所有數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中,進(jìn)行科學(xué)的組織,并借助于數(shù)據(jù)庫(kù)管理系統(tǒng),以它為中介,與各種應(yīng)用程序或應(yīng)用系統(tǒng)接口,使之能方便地使用數(shù)據(jù)庫(kù)中的數(shù)據(jù)。簡(jiǎn)單地說(shuō)數(shù)據(jù)庫(kù)就是一組經(jīng)過(guò)計(jì)算機(jī)整理后的數(shù)據(jù),存儲(chǔ)在一個(gè)或多個(gè)文件中,而管理這個(gè)數(shù)據(jù)庫(kù)的軟件就稱之為數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)一般是由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)及計(jì)算機(jī)軟硬件、系統(tǒng)人員和用戶等組成。
三、數(shù)據(jù)庫(kù)設(shè)計(jì)在二調(diào)中的應(yīng)用
在全國(guó)第二次土地調(diào)查中,數(shù)據(jù)庫(kù)建設(shè)就發(fā)揮了很大的作用,它將我們調(diào)查到的各種數(shù)據(jù)全部集中在數(shù)據(jù)庫(kù)管理系統(tǒng)中,使我們以后能更方便、快捷地進(jìn)行查詢、管理等工作。
建立一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),首先,我們都需要一個(gè)數(shù)據(jù)庫(kù)平臺(tái),現(xiàn)在我們常用的數(shù)據(jù)庫(kù)平臺(tái)大概有幾種:Access、SQL server、oracle等。而對(duì)于二次調(diào)查這種大型的項(xiàng)目,里面含有很多圖形數(shù)據(jù)、圖像數(shù)據(jù)、屬性數(shù)據(jù)等資料的數(shù)據(jù)庫(kù),我們一般選擇SQL server 和oracle這種功能較強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)作為我們建立數(shù)據(jù)庫(kù)的平臺(tái)。這樣就需要我們能夠了解數(shù)據(jù)庫(kù)建設(shè)的相關(guān)原理和設(shè)計(jì)過(guò)程。
數(shù)據(jù)庫(kù)的設(shè)計(jì)就是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)上,設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和建立數(shù)據(jù)庫(kù)的過(guò)程。一般來(lái)說(shuō),數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程大致分為需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、概念設(shè)計(jì)、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)6 個(gè)步驟。
具體對(duì)于二次調(diào)查項(xiàng)目來(lái)說(shuō),需求分析就是指調(diào)查和分析全縣各類土地利用情況,按照國(guó)家的分類要求和調(diào)查規(guī)范,對(duì)全縣土地進(jìn)行分類、劃分,建立一套完整的土地利用管理數(shù)據(jù)庫(kù)。
概念設(shè)計(jì)是指對(duì)用戶要求描述的現(xiàn)實(shí)世界,通過(guò)對(duì)其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。在二調(diào)中就是指土地各個(gè)分類之間的相互關(guān)系,權(quán)屬關(guān)系,具體來(lái)說(shuō),就是“縣―鄉(xiāng)―村―圖斑”,由相同權(quán)屬性質(zhì)(坐落權(quán)屬代碼)的圖斑組成村,由村組成鄉(xiāng),由鄉(xiāng)生成縣。將屬性信息和圖形信息相互照應(yīng)起來(lái),就是數(shù)據(jù)庫(kù)中常說(shuō)的“E―R 模型”。
邏輯設(shè)計(jì)是指將現(xiàn)實(shí)世界的概念數(shù)據(jù)模型設(shè)計(jì)成數(shù)據(jù)庫(kù)的一種邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。在二調(diào)中就是指將土地利用現(xiàn)狀中的各種地類、屬性轉(zhuǎn)換成數(shù)據(jù)庫(kù)管理系統(tǒng)能夠識(shí)別的模式。并能讓我們直觀地查詢出來(lái)。
物理設(shè)計(jì)是指數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)方法,數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)根據(jù)具體的應(yīng)用任務(wù)選定最合適的物理存儲(chǔ)結(jié)構(gòu)(包括文件類型、索引結(jié)構(gòu)和數(shù)據(jù)的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設(shè)計(jì)的結(jié)果就是所謂“物理數(shù)據(jù)庫(kù)”。在二調(diào)建庫(kù)中,指定的管理系統(tǒng)會(huì)將我們的基礎(chǔ)資料保存在適合的位置。
驗(yàn)證設(shè)計(jì)是指在上述設(shè)計(jì)的基礎(chǔ)上,收集數(shù)據(jù)并具體建立一個(gè)數(shù)據(jù)庫(kù),運(yùn)行一些典型的應(yīng)用任務(wù)來(lái)驗(yàn)證數(shù)據(jù)庫(kù)設(shè)計(jì)的正確性和合理性。在二調(diào)中,驗(yàn)證設(shè)計(jì)就是在將數(shù)據(jù)庫(kù)中的所必須的數(shù)據(jù),圖形,屬性全部附上,建立一個(gè)完整的數(shù)據(jù)庫(kù),并實(shí)現(xiàn)各種查詢功能,統(tǒng)計(jì)功能等。
數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)是指數(shù)據(jù)庫(kù)系統(tǒng)正式運(yùn)行,標(biāo)志著數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用開發(fā)工作的結(jié)束和維護(hù)階段的開始。運(yùn)行維護(hù)階段的主要任務(wù)有四項(xiàng):(1)維護(hù)數(shù)據(jù)庫(kù)的安全性與完整性:檢查系統(tǒng)安全性是否受到侵犯,及時(shí)調(diào)整授權(quán)和密碼,實(shí)施系統(tǒng)轉(zhuǎn)儲(chǔ)與備份,發(fā)生故障后及時(shí)恢復(fù)。(2)監(jiān)測(cè)并改善數(shù)據(jù)庫(kù)運(yùn)行性能:對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)空間狀況及響應(yīng)時(shí)間進(jìn)行分析評(píng)價(jià),結(jié)合用戶反應(yīng)確定改進(jìn)措施。(3)根據(jù)用戶要求對(duì)數(shù)據(jù)庫(kù)現(xiàn)有功能進(jìn)行擴(kuò)充。(4)及時(shí)改正運(yùn)行中發(fā)現(xiàn)的系統(tǒng)錯(cuò)誤。而對(duì)于二調(diào)的項(xiàng)目,就是指數(shù)據(jù)庫(kù)的維護(hù)階段,把數(shù)據(jù)庫(kù)中各種數(shù)據(jù),如圖斑,線狀地物,地類界線等,把按照國(guó)家要求所需要的屬性全部附在數(shù)據(jù)上。并且根據(jù)管理部門的要求,可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改;另外實(shí)現(xiàn)數(shù)據(jù)庫(kù)的備份,還原等功能。
這樣,一個(gè)完整的數(shù)據(jù)庫(kù)就建好了。其實(shí)在建設(shè)數(shù)據(jù)庫(kù)的過(guò)程中,重要的內(nèi)容在于前期數(shù)據(jù)的整理。對(duì)于二調(diào)來(lái)說(shuō),無(wú)論采用SQLserver 或者oracle 平臺(tái),數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)論采用蒼穹或者mapgis等,數(shù)據(jù)庫(kù)的一個(gè)基本模式已經(jīng)建立完整。我們只需要把我們的外業(yè)資料轉(zhuǎn)化為數(shù)據(jù)庫(kù)能夠識(shí)別的數(shù)據(jù)就可以了。這就要讓我們保證外業(yè)調(diào)查地圖的正確性,完善性;內(nèi)業(yè)矢量化工作的嚴(yán)謹(jǐn)性。在矢量化的過(guò)程中,同時(shí)將一些必須的屬性同時(shí)附上。比如說(shuō)地類圖斑的地類代碼,權(quán)屬性質(zhì)等。線狀地物的寬度,線狀地物代碼,權(quán)屬性質(zhì)等。這些東西是需要我們手工賦值的。其他的一些必備屬性,數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)根據(jù)數(shù)據(jù)字典,根據(jù)國(guó)家要求設(shè)定好的程序?qū)Ω鞣N數(shù)據(jù)進(jìn)行維護(hù)。
篇11
1.1數(shù)據(jù)庫(kù)連接方案選擇
RDO、DAO和ADO是比較常見的Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)。
DAO (Data Access Objects) 數(shù)據(jù)訪問(wèn)對(duì)象是第一個(gè)面向?qū)ο蟮慕涌冢?Microsoft Jet 數(shù)據(jù)庫(kù)引擎(由 Microsoft Access 所使用),并允許 Visual Basic 開發(fā)者通過(guò) ODBC 象連接到其他數(shù)據(jù)庫(kù)一樣,直接訪問(wèn)到 Access 表。DAO 最適用于單系統(tǒng)應(yīng)用程序或小范圍本地分布使用,對(duì)大范圍的異地并行設(shè)計(jì)顯得功能不夠強(qiáng)大。
RDO (Remote Data Objects) 遠(yuǎn)程數(shù)據(jù)對(duì)象是一個(gè)到 ODBC 的、面向?qū)ο蟮臄?shù)據(jù)訪問(wèn)接口,它同易于使用的 DAO style組合在一起,提供了一個(gè)接口,形式上展示出所有 ODBC 的底層功能和靈活性。RDO 在訪問(wèn) Jet 或 ISAM 數(shù)據(jù)庫(kù)方面有一定的限制,而且它只能通過(guò)現(xiàn)存的 ODBC 驅(qū)動(dòng)程序來(lái)訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)。但是,RDO 已被證明是許多 SQL Server、Oracle
以及其他大型關(guān)系數(shù)據(jù)庫(kù)開發(fā)者經(jīng)常選用的最佳接口。RDO 提供了用來(lái)訪問(wèn)存儲(chǔ)過(guò)程和復(fù)雜結(jié)果集的更多和更復(fù)雜的對(duì)象、屬性,以及方法。對(duì)異地并行設(shè)計(jì)Web數(shù)據(jù)庫(kù)來(lái)說(shuō)也不是十分理想。
ADO(ActiveX Data Objects)為ActiveX組件中數(shù)據(jù)庫(kù)訪問(wèn)組件,ASP就是通過(guò)它實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。ADO 是 DAO、RDO 的后繼產(chǎn)物。ADO 2.0在功能上與 RDO 更相似,而且一般來(lái)說(shuō),在這兩種模型之間有一種相似的映射關(guān)系。ADO “擴(kuò)展”了 DAO 和 RDO 所使用的對(duì)象模型,這意味著它包含較少的對(duì)象、更多的屬性、方法(和參數(shù)),以及事件。例如,ADO 沒(méi)有與 rdoEngine 和 rdoEnvironment 對(duì)象相等同的對(duì)象,可以包含 ODBC 驅(qū)動(dòng)程序管理器和 hEnv 接口。盡管事實(shí)上接口可能是通過(guò) ODBC OLE DB 服務(wù)提供程序?qū)崿F(xiàn)的,但目前也不能從 ADO 中創(chuàng)建 ODBC 數(shù)據(jù)源。ADO 是為 Microsoft最新和最強(qiáng)大的數(shù)據(jù)訪問(wèn)范例 OLE DB 而設(shè)計(jì)的,是一個(gè)便于使用的應(yīng)用程序?qū)咏涌凇LE DB 為任何數(shù)據(jù)源提供了高性能的訪問(wèn),這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫(kù)、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對(duì)象等等。ADO 在關(guān)鍵的 Internet 方案中使用最少的網(wǎng)絡(luò)流量,并且在前端和數(shù)據(jù)源之間使用最少的層數(shù),所有這些都是為了提供輕量、高性能的接口。同時(shí) ADO 使用了與 DAO和 RDO相似的約定和特性,簡(jiǎn)化的語(yǔ)義使它更易于學(xué)習(xí)。
ADO最早是在IIS中引入的,主要用于ASP,用ADO可以使服務(wù)器端的腳本通過(guò)ODBC存取和操縱數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)。使用ADO的對(duì)象可以建立和管理數(shù)據(jù)庫(kù)的連接,從數(shù)據(jù)庫(kù)服務(wù)器請(qǐng)求和獲取數(shù)據(jù),執(zhí)行更新、刪除、添加數(shù)據(jù)、獲取ODBC的錯(cuò)誤信息等。ADO是ASP方案中最具吸引力的數(shù)據(jù)庫(kù)連接控件,它為用戶提供了連接任何兼容ODBC的數(shù)據(jù)庫(kù)以及創(chuàng)建全功能數(shù)據(jù)庫(kù)應(yīng)用程序的能力。
ADO具有簡(jiǎn)單易用、高速、占用資源少等的優(yōu)點(diǎn)。不同于DAO和RDO,ADO有著更高的執(zhí)行效率。ADO 對(duì)象模型如圖1a所示。每個(gè) Connection、Command、Recordset 和 Field 對(duì)象都有 Properties 集合,如圖1b所示。
a)
b)
圖1 ADO對(duì)象模型及屬性
應(yīng)該說(shuō),ADO是微軟的下一代數(shù)據(jù)庫(kù)連接技術(shù),用來(lái)全面取代RDO和DAO的數(shù)據(jù)訪問(wèn)工具。從發(fā)展趨勢(shì)來(lái)看,ADO今后將逐步替代老的DAO特別是RDO數(shù)據(jù)訪問(wèn)接口,成為新的遠(yuǎn)程數(shù)據(jù)訪問(wèn)方法。所以,選擇ADO作為產(chǎn)品異地并行設(shè)計(jì)的Web數(shù)據(jù)庫(kù)接口技術(shù)是合適的。
1.2 ADO應(yīng)用分析
ADO 并不是自動(dòng)和現(xiàn)存的數(shù)據(jù)訪問(wèn)應(yīng)用程序代碼兼容的。當(dāng) ADO 封裝 DAO 和 RDO 的功能性的時(shí)候,必須將許多語(yǔ)言要素轉(zhuǎn)換為 ADO 語(yǔ)法。在某些情況下,這將意味著要對(duì)現(xiàn)存代碼的某些功能做一個(gè)簡(jiǎn)單轉(zhuǎn)換。在其他情況下,最佳的做法可能是用 ADO 的新功能重寫該應(yīng)用程序。
包含在 DAO 和 RDO 模型中的許多功能被合并為單個(gè)對(duì)象,這樣就生成了一個(gè)簡(jiǎn)單得多的對(duì)象模型。然而,由于這個(gè)原因,起初可能會(huì)覺(jué)得找到合適的 ADO 對(duì)象、集合、屬性、方法,或事件非常困難。與 DAO 和 RDO不同的是,盡管 ADO 對(duì)象是分層結(jié)構(gòu)的,但在分層結(jié)構(gòu)范圍之外也是可以創(chuàng)建的。同時(shí),也應(yīng)當(dāng)注意,ADO 當(dāng)前并不支持 DAO 的所有功能。ADO 主要包括 RDO 風(fēng)格的功能性,以便和 OLE DB 數(shù)據(jù)源交互,另外還包括遠(yuǎn)程和 DHTML 技術(shù)。
一般說(shuō)來(lái),在 ADO 的演化過(guò)程中,馬上把大多數(shù) DAO 應(yīng)用程序(except possibly是那些使用 ODBCDirect 的應(yīng)用程序)移植到 ADO 上為時(shí)太早,因?yàn)楫?dāng)前的 ADO 并不支持?jǐn)?shù)據(jù)定義 (DDL)、用戶、組等等。不過(guò),如果只將 DAO 用于客戶—服務(wù)器應(yīng)用程序,并不依賴于 Jet 數(shù)據(jù)庫(kù)引擎或不使用 DDL,那么就可能移植到 ADO。最終,Microsoft 將提供一個(gè) ADO DDL 組件來(lái)幫助進(jìn)行 DAO 到 ADO 的移植,并為 OLE DB 供應(yīng)商提供一般的 DDL 支持。
在ASP中使用ADO技術(shù)來(lái)訪問(wèn)Web數(shù)據(jù)庫(kù),其應(yīng)用前景是無(wú)可估量的。原理圖如下:
圖2 ADO在ASP程序中的應(yīng)用
常見的數(shù)據(jù)庫(kù)類型有面向?qū)ο蟮臄?shù)據(jù)庫(kù)(OODB)和關(guān)系型數(shù)據(jù)庫(kù)。OODB對(duì)主流數(shù)據(jù)庫(kù)應(yīng)用開發(fā)來(lái)說(shuō)是相當(dāng)新穎的,使用OODB使應(yīng)用程序中的數(shù)據(jù)對(duì)象與現(xiàn)實(shí)世界中的對(duì)象一一對(duì)應(yīng),面向?qū)ο髷?shù)據(jù)庫(kù)擴(kuò)充了對(duì)象模型。一個(gè)常用的對(duì)象模型是由對(duì)象數(shù)據(jù)庫(kù)管理組(ODMG)開發(fā)出來(lái),具有比傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)更優(yōu)越的性能,但畢竟在目前還是一種探索階段,暫時(shí)還未有相應(yīng)的技術(shù)普及。
關(guān)系數(shù)據(jù)庫(kù)已經(jīng)是數(shù)據(jù)庫(kù)體系的世界標(biāo)準(zhǔn)。當(dāng)開發(fā)一個(gè)數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序時(shí),大多數(shù)情況下用戶需要訪問(wèn)網(wǎng)絡(luò)(如Internet、Intranet等)上的數(shù)據(jù)信息,就RCDS就是建立在網(wǎng)絡(luò)的信息通訊之上,是完全的客戶機(jī)/服務(wù)器應(yīng)用程序。
SQL Server是一個(gè)可縮放、高性能的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),它的設(shè)計(jì)是為了滿足分布式客戶/服務(wù)器計(jì)算的需要,允許客戶應(yīng)用程序使用幾個(gè)特定的工具和技術(shù)控制從服務(wù)器檢索的數(shù)據(jù)。這些包括觸發(fā)器、存儲(chǔ)過(guò)程和規(guī)則的選項(xiàng)。因此,系統(tǒng)采用MS SQL Server7.0作為后臺(tái)數(shù)據(jù)庫(kù)。
數(shù)據(jù)模型通常有層次模型、網(wǎng)狀模型、關(guān)系模型及OO(面向?qū)ο螅┠P偷取F渲嘘P(guān)系模型是建立在數(shù)學(xué)概念基礎(chǔ)之上的一種模型,由若干個(gè)關(guān)系框架組成的集合,它也是到目前為止最為成熟的一種數(shù)據(jù)庫(kù)類型。本文RCDS采用MS SQL Server作為后臺(tái)數(shù)據(jù)庫(kù),根據(jù)數(shù)據(jù)庫(kù)工具和數(shù)據(jù)庫(kù)特點(diǎn),開發(fā)出一套可靠健壯的數(shù)據(jù)存儲(chǔ)方案。
整個(gè)數(shù)據(jù)庫(kù)共有AdminData、ChatNames、DesignUnits、Message、OnlineUnits、Products、RqtTasks、RqtTaskUnits、RqtDesignUnits、ShareData、Tasks、TaskUnits和UploadFiles等表格。在建立數(shù)據(jù)模型的時(shí)候首先考慮是要避免重復(fù)數(shù)據(jù),也就是建立規(guī)范化數(shù)據(jù)庫(kù)。規(guī)范化數(shù)據(jù)庫(kù)可以通過(guò)被稱為范式水平的指標(biāo)來(lái)衡量,級(jí)別有第一范式、第二范式和第三范式,通常第三范式就是要達(dá)到的目標(biāo),因?yàn)樗峁┝藬?shù)據(jù)冗余和開發(fā)簡(jiǎn)易性之間的最好折衷。
RCDS數(shù)據(jù)庫(kù)正是按照第三范式標(biāo)準(zhǔn)來(lái)設(shè)計(jì)的,它保證了模型的精簡(jiǎn)和表格的緊湊性。而第三范式標(biāo)準(zhǔn)也最大發(fā)揮了關(guān)系數(shù)據(jù)庫(kù)的優(yōu)勢(shì),圖3是部分表格的視圖鏈接情況。
圖3 關(guān)系表格視圖 4.1 并發(fā)控制的處理 在多個(gè)用戶同時(shí)訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)時(shí)就產(chǎn)生并發(fā)問(wèn)題,特別是在其中一些用戶對(duì)數(shù)據(jù)庫(kù)有添加或刪除修改等操作時(shí),那么其他所獲得的數(shù)據(jù)可能是一塌糊涂,甚至造成整個(gè)數(shù)據(jù)訪問(wèn)的沖突、終止,從而使系統(tǒng)發(fā)生混亂以至崩潰。RCDS采用的解決辦法是鎖定技術(shù),總體上分為共享鎖定和排它鎖定兩種類型(如圖4)。前者是指同時(shí)有幾個(gè)過(guò)程共享一個(gè)鎖定,比如一個(gè)用戶(或客戶)正在讀取一個(gè)數(shù)據(jù),雖然在這之前他已經(jīng)對(duì)該數(shù)據(jù)設(shè)置了鎖(LOCK),但其他用戶同樣可以(也只能是)讀取它。而排他鎖定一般應(yīng)用于對(duì)數(shù)據(jù)進(jìn)行修改或更新(包括添加刪除等)操作,即是用戶在修改一個(gè)數(shù)據(jù)之前設(shè)置了鎖定,在一定的時(shí)間里其他用戶是不能訪問(wèn)到該數(shù)據(jù)的,只有等待鎖定解除(UNLOCK)才能進(jìn)行訪問(wèn)到它,當(dāng)然在計(jì)算機(jī)處理的時(shí)候,其他的用戶一般是感覺(jué)不到有這個(gè)等待時(shí)間的。通過(guò)這樣的處理,就保證了數(shù)據(jù)的一致性。
a) 共享鎖定
b) 排它鎖定
圖4 安全鎖定類型
在ADO進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),它的鎖定類型相對(duì)來(lái)說(shuō)復(fù)雜一些。打開記錄集時(shí),可以指定鎖定類型。鎖定類型決定了當(dāng)不止一個(gè)用戶同時(shí)試圖改變一個(gè)記錄時(shí),數(shù)據(jù)庫(kù)應(yīng)如何處理。ADO中的鎖定主要有以下四種類型:
l AdLockReadOnly 指定你不能修改記錄集中的記錄
l AdLockPessimistic 指定在編輯一個(gè)記錄時(shí),立即鎖定它
l AdLockOptimstic 指定只有調(diào)用記錄集的Update方法時(shí),才鎖定記錄
l AdLockBatchOptimstic 指定記錄只能成批地更新
在缺省情況下,記錄集使用只讀鎖定。要指定不同的鎖定類型,可以在打開記錄集時(shí)包含這些鎖定常量之一。部分代碼如下:
… …
Set MyConn=Sever.CreateObject(“ADODB.Connection”)
//定義數(shù)據(jù)庫(kù)連接MyConn
Set RS=Sever.CreateObject(“ADODB.RecordSet”)
//定義返回?cái)?shù)據(jù)記錄集
MyConn.Open “ByktDB.dsn”//建立應(yīng)用程序與數(shù)據(jù)源的連接
RS.Open “SELECT * FROM Mytable”, MyConn, adOpenDynamic, adLockPessimistic
//進(jìn)行數(shù)據(jù)庫(kù)操作,并且設(shè)置鎖定
RS.Close
MyConn.Close
… …
數(shù)據(jù)的安全因素除了前面所提到的并行控制之外,還要考慮事務(wù)處理。網(wǎng)絡(luò)數(shù)據(jù)庫(kù)有其不同的地方,例如:假設(shè)某個(gè)時(shí)間有一個(gè)設(shè)計(jì)人員在你的站點(diǎn)上索取一些設(shè)計(jì)信息,有關(guān)的設(shè)計(jì)信息存儲(chǔ)在兩個(gè)表中。一個(gè)表用來(lái)保存該設(shè)計(jì)者的信息,另一個(gè)表包含了要索取的設(shè)計(jì)信息。該設(shè)計(jì)人員的信息已經(jīng)輸入了第一個(gè)表中。但是,就在這時(shí),發(fā)生了意外情況,一道閃電擊中了你的服務(wù)器,使第二個(gè)表沒(méi)有被更新。在這種情況下,一個(gè)健壯的系統(tǒng)就必須保證最后的結(jié)果是兩個(gè)表都沒(méi)有被更新過(guò)。這時(shí)候事務(wù)處理就發(fā)揮了重要的功效。
使用事務(wù)處理,你可以防止第二個(gè)表沒(méi)有被更新而第一個(gè)表被更新的情況出現(xiàn):當(dāng)一組語(yǔ)句構(gòu)成一個(gè)事務(wù)處理時(shí),如果一個(gè)語(yǔ)句沒(méi)有執(zhí)行成功,則所有的語(yǔ)句都不成功。不管是針對(duì)多個(gè)表,還是進(jìn)行表內(nèi)多個(gè)記錄的操作,它們所需要的安全保證是一樣的。事務(wù)處理的實(shí)現(xiàn)代碼如下:
… …
Set MyConn=Sever.CreateObject(“ADODB.Connection”)
MyConn.Open “ByktDB.dsn”
MyConn.BeginTrans //事務(wù)處理開始
MyConn.Execute “INSERT DataTable(Num) Values(‘3628’)”
MyConn.Execute “INSERT Shipping (Address) VALUES(‘Paris,F(xiàn)rance’)”
MyConn.CommitTrans //事務(wù)處理結(jié)束
MyConn.Close
… …
在上面這段代碼中,用BeginTrans方法和CommitTrans方法來(lái)標(biāo)記事務(wù)處理的開始和結(jié)束。在BeginTrans方法被調(diào)用之后,CommitTRans方法被調(diào)用之前,不管出現(xiàn)什么錯(cuò)誤,兩個(gè)表都不會(huì)被更新,在這個(gè)過(guò)程中所有處理的數(shù)據(jù)都保持了完全可靠的一致性。
5 結(jié)論 ADO是由微軟公司推出的以ActiveX技術(shù)為基礎(chǔ)的數(shù)據(jù)存取方法。它的主要特點(diǎn)是使用更加容易,訪問(wèn)速度更快,支持建立各種客戶/服務(wù)器模式與基于Web的應(yīng)用程序。RCDS正是采用ADO 所基于的OLE DB技術(shù),可以對(duì)電子郵件、文本文件、數(shù)據(jù)表格等各類數(shù)據(jù)通過(guò)統(tǒng)一的接口API接口進(jìn)行存取,是遠(yuǎn)程數(shù)據(jù)存取的一個(gè)主要發(fā)展方向。
篇12
1 通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序
1.1 概念
通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序中的外掛式主要以用戶界面為基本呈現(xiàn)形式,借助這種界面實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)內(nèi)容的靈活處理,并在相應(yīng)軟件系統(tǒng)開發(fā)的同時(shí),實(shí)現(xiàn)軟件和數(shù)據(jù)庫(kù)設(shè)計(jì)的開發(fā)和自定義設(shè)計(jì)。
1.2 參數(shù)傳遞的含義
通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序不僅需要應(yīng)用輔數(shù)據(jù)庫(kù)設(shè)計(jì),而且還需要通過(guò)模塊化參數(shù)信息的傳遞來(lái)實(shí)現(xiàn)對(duì)軟件模塊化的設(shè)計(jì)。這種設(shè)計(jì)一般需要應(yīng)用函數(shù)的形式來(lái)充分展現(xiàn)模塊的功能,并借助各種不同的參數(shù)代號(hào)信息實(shí)現(xiàn)各種不同的操作,進(jìn)而滿足不同程序模塊的設(shè)計(jì)需求,具體的實(shí)現(xiàn)方式如下所示:
(1)Q代表另一個(gè)表字段的名稱,能夠?qū)⒈淼挠涗浶畔囊粋€(gè)字段傳遞到另一個(gè)字段上,且這種字段在新增窗體中顯示為一種隱藏字段。
(2)B代表本字段的編輯可以省略掉最后一項(xiàng)的內(nèi)容。基本含義為類型、讀寫字段、名稱顯示、Where條件、Order排序等。
(3)R代表取值為主表傳入的字段值,基本含義為類型、本表字段名稱和父表字段的名稱。
(4)R含義為類型、表名、讀寫字段、顯示名稱、Select語(yǔ)句。
(5)S表示的是通用模塊中用戶自擬定義的字段。
(6)W表示不存在的表的字段。
1.3 通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序的特點(diǎn)
(1)能夠面向數(shù)據(jù)庫(kù)的管理進(jìn)行全方位詳細(xì)設(shè)計(jì)。這種詳細(xì)的設(shè)計(jì)包含視圖和存儲(chǔ)過(guò)程中數(shù)據(jù)庫(kù)設(shè)計(jì)常應(yīng)用的方法和技術(shù)。
(2)這種設(shè)計(jì)支持無(wú)代碼的程序開發(fā),具體的自定義設(shè)計(jì)能力很強(qiáng),在模塊化思想的支撐下能夠以參數(shù)的形式將模塊功能進(jìn)行輸入。
(3)能夠進(jìn)行流程化的處理。流程化的處理具體是指能夠?qū)崿F(xiàn)對(duì)已經(jīng)建立好的數(shù)據(jù)庫(kù)表格在外掛式的數(shù)據(jù)庫(kù)設(shè)計(jì)程序中進(jìn)行統(tǒng)一化的管理。
(4)開放式的數(shù)據(jù)管理。這種管理方式對(duì)數(shù)據(jù)庫(kù)的格式不限制,能夠?qū)W(wǎng)絡(luò)數(shù)據(jù)的設(shè)計(jì)和開發(fā)進(jìn)行支持。
2 通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序的實(shí)現(xiàn)方法
在DMES的系統(tǒng)管理中,數(shù)據(jù)庫(kù)表越多、呈現(xiàn)的關(guān)系越復(fù)雜則是越難管理。在離散式制造業(yè)通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序復(fù)雜的情況下,通用外掛式輔助數(shù)據(jù)庫(kù)系統(tǒng)怎樣實(shí)現(xiàn)對(duì)各種軟硬件的管理是有關(guān)人員需要面臨的問(wèn)題。
2.1 程序框架結(jié)構(gòu)的設(shè)計(jì)
通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序系統(tǒng)主要由以下幾部分組成:
2.1.1 管理程序
管理程序主要是對(duì)車間內(nèi)部的生產(chǎn)和執(zhí)行問(wèn)題進(jìn)行全面的負(fù)責(zé)和管理。
2.1.2 計(jì)劃服務(wù)程序
計(jì)劃服務(wù)程序能夠?qū)囬g內(nèi)部任務(wù)的布置和計(jì)劃的調(diào)整進(jìn)行全面的整合。
2.1.3 通信程序
通信程序主要是對(duì)施工現(xiàn)場(chǎng)作業(yè)的數(shù)據(jù)信息進(jìn)行采集,并在信息采集的基礎(chǔ)上有效實(shí)現(xiàn)軟件系統(tǒng)和硬件系統(tǒng)數(shù)據(jù)信息的交互性應(yīng)用。
2.1.4 接口程序
接口程序主要是實(shí)現(xiàn)DMES系統(tǒng)和其他系統(tǒng)進(jìn)行有效整合的重要系統(tǒng)數(shù)據(jù),能夠?yàn)樯a(chǎn)車間的上層系統(tǒng)提供一種全面化的服務(wù),是各種數(shù)據(jù)進(jìn)行交流和溝通的重要通道。程序框架結(jié)構(gòu)的設(shè)計(jì)如圖1所示。
2.2 DMES軟件系統(tǒng)主要解決的問(wèn)題
(1)在協(xié)助數(shù)據(jù)庫(kù)資源系統(tǒng)進(jìn)行有效管理的同時(shí),輔助系統(tǒng)軟件的開發(fā)。DMES軟件系統(tǒng)在對(duì)數(shù)據(jù)庫(kù)資源進(jìn)行有效管理的同時(shí),能夠應(yīng)用一種無(wú)代碼的開發(fā)技術(shù)來(lái)實(shí)現(xiàn)對(duì)軟件模塊的開發(fā),將軟件系統(tǒng)的開發(fā)模式由原來(lái)單純的代碼開發(fā)轉(zhuǎn)變?yōu)橐环N可配置的軟件開發(fā)模式。
(2)利用可視化管理數(shù)據(jù)庫(kù)表字段的方式進(jìn)一步提升數(shù)據(jù)庫(kù)表及其字段的可視化程度。
(3)利用通用性的輸入條件函數(shù),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)表格的關(guān)聯(lián)性操作,并利用不同的字母代表不同的操作模塊。
2.3 DMES軟件系統(tǒng)程序的實(shí)現(xiàn)
DMES軟件系統(tǒng)程序的實(shí)現(xiàn)應(yīng)用Delphi6.0進(jìn)行開發(fā),并采用ini的方式來(lái)保存系統(tǒng)相應(yīng)的配置,提升對(duì)數(shù)據(jù)庫(kù)信息的靈活化應(yīng)用,實(shí)現(xiàn)對(duì)各種數(shù)據(jù)庫(kù)鏈接的統(tǒng)一化管理。
3 結(jié)束語(yǔ)
通過(guò)實(shí)踐研究證明,這種設(shè)計(jì)程序的開發(fā)形式能夠在最大限度上縮短軟件程序的開發(fā)時(shí)間,減少軟件開發(fā)中的成本錯(cuò)誤問(wèn)題,方便了開發(fā)人員的工作程序,提升了工作人員的工作效率。為此需要有關(guān)人員對(duì)通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序進(jìn)行更深一步的研究。
參考文獻(xiàn)
[1]鐘潤(rùn)陽(yáng),戴青云,周科,戴鑫波,王進(jìn).通用外掛式輔助數(shù)據(jù)庫(kù)設(shè)計(jì)程序[J].計(jì)算機(jī)輔助工程,2009,01:83-86.
[2]鐘潤(rùn)陽(yáng),戴青云,周科.基于外掛式通用數(shù)據(jù)庫(kù)輔助設(shè)計(jì)程序的實(shí)現(xiàn)[A].廣東省科學(xué)技術(shù)協(xié)會(huì)、香港理工大學(xué)、廣東省機(jī)械工程學(xué)會(huì).第十屆粵港機(jī)電工程技術(shù)與應(yīng)用研討會(huì)暨梁天培教授紀(jì)念會(huì)文集[C].廣東省科學(xué)技術(shù)協(xié)會(huì)、香港理工大學(xué)、廣東省機(jī)械工程學(xué)會(huì),2008(04).
作者簡(jiǎn)介
篇13
數(shù)據(jù)庫(kù)設(shè)計(jì)其實(shí)就是根據(jù)需求要實(shí)現(xiàn)什么功能,需要存放什么數(shù)據(jù),然后我們根據(jù)這個(gè)來(lái)設(shè)計(jì)最優(yōu)的數(shù)據(jù)存儲(chǔ)方式,以及如何提高讀取數(shù)據(jù),新增數(shù)據(jù),更新刪除數(shù)據(jù)的速度。數(shù)據(jù)庫(kù)設(shè)計(jì)可分為需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段和物理設(shè)計(jì)階段這四個(gè)階段,這也是軟件工程化的思想。需求分析階段主要是和客戶溝通,了解客戶具體的需求,換句話說(shuō)就是去了解要存放什么數(shù)據(jù)。概念設(shè)計(jì)是根據(jù)需求分析階段得到的用戶需求,然后針對(duì)需求對(duì)數(shù)據(jù)庫(kù)做大體上的設(shè)計(jì)規(guī)劃。邏輯設(shè)計(jì)階段的主要任務(wù)是分析數(shù)據(jù)之間的相互關(guān)系,以及確定整體的設(shè)計(jì)框架。物理設(shè)計(jì)階段則是對(duì)每個(gè)表做具體的設(shè)計(jì),如定義字段、鍵主鍵等。
1 數(shù)據(jù)庫(kù)分析和設(shè)計(jì)階段
在數(shù)據(jù)庫(kù)的需求分析階段,需要開發(fā)人員深入到每一個(gè)需求客戶中去挖掘以及分析,弄清楚用戶的需求。絕大多數(shù)用戶對(duì)相關(guān)數(shù)據(jù)庫(kù)技術(shù)可能并不是很了解,開發(fā)人員盡量不要用專業(yè)詞語(yǔ)跟客戶溝通,其實(shí)很多時(shí)候用戶可能都不知道自己的準(zhǔn)確需求,因此這就需要調(diào)研人員從多種角度、多個(gè)方位去與用戶溝通交流,最大程度的弄明白用戶的各種需求。數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)就是基礎(chǔ)分析,這也是數(shù)據(jù)庫(kù)設(shè)計(jì)環(huán)節(jié)里難度最高、也最難控制的一個(gè)階段,一般都要經(jīng)過(guò)無(wú)數(shù)次重復(fù)的調(diào)研以及反向調(diào)研,才最終確定。同時(shí)需求分析的好壞,整個(gè)數(shù)據(jù)庫(kù)的設(shè)計(jì)都會(huì)受到影響,所以這一階段至關(guān)重要。強(qiáng)調(diào)一點(diǎn)的是,這個(gè)階段是伴隨數(shù)據(jù)庫(kù)設(shè)計(jì)整個(gè)周期的。在數(shù)據(jù)庫(kù)的概念設(shè)計(jì)階段,數(shù)據(jù)庫(kù)開發(fā)設(shè)計(jì)人員要從需求分析階段得出到的結(jié)果,從用戶的眼光出發(fā),勾勒出各種數(shù)據(jù)的處理細(xì)節(jié),彼此之間的聯(lián)系,最后讓用戶理解并能夠操作設(shè)計(jì)出的數(shù)據(jù)模型。在這個(gè)階段關(guān)系型數(shù)據(jù)庫(kù)呈現(xiàn)的是一種設(shè)計(jì)好的用戶需求E—R圖。在此基礎(chǔ)上,就算是在需求分析階段沒(méi)有全面充分考慮到或是遺漏的任務(wù)也可以做出及時(shí)的補(bǔ)救。實(shí)體關(guān)系圖可以一目了然的看清數(shù)據(jù)間的聯(lián)系與處理,并且還可以給數(shù)據(jù)庫(kù)開發(fā)設(shè)計(jì)人員,下一個(gè)環(huán)節(jié)的設(shè)計(jì)提前做好準(zhǔn)備,這也是數(shù)據(jù)庫(kù)設(shè)計(jì)最核心、最關(guān)鍵的部分。
2 數(shù)據(jù)庫(kù)邏輯與物理設(shè)計(jì)階段
數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)階段是指把上一階段獲得的,獨(dú)立于其他數(shù)據(jù)庫(kù)管理系統(tǒng)的E-R圖,轉(zhuǎn)換到另外一種具體的數(shù)據(jù)庫(kù)管理系統(tǒng)中,并做設(shè)計(jì)開發(fā)。這個(gè)階段需要考慮具體數(shù)據(jù)庫(kù)系統(tǒng)的支持的關(guān)系模型轉(zhuǎn)換,并根據(jù)已有的功能及結(jié)構(gòu)來(lái)把實(shí)體模型轉(zhuǎn)換為關(guān)系模型。設(shè)計(jì)數(shù)據(jù)庫(kù)的細(xì)節(jié)也是數(shù)據(jù)庫(kù)物理階段的設(shè)計(jì),類似于軟件工程的詳細(xì)設(shè)計(jì),需要設(shè)計(jì)數(shù)據(jù)的存儲(chǔ)類型、字段長(zhǎng)度的多少,主鍵設(shè)置什么字段,索引設(shè)置在哪些字段上,索引數(shù)量的建立,以及從數(shù)據(jù)庫(kù)整體結(jié)構(gòu)出發(fā)考慮到數(shù)據(jù)的安全性、完整性和效率性。這一階段說(shuō)起來(lái)簡(jiǎn)單明了,其實(shí)是需要深厚的數(shù)據(jù)庫(kù)設(shè)計(jì)功底和豐富的設(shè)計(jì)經(jīng)驗(yàn)才能設(shè)計(jì)得出完美的數(shù)據(jù)庫(kù)。一項(xiàng)索引就可以讓人探索研究很久,在哪里建索引,何時(shí)建、建多少?這些都不單是理論就能得到最優(yōu)的結(jié)果,需要長(zhǎng)期的積累和嘗試才能得到。
3 數(shù)據(jù)庫(kù)SQL的優(yōu)化
數(shù)據(jù)庫(kù)設(shè)計(jì)當(dāng)然不可缺少的是數(shù)據(jù)庫(kù)SQL的優(yōu)化,這里我們探討下數(shù)據(jù)庫(kù)SOL優(yōu)化要注意的幾點(diǎn):
1)勤用WHERE語(yǔ)句。這是設(shè)計(jì)人員都知曉的,數(shù)據(jù)庫(kù)查詢效率的高低程度,是人們?cè)u(píng)判數(shù)據(jù)庫(kù)設(shè)計(jì)的好與壞的一個(gè)重要標(biāo)準(zhǔn),不可懷疑,采用Where條件語(yǔ)句查詢數(shù)據(jù)庫(kù),可以提高數(shù)據(jù)庫(kù)查詢性能。如,在眾多報(bào)表統(tǒng)計(jì)的時(shí)候,如果數(shù)據(jù)量是非常大的時(shí)候我們導(dǎo)出數(shù)據(jù)都是有時(shí)間段限制。
2)靈活使用函數(shù)。如COUNT函數(shù),要合理放置COUNT函數(shù)的位置,在通過(guò)COUNT函數(shù)做統(tǒng)計(jì)記錄的時(shí)候,空行的記錄也是會(huì)考慮的因素,還有要靈活跟其它函數(shù)搭配使用,如與DISTINCT函數(shù)結(jié)合應(yīng)用等等。
3)只查詢必要顯示字段,少用*號(hào)。數(shù)據(jù)庫(kù)檢索的速度跟數(shù)據(jù)量的大小息息相關(guān),在查詢的時(shí)候,只查詢必要的數(shù)據(jù)及字段是必須要注意的,有時(shí)候,用戶不同的查詢需求可能大多數(shù)數(shù)據(jù)都是相同的,只有一少部分?jǐn)?shù)據(jù)不同,為此,我們就得考慮這些內(nèi)容是放在同一張表中還是不同的表呢,假如僅僅只考慮技術(shù)這方面,那兩者的實(shí)現(xiàn)也不會(huì)有太大的難度。可是,要是考慮數(shù)據(jù)庫(kù)的性能,那就需要利用不同的表滿足的不同的需求。一種是安全性的考慮,可以通過(guò)設(shè)置不同的訪問(wèn)權(quán)限設(shè)計(jì)不同的表格。可以看到,數(shù)據(jù)庫(kù)詳盡化,在權(quán)限控制上則會(huì)更加的靈活。另一方面,數(shù)據(jù)的查詢效率,跟數(shù)據(jù)內(nèi)容的多少也有非常密切的關(guān)系。設(shè)計(jì)人員必須學(xué)會(huì)依據(jù)不同用戶需求,設(shè)計(jì)出不同類型的表。也許可能這樣在設(shè)計(jì)的時(shí)候花的時(shí)間更多,物理空間占的跟大,但確可以提高數(shù)據(jù)庫(kù)的性能與安全性。這是非常劃算的。
4)利用注釋提高查詢語(yǔ)句的可讀性,這也是專家級(jí)的數(shù)據(jù)庫(kù)設(shè)計(jì)人員必備的習(xí)慣之一。注釋不會(huì)對(duì)數(shù)據(jù)庫(kù)性能產(chǎn)生任何不良影響,充其量就是占一定的物理磁盤空間,跟程序開發(fā)一樣,注釋提高代碼的可閱讀性,讓別人很輕易就看懂代碼,便于后續(xù)的維護(hù)和二次開發(fā)。在我們寫注釋的時(shí)候,應(yīng)該要注意一點(diǎn)。最好用英語(yǔ)寫,因?yàn)楸姸鄶?shù)據(jù)庫(kù)對(duì)中文的支持不好,在導(dǎo)入數(shù)據(jù)庫(kù)文件的時(shí)候可能會(huì)出現(xiàn)亂碼問(wèn)題,或者干脆被忽略掉。注釋的編寫也有規(guī)范的,雖然沒(méi)有那個(gè)數(shù)控公司提出這種規(guī)范,其實(shí)在業(yè)界已經(jīng)形成了注釋規(guī)范。如,寫函數(shù)或觸發(fā)器的時(shí)候,第一要說(shuō)明該函數(shù)或觸發(fā)器的功能作用。然后說(shuō)明要傳入?yún)?shù),有幾個(gè)參數(shù),分別說(shuō)明類型。然后有沒(méi)有返回值及返回值的類型等等。最后一點(diǎn)值得關(guān)注的是注釋所放的位置,通常都是放在函數(shù)和存儲(chǔ)過(guò)程的開頭。當(dāng)然個(gè)個(gè)函數(shù)體內(nèi)也是要寫一點(diǎn)必要的注釋,如太復(fù)雜的思維邏輯必須有注釋。
4 創(chuàng)建視圖