sqlserver關系數據庫設計_第1頁
sqlserver關系數據庫設計_第2頁
sqlserver關系數據庫設計_第3頁
sqlserver關系數據庫設計_第4頁
sqlserver關系數據庫設計_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第3 3章章 關系數據庫設計關系數據庫設計 3.1 數據庫設計概述數據庫設計概述 3.2 概念結構設計概念結構設計 3.3 邏輯結構設計邏輯結構設計 3.4 本章小結本章小結3.1 數據庫設計概述數據庫設計概述 數據庫設計是指對于一個給定的應用環境,設數據庫設計是指對于一個給定的應用環境,設計優化的數據庫邏輯模式和物理結構,并據此建立計優化的數據庫邏輯模式和物理結構,并據此建立數據庫及其應用系統,使之能夠有效地存儲、管理數據庫及其應用系統,使之能夠有效地存儲、管理和利用數據,滿足各種用戶的應用需求(包括數據和利用數據,滿足各種用戶的應用需求(包括數據需求、處理需求、安全性和完整性需求)。需求

2、、處理需求、安全性和完整性需求)。 也就是說,數據庫設計不但要建立數據庫,而也就是說,數據庫設計不但要建立數據庫,而且還要建立基于數據庫的應用系統,即設計整個數且還要建立基于數據庫的應用系統,即設計整個數據庫應用系統,這是對數據庫設計的廣義理解。據庫應用系統,這是對數據庫設計的廣義理解。 本書主要討論狹義的數據庫設計,即設計數據本書主要討論狹義的數據庫設計,即設計數據庫本身,或者說,設計數據庫的各級模式并據此建庫本身,或者說,設計數據庫的各級模式并據此建立數據庫,這是整個數據庫應用系統設計的一部分。立數據庫,這是整個數據庫應用系統設計的一部分。3.1.1 3.1.1 數據庫設計的方法數據庫設計

3、的方法新奧爾良方法新奧爾良方法 規范設計法,即運用軟件工程思想,將設計過程規范設計法,即運用軟件工程思想,將設計過程分為若干階段和步驟,按照工程化的方法設計數分為若干階段和步驟,按照工程化的方法設計數據庫。據庫。 新奧爾良方法將數據庫設計分成需求分析、概念新奧爾良方法將數據庫設計分成需求分析、概念設計、邏輯設計和物理設計四個步驟。設計、邏輯設計和物理設計四個步驟。 現在常用的規范設計法大多起源于新奧爾良方法,現在常用的規范設計法大多起源于新奧爾良方法,只是在數據庫設計的不同階段上采用了某些具體只是在數據庫設計的不同階段上采用了某些具體的技術和方法。的技術和方法。 基于E-R模型的數據庫設計方法

4、 基于3NF的數據庫設計方法 CASE(Computer-Aided Software Engineering,計算機輔助軟件工程)計算機輔助軟件工程)3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟按照規范設計法,可以將數據庫設計的全過程分按照規范設計法,可以將數據庫設計的全過程分為六個基本階段(如圖為六個基本階段(如圖3.1所示):所示): 需求分析需求分析 概念結構設計概念結構設計 邏輯結構設計邏輯結構設計 物理結構設計物理結構設計 數據庫實施數據庫實施 數據庫運行和維護數據庫運行和維護在這六個階段中,需求分析和概念結構設計可以在這六個階段中,需求分析和概念結構設計可以獨

5、立于任何數據庫管理系統,因此,在設計的初獨立于任何數據庫管理系統,因此,在設計的初期,并不急于確定到底采用哪一種數據庫管理系期,并不急于確定到底采用哪一種數據庫管理系統,從邏輯結構設計階段開始才需要選擇一種具統,從邏輯結構設計階段開始才需要選擇一種具體的數據庫管理系統。體的數據庫管理系統。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )需求分析階段得到的用戶需求在概念結構設計階需求分析階段得到的用戶需求在概念結構設計階段形成獨立于任何數據庫管理系統的概念模型段形成獨立于任何數據庫管理系統的概念模型(有時也稱概念模式),通常用(有時也稱概念模式),通常用E-R圖表

6、示。圖表示。在邏輯結構設計階段,按照一定的轉換規則將在邏輯結構設計階段,按照一定的轉換規則將E-R圖轉換為某一數據庫管理系統支持的數據模型圖轉換為某一數據庫管理系統支持的數據模型(即邏輯模型,如關系模型),從而形成數據庫(即邏輯模型,如關系模型),從而形成數據庫的邏輯模式;然后在此基礎上為不同用戶的邏輯模式;然后在此基礎上為不同用戶/應用應用建立必要的視圖(建立必要的視圖(View),從而形成數據庫的),從而形成數據庫的外模式。外模式。在物理結構設計階段,根據所用數據庫管理系統在物理結構設計階段,根據所用數據庫管理系統的特點和用戶的處理需求,進行物理存儲安排、的特點和用戶的處理需求,進行物理存

