亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > 文庫 > 正文

數據庫設計指南之數據庫設計之前

2024-09-07 22:12:26
字體:
來源:轉載
供稿:網友

本文從實踐經驗總結了若干數據庫設計的技巧,供數據庫設計人員參閱使用。

最近找了些對數據庫設計頗有造詣的專業人士給大家傳授一些設計數據庫的技巧和經驗。從收到的130 個反饋中精選了若干個最佳技巧,編寫成本文,其內容分為5 個部分:

第1 部分 設計數據庫之前

1. 考察現有環境

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

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

2. 定義標準的對象命名規范

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

檢查表名、報表名和查詢名之間的命名規范。你可能會很快就被這些不同的數據庫要素的名稱搞糊涂了。假如你堅持統一地命名這些數據庫的不同組成部分,至少你應該在這些對象名字的開頭用table、query 或者report 等前綴加以區別。

如果采用了Microsoft Access,你可以用qry、rpt、tbl 和mod 等符號來標識對象(比如tbl_Employees)。我在和SQL Server(或者Oracle)打交道的時候還用過tbl 來索引表,但我用sp_company (現在用sp_feft_)標識存儲過程,因為在有的時候如果我發現了更好的處理辦法往往會保存好幾個拷貝。我在實現SQL Server 2000 時用udf_ (或者類似的標記)標識我編寫的函數。

3. 預先計劃

上個世紀80 年代初,我還在使用資產帳目系統和System 38 平臺,那時我負責設計所有的日期字段,這樣在不費什么力氣的情況下將來就可以輕松處理2000 年問題了。許多人給我說就別去解決這一問題了,因為要處理起來太麻煩了(這在世人皆知的Y2K 問題之前很久了)。我回擊說只要預先計劃今后就不會遇到大麻煩。結果我只用了兩周的時間就把程序全部改完了。因為預先計劃的好,后來Y2K 問題對該系統的危害降到了最低程度(最近聽說該程序甚至到了1995 年都還運行在AS/400 系統上,唯一出現的小問題是從代碼中刪除注釋費了點工夫)。

4. 獲取數據模式資源手冊

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

5. 暢想未來,但不可忘了過去的教訓

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

一定要記住過去的經驗教訓!我們開發人員還應該通過分享自己的體會和經驗互相幫助。即使用戶認為他們再也不需要什么支持了,我們也應該對他們進行這方面的教育,我們都曾經面臨過這樣的時刻“當初要是這么做了該多好;”。

6. 在物理實踐之前進行邏輯設計

在深入物理設計之前要先進行邏輯設計。隨著大量的CASE 工具不斷涌現出來,你的設計也可以達到相當高的邏輯水準,你通常可以從整體上更好地了解數據庫設計所需要的方方面面。

7. 了解你的業務

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

一旦你認為你已經明確了業務內容,你最好同客戶進行一次系統的交流。采用客戶的術語并且向他們解釋你所想到的和你所聽到的。同時還應該用可能、將會和必須等詞匯表達出系統的關系基數。這樣你就可以讓你的客戶糾正你自己的理解然后做好下一步的ER 設計。

8. 創建數據字典和ER 圖表

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

有一份諸如ER 圖表等最新文檔其重要性如何強調都不過分,這對表明表之間關系很有用,而數據字典則說明了每個字段的用途以及任何可能存在的別名。對SQL 表達式的文檔化來說這是完全必要的。

9. 創建模式

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

10. 從輸入輸出下手

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

11. 報表技巧

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

