2013年4月24日 星期三

資料庫期中考問答題重點整理

問答題重點整理

第零章問答題

1.試比較「物件」(Object)與「記錄」(Record)兩者的差別。
  答 :物件本身可以是由其他物件組成,物件與物件之間可以有各種縱向繼承與橫向繼承的關係,同實物件本身有其專屬運算;而紀錄則無此種特性or概念。
2.請分析一下為什麼「多層式主-從架構」要比「兩層式主-從架構」更受歡迎?
   答:
  • 所有Client只要裝上瀏覽器便可以使用各種應用程式,而兩層式主從架構必須安裝特定的應用程式才可以執行。
  • 由於所有資料均由Application Server集中掌控,所以管理上也比較不會產生兩層式主從架構所引發的缺點。
  • 各個Client端可以自由選用瀏覽器,在Database方面,則可由Server端自行透過如ODBC、JDBC or OLEDB等共通介面,存取不同類的資料庫。
  • 以往在兩層式架構上的應用程式一旦改版,則所有客戶端均需重新安裝,但採用多層式架構後,我們只須修改Server端存放的網頁,所有Client端便可使用到最新版本。
3.試比較「同質性分散式處理」與「異質性分散式處理」兩者的差別。
  答:前者是指企業、組織內部資料的分散式處理,所以同一組織的運作條件、型態的同質性很高,而對於整個企業的異動與查詢運算,則透過網路與其它資料站充分合作後將結果求出,其架構設計是有上至下(Top-Down)來建置的,所以在設計內容上需要全盤考量後所產生,因此各資料站分工合作時,便可捨棄某些自主性。
     後者則是指跨企業、組織不同資料庫的整合處理,已達到整體資原共享的目標,其架構是由下至上(Buttom-UP)整合現有資料庫系統,以不影響(或最小)原獨立資料庫系統為原則。

第一章問答題

1.何謂「資料」(Data)?何謂「資訊」(Information)?何謂「知識」(Knowledge)?試比較說明三者之間的關係。
  答:
   Data指用以表示某項事實的語言or符號。=>未經過處理的原始資料。
   Information將資料經過組織及處理便成為資訊。
   Knowledge應用各種資訊產生進一步推論or歸納出某些無法一眼看出的事實,便成為知識。
    資料=>資訊=>知識
 2.請問資料在結構上有哪些類型?
   答:
         (1)結構化:可以用表格方式顯示。
         (2)半結構化:無法用表格方式顯示,半還是具有一些結構,如xml。
         (3)無結構化:通常式多媒體檔案。
3.何謂「資料庫系統」?包含哪些部分?建構資料庫系統的目的為何?
   答:資料庫系統泛指以資料庫管理系統所開發出來的運作環境,包含「使用者」、「資料」、「軟體」、「硬體」等層面得探討,目的是希望透過電腦化的方式將資料集中控制及管理,同時也要讓應用程式的開發不會受到資料的真實存放所牽絆,也就是希望能達成「資料獨立」的目標。
4.何謂「邏輯資料庫設計」?何謂「實體資料庫設計」?
   答:概念層以上的綱要設計一般稱為「邏輯資料庫設計」,而內部層的綱要與儲存結構之訂定則稱為「實體資料庫設計」。
5.試描述「資料庫管理系統」的基本功能為何?並說明它在「資料庫系統」中所扮演的角色為何?
   答:
         (1)DBMS基本功能
    • 能有組織地將資料儲存起來。
    • 能有效的管理資料庫綱要。
    • 提供一套高階的查詢語言,讓使用者or應用程式使用,DDL、DML、DCL。
    • 提供有效的異動管理機制。
    • 提供資料的安全控制。
    • 提供備份、確保資料的正確性工具。
    • 提供使用者資料獨立性。 
          (2)在資料庫系統中扮演著軟體的角色。
6.「資料庫管理師」(DBA)在資料庫系統種的定位為何?負有什麼職責?
   答:(1)扮演資料庫管理系統與使用者之間的中介角色。
          (2)負責工作有決定資料儲存結構、做好資料安全控制及整合性檢查、監督與調整系統效能、舊資料的轉換與備份回復等工作。
10.何謂「資料獨立」(Data Independence)?在「關聯式資料庫系統」中如何達成資料獨立?
     答:
           (1)資料獨立:即使資料內部的儲存結構or存取方式改變了,應用程式依然不受影響。
           (2)透過各層之間的映對(Mapping),使內部層儲存結構改變,只需更改概念層/內部層之間的Mapping,如果概念層綱要改變,只需更改外部層/概念層之間的Mapping,就可以達成資料獨立。
12.資料庫管理系統儲存異動記錄(Transaction Log)的用意有哪些?
     答:維持Transaction的四個特性,並可做稽核追蹤。
13.何謂「異動」(Transactions)?具有哪些特性?「資料庫管理系統」需仰賴什麼來維持這些特性?
     答:
           (1)異動指使用者對於資料庫的一個完整動作。
           (2)ACID特性:
    • Atomicity(單元性):一個異動要做就全部做完,要不就都不做。
    • Consistency(一致性):多個異動能夠同時執行,並做好並行控制。
    • Isolation(隔離性):委任前執行中的異動,不可讓其它異動存取。
    • Durability(持續性):如果系統發生當機,回復後,可依據異動記錄完成原先未做的後續動作。
           (3)資料庫管理系統需要仰賴異動記錄來維持這些特性。

 第二章問答題

