數(shù)據(jù)模型學習培訓模板課件_第1頁
數(shù)據(jù)模型學習培訓模板課件_第2頁
數(shù)據(jù)模型學習培訓模板課件_第3頁
數(shù)據(jù)模型學習培訓模板課件_第4頁
數(shù)據(jù)模型學習培訓模板課件_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第2章 數(shù)據(jù)模型本章學習要求:1. 層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型 了解層次及網(wǎng)狀數(shù)據(jù)模型的基本概念和結構。2. 關系數(shù)據(jù)模型 掌握關系數(shù)據(jù)模型的基本概念以及關系代數(shù)操作。了解層次、網(wǎng)狀和關系模型之間的差別。3. 對傳統(tǒng)模型的評價 了解傳統(tǒng)模型的不足之處。4E-R數(shù)據(jù)模型 掌握E-R模型的概念和表示。5. 面向對象數(shù)據(jù)模型 了解面向對象數(shù)據(jù)模型的基本概念。數(shù)據(jù)模型可分為兩類: 獨立于計算機系統(tǒng)的數(shù)據(jù)模型,它完全不涉及信息在計算機系統(tǒng)中的表示,只是用來描述某個特定組織所關心的信息結構,這類模型稱為 “概念數(shù)據(jù)模型”。 概念模型用于建立信息世界的數(shù)據(jù)模型,強調(diào)其語義表達能力,概念應該簡單,清晰,易于用

2、戶理解,它是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫人員之間進行交流的工具。最著名的是“實體聯(lián)系模型”。2. 直接面向數(shù)據(jù)庫的邏輯結構的數(shù)據(jù)模型,它是現(xiàn)實世界的第二層抽象。這類模型涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),又稱為“基本數(shù)據(jù)模型”或“結構數(shù)據(jù)模型”。 例如, 層次、網(wǎng)狀、關系、面向對象數(shù)據(jù)模型”.這類模型有嚴格的形式化定義,以便在計算機系統(tǒng)中實現(xiàn)。2.1 層次數(shù)據(jù)模型 用樹型(層次)結構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為層次數(shù)據(jù)模型(hierarchical data model)?;靖拍詈徒Y構記錄和字段雙親子女關系層次數(shù)據(jù)模式虛擬記錄層次數(shù)據(jù)的線性表示記錄和字段 記錄是用來描述某個事

3、物或事物間關系的命名的數(shù)據(jù)單位,也是存儲的數(shù)據(jù)單位。一個記錄包含若干字段。 每個字段也是命名的,字段只能是簡單數(shù)據(jù)類型(整數(shù)、實數(shù)、字符串等)。系系名系號系主任名地點記錄的型計算機系9李西遠科技館記錄的一個實例雙親子女關系(Parent-Child Relationship,PCR) 反映兩個記錄型之間的一對多(1:N)關系系班計算機系901班911班921班931班1NPCR型PCR實例層次數(shù)據(jù)模式 層次數(shù)據(jù)模式由PCR構成層次數(shù)據(jù)模式系班學生教研組教師計算機系901班911班921班931班硬件教研組軟件教研組王一張三李四趙立錢英孫玉周新吳堅鄭山洪流陳芝丁偉層次數(shù)據(jù)模式實例 在層次數(shù)據(jù)模式

4、中,除根以外,所有的記錄型都應該有唯一的雙親,但可以有多個子女,子女按從左到右的次序排序。虛擬記錄 非層次關系表示問題(1)M:N 王一張三李四人工智能數(shù)據(jù)庫學生:課程: 不允許一個記錄有多個雙親,需要復制記錄,導致冗余。如下圖:型實例學生課程王一人工智能張三人工智能數(shù)據(jù)庫李四人工智能數(shù)據(jù)庫(2)一個記錄是兩個以上PCR的子女學生班運動隊只能表示成下圖,存在冗余。學生班學生運動隊(3)多元關系供應商零件工程項目供應關系可以用PCR表示為:供應商零件工程項目零件供應商工程項目供應商工程項目零件 注意:書上圖2-12不能表示三元關系,因為供應關系與供應商,供應關系與工程項目這兩個PCR的一個雙親實

