數據庫系統原理教程-清華大學_第1頁
數據庫系統原理教程-清華大學_第2頁
數據庫系統原理教程-清華大學_第3頁
數據庫系統原理教程-清華大學_第4頁
數據庫系統原理教程-清華大學_第5頁
已閱讀5頁,還剩1860頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程名稱:數據庫系統概論

課時:72

任課教師:陳紅

內容安排1基礎篇第1章:緒論第2章:關系數據庫第3章:關系數據庫標準語言SQL設計篇第4章:關系數據庫設計理論第6章:數據庫設計內容安排2系統篇第5章:數據庫保護第7章:關系數據庫管理系統實例第8章:數據庫技術新進展第1章緒論1.1引言1.2數據模型1.3數據庫系統結構1.4數據庫管理系統1.5數據庫工程與應用1.6小結第1章緒論1.1引言1.2數據模型1.3數據庫系統結構1.4數據庫管理系統1.5數據庫工程與應用1.6小結1.1

引言1.1.1數據、數據庫、數據庫系統、數據庫管理系統1.1.2數據庫技術的生產與發(fā)展1.1.3數據庫技術的研究領域1.1

引言1.1.1數據、數據庫、數據庫系統、數據庫管理系統1.1.2數據庫技術的生產與發(fā)展1.1.3數據庫技術的研究領域數據庫的地位數據庫技術產生于六十年代末,是數據管理的最新技術,是計算機科學的重要分支。數據庫技術是信息系統的核心和基礎,它的出現極大地促進了計算機應用向各行各業(yè)的滲透。數據庫的建設規(guī)模、數據庫信息量的大小和使用頻度已成為衡量一個國家信息化程度的重要標志。一、數據數據(Data)是數據庫中存儲的基本對象數據的定義描述事物的符號記錄組成數據的符號種類數字、字符串、日期、邏輯值、文本、圖形、圖象、聲音數據的特點數據與其語義是不可分的數據舉例學生檔案中的學生記錄(李明,男,1972,江蘇,計算機系,1990)數據的形式不能完全表達其內容數據的解釋語義:學生姓名、性別、出生年月、籍貫、所在系別、入學時間解釋:李明是個大學生,1972年出生,男,江蘇人,1990年考入計算機系二、數據庫人們收集并抽取出一個應用所需要的大量數據之后,應將其保存起來以供進一步加工處理,進一步抽取有用信息。數據庫的定義數據庫(Database,簡稱DB)是長期儲存在計算機內、有組織的、可共享的數據集合。數據庫(續(xù))數據庫的特征數據按一定的數據模型組織、描述和儲存可為各種用戶共享冗余度較小數據獨立性較高易擴展三、數據庫管理系統什么是DBMS數據庫管理系統(DatabaseManagementSystem,簡稱DBMS)是位于用戶與操作系統之間的一層數據管理軟件。DBMS的用途科學地組織和存儲數據、高效地獲取和維護數據數據庫管理系統(續(xù))DBMS的主要功能數據定義功能:提供數據定義語言(DDL),用于定義數據庫中的數據對象。數據操縱功能:提供數據操縱語言(DML),用于操縱數據實現對數據庫的基本操作(查詢、插入、刪除和修改)。數據庫管理系統(續(xù))DBMS的主要功能(續(xù))數據庫的運行管理:保證數據的安全性、完整性、多用戶對數據的并發(fā)使用及發(fā)生故障后的系統恢復。數據庫的建立和維護功能:提供實用程序,完成數據庫數據批量裝載,數據庫轉儲,介質故障恢復,數據庫的重組織和性能監(jiān)視等四、數據庫系統什么是數據庫系統數據庫系統(DatabaseSystem,簡稱DBS)是指在計算機系統中引入數據庫后的系統構成。在不引起混淆的情況下常常把數據庫系統簡稱為數據庫。數據庫系統的構成由數據庫、數據庫管理系統(及其開發(fā)工具)、應用系統、數據庫管理員和用戶構成。數據庫系統(續(xù))數據庫系統構成圖示用戶用戶用戶應用系統應用開發(fā)系統數據庫管理系統操作系統數據庫數據庫管理員用系應統

數據庫系統(續(xù))發(fā)工開具用軟應件數據庫系統在計算機系統中的位置圖示BMDS編統譯系作系操統硬件1.1

引言1.1.1數據、數據庫、數據庫系統、數據庫管理系統1.1.2數據庫技術的生產與發(fā)展1.1.3數據庫技術的研究領域1.1.2數據管理技術的產生和發(fā)展什么是數據管理對數據進行分類、組織、編碼、存儲、檢索和維護,是數據處理的中心問題。數據管理技術的發(fā)展過程人工管理階段(40年代中--50年代中)文件系統階段(50年代末--60年代中)數據庫系統階段(60年代末--現在)數據管理技術的產生和發(fā)展(續(xù))數據管理技術的發(fā)展動力應用需求的推動計算機硬件的發(fā)展計算機軟件的發(fā)展一、人工管理時期40年代中--50年代中產生的背景應用需求 科學計算 硬件水平 無直接存取存儲設備 軟件水平 沒有操作系統 處理方式 批處理 人工管理(續(xù))特點1數據的管理者:應用程序,數據不保存。人工管理(續(xù))特點2-數據面向的對象:某一應用程序

應用程序與數據的對應關系圖應用程序1數據集1應用程序2數據集2應用程序n數據集n...…...…人工管理(續(xù))特點3數據的共享程度:無共享、冗余度極大數據的獨立性:不獨立,完全依賴于程序數據的結構化:無結構數據控制能力:應用程序自己控制二、文件系統時期50年代末--60年代中產生的背景應用需求 科學計算、管理 硬件水平 磁盤、磁鼓 軟件水平 有文件系統 處理方式 聯機實時處理、批處理

文件系統(續(xù))特點1數據的管理者:文件系統,數據可長期保存應用程序與數據的對應關系(文件系統)特點2-數據面向的對象:某一應用程序

應用程序與數據的對應關系應用程序1文件1應用程序2文件2應用程序n文件n存取方法...…...…文件系統(續(xù))特點3數據的共享程度:共享性差、冗余度大文件系統(續(xù))特點4-數據的結構化:記錄內有結構,整體無結構文件系統中數據的結構記錄內有結構

學生人事記錄數據的結構是靠程序定義和解釋的。學號姓名性別系別年齡政治面貌家庭出身籍貫家庭成員獎懲情況文件系統(續(xù))數據一般是定長的。可以間接實現數據變長要求,但訪問相應數據的應用程序復雜了。學生人事主記錄學號姓名性別系別年齡政治面貌家庭出身籍貫家庭成員獎懲情況姓名與本人關系詳細情況日期獎懲條目家庭成員記錄獎懲情況記錄文件系統(續(xù))900201李明男計算機24共青團員工人江蘇無錫李義山父子…李平兄弟…1991吳玉章獎學金1991一等獎學金張玉母子…家庭成員記錄獎懲情況記錄文件間是獨立的,因此數據整體無結構。間接實現數據整體的有結構也比較困難。數據的最小存取單位是記錄。文件系統(續(xù))特點5數據的獨立性:獨立性差,數據的邏輯結構改變必須修改應用程序數據控制能力:應用程序自己控制三、數據庫系統時期60年代末以來產生的背景應用背景 大規(guī)模管理 硬件背景 大容量磁盤 軟件背景 有數據庫管理系統 處理方式 聯機實時處理,分布處理,批處理 數據庫系統(續(xù))特點1數據的管理者:DBMS數據庫系統(續(xù))特點2-數據面向的對象:現實世界

