国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件開發(fā)中數(shù)據(jù)庫(kù)設(shè)計(jì)理論的實(shí)踐

2016-11-14 01:29:36姚萬(wàn)鵬
電子技術(shù)與軟件工程 2016年18期
關(guān)鍵詞:數(shù)據(jù)庫(kù)設(shè)計(jì)軟件開發(fā)實(shí)踐

姚萬(wàn)鵬

摘 要

在信息技術(shù)發(fā)展迅速的時(shí)代,數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用也日益廣泛。鑒于此,本文主要對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)遵循的原則、數(shù)據(jù)編程及實(shí)踐情況等相關(guān)問(wèn)題進(jìn)行了分析,以期為同行提供參考或借鑒。

【關(guān)鍵詞】軟件開發(fā) 數(shù)據(jù)庫(kù)設(shè)計(jì) 理論 實(shí)踐

在數(shù)據(jù)管理活動(dòng)中,數(shù)據(jù)庫(kù)是最新的技術(shù)之一,具有冗余度最低、結(jié)構(gòu)優(yōu)化、方便補(bǔ)充及數(shù)據(jù)獨(dú)立等優(yōu)點(diǎn),被認(rèn)為是大多數(shù)信息系統(tǒng)開發(fā)的前提,故在很多領(lǐng)域中得到了廣泛應(yīng)用。

1 數(shù)據(jù)庫(kù)設(shè)計(jì)的遵循原則

1.1 規(guī)范命名

不同的數(shù)據(jù)庫(kù)產(chǎn)品,其命名也應(yīng)各不相同。設(shè)計(jì)時(shí),應(yīng)使用大小寫字母的標(biāo)識(shí)方法,包括后臺(tái)程序代碼,且命名字符應(yīng)不超過(guò)30個(gè)。

1.2 避免數(shù)據(jù)冗余

盡可能減少數(shù)據(jù)庫(kù)中的冗余數(shù)據(jù),且要避免出現(xiàn)重復(fù)字段,以免操作時(shí)造成數(shù)據(jù)不一致。

1.3 對(duì)數(shù)據(jù)庫(kù)性能進(jìn)行調(diào)整

在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),設(shè)計(jì)人員通常會(huì)使用這兩種方法:

1.3.1 物理設(shè)計(jì)數(shù)據(jù)庫(kù)

主要是對(duì)內(nèi)部物理結(jié)構(gòu)進(jìn)行調(diào)整,然后選擇最優(yōu)的存取路徑,加快訪問(wèn)速度,進(jìn)一步提高空間利用率。

1.3.2 邏輯設(shè)計(jì)數(shù)庫(kù)

通過(guò)對(duì)數(shù)據(jù)庫(kù)性能進(jìn)作出調(diào)整,使連接運(yùn)算進(jìn)一步減少,有利于保持各個(gè)關(guān)系數(shù)量的合理水平,最終達(dá)到提高存取效率的效果。

1.4 禁用游標(biāo)

除非是個(gè)別要求,否則一般情況需禁用游標(biāo)。若使用游標(biāo)集合大數(shù)據(jù),程序極可能發(fā)生死機(jī)、等待的情況。若要使用游標(biāo),可考慮建立臨時(shí)表,在表內(nèi)輸入需要的數(shù)據(jù)后再行游標(biāo)處理,這可有效提升游標(biāo)性能。

1.5 一致性與完整性

為了保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性與完整性,可通過(guò)使用主鍵與外鍵、check達(dá)到這個(gè)目標(biāo)。

2 數(shù)據(jù)庫(kù)編程

標(biāo)準(zhǔn)SQL屬于一種非過(guò)程化查詢語(yǔ)言,功能豐富、操作統(tǒng)一、使用簡(jiǎn)單。以下主要對(duì)應(yīng)用系統(tǒng)中嵌入式ODBC、SQL及PL/SQL編程的相關(guān)問(wèn)題進(jìn)行分析。

2.1 嵌入式SQL

在程序語(yǔ)言中嵌入SQL語(yǔ)句,即為嵌入式SQL。比如,Java、C及C++稱為宿主語(yǔ)言,也稱主語(yǔ)言。

2.2 存儲(chǔ)過(guò)程

基本的SQL屬于高度非過(guò)程化語(yǔ)言。PL/SQL程序以塊為基本結(jié)構(gòu),塊和塊之間可相互嵌套,每個(gè)塊能完成一個(gè)邏輯操作。PL/SQL具有過(guò)程化語(yǔ)句功能,可起到擴(kuò)展SQL的作用。存儲(chǔ)主要包括創(chuàng)建、執(zhí)行與刪除這幾個(gè)環(huán)節(jié)。存儲(chǔ)過(guò)程進(jìn)行編譯與優(yōu)化后,可存儲(chǔ)于數(shù)據(jù)庫(kù)服務(wù)器,達(dá)到高效運(yùn)行的效果,不但使客戶機(jī)與服務(wù)器間的通信量下降,且有利于控制和維護(hù)。

2.3 ODBC編程

根據(jù)ODBC開發(fā)的應(yīng)用系統(tǒng),可分為用戶應(yīng)用程序、數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序、驅(qū)動(dòng)程序管理器及數(shù)據(jù)源這幾個(gè)部分。該類應(yīng)用系統(tǒng),主要的工作流程為:

2.3.1 數(shù)據(jù)源的配置

對(duì)數(shù)據(jù)源的配置,常用方法有兩種:

(1)使用數(shù)據(jù)源管理工具完成配置;

(2)利用ConfigDsn函數(shù)修改、刪除或增加數(shù)據(jù)源。

2.3.2 對(duì)環(huán)境進(jìn)行初始化處理

Driver Manager主要用于控制與配置環(huán)境屬性,并未關(guān)聯(lián)具體驅(qū)動(dòng)程序。當(dāng)應(yīng)用程序調(diào)用連接函數(shù),并連接某個(gè)數(shù)據(jù)源后,才可調(diào)用選擇的驅(qū)動(dòng)程序中的的SQLAlloc Handle,實(shí)現(xiàn)對(duì)環(huán)境句柄數(shù)據(jù)結(jié)構(gòu)的真正分配。

2.3.3 建立連接

與數(shù)據(jù)源連接后,可實(shí)現(xiàn)對(duì)應(yīng)用程序與連接句病的分配,并需要在已經(jīng)設(shè)置好的用戶名ID、數(shù)據(jù)源名稱與口令中輸入?yún)?shù)。

2.3.4 語(yǔ)句句柄的分配

在對(duì)SQL所有語(yǔ)句進(jìn)行處理前,應(yīng)用程序需先分配有1個(gè)語(yǔ)句句柄。在語(yǔ)句句柄中,必須包含真實(shí)的SQL語(yǔ)句、輸出結(jié)果集等重要信息。在后期執(zhí)行的函數(shù)中,要求語(yǔ)句句柄為必要性輸入?yún)?shù)。

2.3.5 SQL語(yǔ)句的執(zhí)行

應(yīng)用程序?qū)QL語(yǔ)句的處理方式,主要有2種,分別是直接執(zhí)行、預(yù)處理。如果SQL含參數(shù),可對(duì)SQL Bind Parameter進(jìn)行調(diào)用,并綁定至應(yīng)用程序變量。

2.3.6 對(duì)結(jié)果集的處理

2.3.7 中止處理

3 實(shí)踐要點(diǎn)分析

進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。最終目的是為用戶與操作系統(tǒng)營(yíng)造高效的運(yùn)行環(huán)境。數(shù)據(jù)庫(kù)設(shè)計(jì),從規(guī)范角度來(lái)說(shuō)可分成6個(gè)階段。

3.1 需求分析

這是數(shù)據(jù)庫(kù)設(shè)計(jì)第一階段,也是最重要階段。進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),首要工作是對(duì)用戶需求有較精準(zhǔn)的了解。在該階段,需進(jìn)行分析的需求主要包括這些,如信息需求、安全性與完整性需求、處理要求。這些需求反映的是用戶基本需求,通過(guò)它們可獲取到一些有用的數(shù)據(jù)信息,如數(shù)據(jù)定義、類型等。

3.2 概念結(jié)構(gòu)的設(shè)計(jì)

該環(huán)節(jié)也是數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵部分。其中,最重要的則是找出數(shù)據(jù)間的內(nèi)在關(guān)聯(lián),并對(duì)用戶需求進(jìn)行歸納與總結(jié),形成一個(gè)抽象的概念模型。在實(shí)踐過(guò)程中,以視圖集成設(shè)計(jì)、集中式模式設(shè)計(jì)這兩種方法為主。前者主要是先分解一個(gè)單位,再對(duì)局部各個(gè)部分進(jìn)行分解,最后建立起每個(gè)部分視圖,在視圖基礎(chǔ)上集成。后者是以需求為基礎(chǔ),由一個(gè)統(tǒng)一機(jī)構(gòu)或者操作人員設(shè)計(jì)出綜合的全局模式,多適用于復(fù)雜程度較低的企事業(yè)單位軟件產(chǎn)品的設(shè)計(jì)中。

3.3 邏輯結(jié)構(gòu)設(shè)計(jì)