7、儲安排、建立必要的索引,從而形成數據庫的內模式。建立必要的索引,從而形成數據庫的內模式。數據庫各級模式的形成如圖數據庫各級模式的形成如圖3.2所示。所示。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )數據庫的設計需要多種人員在不同階段參與進來,數據庫的設計需要多種人員在不同階段參與進來,包括系統分析人員、數據庫設計人員、數據庫管包括系統分析人員、數據庫設計人員、數據庫管理員、應用開發人員和用戶。理員、應用開發人員和用戶。 系統分析人員和數據庫設計人員是數據庫設計的核心人系統分析人員

8、和數據庫設計人員是數據庫設計的核心人員,他們將自始至終參與數據庫的設計,他們的水平直員,他們將自始至終參與數據庫的設計,他們的水平直接決定了數據庫系統的質量。接決定了數據庫系統的質量。 由于需要對數據庫進行全面的管理和控制,數據庫管理由于需要對數據庫進行全面的管理和控制,數據庫管理員也需要參與數據庫設計的全過程。員也需要參與數據庫設計的全過程。 應用開發人員(包括程序員和操作員)在數據庫實施階應用開發人員(包括程序員和操作員)在數據庫實施階段參與進來,負責編制程序和準備軟硬件環境。段參與進來,負責編制程序和準備軟硬件環境。 用戶在需求分析階段和概念結構設計階段參與進來,使用戶在需求分析階段和概

9、念結構設計階段參與進來,使設計人員能準確把握用戶的各種需求,設計出使用戶滿設計人員能準確把握用戶的各種需求,設計出使用戶滿意的概念模型;此外,設計出來的數據庫最終還要交給意的概念模型;此外,設計出來的數據庫最終還要交給用戶正式運行,因此,用戶還要參與數據庫的運行和維用戶正式運行,因此,用戶還要參與數據庫的運行和維護階段。護階段。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )需求分析階段需求分析階段 進行數據庫設計首先必須準確了解和分析各種用戶的應用需求。進行數據庫設計首先必須準確了解和分析各種用戶的應用需求。 需求分析是整個設計過程的基礎,是最困難、也最耗時的

10、一步。需求分析是整個設計過程的基礎,是最困難、也最耗時的一步。 簡單地說,需求分析就是分析用戶的需求,是設計數據庫的起點。簡單地說,需求分析就是分析用戶的需求,是設計數據庫的起點。 通過調查、收集和分析,獲得用戶對數據庫的以下需求:通過調查、收集和分析,獲得用戶對數據庫的以下需求: 數據需求。 處理需求。 安全性與完整性需求。 對用戶的以上需求進行分析和表達之后,必須提交對用戶的以上需求進行分析和表達之后,必須提交給用戶,征得用戶的認可。給用戶,征得用戶的認可。 需求分析階段的一個重要而困難的任務是收集將來需求分析階段的一個重要而困難的任務是收集將來應用可能涉及到的數據,設計人員應充分考慮到應

11、應用可能涉及到的數據,設計人員應充分考慮到應用的可擴充性,使系統易于擴充。用的可擴充性,使系統易于擴充。 3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )概念結構設計階段概念結構設計階段概念結構設計是整個數據庫設計的關鍵,它通過對概念結構設計是整個數據庫設計的關鍵,它通過對用戶需求進行綜合、歸納和抽象,形成獨立于任何用戶需求進行綜合、歸納和抽象,形成獨立于任何數據庫管理系統的概念模型,通常用數據庫管理系統的概念模型,通常用E-R圖表示。圖表示。在需求分析階段得到的應用需求首先應抽象為信息在需求分析階段得到的應用需求首先應抽象為信息世界中的概念模型,才能更準確地用

12、某一數據庫管世界中的概念模型,才能更準確地用某一數據庫管理系統支持的數據模型來實現這些需求。理系統支持的數據模型來實現這些需求。 和數據模型相比,概念模型更容易被用戶理解,是設計人員和用戶之間進行交流的語言,用戶的積極參與是數據庫設計成功的關鍵。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )邏輯結構設計階段邏輯結構設計階段 邏輯結構設計是將概念模型轉換為某一數據庫管理邏輯結構設計是將概念模型轉換為某一數據庫管理系統支持的數據模型(即邏輯模型,如關系模型),系統支持的數據模型(即邏輯模型,如關系模型),并對其進行優化。并對其進行優化。 此外,邏輯結構設計還要根據

13、用戶對數據的不同需此外,邏輯結構設計還要根據用戶對數據的不同需求建立必要的視圖,即外模式。求建立必要的視圖,即外模式。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )物理結構設計階段物理結構設計階段 物理結構設計階段實現的是數據庫系統的內模式,物理結構設計階段實現的是數據庫系統的內模式,它的質量直接決定了整個系統的性能。它的質量直接決定了整個系統的性能。物理結構設計是根據具體計算機系統物理結構設計是根據具體計算機系統(DBMS和硬件和硬件等等)的特點,為數據模型選取一個最適合應用環境的的特點,為數據模型選取一個最適合應用環境的物理結構,包括存儲結構和存取方法。物

14、理結構,包括存儲結構和存取方法。為了設計數據庫的物理結構,設計人員必須充分了為了設計數據庫的物理結構,設計人員必須充分了解所用解所用DBMS的內部特征;充分了解數據系統的實際的內部特征;充分了解數據系統的實際應用環境,特別是數據應用處理的頻率和響應時間應用環境,特別是數據應用處理的頻率和響應時間的要求;充分了解外存儲設備的特性。的要求;充分了解外存儲設備的特性。對將在數據庫上運行的各種事務進行詳細分析,根對將在數據庫上運行的各種事務進行詳細分析,根據所用數據庫管理系統提供的存儲結構和存取方法,據所用數據庫管理系統提供的存儲結構和存取方法,選取一個最適合應用環境的物理結構,使得在數據選取一個最適

15、合應用環境的物理結構,使得在數據庫上運行的各種事務的響應時間小、存儲空間利用庫上運行的各種事務的響應時間小、存儲空間利用率高、事務吞吐率大。率高、事務吞吐率大。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )物理結構設計階段物理結構設計階段( (續續) ) 例如例如 為了提高數據的存取效率,為某些屬性(如經常出現在查詢條件中的多值屬性等)建立必要的索引等; 根據實際情況,將數據的易變部分和穩定部分、經常存取部分和存取頻率較低部分分開存放,以改進系統的性能。 在目前商品化的關系數據庫管理系統中,數據庫的在目前商品化的關系數據庫管理系統中,數據庫的大部分物理結構都由

16、系統自動完成,用戶需要設計大部分物理結構都由系統自動完成,用戶需要設計的部分已經很少了。的部分已經很少了。 實際上,對于小型的數據庫,我們很少考慮數據庫實際上,對于小型的數據庫,我們很少考慮數據庫的物理結構。的物理結構。 因此,這里只重點討論數據庫的概念結構設計和邏因此,這里只重點討論數據庫的概念結構設計和邏輯結構設計。輯結構設計。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )數據庫實施階段數據庫實施階段 在數據庫實施階段,根據邏輯結構設計和物理結構在數據庫實施階段,根據邏輯結構設計和物理結構設計的結果,設計人員用數據庫管理系統提供的數設計的結果,設計人員用數

17、據庫管理系統提供的數據定義語言(如據定義語言(如SQL)建立數據庫,并編制、調試)建立數據庫,并編制、調試應用程序,組織數據入庫,進行試運行。應用程序,組織數據入庫,進行試運行。 逐步增加數據量,逐步完成運行評價。逐步增加數據量,逐步完成運行評價。 首先應調試運行數據庫管理系統的恢復功能,做好首先應調試運行數據庫管理系統的恢復功能,做好數據庫的轉儲和恢復工作。數據庫的轉儲和恢復工作。3.1.2 3.1.2 數據庫設計的基本步驟數據庫設計的基本步驟( (續續) )數據庫的運行和維護階段數據庫的運行和維護階段 數據庫試運行合格后,就可以交給用戶正式運行了。數據庫試運行合格后,就可以交給用戶正式運行

18、了。 由于應用環境的不斷變化,對數據庫的維護工作將由于應用環境的不斷變化,對數據庫的維護工作將是一項長期任務。是一項長期任務。 在數據庫運行階段,對數據庫經常性的維護工作主在數據庫運行階段,對數據庫經常性的維護工作主要由數據庫管理員負責完成,包括:要由數據庫管理員負責完成,包括: 數據庫的轉儲和恢復。 數據的安全性和完整性控制。 數據庫性能的監督、分析與改造。 數據庫的重組織和重構造。設計一個完善的數據庫應用系統往往需要以上設計一個完善的數據庫應用系統往往需要以上6 6個階段的不斷反復。個階段的不斷反復。 第第3 3章章 關系數據庫設計關系數據庫設計 3.1 數據庫設計概述數據庫設計概述 3.

19、2 概念結構設計概念結構設計 3.3 邏輯結構設計邏輯結構設計 3.4 本章小結本章小結3.2 3.2 概念結構設計概念結構設計概念結構設計是將用戶需求抽象為概念模型(或概念結構設計是將用戶需求抽象為概念模型(或稱概念結構)的過程,是整個數據庫設計的關鍵。稱概念結構)的過程,是整個數據庫設計的關鍵。作為各種數據模型的共同基礎,概念結構具有以作為各種數據模型的共同基礎,概念結構具有以下主要特點:下主要特點:能真實、充分地反映現實世界,包括客觀事物以及客能真實、充分地反映現實世界,包括客觀事物以及客觀事物之間的各種聯系,能滿足用戶對數據的處理需觀事物之間的各種聯系,能滿足用戶對數據的處理需求,是現