5、例,其子女集合是并關系,而不是迪卡爾積關系。供應商零件工程項目供應關系主要問題:數(shù)據(jù)冗余,為避免這一情況,只存一份記錄,其它引用該記錄的地方用指針代替 這種用指針代替的記錄稱為虛擬記錄。用下標v表示,指針用虛線箭頭表示。(學生)v課程學生(課程)v學生(學生)v班運動隊層次數(shù)據(jù)的線性表示 由于存儲器是線性的,層次數(shù)據(jù)必須變換成線性形式才能存儲,層次數(shù)據(jù)模式的實例對應一棵層次樹(或森林),對層次樹(或森林)按先序遍歷生成的序列稱為層次序列(hierarchical sequence),規(guī)定以此作為存儲次序。計算機系901班王一張三911班931班吳堅硬件教研組鄭山洪流軟件教研組丁偉層次數(shù)據(jù)模型的

6、約束(1)除了根記錄外,任何其它記錄不能離開其雙親記錄而孤立存在;(2)任何記錄,不管虛實,只允許有一個雙親記錄(保證層次數(shù)據(jù)模式及其實例是樹形);(3)虛擬記錄的指針必須指向一個實際存在的記錄,有虛擬記錄指向的記錄不得刪除;(4)虛擬記錄不得為根記錄。 特點: 層次結構是樹結構,樹的結點是記錄類型,非根結點有且只有一個父結點。上一層記錄類型和下一層記錄類型是1:N聯(lián)系。(因此不能表示M:N) 層次模型的優(yōu)點: 記錄之間的聯(lián)系通過指針來實現(xiàn),查詢效率較高(針對層次結構)。 層次模型的缺點:1、只能表示1:N聯(lián)系,雖然可以采用虛擬記錄描述非層次數(shù)據(jù)關系,但較復雜,用戶不易掌握,并且非層次結構的查

7、詢效率比較低;2、由于層次順序的嚴格和復雜,引起數(shù)據(jù)的查詢和更新很復雜,因此應用程序的編寫也比較復雜;3、模式描述語言較復雜,數(shù)據(jù)獨立性差。2.2 網(wǎng)狀數(shù)據(jù)模型 用有向圖(網(wǎng)絡結構)表示實體及實體之間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀數(shù)據(jù)模型(network data model)。有向圖中的結點是記錄類型,箭頭表示從箭尾的記錄類型到箭頭的記錄類型間聯(lián)系。 基本概念和結構 記錄和數(shù)據(jù)項 數(shù)據(jù)項相當于字段,記錄是數(shù)據(jù)項的有序結合。 系 系表示兩個記錄型間的1:N關系;對應“1”的為首記錄,對應“N”的為屬記錄。系是命名的,有型值之分,例如:圖2-17就是系的型和值。班級學生一班王一李紅丁杰型值圖2-17 班

8、級學生系具有多種類型屬記錄的系稱為“多屬系”(multimember set)多屬系系值:3個成員的并,而非“X”賬戶存款帳提款帳轉賬網(wǎng)狀模型的特點: 與層次模型不同,網(wǎng)狀模型中,一個記錄型可以成為多個首記錄型的屬記錄突破層次的限制; 一個記錄型不能既作為一個系的首記錄又作為同一個系的屬記錄。 EMP領導引入聯(lián)系記錄 EMPLINK1:11:N1:1表示一人擔任一個領導崗位,系值見下一頁圖。E4L1S1E7L2S1E9L3S1E3E5E1E6S2S2S2一個記錄值不能出現(xiàn)在同一系型的多個系值中,否則不是1:N關系 例如,學生(S)和課程(C)關系S1C1C2C3C4S1C5C6解決M:N問題的

9、方法聯(lián)系記錄SLINK1CSLM1CLN型S1L1SLL2L3L4L5L6L7S2SLC1C2C3C4C5C6CLCLCLCLCLCL值 LINK表示多元關系零件LINK1工程項目M1N供應商1P無首系,首記錄可以看成“系統(tǒng)”,例如一個單位的所有部門組成一個無首系。無首系只有一個實例,也稱單值系。系的實現(xiàn)方法OS1S2S3前向指針后向指針首記錄指針系的鏈式實現(xiàn)方式約束(1)一個記錄型不能兼任同一系的首記錄和屬記錄;(2)一個記錄不能出現(xiàn)在同一系型的多個系值中;(3)插入一個新記錄時,若它的記錄型是某個系的屬記錄,必須考慮系籍問題(兩種系籍約束):AUTOMATIC(自動的): 新的屬記錄插入時