應用程序與數據的對應關系DBMS應用程序1應用程序2數據庫…數據庫系統(續(xù))特點3-數據的共享程度:共享性高數據的高共享性的好處降低數據的冗余度,節(jié)省存儲空間避免數據間的不一致性使系統易于擴充數據庫系統(續(xù))特點4-數據的獨立性:高度的物理獨立性和一定的邏輯獨立性數據的物理獨立性指用戶的應用程序與存儲在磁盤上的數據庫中數據是相互獨立的。當數據的物理存儲改變了,應用程序不用改變。數據的邏輯獨立性指用戶的應用程序與數據庫的邏輯結構是相互獨立的。數據的邏輯結構改變了,用戶程序也可以不變。數據庫系統(續(xù))特點5-數據的結構化:整體結構化數據結構化整體數據的結構化是數據庫的主要特征之一。數據庫中實現的是數據的真正結構化數據的結構用數據模型描述,無需程序定義和解釋。數據可以變長。數據的最小存取單位是數據項。數據庫系統(續(xù))特點6

-數據控制能力:由DBMS統一管理和控制DBMS對數據的控制功能數據的安全性(Security)保護使每個用戶只能按指定方式使用和處理指定數據,保護數據以防止不合法的使用造成的數據的泄密和破壞。數據的完整性(Integrity)檢查將數據控制在有效的范圍內,或保證數據之間滿足一定的關系。DBMS對數據的控制功能(續(xù))并發(fā)(Concurrency)控制對多用戶的并發(fā)操作加以控制和協調,防止相互干擾而得到錯誤的結果。數據庫恢復(Recovery)將數據庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)。1.1

引言1.1.1數據、數據庫、數據庫系統、數據庫管理系統1.1.2數據庫技術的生產與發(fā)展1.1.3數據庫技術的研究領域1.1.3數據庫技術的研究領域數據庫管理系統軟件的研制數據庫設計數據庫理論數據庫管理系統軟件的研制DBMS本身以DBMS為核心的一組相互聯系的軟件系統工具軟件中間件數據庫設計數據庫設計方法設計工具設計理論數據模型和數據建模數據庫理論關系的規(guī)范化理論關系數據理論第1章緒論1.1引言1.2數據模型1.3數據庫系統結構1.4數據庫管理系統1.5數據庫工程與應用1.6小結1.2數據模型1.2.1數據模型的要素

1.2.2概念模型

1.2.3數據模型數據模型在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。通俗地講數據模型就是現實世界的模擬。

數據模型應滿足三方面要求能比較真實地模擬現實世界容易為人所理解便于在計算機上實現數據模型(續(xù))數據模型分成兩個不同的層次(1)概念模型也稱信息模型,它是按用戶的觀點來對數據和信息建模。(2)數據模型主要包括網狀模型、層次模型、關系模型等,它是按計算機系統的觀點對數據建模。數據模型(續(xù))客觀對象的抽象過程兩步抽象現實世界中的客觀對象抽象為概念模型;把概念模型轉換為某一DBMS支持的數據模型。概念模型是現實世界到機器世界的一個中間層次。1.2數據模型

1.2.1數據模型的要素

1.2.2概念模型

1.2.3數據模型1.2.1數據模型的要素數據結構數據操作數據的約束條件1.數據結構什么是數據結構對象類型的集合兩類對象與數據類型、內容、性質有關的對象與數據之間聯系有關的對象數據結構是對系統靜態(tài)特性的描述2.數據操作數據操作對數據庫中各種對象(型)的實例(值)允許執(zhí)行的操作及有關的操作規(guī)則數據操作的類型檢索更新(包括插入、刪除、修改)

數據操作(續(xù))數據模型對操作的定義操作的確切含義操作符號操作規(guī)則(如優(yōu)先級)實現操作的語言數據操作是對系統動態(tài)特性的描述。3.數據的約束條件數據的約束條件一組完整性規(guī)則的集合。完整性規(guī)則是給定的數據模型中數據及其聯系所具有的制約和儲存規(guī)則,用以限定符合數據模型的數據庫狀態(tài)以及狀態(tài)的變化,以保證數據的正確、有效、相容。

數據的約束條件(續(xù))數據模型對約束條件的定義反映和規(guī)定本數據模型必須遵守的基本的通用的完整性約束條件。例如在關系模型中,任何關系必須滿足實體完整性和參照完整性兩個條件。提供定義完整性約束條件的機制,以反映具體應用所涉及的數據必須遵守的特定的語義約束條件。1.2數據模型1.2.1數據模型的要素

1.2.2概念模型

1.2.3數據模型1.2.2概念模型1.概念模型2.信息世界中的基本概念3.概念模型的表示方法1.概念模型概念模型的用途概念模型用于信息世界的建模是現實世界到機器世界的一個中間層次是數據庫設計的有力工具數據庫設計人員和用戶之間進行交流的語言對概念模型的基本要求較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識簡單、清晰、易于用戶理解2.信息世界中的基本概念

(1)實體(Entity)客觀存在并可相互區(qū)別的事物稱為實體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。(3)碼(Key)唯一標識實體的屬性集稱為碼。信息世界中的基本概念(續(xù))(4)域(Domain)屬性的取值范圍稱為該屬性的域。(5)實體型(EntityType)用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型。(6)實體集(EntitySet)同型實體的集合稱為實體集。

信息世界中的基本概念(續(xù))(7)聯系(Relationship)現實世界中事物內部以及事物之間的聯系在信息世界中反映為實體內部的聯系和實體之間的聯系。實體內部的聯系:組成實體的各屬性之間的聯系實體之間的聯系:不同實體集之間的聯系三類實體型間聯系

一對一聯系(1:1)一對多聯系(1:n)多對多聯系(m:n)

