色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

數(shù)據(jù)庫設(shè)計(jì)技巧系列(一)——設(shè)計(jì)數(shù)據(jù)庫之前

設(shè)計(jì)數(shù)據(jù)庫之前

1. 考察現(xiàn)有環(huán)境

在設(shè)計(jì)一個(gè)新數(shù)據(jù)庫時(shí),你不但應(yīng)該仔細(xì)研究業(yè)務(wù)需求而且還要考察現(xiàn)有的系統(tǒng)。大多數(shù)數(shù)據(jù)庫項(xiàng)目都不是從頭開始建立的;通常,機(jī)構(gòu)內(nèi)總會(huì)存在用來滿足特定需求的現(xiàn)有系統(tǒng)(可能沒有實(shí)現(xiàn)自動(dòng)計(jì)算)。顯然,現(xiàn)有系統(tǒng)并不完美,否則你就不必再建立新系統(tǒng)了。但是對舊系統(tǒng)的研究可以讓你發(fā)現(xiàn)一些可能會(huì)忽略的細(xì)微問題。一般來說,考察現(xiàn)有系統(tǒng)對你絕對有好處。

— Lamont Adams

我曾經(jīng)接手過一個(gè)為地區(qū)運(yùn)輸公司開發(fā)的數(shù)據(jù)庫項(xiàng)目,活不難,用的是Access數(shù)據(jù)庫。我設(shè)置了一些項(xiàng)目設(shè)計(jì)參數(shù),而且同客戶一道對這些參數(shù)進(jìn)行了評估,事先還查看了開發(fā)環(huán)境下所采取的工作模式,等到最后部署應(yīng)用的時(shí)候,只見終端上出了幾個(gè)提示符然后立馬在我面前翹辮子了!抓耳撓腮的折騰了好幾個(gè)小時(shí),我才意識(shí)到,原來這家公司的網(wǎng)絡(luò)上跑著兩個(gè)數(shù)據(jù)庫應(yīng)用,而對網(wǎng)絡(luò)的訪問需要明確和嚴(yán)格的用戶帳號(hào)及其訪問權(quán)限。明白了這一點(diǎn),問題迎刃而解:只需采用客戶的系統(tǒng)即可。這個(gè)項(xiàng)目給我的教訓(xùn)就是:記住,假如你在諸如Access 或者Interbase 這類公共環(huán)境下開發(fā)應(yīng)用程序,一定要從表面下手深入系統(tǒng)內(nèi)部清楚你面臨的環(huán)境到底是怎么回事。

— kg

2. 定義標(biāo)準(zhǔn)的對象命名規(guī)范

一定要定義數(shù)據(jù)庫對象的命名規(guī)范。對數(shù)據(jù)庫表來說,從項(xiàng)目一開始就要確定表名是采用復(fù)數(shù)還是單數(shù)形式。此外還要給表的別名定義簡單規(guī)則(比方說,如果表名是一個(gè)單詞,別名就取單詞的前4 個(gè)字母;如果表名是兩個(gè)單詞,就各取兩個(gè)單詞的前兩個(gè)字母組成4個(gè)字母長的別名;如果表的名字由3 個(gè)單詞組成,你不妨從頭兩個(gè)單詞中各取一個(gè)然后從最后一個(gè)單詞中再取出兩個(gè)字母,結(jié)果還是組成4 字母長的別名,其余依次類推)對工作用表來說,表名可以加上前綴WORK_ 后面附上采用該表的應(yīng)用程序的名字。表內(nèi)的列要針對鍵采用一整套設(shè)計(jì)規(guī)則。比如,如果鍵是數(shù)字類型,你可以用_NO 作為后綴;如果是字符類型則可以采用 _CODE后綴。對列名應(yīng)該采用標(biāo)準(zhǔn)的前綴和后綴。再如,假如你的表里有好多“money”字段,你不妨給每個(gè)列增加一個(gè)_AMT 后綴。還有,日期列最好以DATE_作為名字打頭。

— richard

檢查表名、報(bào)表名和查詢名之間的命名規(guī)范。你可能會(huì)很快就被這些不同的數(shù)據(jù)庫要素的名稱搞糊涂了。假如你堅(jiān)持統(tǒng)一地命名這些數(shù)據(jù)庫的不同組成部分,至少你應(yīng)該在這些對象名字的開頭用table、query 或者report 等前綴加以區(qū)別。

— rrydenm