10、自動加入相應的系值;MANUAL(人工的):新的屬記錄插入時不自動加入相應的系值; (4)對已插入的屬記錄的系籍問題; 網(wǎng)狀數(shù)據(jù)模型提供三種留置系籍約束:OPTIMAL(隨意的):對屬記錄的系籍處理比較隨意,屬記錄可以脫離某個系值獨立存在,例如,“系學生”系;MANDATORY(強制的):屬記錄不能游離于系值之外,但可以轉系值。例如,“部門職工”系;FIXED(固定的):不能游離,不能轉系值,例如,“職工家屬”系。 上述系籍約束都是語義約束。(5)刪除記錄時,刪除首記錄,沒有系籍問題;刪除屬記錄要按照(4)進行處理。OPTIMAL 首記錄可以刪除,其屬記錄與系值脫離,仍保留在數(shù)據(jù)庫中;MAND

11、ATORY 首記錄不能刪除,因為其屬記錄不能游離于系值之外;FIXED 可將首記錄連同屬記錄一起刪除。網(wǎng)狀模型的缺點: 編寫應用程序比較復雜,程序員必須熟悉數(shù)據(jù)庫的邏輯結構。 在關系DB以前,網(wǎng)狀DB比層次DB用的要普遍。模擬層次和非層次結構比較自然,目前仍有應用實例。 由于層次系統(tǒng)和網(wǎng)狀系統(tǒng)的應用程序編制復雜,目前已被關系系統(tǒng)產(chǎn)品取代。 課程只介紹層次和網(wǎng)狀數(shù)據(jù)模型的概念和機制,以求全面了解數(shù)據(jù)庫技術的發(fā)展。 2.3 關系數(shù)據(jù)模型 層次、網(wǎng)狀模型都基于某種記錄結構(PCR,SET),關系模型跳出這一限制,定義清晰,結構簡單,操作方便。 關系模型是以集合論中的關系概念為基礎發(fā)展起來的數(shù)據(jù)模型。