兩個實體型間的聯系一對一聯系如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯系,反之亦然,則稱實體集A與實體集B具有一對一聯系。記為1:1。實例班級與班長之間的聯系:一個班級只有一個正班長,而一個班長只在一個班中任職兩個實體型間的聯系(續(xù))一對多聯系如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體B有一對多聯系。記為1:n實例班級與學生之間的聯系:一個班級中有若干名學生,而每個學生只在一個班級中學習兩個實體型間的聯系(續(xù))多對多聯系(m:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯系,則稱實體集A與實體B具有多對多聯系。記為m:n實例課程與學生之間的聯系:一門課程同時有若干個學生選修,而一個學生可以同時選修多門課程聯系的表示方法示例班級班級-班長班長111:1聯系課程選修學生mnm:n聯系班級組成學生1n1:n聯系實體型間聯系(續(xù))三類聯系之間的關系m:n聯系1:1聯系1:n聯系特例特例特例多個實體型間的聯系多個實體型之間的聯系一對一聯系一對多聯系多對多聯系多個實體型間的聯系(續(xù))多個實體型間的一對多聯系若實體集E1,E2,...,En存在聯系,對于實體集Ej(j=1,2,...,i-1,i+1,...,n)中的給定實體,最多只和Ei中的一個實體相聯系,則我們說Ei與E1,E2,...,Ei-1,Ei+1,...,En之間的聯系是一對多的。多個實體型間的聯系(續(xù))多個實體型間的一對多聯系(續(xù))實例對于課程、教師與參考書三個實體型,如果一門課程可以有若干個教師講授,使用若干本參考書,而每一個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書之間的聯系是一對多的多個實體型間的一對一聯系多個實體型間的多對多聯系聯系的表示方法示例(續(xù))職工領導1n同一實體型內部的1:n聯系課程講授教師1m多個實體型間的1:n聯系參考書n同一實體集內各實體間的聯系一對多聯系實例職工實體集內部具有領導與被領導的聯系,即某一職工(干部)“領導”若干名職工,而一個職工僅被另外一個職工直接領導,因此這是一對多的聯系一對一聯系多對多聯系3.概念模型的表示方法概念模型的表示方法很多實體-聯系方法(E-R方法)是最為常用的概念模型表示方法。用E-R圖來描述現實世界的概念模型。E-R方法也稱為E-R模型。E-R圖實體型用矩形表示,矩形框內寫明實體名。學生教師E-R圖(續(xù))屬性用橢圓形表示,并用無向邊將其與相應的實體連接起來學生學號年齡性別姓名E-R圖(續(xù))聯系聯系本身:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1、1:n或m:n)聯系的表示方法實體型1聯系名實體型2111:1聯系實體型1聯系名實體型2mnm:n聯系實體型1聯系名實體型21n1:n聯系聯系的表示方法(續(xù))實體型1聯系名mn同一實體型內部的m:n聯系實體型1聯系名實體型21m多個實體型間的1:n聯系實體型3n聯系的表示方法示例班級班級-班長班長111:1聯系課程選修學生mnm:n聯系班級組成學生1n1:n聯系聯系的表示方法示例(續(xù))職工領導1n同一實體型內部的1:n聯系課程講授教師1m多個實體型間的1:n聯系參考書nE-R圖(續(xù))聯系聯系的屬性:聯系本身也是一種實體型,也可以有屬性。如果一個聯系具有屬性,則這些屬性也要用無向邊與該聯系連接起來。聯系屬性的表示方法課程選修學生mn成績E-R圖實例:某個工廠物資管理的概念模型物資管理涉及的實體:倉庫:屬性有倉庫號、面積、電話號碼。零件:屬性有零件號、名稱、規(guī)格、單價、描述。供應商:屬性有供應商號、姓名、地址、電話號碼、賬號。項目:屬性有項目號、預算、開工日期。職工:屬性有職工號、姓名、年齡、職稱。E-R圖實例(續(xù))實體之間的聯系一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中。用庫存量來表示某種零件在某個倉庫中的數量。一個倉庫有多個職工當倉庫保管員,一個職工只能在一個倉庫工作。職工之間具有領導-被領導關系。即倉庫主任領導若干保管員。一個供應商可以供給若干項目多種零件,每個項目可以使用不同供應商供應的零件,每種零件可由不同供應商供給。1.2數據模型1.2.1數據模型的要素

1.2.2概念模型

1.2.3數據模型1.2.3數據模型一、層次數據模型二、網狀數據模型三、關系數據模型1.2.3數據模型非關系模型種類層次模型(HierarchicalModel)網狀模型(NetworkModel)數據結構:以基本層次聯系為基本單位基本層次聯系:兩個記錄以及它們之間的一對多(包括一對一)的聯系數據模型(續(xù))關系模型(RelationalModel)數據結構:表面向對象模型(ObjectOrientedModel)數據結構:對象1.2.3數據模型一、層次數據模型二、網狀數據模型三、關系數據模型層次模型1.層次數據模型的數據結構2.層次數據模型的數據操縱3.層次數據模型的完整性約束4.層次數據模型的存儲結構5.層次數據模型的優(yōu)缺點

6.典型的層次數據庫系統1.層次數據模型的數據結構層次模型滿足下面兩個條件的基本層次聯系的集合為層次模型。1.有且只有一個結點沒有雙親結點,這個結點稱為根結點2.根以外的其它結點有且只有一個雙親結點層次模型中的幾個術語根結點,雙親結點,兄弟結點,葉結點層次數據模型的數據結構(續(xù))

R1

根結點

R2

兄弟結點

R3

葉結點

R4

兄弟結點

R5

葉結點

葉結點層次數據模型的數據結構(續(xù))表示方法實體型:用記錄類型描述。每個結點表示一個記錄類型。屬性:用字段描述。每個記錄類型可包含若干個字段。聯系:用結點之間的連線表示記錄(類)型之間的一對多的聯系。層次數據模型的數據結構(續(xù))特點結點的雙親是唯一的只能直接處理一對多的實體聯系每個記錄類型定義一個排序字段,也稱為碼字段任何記錄值只有按其路徑查看時,才能顯出它的全部意義沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在層次數據模型的數據結構(續(xù))多對多聯系在層次模型中的表示用層次模型間接表示多對多聯系表示方法將多對多聯系分解成一對多聯系分解方法冗余結點法虛擬結點法2.層次模型的數據操縱

查詢插入刪除更新3.層次模型的完整性約束無相應的雙親結點值就不能插入子女結點值如果刪除雙親結點值,則相應的子女結點值也被同時刪除更新操作時,應更新所有相應記錄,以保證數據的一致性4.層次數據模型的存儲結構鄰接法按照層次樹前序遍歷的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來實現層次順序。鏈接法用指引元來反映數據之間的層次聯系子女-兄弟鏈接法P18層次序列鏈接法P18D02R01E2101E1709E3501R02R03E1101E3102S63871S63874S638765.層次模型的優(yōu)缺點優(yōu)點層次數據模型簡單,對具有一對多的層次關系的部門描述自然、直觀,容易理解性能優(yōu)于關系模型,不低于網狀模型層次數據模型提供了良好的完整性支持層次模型的優(yōu)缺點(續(xù))缺點多對多聯系表示不自然對插入和刪除操作的限制多查詢子女結點必須通過雙親結點層次命令趨于程序化6.典型的層次數據庫系統IMS數據庫管理系統第一個大型商用DBMS1968年推出IBM公司研制1.2.3數據模型一、層次數據模型二、網狀數據模型三、關系數據模型網狀模型1.網狀數據模型的數據結構2.網狀數據模型的數據操縱3.網狀數據模型的完整性約束4.網狀數據模型的存儲結構5.網狀數據模型的優(yōu)缺點6.典型的網狀數據庫系統1.網狀數據模型的數據結構網狀模型滿足下面兩個條件的基本層次聯系的集合為網狀模型。1.允許一個以上的結點無雙親;2.一個結點可以有多于一個的雙親。網狀數據模型的數據結構(續(xù))表示方法(與層次數據模型相同)實體型:用記錄類型描述。每個結點表示一個記錄類型。屬性:用字段描述。每個記錄類型可包含若干個字段。聯系:用結點之間的連線表示記錄(類)型之間的一對多的父子聯系。網狀數據模型的數據結構(續(xù))特點只能直接處理一對多的實體聯系每個記錄類型定義一個排序字段,也稱為碼字段任何記錄值只有按其路徑查看時,才能顯出它的全部意義網狀數據模型的數據結構(續(xù))網狀模型與層次模型的區(qū)別網狀模型允許多個結點沒有雙親結點網狀模型允許結點有多個雙親結點網狀模型允許兩個結點之間有多種聯系(復合聯系)網狀模型可以更直接地去描述現實世界層次模型實際上是網狀模型的一個特例網狀數據模型的數據結構(續(xù))

