第6章 關系數據理論(重點) | 數據庫知識點整理


第6章 關系數據理論(重點)

了解

  • “不好”的數據庫模式
  • 模式的插入異常和刪除異常
  • 規范化理論的重要意義

掌握

  • 關系的形式化定義
  • 數據依賴的基本概念(函數依賴、平凡/非平凡/部分/完全/傳遞函數依賴,碼、候選碼、外碼、多值依賴)
  • 范式的概念,1NF-4NF,規范化的含義和作用
  • 4個范式的理解與應用
  • 各個級別范式中存在的問題和解決方法(插入異常,刪除異常,數據冗余)
  • 根據應用語義完整地寫出關系模式的數據依賴集合,根據數據依賴分析某一個關系模式屬於第幾范式

知識點

  • 函數依賴、部分函數依賴、完全函數依賴、傳遞依賴、候選碼、主碼、外碼、全碼、1NF、2NF、3NF、BCNF、多值依賴、4NF
    • 函數依賴:設R (U)是一個關系模式,U是R的屬性集合,X和Y是U的子集。對於R (U)的任意一個可能的關系r,如果r中不存在兩個元組,它們在X上的屬性值相同, 而在Y上的屬性值不同, 則稱"X函數確定Y"或"Y函數依賴於X",記作X→Y
      • 函數依賴是最基本的一種數據依賴,也是最重要的一種數據依賴。
      • 函數依賴是屬性之間的一種聯系,體現在屬性值是否相等。由上面的定義可以知道,如果X→Y,則r中任意兩個元組,若它們在X上的屬性值相同,那么在Y上的屬性值一定也相同。
      • 我們要從屬性間實際存在的語義來確定他們之間的函數依賴,即函數依賴反映了(描述了)現實世界的一種語義。
      • 函數依賴不是指關系模式R的在某個時刻的關系(值)滿足的約束條件,而是指R任何時刻的一切關系均要滿足的約束條件
    • 完全函數依賴、部分函數依賴:在R(U)中,如果X→Y,並且對於X的任何一個真子集X,都有X′→Y,則稱Y對X完全函數依賴;若X→Y,但Y不完全函數依賴於X,則稱Y對X部分函數依賴
    • 候選碼、主碼: 設K為R(U,F)中的屬性或屬性組合,若K → U則K為R的候選碼。若候選碼多於一個,則選定其中的一個為主碼
    • 外碼:關系模式R中屬性或屬性組X並非R的碼,但X是另一個關系模式的碼,則稱X是R的外部碼也稱外碼
    • 全碼:整個屬性組是碼,稱為全碼(All-key)1NF:如果一個關系模式R的所有屬性都是不可分的基本數據項,則R∈1NF
      • 第一范式是對關系模式的最起碼的要求。不滿足第一范式的數據庫模式不能稱為關系數據庫
    • 2NF:若關系模式R∈1NF,並且每一個非主屬性都完全依賴於R的碼,則R∈2NF
    • 3NF:關系模式R<U,F>中若不存在這樣的碼X,屬性組Y及非主屬性Z(Z不包含於Y)使得X→ Y,(Y不→ X),Y→ Z成立,則稱R<U,F>∈3NF
    • BCNF:關系模式R<U,F>∈1NF.若X→ Y且(Y不包含於X)時X必含有碼,則R<U,F>∈BCNF
    • 多值依賴:設R (U)是屬性集U上的一個關系模式,X、Y、Z是U的子集,並且Z=U-X-Y。關系模式R(U)中多值依賴X→ → Y成立,當且僅當對R(U)的任一關系r,給定的一對(x,z)值,有一組Y的值,這組值僅僅決定於x值而與z值無關
    • 4NF:關系模式R<U,F>∈1NF,如果對於R的每個非平凡多值依賴X→ → Y(Y不包含於X),X都含有碼,則稱R<U,F>∈4NF
    綜合題
    建立一個關於系、學生、班級、學會等諸信息的關系數據庫。   描述學生的屬性有:學號、姓名、出生年月、系名、班號、宿舍區。   描述班級的屬性有:班號、專業名、系名、人數、入校年份。   描述系的屬性有:系名、系號、系辦公室地點、人數。   描述學會的屬性有:學會名、成立年份、地點、人數。   有關語義如下:一個系有若干專業,每個專業每年只招一個班,每個班有若干學生。一個系的學生住在同一宿舍區。每個學生可參加若干學會,每個學會有若干學生。學生參加某學會有一個入會年份。    請給出關系模式,寫出每個關系模式的極小函數依賴集,指出是否存在傳遞函數依賴,對於函數依賴左部是多屬性的情況討論函數依賴是完全函數依賴,還是部分函數依賴。    指出各關系的候選碼、外部碼,有沒有全碼存在?
    • 關系模式
      • 學生S(S#,SN,SB,DN,C#,SA)
        S#—學號,SN—姓名,SB—出生年月,SA—宿舍區
      • 班級C(C#,CS,DN,CNUM,CDATE)
         C#—班號,CS—專業名,CNUM—班級人數,CDATE—入校年份
      • 系 D(D#,DN,DA,DNUM)
        D#—系號,DN—系名,DA—系辦公室地點,DNUM—系人數
      • 學會P(PN,DATE1,PA,PNUM)
        PN—學會名,DATE1—成立年月,PA—地點,PNUM—學會人數
      • 學生--學會SP(S#,PN,DATE2)
        DATE2—入會年份
      每個關系模式的極小函數依賴集
      • S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SA
      • C:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#
      • D:D#→DN,DN→D#,D#→DA,D#→DNUM
      • P:PN→DATE1,PN→PA,PN→PNUM
      • SP:(S#,PN)→DATE2
      S中存在傳遞函數依賴
      • S#→DN, S#→SA, C#→SA
      C中存在傳遞函數依賴
      • C#→DN
      • (S#,PN)→DATE2
      • (CS,CDATE)→C#
      • 均為SP中的函數依賴,是完全函數依賴
      關系 候選碼 外部碼 全碼
      • S S# C#,DN 無
      • C C#,(CS,CDATE) DN 無
      • D D#和DN 無 無
      • P PN 無 無
      • SP (S#,PN) S#,PN 無
    試由Armostrong公理系統推導出下面三條推理規則
    • 合並規則:若X→Z,X→Y,則有X→YZ
      已知X→Z,由增廣律知XY→YZ,又因為X→Y,可得XX→XY→YZ,最后根據傳遞律得X→YZ。
    • 偽傳遞規則:由X→Y,WY→Z有XW→Z
      已知X→Y,據增廣律得XW→WY,因為WY→Z,所以XW→WY→Z,通過傳遞律可知XW→Z。
    • 分解規則:X→Y,Z 包含於 Y,有X→Z
      已知Z 包含於 Y,根據自反律知Y→Z,又因為X→Y,所以由傳遞律可得X→Z。
    試舉出三個多值依賴的實例
    • 關系模式MSC(M,S,C)中,M表示專業,S表示學生,C表示該專業的必修課。假設每個專業有多個學生,有一組必修課。設同專業內所有學生的選修的必修課相同,實例關系如下。按照語義對於M的每一個值M i,S有一個完整的集合與之對應而不問C取何值,所以M→→S。由於C與S的完全對稱性,必然有M→→C成立。
      M S CM 1 S1 C1M 1 S1 C2M 1 S2 C1M 1 S2 C2…… …… ……​
    • 關系模式ISA(I,S,A)中,I表示學生興趣小組,S表示學生,A表示某興趣小組的活動項目。假設每個興趣小組有多個學生,有若干活動項目。每個學生必須參加所在興趣小組的所有活動項目,每個活動項目要求該興趣小組的所有學生參加。按照語義有I→→S,I→→A成立。
    • 關系模式RDP(R,D,P)中,R表示醫院的病房,D表示責任醫務人員,P表示病人。假設每個病房住有多個病人,有多個責任醫務人員負責醫治和護理該病房的所有病人。按照語義有R→→D,R→→P成立。
    辨析題
    • 任何一個二目關系都是屬於3NF的。√
    • 任何一個二目關系都是屬於BCNF的。√
    • 任何一個二目關系都是屬於4NF的。√
    • 當且僅當函數依賴A→B在R上成立,關系R(A,B,C)等於其投影R1(A,B)和R2(A,C)的連接 ×
      當且僅當函數依賴A→→B在R上成立,關系R(A,B,C)等於其投影R1(A,B)和R2(A,C)的連接
    • 若R.A→R.B,R.B→R.C,則R.A→R.C √
    • 若R.A→R.B,R.A→R.C,則R.A→R.(B, C) √
    • 若R.B→R.A,R.C→R.A,則R.(B, C)→R.A √
    • 若R.(B, C)→R.A,則R.B→R.A,R.C→R.A ×
      反例:關系模式 SC(S#,C#,G) (S#,C#)→G,但是S# → G,C#→G 
  • 證明

補充

    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 為了設計出性能較優的關系模式,必須進行規范化,規范化主要的理論依據是【關系規范化理論】
    • 規范化理論是關系數據庫進行邏輯設計的理論依據,根據這個理論,關系數據庫中的關系必須滿足:每一個屬性都是【不可分解的】
    • 已知關系模式R(A,B,C,D,E)及其上的函數相關性集合F={A→D,B→C ,E→A },該關系模式的候選關鍵字是【BE】
    • 設學生關系S(SNO,SNAME,SSEX,SAGE,SDPART)的主鍵為SNO,學生選課關系SC(SNO,CNO,SCORE)的主鍵為SNO和CNO,則關系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主鍵為SNO和CNO,其滿足【1NF】
    • 設有關系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學生,G表示成績,T表示時間,R表示教室,根據語義有如下數據依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },關系模式W的一個關鍵字是【(T,S)】
    • 關系模式中,滿足2NF的模式【必定是1NF】
    • 關系模式R中的屬性全是主屬性,則R的最高范式必定是【3NF】
    • 消除了部分函數依賴的1NF的關系模式,必定是【2NF】
    • 如果A->B ,那么屬性A和屬性B的聯系是【多對一】
    • 關系模式的候選關鍵字可以有1個或多個,而主關鍵字有【1個】
    • 候選關鍵字的屬性可以有【1個或多個】
    • 關系模式的任何屬性【不可再分】
    • 設有關系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學生,G表示成績,T表示時間,R表示教室,根據語義有如下數據依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若將關系模式W分解為三個關系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),則W1的規范化程序最高達到【BCNF】
    • 在關系數據庫中,任何二元關系模式的最高范式必定是【BCNF】
    • 在關系規范式中,分解關系的基本原則是【實現無損連接、保持原有的依賴關系】
    • 不能使一個關系從第一范式轉化為第二范式的條件是【每一個非屬性都部分函數依賴主屬性】
    • 任何一個滿足2NF但不滿足3NF的關系模式都不存在【非主屬性對鍵的傳遞依賴】
    • 設數據庫關系模式R=(A,B,C,D,E),有下列函數依賴:A→BC,D→E,C→D;下述對R的分解中,哪些分解是R的無損連接分解【(A,B,C)(C,D,E) 】【(A,B)(A,C,D,E)】
    • 設U是所有屬性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面關於多值依賴的敘述中,不正確的是【若X→→Y,且Y′∈Y,則X→→Y′】 ,正確的是【若X→→Y,則X→→Z 】【若X→Y,則X→→Y 】【若Z=∮,則X→→Y 】
    • 若關系模式R(U,F)屬於3NF,則【仍存在一定的插入和刪除異常】
    • 下列說法不正確的是【任何一個包含三個屬性的關系模式一定滿足3NF】
    • 設關系模式R(A,B,C),F是R上成立的FD集,F={B→C},則分解P={AB,BC}相對於F【是無損聯接,也是保持FD的分解】
    • 關系數據庫規范化是為了解決關系數據庫中【插入、刪除和數據冗余】的問題而引入的。
    • 關系的規范化中,各個范式之間的關系是【1NF∈2NF∈3NF】
    • 數據庫中的冗余數據是指可【由基本數據導出】的數據
    • 學生表(id,name,sex,age,depart_id,depart_name),存在函數依賴是id→name,sex,age,depart_id;dept_id→dept_name,其滿足【2NF】
    • 設有關系模式R(S,D,M),其函數依賴集:F={S→D,D→M},則關系模式R的規范化程度最高達到【2NF】
    • 設有關系模式R(A,B,C,D),其數據依賴集:F={(A,B)→C,C→D},則關系模式R的規范化程度最高達到【2NF】
    • 下列關於函數依賴的敘述中,哪一條是不正確的【由X→YZ,則X→Y, Y→Z】,正確的是【由X→Y,Y→Z,則X→YZ】【由X→Y,WY→Z,則XW→Z 】【由X→Y,Z∈Y,則X→Z】
    • X→Y,當下列哪一條成立時,稱為平凡的函數依賴【Y∈X】
    • 關系數據庫的規范化理論指出:關系數據庫中的關系應該滿足一定的要求,最起碼的要求是達到1NF,即滿足【每個屬性都是不可分解的】
    • 根據關系數據庫規范化理論,關系數據庫中的關系要滿足第一范式,部門(部門號,部門名,部門成員,部門總經理)關系中,因哪個屬性而使它不滿足第一范式【部門成員】
    • 有關系模式A(C,T,H,R,S),其中各屬性的含義是:
    • C:課程 T:教員 H:上課時間 R:教室 S:學生
    • 根據語義有如下函數依賴集:
    • F={C→T,(H,R)→C,(H,T)RC,(H,S)→R}
      • 關系模式A的碼是【(H,S)】
      • 關系模式A的規范化程度最高達到【2NF】
      • 現將關系模式A分解為兩個關系模式A1(C,T),A2(H,R,S),則其中A1的規范化程度達到【BCNF】
    • 數據庫外模式在【數據庫邏輯結構設計】階段設計
    • 生成DBMS系統支持的數據模型在【數據庫邏輯結構設計】階段完成
    • 根據應用需求建立索引在【數據庫物理設計】階段完成
    • 員工性別取值“男”女”/“1”“0”屬於【屬性沖突】
    • 數據庫設計方法包括【新奧爾良方法】【基於E-R模型的方法】【3NF的設計方法】【面向對象的設計方法】【統一建模語言(UML)方法】
    • 數據庫設計的基本步驟包括【需求分析】【概念結構設計】【邏輯結構設計】【物理結構設計】【數據庫實施】【數據庫運行和維護】
    • 集成E-R圖要分兩個步驟【合並、修改】和【重構】
    • 數據庫常見存取方法【索引】【聚簇】【Hash方法】
    • 在進行概念結構設計時,將事物作為屬性的基本准則是什么
      • 作為屬性,不能再具有需要描述的性質,屬性必須是不可分的數據項,不能包含其他屬性
      • 屬性不能與其他實體具有聯系,即E-R圖中所表示的聯系是實體之間的聯系
    • 將E-R圖轉換為關系模式時,可以如何處理實體型間的聯系


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM