第2章關系數據模型V2.1_第1頁
第2章關系數據模型V2.1_第2頁
第2章關系數據模型V2.1_第3頁
第2章關系數據模型V2.1_第4頁
第2章關系數據模型V2.1_第5頁
已閱讀5頁,還剩71頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

《數據庫原理及應用》第2章關系數據模型電子科技大學計算機學院鄭莉華cd_zhenglh@163.com05二月2023ClicktoaddTitle1

數據模型1ClicktoaddTitle2

關系數據模型2ClicktoaddTitle2關系3ClicktoaddTitle1

關系代數4

了解數據模型的基本構成和發展過程;掌握關系數據模型的結構和關系數據的操作與約束;了解域、笛卡爾積的基本內容,掌握關系完整性的基本內容;掌握基本的集合運算知識;

在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。通俗地講數據模型就是現實世界的模擬。數據模型應滿足三方面要求能比較真實地模擬現實世界容易為人所理解便于在計算機上實現

客觀對象的抽象過程兩步抽象現實世界中的客觀對象抽象為概念模型;把概念模型轉換為某一DBMS支持的數據模型。概念模型是現實世界到機器世界的一個中間層次?,F實世界認識抽象信息世界概念模型機器世界

DBMS支持的數據模型數據模型抽象過程

數據模型的不同層次概念模型邏輯模型物理模型

概念數據模型(ConceptualDataModel,CDM)面向現實世界建模主要用來描述現實世界的概念化結構,與具體的DBMS無關現實世界的事物經過人腦的抽象加工,提取出對用戶有用的信息,經過組織整理加工形成介于現實世界和計算機世界之間的中間模型;CDM只關心現實世界中的事物、事務特征、聯系,完全沒有與具體DBMS相關的任何概念;CDM是系統分析員、程序設計員、維護人員、用戶之間相互理解的共同語言;CDM能對數據庫的設計人員在設計的初始階段擺脫計算機系統及DBMS的具體技術問題,集中精力分析數據、數據之間的聯系;概念模型必須轉換成邏輯模型,才能在DBMS中實現;最常用的概念模型表達工具是E-R模型

邏輯數據模型(LogicalDataModel,LDM)面向用戶建模用戶從數據庫所看到的數據模型;是具體的DBMS所支持的數據模型(網狀/層次/關系/面向對象);既要面向用戶,也要面向系統;LDM表示數據間聯系的方法一般的DBMS支持一種LDM(特殊的DBMS支持多種LDM)

物理數據模型(PhysicalDataModel,PDM)面向具體的DBMS,面向機器描述數據在存儲介質上的組織結構PDM不僅與具體的DBMS有關,還與操作系統和硬件有關每一種邏輯模型在實現時都有其對應的物理模型PDM加入了概念模型中要考慮的因素:觸發器、存儲過程、主鍵、外鍵、索引等DBMS為保證其獨立性和可以執行,大部分PDM的實現工作由系統自動完成,而設計者只設計索引、聚簇等特殊結構

數據結構數據操作數據的約束條件

與數據類型、內容、性質有關的對象,如關系模型中的域、屬性、關系等與數據之間聯系有關的對象。數據結構是對系統靜態特征的描述。

數據操作是指對數據庫中各種對象的實例允許執行的操作的集合,包括操作及有關的操作規則。數據庫主要有檢索和更新(包括插入、刪除、修改)兩大類操作。數據模型必須定義這些操作的確切含義、操作符號、操作規則(如優先級)及實現操作的語言。 數據操作是對系統動態特性的描述。

數據的約束條件是一組完整性規則的集合。完整性規則是指給定的數據模型中的數據及其聯系所具有的制約和依存規則,用以限定符合數據模型的數據庫狀態及狀態的變化,以保證數據的正確、有效、相容。在關系模型中,任何關系必須滿足實體完整性和參照完整性兩個條件。提供定義完整性約束條件的機制,自定義完整性,以反映具體應用所涉及的數據必須遵守的特定的語義約束條件。例如,在醫院的數據庫中規定醫生的年齡在18到60歲之間。

層次模型網狀模型關系模型面向對象模型

層次模型用樹形結構來表示各類實體及實體間的聯系。有且只有一個結點沒有雙親結點,這個結點稱為根結點;根以外的其他結點有且只有一個雙親結點。

R1

根結點

R2

兄弟結點

R3

葉結點

R4

兄弟結點

R5

葉結點

葉結點

層次模型優點概念簡單數據庫的安全性數據獨立性數據庫完整性效率高層次模型缺點實現復雜難于管理缺乏結構獨立性應用程序編寫和使用復雜性實現的限制缺乏標準

R1

根結點

R2

兄弟結點

