數(shù)據(jù)庫原理簡答題總結(jié)
數(shù)據(jù)庫原理簡答題總結(jié)
第一章 數(shù)據(jù)庫概論 1.人工管理階段數(shù)據(jù)管理的特點: (1) 數(shù)據(jù)不保存在機器中 (2) 無專用的軟件對數(shù)據(jù)進行管理 (3) 只有程序的概念,沒有文件的概念 (4) 數(shù)據(jù)面向程序 2.文件系統(tǒng)階段數(shù)據(jù)管理的特點: (1) 數(shù)據(jù)可長期保存在外存的磁盤上 (2) 數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)有了區(qū)別 (3) 文件組織已呈多樣化。有索引、鏈接和散列文件 (4) 數(shù)據(jù)不再屬于某個特定的程序,可重復使用。 3.文件系統(tǒng)顯露出三個缺陷: (1) 數(shù)據(jù)冗余性 (2) 數(shù)據(jù)不一致性 (3) 數(shù)據(jù)聯(lián)系弱 4.數(shù)據(jù)庫階段的管理方式具有以下特點: (1) 采用復雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu) (2) 有較高的數(shù)據(jù)獨立性 (3) 數(shù)據(jù)庫系統(tǒng)為用戶提供方便的用戶接口 (4) 系統(tǒng)提供四方面的數(shù)據(jù)控制功能 (5) 對數(shù)據(jù)的操作既可以以記錄為單位,又可以以數(shù)據(jù)項為單位 5.數(shù)據(jù)描述三個領(lǐng)域之間的關(guān)系: 從事物的特性到計算機中的數(shù)據(jù)表示,經(jīng)歷了三個領(lǐng)域:現(xiàn)實世界、信息世界、機器世界。 (1) 現(xiàn)實世界:存在于人們頭腦之外的客觀世界,稱為現(xiàn)實世界。 (2) 信息世界:是現(xiàn)實世界在人們頭腦中的反映。 (3) 機器世界:信息世界的信息在機器世界中以數(shù)據(jù)形式存儲。 信息世界中數(shù)據(jù)描述的術(shù)語有:實體、實體集、屬性、實體標識符 機器世界中數(shù)據(jù)描述的術(shù)語有:字段、記錄、文件、關(guān)鍵碼 它們的對應關(guān)系是: 在數(shù)據(jù)庫中每個概念都有類型和值之區(qū)分,類型是概念的內(nèi)涵,值是概念的外延 6.數(shù)據(jù)描述的兩種形式: 數(shù)據(jù)描述有物理描述和邏輯描述兩種形式。 物理數(shù)據(jù)描述指數(shù)據(jù)在存儲設(shè)備上的存儲方式,物理數(shù)據(jù)是實際存放在存儲設(shè)備上的數(shù)據(jù)。 邏輯數(shù)據(jù)描述指程序員或用戶用以操作的數(shù)據(jù)形式,是抽象的概念化數(shù)據(jù)。 數(shù)據(jù)管理軟件的功能之一,就是要把邏輯數(shù)據(jù)轉(zhuǎn)換成物理數(shù)據(jù),以及把物理數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)。 7.物理存儲介質(zhì)層次: 8.數(shù)據(jù)模型的種類: 目前廣泛使用的數(shù)據(jù)模型可分為兩種類型:概念數(shù)據(jù)模型、結(jié)構(gòu)數(shù)據(jù)模型 概念數(shù)據(jù)模型:是獨立于計算機系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關(guān)心的信息結(jié)構(gòu); 它是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計人員之間進行交流的工具; 這一類中著名的模型是“實體聯(lián)系模型”,簡稱“ER”模型。 結(jié)構(gòu)數(shù)據(jù)模型:是直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu); 它是現(xiàn)實世界的第二層抽象,涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng); 這一類中的例子有層次、網(wǎng)狀、關(guān)系、面向?qū)ο蟮饶P汀?9.結(jié)構(gòu)數(shù)據(jù)模型的三個組成部分: 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)完整性約束是結(jié)構(gòu)數(shù)據(jù)模型的三個組成部分。 數(shù)據(jù)結(jié)構(gòu):是指對實體類型和實體間聯(lián)系的表達和實現(xiàn) 數(shù)據(jù)操作:是指對數(shù)據(jù)庫的檢索和更新(插、刪、改)兩類操作的實現(xiàn) 數(shù)據(jù)完整性約束:給出數(shù)據(jù)及其聯(lián)系應具有的制約和依賴規(guī)則。 10.層次模型的特點: 用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為層次模型。 層次模型的特點是:記錄之間的聯(lián)系通過指針實現(xiàn),查詢效率較高。 缺點是:(1)只能表示1:N聯(lián)系 (2)由于樹型結(jié)構(gòu)層次順序的嚴格復雜,引起數(shù)據(jù)的查詢和更新操作也很復雜,因此編寫應用程序也很復雜。 11.網(wǎng)狀模型的特點: 用有向圖結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型。 網(wǎng)狀模型的特點是:記錄之間聯(lián)系通過指針實現(xiàn),M:N聯(lián)系也容易實現(xiàn),查詢效率較高。 缺點是:編寫應用程序比較復雜,程序員必須熟悉數(shù)據(jù)庫的邏輯結(jié)構(gòu)。 12.關(guān)系模型的特點: 關(guān)系模型的主要特征是用二維表格結(jié)構(gòu)表達實體集,用外鍵表示實體間聯(lián)系。 特點是:關(guān)系模型與層次、網(wǎng)狀的最大差別是用關(guān)鍵碼而不是用指針導航數(shù)據(jù),表格簡單,用戶易懂,編程時不涉及存儲結(jié)構(gòu)、訪問技術(shù)等細節(jié)。 13.數(shù)據(jù)庫體系結(jié)構(gòu)中的三級結(jié)構(gòu)、兩級映象: 數(shù)據(jù)庫的體系結(jié)構(gòu)分為三級:內(nèi)部級、概念級、外部級。 外部級:最接近用戶,是單個用戶所能看到的數(shù)據(jù)特性。單個用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。 概念級:涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局數(shù)據(jù)視圖的描述稱為“概念模式”。 內(nèi)部級:最接于物理存儲設(shè)備,涉及到實際數(shù)據(jù)存儲的結(jié)構(gòu)。物理存儲數(shù)據(jù)視圖的描述稱為“內(nèi)模式”。 為實現(xiàn)這三個抽象級別的聯(lián)系和轉(zhuǎn)換,DBMS在級級結(jié)構(gòu)之間提供兩個層次的映象:外模式/模式映象,模式/內(nèi)模式映象。 14.二級數(shù)據(jù)獨立性: 數(shù)據(jù)獨立性是指:應用程序和數(shù)據(jù)之間相互獨立,不受影響。分為物理獨立性和邏輯獨立性。 (1) 物理數(shù)據(jù)獨立性:如果數(shù)據(jù)庫的內(nèi)模式要進行修改,即數(shù)據(jù)庫的存儲設(shè)備和存儲方法有所變化,那么模式/內(nèi)模式映象也要進行相應的修改,使概念模式盡可能保持不變。也就是對內(nèi)模式的修改盡量不影響概念模式。 (2) 邏輯數(shù)據(jù)獨立性:如果數(shù)據(jù)庫的概念模式要進行修改,如增加記錄類型或增加數(shù)據(jù)項,那么外模式/模式映象也要進行相應的修改,使外模式盡可能保持不變。也就是概念模式的修改盡量不影響外模式和應用程序。 15.DBMS的主要功能: (1) 數(shù)據(jù)庫的定義功能:DBMS提供數(shù)據(jù)定義語言(DDL)定義數(shù)據(jù)庫的三級結(jié)構(gòu)及其相互之間的映象、完整性、安全控制等約束。 (2) 數(shù)據(jù)庫的操縱功能:DBMS提供數(shù)據(jù)操縱語言(DML)實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的操作。 (3) 數(shù)據(jù)庫的保護功能:DBMS對數(shù)據(jù)庫的保護主要通過數(shù)據(jù)庫的恢復、數(shù)據(jù)庫的并發(fā)控制、數(shù)據(jù)庫的完整性控制、數(shù)據(jù)庫的安全性控制等四個方面實現(xiàn)。 (4) 數(shù)據(jù)庫的存儲管理:DBMS的存儲管理子系統(tǒng)提供了數(shù)據(jù)庫中數(shù)據(jù)和應用程序的一個界面,其職責是把各種DML語句轉(zhuǎn)換成低層的文件系統(tǒng)命令,起到數(shù)據(jù)的存儲、檢索和更新的作用。 (5) 數(shù)據(jù)庫的維護功能:DBMS中實現(xiàn)數(shù)據(jù)庫維護功能的實用程序主要有數(shù)據(jù)裝載程序、備份程序、文件重組織程序、性能監(jiān)控程序。 (6) 數(shù)據(jù)字典(DD):數(shù)據(jù)庫系統(tǒng)中存放三級結(jié)構(gòu)定義的數(shù)據(jù)庫稱為數(shù)據(jù)字典,對數(shù)據(jù)庫的操作都要通過訪問DD才能實現(xiàn)。 16.DBMS的組成: DBMS是由兩大部分組成:查詢處理器和存儲管理器。 (1) 查詢處理器有四個主要成分:DDL編譯器、DML編譯器、嵌入型DML的預編譯器、查詢運行核心程序。 (2) 存儲管理器有四個主要成分:授權(quán)和完整性管理器、事務管理器、文件管理器、緩沖區(qū)管理器。 17.DBS的組成: DBS是一個實際可運行的,按照數(shù)據(jù)庫方法存儲、維護和向應用系統(tǒng)提供數(shù)據(jù)支持的系統(tǒng),它是數(shù)據(jù)庫、硬件、軟件、數(shù)據(jù)庫管理員(DBA)的集合體。 (1) 數(shù)據(jù)庫(DB):是與一個特定組織各項應用有關(guān)的全部數(shù)據(jù)的集合,由應用數(shù)據(jù)的集合(物理數(shù)據(jù)庫)、關(guān)于各級數(shù)據(jù)結(jié)構(gòu)的描述(描述數(shù)據(jù)庫)兩部分組成。 (2) 硬件:包括中央處理機、內(nèi)存、輸入輸出設(shè)備、數(shù)據(jù)通道等硬件設(shè)備。 (3) 軟件:包括DBMS、OS、各種宿主語言和應用開發(fā)支持軟件等程序。 (4) DBA:DBA是控制數(shù)據(jù)整體結(jié)構(gòu)的人,負責DBS的正常運行。 18.DBS的全局結(jié)構(gòu): (1) 數(shù)據(jù)庫用戶??煞譃樗念悾篋BA、專業(yè)用戶、應用程序員、終端用戶 (2) DBMS的查詢處理器。包括四部分:DML編譯器、嵌入型DML的預編譯器、DLL編譯器、查詢運行核心程序。 (3) DBMS的存儲管理器。包括四部分:授權(quán)和完整性管理器、事務管理器、文件管理器、緩沖區(qū)管理器。 (4) 磁盤存儲器中的數(shù)據(jù)結(jié)構(gòu)。包括四種形式:數(shù)據(jù)文件、數(shù)據(jù)字典、索引文件、統(tǒng)計數(shù)據(jù)組織。 第二章 關(guān)系模型 19. 超鍵、主鍵、候選鍵的定義: 超鍵(super key):在關(guān)系中能唯一標識元組的屬性集稱為關(guān)系模式的超鍵。 候選鍵(candidate key):不含有多余屬性的超鍵稱為候選鍵。(候選鍵可以有多個) 主鍵(primary key):用戶選作元組標識的一個候選鍵稱為主鍵。(主鍵是候選鍵中一個) 20. 關(guān)系模式、關(guān)系子模式和存儲模式: 關(guān)系模型基本上遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)。概念模式是關(guān)系模式的集合,外模式是關(guān)系子模式的集合,內(nèi)模式是存儲模式的集合。 (1) 關(guān)系模式:關(guān)系模式實際上是記錄類型。它的定義包括:模式名,屬性名,值域名以及模式的主鍵。 (2) 關(guān)系子模式:是用戶所用到的那部分數(shù)據(jù)的描述。除了指出用戶的數(shù)據(jù)外,還應指出模式與子模式之間的對應性。 (3) 存儲模式:關(guān)系存儲時的基本組織方式是文件,元組是文件中的記錄。存儲一個關(guān)系可以用散列方法或索引方法實現(xiàn)。如果關(guān)系中元組數(shù)目較少,也可以用堆文件方式實現(xiàn)。 21. 關(guān)系模型的三類完整性規(guī)則: (1) 實體完整性規(guī)則:這條規(guī)則要求關(guān)系中元組在組成主鍵的屬性上不能有空值。 (2) 參照完整性規(guī)則:這條規(guī)則要求“不引用不存在的實體”。 (3) 用戶定義的完整性規(guī)則:它反映某一具體應用涉及的數(shù)據(jù)必須滿足的語義要求。 22. 參照完整性規(guī)則的形式定義: 如果屬性集K是關(guān)系模式R1的主鍵,K也是關(guān)系模式R2的外鍵,那么在R2的關(guān)系中,K的取值只允許兩種可能,或者為空,或者等于R1關(guān)系中某個主鍵值。 此規(guī)則使用時還要注意三點: (1) 外鍵和相應的主鍵可以不同名,只要定義在相同值域上即可。 (2) R1和R2也可以是同一個關(guān)系模式,表示了屬性之間的聯(lián)系。 (3) 外鍵值是否允許空,應視具體問題而定。 上述形式定義中,關(guān)系模式R1稱為“參照關(guān)系”模式,R2稱為“依賴關(guān)系”模式。 23. 關(guān)系模型的形式定義: 24. 關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分為哪兩類: 關(guān)系代數(shù)語言:查詢操作是以集合操作為基礎(chǔ)運算的DML語言。(非過程性弱) 關(guān)系演算語言:查詢操作是以謂詞演算為基礎(chǔ)運算的DML語言。(非過程性強) 25. 關(guān)系代數(shù)中的操作有哪些? 關(guān)系代數(shù)中的操作可分為兩類: 傳統(tǒng)的集合操作:并、差、交、笛卡爾積 擴充的集合操作:對關(guān)系進行垂直分割(投影)、水平分割(選擇),關(guān)系的結(jié)合(聯(lián)接、自然聯(lián)接),笛卡爾積的逆運算(除法)等。 其中五個基本操作為:并、差、笛卡爾積、投影、選擇。 四個常用組合操作為:交、連接、自然連接、除法 兩種擴充的關(guān)系代數(shù)操作為:外連接和外部并 26. 關(guān)系演算有哪兩種: 關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算。前者以元組為變量,后者以屬性(域)為變量。 27. 什么是約束變量、自由變量: 28. 什么是安全運算: 在數(shù)據(jù)庫技術(shù)中,不產(chǎn)生無限關(guān)系和無窮驗證的運算稱為安全運算,相應的表達式稱為安全表達式,所采取的措施稱為安全約束。 在關(guān)系演算中約定,運算只對表達式中公式在涉及到的關(guān)系的值范圍內(nèi)操作。這樣就不會產(chǎn)生無限關(guān)系和無窮驗證問題,關(guān)系演算是安全的。 29. 為什么要對關(guān)系代數(shù)表達式進行優(yōu)化: 查詢優(yōu)化是由DBMS對關(guān)系代數(shù)表達式進行優(yōu)化組合,以提高DBMS的系統(tǒng)效率。要對關(guān)系代數(shù)進行優(yōu)化的原因是:由于關(guān)系代數(shù)表達式是由關(guān)系代數(shù)操作組合而成。在關(guān)系代數(shù)操作中,執(zhí)行笛卡爾積和聯(lián)接運算最費時間,并且在執(zhí)行過程中將產(chǎn)生大量的中間結(jié)果,以使系統(tǒng)執(zhí)行效率較低。在執(zhí)行前,由DBMS查詢處理子系統(tǒng)先對關(guān)系代數(shù)表達式進行優(yōu)化,盡可能早地執(zhí)行選擇和投影操作,以得到較小的中間關(guān)系,減少運算量和讀外存塊的次數(shù),節(jié)省系統(tǒng)的執(zhí)行時間,提高執(zhí)行效率。 30. 簡述查詢優(yōu)化的優(yōu)化策略: (1) 在關(guān)系代數(shù)表達式中盡可能早地執(zhí)行選擇操作。 (2) 把笛卡爾積和隨后的選擇操作合并成F聯(lián)接運算。 (3) 同時計算一連串的選擇和投影操作,以免分開運算造成多次掃描文件,從而能節(jié)省操作時間。 (4) 如果在一個表達式中多次出現(xiàn)某個子表達式,應該將該子表達式預先計算出結(jié)果保存起來。以免重復計算。 (5) 適當?shù)膶﹃P(guān)系文件進行預處理。 (6) 在計算表達式之前應先估計一下怎么計算合算。 31. 笛卡爾積、等值連接、自然連接三者之間有什么區(qū)別: 等值連接中有笛卡爾積運算; 自然連接是一種等值連接,它是兩個關(guān)系中所有公共屬性進行等值連接的結(jié)果。 第三章 關(guān)系數(shù)據(jù)庫SQL語言 32. SQL數(shù)據(jù)庫的體系結(jié)構(gòu)及術(shù)語: SQL數(shù)據(jù)庫的體系結(jié)構(gòu)也是三級,但術(shù)語與傳統(tǒng)的關(guān)系模型不同。 關(guān)系模式稱為“基本表”,存儲模式稱為“存儲文件”,子模式稱為“視圖”,元組稱為“行”,屬性稱為“列”。 33. SQL數(shù)據(jù)庫的體系結(jié)構(gòu)要點是什么: (1) 一個SQL數(shù)據(jù)庫是表(table)的匯集,它用一個或多個SQL模式定義。一個SQL模式是表和授權(quán)的表態(tài)定義。 (2) 一個SQL表由行集構(gòu)成,一行是列的序列,每列對應一個數(shù)據(jù)項。 (3) 一個表或者是一個基本表,或者是一個視圖。(視圖只保存定義,不保存數(shù)據(jù)) (4) 一個基本表可跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲器上一個物理文件對應。 (5) 用戶可用SQL語句對視圖和基本表進行查詢等操作。 (6) SQL用戶可以是應用程序,也可以是終端用戶。 34. SQL的組成分成幾部分: SQL主要分成四部分: (1) 數(shù)據(jù)定義。(SQL DDL)用于定義SQL模式、基本表、視圖和索引的創(chuàng)建和撤消操作。 (2) 數(shù)據(jù)操縱。(SQL DML)數(shù)據(jù)操縱分成數(shù)據(jù)查詢和數(shù)據(jù)更新兩類。數(shù)據(jù)更新又分成插入、刪除、和修改三種操作。 (3) 數(shù)據(jù)控制。包括對基本表和視圖的授權(quán),完整性規(guī)則的描述,事務控制等內(nèi)容。 (4) 嵌入式SQL的使用規(guī)定。涉及到SQL語句嵌入在宿主語言程序中使用的規(guī)則。 35. SQL模式的撤消有哪兩種方式: CASCADE(連鎖式)方式:執(zhí)行DROP語句時,把SQL模式及其下屬的基本表、視圖、索引等所有元素全部撤消。 RESTRICT(約束式)方式:執(zhí)行DROP語句時,只有當SQL模式中沒有任何下屬元素時,才能撤消SQL模式,否則拒絕執(zhí)行DROP語句。 36. SQL提供的基本數(shù)據(jù)類型有哪些?每種舉兩個例子: (1) 數(shù)值型:INTEGER長整數(shù)、SMALLINT短整數(shù) (2) 字符串型:CHAR(N)長度為N的定長字符串、VARCHAR(N)具有最大長度為N的變長字符串。 (3) 位串型:BIT(N)長度為N的二進制位串、BIT VARYING(N)最大長度為N的變長二進制位串 (4) 時間型:DATE日期、TIME時間 SQL2允許用戶使用“CREATE DOMAIN”語句定義新的域。 37. 完整性約束主要有哪三種子句: 完整性約束主要有三種子句:主鍵子句(PRIMARY KEY),檢查子句(CHECK)和外鍵子句(FOREIGN KEY) 38. 什么是視圖,它與表的區(qū)別是什么: 在SQL中,外模式一級數(shù)據(jù)結(jié)構(gòu)的基本單位是視圖,視圖是從若干基本表和(或)其他視圖構(gòu)造出來的表。我們創(chuàng)建一個視圖時,只是把其視圖的定義存放在數(shù)據(jù)字典中,而不存儲視圖對應的數(shù)據(jù),因此,視圖被稱為“虛表”,這是它與表的主要區(qū)別。 39. 對于視圖元組的更新操作(INSERT、DELETE、UPDATE)有哪三條規(guī)則: (1) 如果一個視圖是從多個基本表使用聯(lián)接操作導出的,那么不允許對這個視圖執(zhí)行更新操作。 (2) 如果在導出視圖的過程中,使用了分組和聚合操作,也不允許對這個視圖執(zhí)行更新操作。 (3) 如果視圖是從單個基本表使用選擇、投影操作導出的,并且包含了基本表的主鍵或某個候選鍵,那么這樣的視圖稱為“行列子集視圖”,并且可以被執(zhí)行更新操作。 SQL2中,允許更新的視圖在定義時,必須加上“WITH CHECK OPTION”短語。 40. SQL語言有哪兩種使用方式: 一種是在終端交互方式下使用,稱為交互式SQL; 另一種是嵌入在高級語言的程序中使用,稱為嵌入式SQL,而這些高級語言可以是C、PASCAL、COBOL等,稱為宿主語言。 41. 嵌入式SQL的實現(xiàn)有哪兩種處理方式: 一種是擴充宿主語言的編譯程序,使之能處理SQL語句; 另一種是采用預處理方式。目前多數(shù)系統(tǒng)采用后一種。 42. 在宿主語言的程序中使用SQL語句有哪些規(guī)定: (1) 在程序中要區(qū)分SQL語言與宿主語句。所有SQL語句前必須加上前綴標識“EXEC SQL”,并以“END_EXEC”作為語句的結(jié)束標志。(結(jié)束標志在不同的宿主語言中不同) (2) 允許嵌入的SQL語句引用宿主語言的程序變量(共享變量),但有兩條規(guī)定: 1) 引用時,這些變量前必須加冒號“:”作為前綴,以示與數(shù)據(jù)庫中變量有區(qū)別。 2) 這些變量由宿主語言的程序定義,并用SQL的DECLARE語句說明。 43. 用游標機制協(xié)調(diào)SQL的集合處理方式所用的SQL語句有哪些: 與游標有關(guān)的SQL語句有下列四個: (1) 游標定義語句(DECLARE) (2) 游標打開語句(OPEN) (3) 游標推進語句(FETCH) (4) 游標關(guān)閉語句(CLOSE) 44. SQL DML的嵌入使用技術(shù): (1) 若是INSERT、DELETE、UPDATE語句,則不必涉及游標,只要加上前綴標識和結(jié)束標志就能嵌入宿主語言程序中使用。 (2) 若是已知查詢結(jié)果肯定是單元組的SELECT語句,則不必涉及游標,也可加上前綴標識和結(jié)束標志后嵌入宿主語言程序中使用,但此時應該在SELECT語句中增加一個INTO子句,指出找到的值應送到相應的共享變量中去。 (3) 若是已知查詢結(jié)果為多個元組的SELECT語句,則必須涉及到游標,用游標機制把多個元組一次一個地傳送給宿主程序處理。 第四章 關(guān)系數(shù)據(jù)庫的模式設(shè)計 45. 什么是關(guān)系數(shù)據(jù)庫: 關(guān)系數(shù)據(jù)庫是以關(guān)系模型為基礎(chǔ)的數(shù)據(jù)庫,它利用關(guān)系來描述現(xiàn)實世界。一個關(guān)系既可以用來描述一個實體及其屬性,也可以用來描述實體間的聯(lián)系。關(guān)系實質(zhì)上是一張二維表。 46. 一個關(guān)系模型有哪兩個方面內(nèi)容: 一個關(guān)系模型包括外延和內(nèi)涵兩個方面的內(nèi)容。 外延就是通常所說的關(guān)系,或?qū)嵗虍斍爸?。它與時間有關(guān),隨著時間的推移在不斷變化。(由于元組的插入、刪除、修改引起的) 內(nèi)涵是與時間獨立的,包括關(guān)系、屬性、及域的一些定義和說明,還有各種數(shù)據(jù)完整性約束。 47. 數(shù)據(jù)完整性約束分為哪兩類: 數(shù)據(jù)完整性約束分為靜態(tài)約束和動態(tài)約束。 靜態(tài)約束:包括各種數(shù)據(jù)之間的聯(lián)系(數(shù)據(jù)依賴),主鍵的設(shè)計和關(guān)系值的各種限制等等。這一類約束是如何定義關(guān)系的有效數(shù)據(jù)問題。 動態(tài)約束:主要定義如插入、刪除、和修改等各種操作的影響。 48. 關(guān)系數(shù)據(jù)庫設(shè)計理論主要包括哪些內(nèi)容: 關(guān)系數(shù)據(jù)庫設(shè)計理論主要包括三個方面的內(nèi)容:數(shù)據(jù)依賴、范式、模式設(shè)計方法。其中數(shù)據(jù)依賴起著核心的作用。 49. 數(shù)據(jù)庫使用過程中存在的問題是什么: 數(shù)據(jù)冗余、更新異常、插入異常、刪除異常。 50. 函數(shù)依賴(FD)的定義: 設(shè)有關(guān)系模式R(A1,A2,……,An)(即R(U)),X,Y是U的子集,r是R的任一具體關(guān)系,如果對r的任意兩個元組t1,t2,由t1[X]=t2[X]導致t1[Y]=t2[Y],則稱X函數(shù)決定Y,或Y函數(shù)依賴于X,記為X→Y,X→Y為模式R的一個函數(shù)依賴。 或者說,對于X的每一個具體值,都有Y惟一的具體值與之對應,即Y值由X值決定,因而 這種數(shù)據(jù)依賴稱為函數(shù)依賴。 51. 函數(shù)依賴的邏輯蘊涵、FD的閉包F+: 52. 候選鍵、主屬性、非主屬性: 設(shè)有關(guān)系模式R(A1,A2,……,An),F(xiàn)是R的一個函數(shù)依賴集,X是{A1,A2,……,An}的一個子集。如果 ① X→A1A2……An∈F+,且 ② 不存在X真子集Y,使得Y→A1A2……An成立,則稱X是R的候選鍵。 包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何一個候選鍵中的屬性稱為非主屬性。 53. 函數(shù)依賴的推理規(guī)則: 設(shè)有關(guān)系模式R(A1,A2,……,An)和屬性集U= A1,A2,……,An,X,Y,Z,W是U的一個子集,F(xiàn)是R的一個函數(shù)依賴集,推理規(guī)則如下: 54. 什么是平凡的FD?平凡的FD可根據(jù)哪一條推理規(guī)則推出? 55. 關(guān)系模式的分解有幾個不同的衡量標準: 分解具有無損聯(lián)接; 分解要保持函數(shù)依賴; 分解既要保持依賴,又要具有無損聯(lián)接。 56. 什么是無損連接: 57. 試敘保持函數(shù)依賴的定義: 58. 第一范式(1NF): 如果關(guān)系模式R的所有屬性的值域中每一個值都是不可再分解的值,則稱R是屬于第一范式模式。 59. 第二范式(2NF): 如果關(guān)系模式R為第一范式,并且R中每一個非主屬性完全函數(shù)依賴于R的候選鍵,則稱R是第二范式模式。 60. 第三范式(3NF): 如果關(guān)系模式R是第一范式,且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R是第三范式的模式。 61. BCNF: 如果關(guān)系模式R是第一范式,且每個屬性都不傳遞依賴于R的候選鍵,那么稱R是BCNF的模式。從BCNF的定義可明顯地得出如下結(jié)論: (1) 所有非主屬性對鍵是完全函數(shù)依賴。 (2) 所有主屬性對不包含它的鍵是完全函數(shù)依賴。 (3) 沒有屬性完全函數(shù)依賴于非鍵的任何屬性組。 如果模式R是BCNF,則它必定是第三范式,反之,則不一定。 62. 模式設(shè)計方法的原則: 關(guān)系模式R相對于函數(shù)依賴集F分解成數(shù)據(jù)庫模式ρ={R1,R2,……Rk},一般應具有下面三個特性: (1) ρ中每個關(guān)系模式Ri是3NF或BCNF (2) 保持無損聯(lián)結(jié) (3) 保持函數(shù)依賴集 (4) ρ中模式個數(shù)最少和屬性總數(shù)最少。 63. 一個好的模式設(shè)計方法應符合哪三條原則: 表達性,分離性,最小冗余性。 表達性涉及到兩個數(shù)據(jù)庫模式的等價性問題,即數(shù)據(jù)等價和依賴等價,分別用無損聯(lián)接和保持函數(shù)依賴性來衡量。 分離性是指屬性間的“獨立聯(lián)系”應該用不同的關(guān)系模式表達。 最小冗余性要求在分解后的數(shù)據(jù)庫能表達原來數(shù)據(jù)庫的所有信息這個前提下實現(xiàn)。 關(guān)系模式設(shè)計方法基本上可以分為分解與合成兩大類。 64. 多值依賴MVD: 設(shè)R(U)是屬性集U上的一個關(guān)系模式,X,Y是U的子集,若對R(U)的任一關(guān)系r,對于X的一個給定的值存在著Y的一組值與其對應,同時Y的這組值又不以任何方式與U-X-Y中的屬性相關(guān),那么稱Y多值依賴于X,記為X→→Y。 65. 平凡多值依賴: 66. 第四范式(4NF): 設(shè)關(guān)系模式R,D是一個多值依賴集,如果D中存在一個非平凡多值依賴X→→Y,并且X必是R的超鍵,那么稱R是4NF模式。 第五章 數(shù)據(jù)庫設(shè)計 67. 什么是軟件生存期: 軟件生存期是軟件工程的一個重要概念。是指從軟件的規(guī)劃、研制、實現(xiàn)、投入運行后的維護,直到它被新的軟件所取代而停止使用的整個期間。通常分為六個階段: (1) 規(guī)劃階段 (2) 需求分析階段 (3) 設(shè)計階段 (4) 程序編制階段 (5) 調(diào)試階段 (6) 運行維護階段 68. 數(shù)據(jù)庫系統(tǒng)的生存期: 一般分為七個階段,即: (1) 規(guī)劃階段 (2) 需求分析階段 1)信息要求 2)處理要求 3)安全性和完整性要求 (3) 概念設(shè)計階段 (4) 邏輯設(shè)計階段 兩部分:數(shù)據(jù)庫邏輯設(shè)計和應用程序設(shè)計 (5) 物理設(shè)計階段 兩部分:物理數(shù)據(jù)庫結(jié)構(gòu)的選擇和邏輯設(shè)計中程序模塊說明的精確化 (6) 實現(xiàn)階段 (7) 運行維護階段 69. 數(shù)據(jù)庫設(shè)計過程的輸入有哪些內(nèi)容: (1) 總體信息需求 (2) 處理需求 (3) DBMS的特征 (4) 硬件和OS特征 70. 數(shù)據(jù)庫設(shè)計過程的輸出有哪兩部分: 一部分是完整的數(shù)據(jù)庫結(jié)構(gòu),其中包括邏輯結(jié)構(gòu)與物理結(jié)構(gòu)。 另一部分是基于數(shù)據(jù)庫結(jié)構(gòu)和處理要求的應用程序的設(shè)計原則。 71. 常見的數(shù)據(jù)庫設(shè)計方法有哪幾種: (1) 視圖模式化及視圖匯總設(shè)計方法 (2) 關(guān)系模式的設(shè)計方法 (3) 新奧爾良設(shè)計方法 (4) 基于E-R模型的數(shù)據(jù)庫設(shè)計方法 (5) 基于3NF的設(shè)計方法 (6) 基于抽象語法規(guī)范的設(shè)計方法 (7) 計算機輔助數(shù)據(jù)庫設(shè)計方法 72. 實用的數(shù)據(jù)庫設(shè)計方法至少應包括哪些內(nèi)容: (1) 設(shè)計過程 (2) 設(shè)計技術(shù) (3) 評價準則 (4) 信息需求 (5) 描述機制 73. 一種設(shè)計方法學需要有三種基本類型的描述機制: (1) 實現(xiàn)設(shè)計過程的最終結(jié)果將用DBMS的DDL表示。 (2) 信息輸入的描述。 (3) 在信息輸入和DDL描述之間的其它中間步驟的結(jié)果的描述。 74. 數(shù)據(jù)庫設(shè)計中的規(guī)劃階段的主要任務: 是進行建立數(shù)據(jù)庫的必要性及可行性分析,確定數(shù)據(jù)庫系統(tǒng)在組織中和信息系統(tǒng)中的地位,以及各個數(shù)據(jù)庫之間的聯(lián)系。 75. 需求分析階段的任務: 需求分析階段應該對系統(tǒng)的整個應用情況作全面的、詳細的調(diào)查,確定企業(yè)組織的目標,收集支持系統(tǒng)總的設(shè)計目標的基礎(chǔ)數(shù)據(jù)和對這些數(shù)據(jù)的要求,確定用戶的需求,并把這些要求寫成用戶和數(shù)據(jù)庫設(shè)計者都能接受的文檔。 76. 需求分析的步驟: 大致可分為三步來完成,即需求信息的收集、分析整理和評審。 77. 數(shù)據(jù)字典由哪幾部分組成: (1) 數(shù)據(jù)項 (2) 數(shù)據(jù)結(jié)構(gòu) (3) 數(shù)據(jù)流 (4) 數(shù)據(jù)存儲 (5) 加工過程 78. 數(shù)據(jù)抽象: 抽象是對實際的人、物、事或概念的人為處理,它抽取人們關(guān)心的共同特性,忽略非本質(zhì)的細節(jié),并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。 抽象有兩種形式,系統(tǒng)狀態(tài)抽象(抽象對象)和系統(tǒng)轉(zhuǎn)換抽象(抽象運算)。 79. 對象的兩種形式: (1) 聚集:的數(shù)學意義就是笛卡爾積的概念。通過聚集,形成對象之間的一個聯(lián)系對象。 (2) 概括:是從一類其它對象形成一個對象。對于一類對象{O1,O2,……,On}可以概括成對象O,那么Oi稱為O的其中一個。 80. 依賴聯(lián)系: 在現(xiàn)實世界中,常常有某些實體對于另一些實體具有很強的依賴關(guān)系,即一個實體的存在必須以另一個實體的存在為前提。我們通常把前者稱為弱實體。在ER圖中,用雙線框表示弱實體,用指向弱實體的箭頭表明依賴聯(lián)系。 81. 子類、超類: 某個實體類型中所有實體同時也是另一實體類型中的實體。此時,我們稱前一實體類型是后一實體類型的子類,后一實體類型稱為超類。在ER圖中,帶有子類的實體類型(超類)以兩端雙線的矩形框表示,并用加圈的弧線與其子類相連,子類本身仍用普通矩形框表示。 子類具有一個很重要的性質(zhì):繼承性。它可繼承超類上定義的全部屬性,其本身還可包含其它另外的屬性。 82. ER模型的操作: (1) 實體類型的分裂:垂直分割、水平分割 (2) 實體類型合并:分裂的逆過程。 (3) 聯(lián)系類型的分裂 (4) 聯(lián)系類型的合并 83. 采用ER方法的數(shù)據(jù)庫概念設(shè)計分成哪三步: (1) 設(shè)計局部ER模式:1)確定局部結(jié)構(gòu)范圍 2)實體定義 3)聯(lián)系定義 4)屬性分配 (2) 設(shè)計全局ER模式:1)確定公共實體類型 2)局部ER模式的合并 3)消除沖突。 (3) 全局ER模式的優(yōu)化:1)實體類型的合并 2)冗余屬性的消除 3)冗余聯(lián)系的消除 84. 沖突分為哪三種: 屬性沖突,包括屬性域的沖突、屬性取值單位沖突。 結(jié)構(gòu)沖突,包括: (1) 同一對象在不同應用中的不同抽象。 (2) 同一實體在不同局部ER圖中屬性組成不同。 (3) 實體之間的聯(lián)系在不同的局部ER圖中呈現(xiàn)不同的類型。 命名沖突,包括屬性名,實體名,聯(lián)系名之間的沖突:同名異義、異名同義 85. ER模型向關(guān)系模型的轉(zhuǎn)換: ER模型中的主要成分是實體類型和聯(lián)系類型。 對實體類型,將每個實體類型轉(zhuǎn)換成一個關(guān)系模式,實體的屬性即為關(guān)系模式的屬性,實體標識符即為關(guān)系模式的鍵。 對聯(lián)系類型,就視1:1、1:N、M:N三種不同的情況做不同處理。 (1) 對1:1可在兩個實體類型轉(zhuǎn)換成的兩個關(guān)系模式中任意一個關(guān)系模式的屬性中加入另一個關(guān)系模式的鍵和聯(lián)系類型的屬性。 (2) 對1:N,則在N端實體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實體類型轉(zhuǎn)換成的關(guān)系模式的鍵和聯(lián)系類型的屬性。 (3) 對M:N,則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實體類型的鍵盤加上聯(lián)系類型的屬性,而鍵為兩端實體鍵的組合。 86. 什么是物理設(shè)計: 對一個給定的邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu)的過程,稱為數(shù)據(jù)庫的物理設(shè)計。物理結(jié)構(gòu),主要指數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)和存取方法。 87. 物理設(shè)計的步驟: 物理設(shè)計可分五步完成,前三步涉及到物理數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計,后兩步涉及約束和具體的程序設(shè)計。 (1) 存儲記錄結(jié)構(gòu)設(shè)計 (2) 確定數(shù)據(jù)存儲安排 (3) 訪問方法的設(shè)計 (4) 完整性和安全性 (5) 程序設(shè)計 88. 在數(shù)據(jù)庫系統(tǒng)生存期中,生存期的總開銷可分為幾項: 規(guī)劃開銷、設(shè)計開銷、實現(xiàn)與測試開銷、操作開銷、維護開銷。 89. 用戶使用和計算機資源的操作開銷是: (1) 查詢響應時間 (2) 更新事務的開銷 (3) 報告生成的開銷 (4) 改組頻率和開銷 (5) 主存儲空間 (6) 輔助存儲空間 90. 數(shù)據(jù)庫實現(xiàn)階段的主要工作: (1) 建立實際數(shù)據(jù)庫結(jié)構(gòu) (2) 試運行 (3) 裝入數(shù)據(jù) 91. 數(shù)據(jù)庫的重新組織設(shè)計: 對數(shù)據(jù)庫的概念模式、邏輯結(jié)構(gòu)或物理結(jié)構(gòu)的改變稱為重新組織,其中改變概念模式或邏輯結(jié)構(gòu)又稱為重新構(gòu)造,改變物理結(jié)構(gòu)則稱為重新格式化。 92. 運行維護階段的主要工作: (1) 維護數(shù)據(jù)庫的安全性和完整性控制及系統(tǒng)的轉(zhuǎn)儲和恢復。 (2) 性能的監(jiān)督、分析與改進。 (3) 增加新功能。 (4) 發(fā)現(xiàn)錯誤,修改錯誤。