20、實世界的一個真實模型;求,是現實世界的一個真實模型;易于理解,從而可以用它和不熟悉計算機的用戶交換易于理解,從而可以用它和不熟悉計算機的用戶交換意見,是數據庫設計人員和用戶之間進行交流的工具;意見,是數據庫設計人員和用戶之間進行交流的工具;易于更改,當應用環境和應用需求發生變化時,容易易于更改,當應用環境和應用需求發生變化時,容易對概念模型進行相應的修改和擴充;對概念模型進行相應的修改和擴充;易于向關系、網狀、層次等各種數據模型轉換。易于向關系、網狀、層次等各種數據模型轉換。3.2.1 3.2.1 概念結構設計的方法和步驟概念結構設計的方法和步驟概念結構設計通常有以下四種方法:概念結構設計通常

21、有以下四種方法: 自頂向下自頂向下 自底向上自底向上 逐步擴張逐步擴張 混合策略混合策略其中,最常用的策略是自底向上方法,即自頂向其中,最常用的策略是自底向上方法,即自頂向下地進行需求分析,然后再自底向上地設計概念下地進行需求分析,然后再自底向上地設計概念模型。模型。3.2.1 3.2.1 概念結構設計的方法和步驟概念結構設計的方法和步驟( (續續) )概念結構設計可分為以下兩個步驟概念結構設計可分為以下兩個步驟: : 根據需求分析的結果,為每一個局部應用設計相應的根據需求分析的結果,為每一個局部應用設計相應的局部概念模型(或稱局部視圖);局部概念模型(或稱局部視圖); 將這些局部視圖集成為一

22、個全局的概念模型,并對其將這些局部視圖集成為一個全局的概念模型,并對其進行驗證,以確保該全局概念模型的一致性,并滿足進行驗證,以確保該全局概念模型的一致性,并滿足需求分析階段確定的所有用戶需求。需求分析階段確定的所有用戶需求。3.2.2 3.2.2 局部視圖的設計局部視圖的設計學生成績管理子系統學生成績管理子系統 學生成績管理子系統主要用于學生的選課管理和成績管理。學生成績管理子系統主要用于學生的選課管理和成績管理。 學校只有一種類型的學生,每名學生有惟一的一個學號,還學校只有一種類型的學生,每名學生有惟一的一個學號,還有姓名、性別、年齡、班級等基本信息。有姓名、性別、年齡、班級等基本信息。

23、學校開設了多門課程,每門課程有惟一的一個課程號,還有學校開設了多門課程,每門課程有惟一的一個課程號,還有課程名、學分、課程簡介等基本信息。課程名、學分、課程簡介等基本信息。 由于一門課程同時可以由多位老師講授,因此,在上一學期由于一門課程同時可以由多位老師講授,因此,在上一學期末進行選課的時候,每名學生可以根據主講老師(有惟一的末進行選課的時候,每名學生可以根據主講老師(有惟一的老師編號)的姓名、性別、年齡、職稱、學歷等基本信息有老師編號)的姓名、性別、年齡、職稱、學歷等基本信息有選擇地選修由某些老師講授的某些課程。選擇地選修由某些老師講授的某些課程。 每位老師同時可以講授多門課程,每門課程可

24、以供多名學生每位老師同時可以講授多門課程,每門課程可以供多名學生選修,如果由某位老師講授的某門課程沒有學生選修,則取選修,如果由某位老師講授的某門課程沒有學生選修,則取消由這位老師講授的這門課程。消由這位老師講授的這門課程。 主講老師會在學期末將自己所教學生的所教課程成績輸入到主講老師會在學期末將自己所教學生的所教課程成績輸入到數據庫中,供學生在網上進行查詢。數據庫中,供學生在網上進行查詢。3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )學生成績管理子系統學生成績管理子系統( (續續) ) 首先,根據用戶需求,分析潛在的實體。實體通常是首先,根據用戶需求,分析潛在的實體。實

25、體通常是需求文檔中的中心名詞,主要活動都是圍繞它們開展需求文檔中的中心名詞,主要活動都是圍繞它們開展的。顯然可以找出學生、課程和老師這的。顯然可以找出學生、課程和老師這3 3個實體,因個實體,因為該子系統的主要活動為該子系統的主要活動課程的選修與講授以及成課程的選修與講授以及成績的輸入與查詢都是圍繞這績的輸入與查詢都是圍繞這3 3個實體開展的。個實體開展的。 每一個實體都有相應的屬性來描述它。在本例中,每一個實體都有相應的屬性來描述它。在本例中, 描述學生的基本屬性有學號、姓名、性別、年齡和班級,其中,學號為碼。 描述課程的基本屬性有課程號、課程名、學分和課程簡介,其中,課程號為碼。 描述老師

26、的基本屬性有老師編號、姓名、性別、年齡、職稱、學歷,其中,老師編號為碼。 3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )學生成績管理子系統學生成績管理子系統( (續續) ) 其次,根據用戶需求,確定實體之間的聯系。實體之其次,根據用戶需求,確定實體之間的聯系。實體之間的聯系通常是需求文檔中的中心動詞,表示實體之間的聯系通常是需求文檔中的中心動詞,表示實體之間發生的動作或隸屬關系。在本例中,選修(或講授)間發生的動作或隸屬關系。在本例中,選修(或講授)就是這就是這3 3個實體之間發生的主要動作。個實體之間發生的主要動作。 由于一名學生可以選修由不同老師講授的不同課程,由于一