R3

葉結點

R4

兄弟結點

R5

葉結點

葉結點

在網狀數據模型中,一個聯系可以被稱為一個系。每個系至少由兩種記錄類型組成:一種等同于層次模型中父節點的首記錄,另一種等同于層次模型中子節點的屬記錄。

網狀模型優點概念簡單數據訪問的靈活性提高了數據庫的完整性數據獨立性符合標準網狀模型缺點系統復雜性缺乏結構獨立性

關系模型是目前最重要的一種數據模型。關系數據庫系統采用關系模型作為數據的組織方式。1970年美國IBM公司SanJose研究室的研究員E.F.Codd首次提出了關系數據庫系統的關系模型,開創了數據庫關系方法和關系數據理論的研究,為數據庫技術奠定了理論基礎。20世紀80年代以來,計算機廠商新推出的關系數據庫管理系統幾乎都支持關系模型,非關系模型的產品也大都加上了關系接口。數據庫領域當前的研究工作也都是以關系方法為基礎。后面專門講述

面向對象數據模型至少由以下這些部分組成:數據模型的對象是真實世界實體或事件的抽象。屬性描述一個對象的特性。共有一些相似特征的對象被歸為一類。類是一組具有共同結構和行為的相近的集合。類在一個類層次結構中組織起來。類層次結構像一個自頂向下的樹,每個類只能有一個父類。

面向對象數據模型優點:增加了語義內容可視化表達包含了語義內容數據庫完整性結構獨立性和數據獨立性面向對象數據模型缺點:面向對象數據模型標準缺乏復雜的導航式數據訪問過高的系統開銷減慢了事物處理的速度ClicktoaddTitle1

數據模型1ClicktoaddTitle2

關系數據模型2ClicktoaddTitle2關系3ClicktoaddTitle1

關系代數4

基本概念關系數據模型的數據結構關系數據模型的數據操作關系數據模型的數據約束關系數據模型的優缺點

關系實例關系實例是由命名的若干列和行組成的表格。一般情況下,關系指代實例。關系中的行稱為元組,類似于文件中的記錄,但與文件記錄的不同之處是,所有的元組的列數相同,并且一個關系中不存在兩個相同的元組。關系實例中元組的數目稱為基數(Cardinality)。在關系模型中,關系中的列一般都應該被命名。由于關系是元組的集合,所以元組的次序是無關緊要的。

關系模式(RelationSchema),包括如下組成部分:關系名關系中的屬性的名字及相關聯的域名完整性約束關系必須是規范化的,滿足一定的規范條件最基本的規范條件(第一范式,1NF):關系的每一個分量必須是一個不可分的數據項,即不能表中有表。

關系數據庫關系數據庫是關系的有限集合。因為關系由兩部分組成,所以關系數據庫也是由兩部分組成,即關系模式的集合及對應的關系實例的集合。關系模式的集合稱為數據庫模式,對應的關系實例的集合稱為數據庫實例。

基本術語:關系關系(Relation)是笛卡爾積的一個有意義的子集,一個關系就是一張二維表,通常將一個沒有重復行、重復列的二維表看成一個關系。每個關系都有一個關系名。二維表存放兩類數據:實體本身的數據實體之間的聯系

基本術語:關系關系關系名:患者元組屬性分量

基本術語:關系元組(Tuple)

表中的一行,表示一個實體,關系是由元組組成的。屬性(Attribute)

表中的每一列在關系中稱為屬性,每個屬性都有一個屬性名,屬性值則是各元組屬性的取值。例如,屬性:“Pno”,“Pname”,“Psex”,“Page”,“Pid”。域(Domain)屬性的取值范圍稱為域。同一屬性只能在相同域中取值。例如,性別屬性“Psex”的域為“男”和“女”分量(Component)元組中的一個屬性值。

鍵(Key)關系中能唯一區分不同元組的屬性或屬性組合,稱為關系的一個鍵,或者稱為關鍵字、碼。關鍵字的屬性值不能取“空值”。例如,“Pno”為患者關系的鍵,因為患者編號不允許重復,它的每個值能唯一地把每個患者元組區分開來,而“Pname”則不能作為關鍵字,因為患者中可能出現重名。候選?。–andidateKey)關系中能夠成為關鍵字的屬性或屬性組合可能不是唯一的。凡在關系中能夠唯一區分確定不同元組的屬性或屬性組合,稱為候選健。包括在候選鍵中的屬性成為主屬性,不包括在候選鍵中的屬性稱為非主屬性。主鍵(PrimaryKey,PK)當一個關系中有多個候選健的時候,則從中選定一個作為關系的主鍵。關系中主鍵是唯一的。每個關系中有且只有一個主鍵。

