資料庫設計規範與技巧系列一

2022-03-20 19:12:49 字數 3797 閱讀 5815

一、資料庫設計過程

資料庫技術是資訊資源管理最有效的手段。

資料庫設計是指:對於乙個給定的應用環境,構造最優的資料庫模式,建立資料庫及其應用系統,有效儲存資料,滿足使用者資訊要求和處理要求。

資料庫設計的各階段:

a、需求分析階段:綜合各個使用者的應用需求(現實世界的需求)。

b、在概念設計階段:形成獨立於機器和各dbms產品的概念模式(資訊世界模型),用e-r圖來描述。

c、在邏輯設計階段:將e-r圖轉換成具體的資料庫產品支援的資料模型,如關係模型,形成資料庫邏輯模式。然後根據使用者處理的要求,安全性的考慮,在基本表的基礎上再建立必要的檢視(view)形成資料的外模式。

d、在物理設計階段:根據dbms特點和處理的需要,進行物理儲存安排,設計索引,形成資料庫內模式。

1. 需求分析階段

需求收集和分析,結果得到資料字典描述的資料需求(和資料流圖描述的處理需求)。

需求分析的重點:調查、收集與分析使用者在資料管理中的資訊要求、處理要求、安全性與完整性要求。

需求分析的方法:調查組織機構情況、各部門的業務活動情況、協助使用者明確對新系統的各種要求、確定新系統的邊界。

常用的調查方法有: 跟班作業、開調查會、請專人介紹、詢問、設計調查表請使用者填寫、查閱記錄。

分析和表達使用者需求的方法主要包括自頂向下和自底向上兩類方法。自頂向下的結構化分析方法(structured analysis,簡稱sa方法)從最上層的系統組織機構入手,採用逐層分解的方式分析系統,並把每一層用資料流圖和資料字典描述。

資料流圖表達了資料和處理過程的關係。系統中的資料則借助資料字典(data dictionary,簡稱dd)來描述。

2. 概念結構設計階段

通過對使用者需求進行綜合、歸納與抽象,形成乙個獨立於具體dbms的概念模型,可以用e-r圖表示。

概念模型用於資訊世界的建模。概念模型不依賴於某乙個dbms支援的資料模型。概念模型可以轉換為計算機上某一dbms支援的特定資料模型。

概念模型特點:

(1) 具有較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識。

(2) 應該簡單、清晰、易於使用者理解,是使用者與資料庫設計人員之間進行交流的語言。

概念模型設計的一種常用方法為idef1x方法,它就是把實體-聯絡方法應用到語義資料模型中的一種語義模型化技術,用於建立系統資訊模型。

使用idef1x方法建立e-r模型的步驟如下所示:

2.1 第零步——初始化工程

這個階段的任務是從目的描述和範圍描述開始,確定建模目標,開發建模計畫,組織建模隊伍,收集源材料,制定約束和規範。收集源材料是這階段的重點。通過調查和觀察結果,業務流程,原有系統的輸入輸出,各種報表,收集原始資料,形成了基本資料資料表。

2.2 第一步——定義實體

實體集成員都有乙個共同的特徵和屬性集,可以從收集的源材料——基本資料資料表中直接或間接標識出大部分實體。根據源材料名字表中表示物的術語

以及具有「**」結尾的術語,如客戶**、**商**、產品**等將其名詞部分代表的實體標識出來,從而初步找出潛在的實體,形成初步實體表。

2.3 第二步——定義聯絡

idef1x模型中只允許二元聯絡,n元聯絡必須定義為n個二元聯絡。根據實際的業務需求和規則,使用實體聯絡矩陣來標識實體間的二元關係,然

後根據實際情況確定出連線關係的勢、關係名和說明,確定關係型別,是標識關係、非標識關係(強制的或可選的)還是非確定關係、分類關係。如果子實體的每個

例項都需要通過和父實體的關係來標識,則為標識關係,否則為非標識關係。非標識關係中,如果每個子實體的例項都與而且只與乙個父實體關聯,則為強制的,否

則為非強制的。如果父實體與子實體代表的是同一現實物件,那麼它們為分類關係。

2.4 第三步——定義碼

通過引入交叉實體除去上一階段產生的非確定關係,然後從非交叉實體和獨立實體開始標識侯選碼屬性,以便唯一識別每個實體的例項,再從侯選碼中確

定主碼。為了確定主碼和關係的有效性,通過非空規則和非多值規則來保證,即乙個實體例項的乙個屬性不能是空值,也不能在同乙個時刻有乙個以上的值。找出誤

認的確定關係,將實體進一步分解,最後構造出idef1x模型的鍵基檢視(kb圖)。

2.5 第四步——定義屬性

