freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫設(shè)計畢業(yè)設(shè)計作業(yè)(編輯修改稿)

2024-12-22 08:46 本頁面
 

【文章內(nèi)容簡介】 ,對任何外鍵列采用非成組索引。考慮數(shù)據(jù)庫的空間有多大,表如何進行訪問,還有這些訪問是否主要用作讀寫。 2) 大多數(shù)數(shù)據(jù)庫都索引自動創(chuàng)建的主鍵字段,但是可別忘了索引外鍵,它們也是經(jīng)常使用的鍵,比如運行查詢顯示主表和所有關(guān)聯(lián)表的某條記錄就用得上。 3) 不要索引 memo/note 字段,不要索引大型字段(有很多字符),這樣作會讓索引占用太多的存儲空間。 4) 不要索引常用的小型表 。 不要為小型數(shù)據(jù)表設(shè)置任何鍵,假如它們經(jīng)常有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間。 數(shù)據(jù)完整性設(shè)計(數(shù)據(jù)庫邏輯設(shè)計) 完整性實現(xiàn)機制: 實體完整性:主鍵 參照完整性: 父表中刪除數(shù)據(jù):級聯(lián)刪除;受限刪除;置空值 父表中插入數(shù)據(jù):受限插入;遞歸插入 父表中更新數(shù)據(jù):級聯(lián)更新;受限更新;置空值 DBMS 對參照完整性可以有兩種方法實現(xiàn):外 鍵實現(xiàn)機制(約束規(guī)則)和觸發(fā)器實現(xiàn)機制 用戶定義完整性: NOT NULL; CHECK;觸發(fā)器 用約束而非商務(wù)規(guī)則強制數(shù)據(jù)完整性 采用數(shù)據(jù)庫系統(tǒng)實現(xiàn)數(shù)據(jù)的完整性。這不但包括通過標準化實現(xiàn)的完整性而且還包括數(shù)據(jù)的功能性。在寫數(shù)據(jù)的時候還可以增加觸發(fā)器來保證數(shù)據(jù)的正確性。不要依賴于商務(wù)層保證數(shù)據(jù)完整性;它不能保證表之間(外鍵)的完整性所 16 以不能強加于其他完整性規(guī)則之上。 強制指示完整性 在有害數(shù)據(jù)進入數(shù)據(jù)庫之前將其剔除。激活數(shù)據(jù)庫系統(tǒng)的指示完整性特性。這樣可以保持數(shù)據(jù)的清潔而能迫使開發(fā)人員投入更多的時間處理錯誤條 件。 使用查找控制數(shù)據(jù)完整性 控制數(shù)據(jù)完整性的最佳方式就是限制用戶的選擇。只要有可能都應(yīng)該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數(shù)據(jù)的一致性。某些公共數(shù)據(jù)特別適合查找:國家代碼、狀態(tài)代碼等。 采用視圖 為了在數(shù)據(jù)庫和應(yīng)用程序代碼之間提供另一層抽象,可以為應(yīng)用程序建立專門的視圖而不必非要應(yīng)用程序直接訪問數(shù)據(jù)表。這樣做還等于在處理數(shù)據(jù)庫變更時給你提供了更多的自由。 其他設(shè)計技巧 避免使用觸發(fā)器 觸發(fā)器的功能通??梢杂闷渌绞綄崿F(xiàn)。在調(diào)試程序時觸發(fā)器可能成為干擾。假如你確實需 要采用觸發(fā)器,你最好集中對它文檔化。 使用常用英語(或者其他任何語言)而不要使用編碼 在創(chuàng)建下拉菜單、列表、報表時最好按照英語名排序。假如需要編碼,可以在編碼旁附上用戶知道的英語。 保存常用信息 讓一個表專門存放一般數(shù)據(jù)庫信息非常有用。在這個表里存放數(shù)據(jù)庫當前版本、最近檢查 /修復(fù)(對 Access)、關(guān)聯(lián)設(shè)計文檔的名稱、客戶等信息。這樣可以實現(xiàn)一種簡單機制跟蹤數(shù)據(jù)庫,當客戶抱怨他們的數(shù)據(jù)庫沒有達到希望的要求而與你聯(lián)系時,這樣做對非客戶機 /服務(wù)器環(huán)境特別有用。 包含版本機制 在數(shù)據(jù)庫中引入版本控制機制來確定使用 中的數(shù)據(jù)庫的版本。時間一長,用戶的需求總是會改變的。最終可能會要求修改數(shù)據(jù)庫結(jié)構(gòu)。把版本信息直接存放到數(shù)據(jù)庫中更為方便。 編制文檔 17 對所有的快捷方式、命名規(guī)范、限制和函數(shù)都要編制文檔。 采用給表、列、觸發(fā)器等加注釋的數(shù)據(jù)庫工具。對開發(fā)、支持和跟蹤修改非常有用。 對數(shù)據(jù)庫文檔化,或者在數(shù)據(jù)庫自身的內(nèi)部或者單獨建立文檔。這樣,當過了一年多時間后再回過頭來做第 2 個版本,犯錯的機會將大大減少。 測試、測試、反復(fù)測試 建立或者修訂數(shù)據(jù)庫之后,必須用用戶新輸入的數(shù)據(jù)測試數(shù)據(jù)字段。最重要的是,讓用戶進行測試并且同用 戶一道保證選擇的數(shù)據(jù)類型滿足商業(yè)要求。測試需要在把新數(shù)據(jù)庫投入實際服務(wù)之前完成。 檢查設(shè)計 在開發(fā)期間檢查數(shù)據(jù)庫設(shè)計的常用技術(shù)是通過其所支持的應(yīng)用程序原型檢查數(shù)據(jù)庫。換句話說,針對每一種最終表達數(shù)據(jù)的原型應(yīng)用,保證你檢查了數(shù)據(jù)模型并且查看如何取出數(shù)據(jù)。 . 范式 . 規(guī)范化 本 章節(jié) 的目的就是通過詳細的實例來闡述規(guī)范化的數(shù)據(jù)庫設(shè)計原則。在 關(guān)系型數(shù)據(jù)庫中 中,簡潔、結(jié)構(gòu)明晰的表結(jié)構(gòu)對數(shù)據(jù)庫的設(shè)計是相當重要的。規(guī)范化的表結(jié)構(gòu)設(shè)計,在以后的數(shù)據(jù)維護中,不會發(fā)生插入( insert)、刪除( delete)和更新( update) 時的異常。反之,數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計不合理,不僅會給數(shù)據(jù)庫的使用和維護帶來各種各樣的問題,而且可能存儲了大量不需要的冗余信息,浪費系統(tǒng)資源。 要設(shè)計規(guī)范化的數(shù)據(jù)庫,就要求我們根據(jù)數(shù)據(jù)庫設(shè)計范式――也就是數(shù)據(jù)庫設(shè)計的規(guī)范原則來做。但是一些相關(guān)材料上提到的范式設(shè)計,往往是給出一大堆的公式,這給設(shè)計者的理解和運用造成了一定的困難。因此,本文將結(jié)合具體形象的例子,盡可能通俗化地描述三個范式,以及如何在實際工程中加以優(yōu)化應(yīng)用。 . 數(shù)據(jù)冗余 數(shù)據(jù)應(yīng)該盡可能少地冗余,這意味著重復(fù)數(shù)據(jù)應(yīng)該減少到最少。比如說,一個部門雇員的電話不 應(yīng)該被存儲在不同的表中, 因為這里的電話號碼是雇員 18 的一個屬性。如果存在過多的冗余數(shù)據(jù),這就意味著要占用了更多的物理空間,同時也對數(shù)據(jù)的維護和一致性檢查帶來了問題,當這個員工的電話號碼變化時,冗余數(shù)據(jù)會導(dǎo)致對多個表的更新動作,如果有一個表不幸被忽略了,那么就可能導(dǎo)致數(shù)據(jù)的不一致性。 . 規(guī)范化實例 為了說明方便,我們在本文中將使用一個 SAMPLE 數(shù)據(jù)表,來一步一步分析規(guī)范化的過程。 首先,我們先來生成一個的最初始的表。 CREATE TABLE SAMPLE ( PRJNUM INTEGER NOT NULL, PRJNAME VARCHAR(200), EMYNUM INTEGER NOT NULL, EMYNAME VARCHAR(200), SALCATEGORY CHAR(1), SALPACKAGE INTEGER) IN USERSPACE1。 ALTER TABLE SAMPLE ADD PRIMARY KEY (PRJNUM, EMYNUM)。 Insert into SAMPLE(PRJNUM, PRJNAME, EMYNUM, EMYNAME, SALCATEGORY, SALPACKAGE) values(100001, 39。TPMS39。, 202020, 39。Johnson39。, 39。A39。, 2020), (100001, 39。TPMS39。, 202020, 39。Christine39。, 39。B39。, 3000), (100001, 39。TPMS39。, 202020, 39。Kevin39。, 39。C39。, 4000), (100002, 39。TCT39。, 202020, 39。Johnson39。, 39。A39。, 2020), (100002, 39。TCT39。, 202020, 39。Apple39。, 39。B39。, 3000)。 表 11 考察表 11,我們可以看到,這張表一共有六個字段,分析每個字段都有重 19 復(fù)的值出現(xiàn),也就是說,存在數(shù)據(jù)冗余問題。這將潛在地造成數(shù)據(jù)操作(比如刪除、更新等操作)時的異常情況,因此,需要進行規(guī)范化。 . 第一范式 參照范式的定義,考察上表,我們發(fā)現(xiàn),這張表已經(jīng)滿足了第一范式的要求。 因為這張表中字段都是單一屬性的,不可再分; 而且每一行的記錄都是沒有重復(fù)的; 存在主屬性,而且所有的屬性都是依賴于主屬性; 所有的主屬性都已經(jīng)定義 事實上在當前所有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)( DBMS)中,都已經(jīng)在建表的時候強制滿 足第一范式。因此,這張 SAMPLE 表已經(jīng)是一張滿足第一范式要求的表。考察表 11,我們首先要找出主鍵??梢钥吹?,屬性對 Project Number, Employee Number是主鍵,其他所有的屬性都依賴于該主鍵。 . 從一范式轉(zhuǎn)化到二范式 根據(jù)第二范式的定義,轉(zhuǎn)化為二范式就是消除部分依賴。 考察表 11,我們可以發(fā)現(xiàn),非主屬性 Project Name部分依賴于主鍵中的Project Number。 非主屬性 Employee Name, Salary Category和 Salary package都部分依賴于主鍵中的 Employee Number; 表 11 的形式,存在著以下潛在問題: 1. 數(shù)據(jù)冗余:每一個字段都有值重復(fù); 2. 更新異常:比如 Project Name字段的值,比如對值 TPMS了修改,那么就要一次更新該字段的多個值; 3. 插入異常:如果新建了一個 Project,名字為 TPT, 但是還沒有 Employee加入,那么 Employee Number將會空缺,而該字段是主鍵的一部分,因此將無法插入記錄; Insert into SAMPLE(PRJNUM, PRJNAME, EMYNUM, EMYNAME, SALCATEGORY, SALPACKAGE) values(100003, 39。TPT39。, NULL, NULL, NULL, NULL) 20 4. 刪除異常:如果一個員工 202020, Kevin 離職了,要將該員工的記錄從表中刪除,而此時相關(guān)的 Salary 信息 C 也將丟失 , 因為再沒有別的行紀錄下 Salary C 的信息。 Delete from sample where EMYNUM = 202020 Select distinct SALCATEGORY, SALPACKAGE from SAMPLE 因此,我們需要將存在部分依賴關(guān)系的主屬性和非主屬性從滿足第一范式的表中分離出來,形成一張新的表,而新表和舊表之間是一對多的關(guān)系。由此,我們得到: CREATE TABLE PROJECT ( PRJNUM INTEGER NOT NULL, PRJNAME VARCHAR(200)) IN USERSPACE1。 ALTER TABLE PROJECT ADD PRIMARY KEY (PR
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1