外鍵(ForeignKey,FK)關系中某個屬性或屬性組合并非該關系的鍵,但卻是另一個關系的主鍵,稱此屬性或屬性組合組合為本關系的外鍵。診斷編號患者編號醫生編號癥狀描述診斷描述就診時間醫生編號醫生姓名醫生性別醫生年齡所屬部門技術等級工資主鍵(PrimaryKey,PK)外鍵(ForeignKey,FK)

關系模式(RelationSchema)對關系的描述稱為關系模式,其格式為:

關系名(屬性名l,屬性名2,…,屬性名n)例如:患者(編號,姓名,性別,年齡)

關系數據操作包括兩類:查詢更新(插入、刪除和修改)操作語言用戶可以通過關系語言來完成對數據的各種操作,關系語言特點是高度非過程化,即用戶只需說明“做什么”而不必說明“怎么做”。

關系數據約束:數據模型中固有的約束,如元組不能重復??梢栽跀祿P偷哪J街兄苯颖硎龅募s束,如數據定義語言(DDL)中指定的完整性約束。不能在數據模型的模式中直接表述的約束,由應用程序表示和執行。

關系數據模型的優點:關系模型與非關系模型不同,它是建立在嚴格的數學概念的基礎上的。數據結構簡單、清晰。更高的數據獨立性,更好的安全保密性。豐富的完整性。關系數據模型的缺點:對“現實世界”實體的表達能力弱。由于存取路徑對用戶透明,查詢效率往往不如非關系數據模型。關系模型只有一些固定的操作集。不能很好的支持業務規則。

典型商業DBMS:SQLServer——MicrosoftORACLE——甲骨文SYBASE——SybaseDB/2——IBMMySQL——SunClicktoaddTitle1

數據模型1ClicktoaddTitle2

關系數據模型2ClicktoaddTitle2關系3ClicktoaddTitle1

關系代數4

域、笛卡爾積和關系關系的性質關系模式關系完整性

域(Domain)域是一組具有相同數據類型的值的集合。例如:整數實數介于某個取值范圍的整數長度指定長度的字符串集合{‘男’,‘女’}介于某個取值范圍的日期

笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:

其中:每一個元素(d1,d2,…,dn)叫作一個n元組,元組中每一個值di叫做一個分量。D1D2…Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}

笛卡爾積舉例:給出3個域:D1=Student={張同學,李同學}D2=Advisor={王老師,趙老師}D3=Department={外語系,計算機系}則D1,D2,D3的笛卡爾積為:D=D1×D2×D3={(張同學,王老師,外語系),

(張同學,王老師,計算機系),

(張同學,趙老師,外語系),(張同學,趙老師,計算機系),

(李同學,王老師,外語系),

(李同學,王老師,計算機系),

(李同學,趙老師,外語系),

(李同學,趙老師,計算機系)}D的基數為|D1|×|D2|×|D3|=?

笛卡兒積D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的n元關系(Relation)。用R(D1,D2,…,Dn)表示,R是關系名。關系中的每個元素是關系中的元組,通常用t(tuple)表示。關系是笛卡兒積的有一定意義的、有限的子集,所以關系也是一個二維表。表的每一行對應一個元組,表的每一列對應一個域。關系可以有3種類型:基本關系(又稱基本表):實際存在的表,是實際存儲數據的邏輯表示查詢表:查詢結果對應的表視圖表:由基本表或其它視圖標導出的表,虛表,不對應實際存儲的數據

關系的性質有一個關系名,并且跟關系模式中所有其他關系不重名;每一個單元格都包含且僅包含一個原子值;每個屬性都有一個不同的名字(指同一關系中);同一屬性中的各個值都取自相同的域;各個元組互不相同,不存在重復元組;屬性的順序并不重要;理論上講,元組的順序并不重要。

關系數據庫模式S包含關系模式的集合R={R1,R2,…,Rm}和完整性約束的集合IC。例如:HIS={Dept,Doctor,Patient,Diagnosis}。

關系操作方式:集合操作操作的對象與結果都是集合。一次一集合(setatatime)。查詢:選擇、投影、連接、除、并、交、差數據更新:插入、刪除、修改關系數據庫語言

關系數據庫語言關系代數語言

如:ISBL關系演算語言兼有二者雙重特點語言,如:SQL元組關系演算語言如:ALPHA,QUEL域關系演算語言如:QBE

關系模型的完整性規則是對關系的某種約束條件,保證數據庫中數據的正確性和一致性三類完整性約束實體完整性:主碼不能取空值參照完整性:外碼取值必須為:1)取空值;2)被參照關系表中某個元組的主碼值用戶定義的完整性:各類商業規則實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系系統自動支持。ClicktoaddTitle1

