第六章 數據庫設計
一、選擇題
1. 數據流程圖是用於描述結構化方法中( )階段的工具。
A. 概要設計 B. 可行性分析
C. 程序編碼 D. 需求分析
2. 數據庫設計中,用E-R圖賴描述信息結構但不涉及信息在計算機中的表示,這是數據庫設計的( )。
A. 需求分析階段 B. 邏輯設計階段
C. 概念設計階段 D. 物理設計階段
3. 在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬於( )。
A. 需求分析階段 B. 邏輯設計階段
C. 概念設計階段 D. 物理設計階段
4. 子模式DDL是用來描述( )。
A. 數據庫的總體邏輯結構 B. 數據庫的局部邏輯結構
C. 數據庫的物理存儲結構 D. 數據庫的概念結構
5. 數據庫設計的概念設計階段,表示概念結構的常用方法和描述工具是( )。
A.層次分析法和層次結構圖
B.數據流程分析法和數據流程圖
C.實體聯系法和實體聯系圖
D.結構分析法和模塊結構圖
6. 在E-R模型向關系模型轉換時,M:N的聯系轉換為關系模式時,其關鍵字是( )。
A.M端實體的關鍵字
B.N端實體的關鍵字
C.M、N端實體的關鍵字組合
D.重新選取其他屬性
7. 某學校規定,每一個班級最多有50名學生,至少有10名學生;每一名學生必須屬於一個班級。在班級與學生實體的聯系中,學生實體的基數是( ) 。
A. (0,1) B. (1,1)
C. (1,10) D. (10,50)
8. 在關系數據庫設計中,設計關系模式是數據庫設計中( )階段的任務 。
A. 邏輯設計階段 B. 概念設計階段
C. 物理設計階段 D. 需求分析階段
9. 關系數據庫的規范化理論主要解決的問題是( )。
A.如何構造合適的數據邏輯結構
B.如何構造合適的數據物理結構
C.如何構造合適的應用程序界面
D.如何控制不同用戶的數據操作權限
10. 數據庫設計可划分為七個階段,每個階段都有自己的設計內容,“為哪些關系,在哪些屬性上、鍵什么樣的索引”這一設計內容應該屬於( )設計階段。
A. 概念設計 B. 邏輯設計
C. 物理設計 D. 全局設計
11. 假設設計數據庫性能用“開銷”,即時間、空間及可能的費用來衡量,則在數據庫應用系統生存期中存在很多開銷。其中,對物理設計者來說,主要考慮的是( )。
A. 規划開銷 B. 設計開銷
C. 操作開銷 D. 維護開銷
12. 數據庫物理設計完成后,進入數據庫實施階段,下述工作中,( )一般不屬於實施階段的工作。
A. 建立庫結構 B. 系統調試
C. 加載數據 D. 擴充功能
13. 從ER圖導出關系模型時,如果實體間的聯系是M:N的,下列說法中正確的是( )。
A. 將N方關鍵字和聯系的屬性納入M方的屬性中
B. 將M方關鍵字和聯系的屬性納入N方的屬性中
C. 增加一個關系表示聯系,其中納入M方和N方的關鍵字
D. 在M方屬性和N方屬性中均增加一個表示級別的屬性
14. 在ER模型中,如果有3個不同的實體集,3個M:N聯系,根據ER模型轉換為關系模型的規則,轉換為關系的數目是( )。
A. 4 B. 5
C. 6 D. 7
選擇題答案:
(1) D (2) C (3) B (4) B (5) C
(6) C (7) B (8) A (9) A (10) C
(11) C (12) D (13) C (14) C
二、簡答題
1. 試述數據庫設計過程。
*解析
希望同學能夠認真閱讀《概論》的內容,了解並掌握數據庫設計過程。這里只概要列出數據庫設計過程的六個階段:
1) 需求分析
2) 概念結構設計
3) 邏輯結構設計
4) 數據庫物理設計
5) 數據庫實施
6) 數據庫運行和維護
這是一個完整的實際數據庫及其應用系統的設計過程。不僅包括設計數據庫本身,還包括數據庫的實施、數據庫運行和維護。
設計一個完善的數據庫應用系統往往是上述六個階段的不斷反復。
2. 試述數據庫設計過程的各個階段上的設計描述。
*解析:這是進一步了解數據庫設計的具體內容。設計描述是指在各個階段體現設計內容,描述設計結果的各種文檔、程序。
答:各階段的設計要點如下:
1) 需求分析:准確了解與分析用戶需求(包括數據與處理)。
2) 概念結構設計:通過對用戶需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的概念模型。
3) 邏輯結構設計:將概念結構轉換為某個DBMS所支持的數據模型,並對其進行優化。
4) 數據庫物理設計:為邏輯數據模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。
5) 數據庫實施:設計人員運用DBMS提供的數據語言、工具及宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編制與調試應用程序,組織數據入庫,並進行試運行。
6) 數據庫運行和維護:在數據庫系統運行過程中對其進行評價、調整與修改。
3. 試述數據庫設計過程中結構設計部分形成的數據庫模式。
答: 數據庫結構設計的不同階段形成數據庫的各級模式,即:
l 在概念設計階段形成獨立於機器特點,獨立於各個DBMS產品的概念模式,在本篇中就是E-R圖;
l 在邏輯設計階段將E-R圖轉換成具體的數據庫產品支持的數據模型,如關系模型,形成數據庫邏輯模式;然后在基本表的基礎上再建立必要的視圖(View),形成數據的外模式;
l 在物理設計階段,根據DBMS特點和處理的需要,進行物理存儲安排,建立索引,形成數據庫內模式。
概念模式是面向用戶和設計人員的,屬於概念模型的層次;邏輯模式、外模式、內模式是DBMS支持的模式,屬於數據模型的層次。可以在DBMS中加以描述和存儲。
4. 試述數據庫設計的特點。
答: 數據庫設計既是一項涉及多學科的綜合性技術又是一項龐大的工程項目。其主要特點有:
1) 數據庫建設是硬件、軟件和干件(技術與管理的界面)的結合。
2) 從軟件設計的技術角度看,數據庫設計應該和應用系統設計相結合,也就是說,整個設計過程中要把結構(數據)設計和行為(處理)設計密切結合起來。
5. 需求分析階段的設計目標是什么?調查的內容是什么?
答: 需求分析階段的設計目標是通過詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統(手工系統或計算機系統)工作概況,明確用戶的各種需求,然后在此基礎上確定新系統的功能。
調查的內容是“數據”和“處理”,即獲得用戶對數據庫的如下要求:
(1)信息要求。指用戶需要從數據庫中獲得信息的內容與性質。由信息要求可以導出數據要求,即在數據庫中需要存儲哪些數據。
(2)處理要求。指用戶要完成什么處理功能,對處理的響應時間有什么要求,處理方式是批處理還是聯機處理。
(3)安全性與完整性要求。
6. 數據字典的內容和作用是什么?
答:
數據字典是系統中各類數據描述的集合。數據字典的內容通常包括:數據項、數據結構、數據流、數據存儲、處理過程五個部分
其中數據項是數據的最小組成單位,若干個數據項可以組成一個數據結構。數據字典通過對數據項和數據結構的定義來描述數據流、數據存儲的邏輯內容。
數據字典的作用:
數據字典是關於數據庫中數據的描述,在需求分析階段建立,是下一步進行概念設計的基礎,並在數據庫設計過程中不斷修改、充實、完善。
(注意,數據庫設計階段形成的數據字典與后面講到的數據字典不同,后者是DBMS關於數據庫中數據的描述,當然兩者是有聯系的)。
7. 什么是數據庫的概念結構?試述其特點和設計策略。
答:
概念結構是信息世界的結構,即概念模型,其主要特點是:
(1)能真實、充分地反映現實世界,包括事物和事物之間的聯系,能滿足用戶對數據的處理要求。是對現實世界的一個真實模型。
(2)易於理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數據庫的設計成功的關鍵。
(3)易於更改,當應用環境和應用要求改變時,容易對概念模型修改和擴充。
(4)易於向關系、網狀、層次等各種數據模型轉換。
概念結構的設計策略通常有四種:
· 自頂向下。即首先定義全局概念結構的框架,然后逐步細化;
· 自底向上。即首先定義各局部應用的概念結構,然后將它們集成起來,得到全局概念
結構;
· 逐步擴張。首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生
成其他概念結構,直至總體概念結構;
· 混合策略。即將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的
框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。
8. 什么叫數據抽象?試舉例說明。
答: 數據抽象是對實際的人、物、事和概念進行人為處理,抽取所關心的共同特性,忽略非本質的細節,並把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。
如分類這種抽象是:定義某一類概念作為現實世界中一組對象的類型。這些對象具有某些共同的特性和行為。它抽象了對象值和型之間的“is member of”的語義。在E-R模型中,實體型就是這種抽象。例如在學校環境中,李英是老師,表示李英是教師類型中的一員,則教師是實體型,李英是教師實體型中的一個實體值,具有教師共同的特性和行為:在某個系某個專業教學,講授某些課程,從事某個方向的科研。
9.試述數據庫概念結構設計的重要性和設計步驟。
答: 重要性:
數據庫概念設計是整個數據庫設計的關鍵,將在需求分析階段所得到的應用需求首先抽
象為概念結構,以此作為各種數據模型的共同基礎,從而能更好地、更准確地用某一DBMS實現這些需求。
設計步驟:
概念結構的設計方法有多種,其中最經常采用的策略是自底向上方法,該方法的設計步
驟通常分為兩步:第1步是抽象數據並設計局部視圖,第2步是集成局部視圖,得到全局的概念結構
10.什么是E-R圖?構成E-R圖的基本要素是什么?
答: E-R圖為實體-聯系圖,提供了表示實體型、屬性和聯系的方法,用來描述現實世界的概念模型。
構成E-R圖的基本要素是實體型、屬性和聯系,其表示方法為:
· 實體型:用矩形表示,矩形框內寫明實體名;
· 屬性:用橢圓形表示,並用無向邊將其與相應的實體連接起來;
· 聯系:用菱形表示,菱形框內寫明聯系名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1 : 1,1 : n或m : n)。
11. 為什么要視圖集成?視圖集成的方法是什么?
答: 在對數據庫系統進行概念結構設計時一般采用自底向上的設計方法,把繁雜的大系統分解子系統。首先設計各個子系統的局部視圖,然后通過視圖集成的方式將各子系統有機的融合起來,綜合成一個系統的總視圖。這樣設計清晰,由簡到繁。由於數據庫系統是從整體角度看待和描述數據的,因此數據不再面向某個應用而是整個系統。因此必須進行視圖集成,使得數據庫能被全系統的多個用戶、多個應用共享使用。
一般說來,視圖集成可以有兩種方式:
· 多個分E-R圖一次集成;
· 逐步集成,用累加的方式一次集成兩個分E-R圖。
無論采用哪種方式,每次集成局部E-R圖時都需要分兩步走:
(1)合並。解決各分E-R圖之間的沖突,將各分E-R圖合並起來生成初步E-R圖。
(2)修改和重構。消除不必要的冗余,生成基本E-R圖。
12. 什么是數據庫的邏輯結構設計?試述其設計步驟。
答: 數據庫的邏輯結構設計就是把概念結構設計階段設計好的基本E-R圖轉換為與選用的DBMS產品所支持的數據模型相符合的邏輯結構。
設計步驟為:
(1)將概念結構轉換為一般的關系、網狀、層次模型;
(2)將轉換來的關系、網狀、層次模型向特定DBMS支持下的數據模型轉換;
(3)對數據模型進行優化。
13. 試述把E-R圖轉換為DBTG模型和關系模型的轉換規則。
答: E-R圖向DBTG模型的轉換規則:
1)每個實體型轉換為記錄型,實體的屬性轉換為記錄的數據項;
2)實體型之間1:n(n≥1)的聯系轉換為一個系,沒有任何聯系的實體型轉換為奇異系;
3)K(K≥2)個實體型之間多對多的聯系,引入一個連結記錄,形成K個實體型和連結記錄之間的K個系。連結記錄的屬性由諸首記錄的碼及聯系屬性所組成;
4)同一實體型內的1:n,n:m聯系,引入連結記錄,轉換為兩個系。
*解析
根據我國實際情況,網狀,層次數據庫系統已很少使用,因此《概論》第三版把它們刪去了,有關的主要概念放在第一章數據模型中介紹。對於DBTG模型的許多概念也介紹得很簡單。本題的內容已經超出了書上的內容,同學們只要了解就可以了。但是,下面E-R圖向關系模型的轉換規則要求同學必須掌握,並且能夠舉一反三。
答: E-R圖向關系模型的轉換規則:
一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性,實體的碼就是關系的碼。
對於實體間的聯系則有以下不同的情況:
(1)一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合並。如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,每個實體的碼均是該關系的候選碼。如果與某一端實體對應的關系模式合並,則需要在該關系模式的屬性中加入另一個關系模式的碼和聯系本身的屬性。
(2)一個1:n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合並。如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為n端實體的碼。
(3)一個m:n聯系轉換為一個關系模式。與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,各實體碼的組合組成該關系的碼,或碼的一部分。
(4)三個或三個以上實體間的一個多元聯系可以轉換為一個關系模式。與該多元聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合。
(5)具有相同碼的關系模式可合並。
*14. 你能給出由E-R圖轉換為IMS模型的轉換規則嗎?
答: E-R圖向IMS模型的轉換規則:
1)每個實體型轉換為記錄型,實體的屬性轉換為記錄的數據項;
2)實體型之間1:n(n≥1)的聯系轉換記錄型之間的有向邊;
3)實體型之間m:n(m>1,n>1)的聯系則分解成一對多聯系,再根據2)轉換;
4)K(K≥2)個實體型之間多對多的聯系,可先轉換成多對兩個實體型之間的聯系,再根據3)轉換。
*解析
IMS是IBM公司的層次數據庫管理系統。IMS模型是層次模型。E-R圖向IMS模型轉換的另一種方法是,先把E-R圖轉換為網狀模型,再利用IMS邏輯數據庫LDB的概念來表示網狀模型。詳細方法這里從略。