如果采用了Microsoft Access,你可以用qry、rpt、 tbl 和mod 等符號(hào)來標(biāo)識(shí)對象(比如tbl_Employees)。我在和SQL Server(或者Oracle)打交道的時(shí)候還用過tbl 來索引表,但我用sp_company (現(xiàn)在用sp_feft_)標(biāo)識(shí)存儲(chǔ)過程,因?yàn)樵谟械臅r(shí)候如果我發(fā)現(xiàn)了更好的處理辦法往往會(huì)保存好幾個(gè)拷貝。我在實(shí)現(xiàn) SQL Server 2000 時(shí)用udf_(或者類似的標(biāo)記)標(biāo)識(shí)我編寫的函數(shù)。

— Timothy J. Bruce

3. 預(yù)先計(jì)劃

上個(gè)世紀(jì)80 年代初,我還在使用資產(chǎn)帳目系統(tǒng)和System 38 平臺(tái),那時(shí)我負(fù)責(zé)設(shè)計(jì)所有的日期字段,這樣在不費(fèi)什么力氣的情況下將來就可以輕松處理2000 年問題了。許多人給我說就別去解決這一問題了,因?yàn)橐幚砥饋硖闊┝耍ㄟ@在世人皆知的Y2K 問題之前很久了)。我回?fù)粽f只要預(yù)先計(jì)劃今后就不會(huì)遇到大麻煩。結(jié)果我只用了兩周的時(shí)間就把程序全部改完了。因?yàn)轭A(yù)先計(jì)劃的好,后來Y2K 問題對該系統(tǒng)的危害降到了最低程度(最近聽說該程序甚至到了1995 年都還運(yùn)行在AS/400 系統(tǒng)上,唯一出現(xiàn)的小問題是從代碼中刪除注釋費(fèi)了點(diǎn)工夫)。

— generalist

4. 獲取數(shù)據(jù)模式資源手冊

正在尋求示例模式的人可以閱讀《 數(shù)據(jù)模式資源手冊 》一書,該書由Len Silverston、W. H.Inmon 和Kent Graziano 編寫,是一本值得擁有的最佳數(shù)據(jù)建模圖書。該書包括的章節(jié)涵蓋多種數(shù)據(jù)領(lǐng)域,比如人員、機(jī)構(gòu)和工作效能等。

— minstrelmike

5. 暢想未來,但不可忘了過去的教訓(xùn)

我發(fā)現(xiàn)詢問用戶如何看待未來需求變化非常有用。這樣做可以達(dá)到兩個(gè)目的:首先,你可以清楚地了解應(yīng)用設(shè)計(jì)在哪個(gè)地方應(yīng)該更具靈活性以及如何避免性能瓶頸;其次,你知道發(fā)生事先沒有確定的需求變更時(shí)用戶將和你一樣感到吃驚。

— chrisdk

一定要記住過去的經(jīng)驗(yàn)教訓(xùn)!我們開發(fā)人員還應(yīng)該通過分享自己的體會(huì)和經(jīng)驗(yàn)互相幫助。即使用戶認(rèn)為他們再也不需要什么支持了,我們也應(yīng)該對他們進(jìn)行這方面的教育,我們都曾經(jīng)面臨過這樣的時(shí)刻“當(dāng)初要是這么做了該多好??”。

— dhattrem

6. 在物理實(shí)踐之前進(jìn)行邏輯設(shè)計(jì)

在深入物理設(shè)計(jì)之前要先進(jìn)行邏輯設(shè)計(jì)。隨著大量的 CASE 工具不斷涌現(xiàn)出來,你的設(shè)計(jì)也可以達(dá)到相當(dāng)高的邏輯水準(zhǔn),你通常可以從整體上更好地了解數(shù)據(jù)庫設(shè)計(jì)所需要的方方面面。

— chardove

7. 了解你的業(yè)務(wù)

在你百分百地確定系統(tǒng)從客戶角度滿足其需求之前不要在你的ER(實(shí)體關(guān)系)模式中加入哪怕一個(gè)數(shù)據(jù)表(怎么,你還沒有模式?那請你參看技巧9)。了解你的企業(yè)業(yè)務(wù)可以在以后的開發(fā)階段節(jié)約大量的時(shí)間。一旦你明確了業(yè)務(wù)需求,你就可以自己做出許多決策 了。

— rangel

一旦你認(rèn)為你已經(jīng)明確 了業(yè)務(wù)內(nèi)容,你最好同客戶進(jìn)行一次系統(tǒng)的交流。采用客戶的術(shù)語并且向他們解釋你所想到的和你所聽到的。同時(shí)還應(yīng)該用可能、將會(huì)和必須等詞匯表達(dá)出系統(tǒng)的關(guān)系基數(shù)。這樣你就可以讓你的客戶糾正你自己的理解然后做好下一步的ER 設(shè)計(jì)。