數據模型1ClicktoaddTitle2

關系數據模型2ClicktoaddTitle2關系3ClicktoaddTitle1

關系代數4

基本集合運算并差交笛卡爾積專門的關系代數運算選擇運算投影運算連接運算除運算

并運算:所有至少出現在兩個關系中之一的元組集合。兩個關系R和S若進行并運算,則它們必須是相容的:關系R和S必須是同元的,即它們的屬性數目必須相同。對i,R的第i個屬性的域必須和S的第i個屬性的域相同。語義是一致的RS={t|tRtS}

并運算:舉例R1R2R1∪R2

差運算:設關系R和S具有相同的關系模式,R和S的差是由屬于R但不屬于S的元組構成的集合,記為:R與S必須是相容的RS={t|tRtS}

差運算:舉例R1R2R1-R2

交運算:關系R和S的交運算結果仍為n目關系,由既屬于R又屬于S的元組組成,記為:關系的交可以用差來表示,即:RS=R(RS)=S(SR)RS={t|tRtS}

交運算:舉例R1R2R1∩

R2

兩個分別為n目和m目的關系R和S的笛卡爾積是一個(n+m)列的元組的集合。元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有k1個元組,S有k2個元組,則關系R和關系S的笛卡爾積有k1×k2個元組。記為:R×S的度為R與S的度之和,R×S的元組個數為R和S的元組個數的乘積。

笛卡爾積示例R1R3

從關系中找出滿足給定條件的所有元組稱為選擇。從行的角度進行的運算,即水平方向抽取元組。經過選擇運算得到的結果可以形成新的關系,其關系模式不變,但其中元組的數目小于或等于原來的關系中的元組的個數,它是原關系的一個子集。選擇運算記為:F(R)={t|tR,F(t)=‘真’}σ

選擇運算示例:在患者信息中,把30歲以下男患者找出來。(患者性別=’男’)∧(患者年齡<’30’)(R)或(3=’男’)∧(4<’30’)(R)

從關系中挑選若干屬性組成的新的關系從列的角度進行的運算,即垂直方向抽取元組。投影的結果中要去掉相同的行。A(R)={t[A]|tR},AR

投影運算示例:用投影運算得到患者的姓名和社會保險號。π患者姓名,社會保險號(R)或π2,5(R)

條件連接(連接) RS={rs|rRsSr[A]s[B]}為算術運算,為等號時稱為等值連接。A,B為R和S上度數相等且可比的屬性列。從定義上可以看出連接運算就是在兩個關系的笛卡爾積上進行的選擇運算。

AθBRSAB

條件連接示例:關系R和S,求

RSC=E

RSC=E(R)(S)

自然連接:從兩個關系的廣義笛卡兒積中選取在相同屬性列B上取值相等的元組,并去掉重復的行。

R

S

={rs|rRsSr[B]=S[B]}自然連接中相等的分量必須是相同的屬性組,并且要在結果中去掉重復的屬性,而等值連接則不必。進行自然連接的步驟如下:計算RS;選擇同時出現在R和S中屬性相等元組;去掉重復屬性。

可以看出,如果兩個關系沒有公共屬性,自然連接就是笛卡爾積。

自然連接示例:將關系R、S自然連接。(R)(S)

各種連接等值連接(Equijoin)θ為“=”的連接運算稱為等值連接自然連接(Naturaljoin)特殊的等值連接兩個關系中進行比較的分量必須是相同的屬性組在結果中把重復的屬性列去掉左連接(LeftJoin)R左連接S:所有來自R的元組和那些連接字段相等處的S的元組。右連接(RightJoin)R右連接S:所有來自S的元組和那些連接字段相等處的R的元組。

左連接與右連接示例RS(R)LJN(S)R.B=S.B

∧R.C=S.C(R)RJN(S)R.B=S.B

∧R.C=S.C

象集Z:給定一個關系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|tR,t[X]=x}象集Z表示R中屬性組X上值為x的諸元組在Z上分量的集合。Zx=a1=?Zx=a2=?

給定關系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。

R÷S={tr[X]|tr

R∧πY(S)

Yx}

Yx:x在R中的象集,x=tr[X]÷RS

除法示例ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1Aa1RSR÷SBCDb1c2d1b2c1d1b2c3d2

除法示例關系R中,A可以取四個值{a1,a2,a3,a4}a1的象集為{(b1,c2),(b2,c3),(b2,c1)}

a2的象集為{(b3,c7),(b2,c3)}

a3的象集為{(b4,c6)}

a4的象集為{(b6,c6)}S在(B,C)上的投影為:

{(b1,c2),

溫馨提示

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

評論

0/150

提交評論