1.一個「資料模式」必須要定義哪三個部分?請依這三個部分簡概地說明「關聯式資料模式」。
   答:
          (1)資料結構:在關聯式中為表格式的資料結構,稱為「關聯表」,該結構是由具有相同記錄型態的資料(Record)所構成的集合。
          (2)整合限制:關聯表至少需要兩個最基本的整合限制條件:「個體整合限制」與「參考整合限制」,前者是關聯表內部的限制條件,後者是關聯表與關聯表之間的限制條件。
          (3)資料運算:關聯式資料模式中只有關聯表這種結構,所以每一個關聯式資料運算都必須使得關聯表具有「封閉性」,目前運算模式有「關聯式代數」與「關聯式計算」兩種。
2.請說明「階層式資料模式」及「網路式資料模式」兩者之間的差別。
   答:階層式資料結構是樹狀,而網路式是網狀結構;階層式整合限制條件式是任何的子記錄資料都必須要有父記錄資料,而網路式則是除非存在一個父記錄資料,否則其子記錄資料不得加入資料庫中;運算模式前者式樹狀結構的運算,後者是圖形結構上的運算。

第三章問答題

1.預儲程序(Stored Procedures)與觸發程序(Triggers)有何差別?請比較之。
   答:前者必須透過呼叫來觸發(被動式),後者是使用者在做新增、刪除、修改時,自動觸發程序(主動式)。
2.定性查詢最佳化處理與定量查詢最佳化處理有何差別?試比較之。
   答:前者查詢最佳化是與使用者所下達的查詢類型有很大的關係,他強調的重點是:可否用更簡化或更快速的運算式來取得結果;後者與關聯式目前的大小有很大的關係,會將某些內含大量的關聯表先行過濾,以留下可能的值組,再來與其它關聯表做運算。
3.建立索引有什麼優、缺點?
   答:當資料量很大的時候,通常利用索引會較快,但如果所有資料都取出時(例:90%資料),則由於索引需要多存取一次磁碟,會造成兩倍的存取時間,且除了資料的新增、刪除、修改之外,索引也必須跟著新增、刪除、修改,反而降低效能。
4.「叢聚索引」(Clustering Index)的作用為何?
   答:將關聯表中的資料依索引(通常是主鍵為主)的大小順序,排放在磁碟中,減少磁碟機所花的搜尋時間。
5.系統目錄中含有什麼資料,它在系統做查詢最佳化的時候扮演什麼角色?
   答:系統目錄存放資料庫綱要的地方,包含關聯表名稱、欄位、日期、資料型態、數量大小等,查詢最佳化模組會參考系統目錄中各個關聯表的大小與是否建立索引的狀況後,選擇一個最快速的存取計畫並交由異動管理模組來排程執行。

第四章問答題

1.關聯表(Relations)具有哪四個特性?分別說明之。
    答:
          (1)不含重覆性值組。
          (2)值組之間沒有順序的。
          (3)屬性之間沒有順序。
          (4)所有屬性都必須是單元值,不可以是一個集合。
2.何謂「虛值」(Null Values),有哪幾種區別?請分別說明其意義?
   答:
          (1)虛值是因為關聯表中的屬性值,我們可能會因一時缺乏明確的資訊,而以一個不確定的值來代替,此稱為「虛值」,虛值不是0也不是空白,而是一個特殊標記,用以記錄目前資料值未知的情況,可分為「可應用的虛值」、「不可應用虛值」及「完全不知的虛值」。
         (2)詳述
    • 可應用的虛值:其意義為這個值目前存在,但我們不知其值為何,所以暫時存放一個虛值。
    • 不可應用的虛值:指目前根本沒有這個值。
    • 完全不知的虛值:指完全不知道這個值是否存在,就算存在也不知其值為何。
3.關聯表的正式定義為何?
   答:一個關聯表R主要包含標題(Heading)與本體(Body)兩個部分,分述如下:
           (1)標題(Heading) :就是關聯表R的綱要(Schema),主要包含一組固定的屬性與它們所相對得值域。
           (2)本體(Body):此部分指關聯表中的資料部分,其內容與數量非固定的,回隨時間而變動。
4.在關聯表中為什麼要求所有屬性值都要是單元值(Atomic Values)?如果沒有此規定會有何困擾?
   答:
         (1)簡化表示法、比較容易在實際的系統上實現關聯式資料摩是的概念。
         (2)當屬性值為集合時,會造成對應的問題,另一個問題是在新增時要撰寫寫一個附加(Append)及插入(Insert)的功能,而在刪除及修改時也會很困擾。
5.在關聯式資料庫裡的關聯表要式當的選擇主鍵,試說明主鍵(Primary Key)存在的理由為何?
   答:主鍵存在是用來區分關聯表內的值組,是區別值組的識別值,換句話說,每一個值組的主鍵在關聯表中是唯一的。
6.如果有一個關聯表R(a,b,c,year,month,day),假設year的值域(Domain)為{2006,2007},寫成Dom(year)={2006,2007},請計算(year,month,day)這個複合屬性的值域Dom((year,month,day))為何?共含有幾個元素?
    答:
          (1)Dom((year,month,dat))=({2006,2007},{1~12},{1~31})
          (2)2 * 12 * 31 =744個

第五章問答題

1.關聯式資料模式中所定義的兩條整合規則(Integrity Rules)為何?其目的何在?真正的意義何在?
    答:
           (1)個體整合限制:其目的在規範關聯表內的整合限制條件,指的是使用建立UNIQUE索引、Primary Key or Identity屬性來進行限制條件約束。
            (2)參考整合限制:其目的用來規範關聯表與關聯表之間的整合限制條件,指的事使用Foreign Key參考規則來進行限制條件約束。


沒有留言:

張貼留言