12、 關系模型(relaction data model)的主要特征是用表格結構表達實體集,用外鍵表示實體間聯(lián)系。與層次模型和網(wǎng)狀模型相比,關系模型比較簡單,容易為初學者接受。 關系模型是由若干個關系模式組成的集合。每個關系實際上是一張表格,記錄之間聯(lián)系是通過各個關系模式的鍵體現(xiàn)的。 PART模式 (P#,PNAME,COLOR,WEIGHT)PROJECT模式 (J#,JNAME,DATE)SUPPLIER模式 (S#,SNAME,SADDR)P_P模式 (J#,P#,TATOL)P_S模式 (P#,S#,QUANTITY) 關系模型的例子 關系模型的層次、網(wǎng)狀模型的最大差別是用鍵而不是用指針導

13、航數(shù)據(jù),其表格簡單,用戶易懂,用戶只需用簡單的查詢語句就可以對數(shù)據(jù)庫進行操作,并不涉及存儲結構、訪問技術等細節(jié)。2.3.1 基本概念及定義1屬性和域屬性-用來描述事物特征。例如:學生的姓名、學號、性別、出生年月等。屬性的域-屬性的取值范圍。例如:姓名的取值范圍是合法姓名的集合。 學號的域是若干位數(shù)字組成的字符串的集合。 性別的域是男,女,注意: 關系數(shù)據(jù)模型中,所有的屬性都應是不可再分的原子數(shù)據(jù)(atomic data)的集合-1NF。 關系數(shù)據(jù)模型中,允許某些屬性值為空,即NULL??罩挡皇侵?,而是一個標記,表明該屬性值空缺。例如:手機號碼,E_mail等。 2關系和元組 設有一關系R,R上

14、有屬性: A1,A2,An 其對應域分別為: D1,D2,Dn 則關系R可表示為:R (A1/D1,A2/D2,An/Dn) 其中:n為關系R的屬性個數(shù),也稱為關系的目。 同一關系中,不允許有同名屬性,但不同屬性可有相同的域。關系R的值可表示r或r(R):r = t1,t2,tm 每個元組t可表示為:t = ,vi Di , 1 i n 即 tiD1 * D2 * * Dn, 1 i n例如:關于大學生的關系模式:STUDENT(學號,姓名,性別,出生年月,系別,入學年份)而其中某一個學生就是關系R的一個元組。所有學生的值構成了R的元組的集合。因此,R的模式相對穩(wěn)定。R的值相對變化。 另外,在

15、關系R中,元組的次序無關,但不能允許有相同的二個元組;屬性的次序無關。 一個關系可視為一個二維表。組成表的所有數(shù)據(jù)項都應是不可再分的最小數(shù)據(jù)項。 關系對應表,屬性對應列,元組對應行。學號姓名年齡性別系別專業(yè)元組屬性 3鍵鍵(或候選鍵)如果關系的某一個屬性或屬性組的值唯一地決定其它所有屬性的值。而其任何真子集無此性質(zhì),則這個屬性或屬性組稱為該關系的鍵。例:學生關系中,學號就是關鍵字。超鍵與上相同,區(qū)別僅在于其真子集也具此性質(zhì)。主鍵一個關系R可有多個候選鍵,若選中一個作為Key,則它就是主鍵,其它稱候補鍵,每個元組的主鍵值應是唯一的。全鍵由所有屬性組成的鍵,稱為全鍵例如 SUPPLY(SNAME,

16、PNAME,JNAME)主屬性能作為候選鍵的屬性,稱為主屬性。非主屬性不包含在候選鍵的屬性,稱為非主屬性。 外鍵引用其它關系的Key或本關系的Key, 稱為外鍵。 如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它們是另外一個關系的關鍵字,則稱其為該關系的外關鍵字。例:COURSE(課程號,課程名,學分,開課時間,先修課程號) GRADE(學號,課程號,成績)其中: 的主鍵是課程號。 的主鍵是學號+課程號。 中先修課程號是引用本關系的鍵,故稱為外鍵。 中學號、課程號是引用STUDENT關系和COURSE中的鍵。 關系數(shù)據(jù)模型是用關系描述事物間聯(lián)系的,且這種聯(lián)系通常都隱含在它們的公共屬性中,尤

17、其是外鍵中。因此,關系數(shù)據(jù)模型不能顯式地表示這種事物間的聯(lián)系,這是它的一個缺點。 關系模式R(A1/D1,A2/D2,,AN/DN)中,R的任何一個元組 t 應滿足條件: tD1 * D2 * Dn 雖然滿足上述條件的元組是合乎語法的,但是,并不是每個合乎語法的元組都能成為R的元組,它還要受到語義上的限制(完整性約束)。 2.3.2 約束 例如,一個大學生的年齡在5歲100歲之間。身高3米,這就是語義上的限制。數(shù)據(jù)的語義不但限制屬性的值,而且還會制約屬性間的關系。 例:在一個R中,作為主鍵的屬性或屬性組,其值不為空或不重復出現(xiàn)等等。這些都是語義施加在屬性間的限制。稱為完整性約束。 目前,大多數(shù)

18、DBMS都提供了完整性約束檢查。 關系數(shù)據(jù)模型的完整性約束共分為4類:1. 域完整性約束 域完整性約束是最簡單、最基本的約束。 屬性值應是域中的值,屬性的值能否為空,這是由問題的語義決定的。例:考試分數(shù)(成績)的取值范圍是0100。2. 實體完整性約束 每一個關系都應有一個主鍵,用來唯一識別一個元組。它的值不能為空,否則無法區(qū)分和識別元組,這就是實體完整性約束。 目前,大多數(shù)DBMS都支持這項檢查,但也不是強制和徹底的。3. 引用完整性約束 這是指不同關系之間或同一關系的不同元組間的約束。設關系R有一外鍵FK,則其某一元組t的外鍵值為tFK。 設FK引用關系R的主鍵Pk,R可以是R,也可以不是

19、R。引用完整性約束要求tFK遵守下面的約束: 即外鍵要么是空缺,要么是引用實際存在的主鍵值。 引用完整性約束與表之間的關聯(lián)有關,它是關系數(shù)據(jù)庫管理系統(tǒng)的一個很重要的功能。用好這項功能,可以減少由于客戶端用戶程序的疏忽而可能給數(shù)據(jù)庫帶來的錯誤。假定現(xiàn)在往職工關系 中插入一個元組:(“WH7”,”E9”,1400)請問是否有問題?倉庫號 城市面積WH1北京370WH2上海500WH3廣州200WH4合肥300倉庫號職工號 工資WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250倉庫職工 該元組插入到職工關系中是沒有任何問題的,但是,在倉庫關系中根本就沒有倉庫號

20、為WH7的倉庫。沒有“WH7”倉庫,就沒有在“WH7”工作的職工。所以插入到職工的元組是有問題的。 利用引用完整性約束就可以解決這類問題。 由于倉庫號是倉庫關系的關鍵字,同時是職工關系的外部關鍵字。在定義職工關系的倉庫號字段時,只要說明外部關鍵字約束: 倉庫號 CHAR(4)NOT NULL REFERENCES 倉庫(倉庫號) 有了以上的約束,系統(tǒng)就會自動檢查相應的父記錄是否存在,從而保證數(shù)據(jù)的引用完整性。 4. 一般性完整性約束 一般完整性約束是用戶為了滿足特定的要求 而做的一些與數(shù)據(jù)完整性有關的規(guī)定。 前三種約束是關系數(shù)據(jù)模型的三個最基本、 最普遍的完整性約束。其它的語義約束與數(shù)據(jù)的 具

21、體內(nèi)容有關。當數(shù)據(jù)量很大時,要說明、管理 和檢查這些約束,開銷太大。目前,尚無一個 DBMS能全面實現(xiàn)一般性完整性約束檢查。 2.3.3 操作關系數(shù)據(jù)模型提供了兩類操作: 關系專用操作 集合操作 選擇操作(Select)(橫挑) 選擇是一種單目運算,即對一個關系施加的運算,按給定條件從關系中挑選滿足條件的元組組成的集合 。 語法格式:()職工號供應商號訂購單號訂購日期E3S7OR671998/06/23E1S4OR731998/07/28E7S4OR761998/05/25E6S6OR771998/06/19E3S4OR791998/07/29E1S6OR801998/06/22E3S6OR9

22、01998/07/13E3S3OR911998/10/27 訂購單關系例: 職工號=“E3”(訂購單)職工號供應商號訂購單號訂購日期E3S7OR671998/06/23E3S4OR791998/07/29E3S6OR901998/07/13E3S3OR911998/10/27訂購單關系 例:職工號=“E3”(訂購單)結果如下:(R)= andand(R)兩者效率大不一樣!易證: 投影操作(Project)(豎挑) 投影操作是單目運算,從關系中挑選指定的屬性組成的新關系。 語法格式:() 職工號供應商號訂購單號訂購日期E3S7OR671998/06/23E1S4OR731998/07/28E7S

23、4OR761998/05/25E6S6OR771998/06/19E3S4OR791998/07/29E1S6OR801998/06/22E3S6OR901998/07/13E3S3OR911998/10/27訂購單關系職工號供應商號E3S7E1S4E7S4E6S6E3S4E1S6E3S6E3S3例: 職工號,供應商號(訂購單)結果:投影操作可以和選擇操作組合起來嵌套使用的情況:例: 訂購單號,供應商號(職工號=“E3” (訂購單)供應商號訂購單號S7OR67S4OR79S6OR90S3OR91訂購單關系 選擇指定的屬性,形成一個 可能含有重復行的表格; 刪除重復行,形成新的關系。 集合操作

24、在關系數(shù)據(jù)模型中,用得最多的集合操作是并、交、差 ,設A、B為兩個集合. AB 并(union):由屬于A或屬于B的所有元組組成的 集合。 AB 交(intersection):由同時屬于A和B的元組組成 的集合。 AB 差(difference):由屬于R而不屬于S的所有元組 組成的集合。 不過,交可用差表示。設A、B為兩個集合,則A和B的交可表示為:ABA(AB) 注: 參與并、差操作的兩個關系的元組必須限制為同類型的,即具有相同的目,且對應的屬性的域相同并兼容(union compatibility); 關系專用操作優(yōu)先級高于集合操作; 一元操作(單目)優(yōu)先級高于二元操作。 倉庫號城市面

25、積WH1北京370WH2上海500WH3廣州200倉庫號城市面積WH2上海500WH3廣州200WH4武漢180倉庫A倉庫B倉庫號城市面積WH1北京370WH2上海500WH3廣州200WH4武漢180倉庫A 倉庫B倉庫號城市面積WH2上海500WH3廣州200倉庫A 倉庫B倉庫號城市面積WH1北京370倉庫A - 倉庫B 設有兩個關系R和S,它們的目分別為nr和ns;它們的元組數(shù)分別為|R|和|S|,則R和S的笛卡爾乘積為: R S=|t R and g S 為t和g的拼接,即R S仍為一個關系,它的目為nr+ns、元組數(shù)為|R|S|。 若R和S中有相同的屬性名,在這些屬性名前加上關系名作為

26、限定詞,進行區(qū)別。 連接操作 連接操作是雙目(二元操作)操作。 按給定條件,把滿足條件的兩個關系所有元組,按一切可能的拼接后形成的新關系,記為RS。即 RS(R S) 連接條件為兩關系中對應屬性的比較,對應屬性不一定同名,但要有相同的域。其普遍表示形式為: andandand 每個條件的普遍形式為:Ai Bj Ai為R的一個屬性,Bj為S中與Ai對應的屬性。注:自然連接完成三件事: 作R S;(笛卡兒積) 在R S上選擇同時滿足R.AiS.Ai的所有元組。 去掉重復屬性; 連接條件為:,, 當所有連接條件中的都為“”時,稱為等連接,在等連接結果中,對應屬性的值是相同的,不用重復。 消除冗余屬性

27、的等連接稱為自然連接,它是“連接”操作的一個重要特例,實用價值很大,它要求被連接的關系有相同的兩個屬性名。倉庫號城市面積WH1北京370WH2上海500WH3廣州200WH5合肥130倉庫號職工號工資WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250倉庫職工倉庫號城市面積WH2上海500WH1北京370WH2上海500WH3廣州200WH1北京370職工號工資E11220E31210E41250E61230E71250自然連接產(chǎn)生的新關系 GRADEGRADE.課稱號=COURSE.課稱號(課程名、課程號、學分(COURSE) 上式可以生成一個學生成績表

28、,它具有學號、課程號、課程名、學分和成績等屬性??梢宰C明:關系代數(shù)操作集、-、是完備的,、-、也是完備的。完備指任何其它關系代數(shù)操作都可以用這5種操作來表示。若一個關系DBMS支持、-、,稱此DBMS是完備的(relationally complete)。事實上,當前關系DBMS還增加了不少關系代數(shù)不支持的操作,例如排序、分組等等。 除操作 雙目運算(二元),用“”表示。 設有關系 R(X,Y)和 S(Y),X,Y為屬性組,S(Y) ,則 RS = X(R)-X(X(R) S)-R) 可能有R不含元組R中相應Y值集合不能包含S(Y)的X值集合R中相應Y值集合能包含S(Y)的X值集合R-(RS)

29、S可以看成“余數(shù)”。示例倉庫號供應商號WH1S1WH1S2WH1S3WH2S3WH3S1WH3S2WH5S1WH5S2WH5S4WH6S2倉庫號WH1WH3WH5供應商號S1S2=被除關系(R)除關系(S)商關系 給定一個供應商號,如果它在被除關系上的映象集包含除關系,則這個供應商號是商關系中的一個元組。在這個例子中,除法運算決定了至少向列在除關系中的那些倉庫供應(器件)的那些供應商的編號。供應商號S1S2S3S4X(R)倉庫號WH1WH3WH5S倉庫號供應商號WH1S1WH1S2WH1S3WH1S4WH3S1WH3S2WH3S3WH3S4WH5S1WH5S2WH5S3WH5S4X(R) S倉

30、庫號供應商號WH1S4WH3S3WH3S4WH5S3X(R) S - RX(X(R) S)-R)供應商號S4S3S4S3供應商號S1S2RS = X(R)-X(X(R) S)-R) 外連接(outer join) 對連接操作的擴展. 與連接的區(qū)別:連接操作時,只有符合連接條件的匹配元組才能保留在結果中。外連接操作時,同時也保留不匹配的那些元組,空缺部分填NULL。 abNULLabNULL外連接有三種外連接:l左外連接,連接結果中,只保留左關系的所有元組;l右外連接,連接結果中,只保留右關系的所有元組;l全外連接,連接結果中,保留左右關系的所有元組;例:要求生成一個表,列出所有課程名及其先修課