— teburlew

8. 創(chuàng)建數(shù)據(jù)字典和ER 圖表

一定要花點(diǎn)時(shí)間創(chuàng)建ER 圖表和數(shù)據(jù)字典。其中至少應(yīng)該包含每個(gè)字段的數(shù)據(jù)類型和在每個(gè)表內(nèi)的主外鍵。創(chuàng)建ER 圖表和數(shù)據(jù)字典確實(shí)有點(diǎn)費(fèi)時(shí)但對其他開發(fā)人員要了解整個(gè)設(shè)計(jì)卻是完全必要的。越早創(chuàng)建越能有助于避免今后面臨的可能混亂,從而可以讓任何了解數(shù)據(jù)庫的人都明確如何從數(shù)據(jù)庫中獲得數(shù)據(jù)。

— bgumbert

有一份諸如ER 圖表等最新文檔其重要性如何強(qiáng)調(diào)都不過分,這對表明表之間關(guān)系很有用,而數(shù)據(jù)字典則說明了每個(gè)字段的用途以及任何可能存在的別名。對SQL 表達(dá)式的文檔化來說這是完全必要的。

— vanduin.chris.cj

9. 創(chuàng)建模式

一張圖表勝過千言萬語:開發(fā)人員不僅要閱讀和實(shí)現(xiàn)它,而且還要用它來幫助自己和用戶對話。模式有助于提高協(xié)作效能,這樣在先期的數(shù)據(jù)庫設(shè)計(jì)中幾乎不可能出現(xiàn)大的問題。模式不必弄的很復(fù)雜;甚至可以簡單到手寫在一張紙上就可以了。只是要保證其上的邏輯關(guān)系今后能產(chǎn)生效益。

— Dana Daigle

10. 從輸入輸出下手

在定義數(shù)據(jù)庫表和字段需求(輸入)時(shí),首先應(yīng)檢查現(xiàn)有的或者已經(jīng)設(shè)計(jì)出的報(bào)表、查詢和視圖(輸出)以決定為了支持這些輸出哪些是必要的表和字段。舉個(gè)簡單的例子:假如客戶需要一個(gè)報(bào)表按照郵政編碼排序、分段和求和,你要保證其中包括了單獨(dú)的郵政編碼字段而不要把郵政編碼糅進(jìn)地址字段里。

— peter.marshall

11. 報(bào)表技巧

要了解用戶通常是如何報(bào)告數(shù)據(jù)的:批處理還是在線提交報(bào)表?時(shí)間間隔是每天、每周、每月、每個(gè)季度還是每年?如果需要的話還可以考慮創(chuàng)建總結(jié)表。系統(tǒng)生成的主鍵在報(bào)表中很難管理。用戶在具有系統(tǒng)生成主鍵的表內(nèi)用副鍵進(jìn)行檢索往往會(huì)返回許多重復(fù)數(shù)據(jù)。這樣的檢索性能比較低而且容易引起混亂。

— kol

12. 理解客戶需求

看起來這應(yīng)該是顯而易見的事,但需求就是來自客戶(這里要從內(nèi)部和外部客戶的角度考慮)。不要依賴用戶寫下來的需求,真正的需求在客戶的腦袋里。你要讓客戶解釋其需求,而且隨著開發(fā)的繼續(xù),還要經(jīng)常詢問客戶保證其需求仍然在開發(fā)的目的之中。一個(gè)不變的真理是:“只有我看見了我才知道我想要的是什么”必然會(huì)導(dǎo)致大量的返工,因?yàn)閿?shù)據(jù)庫沒有達(dá)到客戶從來沒有寫下來的需求標(biāo)準(zhǔn)。而更糟的是你對他們需求的解釋只屬于你自己,而且可能是完全錯(cuò)誤的。

— kgilson

it知識(shí)庫數(shù)據(jù)庫設(shè)計(jì)技巧系列(一)——設(shè)計(jì)數(shù)據(jù)庫之前,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 临洮县| 图片| 厦门市| 丹凤县| 呈贡县| 汨罗市| 阿克苏市| 剑川县| 革吉县| 柳江县| 永和县| 阿拉善右旗| 重庆市| 荥经县| 商河县| 凉山| 华坪县| 清原| 梅州市| 白沙| 霞浦县| 治县。| 南岸区| 南投县| 兴安盟| 莱芜市| 荆州市| 庆元县| 岳西县| 额尔古纳市| 北流市| 莱西市| 海城市| 静海县| 太原市| 五华县| 安宁市| 宁海县| 辰溪县| 广元市| 永年县|