數據庫原理及應用(Access版)第5版 課件 第2章 關系模型和關系數據庫_第1頁
數據庫原理及應用(Access版)第5版 課件 第2章 關系模型和關系數據庫_第2頁
數據庫原理及應用(Access版)第5版 課件 第2章 關系模型和關系數據庫_第3頁
數據庫原理及應用(Access版)第5版 課件 第2章 關系模型和關系數據庫_第4頁
數據庫原理及應用(Access版)第5版 課件 第2章 關系模型和關系數據庫_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

金鑫

吳靖

主編

唐小毅

馬燕林

參編數據庫原理及應用(Access2021版)2.1數據模型2.5關系數據操作基礎2.2關系模型的數據結構2.4E-R模型向關系模型的轉換2.3關系數據庫和關系數據庫規范化第2章

關系模型和關系數據庫2.3.1關系數據庫

2.3.2關系數據庫規范化

2.3.3關系數據完整性規則

2.4.1實體轉換為關系模式2.4.2實體之間聯系的轉換2.5.1集合運算

2.5.2關系運算1.層次數據模型層次數據模型(HierarchicalDataModel)的基本結構是一種倒掛樹狀結構,如圖所示。這種樹結構很常見,例如,Windows系統中的文件夾和文件結構、一個組織的結構等。2.網狀數據模型取消層次數據模型的兩個限制條件,每一個結點可以有多個父結點,從而形成了網狀數據模型(NetworkDataModel)。2.1數據模型3.關系數據模型關系數據模型是一個滿足一定條件的二維表格。3.元組表(關系)的每一行稱為一個元組(Tuple)。1.關系關系(Relation)即一個二維表格。2.2關系模型的數據結構2.屬性表(關系)的每一列必須有一個名字,稱為屬性(Attribute)。4.域表(關系)的每一屬性有一個取值范圍,稱為域(Domain)。域是一組具有相同數據類型的值的集合。7.關系模式關系模式(RelationalSchema)是對關系數據結構的描述。簡記為關系名(屬性1,屬性2,屬性3,…,屬性n)5.關鍵字關鍵字又稱主屬性,可以唯一地標識一個元組(一行)的一個屬性或多個屬性的組合。可以起到這樣作用的關鍵字(Key)有兩類:(1)主關鍵字(2)候選關鍵字2.2關系模型的數據結構6.外部關鍵字如果某個關系中的一個屬性或屬性組合不是所在關系的主關鍵字或候選關鍵字,但卻是其他關系的主關鍵字,對這個關系而言,則稱其為外部關鍵字(ForeignKey)。2.2關系模型的數據結構倉庫號倉庫名地點面積WH1興旺上海390WH2廣發長沙460WH3紅星昆明500WH4奧盛蘭州280WH5高利長春300WH6中財北京600概念模型關系模型DBMS用戶概念模型關系數據庫表二維表格實體元祖記錄行屬性屬性字段列鍵關鍵字(主屬性)主關鍵字實體性關系模式2.3關系數據庫和關系數據庫規范化按照關系數據模型建立的數據庫稱為關系數據庫,關系數據庫規范化原則是用來確保數據正確、有效的一組規則。本節討論關系數據庫的建立以及關系數據庫規范化。

2.3.1關系數據庫

關系數據庫是以關系模型為基礎的數據庫,它利用關系描述現實世界中的對象。一個關系既可用來描述一個實體及其屬性,也可用來描述實體間的聯系。關系數據庫是由一組關系組成的,針對一個具體問題,應該如何構造一個適合于它的數據模式,即應該構造幾個關系?每個關系由哪些屬性組成?這就是關系數據庫邏輯設計要討論的問題。

2.3.2關系數據庫規范化

1.函數依賴及其對關系的影響學號姓名性別出生日期專業010001AF010100會計010002BF041101注會010003CM051800會計010004DF091200會計學號姓名性別出生日期專業學院院長010001AF010100會計會計學院Z010002BF041101注會會計學院Z010003CM051800會計會計學院Z010004DF091200會計會計學院Z00005EM121201信管信息學院W010006FF101100信管信息學院W設計出如下關系模式:STUDENT2(學號,姓名,性別,出生日期,專業,學院,院長)1)數據冗余太大:例如,院長的姓名會重復出現,重復的次數與該學院學生的人數相同。