31、程名。 R= 課程名,先修課程號(COURSE) S= 課程名,課程號(COURSE) (必須考慮某些課程可能無先修課程的情況) R.課程名,S.課程名(R*先修課程號=課程號S) 外并操作 并操作的擴展??梢詫Ψ遣⒓嫒莸膬申P系進行并操作。 結果等于兩關系的屬性集的并。 在進行外并操作時,對于那些元組中沒有的屬性,填以Null。用關系代數(shù)表示的操作,需標明關系操作的序列,因而以關系代數(shù)為基礎的DB語言是過程性語言(procedural language)。用謂詞演算來表達關系的操作稱為關系演算。用關系演算表示關系的操作,只要說明所要得到的結果,而不必標明操作的過程,因而以關系演算為基礎的數(shù)據(jù)庫

32、語言是說明性語言(declarative language)。目前,面向用戶的關系數(shù)據(jù)庫語言基本上都以關系演算為基礎。2.3.4 關系演算(relational calculus) 關系代數(shù)表示關系的操作,用戶必須指出運算方法步驟,而關系演算用謂詞公式表示查詢條件,指出“做什么”,而“怎么做”則由系統(tǒng)去完成。 以關系代數(shù)為基礎的數(shù)據(jù)庫語言是過程性語言,以關系演算為基礎的數(shù)據(jù)庫語言是說明性語言。 根據(jù)所用變量不同,關系演算分為: 元組關系演算 域關系演算 其中:t是元組變量,既可以用整個t作為查詢對象,也可查詢t中的某些屬性。如查詢整個t,則可省去。P(t)是t應滿足的謂詞。 利用元組關系演算,