R1

R2

R3L1L2

R1

R2

L3

L1L2

R3

L4

R4

R5

網狀數據模型的數據結構(續(xù))

R1

L1L2

R2網狀數據模型的數據結構(續(xù))學生宿舍學生教研室系教師網狀數據模型的數據結構(續(xù))父親人獨生子女樹種植砍伐養(yǎng)育贍養(yǎng)網狀數據模型的數據結構(續(xù))父親關系男人網狀數據模型的數據結構(續(xù))多對多聯系在網狀模型中的表示用網狀模型間接表示多對多聯系表示方法將多對多聯系直接分解成一對多聯系2.網狀模型的數據操縱查詢插入刪除更新3.網狀數據模型的完整性約束完整性約束條件不嚴格允許插入尚未確定雙親結點值的子女結點值允許只刪除雙親結點值網狀數據模型的完整性約束(續(xù))具體的網狀數據庫系統(如DBTG)對數據操縱加了一些限制,提供了一定的完整性約束。碼屬籍類別加入類別(自動的,手工的)移出類別(固定的,必須的,隨意的)4.網狀數據模型的存儲結構關鍵實現記錄之間的聯系常用方法單向鏈接雙向鏈接環(huán)狀鏈接向首鏈接例:P295.網狀模型的優(yōu)缺點優(yōu)點能夠更為直接地描述現實世界,如一個結點可以有多個雙親具有良好的性能,存取效率較高網狀模型的優(yōu)缺點(續(xù))缺點結構比較復雜,而且隨著應用環(huán)境的擴大,數據庫的結構就變得越來越復雜,不利于最終用戶掌握DDL、DML語言復雜,用戶不容易使用6.典型的網狀數據庫系統DBTG系統,亦稱CODASYL系統由DBTG提出的一個系統方案奠定了數據庫系統的基本概念、方法和技術70年代推出實際系統CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE1.2.3數據模型一、層次數據模型二、網狀數據模型三、關系數據模型關系模型1.關系數據模型的數據結構2.關系數據模型的操縱3.關系數據模型的完整性約束4.關系數據模型的存儲結構5.關系數據模型的優(yōu)缺點6.典型的關系數據庫系統

關系模型最重要的一種數據模型。也是目前主要采用的數據模型1970年由美國IBM公司SanJose研究室的研究員E.F.Codd提出本課程的重點1.關系數據模型的數據結構關系模型的基本數據結構關系模型的基本概念實體及實體間的聯系的表示方法關系必須是規(guī)范化的關系數據模型的數據結構(續(xù))關系模型的基本數據結構在用戶觀點下,關系模型中數據的邏輯結構是一張二維表,它由行和列組成。

關系數據模型的數據結構(續(xù))關系模型的基本概念關系(Relation):一個關系對應通常說的一張表。元組(Tuple)表中的一行即為一個元組。屬性(Attribute)表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。關系數據模型的數據結構(續(xù))關系模型的基本概念(續(xù))主碼(Key)表中的某個屬性組,它可以唯一確定一個元組。域(Domain)屬性的取值范圍。分量元組中的一個屬性值。關系數據模型的數據結構(續(xù))關系模型的基本概念(續(xù))關系模式對關系的描述表示方法關系名(屬性1,屬性2,…,屬性n)例如:

學生(學號,姓名,年齡,性別,系,年級)關系數據模型的數據結構(續(xù))實體及實體間的聯系的表示方法實體型:直接用關系(表)表示。屬性:用屬性名表示。一對一聯系:隱含在實體對應的關系中。一對多聯系:隱含在實體對應的關系中。多對多聯系:直接用關系表示。關系數據模型的數據結構(續(xù))例1學生、系、系與學生之間的一對多聯系:學生(學號,姓名,年齡,性別,系號,年級)系(系號,系名,辦公地點)例2系、系主任、系與系主任間的一對一聯系關系數據模型的數據結構(續(xù))例3學生、課程、學生與課程之間的多對多聯系:

學生(學號,姓名,年齡,性別,系號,年級)課程(課程號,課程名,學分)選修(學號,課程號,成績)關系數據模型的數據結構(續(xù))關系必須是規(guī)范化的,即必須滿足一定的規(guī)范條件最基本的規(guī)范條件:關系的每一個分量必須是一個不可分的數據項。

2.關系模型的數據操縱查詢、插入、刪除、更新數據操作是集合操作,操作對象和操作結果都是關系,即若干元組的集合存取路徑對用戶隱蔽,用戶只要指出“干什么”,不必詳細說明“怎么干”3.關系模型的完整性約束實體完整性參照完整性用戶定義的完整性4.關系數據模型的存儲結構表以文件形式存儲有的DBMS一個表對應一個操作系統文件,有的DBMS自己設計文件結構5.關系模型的優(yōu)缺點優(yōu)點建立在嚴格的數學概念的基礎上概念單一。數據結構簡單、清晰,用戶易懂易用實體和各類聯系都用關系來表示。對數據的檢索結果也是關系。關系模型的存取路徑對用戶透明具有更高的數據獨立性,更好的安全保密性簡化了程序員的工作和數據庫開發(fā)建立的工作關系模型的優(yōu)缺點(續(xù))缺點存取路徑對用戶透明導致查詢效率往往不如非關系數據模型為提高性能,必須對用戶的查詢請求進行優(yōu)化增加了開發(fā)數據庫管理系統的難度6.典型的關系數據庫系統ORACLESYBASEDB/2SQLServerINFORMIXCOBASEPBASEEasyBaseKingBase小金靈DM/4OpenBase第1章緒論1.1引言1.2數據模型1.3數據庫系統結構1.4數據庫管理系統1.5數據庫工程與應用1.6小結1.3數據庫系統結構1.3.1數據庫系統的模式結構從數據庫管理系統角度看1.3.2數據庫系統的體系結構從數據庫最終用戶角度看1.3數據庫系統結構1.3.1數據庫系統的模式結構