27、名學生可以選修由不同老師講授的不同課程,一位老師可以給不同學生講授不同課程,一門課程可一位老師可以給不同學生講授不同課程,一門課程可以由不同老師給不同學生講授,因此,這以由不同老師給不同學生講授,因此,這3 3個實體之個實體之間的選修聯系是一個多對多聯系(間的選修聯系是一個多對多聯系(m:n:pm:n:p)。)。 選修聯系發生后,會產生一個基本屬性,這就是主講選修聯系發生后,會產生一個基本屬性,這就是主講老師要向數據庫輸入的成績。老師要向數據庫輸入的成績。 老師對成績的輸入和學生對成績的查詢都不能看作是老師對成績的輸入和學生對成績的查詢都不能看作是實體之間的聯系,它們只是對成績屬性的數據操作。

28、實體之間的聯系,它們只是對成績屬性的數據操作。3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )學生成績管理子系統的學生成績管理子系統的E-RE-R圖圖3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )在不同的應用中,同一個客觀事物可以有不同的在不同的應用中,同一個客觀事物可以有不同的抽象級別。抽象級別。例如,班級在這里作為學生的一個屬性,而在其例如,班級在這里作為學生的一個屬性,而在其它地方可能被抽象為一個實體。它地方可能被抽象為一個實體。為了簡化為了簡化E-R圖,盡量減少實體個數,凡滿足以圖,盡量減少實體個數,凡滿足以下兩條準則的客觀事物,一般都作為屬性

29、處理:下兩條準則的客觀事物,一般都作為屬性處理: 屬性必須是不可再分的數據項,即屬性不能再有需屬性必須是不可再分的數據項,即屬性不能再有需要進一步描述的性質;要進一步描述的性質; 屬性不能與其它實體發生聯系,即屬性不能與其它實體發生聯系,即E-R圖中的聯系都圖中的聯系都是實體和實體之間的聯系。是實體和實體之間的聯系。如果班級還有需要進一步描述的性質,如班級人如果班級還有需要進一步描述的性質,如班級人數和所屬專業,那么班級就需要作為實體處理,數和所屬專業,那么班級就需要作為實體處理,學生和班級之間就是實體和實體之間的聯系。學生和班級之間就是實體和實體之間的聯系。或者如果還需要描述班級和班主任之間

30、的管理聯或者如果還需要描述班級和班主任之間的管理聯系的話,那么班級也需要作為實體處理。系的話,那么班級也需要作為實體處理。3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )學生圖書借閱管理子系統學生圖書借閱管理子系統 學生圖書借閱管理子系統主要用于學生的借學生圖書借閱管理子系統主要用于學生的借/ /還書管理。還書管理。 每名學生需要由特定的圖書管理員為其進行注冊,才能從每名學生需要由特定的圖書管理員為其進行注冊,才能從圖書館中借書,注冊后的每名學生有惟一的一個借閱證號,圖書館中借書,注冊后的每名學生有惟一的一

31、個借閱證號,還有姓名、性別、班級等基本信息。還有姓名、性別、班級等基本信息。 每本圖書也需要由特定的圖書管理員對其進行登記、上架,每本圖書也需要由特定的圖書管理員對其進行登記、上架,才能被借出,登記后的每本圖書有惟一的一個書號,還有才能被借出,登記后的每本圖書有惟一的一個書號,還有書名、作者、出版社、出版時間、圖書類型等基本信息。書名、作者、出版社、出版時間、圖書類型等基本信息。 不同類型的圖書有不同的借閱期限。不同類型的圖書有不同的借閱期限。 每名學生可以借閱多本圖書,每本圖書可以供多名學生借每名學生可以借閱多本圖書,每本圖書可以供多名學生借閱,這些借閱,這些借/ /還書工作也由若干名圖書管

32、理員負責完成。還書工作也由若干名圖書管理員負責完成。 此外,對每本被借出的圖書還要記錄相應的借出日期和歸此外,對每本被借出的圖書還要記錄相應的借出日期和歸還日期,以便快速發現歸還的圖書是否超出了借閱期限。還日期,以便快速發現歸還的圖書是否超出了借閱期限。 每名圖書管理員有惟一的一個職工號,還有姓名、性別、每名圖書管理員有惟一的一個職工號,還有姓名、性別、職稱等基本信息。職稱等基本信息。3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )學生圖書借閱管理子系統(續)學生圖書借閱管理子系統(續) 首先,根據用戶需求,分析潛在的實體。顯然可以首先,根據用戶需求,分析潛在的實體。顯然可