33、可以表示關系代數(shù)操作,因此,元組演算與關系代數(shù)具有同等表達能力,是關系完備的。 1.元組關系演算 以元組為變量。一般形式為: t屬性表|P(t) 關系代數(shù)的幾種基本運算可以用元組表達式表示如下: 關系代數(shù)的幾種基本運算可以用元組表達式表示如下: (1)投影:設有關系模式R(ABC),r為R的一個值,則 AB(r)=tAB|tr (2)選擇:F(r)=t|tr and F F是以t為變量的布爾表達式。 (3)RS:可用t|R(t) S(t)表示; 或t|tR OR tS (4)R-S:可用t|R(t) S(t)表示; 或t|tR AND tS (5)連接(實際指自然連接) 設有兩個關系模式R(A

34、BC)和S(CDE),r、s分別為其值: RS=t(ABCDE)|tABCR and tCDES 注意:謂詞中兩個tC同值,隱含等連接。 用謂詞演算表示關系操作時,只有結果是有限集才有意義。 一個表達式的結果如果是有限的,稱此表達式是安全的,否則是不安全的。 否定常常會導致不安全的表達式,例如 t|(tSTUDENT)是不安全的。 若限制t取值的域,使tDOM(P),可將上式改寫成t| t DOM(P) and (tSTUDENT)= DOM(P) STUDENT,成為安全表達式。 域關系演算是以域為變量,一般形式為:X1,X2,Xn|P(X1,X2,Xn, Xn+1,Xn+m) 其中:X1,