在該環(huán)節(jié)中,對(duì)外模式關(guān)系的設(shè)計(jì)十分重要。具體而言,主要包括三個(gè)方面的內(nèi)容:

(1)數(shù)據(jù)具有邏輯獨(dú)立性時(shí),軟件成品受邏輯模式的影響較小。

(2)可滿足用戶對(duì)不同數(shù)據(jù)的需求。因?yàn)榇蠖鄶?shù)據(jù)庫(kù)結(jié)構(gòu)巨大,當(dāng)發(fā)送用戶需求時(shí),可自動(dòng)將用戶不需要的模式屏蔽,僅呈現(xiàn)需要的模式。

(3)應(yīng)融入保密功能。當(dāng)用戶獲取數(shù)據(jù)時(shí),不相關(guān)數(shù)據(jù)會(huì)被屏蔽,用戶只能看到需要的數(shù)據(jù)。

3.4 物理設(shè)計(jì)

該環(huán)節(jié)的工作內(nèi)容主要是調(diào)整數(shù)據(jù)庫(kù)內(nèi)的物理結(jié)構(gòu),并合理選擇存儲(chǔ)路徑,多采用集簇、索引設(shè)計(jì)與分區(qū)設(shè)計(jì)的方式。

3.5 驗(yàn)證設(shè)計(jì)

在設(shè)計(jì)或建立每一個(gè)數(shù)據(jù)庫(kù)時(shí),往往需要進(jìn)行反復(fù)驗(yàn)證。假如數(shù)據(jù)庫(kù)內(nèi)步驟或者數(shù)據(jù)被損壞或者出錯(cuò),必須及時(shí)校正,并盡快恢復(fù)正常。

3.6 軟件運(yùn)行與維護(hù)

這是最后一個(gè)環(huán)節(jié)。當(dāng)數(shù)據(jù)正式運(yùn)行后,應(yīng)經(jīng)常對(duì)其進(jìn)行調(diào)整與維護(hù)。

4 小結(jié)

由上述可知,軟件開發(fā)的數(shù)據(jù)庫(kù)設(shè)計(jì)是一項(xiàng)非常重要的工作,與整個(gè)系統(tǒng)后期的穩(wěn)定運(yùn)行密切相關(guān)。在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),應(yīng)遵循相關(guān)原則,并在對(duì)各種關(guān)系數(shù)據(jù)庫(kù)進(jìn)行有效處理,以提高數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用的合理性。

參考文獻(xiàn)

[1]賈榮秀,周楊.軟件開發(fā)中數(shù)據(jù)庫(kù)設(shè)計(jì)理論的思考[J].信息與電腦,2016(09):119-120.

猜你喜歡
數(shù)據(jù)庫(kù)設(shè)計(jì)軟件開發(fā)實(shí)踐
試論數(shù)據(jù)庫(kù)設(shè)計(jì)在網(wǎng)站開發(fā)中的應(yīng)用
信息安全環(huán)境下的計(jì)算機(jī)軟件開發(fā)研究
基于WEB的科研信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
建模技術(shù)在軟件開發(fā)中的應(yīng)用
核電廠定期試驗(yàn)管理軟件開發(fā)
科技視界(2016年21期)2016-10-17 20:50:03
初中政治教學(xué)中強(qiáng)化新八德教育探討
成才之路(2016年26期)2016-10-08 11:14:30
體驗(yàn)式學(xué)習(xí)在數(shù)學(xué)教學(xué)中的應(yīng)用研究
成才之路(2016年25期)2016-10-08 10:50:54
生物專業(yè)師范生教學(xué)實(shí)習(xí)的問(wèn)題與對(duì)策研究
成才之路(2016年25期)2016-10-08 10:01:19
FPGA軟件開發(fā)過(guò)程中編碼規(guī)范的作用
科技視界(2016年20期)2016-09-29 13:35:10
校企協(xié)同實(shí)施高職專業(yè)課程改革的實(shí)踐研究
科技視界(2016年20期)2016-09-29 12:54:06
云和县| 江达县| 晴隆县| 托克逊县| 宁蒗| 灵川县| 海盐县| 宾川县| 吉安县| 云龙县| 丰镇市| 海安县| 南阳市| 万宁市| 高要市| 武隆县| 叙永县| 阳春市| 济宁市| 常山县| 翁牛特旗| 上杭县| 芮城县| 绥德县| 温宿县| 乡城县| 饶河县| 弥勒县| 通榆县| 江孜县| 桐庐县| 苍溪县| 龙游县| 盐源县| 和顺县| 罗田县| 凤翔县| 墨脱县| 织金县| 河池市| 百色市|