33、以找出管理員、學生和圖書這找出管理員、學生和圖書這3 3個實體,因為該子系統個實體,因為該子系統的主要活動的主要活動學生注冊、圖書登記和借學生注冊、圖書登記和借/ /還書都是還書都是圍繞這圍繞這3 3個實體開展的。個實體開展的。 由于圖書類型還有一個需要描述的性質,即借閱期由于圖書類型還有一個需要描述的性質,即借閱期限,因此將其作為一個實體處理,借閱期限是它的限,因此將其作為一個實體處理,借閱期限是它的屬性。屬性。 每一個實體都有相應的屬性來描述它。在本例中,每一個實體都有相應的屬性來描述它。在本例中, 描述學生的基本屬性有借閱證號、姓名、性別和班級,其中,借閱證號為碼。 描述圖書的基本屬性有

34、書號、書名、作者、出版社和出版時間(這里,圖書類型不再作為圖書的一個屬性,而是作為一個實體處理),其中,書號為碼。 圖書類型的基本屬性有類型名和借閱期限,其中,類型名為碼。 描述管理員的基本屬性有職工號、姓名、性別和職稱,其中,職工號為碼。 3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )學生圖書借閱管理子系統(續)學生圖書借閱管理子系統(續) 其次,根據用戶需求,確定實體之間的聯系。在本例中,其次,根據用戶需求,確定實體之間的聯系。在本例中,注冊、登記和借注冊、登記和借/ /還書是這些實體之間發生的還書是這些實體之間發生的3 3個主要動作。個主要動作。 由于一名圖書管理員

35、可以為多名學生進行注冊,而一名學由于一名圖書管理員可以為多名學生進行注冊,而一名學生則只需要由特定的圖書管理員注冊一次即可,因此,他生則只需要由特定的圖書管理員注冊一次即可,因此,他們之間的注冊聯系是一個一對多聯系。們之間的注冊聯系是一個一對多聯系。 同理,圖書管理員和圖書之間的登記聯系也是一個一對多同理,圖書管理員和圖書之間的登記聯系也是一個一對多聯系。聯系。 由于一名學生可以借閱多本圖書,一本圖書可以供多名學由于一名學生可以借閱多本圖書,一本圖書可以供多名學生借閱,這一工作可以由不同的圖書管理員負責完成,因生借閱,這一工作可以由不同的圖書管理員負責完成,因此,這此,這3 3個實體之間的借閱

36、聯系是一個多對多聯系個實體之間的借閱聯系是一個多對多聯系(m:n:pm:n:p)。)。 借閱聯系發生后,會產生兩個基本屬性,這就是借出日期借閱聯系發生后,會產生兩個基本屬性,這就是借出日期和歸還日期。和歸還日期。 此外,由于圖書類型已經從圖書的一個屬性變成了一個獨此外,由于圖書類型已經從圖書的一個屬性變成了一個獨立的實體,所以它和圖書之間還存在著一個聯系,這就是立的實體,所以它和圖書之間還存在著一個聯系,這就是一對多的屬于聯系。一對多的屬于聯系。3.2.2 3.2.2 局部視圖的設計局部視圖的設計( (續續) )學生圖書借閱管理子系統學生圖書借閱管理子系統的的E-R圖圖3.2.3 3.2.3

37、局部視圖的集成局部視圖的集成在各個局部應用的分在各個局部應用的分E-R圖設計好之后,下一步就是將圖設計好之后,下一步就是將所有的分所有的分E-R圖集成為一個總圖集成為一個總E-R圖。分圖。分E-R圖的集成也圖的集成也需要分兩步走:需要分兩步走:合并。解決各分合并。解決各分E-R圖之間的沖突,將各分圖之間的沖突,將各分E-R圖合并起來,圖合并起來,生成初步生成初步E-R圖。圖。修改和重構。消除不必要的冗余,生成基本修改和重構。消除不必要的冗余,生成基本E-R圖。圖。3.2.3 3.2.3 局部視圖的集成局部視圖的集成( (續續) )合并分合并分E-R圖,生成初步圖,生成初步E-R圖圖由于各個局部

38、應用面向的問題不同,設計人員通常也不同,由于各個局部應用面向的問題不同,設計人員通常也不同,因此,各個分因此,各個分E-R圖可能會存在許多不一致的地方,稱之圖可能會存在許多不一致的地方,稱之為沖突。為沖突。在合并分在合并分E-R圖的時候,必須解決這些沖突。圖的時候,必須解決這些沖突。沖突的種類沖突的種類 結構沖突結構沖突 命名沖突命名沖突 屬性沖突屬性沖突3.2.3 3.2.3 局部視圖的集成局部視圖的集成( (續續) )消除不必要的冗余,生成基本消除不必要的冗余,生成基本E-R圖圖在初步在初步E-R圖中,雖然解決了沖突,但還可能存在一圖中,雖然解決了沖突,但還可能存在一些冗余數據和冗余聯系。