12. 理解客戶需求

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影免费观看电视剧大全| 欧美激情综合色| 国产最新精品视频| 97久久超碰福利国产精品…| 久久夜色精品亚洲噜噜国产mv| 亚洲激情在线视频| 精品动漫一区二区三区| 欧美一级片在线播放| 亚洲精品日韩激情在线电影| 国产aⅴ夜夜欢一区二区三区| 国产午夜精品全部视频在线播放| 日韩在线观看你懂的| 欧美日韩中国免费专区在线看| 不卡av在线网站| 国产自产女人91一区在线观看| 国产精品久久久久久久久免费| 久久精品视频99| 亚洲电影av在线| 国产精品久久久久久久久免费| 国产精品黄色av| 国产v综合ⅴ日韩v欧美大片| 中文字幕国产日韩| 国产日韩欧美日韩大片| 欧美做受高潮电影o| 精品成人av一区| 97视频网站入口| 欧美乱妇40p| 欧美电影在线观看高清| 国产成人精品视频在线观看| 亚洲成人动漫在线播放| 亚洲xxxx3d| 日韩电视剧免费观看网站| 国产精品成人av在线| 国产精品日韩欧美综合| 亚洲国产精品网站| 国产精品99蜜臀久久不卡二区| 欧美性少妇18aaaa视频| 91在线播放国产| 欧美乱大交xxxxx| 国精产品一区一区三区有限在线| 久久97精品久久久久久久不卡| 亚洲毛片在线免费观看| 成人免费高清完整版在线观看| 92看片淫黄大片看国产片| 久久亚洲国产精品成人av秋霞| 在线不卡国产精品| 国产日韩精品电影| 国模私拍一区二区三区| 日韩精品免费观看| 久久97久久97精品免视看| 欧美一区二区三区免费视| 超碰日本道色综合久久综合| 精品毛片三在线观看| 久久久av电影| 在线视频亚洲欧美| 国产日韩欧美综合| 欧美综合第一页| 亚洲欧美综合精品久久成人| 国产99视频在线观看| 国产日韩视频在线观看| 精品视频久久久久久| 国产在线久久久| 深夜福利日韩在线看| 国产精品美女呻吟| 国产精品99导航| 中文字幕在线观看亚洲| 一区二区三区www| 日韩欧美高清在线视频| 成人免费网站在线| 九九热精品视频在线播放| 影音先锋日韩有码| 久久av资源网站| 久久久精品视频在线观看| 高潮白浆女日韩av免费看| 色婷婷av一区二区三区在线观看| 亚洲www视频| 不卡在线观看电视剧完整版| 午夜精品久久久久久久久久久久久| 国产成人一区二区三区电影| 国内伊人久久久久久网站视频| 欧美极品美女视频网站在线观看免费| 亚洲国产高清自拍| 日韩综合中文字幕| 欧美又大又硬又粗bbbbb| 欧美主播福利视频| 久久久久久久久久久免费| 韩国美女主播一区| 欧美激情精品久久久久| yw.139尤物在线精品视频| 日韩在线视频二区| 亚洲成在人线av| 亚洲免费小视频| 久久成人18免费网站| 97视频在线免费观看| 成人免费看吃奶视频网站| 欧美性开放视频| 国产成人在线一区二区| 久久久精品国产亚洲| 久久精品男人天堂| 一区二区av在线| 久久久久久久97| 在线一区二区日韩| 欧美日韩亚洲一区二| 国产精品亚洲精品| 欧美猛少妇色xxxxx| 日韩视频在线一区| 丝袜美腿精品国产二区| 欧美美最猛性xxxxxx| 神马国产精品影院av| 国产精品夜色7777狼人| 久久av资源网站| 国产91精品久久久| 欧美性精品220| 岛国av一区二区在线在线观看| 国产91精品久久久久久| 国产亚洲激情视频在线| 精品久久久91| 欧美中文在线字幕| 日韩精品亚洲元码| 欧美精品videos性欧美| 成人免费视频xnxx.com| 亚洲娇小xxxx欧美娇小| 亚洲精品不卡在线| 国内揄拍国内精品少妇国语| 成人欧美一区二区三区在线| 国产专区欧美专区| 国产欧美精品一区二区三区介绍| 亚洲老头老太hd| 一区二区亚洲欧洲国产日韩| 国产精品户外野外| 91在线|亚洲| 久久久精品网站| 欧美第一淫aaasss性| 国产精品美乳在线观看| 日韩美女免费线视频| 57pao成人国产永久免费| 九色精品美女在线| 91av国产在线| 91美女高潮出水| 欧美肥臀大乳一区二区免费视频| 日韩激情av在线播放| 欧洲精品毛片网站| 欧美电影在线免费观看网站| 国产一区红桃视频| 18性欧美xxxⅹ性满足| 91精品免费看| 亚洲新声在线观看| 精品亚洲一区二区| 91精品国产高清自在线看超| 欧美亚洲另类在线| 伊人久久免费视频| 正在播放欧美视频| 久久精品视频亚洲| 国产欧美一区二区三区在线看| 亚洲综合自拍一区| 亚洲欧美日韩中文视频| 日韩福利伦理影院免费| 夜夜嗨av色综合久久久综合网| 亚洲国产精品久久久久久| 国产午夜精品视频免费不卡69堂| 午夜精品久久久久久99热| 久久手机免费视频| 国产一区二区精品丝袜| 欧美在线观看网址综合|