35、X2,Xn,Xn+1,Xn+m為域變量。且X1,X2,Xn出現(xiàn)在結果中,其它m個域變量不出現(xiàn)在結果中,但出現(xiàn)在謂詞P中。2.3.5 域關系演算 對關系GRADE(學號,課程號,成績),如果要查詢須補考的學生的學號和補考的課程號,此時查詢表達式:|(z)(GRADE(x,y,z) AND z是GRADE中的一個元組,則該謂詞為真。 與元組變量不同的是域變量的變化范圍是某個值域而不是一個關系。2.4 對傳統(tǒng)數(shù)據(jù)模型的評價 傳統(tǒng)數(shù)據(jù)模型有層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型、關系數(shù)據(jù)模型。特點:都繼承了文件中的記錄、字段等概念。物理級也借鑒了文件的索引、散列等存取方法。向用戶提供了統(tǒng)一的數(shù)據(jù)模型和相應的數(shù)據(jù)庫

36、語言。都在記錄的基礎上定義了數(shù)據(jù)的基本結構、約束和操作。傳統(tǒng)數(shù)據(jù)模型的不足: 以記錄為基礎,不能很好地面向用戶和應用。記 錄和實體不一定相對應。 不能以自然的方式表示實體間聯(lián)系。 語義貧乏。 數(shù)據(jù)類型少,難以滿足應用需要。 2.5 E-R 數(shù)據(jù)模型1976年由P.Chen提出:建立一種統(tǒng)一的數(shù)據(jù)模型,來概括層次、網(wǎng)狀和關系三種傳統(tǒng)數(shù)據(jù)模型;作為3種數(shù)據(jù)模型間相互轉換的中間模型;作為超脫DBMS的一種概念數(shù)據(jù)模型,用比較自然的方式模擬現(xiàn)實世界。 E-R數(shù)據(jù)模型用的最成功和最廣泛的是作為數(shù)據(jù)庫概念設計的數(shù)據(jù)模型。E-R數(shù)據(jù)模型不是面向實現(xiàn),而是面向現(xiàn)實世界。其設計的出發(fā)點是有效自然的模擬現(xiàn)實世界,

37、而不是首先考慮它在機器中的實現(xiàn)問題。E-R數(shù)據(jù)模型是一種有代表性的非傳統(tǒng)數(shù)據(jù)模型。 2.5.1 基本概念 E-R(實體聯(lián)系數(shù)據(jù)模型)與傳統(tǒng)數(shù)據(jù)模型的區(qū)別在于:E-R不是面向實現(xiàn),而是面向現(xiàn)實世界的,因此,它能比較自然地描述現(xiàn)實世界。 E-R中有三個重要的抽象概念: 實體:可以相互區(qū)別,且可被人們識別的事、物、概念等統(tǒng)統(tǒng)抽象為實體。 例如,學生的全體,就是一個實體集。其中的每一個學生是實體集的一個實例或值。因此,實體集通常作為型來定義(E-R中有型與值之分)。 如:Ese|e是學生 其中:Es是學生實體集, e是學生實體。 注:E-R中,大寫字母表示實體集,小寫字母表示實體。 屬性:反映實體特征

38、的稱之為實體的屬性,每個屬性都有其取值的范圍,稱值集。 同一實體集中,每個實體的屬性及其域是相同的,但值可不同,屬性可以是單域的簡單屬性,也可以是多域的組合屬性(如通信地址是個組合屬性,由省、市、區(qū)、街道等組成)。 實體鍵:能唯一識別實體的屬性或屬性組。一個實體的鍵可能有多個,選定一個作為實體的鍵。 與傳統(tǒng)數(shù)據(jù)模型比,E-R對屬性的限制較少,故有利于自然地模擬現(xiàn)實世界。 聯(lián)系:表示實體與實體之間的關系。參與聯(lián)系的實體數(shù)2,稱為二元聯(lián)系。參與聯(lián)系的實體數(shù)2,稱為多元聯(lián)系。 在E-R模型中,聯(lián)系的類型有三種: (1)1:1(一對一聯(lián)系) (2)1:n(一對多聯(lián)系) (3)m:n(多對多聯(lián)系) 實體

39、參與度:表示實體參與聯(lián)系的最小次數(shù)和最大次數(shù),通常用(m:n)表示。 例如,規(guī)定每個學生最少應選三門課,最多可選六門課。則學生在選課聯(lián)系中的參與度可表示為(3:6). 注:m0,表示非強制性,即實體不一定參與聯(lián)系。 如果一門課可以無人選,但最多只能允許100人選則課程在選課聯(lián)系中的參與度為(0,100)。 m0,表示強制性的,即實體一定要參與聯(lián)系。 在E-R模型中,實體和聯(lián)系均可有屬性,如選課聯(lián)系的屬性可有成績、選課時間等。 現(xiàn)實世界中還有一種特殊的實體,稱為弱實體,這種實體不能單獨存在,總是依附某個實體,如親戚是依賴于職工這個實體,家屬是依賴于某一職工。這一類實體通常取其所依附的實體的Key

40、作為本身的Key的一部分。2.5.2 E-R圖 用E-R數(shù)據(jù)模型對一個單位的模擬,稱為一個單位的E-R數(shù)據(jù)模式。 全部參與部分參與 E-R模型提供了實體、屬性和聯(lián)系三個抽象概念。這三個概念簡單、明了、直觀易懂,用以模擬現(xiàn)實世界比較自然,且可方便地轉換關系、層次、網(wǎng)狀數(shù)據(jù)模式。 用E-R表示數(shù)據(jù)模式時,我們只關心有哪些數(shù)據(jù)(即有哪些實體以及屬性)以及數(shù)據(jù)間的關系(實體關系),而不必關心這些數(shù)據(jù)在計算機內(nèi)如何表示和用什么DBMS。2.5.3 擴充E-R數(shù)據(jù)模型該模型中引入了下列抽象概念:1、特殊化和普遍化l 特殊化:從普遍到特殊的過程。如把研究 生實體集分為博士生、碩士生等子集的過程。l 普遍化:從特殊到普遍的過程。如把研究生、本科生、大專生三個實體概括為學生實體集的過程。注:子實體繼承其父實體集的所有屬性和聯(lián)系,且又可有自己的屬性和聯(lián)系。見圖2-30。重疊特殊化不相交重疊化特殊化2. 聚集 在

溫馨提示

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

評論

0/150

提交評論