從數據庫管理系統角度看1.3.2數據庫系統的體系結構從數據庫最終用戶角度看1.3.1數據庫系統的模式結構數據庫系統模式的概念數據庫系統的三級模式結構數據庫的二級映象功能與數據獨立性小結1.3.1數據庫系統的模式結構數據庫系統模式的概念數據庫系統的三級模式結構數據庫的二級映象功能與數據獨立性小結數據庫系統模式的概念“型”和“值”的概念型(Type)對某一類數據的結構和屬性的說明值(Value)是型的一個具體賦值例如:學生記錄記錄型:(學號,姓名,性別,系別,年齡,籍貫)該記錄型的一個記錄值:(900201,李明,男,計算機,22,江蘇)數據庫系統模式的概念(續(xù))模式的概念模式(Schema)數據庫邏輯結構和特征的描述是型的描述反映的是數據的結構及其聯系模式是相對穩(wěn)定的數據庫系統模式的概念(續(xù))模式的概念(續(xù))模式的一個實例(Instance)模式的一個具體值反映數據庫某一時刻的狀態(tài)同一個模式可以有很多實例實例隨數據庫中的數據的更新而變動1.3.1數據庫系統的模式結構數據庫系統模式的概念數據庫系統的三級模式結構數據庫的二級映象功能與數據獨立性小結數據庫系統的三級模式結構數據庫1.模式(Schema)模式(也稱邏輯模式)數據庫中全體數據的邏輯結構和特征的描述所有用戶的公共數據視圖,綜合了所有用戶的需求一個數據庫只有一個模式模式的地位:是數據庫系統模式結構的中間層與數據的物理存儲細節(jié)和硬件環(huán)境無關與具體的應用程序、開發(fā)工具及高級程序設計語言無關模式的定義數據的邏輯結構(數據項的名字、類型、取值范圍等)數據之間的聯系數據有關的安全性、完整性要求2.外模式(ExternalSchema)外模式(也稱子模式或用戶模式)數據庫用戶(包括應用程序員和最終用戶)使用的局部數據的邏輯結構和特征的描述數據庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示外模式(續(xù))外模式的地位:介于模式與應用之間模式與外模式的關系:一對多外模式通常是模式的子集一個數據庫可以有多個外模式。反映了不同的用戶的應用需求、看待數據的方式、對數據保密的要求對模式中同一數據,在外模式中的結構、類型、長度、保密級別等都可以不同外模式與應用的關系:一對多同一外模式也可以為某一用戶的多個應用系統所使用,但一個應用程序只能使用一個外模式。外模式(續(xù))外模式的用途保證數據庫安全性的一個有力措施。每個用戶只能看見和訪問所對應的外模式中的數據保證數據獨立性的一個有力措施。3.內模式(InternalSchema)內模式(也稱存儲模式)是數據物理結構和存儲方式的描述是數據在數據庫內部的表示方式記錄的存儲方式(順序存儲,按照B樹結構存儲,按hash方法存儲)索引的組織方式數據是否壓縮存儲數據是否加密數據存儲記錄結構的規(guī)定一個數據庫只有一個內模式1.3.1數據庫系統的模式結構數據庫系統模式的概念數據庫系統的三級模式結構數據庫的二級映象功能與數據獨立性小結三級模式與二級映象三級模式是對數據的三個抽象級別二級映象在DBMS內部實現這三個抽象層次的聯系和轉換二級映象功能1.外模式/模式映象2.模式/內模式映象1.外模式/模式映象什么是外模式/模式映象定義外模式與模式之間的對應關系每一個外模式都對應一個外模式/模式映象映象定義通常包含在各自外模式的描述中外模式/模式映象(續(xù))外模式/模式映象的用途:保證數據的邏輯獨立性當模式改變時,數據庫管理員修改有關的外模式/模式映象,使外模式保持不變應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。2.模式/內模式映象什么是模式/內模式映象模式/內模式映象定義了數據全局邏輯結構與存儲結構之間的對應關系。例如,說明邏輯記錄和字段在內部是如何表示的數據庫中模式/內模式映象是唯一的該映象定義通常包含在模式描述中模式/內模式映象(續(xù))模式/內模式映象的用途:保證數據的物理獨立性當數據庫的存儲結構改變了(例如選用了另一種存儲結構),數據庫管理員修改模式/內模式映象,使模式保持不變應用程序不受影響。保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。1.3.1數據庫系統的模式結構數據庫系統模式的概念數據庫系統的三級模式結構數據庫的二級映象功能與數據獨立性小結小結數據庫小結(續(xù))模式是數據庫的中心與關鍵獨立于數據庫的其它層次設計數據庫模式結構時應首先確定數據庫的邏輯模式小結(續(xù))內模式依賴于全局邏輯結構,但獨立于數據庫的用戶視圖即外模式,也獨立于具體的存儲設備。它將全局邏輯結構中所定義的數據結構及其聯系按照一定的物理存儲策略進行組織,以達到較好的時間與空間效率。小結(續(xù))外模式面向具體的應用程序,定義在邏輯模式之上,但獨立于存儲模式和存儲設備設計外模式時應充分考慮到應用的擴充性。當應用需求發(fā)生較大變化,相應外模式不能滿足其視圖要求時,該外模式就得做相應改動小結(續(xù))應用程序在外模式描述的數據結構上編制的,它依賴于特定的外模式,與數據庫的模式和存儲結構獨立。不同的應用程序有時可以共用同一個外模式。小結(續(xù))二級映象保證了數據庫外模式的穩(wěn)定性,從而從底層保證了應用程序的穩(wěn)定性,除非應用需求本身發(fā)生變化,否則應用程序一般不需要修改。數據與程序之間的獨立性,使得數據的定義和描述可以從應用程序中分離出去。數據庫特點與數據庫的模式結構1.3數據庫系統結構1.3.1數據庫系統內部的模式結構從數據庫管理系統角度看1.3.2數據庫系統外部的體系結構從數據庫最終用戶角度看1.3.2數據庫系統外部的體系結構單用戶結構主從式結構分布式結構客戶/服務器結構1.單用戶數據庫系統整個數據庫系統(應用程序、DBMS、數據)都裝在一臺計算機上,為一個用戶獨占,不同機器之間不能共享數據。早期的最簡單的數據庫系統2.主從式結構的數據庫系統一個主機帶多個終端的多用戶結構數據庫系統,包括應用程序、DBMS、數據,都集中存放在主機上,所有處理任務都由主機來完成各個用戶通過主機的終端并發(fā)地存取數據庫,共享數據資源。主從式結構的數據庫系統(續(xù))優(yōu)點簡單,數據易于管理與維護。缺點當終端用戶數目增加到一定程度后,主機的任務會過分繁重,成為瓶頸,從而使系統性能大幅度下降。系統的可靠性不高,當主機出現故障時,整個系統都不能使用。3.分布式結構的數據庫系統數據庫中的數據在邏輯上是一個整體,但物理地分布在計算機網絡的不同結點上。網絡中的每個結點都可以獨立處理本地數據庫中的數據,執(zhí)行局部應用同時也可以同時存取和處理多個異地數據庫中的數據,執(zhí)行全局應用分布式結構的數據庫系統(續(xù))優(yōu)點適應了地理上分散的公司、團體和組織對于數據庫應用的需求。缺點數據的分布存放給數據的處理、管理與維護帶來困難。當用戶需要經常訪問遠程數據時,系統效率會明顯地受到網絡交通的制約。4.客戶/服務器結構的數據庫系統把DBMS功能和應用分開網絡中某個(些)結點上的計算機專門用于執(zhí)行DBMS功能,稱為數據庫服務器,簡稱服務器其他結點上的計算機安裝DBMS的外圍應用開發(fā)工具,支持用戶的應用,稱為客戶機客戶/服務器結構的數據庫系統(續(xù))客戶/服務器數據庫系統的種類集中的服務器結構在網絡中僅有一臺數據庫服務器,而客戶機是多臺分布的服務器結構在網絡中有多臺數據庫服務器分布的服務器結構是客戶/服務器與分布式數據庫的結合客戶/服務器結構的數據庫系統(續(xù))優(yōu)點客戶端的用戶請求被傳送到數據庫服務器,數據庫服務器進行處理后,只將結果返回給用戶,從而顯著減少了數據傳輸量數據庫更加開放客戶與服務器一般都能在多種不同的硬件和軟件平臺上運行可以使用不同廠商的數據庫應用開發(fā)工具應用程序具有更強的可移植性,同時也可以減少軟件維護開銷客戶/服務器結構的數據庫系統(續(xù))缺點在集中的服務器結構中,一個數據庫服務器要為眾多的客戶服務,往往容易成為瓶頸,制約系統的性能(與主從式結構相似)在分布的服務器結構中數據分布在不同的服務器給數據的處理、管理與維護帶來困難(與分布式結構相似)第1章緒論1.1引言1.2數據模型1.3數據庫系統結構1.4數據庫管理系統1.5數據庫工程與應用1.6小結1.4數據庫管理系統1.4.1數據庫管理系統的功能與組成1.4.2數據庫管理系統的工作過程1.4.3數據庫管理系統的實現方法1.4數據庫管理系統1.4.1數據庫管理系統的功能與組成1.4.2數據庫管理系統的工作過程1.4.3數據庫管理系統的實現方法1.4.1數據庫管理系統的功能與組成1.數據定義2.數據操縱3.數據庫運行管理4.數據組織、存儲和管理5.數據庫的建立和維護6.數據通信接口1.數據定義定義構成數據庫結構的模式、存儲模式和外模式定義各個外模式與模式之間的映射定義模式與存儲模式之間的映射定義有關的約束條件2.數據操縱檢索插入修改刪除3.數據庫運行管理對數據庫的運行管理是DBMS運行時的核心部分,包括對數據庫進行并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行、數據庫的內部維護等。所有訪問數據庫的操作都要在這些控制程序的統一管理下進行,以保證數據的安全性、完整性、一致性以及多用戶對數據庫的并發(fā)使用。4.數據組織、存儲和管理數據庫中需要存放多種數據,如數據字典、用戶數據、存取路徑等。DBMS負責分門別類地組織、存儲和管理這些數據,確定以何種文件結構和存取方式物理地組織這些數據,如何實現數據之間的聯系,以便提高存儲空間利用率以及提高隨機查找、順序查找、增、刪、改等操作的時間效率。5.數據庫的建立和維護建立數據庫包括數據庫初始數據的輸入與數據轉換等。維護數據庫包括數據庫的轉儲與恢復、數據庫的重組織與重構造、性能的監(jiān)視與分析等。6.數據通信接口DBMS需要提供與其他軟件系統進行通信的功能DBMS組成數據定義的語言及其翻譯處理程序數據操縱語言及其編譯(或解釋)程序數據庫運行控制程序使用程序1.4數據庫管理系統1.4.1數據庫管理系統的功能與組成1.4.2數據庫管理系統的工作過程1.4.3數據庫管理系統的實現方法1.4.2數據庫管理系統的工作過程存取數據庫中數據時,應用程序、DBMS、操作系統、硬件等幾個方面協同工作。這是一個較為復雜的過程,其中DBMS起關鍵作用1.4.2數據庫管理系統的工作過程(續(xù))應用程序(用戶)從數據庫中讀取數據的步驟:應用程序A向DBMS發(fā)出從數據庫讀數據記錄的命令DBMS對該命令進行語法檢查、語義檢查,并調用應用程序A對應的子模式,檢查A的存取權限,決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則向用戶返回錯誤信息在決定執(zhí)行該命令后,DBMS調用模式,依據模式/模式映象的定義,確定應讀入模式中的哪些記錄1.4.2數據庫管理系統的工作過程(續(xù))DBMS調用物理模式,依據模式/物理模式映象的定義,決定應從哪個文件、用什么存取方式、讀入哪個或哪些物理記錄DBMS向操作系統發(fā)出執(zhí)行讀取所需物理記錄的命令操作系統執(zhí)行讀數據的有關操作操作系統將數據從數據庫的存儲區(qū)送至緩沖區(qū)1.4.2數據庫管理系統的工作過程(續(xù))DBMS依據子模式/模式映象的定義,導出應用程序A所要讀取的記錄格式DBMX將數據記錄從系統緩沖區(qū)傳送到應用程序A的用戶工作區(qū)DBMS向應用程序A返回命令執(zhí)行情況的狀態(tài)信息1.4數據庫管理系統1.4.1數據庫管理系統的功能與組成1.4.2數據庫管理系統的工作過程1.4.3數據庫管理系統的實現方法1.4.3數據庫管理系統的實現方法N方案2N方案M+N方案N+1方案一、N方案DBMS與應用程序融合在一起,N個用戶的系統中只有N個進程。DBMS基本成分通常設計成可重入代碼用戶使用DBMS時,調用的DBMS模塊被加入到用戶進程中,借助于操作系統的調度完成對用戶程序的運行系統性能較差N方案(續(xù))AP1DBMSAP2DBMSAP3DBMSU1U2OSSGA文件DB二、2N方案一個DBMS進程對應一個用戶進程,每個用戶進程均有一個影子進程(shadow)的dbms進程為之服務。系統中總進程數接近用戶進程的2倍系統還有若干個后臺進程負責讀寫數據庫、監(jiān)控、寫日志等工作內存需求大,通信開銷大,不適合大量用戶的聯機事務處理應用2N方案(續(xù))AP1AP2AP3DBMSDBMSDBMSU1U2OSSGA文件DB三、M+N方案對2N方案的一種改進,在N個用戶進程中,有M個DBMS進程為之服務(M<N)DBMS進程的分派有專門的分派進程負責與2N方案比,M+N方案減少了系統中的進程數,提高了內存資源的利用率,也減少了通信開銷,但沒有克服2N方案的本質弱點M+N方案(續(xù))AP1AP2AP3服務進程池DBMSDBMSU1U2SGA四、N+1方案整個DBMS僅使用一個進程,多個數據庫用戶可以向其發(fā)消息以申請數據庫服務,這些消息掛在DBMS進程的消息隊列中DBMS進程完成一個用戶進程的請求后,把結果作為消息發(fā)回給相應用戶,然后執(zhí)行下一個請求為了防止在用戶數目較多的情況下DBMS進程成為瓶頸,通常把DBMS進程內部設計成多線索結構,每一條線索都可以服務于一個用戶請求一種較優(yōu)的方案,但實現起來復雜,消息通信機制開銷大N+1方案(續(xù))AP1AP2AP3DBMSU1U2OSDB文件第1章緒論1.1引言1.2數據模型1.3數據庫系統結構1.4數據庫管理系統1.5數據庫工程與應用1.6小結1.5數據庫工程與應用1.5.1數據庫設計的目標與特點1.5.2數據庫設計方法1.5.3數據庫設計步驟1.5.4數據庫應用1.5數據庫工程與應用1.5.1數據庫設計的目標與特點1.5.2數據庫設計方法1.5.3數據庫設計步驟1.5.4數據庫應用1.5.1數據庫設計的目標與特點數據庫設計的任務是在DBMS的支持下,按照應用的要求,為某一部門或組織設計一個結構合理、使用方便、效率較高的數據機器應用系統數據庫設計包含兩方面內容結構(數據)設計,也就是設計數據庫框架或數據庫行為(處理)設計,即設計應用程序、事務處理等1.5數據庫工程與應用1.5.1數據庫設計的目標與特點1.5.2數據庫設計方法1.5.3數據庫設計步驟1.5.4數據庫應用1.5.2數據庫設計方法使用工程化的規(guī)范設計方法核心與關鍵是設計邏輯數據庫設計和物理數據庫設計邏輯數據庫設計是根據用戶要求和特定數據庫管理系統的具體特點,以數據庫設計理論為依據,設計數據庫的全局邏輯結構和每個用戶的局部邏輯結構。物理數據庫設計是在邏輯結構確定之后,設計數據庫的存儲結構及其他實現細節(jié)數據庫設計方法(續(xù))各種設計方法在設計步驟上的劃分上存在差異,各有自己的特點和局限例如新奧爾良方法和S.B.Yao方法有一些為數據庫設計不同階段提供的具體實現技術與實現方法例如基于E-R模型方法、基于3NF(第三范式)方法、基于抽象語法規(guī)范的方法規(guī)范設計法在具體使用中分為兩類手工設計計算機輔助數據庫設計1.5數據庫工程與應用1.5.1數據庫設計的目標與特點1.5.2數據庫設計方法1.5.3數據庫設計步驟1.5.4數據庫應用1.5.3數據庫設計步驟需求分析概念結構設計數據庫運行和維護數據庫實施數據庫物理設計邏輯結構設計需求說明與數據說明概念結構邏輯結構