2.3.2關系數據庫規范化

2)更新異常(UpdateAnomalies):例如,某學院更換院長后,系統必須修改與該學院學生有關的每一個元組。3)插入異常(InsertionAnomalies):例如,一個學院剛成立,尚無學生,則這個學院及其院長的信息就無法存入數據庫。4)刪除異常(DeletionAnomalies):例如,某個學院的學生全部畢業了,在刪除該學院學生信息的同時,也把這個學院的信息(學院名稱和院長)全部刪除了。如果刪除一組屬性,帶來的副作用可能是丟失了一些其他信息。2.規范化范式

(1)1NF 關系模式都滿足第一范式,即符合關系定義的二維表格(關系)都滿足第一范式。列的取值只能是原子數據;每一列的數據類型相同,每一列有唯一的列名(屬性);列的先后順序無關緊要,行的先后順序也無關緊要。(2)2NF關系的每一個非關鍵字屬性都完全函數依賴于關鍵字屬性,則關系滿足第二范式。第二范式要求每個關系只包含一個實體集的信息,所有非關鍵字屬性依賴于關鍵字屬性。每個以單個屬性作為主鍵的關系自動滿足第二范式。(3)3NF關系的所有非關鍵字屬性相互獨立,任何屬性其屬性值的改變不應影響其他屬性,則該關系滿足第三范式。一個關系滿足第二范式,同時沒有傳遞依賴,則該關系滿足第三范式。

2.3.2關系數據庫規范化

實體完整性規則:是指保證關系中元組唯一的特性。通過關系的主關鍵字和候選關鍵字實現。

域完整性規則:是指保證關系中屬性取值正確、有效的特性。例如,定義屬性的數據類型、設置屬性的有效性規則等。

參照完整性規則:參照完整性與關系之間的聯系有關,包括插入規則、刪除規則和更新規則。

用戶定義完整性規則:是指為滿足用戶特定需要而設定的規則。在關系數據完整性規則中,實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱為是關系的兩個不變性,由關系系統自動支持。

2.3.3關系數據完整性規則

E-R模型向關系模型轉換要解決的問題是如何將實體以及實體之間的聯系轉換為關系模式,如何確定這些關系模式的屬性和主關鍵字(這里所說的實體更確切地說是實體集)。

2.4E-R模型向關系模型的轉換E-R模型的表現形式是E-R圖,由實體、實體的屬性和實體之間的聯系3個要素組成。從E-R圖轉換為關系模式的方法是:為每個實體定義一個關系,實體的名字就是關系的名字;實體的屬性就是關系的屬性;實體的鍵是關系的主關鍵字。用規范化準則檢查每個關系,上述設計可能需要改變,也可能不用改變。依據關系規范化準則,在定義實體時就應遵循每個實體只有一個主題的原則。實體之間的聯系轉換為關系之間的聯系,關系之間的聯系是通過外部關鍵字來體現的。

2.4.1實體轉換為關系模式1.一對一聯系的轉換【例2-1】

本例的需求分析和E-R模型見第1章【例1-2】。關系模式一:公司(公司編號,公司名稱,地址,電話)總經理(經理編號,姓名,性別,出生日期,民族,公司編號)關系模式二:公司(公司編號,公司名稱,地址,電話,經理編號)總經理(經理編號,姓名,性別,出生日期,民族)注意:其中斜體內容為外部關鍵字。

2.4.2實體之間聯系的轉換

2.一對多聯系的轉換【例2-2】

本例的需求分析和E-R模型見第1章【例1-4】。關系模式:倉庫(倉庫號,倉庫名,地點,面積)員工(員工號,姓名,性別,出生日期,工資,倉庫號)

【例2-3】

