淺談數(shù)據(jù)庫(kù)設(shè)計(jì)技巧_第1頁(yè)
已閱讀1頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、淺談數(shù)據(jù)庫(kù)設(shè)計(jì)技巧淺談數(shù)據(jù)庫(kù)設(shè)計(jì)技巧數(shù)據(jù)庫(kù)的最初雛形據(jù)說(shuō)源自美國(guó)一個(gè)奶牛場(chǎng)的記賬薄(紙質(zhì)的,由此可見(jiàn),數(shù)據(jù)庫(kù)并不一定是存儲(chǔ)在電腦里的數(shù)據(jù)^_^),里面記錄的是該奶牛場(chǎng)的收支賬目,程序員在將其整理、錄入到電腦中時(shí)從中受到啟發(fā)。當(dāng)按照規(guī)定好的數(shù)據(jù)結(jié)構(gòu)所采集到的數(shù)據(jù)量大到一定程度后,出于程序執(zhí)行效率的考慮,程序員將其中的檢索、更新維護(hù)等功能分離出來(lái),做成單獨(dú)調(diào)用的模塊,這個(gè)模塊后來(lái)就慢慢發(fā)展、演變成現(xiàn)在我們所接觸到的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)

2、——程序開(kāi)發(fā)中的一個(gè)重要分支。下面進(jìn)入正題,首先給數(shù)據(jù)庫(kù)設(shè)計(jì)人員的功底分一下類:1、沒(méi)有系統(tǒng)學(xué)習(xí)過(guò)數(shù)據(jù)結(jié)構(gòu)的程序員。這類程序員的作品往往只是他們的即興玩具,他們往往習(xí)慣只設(shè)計(jì)有限的幾個(gè)表,實(shí)現(xiàn)某類功能的數(shù)據(jù)全部塞在一個(gè)表中,各表之間幾乎毫無(wú)關(guān)聯(lián)。網(wǎng)上不少的免費(fèi)管理軟件都是這樣的東西,當(dāng)程序功能有限,數(shù)據(jù)量不多的時(shí)候,其程序運(yùn)行起來(lái)沒(méi)有什么問(wèn)題,但是如果用其管理比較重要的數(shù)據(jù),風(fēng)險(xiǎn)性非常大。2、系統(tǒng)學(xué)習(xí)過(guò)數(shù)據(jù)結(jié)構(gòu),但是還沒(méi)有開(kāi)發(fā)過(guò)對(duì)程序效

3、率要求比較高的管理軟件的程序員。這類人多半剛從學(xué)校畢業(yè)不久,他們?cè)谠O(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu)時(shí),嚴(yán)格按照教科書上的規(guī)定,死扣ER圖和3NF(別灰心,所有的數(shù)據(jù)庫(kù)設(shè)計(jì)高手都是從這一步開(kāi)始的)。他們的作品,對(duì)于一般的access型輕量級(jí)的管理軟件,已經(jīng)夠用。但是一旦該系統(tǒng)需要添加新功能,原有的數(shù)據(jù)庫(kù)表差不多得進(jìn)行大換血。3、第二類程序員,在經(jīng)歷過(guò)數(shù)次程序效率的提升,以及功能升級(jí)的折騰后,終于升級(jí)成為數(shù)據(jù)庫(kù)設(shè)計(jì)的老鳥(niǎo),第一類程序員眼中的高人。這類程序員

4、可以勝任二十個(gè)表以上的中型商業(yè)數(shù)據(jù)管理系統(tǒng)的開(kāi)發(fā)工作。他們知道該在什么樣的情況下保留一定的冗余數(shù)據(jù)來(lái)提高程序效率,而且其設(shè)計(jì)的數(shù)據(jù)庫(kù)可拓展性較好,當(dāng)用戶需要添加新功能時(shí),原有數(shù)據(jù)庫(kù)表只需做少量修改即可。4、在經(jīng)歷過(guò)上十個(gè)類似數(shù)據(jù)庫(kù)管理軟件的重復(fù)設(shè)計(jì)后,第三類程序員中堅(jiān)持下來(lái)沒(méi)有轉(zhuǎn)行,而是希望從中找出“偷懶”竅門的有心人會(huì)慢慢覺(jué)悟,從而完成量變到質(zhì)變的轉(zhuǎn)換。他們所設(shè)計(jì)的數(shù)據(jù)庫(kù)表結(jié)構(gòu)有一定的遠(yuǎn)見(jiàn),能夠預(yù)測(cè)到未來(lái)功能升級(jí)所需要的數(shù)據(jù),從而預(yù)先

5、留下伏筆。這類程序員目前大多晉級(jí)成數(shù)據(jù)挖掘方面的高級(jí)軟件開(kāi)發(fā)人員。5、第三類程序員或第四類程序員,在對(duì)現(xiàn)有的各家數(shù)據(jù)庫(kù)管理系統(tǒng)的原理和開(kāi)發(fā)都有一定的鉆研后,要么在其基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),要么自行開(kāi)發(fā)一套有自主版權(quán)的通用數(shù)據(jù)庫(kù)管理系統(tǒng)。本文所列出的一些設(shè)計(jì)技巧只適合第二類和部分第三類數(shù)據(jù)庫(kù)設(shè)計(jì)人員。一、樹(shù)型關(guān)系的數(shù)據(jù)表一、樹(shù)型關(guān)系的數(shù)據(jù)表不少程序員在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候都遇到過(guò)樹(shù)型關(guān)系的數(shù)據(jù),例如常見(jiàn)的類別表,即一個(gè)大類,下面有若干個(gè)子類,

6、某些子類又有子類這樣的情況。當(dāng)類別不確定,用戶希type_layer(6)限定3層初始值為000000類別的先序遍歷,主要為減少檢索數(shù)據(jù)庫(kù)的次數(shù)按照這樣的表結(jié)構(gòu),我們來(lái)看看上面例子記錄在表中的數(shù)據(jù)是怎樣的:type_idtype_nametype_fathertype_layer1總類別00000002類別110100003類別1.120101004類別1.220102005類別210200006類別2.150201007類別31030

7、0008類別3.170301009類別3.2703020010類別1.1.13010101……現(xiàn)在按type_layer的大小來(lái)檢索一下:FROMType_table_2DERBYtype_layer列出記錄集如下:type_idtype_nametype_fathertype_layer1總類別00000002類別110100003類別1.1201010010類別1.1.130101014類別1.220102005類別21020000

8、6類別2.150201007類別310300008類別3.170301009類別3.27030200……現(xiàn)在列出的記錄順序正好是先序遍歷的結(jié)果。在控制顯示類別的層次時(shí),只要對(duì)type_layer字段中的數(shù)值進(jìn)行判斷,每2位一組,如大于0則向右移2個(gè)空格。當(dāng)然,我這個(gè)例子中設(shè)定的限制條件是最多3層,每層最多可設(shè)99個(gè)子類別,只要按用戶的需求情況修改一下type_layer的長(zhǎng)度和位數(shù),即可更改限制層數(shù)和子類別數(shù)。其實(shí),上面的設(shè)計(jì)不單單只在

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論