物理結構數據庫系統1.5數據庫工程與應用1.5.1數據庫設計的目標與特點1.5.2數據庫設計方法1.5.3數據庫設計步驟1.5.4數據庫應用1.5.4數據庫應用在DBMS上可以根據用戶需求開發(fā)一個具體的應用系統,從而形成一個完整的數據庫系統一個數據庫系統一般由三級模式組成,數據庫中由多種用戶,分別扮演不同角色承擔不同任務,見下頁圖數據庫應用(續(xù))數據庫管理員(DBA)負責全面管理和控制數據庫系統,是數據庫系統中最重要的人員設計與定義數據庫系統幫助最終用戶使用數據庫系統監(jiān)督與控制數據庫系統的使用和運行改進和重組數據庫系統,調優(yōu)數據庫系統的性能轉儲與恢復數據庫重構數據庫第1章緒論1.1引言1.2數據模型1.3數據庫系統結構1.4數據庫管理系統1.5數據庫工程與應用1.6小結小結數據庫系統概述數據庫的基本概念數據管理的發(fā)展過程數據庫系統的研究領域數據模型數據模型的三要素概念模型,E-R模型三種主要數據模型小結(續(xù))數據庫系統的結構數據庫系統三級模式結構數據庫系統的體系結構第2章關系數據庫2.1關系數據庫概述2.2關系數據結構2.3關系的完整性2.4關系代數2.5關系演算2.6關系數據庫管理系統2.7小結關系數據庫簡介系統而嚴格地提出關系模型的是美國IBM公司的E.F.Codd1970年提出關系數據模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了關系代數和關系演算的概念1972年提出了關系的第一、第二、第三范式1974年提出了關系的BC范式關系數據庫簡介關系數據庫應用數學方法來處理數據庫中的數據80年代后,關系數據庫系統成為最重要、最流行的數據庫系統關系數據庫簡介典型實驗系統SystemRUniversityINGRES典型商用系統ORACLESYBASEDB2SQLServerINFORMIXINGRES第2章關系數據庫2.1關系數據庫概述2.2關系數據結構2.3關系的完整性2.4關系代數2.5關系演算2.6關系數據庫管理系統2.7小結2.1關系數據庫概述關系數據庫系統是支持關系模型的數據庫系統關系模型的組成關系數據結構關系操作集合關系完整性約束1.關系數據結構單一的數據結構關系現實世界的實體以及實體間的各種聯系均用關系來表示數據的邏輯結構二維表從用戶角度,關系模型中數據的邏輯結構是一張二維表。2.關系操作1)常用的關系操作2)關系操作的特點3)關系數據語言的種類4)關系數據語言的特點關系操作(續(xù))1)常用的關系操作查詢選擇、投影、連接、除、并、交、差數據更新插入、刪除、修改查詢的表達能力是其中最主要的部分關系操作(續(xù))2)關系操作的特點集合操作方式,即操作的對象和結果都是集合。非關系數據模型的數據操作方式:一次一記錄文件系統的數據操作方式關系操作(續(xù))3)關系數據語言的種類關系代數語言用對關系的運算來表達查詢要求典型代表:ISBL關系操作(續(xù))關系數據語言的種類(續(xù))關系演算語言:用謂詞來表達查詢要求元組關系演算語言謂詞變元的基本對象是元組變量典型代表:APLHA,QUEL域關系演算語言謂詞變元的基本對象是域變量典型代表:QBE具有關系代數和關系演算雙重特點的語言典型代表:SQL關系操作(續(xù))4)關系數據語言的特點關系語言是一種高度非過程化的語言存取路徑的選擇由DBMS的優(yōu)化機制來完成用戶不必用循環(huán)結構就可以完成數據操作能夠嵌入高級語言中使用關系代數、元組關系演算和域關系演算三種語言在表達能力上完全等價3.關系的三類完整性約束實體完整性通常由關系系統自動支持參照完整性早期系統不支持,目前大型系統能自動支持用戶定義的完整性反映應用領域需要遵循的約束條件,體現了具體領域中的語義約束用戶定義后由系統支持第2章關系數據庫2.1關系數據庫概述2.2關系數據結構2.3關系的完整性2.4關系代數2.5關系演算2.6關系數據庫管理系統2.7小結2.2關系數據結構關系模型建立在集合代數的基礎上關系數據結構的基本概念關系關系模式關系數據庫2.2關系數據結構1.關系2.關系模式3.關系數據庫一、關系⒈域(Domain)