考慮學生畢業設計中的指導教師和學生的情況。(1)需求分析學校使用數據庫來管理學生畢業設計時的教師和學生數據。畢業設計時,一名教師指導多位學生,每位學生必須有一名教師指導其畢業設計論文。(2)E-R模型E-R圖如圖2-2所示。實體型如下:教師(教師號,姓名,院系,電話)學生(學號,姓名,性別,出生日期,所屬院系)(3)關系模型的表示方法教師(教師號,姓名,院系,電話)學生(學號,姓名,性別,出生日期,所屬院系,教師號)

2.4.2實體之間聯系的轉換

2.4.2實體之間聯系的轉換

【例2-3】

考慮學生畢業設計中的指導教師和學生的情況。3.多對多聯系的轉換【例2-4】

學生和社團問題。需求分析和E-R模型見第1章【例1-5】。(1)對應社團實體和學生實體分別建立社團關系和學生關系社團(編號,名稱,地點,電話)學生(學號,姓名,性別,出生日期,所屬院系)(2)建立第三個關系表示社團關系與學生關系之間具有m∶n聯系綜上所述得到的關系模型的關系模式:社團(編號,名稱,地點,電話)學生(學號,姓名,性別,出生日期,所屬院系)成員(編號,學號)

2.4.2實體之間聯系的轉換

【例

2-5】

學生與選修課程之間的情況。每個學生會選擇多門課程,每門課程也對應多名學生選修。需求分析和E-R模型見第1章【例1-6】和圖1-12。聯系類型方法1:1一個關系的主關鍵字置于另一個關系中1:n父關系(一方)的主關鍵字置于子關系(多方)中m:n分解成兩個1:n關系。建立“紐帶關系”,兩個父關系的關鍵字置于紐帶關系中,紐帶關系是兩個父關系的字關系4.多元聯系E-R模型轉換為關系模型【例2-6】

倉庫-員工-訂單-供應商。需求分析和E-R模型見第1章

【例1-7】和圖1-13。本例的E-R數據模型轉換為關系數據模型的步驟如下。(1)首先為每個實體建立與之相對應的關系倉庫(倉庫號,倉庫名,地點,面積)員工(員工號,姓名,性別,出生日期,婚否,工資)訂單(訂購單號,訂購日期,金額)供應商(供應商號,供應商名,地址)(2)分別處理每兩個關系之間的聯系綜上所述,得到如下關系數據模型:倉庫(倉庫號,倉庫名,地點,面積)員工(員工號,姓名,性別,出生日期,婚否,工資,倉庫號)訂單(訂購單號,訂購日期,金額,員工號,供應商號)供應商(供應商號,供應商名,地址)

2.4.2實體之間聯系的轉換

關系是集合,關系中的元組可以看做是集合的元素。因此,能在集合上執行的操作也能在關系上執行。

關系代數是一種抽象的查詢語言,是關系數據操縱語言的一種傳統表達方式,它是用對關系的運算來表達查詢的。關系代數是封閉的,也就是說,一個或多個關系操作的結果仍然是一個關系。關系運算分為傳統的集合運算和專門的關系運算。

2.5關系數據操作基礎1.并運算關系A和關系B的并運算是指把A的元組與B的元組加在一起構成新的關系C。元組在C中出現的順序無關緊要,但必須去掉重復的元組,即關系A和關系B并運算的結果關系C由屬于A和屬于B的元組構成,但不能有重復的元組,并且仍具有n個屬性。關系A和關系B的并運算記作:A∪B或A+B。

2.5.1集合運算

2.差運算關系A和關系B差運算的結果關系C仍為n目關系,由只屬于A而不屬于B的元組構成。關系A和關系B差運算記作:A-B。注意,A-B與B-A的結果是不同的。3.交運算關系A和關系B交運算形成新的關系C,關系C由既屬于A同時又屬于B的元組構成并仍為n個屬性。關系A和關系B交運算記作:A∩B。

2.5.1集合運算

4.積運算

如果關系A有m個元組,關系B有n個元組,關系A與關系B的積運算是指一個關系中的每個元組與另一個關系中的每個元組相連接形成新的關系C。關系C中有m×n個元組。關系A和關系B積運算記作:A×B。