39、些冗余數據和冗余聯系。冗余數據和冗余聯系容易破壞數據的完整性,給數冗余數據和冗余聯系容易破壞數據的完整性,給數據庫的更新和維護增加困難,應當予以消除。據庫的更新和維護增加困難,應當予以消除。例如,在下圖中,學生和專業之間的例如,在下圖中,學生和專業之間的“屬于屬于3”聯系聯系就是一個冗余聯系,專業人數就是一個冗余聯系,專業人數ns是一個冗余數據。是一個冗余數據。 并不是所有的冗余數據和冗余聯系都必須予以消除并不是所有的冗余數據和冗余聯系都必須予以消除的。有時為了提高查詢效率,不得不以數據冗余作的。有時為了提高查詢效率,不得不以數據冗余作為代價。為代價。 3.2.3 3.2.3 局部視圖的集成局

40、部視圖的集成( (續續) )集成后集成后的的基本基本E-R圖圖(省略了各個實體的屬性)(省略了各個實體的屬性) 3.2.3 3.2.3 局部視圖的集成局部視圖的集成( (續續) )將局部視圖集成為一個全局概念模型之后,還需要對將局部視圖集成為一個全局概念模型之后,還需要對這個全局概念模型作進一步的驗證,以確保它能滿足這個全局概念模型作進一步的驗證,以確保它能滿足以下三個條件:以下三個條件:全局概念模型內部具有一致性,不存在相互矛盾的表達;全局概念模型內部具有一致性,不存在相互矛盾的表達;全局概念模型應能準確反映原來的每一個局部視圖;全局概念模型應能準確反映原來的每一個局部視圖;全局概念模型應能

41、滿足需求分析階段確定的所有用戶需求。全局概念模型應能滿足需求分析階段確定的所有用戶需求。第第3 3章章 關系數據庫設計關系數據庫設計 3.1 數據庫設計概述數據庫設計概述 3.2 概念結構設計概念結構設計 3.3 邏輯結構設計邏輯結構設計 3.4 本章小結本章小結3.3 3.3 邏輯結構設計邏輯結構設計概念模型是獨立于任何一種數據庫管理系統的、概念模型是獨立于任何一種數據庫管理系統的、更加抽象的模型,若要實現數據庫,還需選擇一更加抽象的模型,若要實現數據庫,還需選擇一種具體的數據庫管理系統,將概念模型(即概念種具體的數據庫管理系統,將概念模型(即概念結構設計階段得到的基本結構設計階段得到的基本

42、E-R圖)轉換為數據庫圖)轉換為數據庫賴以計算機實現的、由該數據庫管理系統支持的賴以計算機實現的、由該數據庫管理系統支持的數據模型(即邏輯模型,如關系模型),這一過數據模型(即邏輯模型,如關系模型),這一過程就是邏輯結構設計。程就是邏輯結構設計。由于目前設計的數據庫應用系統大都采用關系數由于目前設計的數據庫應用系統大都采用關系數據庫管理系統,因此,這里只討論據庫管理系統,因此,這里只討論E-R圖向關系圖向關系模型的轉換。模型的轉換。3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換E-R圖向關系模型的轉換,實際上就是要將圖向關系模型的轉換,實際上就是要將E-R圖中的實體以及實體

43、之間的聯系轉換為若干個關圖中的實體以及實體之間的聯系轉換為若干個關系模式,并確定其中的屬性和碼。系模式,并確定其中的屬性和碼。E-R圖向關系模型的轉換需要遵循以下原則:圖向關系模型的轉換需要遵循以下原則: 實體的轉換實體的轉換 一個實體(型)轉換為一個關系模式,關系模式的屬性就是實體的屬性,關系模式的碼就是實體的碼。 本例中的六個實體分別轉換為以下六個關系模式(其中,關系模式的碼用下劃線標明): 學生(學號,姓名,性別,年齡,班級) 課程(課程號,課程名,學分,課程簡介) 老師(老師編號,姓名,性別,年齡,職稱,學歷) 圖書(書號,書名,作者,出版社,出版時間) 圖書類型(類型名,借閱期限)

44、圖書管理員(職工號,姓名,性別,職稱) 3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )二元聯系的轉換二元聯系的轉換 一對一聯系有以下兩種轉換方法一對一聯系有以下兩種轉換方法 轉換為一個獨立的關系模式,關系模式的屬性包括與該聯系相連的兩端實體的碼以及聯系本身的屬性,關系模式的碼可以是任何一端實體的碼。 可以和任何一端實體轉換得到的關系模式合并,即在被合并的關系模式中增加與該聯系相連的另一端實體的碼以及聯系本身的屬性,合并后的關系模式的碼保持不變。3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )例如,班主任和班級之間具有一對一的