2.笛卡爾積(CartesianProduct)

3.關系(Relation)⒈域(Domain)域是一組具有相同數據類型的值的集合。例整數實數指定長度的字符串集合介于某個取值范圍的整數{‘男’,‘女’}介于某個取值范圍的日期2.笛卡爾積(CartesianProduct)1)笛卡爾積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:

D1×D2×…×Dn=

{(d1,d2,…,dn)|di

Di,i=1,2,…,n}

所有域的所有取值的一個組合不能重復笛卡爾積(續(xù))例給出三個域:

D1=SUPERVISOR={張清玫,劉逸}

D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為:D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),

(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),

(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),

(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),

(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),

(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}笛卡爾積(續(xù))2)元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。例3)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。例笛卡爾積(續(xù))4)基數(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數為mi(i=1,2,…,n),則D1×D2×…×Dn的基數M為:在上例中,基數:2×2×3=12,即D1×D2×D3共有2×2×3=12個元組笛卡爾積(續(xù))5)笛卡爾積的表示方法笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。在上例中,12個元組可列成一張二維表

笛卡爾積(續(xù))3.關系(Relation)1)關系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,表示為

R(D1,D2,…,Dn)

R:關系名

n:關系的目或度(Degree)關系(續(xù))1)關系(續(xù))注意關系是笛卡爾積的有限子集。無限關系在數據庫系統中是無意義的。由于笛卡爾積不滿足交換律,即