2.5.1集合運算

【例2-7】

設有關系R1和R2,如表2-6和表2-7所示。R1中是K社團學生名單;R2中是L社團學生名單。學

號姓

名性

別001AF008BM101CF600DM學

號姓

名性

別001AF101CF909EM學

號姓

名性

別001AF008BM101CF600DM909EM學

號姓

名性

別008BM600DM學

號姓

名性

別001AF101CF1.投影

投影操作是指從一個或多個關系中選擇若干個屬性組成新的關系。投影操作取的是垂直方向上關系的子集(列),即投影是從關系中選擇列。投影可用于變換一個關系中屬性的順序。

2.5.2關系運算

2.選擇

選擇操作是指從關系中選擇滿足一定條件的元組。選擇取的是水平方向上關系的子集(行)。3.連接連接操作是兩個關系的積、選擇和投影的組合。連接操作是從兩個關系的笛卡兒積中選擇屬性間滿足一定條件的元組的運算。【例2-8】

關系student如表2-11所示,在此關系上的投影操作和選擇操作示例如表2-12和表2-13。

2.5.2關系運算

號姓

名性

別出生日期黨

否出

地183501438劉昕女02/28/00.T.北京183501437顏俊男08/14/00.F.山西183501433王倩女01/05/99.F.黑龍江183506122李一女06/28/00.F.山東183505235張舞男09/21/99.F.北京183501412李竟男02/15/00.F.天津183502112王五男01/01/99.T.上海183510228趙子雨男06/23/00.F.河南1)從關系student中選擇部分屬性構成新的關系st1的操作稱為投影,關系st1如表所示。

2.5.2關系運算

號姓

名出生日期出

地183501438劉昕02/28/00北京183501437顏俊08/14/00山西183501433王倩01/05/99黑龍江183506122李一06/28/00山東183505235張舞09/21/99北京183501412李竟02/15/00天津183502112王五01/01/99上海183510228趙子雨06/23/00河南2)從關系student中選擇部分元組構成新的關系st2的操作稱為選擇,關系st2如表所示。

2.5.2關系運算

號姓

名性

別出生日期黨

否出

地183501437顏俊男08/14/00.F.山西183505235張舞男09/21/99.F.北京183501412李竟男02/15/00.F.天津183502112王五男01/01/99.T.上海183510228趙子雨男06/23/00.F.河南【例2-9】

關系A(如表2-14所示)與關系B(如表2-15所示)的等值連接,結果如表2-16所示。

2.5.2關系運算

ADFE2D26E2D38E3D410E3D516BD4D17D212D22D52D6AA.DFBB.DE2D267D2E2D2612D2E3D5162D5【例2-10】

關系A(如表2-14所示)與關系B(如表2-15所示)的自然連接,結果如表所示。

2.5.2關系運算

ADFBE2D267E2D2612E3D5162【例2-11】

關系A與關系B的左外連接,結果如表2-18所示。

2.5.2關系運算

ADFBE2D267E2D2612E2D38NULLE3D410NULLE3D5162【例2-12】

關系A與關系B的右外連接,結果如表2-19所示。

2.5.2關系運算

AFBDNULLNULL4D1E267D2E2612D2E3162D5NULLNULL2D6【例2-13】

關系A與關系B的全連接,結果如表2-20所示。

2.5.2關系運算

AA.DFBB.DE2D267D2E2D2612D2E2D38NULLNULLE3D410NULLNULLE3D5162D5NULLNULLNULL4D1NULLNULLNULL2D62.6習題1.選擇題1)關系型數據庫中的“關系”是指(

)。A.各個記錄中的數據彼此間有一定的關聯關系B.數據模型符合滿足一定條件的二維表格式C.某兩個數據庫文件之間有一定的關系D.表中的兩個字段有一定的關系2)用二維表來表示實體及實體之間聯系的數據模型是(

)。A.關系模型 B.層次模型C.網狀模型 D.實體-聯系模型3)關系數據庫系統能夠實現的3種基本關系運算是(

)。A.索引,排序,查詢

溫馨提示

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

評論

0/150

提交評論