45、管理聯系。例如,班主任和班級之間具有一對一的管理聯系??梢赞D換為以下三個關系模式:可以轉換為以下三個關系模式: 班主任(班主任(職工號職工號,姓名,性別,年齡,職稱),姓名,性別,年齡,職稱) 班級(班級(班級號班級號,班級人數,所屬專業),班級人數,所屬專業) 管理(管理(班級號班級號,職工號,開始時間),職工號,開始時間)或或 管理(管理(職工號職工號,班級號,開始時間),班級號,開始時間)或兩個關系模式:或兩個關系模式: 班主任(班主任(職工號職工號,姓名,性別,年齡,職稱,班級號,開始,姓名,性別,年齡,職稱,班級號,開始時間)時間) 班級(班級(班級號班級號,班級人數,所屬專業),班

46、級人數,所屬專業)或或 班主任(班主任(職工號職工號,姓名,性別,年齡,職稱),姓名,性別,年齡,職稱) 班級(班級(班級號班級號,班級人數,所屬專業,職工號,開始時間),班級人數,所屬專業,職工號,開始時間)和哪一端的關系模式合并會更好一些呢?和哪一端的關系模式合并會更好一些呢? 3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )二元聯系的轉換(續)二元聯系的轉換(續) 一對多聯系有以下兩種轉換方法一對多聯系有以下兩種轉換方法 轉換為一個獨立的關系模式,關系模式的屬性包括與該聯系相連的兩端實體的碼以及聯系本身的屬性,關系模式的碼就是n端實體的碼 。 可以和n端

47、實體轉換得到的關系模式合并,即在n端實體轉換得到的關系模式中增加與該聯系相連的另一端實體(即1端實體)的碼(該屬性在合并后的關系模式中還是一個外碼)以及聯系本身的屬性,合并后的關系模式的碼保持不變。 3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )例如,圖書類型和圖書之間具有一對多的屬于聯系。例如,圖書類型和圖書之間具有一對多的屬于聯系??梢赞D換為以下三個關系模式(其中,外碼用斜體標可以轉換為以下三個關系模式(其中,外碼用斜體標明):明): 圖書(圖書(書號書號,書名,作者,出版社,出版時間),書名,作者,出版社,出版時間) 圖書類型(圖書類型(類型名類型名,

48、借閱期限),借閱期限) 屬于(屬于(書號書號,類型名類型名)或兩個關系模式:或兩個關系模式: 圖書(圖書(書號書號,書名,作者,出版社,出版時間,書名,作者,出版社,出版時間,類型名類型名) 圖書類型(圖書類型(類型名類型名,借閱期限),借閱期限)3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )二元聯系的轉換(續)二元聯系的轉換(續) 多對多聯系的轉換方法多對多聯系的轉換方法 轉換為一個獨立的關系模式,關系模式的屬性包括與該聯系相連的兩端實體的碼以及聯系本身的屬性,關系模式的碼由這兩個實體的碼共同組成,在這個獨立的關系模式中,它們也都是外碼。 例如,倉庫和零件

49、之間具有多對多的存放聯系,則它們可以轉換為以下三個關系模式: 倉庫(倉庫號,面積,位置,電話號碼) 零件(零件號,名稱,規則,單價) 存放(倉庫號,零件號,存放數量) 3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )多元聯系的轉換多元聯系的轉換 和二元聯系中的多對多聯系一樣,轉換為一個獨立的和二元聯系中的多對多聯系一樣,轉換為一個獨立的關系模式,關系模式的屬性包括與該聯系相連的各端關系模式,關系模式的屬性包括與該聯系相連的各端實體的碼以及聯系本身的屬性,關系模式的碼由這些實體的碼以及聯系本身的屬性,關系模式的碼由這些實體的碼共同組成,在這個獨立的關系模式中,它

50、們實體的碼共同組成,在這個獨立的關系模式中,它們也都是外碼。也都是外碼。 例如,學生、老師和課程這三個實體之間具有一個多例如,學生、老師和課程這三個實體之間具有一個多對多的選修聯系,則它們可以轉換為以下對多的選修聯系,則它們可以轉換為以下4 4個關系模式:個關系模式: 學生(學號,姓名,性別,年齡,班級) 課程(課程號,課程名,學分,課程簡介) 老師(老師編號,姓名,性別,年齡,職稱,學歷) 選修(學號,課程號,老師編號,成績)3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )一元聯系的轉換一元聯系的轉換 同一個實體集內部各實體之間聯系(一對一、一對同一個實體集

51、內部各實體之間聯系(一對一、一對多、多對多)的轉換規則和二元聯系(一對一、一多、多對多)的轉換規則和二元聯系(一對一、一對多、多對多)的轉換規則相同。對多、多對多)的轉換規則相同。 例如,職工實體集內部具有一個一對多的領導聯系,例如,職工實體集內部具有一個一對多的領導聯系,則它們可以轉換為兩個關系模式:則它們可以轉換為兩個關系模式: 職工(職工號,姓名,性別,職稱) 領導(職工號,領導職工號) 或單個關系模式:或單個關系模式: 職工(職工號,姓名,性別,職稱,領導職工號)3.3.1 3.3.1 E-R圖向關系模型的轉換圖向關系模型的轉換( (續續) )具有相同碼的關系模式可以合并。具有相同碼的關系模式可以合并。根據以上轉換原則,學生管理信息系統的關系模型由根據以上轉換原則,學生管理信息系統的關系模型由以下八個關

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論