欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      數(shù)據(jù)庫(kù)設(shè)計(jì)(5篇材料)

      時(shí)間:2019-05-15 08:33:40下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《數(shù)據(jù)庫(kù)設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《數(shù)據(jù)庫(kù)設(shè)計(jì)》。

      第一篇:數(shù)據(jù)庫(kù)設(shè)計(jì)

      目 錄 1 設(shè)計(jì)時(shí)間.....................................................................................................................................................1 2 設(shè)計(jì)目的.....................................................................................................................................................1 3 設(shè)計(jì)任務(wù).....................................................................................................................................................1 4 設(shè)計(jì)內(nèi)容................................................................................................................................................1 4.1需求分析...................................................................................................................................................2 4.2概念結(jié)構(gòu)設(shè)計(jì)...................................................................................................................................................2 4.3邏輯結(jié)構(gòu)設(shè)計(jì)...................................................................................................................................................5 4.5數(shù)據(jù)庫(kù)表空間和表設(shè)計(jì)...................................................................................................................................................6 4.6數(shù)據(jù)庫(kù)的實(shí)施...................................................................................................................................................8 4.7創(chuàng)建其它數(shù)據(jù)庫(kù)對(duì)象....................................................................................................................................................10 5總結(jié)與展望........................................................................................................................................................11 參考文獻(xiàn).......................................................................................................................................................12 設(shè)計(jì)時(shí)間

      時(shí)間:17周(2011年6月3~2011年6月8日)2 設(shè)計(jì)目的

      數(shù)據(jù)庫(kù)原理及應(yīng)用課程設(shè)計(jì)是軟件工程專業(yè)集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完《數(shù)據(jù)庫(kù)原理及應(yīng)用》課程后進(jìn)行的一次全面的綜合練習(xí)。其目的在于加深對(duì)數(shù)據(jù)庫(kù)基礎(chǔ)理論和基本知識(shí)的理解,掌握使用數(shù)據(jù)庫(kù)進(jìn)行軟件設(shè)計(jì)的基本方法,提高運(yùn)用數(shù)據(jù)庫(kù)解決實(shí)際問(wèn)題的能力,最終實(shí)現(xiàn)對(duì)于給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。同時(shí),此次設(shè)計(jì)對(duì)于同學(xué)將來(lái)的畢業(yè)設(shè)計(jì)和具體工作實(shí)踐將有重要的意義。近年來(lái),隨著計(jì)算機(jī)技術(shù)的發(fā)展和電腦的普及,特別是企業(yè)上網(wǎng)工程和辦公自動(dòng)化的進(jìn)展迅猛,越來(lái)越多的企業(yè)在管理部門紛紛采用MIS通過(guò)辦公室的一臺(tái)PC機(jī)完成復(fù)雜的日常業(yè)務(wù)處理,從而減少工作量提高效率。在這樣的背景下,更多的國(guó)有大中型企業(yè)從中受益。通常這樣的企業(yè)存在部門多,業(yè)務(wù)雜,數(shù)據(jù)流量大的特點(diǎn),如果在各個(gè)部門使用一個(gè)針對(duì)性強(qiáng),操作簡(jiǎn)單而數(shù)據(jù)處理功能強(qiáng)大的MIS,無(wú)疑是能起到事半功倍的效果。3 設(shè)計(jì)任務(wù)

      房產(chǎn)管理系統(tǒng)應(yīng)具有分房、調(diào)房、退房和咨詢統(tǒng)計(jì)功能,同時(shí)應(yīng)能對(duì)房產(chǎn)信息、住房信息、住戶基本信息及住戶家庭信息等進(jìn)行管理,并建立住房和住戶之間的對(duì)應(yīng)關(guān)系。對(duì)這些信息應(yīng)能進(jìn)行方便快捷的新增、修改和刪除等操作,另外還能快速找到所需的信息,這個(gè)就是 需要查詢功能 4 設(shè)計(jì)內(nèi)容

      房產(chǎn)管理系統(tǒng)。系統(tǒng)主要功能 1.分房,調(diào)房,退房詢,咨統(tǒng)計(jì)

      2.用戶可以查詢房產(chǎn)信息,住房信息,住戶信息,住戶家庭信息 3.刪除,修改,新增信息 4.1需求分析

      房產(chǎn)科把用戶申請(qǐng)表(按照統(tǒng)一的格式由用戶填寫)輸入系統(tǒng)后,系統(tǒng)首先檢查申請(qǐng)表的合法性,對(duì)不合法的申請(qǐng)表系統(tǒng)拒絕接受,對(duì)合法的申請(qǐng)表根據(jù)類型分別進(jìn)行處理。

      如果是分房申請(qǐng),則根據(jù)申請(qǐng)者的情況計(jì)算其分?jǐn)?shù),當(dāng)分?jǐn)?shù)高于閾值分?jǐn)?shù)時(shí),按分?jǐn)?shù)高低將申請(qǐng)單插到分房隊(duì)列的適當(dāng)位置。每月最后一天進(jìn)行一次分房活動(dòng),從空房文件中讀出空房信息,把好房?jī)?yōu)先分配給排在分房隊(duì)列前面的符合該登記住房條件的申請(qǐng)者,從空房文件中刪除掉這個(gè)房號(hào)的信息,從分房隊(duì)列中刪除申請(qǐng)單,并把此房號(hào)的信息和住戶信息一起寫到住房文件中,輸出住房分配單給住戶,同時(shí)計(jì)算房租并將算出的房租寫到房租文件中。如果是調(diào)房申請(qǐng),則根據(jù)申請(qǐng)者的情況確定其住房等級(jí),然后在空房文件中查找屬于給等級(jí)的空房,退掉原住房,再進(jìn)行與分房類似的處理。如果是退房申請(qǐng),則從住房文件和房租文件中刪除有關(guān)的信息,再把此房號(hào)的信息寫到空房文件中。

      住戶可向系統(tǒng)詢問(wèn)目前分房的閾值分?jǐn)?shù),居住某類房屋的條件,某房號(hào)的單位面積房租等信息。房產(chǎn)科可以要求系統(tǒng)打印出住房情況的統(tǒng)計(jì)表,或更改某類房屋的居住條件、單位面積房租等。

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

      E-R圖是分為兩部分實(shí)體和屬性,每個(gè)實(shí)體可以有多個(gè)屬性,這些屬性用來(lái)表示實(shí)體的性質(zhì)。不同實(shí)體之間可以用關(guān)系進(jìn)行連接,表明各個(gè)實(shí)體之間的內(nèi)在聯(lián)系。實(shí)體和實(shí)體之間的關(guān)系有一對(duì)一的關(guān)系(1:1),一對(duì)多的關(guān)系(1:N)和多對(duì)多的關(guān)系(N:M)。4.2.1 用戶與住房E-R圖 圖 4.2.1

      4.2.2 管理員與用戶E-R圖

      圖4.2.2 4.2.3操作員和住房E-R圖

      圖4.2.3

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

      數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型的過(guò)程。從此開始便進(jìn)入了“實(shí)現(xiàn)設(shè)計(jì)”階段,需要考慮到具體的DBMS的性能、具體的數(shù)據(jù)模型特點(diǎn)。

      從E-R圖所表示的概念模型可以轉(zhuǎn)換成任何一種具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀模型、層次模型和關(guān)系模型。這里只討論關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)問(wèn)題,所以只介紹E-R圖如何向關(guān)系模型進(jìn)行轉(zhuǎn)換。

      關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。E-R圖則是由實(shí)體,實(shí)體的屬性和實(shí)體間的聯(lián)系三個(gè)要素組成。所以將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體,實(shí)體的屬性和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。轉(zhuǎn)換原則如下。

      1.實(shí)體類型的轉(zhuǎn)換:一個(gè)實(shí)體型轉(zhuǎn)換成一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。

      2.聯(lián)系類型的轉(zhuǎn)換,根據(jù)不同的情況做不同的處理。

      (1)一個(gè)1:1的聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。如果與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。

      (2)一個(gè)1:N的聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與N端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為N端實(shí)體的碼。(3)一個(gè)M:N聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼為各實(shí)體碼的組合。(4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)休的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。

      (5)具有相同碼的關(guān)系模式可合并。

      3.根據(jù)學(xué)生宿舍管理系統(tǒng)的E-R圖轉(zhuǎn)換為關(guān)系模型如下。

      將每一個(gè)實(shí)體轉(zhuǎn)換成一個(gè)關(guān)系(關(guān)系就是給出關(guān)系名,屬性就是實(shí)體屬性,并標(biāo)明該關(guān)系的主鍵用下劃線來(lái)表示)關(guān)系模式:

      用戶信息表(戶主,部門,職稱,人口,房號(hào))住房要求(戶主,要求)住房標(biāo)準(zhǔn)(面積,最低分?jǐn)?shù))

      房產(chǎn)文件(房號(hào),住房面積,分配標(biāo)志,房租)

      住房文件(戶主,職稱,部門,人口,分?jǐn)?shù),房號(hào),住房面積)分房要求(戶主,部門,職稱,人口,分?jǐn)?shù),要求面積)退房要求(部門,房號(hào))

      調(diào)房要求(戶主,部門,職稱,人口,分?jǐn)?shù),面積,房號(hào),申請(qǐng)面積)以上關(guān)系模式均為3NF。

      4.5數(shù)據(jù)庫(kù)表空間和表結(jié)構(gòu)設(shè)計(jì)

      4.6數(shù)據(jù)庫(kù)的實(shí)施

      1、登錄信息loca-in create table loca-in(Local-id char(20)not null, Local-p char(20)not null Local-r char(10)not null)tablespace susyhe_data;

      2、用戶信息表user_info create table user_info(huzhu char(20)not null, primary key(huzhu)bumen char(20)not null, zhicheng char(10)not null, renkou char(8), fanghao int)tablespace sushe _data;

      3、住房要求user_q create table user_q(huzhu char(20)not null, foreign key references faculty(huzhu), yaoqiu char(10)not null,)tablespace sushe_data;

      4、住房標(biāo)準(zhǔn)zhu_b create table zhu_b(mianji int not null, primary key(huzhu), zuidifenshu int not null,)tablespace sushe _data;

      5、住房文件zhu_w create table zhu_w(huzhu char(20)not null, primary key(huzhu)zhicheng char(10)not null, bumen char(20)not null, foreign key references major(bumen), fenshu int not null, renkou int fanghao char(4)zhufangmianji int)tablespace sushe _data;

      6、房產(chǎn)文件fang_w create table fang_w(fanghao char(4)primary key, fenpeibiaozhi char(4)not null, fangzu int not null, zhufangmianji int not null,)Tablespace sushe_data;

      7、分房要求fang_q create table fang_q(huzhu char(20)primary key not null, bumen char(20)not null, zhicheng char(10)not null, renkou int not null, fenshu int not null, yaoqiumianji int not nul)tablespace sushe_data;

      8、調(diào)房要求tiao_q create table tiao_q(huzhu char(20)not null, primary key bymen char(20)not null, zhicheng char(10)not null renkou int not null fenshu int not null mianji int not null fanghao char(4)not null shenqingmianji int not null)tablespace sushe_data;

      9、退房要求tui_q create table tui_q(bumen char(20)primary key, fanghao char(4)not null,)tablespace sushe_data;

      4.7創(chuàng)建其它數(shù)據(jù)庫(kù)對(duì)象 視圖的創(chuàng)建:

      創(chuàng)建視圖用于查尋用戶信息 CREATE VIEW yhxx AS SELECT yaoqiu,zhufangmianji FROM user_info JOIN user_q ON user_info.huzhu= user_q.huzhu JOIN zhu_w ON user_q.huzhu=zhu_w.huzhu 觸發(fā)器的創(chuàng)建:

      創(chuàng)建觸發(fā)器zfq,使得在退房要求表中執(zhí)行退房申請(qǐng)時(shí),則從住房文件和房租文 件中刪除有關(guān)的信息,再把此房號(hào)的信息寫到空房文件中

      CREATE TRIGGER zfq ON tui_q FOR delect AS BEGIN delect tui_q SET bumen,fanghao to fang_w END.存儲(chǔ)過(guò)程的創(chuàng)建:

      創(chuàng)建一個(gè)存儲(chǔ)過(guò)程fang_w1,輸入房號(hào),返回分配標(biāo)志,房租,住房面積。(一個(gè)輸入變量,三個(gè)輸出變量)

      CREATE PROC fang_w1 @fanghao char(4),@fenpeibiaozhi char(4)output,@fangzu int output,@zhufangmianji int output, AS SELECT @fenbeibiaozhi=分配標(biāo)志,@fangzu=房租,@zhufangmianji=住房面積 FROM fang_w WHERE 房號(hào)=@fangha 5總結(jié)與展望

      在課程設(shè)計(jì)中也遇到很多問(wèn)題,在和同學(xué)與老師交流過(guò)程中都得到解決,也處理了一些在理論課上沒(méi)遇到的問(wèn)題與困難,對(duì)今后學(xué)習(xí)很有幫助。短短一周的課程設(shè)計(jì)已經(jīng)結(jié)束,在課程設(shè)計(jì)中每個(gè)人都遇到了一定的問(wèn)題,通過(guò)老師和同學(xué)的幫助、指導(dǎo)所有問(wèn)題都得到了解決,也使自己對(duì)一些問(wèn)題有了新的看法和認(rèn)識(shí)。在這一周中,通過(guò)我們的親身實(shí)踐和學(xué)習(xí)不僅鞏固了之前所學(xué)的知識(shí),也使自己明白了之前學(xué)習(xí)中的盲點(diǎn)。

      課程設(shè)計(jì)是開放教育試點(diǎn)專業(yè)學(xué)生整個(gè)學(xué)習(xí)過(guò)程中的一個(gè)重要實(shí)踐環(huán)節(jié),通過(guò)課程設(shè)計(jì)認(rèn)識(shí)到自己的不足,例如,缺乏動(dòng)手能力,平時(shí)大家都學(xué)習(xí)理論知識(shí),所以實(shí)踐能力相對(duì)薄弱,出現(xiàn)眼高手低的情況,在實(shí)際操作中會(huì)出現(xiàn)各種錯(cuò)誤。課程設(shè)計(jì)也是學(xué)生在校學(xué)習(xí)期間學(xué)習(xí)成果的綜合總結(jié),它對(duì)于培養(yǎng)學(xué)生的科研能力,提高其綜合能力及全面素質(zhì)具有重要的意義。參考文獻(xiàn)

      [1] 王珊.薩師煊《數(shù)據(jù)庫(kù)系統(tǒng)概論》.高等教育出版社.2011 [2] 張龍祥.數(shù)據(jù)庫(kù)原理與設(shè)計(jì).北京:人民郵電出版社.2000 [3] 李紅.數(shù)據(jù)庫(kù)原理與應(yīng)用.北京:高等教育出版社.2002 [4] 王能斌.數(shù)據(jù)庫(kù)系統(tǒng)原理.北京:電子工業(yè)出版社.2002 [5] 張立科.信息管理系統(tǒng)開發(fā)實(shí)例導(dǎo)航.北京:人民郵電出版社.2005 [6] 邵洋.數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)實(shí)例導(dǎo)航.北京:人民郵電出版社.2003 [7] 李振格.sql server 2000 中文版入門與提高.清華大學(xué)出版社.2008

      第二篇:數(shù)據(jù)庫(kù)設(shè)計(jì)流程

      數(shù)據(jù)庫(kù)設(shè)計(jì)流程

      目前數(shù)據(jù)庫(kù)設(shè)計(jì)一般分為6個(gè)階段,即需求分析階段,概念結(jié)構(gòu)設(shè)計(jì)階段,邏輯結(jié)構(gòu)設(shè)計(jì)階段,物理結(jié)構(gòu)設(shè)計(jì)階段,實(shí)施階段,運(yùn)行與維護(hù)階段。

      (1)需求分析階段

      需求分析階段的主要任務(wù)是指通過(guò)充分調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象, 詳細(xì)了解計(jì)算機(jī)系統(tǒng)的工作情況, 明確用戶的各種需求, 然后確定系統(tǒng)的各項(xiàng)功能。數(shù)據(jù)庫(kù)系統(tǒng)不僅要按照當(dāng)前的應(yīng)用要求來(lái)設(shè)計(jì), 而且必須充分考慮今后可能的擴(kuò)充和改變。

      (2)概念結(jié)構(gòu)設(shè)計(jì)階段

      概念結(jié)構(gòu)設(shè)計(jì)階段的主要任務(wù)是將需求分析階段所得到的用戶需求抽象為概念模型, 而描述概念模型的具體工具主要是E-R 模型。

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

      邏輯結(jié)構(gòu)設(shè)計(jì)階段的主要任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)的基本E-R 模型轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。具體來(lái)說(shuō), 就是首先將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型, 然后將轉(zhuǎn)換來(lái)的模型向特定DBMS 支持下的數(shù)據(jù)模型轉(zhuǎn)換, 最后對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。

      (4)物理結(jié)構(gòu)設(shè)計(jì)階段

      物理結(jié)構(gòu)設(shè)計(jì)階段的主要任務(wù)是為一個(gè)指定的邏輯數(shù)據(jù)模型選取一個(gè)符合應(yīng)用要求的物理結(jié)構(gòu)。具體來(lái)說(shuō), 就是首先確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu), 即數(shù)據(jù)庫(kù)的存取方法和存儲(chǔ)結(jié)構(gòu);然后對(duì)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)進(jìn)行評(píng)估, 評(píng)估的重點(diǎn)是存取時(shí)間的長(zhǎng)短和存儲(chǔ)空間的大小。

      (5)實(shí)施階段

      實(shí)施階段的主要任務(wù)是用RDBMS 提供的數(shù)據(jù)定義語(yǔ)言和其他實(shí)用程序?qū)⑦壿嫿Y(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)的結(jié)果詳細(xì)描述出來(lái), 成為DBMS 可以接受的源代碼;再經(jīng)過(guò)系統(tǒng)調(diào)試產(chǎn)生目標(biāo)模式, 最后完成數(shù)據(jù)的載入工作。

      (6)運(yùn)行與維護(hù)階段

      運(yùn)行與維護(hù)階段的主要任務(wù)包括數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù), 數(shù)據(jù)庫(kù)完整性和安全性控制, 數(shù)據(jù)庫(kù)性能改造、分析和監(jiān)督, 數(shù)據(jù)庫(kù)的重構(gòu)造和重組織。

      第三篇:數(shù)據(jù)庫(kù)設(shè)計(jì)心得

      數(shù)據(jù)庫(kù)設(shè)計(jì)經(jīng)驗(yàn)談

      數(shù)據(jù)庫(kù)設(shè)計(jì)經(jīng)驗(yàn)談

      一個(gè)成功的管理系統(tǒng),是由:[50% 的業(yè)務(wù) + 50% 的軟件] 所組成,而 50% 的成功軟件又有 [25% 的數(shù)據(jù)庫(kù) + 25% 的程序] 所組成,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞是一個(gè)關(guān)鍵。如果把企業(yè)的數(shù)據(jù)比做生命所必需的血液,那么數(shù)據(jù)庫(kù)的設(shè)計(jì)就是應(yīng)用中最重要的一部分。有關(guān)數(shù)據(jù)庫(kù)設(shè)計(jì)的材料汗牛充棟,大學(xué)學(xué)位課程里也有專門的講述。不過(guò),就如我們反復(fù)強(qiáng)調(diào)的那樣,再好的老師也比不過(guò)經(jīng)驗(yàn)的教誨。所以我歸納歷年來(lái)所走的彎路及體會(huì),并在網(wǎng)上找了些對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)頗有造詣的專業(yè)人士給大家傳授一些設(shè)計(jì)數(shù)據(jù)庫(kù)的技巧和經(jīng)驗(yàn)。精選了其中的 60 個(gè)最佳技巧,并把這些技巧編寫成了本文,為了方便索引其內(nèi)容劃分為 5 個(gè)部分:

      第 1 部分設(shè)計(jì)數(shù)據(jù)庫(kù)表

      總共 24 個(gè)指南性技巧,涵蓋表內(nèi)字段設(shè)計(jì)以及應(yīng)該避免的常見問(wèn)題等。

      第 3 部分保證數(shù)據(jù)完整性

      討論如何保持?jǐn)?shù)據(jù)庫(kù)的清晰和健壯,如何把有害數(shù)據(jù)降低到最小程度。

      第 5 部分設(shè)計(jì)數(shù)據(jù)庫(kù)之前 考察現(xiàn)有環(huán)境

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

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

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

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

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

      工欲善其事, 必先利其器

      采用理想的數(shù)據(jù)庫(kù)設(shè)計(jì)工具,比如:SyBase 公司的 PowerDesign,她支持 PB、VB、Delphe 等語(yǔ)言,通過(guò) ODBC 可以連接市面上流行的 30 多個(gè)數(shù)據(jù)庫(kù),包括 dBase、FoxPro、VFP、SQL Server 等,今后有機(jī)會(huì)我將著重介紹 PowerDesign 的使用。

      獲取數(shù)據(jù)模式資源手冊(cè)

      正在尋求示例模式的人可以閱讀《數(shù)據(jù)模式資源手冊(cè)》一書,該書由 Len Silverston、W.H.Inmon 和 Kent Graziano 編寫,是一本值得擁有的最佳數(shù)據(jù)建模圖書。該書包括的章節(jié)涵蓋多種數(shù)據(jù)領(lǐng)域,比如人員、機(jī)構(gòu)和工作效能等。其他的你還可以參考:[1]薩師煊 王珊著 數(shù)據(jù)庫(kù)系統(tǒng)概論(第二版)高等教育出版社 1991、[2][美] Steven M.Bobrowski 著 Oracle 7 與客戶/服務(wù)器計(jì)算技術(shù)從入門到精通 劉建元等譯 電子工業(yè)出版社,1996、[3]周中元 信息系統(tǒng)建模方法(下)電子與信息化 1999年第3期,1999 暢想未來(lái),但不可忘了過(guò)去的教訓(xùn)

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

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

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

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

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

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

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

      創(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í)但對(duì)其他開發(fā)人員要了解整個(gè)設(shè)計(jì)卻是完全必要的。越早創(chuàng)建越能有助于避免今后面臨的可能混亂,從而可以讓任何了解數(shù)據(jù)庫(kù)的人都明確如何從數(shù)據(jù)庫(kù)中獲得數(shù)據(jù)。

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

      創(chuàng)建模式

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

      從輸入輸出下手

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

      報(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ù)。這樣的檢索性能比較低而且容易引起混亂。

      理解客戶需求

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

      第 2 部分選擇鍵和索引 數(shù)據(jù)采掘要預(yù)先計(jì)劃

      我所在的某一客戶部門一度要處理 8 萬(wàn)多份聯(lián)系方式,同時(shí)填寫每個(gè)客戶的必要數(shù)據(jù)(這絕對(duì)不是小活)。我從中還要確定出一組客戶作為市場(chǎng)目標(biāo)。當(dāng)我從最開始設(shè)計(jì)表和字段的時(shí)候,我試圖不在主索引里增加太多的字段以便加快數(shù)據(jù)庫(kù)的運(yùn)行速度。然后我意識(shí)到特定的組查詢和信息采掘既不準(zhǔn)確速度也不快。結(jié)果只好在主索引中重建而且合并了數(shù)據(jù)字段。我發(fā)現(xiàn)有一個(gè)指示計(jì)劃相當(dāng)關(guān)鍵——當(dāng)我想創(chuàng)建系統(tǒng)類型查找時(shí)為什么要采用號(hào)碼作為主索引字段呢?我可以用傳真號(hào)碼進(jìn)行檢索,但是它幾乎就象系統(tǒng)類型一樣對(duì)我來(lái)說(shuō)并不重要。采用后者作為主字段,數(shù)據(jù)庫(kù)更新后重新索引和檢索就快多了。

      可操作數(shù)據(jù)倉(cāng)庫(kù)(ODS)和數(shù)據(jù)倉(cāng)庫(kù)(DW)這兩種環(huán)境下的數(shù)據(jù)索引是有差別的。在 DW 環(huán)境下,你要考慮銷售部門是如何組織銷售活動(dòng)的。他們并不是數(shù)據(jù)庫(kù)管理員,但是他們確定表內(nèi)的鍵信息。這里設(shè)計(jì)人員或者數(shù)據(jù)庫(kù)工作人員應(yīng)該分析數(shù)據(jù)庫(kù)結(jié)構(gòu)從而確定出性能和正確輸出之間的最佳條件。

      使用系統(tǒng)生成的主鍵

      這類同技巧 1,但我覺得有必要在這里重復(fù)提醒大家。假如你總是在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候采用系統(tǒng)生成的鍵作為主鍵,那么你實(shí)際控制了數(shù)據(jù)庫(kù)的索引完整性。這樣,數(shù)據(jù)庫(kù)和非人工機(jī)制就有效地控制了對(duì)存儲(chǔ)數(shù)據(jù)中每一行的訪問(wèn)。

      采用系統(tǒng)生成鍵作為主鍵還有一個(gè)優(yōu)點(diǎn):當(dāng)你擁有一致的鍵結(jié)構(gòu)時(shí),找到邏輯缺陷很容易。

      分解字段用于索引

      為了分離命名字段和包含字段以支持用戶定義的報(bào)表,請(qǐng)考慮分解其他字段(甚至主鍵)為其組成要素以便用戶可以對(duì)其進(jìn)行索引。索引將加快 SQL 和報(bào)表生成器腳本的執(zhí)行速度。比方說(shuō),我通常在必須使用 SQL LIKE 表達(dá)式的情況下創(chuàng)建報(bào)表,因?yàn)?case number 字段無(wú)法分解為 year、serial number、case type 和 defendant code 等要素。性能也會(huì)變壞。假如和類型字段可以分解為索引字段那么這些報(bào)表運(yùn)行起來(lái)就會(huì)快多了。

      鍵設(shè)計(jì) 4 原則

      * 為關(guān)聯(lián)字段創(chuàng)建外鍵。* 所有的鍵都必須唯一。* 避免使用復(fù)合鍵。

      * 外鍵總是關(guān)聯(lián)唯一的鍵字段。

      別忘了索引

      索引是從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)的最高效方式之一。95% 的數(shù)據(jù)庫(kù)性能問(wèn)題都可以采用索引技術(shù)得到解決。作為一條規(guī)則,我通常對(duì)邏輯主鍵使用唯一的成組索引,對(duì)系統(tǒng)鍵(作為存儲(chǔ)過(guò)程)采用唯一的非成組索引,對(duì)任何外鍵列[字段]采用非成組索引。不過(guò),索引就象是鹽,太多了菜就咸了。你得考慮數(shù)據(jù)庫(kù)的空間有多大,表如何進(jìn)行訪問(wèn),還有這些訪問(wèn)是否主要用作讀寫。

      大多數(shù)數(shù)據(jù)庫(kù)都索引自動(dòng)創(chuàng)建的主鍵字段,但是可別忘了索引外鍵,它們也是經(jīng)常使用的鍵,比如運(yùn)行查詢顯示主表和所有關(guān)聯(lián)表的某條記錄就用得上。還有,不要索引 memo/note 字段,不要索引大型字段(有很多字符),這樣作會(huì)讓索引占用太多的存儲(chǔ)空間。

      不要索引常用的小型表

      不要為小型數(shù)據(jù)表設(shè)置任何鍵,假如它們經(jīng)常有插入和刪除操作就更別這樣作了。對(duì)這些插入和刪除操作的索引維護(hù)可能比掃描表空間消耗更多的時(shí)間。

      不要把社會(huì)保障號(hào)碼(SSN)或身份證號(hào)碼(ID)選作鍵

      永遠(yuǎn)都不要使用 SSN 或 ID 作為數(shù)據(jù)庫(kù)的鍵。除了隱私原因以外,須知政府越來(lái)越趨向于不準(zhǔn)許把 SSN 或 ID 用作除收入相關(guān)以外的其他目的,SSN 或 ID 需要手工輸入。永遠(yuǎn)不要使用手工輸入的鍵作為主鍵,因?yàn)橐坏┠爿斎脲e(cuò)誤,你唯一能做的就是刪除整個(gè)記錄然后從頭開始。

      我在破解他人的程序時(shí)候,我看到很多人把 SSN 或 ID 還曾被用做系列號(hào),當(dāng)然盡管這么做是非法的。而且人們也都知道這是非法的,但他們已經(jīng)習(xí)慣了。后來(lái),隨著盜取身份犯罪案件的增加,我現(xiàn)在的同行正痛苦地從一大攤子數(shù)據(jù)中把 SSN 或 ID 刪除。

      不要用用戶的鍵

      在確定采用什么字段作為表的鍵的時(shí)候,可一定要小心用戶將要編輯的字段。通常的情況下不要選擇用戶可編輯的字段作為鍵。這樣做會(huì)迫使你采取以下兩個(gè)措施:

      * 在創(chuàng)建記錄之后對(duì)用戶編輯字段的行為施加限制。假如你這么做了,你可能會(huì)發(fā)現(xiàn)你的應(yīng)用程序在商務(wù)需求突然發(fā)生變化,而用戶需要編輯那些不可編輯的字段時(shí)缺乏足夠的靈活性。當(dāng)用戶在輸入數(shù)據(jù)之后直到保存記錄才發(fā)現(xiàn)系統(tǒng)出了問(wèn)題他們?cè)撛趺聪??刪除重建?假如記錄不可重建是否讓用戶走開?

      * 提出一些檢測(cè)和糾正鍵沖突的方法。通常,費(fèi)點(diǎn)精力也就搞定了,但是從性能上來(lái)看這樣做的代價(jià)就比較大了。還有,鍵的糾正可能會(huì)迫使你突破你的數(shù)據(jù)和商業(yè)/用戶界面層之間的隔離。

      所以還是重提一句老話:你的設(shè)計(jì)要適應(yīng)用戶而不是讓用戶來(lái)適應(yīng)你的設(shè)計(jì)。

      不讓主鍵具有可更新性的原因是在關(guān)系模式下,主鍵實(shí)現(xiàn)了不同表之間的關(guān)聯(lián)。比如,Customer 表有一個(gè)主鍵 CustomerID,而客戶的定單則存放在另一個(gè)表里。Order 表的主鍵可能是 OrderNo 或者 OrderNo、CustomerID 和日期的組合。不管你選擇哪種鍵設(shè)置,你都需要在 Order 表中存放 CustomerID 來(lái)保證你可以給下定單的用戶找到其定單記錄。

      假如你在 Customer 表里修改了 CustomerID,那么你必須找出 Order 表中的所有相關(guān)記錄對(duì)其進(jìn)行修改。否則,有些定單就會(huì)不屬于任何客戶——數(shù)據(jù)庫(kù)的完整性就算完蛋了。如果索引完整性規(guī)則施加到表一級(jí),那么在不編寫大量代碼和附加刪除記錄的情況下幾乎不可能改變某一條記錄的鍵和數(shù)據(jù)庫(kù)內(nèi)所有關(guān)聯(lián)的記錄。而這一過(guò)程往往錯(cuò)誤叢生所以應(yīng)該盡量避免。

      可選鍵(候選鍵)有時(shí)可做主鍵

      記住,查詢數(shù)據(jù)的不是機(jī)器而是人。假如你有可選鍵,你可能進(jìn)一步把它用做主鍵。那樣的話,你就擁有了建立強(qiáng)大索引的能力。這樣可以阻止使用數(shù)據(jù)庫(kù)的人不得不連接數(shù)據(jù)庫(kù)從而恰當(dāng)?shù)倪^(guò)濾數(shù)據(jù)。在嚴(yán)格控制域表的數(shù)據(jù)庫(kù)上,這種負(fù)載是比較醒目的。如果可選鍵真正有用,那就是達(dá)到了主鍵的水準(zhǔn)。

      我的看法是,假如你有可選鍵,比如國(guó)家表內(nèi)的 state_code,你不要在現(xiàn)有不能變動(dòng)的唯一鍵上創(chuàng)建后續(xù)的鍵。你要做的無(wú)非是創(chuàng)建毫無(wú)價(jià)值的數(shù)據(jù)。如你因?yàn)檫^(guò)度使用表的后續(xù)鍵[別名]建立這種表的關(guān)聯(lián),操作負(fù)載真得需要考慮一下了。

      別忘了外鍵

      大多數(shù)數(shù)據(jù)庫(kù)索引自動(dòng)創(chuàng)建的主鍵字段。但別忘了索引外鍵字段,它們?cè)谀阆氩樵冎鞅碇械挠涗浖捌潢P(guān)聯(lián)記錄時(shí)每次都會(huì)用到。還有,不要索引 memo/notes 字段而且不要索引大型文本字段(許多字符),這樣做會(huì)讓你的索引占據(jù)大量的數(shù)據(jù)庫(kù)空間。

      第 4 部分各種小技巧 文檔、文檔、文檔

      對(duì)所有的快捷方式、命名規(guī)范、限制和函數(shù)都要編制文檔。

      采用給表、列[字段]、觸發(fā)器等加注釋的數(shù)據(jù)庫(kù)工具。是的,這有點(diǎn)費(fèi)事,但從長(zhǎng)遠(yuǎn)來(lái)看,這樣做對(duì)開發(fā)、支持和跟蹤修改非常有用。

      取決于你使用的數(shù)據(jù)庫(kù)系統(tǒng),可能有一些軟件會(huì)給你一些供你很快上手的文檔。你可能希望先開始在說(shuō),然后獲得越來(lái)越多的細(xì)節(jié)?;蛘吣憧赡芟M芷谛缘念A(yù)排,在輸入新數(shù)據(jù)同時(shí)隨著你的進(jìn)展對(duì)每一部分細(xì)節(jié)化。不管你選擇哪種方式,總要對(duì)你的數(shù)據(jù)庫(kù)文檔化,或者在數(shù)據(jù)庫(kù)自身的內(nèi)部或者單獨(dú)建立文檔。這樣,當(dāng)你過(guò)了一年多時(shí)間后再回過(guò)頭來(lái)做第 2 個(gè)版本,你犯錯(cuò)的機(jī)會(huì)將大大減少。

      使用常用英語(yǔ)(或者其他任何語(yǔ)言)而不要使用編碼

      為什么我們經(jīng)常采用編碼(比如 9935A 可能是?青島啤酒?的供應(yīng)代碼,4XF788-Q 可能是帳目編碼)?理由很多。但是用戶通常都用英語(yǔ)進(jìn)行思考而不是編碼。工作 5 年的會(huì)計(jì)或許知道 4XF788-Q 是什么東西,但新來(lái)的可就不一定了。在創(chuàng)建下拉菜單、列表、報(bào)表時(shí)最好按照英語(yǔ)名排序。假如你需要編碼,那你可以在編碼旁附上用戶知道的英語(yǔ)。

      保存常用信息

      讓一個(gè)表專門存放一般數(shù)據(jù)庫(kù)信息非常有用。我常在這個(gè)表里存放數(shù)據(jù)庫(kù)當(dāng)前版本、最近檢查/修復(fù)(對(duì) FoxPro)、關(guān)聯(lián)設(shè)計(jì)文檔的名稱、客戶等信息。這樣可以實(shí)現(xiàn)一種簡(jiǎn)單機(jī)制跟蹤數(shù)據(jù)庫(kù),當(dāng)客戶抱怨他們的數(shù)據(jù)庫(kù)沒(méi)有達(dá)到希望的要求而與你聯(lián)系時(shí),這樣做對(duì)非客戶機(jī)/服務(wù)器環(huán)境特別有用。

      測(cè)試、測(cè)試、反復(fù)測(cè)試

      建立或者修訂數(shù)據(jù)庫(kù)之后,必須用用戶新輸入的數(shù)據(jù)測(cè)試數(shù)據(jù)字段。最重要的是,讓用戶進(jìn)行測(cè)試并且同用戶一道保證你選擇的數(shù)據(jù)類型滿足商業(yè)要求。測(cè)試需要在把新數(shù)據(jù)庫(kù)投入實(shí)際服務(wù)之前完成。

      檢查設(shè)計(jì)

      在開發(fā)期間檢查數(shù)據(jù)庫(kù)設(shè)計(jì)的常用技術(shù)是通過(guò)其所支持的應(yīng)用程序原型檢查數(shù)據(jù)庫(kù)。換句話說(shuō),針對(duì)每一種最終表達(dá)數(shù)據(jù)的原型應(yīng)用,保證你檢查了數(shù)據(jù)模型并且查看如何取出數(shù)據(jù)。

      Microsoft Visual FoxPro 設(shè)計(jì)技巧

      對(duì)復(fù)雜的 Microsoft Visual FoxPro 數(shù)據(jù)庫(kù)應(yīng)用程序而言,可以把所有的主表放在一個(gè)數(shù)據(jù)庫(kù)容器文件里,然后增加其他數(shù)據(jù)庫(kù)表文件和裝載同原有數(shù)據(jù)庫(kù)有關(guān)的特殊文件。根據(jù)需要用這些文件連接到主文件中的主表。比如數(shù)據(jù)輸入、數(shù)據(jù)索引、統(tǒng)計(jì)分析、向管理層或者政府部門提供報(bào)表以及各類只讀查詢等。這一措施簡(jiǎn)化了用戶和組權(quán)限的分配,而且有利于應(yīng)用程序函數(shù)(存儲(chǔ)過(guò)程)的分組和劃分,從而在程序必須修改的時(shí)候易于管理。

      第四篇:數(shù)據(jù)庫(kù)設(shè)計(jì)原則

      4.3.1數(shù)據(jù)庫(kù)設(shè)計(jì)原則

      數(shù)據(jù)庫(kù)設(shè)計(jì)的基本原則是在系統(tǒng)總體信息方案的指導(dǎo)下,各個(gè)庫(kù)應(yīng)當(dāng)為它所支持的管理目標(biāo)服務(wù),在設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí),應(yīng)當(dāng)重點(diǎn)考慮以下幾個(gè)因素:

      1、數(shù)據(jù)庫(kù)必須層次分明,布局合理。

      2、數(shù)據(jù)庫(kù)必須高度結(jié)構(gòu)化,保證數(shù)據(jù)的結(jié)構(gòu)化,規(guī)范化和標(biāo)準(zhǔn)化,這是建立數(shù)據(jù)庫(kù)和進(jìn)行信息交換的基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)應(yīng)該遵循國(guó)家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn),尤其要重視編碼的應(yīng)用。

      3、在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,一方而要盡可能地減小冗余度,減小存儲(chǔ)空間的占用,降低數(shù)據(jù)一致性問(wèn)題發(fā)生的可能性,另一方面,還要考慮適當(dāng)?shù)娜哂?,以提高運(yùn)行速度和降低開發(fā)難度。

      4、必須維護(hù)數(shù)據(jù)的正確性和一致性。在系統(tǒng)中,多個(gè)用戶共享數(shù)據(jù)庫(kù),由于并發(fā)操作,可能影響數(shù)據(jù)的一致性。因此必須用“鎖”等辦法保證數(shù)據(jù)的一致性。

      5、設(shè)定相應(yīng)的安全機(jī)制,由于數(shù)據(jù)庫(kù)的信息、對(duì)特定的用戶有特定的保密要求,安全機(jī)制必不可少。

      第五篇:數(shù)據(jù)庫(kù)設(shè)計(jì)經(jīng)驗(yàn)談

      數(shù)據(jù)庫(kù)設(shè)計(jì)經(jīng)驗(yàn)談

      一個(gè)成功的管理系統(tǒng),是由:[50% 的業(yè)務(wù) + 50% 的軟件] 所組成,而 50% 的成功軟件又有 [25% 的數(shù)據(jù)庫(kù) + 25% 的程序] 所組成,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞是一個(gè)關(guān)鍵。如果把企業(yè)的數(shù)據(jù)比做生命所必需的血液,那么數(shù)據(jù)庫(kù)的設(shè)計(jì)就是應(yīng)用中最重要的一部分。有關(guān)數(shù)據(jù)庫(kù)設(shè)計(jì)的材料汗牛充棟,大學(xué)學(xué)位課程里也有專門的講述。不過(guò),就如我們反復(fù)強(qiáng)調(diào)的那樣,再好的老師也比不過(guò)經(jīng)驗(yàn)的教誨。所以我歸納歷年來(lái)所走的彎路及體會(huì),并在網(wǎng)上找了些對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)頗有造詣的專業(yè)人士給大家傳授一些設(shè)計(jì)數(shù)據(jù)庫(kù)的技巧和經(jīng)驗(yàn)。精選了其中的 60 個(gè)最佳技巧,并把這些技巧編寫成了本文,為了方便索引其內(nèi)容劃分為 5 個(gè)部分:

      第 1 部分設(shè)計(jì)數(shù)據(jù)庫(kù)表

      總共 24 個(gè)指南性技巧,涵蓋表內(nèi)字段設(shè)計(jì)以及應(yīng)該避免的常見問(wèn)題等。第 3 部分保證數(shù)據(jù)完整性

      討論如何保持?jǐn)?shù)據(jù)庫(kù)的清晰和健壯,如何把有害數(shù)據(jù)降低到最小程度。

      第 5 部分-各種小技巧

      不包括在以上 4 個(gè)部分中的其他技巧,五花八門,有了它們希望你的數(shù)據(jù)庫(kù)開發(fā)工作會(huì)更輕松一些。

      下載數(shù)據(jù)庫(kù)設(shè)計(jì)(5篇材料)word格式文檔
      下載數(shù)據(jù)庫(kù)設(shè)計(jì)(5篇材料).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)據(jù)庫(kù)設(shè)計(jì)評(píng)分標(biāo)準(zhǔn)

        系統(tǒng)評(píng)分標(biāo)準(zhǔn)(40%) 一、系統(tǒng)功能設(shè)計(jì)的合理性(40分) 二、數(shù)據(jù)庫(kù)設(shè)計(jì)的合理性(60分) 總結(jié)報(bào)告評(píng)分標(biāo)準(zhǔn)(30%) 一、文章內(nèi)容是否合理:基本上包括以下內(nèi)容:(80分) 前言:簡(jiǎn)要說(shuō)明選題的背景和......

        數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書

        文件編號(hào):GL5.7 匯達(dá)軟件版次:A 代替:2000年3月21日 共2頁(yè) 第1頁(yè) 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書的編制目的:對(duì)于設(shè)計(jì)中的數(shù)據(jù)庫(kù)的所有標(biāo)識(shí)、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)作出具體......

        數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書

        **數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書 班級(jí):姓名:學(xué)號(hào) 1 引言 1.1 編寫目的 1.2 編寫背景 2 系統(tǒng)功能分析 3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 3.1 概念結(jié)構(gòu)設(shè)計(jì)(得出實(shí)體圖) 3.2 邏輯結(jié)構(gòu)設(shè)計(jì)(實(shí)體、聯(lián)系的具體信息) 3......

        數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)習(xí)報(bào)告

        數(shù)據(jù)庫(kù)設(shè)計(jì)總的步驟: 1、 需求分析 2、 概念結(jié)構(gòu)設(shè)計(jì) 3、 邏輯結(jié)構(gòu)設(shè)計(jì) 4、 物理結(jié)構(gòu)設(shè)計(jì) 5、 數(shù)據(jù)庫(kù)實(shí)施 6、 數(shù)據(jù)庫(kù)運(yùn)行和維護(hù) 教務(wù)管理設(shè)計(jì): 1、 需求分析 某學(xué)校設(shè)計(jì)學(xué)生......

        數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)點(diǎn)總結(jié)

        數(shù)據(jù)庫(kù)設(shè)計(jì) 1 概念 1.1 描述 數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式, 建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù)。 1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)包含四部分 需求......

        高手?jǐn)?shù)據(jù)庫(kù)設(shè)計(jì)心得

        引言:一直在從事數(shù)據(jù)庫(kù)開發(fā)和設(shè)計(jì)工作,也看了一些書籍,算是略有心得。很久之前就想針對(duì)關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)進(jìn)行整理、總結(jié),但因?yàn)榉N種原因遲遲沒(méi)有動(dòng)手,主要還是惰性使然。今天也算是......

        教學(xué)管理數(shù)據(jù)庫(kù)的設(shè)計(jì)

        “教學(xué)管理”數(shù)據(jù)庫(kù)的設(shè)計(jì) 一、設(shè)計(jì)數(shù)據(jù)庫(kù): 數(shù)據(jù)庫(kù)設(shè)計(jì)的邏輯模型為: 教師:教師編號(hào)、姓名、性別、工作時(shí)間、學(xué)歷、職稱、系別、聯(lián)系電話 學(xué)生:學(xué)生編號(hào)、姓名、性別、出生日期......

        實(shí)驗(yàn)十?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)

        數(shù)據(jù)庫(kù)系統(tǒng)原理實(shí)驗(yàn)任課教師: 實(shí)驗(yàn)十 數(shù)據(jù)庫(kù)概念設(shè)計(jì)---大學(xué)選課系統(tǒng)年級(jí):____ 專業(yè):_________ 學(xué)號(hào):________ 姓名:_________ 實(shí)驗(yàn)日期:________ 一、實(shí)驗(yàn)?zāi)康?了解數(shù)據(jù)庫(kù)設(shè)計(jì)的......