從源資料表中抽取說明性的名詞開發出屬性表,確定屬性的所有者。定義非主碼屬性,檢查屬性的非空及非多值規則。此外,還要檢查完全依賴函式規則

和非傳遞依賴規則,保證乙個非主碼屬性必須依賴於主碼、整個主碼、僅僅是主碼。以此得到了至少符合關係理論第三正規化的改進的idef1x模型的全屬性視

圖。2.6 第五步——定義其他物件和規則

定義屬性的資料型別、長度、精度、非空、預設值、約束規則等。定義觸發器、儲存過程、檢視、角色、同義詞、序列等物件資訊。

3. 邏輯結構設計階段

將概念結構轉換為某個dbms所支援的資料模型(例如關係模型),並對其進行優化。設計邏輯結構應該選擇最適於描述與表達相應概念結構的資料模型,然後選擇最合適的dbms。

將e-r圖轉換為關係模型實際上就是要將實體、實體的屬性和實體之間的聯絡轉化為關係模式,這種轉換一般遵循如下原則:乙個實體型轉換為乙個關係模式。實體的屬性就是關係的屬性。實體的碼就是關係的碼。

資料模型的優化,確定資料依賴,消除冗餘的聯絡,確定各關係模式分別屬於第幾正規化。確定是否要對它們進行合併或分解。一般來說將關係分解為3nf的標準,即:

表內的每乙個值都只能被表達一次。

表內的每一行都應該被唯一的標識(有唯一鍵)。

表內不應該儲存依賴於其他鍵的非鍵資訊。

4. 資料庫物理設計階段

為邏輯資料模型選取乙個最適合應用環境的物理結構(包括儲存結構和訪問方法)。根據dbms特點和處理的需要,進行物理儲存安排,設計索引,形成資料庫內模式。

5. 資料庫實施階段

運用dbms提供的資料語言(例如sql)及其宿主語言(例如c),根據邏輯設計和物理設計的結果建立資料庫,編制與除錯應用程式,組織資料入

庫,並進行試執行。 資料庫實施主要包括以下工作:用ddl定義資料庫結構、組織資料入庫 、編制與除錯應用程式、資料庫試執行 ,(data

definition language(ddl資料定義語言)用作開新資料表、設定字段、刪除資料表、刪除字段,管理所有有關資料庫結構的東西)

●create (新增有關資料庫結構的東西,屬ddl)

●drop (刪除有關資料庫結構的東西,屬ddl)

●alter (更改結構,屬ddl)

6. 資料庫執行和維護階段

在資料庫系統執行過程中必須不斷地對其進行評價、調整與修改。內容包括:資料庫的轉儲和恢復、資料庫的安全性、完整性控制、資料庫效能的監督、分析和改進、資料庫的重組織和重構造。

7. 建模工具的使用

為加快資料庫設計速度,目前有很多資料庫輔助工具(case工具),如rational公司的rational rose,ca公司的erwin和bpwin,sybase公司的powerdesigner以及oracle公司的oracle designer等。

erwin主要用來建立資料庫的概念模型和物理模型。它能用圖形化的方式,描述出實體、聯絡及實體的屬性。erwin支援idef1x方法。通

過使用erwin建模工具自動生成、更改和分析idef1x模型,不僅能得到優秀的業務功能和資料需求模型,而且可以實現從idef1x模型到資料庫物理

設計的轉變。erwin工具繪製的模型對應於邏輯模型和物理模型兩種。在邏輯模型中,idef1x工具箱可以方便地用圖形化的方式構建和繪製實體聯絡及實

體的屬性。在物理模型中,erwin可以定義對應的表、列,並可針對各種資料庫管理系統自動轉換為適當的型別。

資料庫設計規範

使用明確 統一的標明和列名,例如 school,schoolcourse,courceid。資料表名使用單數而不是複數,例如 studentcourse,而不是studentcourses。資料表名不要使用空格。資料表名不要使用不必要的字首或者字尾,例如使用school,而不是tblschool,或...

資料庫設計規範

csm簡寫會方便很多 就不要用member id,一致性方便大家理解 system.currenttimemillis 進行儲存text查詢是會產生臨時磁碟檔案,效能差進行擷取儲存型別 占用位元組 範圍tinyint 1 128 127 smallint 2 32768 32767 mediumin...

資料庫設計規範

1 基本需求 某學校設計學生教學管理系統。學生實體包括學號 姓名 性別 生日 民族 籍貫 簡歷 登記照,每名學生選擇乙個主修專業,專業包括專業編號和名稱,乙個專業可以屬於 乙個學院,乙個學院可以有若干個專業。學院資訊要儲存學院號 學院名 院長。教學管理還要管理課程表和學生成績。課程表包括課程號 課程...