(d1,d2,…,dn)≠(d2,d1,…,dn)

但關系滿足交換律,即(d1,d2,…,di

,dj

,…,dn)=(d1,d2,…,dj

,di,…,dn)(i,j=1,2,…,n)解決方法:為關系的每個列附加一個屬性名以取消關系元組的有序性關系(續(xù))例在表2.1的笛卡爾積中取出有實際意義的元組來構造關系關系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)關系名,屬性名假設:導師與專業(yè):1:1,導師與研究生:1:n于是:SAP關系可以包含三個元組{(張清玫,信息專業(yè),李勇),

(張清玫,信息專業(yè),劉晨),

(劉逸,信息專業(yè),王敏)}

關系(續(xù))2)元組關系中的每個元素是關系中的元組,通常用t表示。3)單元關系與二元關系當n=1時,稱該關系為單元關系(Unaryrelation)。當n=2時,稱該關系為二元關系(Binaryrelation)。關系(續(xù))4)關系的表示關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。關系(續(xù))5)屬性關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute)。n目關系必有n個屬性。關系(續(xù))6)碼候選碼若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼(Candidatekey)。候選碼的諸屬性稱為主屬性(Primeattribute)。不包含在任何侯選碼中的屬性稱為非碼屬性(Non-keyattribute)。在最簡單的情況下,候選碼只包含一個屬性。在最極端的情況下,關系模式的所有屬性組是這個關系模式的候選碼,稱為全碼(All-key)。關系(續(xù))碼(續(xù))主碼若一個關系有多個候選碼,則選定其中一個為主碼(Primarykey)。關系(續(xù))7)三類關系基本關系(基本表或基表)實際存在的表,是實際存儲數據的邏輯表示查詢表查詢結果對應的表視圖表由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據關系(續(xù))8)基本關系的性質①列是同質的(Homogeneous)每一列中的分量是同一類型的數據,來自同一個域。②不同的列可出自同一個域其中的每一列稱為一個屬性不同的屬性要給予不同的屬性名關系(續(xù))例:上例中也可以只給出兩個域:人(PERSON)=張清玫,劉逸,李勇,劉晨,王敏專業(yè)(SPECIALITY)=計算機專業(yè),信息專業(yè)SAP關系的導師屬性和研究生屬性都從PERSON域中取值。為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能直接使用域名。例如定義導師屬性名為SUPERVISOR-PERSON(或SUPERVISOR)研究生屬性名為POSTGRADUATE-PERSON(或POSTGRADUATE)SAP(SUPERVISOR-PERSON,SPECIALITY,POSTGRADUATE-PERSON)關系(續(xù))基本關系的性質(續(xù))③列的順序無所謂列的次序可以任意交換遵循這一性質的數據庫產品(如ORACLE),增加新屬性時,永遠是插至最后一列但也有許多關系數據庫產品沒有遵循這一性質,例如FoxPro仍然區(qū)分了屬性順序關系(續(xù))基本關系的性質(續(xù))④任意兩個元組不能完全相同由笛卡爾積的性質決定但許多關系數據庫產品沒有遵循這一性質。例如Oracle,FoxPro等都允許關系表中存在兩個完全相同的元組,除非用戶特別定義了相應的約束條件。關系(續(xù))基本關系的性質(續(xù))⑤行的順序無所謂行的次序可以任意交換遵循這一性質的數據庫產品(如ORACLE),插入一個元組時永遠插至最后一行但也有許多關系數據庫產品沒有遵循這一性質,例如FoxPro仍然區(qū)分了元組的順序關系(續(xù))基本關系的性質(續(xù))⑥分量必須取原子值每一個分量都必須是不可分的數據項。這是規(guī)范條件中最基本的一條二、關系模式1.什么是關系模式2.定義關系模式3.關系模式與關系1.什么是關系模式關系模式(RelationSchema)是型,關系是值關系模式是對關系的描述元組集合的結構屬性構成屬性來自的域屬性與域之間的映象關系元組語義完整性約束條件屬性間的數據依賴關系集合2.定義關系模式關系模式可以形式化地表示為:

R(U,D,dom,F)

R關系名

U

組成該關系的屬性名集合

D

屬性組U中屬性所來自的域

dom

屬性向域的映象集合

F

屬性間的數據依賴關系集合。定義關系模式(續(xù))例在上面例子中,由于導師和研究生出自同一個域——人,所以要取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個域,如:

dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON定義關系模式(續(xù))關系模式通??梢院営洖?/p>

R(U)

或R(A1,A2,…,An)R關系名A1,A2,…,An屬性名注:域名及屬性向域的映象常常直接說明為屬性的類型、長度。3.關系模式與關系關系模式對關系的描述靜態(tài)的、穩(wěn)定的關系關系模式在某一時刻的狀態(tài)或內容動態(tài)的、隨時間不斷變化的關系模式和關系往往統稱為關系,通過上下文加以區(qū)別。三、關系數據庫1.關系數據庫2.關系數據庫的型與值1.關系數據庫在一個給定的應用領域中,所有實體及實體之間聯系的關系的集合構成一個關系數據庫。2.關系數據庫的型與值關系數據庫也有型和值之分關系數據庫的型稱為關系數據庫模式,是對關系數據庫的描述若干域的定義在這些域上定義的若干關系模式關系數據庫的值是這些關系模式在

溫馨提示

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

評論

0/150

提交評論