




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章數(shù)據(jù)庫系統(tǒng)緒論主要內容1.1數(shù)據(jù)庫的基本概念1.2數(shù)據(jù)管理技術的發(fā)展階段1.3數(shù)據(jù)庫系統(tǒng)結構1.4數(shù)據(jù)模型1.5本章小結
第1章數(shù)據(jù)庫系統(tǒng)緒論1.1數(shù)據(jù)庫的基本概念
1.1數(shù)據(jù)庫的基本概念1.1.1信息、數(shù)據(jù)和數(shù)據(jù)處理信息是對現(xiàn)實世界中存在的客觀實體、現(xiàn)象和關系進行描述的具有特定意義的數(shù)據(jù),是經(jīng)過加工處理的數(shù)據(jù)。信息和數(shù)據(jù)是兩個關系緊密的概念。從廣義上講,數(shù)據(jù)實際上就是描述客觀事物的符號記錄,例如:記錄(張三,女,1996,遼寧)就是數(shù)據(jù)。文字、圖形、圖像、聲音等都是數(shù)據(jù)。從狹義上講,能夠進入計算機并且能由計算機進行處理的信息就是數(shù)據(jù)。盡管數(shù)據(jù)與信息在概念上不盡相同,但在使用上人們并不需要嚴格去區(qū)分它們。數(shù)據(jù)的示例:5所謂數(shù)據(jù)處理,就是從已有數(shù)據(jù)出發(fā),經(jīng)過適當加工處理得到新的所需要的數(shù)據(jù)。數(shù)據(jù)加工處理一般分為數(shù)據(jù)計算和數(shù)據(jù)管理兩部分。數(shù)據(jù)計算相對簡單,而數(shù)據(jù)管理卻比較復雜。在實踐應用中,人們逐步認識到對數(shù)據(jù)的有效處理離不開對數(shù)據(jù)進行結構化的管理,數(shù)據(jù)管理是數(shù)據(jù)處理過程的主要內容與核心部分,數(shù)據(jù)處理在本質上可以看作是數(shù)據(jù)管理。數(shù)據(jù)管理主要是指數(shù)據(jù)收集、整理、組織、存儲、維護、檢索和傳送等相應操作,這些操作都是數(shù)據(jù)處理業(yè)務中重要和必不可少的基本環(huán)節(jié)。1.1數(shù)據(jù)庫的基本概念1.1.2數(shù)據(jù)庫“數(shù)據(jù)庫”這一術語有很多種解釋。從字面上來看,就是存放數(shù)據(jù)的倉庫。從本質上講,數(shù)據(jù)庫(DataBase,簡稱DB)是一個長期存儲在計算機內、有組織的和可共享的大量數(shù)據(jù)集合。數(shù)據(jù)庫本身可以看作是一個具有高度數(shù)據(jù)集成性質的電子文件柜,它是基于計算機系統(tǒng)的持久性數(shù)據(jù)的“倉庫”或者“容器”。1.1數(shù)據(jù)庫的基本概念8
當今世界,數(shù)據(jù)庫非常廣泛的應用在生產(chǎn)生活的方方面面。
1.1.3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是位于用戶應用程序與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。DBMS是數(shù)據(jù)庫管理的中樞機構,是數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)共享、并發(fā)訪問和數(shù)據(jù)獨立性的根本保證。對數(shù)據(jù)庫的所有管理包括定義、查詢、更新和各種運行都需要通過DBMS實現(xiàn)。DBMS通過提供相應的數(shù)據(jù)子語言(DataSublanguage)來實現(xiàn)上述重要功能。1.1數(shù)據(jù)庫的基本概念1.DBMS中的數(shù)據(jù)子語言DBMS提供的數(shù)據(jù)子語言可以分為三類。(1)數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL):負責數(shù)據(jù)的模式定
義與數(shù)據(jù)的物理存取構建。(2)數(shù)據(jù)操作語言(DataManipulationLanguage,簡稱DML):負責數(shù)據(jù)的操
縱處理,例如查詢、增加、刪除和修改等。(3)數(shù)據(jù)控制語言(DataControlLanguage,簡稱DCL):負責數(shù)據(jù)完整性和安
全性的定義與檢查,同時完成并發(fā)控制和恢復等職能。以上語言都是非過程性語言,它們具有兩種表現(xiàn)形式。(1)交互型命令語言:這種方式語言結構簡單,可以在終端上實時操作,
又稱為自主型語言。(2)宿主型語言:應用這種方式,一般是將其嵌入在某些宿主語言(HostLanguage)
當中,如FORTRON、C、C++等高級過程性語言中。領先的著名數(shù)據(jù)庫管理系統(tǒng)DBMS有Oracle、IBMDB2、MicrosoftSQLServer等。112.DBMS的基本功能DBMS主要實現(xiàn)對數(shù)據(jù)的有效組織、管理和存取。(1)數(shù)據(jù)定義功能。DBMS提供數(shù)據(jù)定義(DDL)語言,來定義數(shù)據(jù)庫結構,
它們是刻畫數(shù)據(jù)庫框架,并被保存在數(shù)據(jù)字典中。(2)數(shù)據(jù)存取功能。DBMS提供數(shù)據(jù)操縱語言(DML),實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的
基本存取操作:檢索,插入,修改和刪除。(3)數(shù)據(jù)庫運行管理功能。DBMS提供數(shù)據(jù)控制功能,通過保證數(shù)據(jù)的安全性、
完整性和并發(fā)控制等,實現(xiàn)對數(shù)據(jù)庫的有效控制和管理,以確保數(shù)據(jù)正確有效(4)數(shù)據(jù)庫的建立和維護功能。包括數(shù)據(jù)庫初始數(shù)據(jù)的裝入,數(shù)據(jù)庫的轉儲、
恢復、重組織,系統(tǒng)性能監(jiān)視、分析等功能。(5)數(shù)據(jù)庫的傳輸。DBMS提供處理數(shù)據(jù)的傳輸,實現(xiàn)用戶程序與DBMS之間的
通信,通常與操作系統(tǒng)協(xié)調完成。1.1數(shù)據(jù)庫的基本概念1.1.4數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡稱DBS)是指引入數(shù)據(jù)庫技術后的整個計算機系統(tǒng),能夠實現(xiàn)有組織地、動態(tài)地存儲大量相關數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的核心系統(tǒng)。
數(shù)據(jù)庫系統(tǒng)是具有數(shù)據(jù)庫管理功能的計算機系統(tǒng)。作為一個系統(tǒng),DBS實際上是一個在計算機上可運行的、為應用系統(tǒng)提供數(shù)據(jù)并進行數(shù)據(jù)存儲、維護和管理的系統(tǒng),是存儲介質、處理對象和管理系統(tǒng)的集合體。這里所說的“集合體”主要包括3個部分:計算機系統(tǒng)(軟件、硬件和人)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)。即DBS?=?計算機系統(tǒng)?+?DB?+?DBMS1.2數(shù)據(jù)庫管理技術的發(fā)展階段
第1章數(shù)據(jù)庫系統(tǒng)緒論1.2數(shù)據(jù)管理技術的發(fā)展階段從數(shù)據(jù)處理角度來看,基于計算機的數(shù)據(jù)管理技術經(jīng)歷了“人工管理”、“文件管理”和“數(shù)據(jù)庫管理”三個階段。1.2.1人工管理階段1.人工管理數(shù)據(jù)的特點2.人工管理數(shù)據(jù)的優(yōu)勢與缺陷從數(shù)據(jù)處理角度來看,基于計算機的數(shù)據(jù)管理技術經(jīng)歷了“人工管理”、“文件管理”和“數(shù)據(jù)庫管理”三個階段。1.2.2文件系統(tǒng)管理階段1.文件系統(tǒng)管理技術基本特征2.文件系統(tǒng)的缺陷1.2數(shù)據(jù)管理技術的發(fā)展階段從數(shù)據(jù)處理角度來看,基于計算機的數(shù)據(jù)管理技術經(jīng)歷了“人工管理”、“文件管理”和“數(shù)據(jù)庫管理”三個階段。1.2.3數(shù)據(jù)庫管理階段1.數(shù)據(jù)高度結構化2.數(shù)據(jù)共享性高,冗余度降低3.高度的數(shù)據(jù)獨立性
4.具有專門的管理系統(tǒng)1.2數(shù)據(jù)管理技術的發(fā)展階段1.3數(shù)據(jù)庫系統(tǒng)結構
第1章數(shù)據(jù)庫系統(tǒng)緒論1.3數(shù)據(jù)庫系統(tǒng)結構1.3.1數(shù)據(jù)庫系統(tǒng)內部的體系結構在數(shù)據(jù)模型中有“型”和“值”的概念。型是指對某一數(shù)據(jù)的結構和屬性的說明,值是型的一個具體值。例如,學生(學號,姓名,性別,年齡,系別)是型,而(10172001,陳一,男,17,計算機系)是值。模式是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結構和特征的描述,它只涉及型的描述,不涉及具體的值。模式是相對穩(wěn)定的,而值是不斷更新的。從數(shù)據(jù)庫管理系統(tǒng)的角度看絕大多數(shù)數(shù)據(jù)庫系統(tǒng)都采用三級模式結構,并提供兩級映像功能。這是數(shù)據(jù)庫系統(tǒng)內部的體系結構。1.3數(shù)據(jù)庫系統(tǒng)結構1.三級模式結構數(shù)據(jù)庫系統(tǒng)的三級模式是由外模式、模式和內模式構成。(1)內模式(InternalSchema),也稱存儲模式①內模式是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)的內部表示,即對數(shù)據(jù)的物理結構/存儲方式的描述,是低級描述,一般由DBMS提供的語言或工具完成。②通常我們不關心內模式的具體技術實現(xiàn),而是從一般組織的觀點(即概念模式)或用戶的觀點(外模式)來討論數(shù)據(jù)庫的描述。但我們必須意識到基本的內模式和存儲數(shù)據(jù)庫的存在。③一個數(shù)據(jù)庫只有一個內模式。1.3數(shù)據(jù)庫系統(tǒng)結構(2)模式(Schema),也稱邏輯模式①模式是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結構和特性的描述,是所有用戶的公共數(shù)據(jù)視圖。②DBMS提供數(shù)據(jù)定義語言DDL來描述邏輯模式,嚴格定義數(shù)據(jù)的名稱、特征、相互關系、約束等。③一個數(shù)據(jù)庫只有一個模式。1.3數(shù)據(jù)庫系統(tǒng)結構(3)外模式(ExternalSchema),也稱用戶模式①外模式是模式的子集或變形,是與某一應用有關的數(shù)據(jù)的邏輯表示。②不同用戶需求不同,看待數(shù)據(jù)的方式也可以不同,對數(shù)據(jù)保密的要求也可以不同,使用的程序設計語言也可以不同,因此不同用戶的外模式的描述可以是不同的。③一個數(shù)據(jù)庫有多個外模式。1.3數(shù)據(jù)庫系統(tǒng)結構2.兩級映像功能(1)外模式/模式映像模式描述的是數(shù)據(jù)的全局邏輯結構,外模式描述的是數(shù)據(jù)的局部邏輯結構。對應于同一個模式可以有任意多個外模式。對于每一個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式/模式映像,它定義了該外模式與模式之間的對應關系。(2)模式/內模式映像內模式描述的是數(shù)據(jù)的物理結構和存儲方式,數(shù)據(jù)庫中只有一個模式,也只有一個內模式,所以模式/內模式映像是唯一的,它定義了數(shù)據(jù)全局邏輯結構與存儲結構之間的對應關系。1.3數(shù)據(jù)庫系統(tǒng)結構3.數(shù)據(jù)獨立性數(shù)據(jù)獨立性指應用程序和數(shù)據(jù)之間相互獨立,不受影響。數(shù)據(jù)獨立性分為邏輯獨立性和物理獨立性兩級。(1)邏輯獨立性邏輯獨立性是通過外模式/模式映像來實現(xiàn)的。外模式/模式映像定義了數(shù)據(jù)的全局邏輯結構和局部邏輯結構之間的對應關系。(2)物理獨立性物理獨立性是通過模式/內模式映像來實現(xiàn)的。模式/內模式映像定義了數(shù)據(jù)的全局邏輯結構和數(shù)據(jù)的存儲結構之間的對應關系。1.3數(shù)據(jù)庫系統(tǒng)結構1.3.2數(shù)據(jù)庫系統(tǒng)外部的體系結構1.單用戶結構的數(shù)據(jù)庫系統(tǒng)2.多用戶結構的數(shù)據(jù)庫系統(tǒng)3.分布式結構的數(shù)據(jù)庫系統(tǒng)4.客戶/服務器結構的數(shù)據(jù)庫系統(tǒng)5.瀏覽器/服務器結構的數(shù)據(jù)庫系統(tǒng)1.3數(shù)據(jù)庫系統(tǒng)結構1.4數(shù)據(jù)模型
第1章數(shù)據(jù)庫系統(tǒng)緒論1.4數(shù)據(jù)模型1.4.1數(shù)據(jù)模型的概念模型(Model)是現(xiàn)實世界特征的模擬和抽象。例如,火車模型是對生活中火車的一種模擬和抽象,它可以模擬火車的啟動、加速、減速和停車,它抽象了火車的基本特征——車頭、車身、車尾。數(shù)據(jù)模型(DataModel)也是一種模型,用來描述數(shù)據(jù)、組織數(shù)據(jù)和對數(shù)據(jù)進行操作。1.4數(shù)據(jù)模型1.4.2數(shù)據(jù)模型三要素
數(shù)據(jù)模型通常由數(shù)據(jù)結構、數(shù)據(jù)操作和數(shù)據(jù)的完整性約束三部分組成。1.數(shù)據(jù)結構數(shù)據(jù)結構用于描述系統(tǒng)的靜態(tài)特征,是描述數(shù)據(jù)庫的組成對象以及對象之間的聯(lián)系。2.數(shù)據(jù)操作數(shù)據(jù)操作用于描述系統(tǒng)的動態(tài)特性,是指對數(shù)據(jù)庫中各種對象所允許執(zhí)行的操作的集合,包括操作及有關的操作規(guī)則。3.數(shù)據(jù)的完整性約束數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。1.4數(shù)據(jù)模型1.4.3概念模型1.基本概念(1)實體(Entity)
客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、
事、物,也可以是抽象的概念或聯(lián)系,例如,一個學生、一門
課程、一次選課、一個部門、一個職工、公司與員工的雇傭關系
等都是實體。(2)實體集(EntitySet)同型實體的集合稱為實體集。例如,全體學生就是一個實體集。1.4數(shù)據(jù)模型1.4.3概念模型1.基本概念(3)實體型(EntityType)
具有相同屬性的實體必然具有共同的特征和性質。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型
例如,學生(學號,姓名,性別,年齡,系別)就是一個實體型。1.4數(shù)據(jù)模型1.4數(shù)據(jù)模型1.4.3概念模型(4)屬性(Attribute)
實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。
例如,學生實體可以由學號、姓名、性別、年齡、院系等屬性組成,(10172001,陳一,男,17,計算機系)這些屬性組合起來表示了一個學生。(5)域(Domain)
屬性的取值范圍稱為該屬性的域。例如,姓名的域為字符串,年齡的域為小于35的整數(shù),性別的域為(男,女)。1.4數(shù)據(jù)模型1.4.3概念模型(6)碼(Key)唯一標識實體的屬性集稱為碼。例如,學號是學生實體的碼(學號可以唯一標識一個學生實體)、學號與課程號的組合是選修實體的碼(學號與課程號的組合可以唯一標識一個學生與一門課程的一次選修關系)。1.4數(shù)據(jù)模型1.4.3概念模型(7)聯(lián)系(Relationship)
在現(xiàn)實世界中,事物內部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實體內部的聯(lián)系和實體之間的聯(lián)系。實體內部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系。實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。1.4數(shù)據(jù)模型兩個實體集之間的聯(lián)系可以分為三類:①一對一聯(lián)系(1:1)②一對多聯(lián)系(1:n)③多對多聯(lián)系(m:n)38①一對一聯(lián)系(1:1)如果對于實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系,記為1:1。例如,一個班級只有一個班長,而一個班長只屬于一個班級,則班級與班長之間具有一對一聯(lián)系。1.4數(shù)據(jù)模型39②一對多聯(lián)系(1:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B具有一對多聯(lián)系,記為1:n。例如,一座城市擁有多條街道,而每條街道只能屬于一座城市,則城市與街道之間具有一對多聯(lián)系。1.4數(shù)據(jù)模型40③多對多聯(lián)系(m:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體集B具有多對多聯(lián)系,記為m:n。例如,一個學生可以選修多門課程,而每門課程可以被多個學生所選修,則學生與課程之間具有多對多聯(lián)系。1.4數(shù)據(jù)模型1.4數(shù)據(jù)模型1.4.3概念模型2.概念模型的E-R圖表示E-R模型是由P.P.S.Chen(美籍華人陳平山)于1967年提出的實體—聯(lián)系方法(Entity-RelationshipApproach)。由于它簡單易學,因而在數(shù)據(jù)庫系統(tǒng)應用的設計中,得到了廣泛應用。該方法主要用E-R圖(E-RDiagram)來描述現(xiàn)實世界的概念模型。E-R圖提供了表示實體、屬性和聯(lián)系的方法。1.4數(shù)據(jù)模型1.4.3概念模型2.概念模型的E-R圖表示(1)實體:用矩形表示,矩形框內寫明實體名。例如,學生實體和教師實體,用E-R圖表示如圖1.8所示。
圖1.8學生實體及教師實體1.4數(shù)據(jù)模型(2)屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來。例如,學生實體具有學號、姓名、年齡、性別、院系等屬性,
用E-R圖表示如圖1.9所示。
圖1.9學生實體及屬性1.4數(shù)據(jù)模型(3)聯(lián)系:用菱形表示,菱形框內寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1,
1:n,m:n)。三種基本聯(lián)系,用E-R圖表示如圖1.10所示。
圖1.10三種基本聯(lián)系1.4數(shù)據(jù)模型(4)直線:用無向邊表示。需要注意的是,如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來。建立E-R圖的步驟總結如下:①首先確定實體類型②然后確定聯(lián)系類型③再把實體類型和聯(lián)系類型組合成E-R圖④接著確定實體類型和聯(lián)系類型的屬性⑤最后確定實體類型的碼,并在屬性名下畫一條橫線1.4數(shù)據(jù)模型例題1.1
假設學校管理規(guī)定:一個學生可以選修多門課程,一門課程可以有若干學生選修;一個教師可以講授多門課程,一門課程只有一個教師講授;一個學生選修一門課程,只有一個成績。學生的屬性有學號、學生姓名;教師的屬性有教師編號、教師姓名;課程的屬性有課程號、課程名。根據(jù)上述語義畫出E-R圖,要求在圖中畫出實體的屬性、聯(lián)系的類型以及實體的碼。1.4數(shù)據(jù)模型學生選課系統(tǒng)E-R圖1.4數(shù)據(jù)模型例題1.2
某個企業(yè)集團有若干工廠,每個工廠生產(chǎn)多種產(chǎn)品,且每個產(chǎn)品可以在多個工廠生產(chǎn),每個工廠按照固定的計劃數(shù)量生產(chǎn)產(chǎn)品;每個工廠聘用多名職工,且每個職工只能在一個工廠工作,工廠聘用職工有聘用期和工資。工廠的屬性有工廠編號、廠名、地址,產(chǎn)品的屬性有產(chǎn)品編號、產(chǎn)品名、規(guī)格,職工的屬性有職工號、姓名。根據(jù)上述語義畫出E-R圖。在E-R圖中需注明實體的屬性、聯(lián)系的類型以及實體的碼。1.4數(shù)據(jù)模型工廠管理系統(tǒng)E-R圖1.4數(shù)據(jù)模型1.4.4常用的數(shù)據(jù)模型1.層次模型
層次模型用樹形結構來表示各類實體以及實體間的聯(lián)系。層次模型必須滿足以下三個條件。(1)有且只有一個結點沒有雙親結點,這個結點稱為根結點;(2)根以外的其他結點有且只有一個雙親結點;(3)上一層結點和下一層結點間聯(lián)系是1:n聯(lián)系。1.4數(shù)據(jù)模型層次模型的例子1.4數(shù)據(jù)模型1.4.4常用的數(shù)據(jù)模型2.網(wǎng)狀模型
網(wǎng)狀模型是用有向圖表示實體及實體間聯(lián)系的數(shù)據(jù)模型。網(wǎng)狀模型必須滿足以下三個條件。(1)有向圖中的有向邊表示從箭尾一端的結點到箭頭一端的結點間的1:n類型。將箭尾一端稱為雙親結點,箭頭一端稱為子女結點;(2)允許一個以上的結點無雙親結點;(3)一個結點可以有多于一個的雙親結點,也可以有多于一個的子女結點。1.4數(shù)據(jù)模型網(wǎng)狀模型的例子1.4數(shù)據(jù)模型1.4.4常用的數(shù)據(jù)模型3.關系模型關系模型是目前最重要的一種數(shù)據(jù)模型。關系數(shù)據(jù)庫系統(tǒng)采用關系模型作為數(shù)據(jù)的組織方式。1970年美國IBM公司SanJose研究室的研究員E.F.Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關系模型,開創(chuàng)了數(shù)據(jù)庫關系方法和關系數(shù)據(jù)理論的研究,為數(shù)據(jù)庫技術奠定了理論基礎。由于E.F.Codd的杰出工作,他于1981年獲得ACM圖靈獎。1.4數(shù)據(jù)模型(1)關系模型的數(shù)據(jù)結構關系模型與以往的模型不同,關系模型主要是用二維表格結構表
達實體及實體間聯(lián)系的數(shù)據(jù)模型,在用戶看來,關系模型中數(shù)據(jù)
的邏輯結構(即數(shù)據(jù)結構)就是一張二維表,它由行和列組成。如表1.1所示(2)關系模型的基本術語
①關系(Relation):一個關系對應一張表,如學生表。②元組(Tuple):表中的一行即為一個元組。③屬性(Attribute):表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。如學生表對應五個屬性:學號,姓名,年齡,性別和院系。④主碼(Key):表中的某個屬性組,它可以唯一確定一個元組,學生表中的學號,可以唯一確定一個學生,也就成為本關系的主碼(或主鍵)。1.4數(shù)據(jù)模型1.4數(shù)據(jù)模型⑤域(Domain):
屬性的取值范圍,如大學生年齡屬性的域是(14~35),性別的域是(男,女),院系的域是一個學校所有院系的集合。⑥分量:元組中的一個屬性值。⑦關系模式:對關系的描述,一般表示為:
關系名(屬性1,屬性2,…,屬性n)在關系模型中,實體以及實體間的聯(lián)系都是用關系(即二維表)來表示。
例如學生、課程、學生與課程之間的多對多聯(lián)系在關系模型中可以有如下表示:學生(學號,姓名,年齡,性別,院系)課程(課程號,課程名,學分)選修(學號,課程號,成績)1.4數(shù)據(jù)模型(3)關系數(shù)據(jù)模型的優(yōu)缺點關系數(shù)據(jù)模型的優(yōu)點是關系模型與非關系模型不同,它是建立在嚴格的數(shù)學概念的基礎上的;關系模型的概念單一,無論實體還是實體之間的聯(lián)系都用關系(即二維表)表示,對數(shù)據(jù)的檢索結果也是關系(即二維表),所以其數(shù)據(jù)結構簡單、清晰,用戶易懂易用;關系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。當然,關系數(shù)據(jù)模型也有缺點,其中最主要的缺點是,由于存取路徑對用戶透明,查詢效率往往不如非關系數(shù)據(jù)模型。因此為了提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度。
第1章數(shù)據(jù)庫系統(tǒng)緒論1.5本章小結1.5本章小結本章首先介紹了數(shù)據(jù)庫的基本概念,包括信息、數(shù)據(jù)、數(shù)據(jù)處理、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的定義。簡述了數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)之間的關系。通過對數(shù)據(jù)管理技術發(fā)展歷程的回顧,闡述了發(fā)展到數(shù)據(jù)庫系統(tǒng)階段的必然性。
其次介紹了數(shù)據(jù)庫系統(tǒng)的結構。從DBMS角度看,數(shù)據(jù)庫系統(tǒng)具有三級模式和兩級映像結構。從數(shù)據(jù)庫最終用戶的角度看,數(shù)據(jù)庫系統(tǒng)的結構分為單用戶結構、多用戶結構、分布式結構、客戶/服務器結構、瀏覽器/服務器結構等,這是數(shù)據(jù)庫系統(tǒng)的外部體系結構。1.5本章小結最后介紹了數(shù)據(jù)模型,數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎。數(shù)據(jù)模型是對現(xiàn)實世界進行抽象的工具,主要包括概念模型、邏輯模型和物理模型。組成數(shù)據(jù)模型的三個要素是數(shù)據(jù)結構、數(shù)據(jù)操作和完整性約束。概念模型也稱信息模型,用于信息世界的建模,E-R模型是這類模型的典型代表,E-R方法簡單、清晰,應用廣泛。常用的邏輯數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關系模型、面向對象模型、對象關系模型等。由于層次數(shù)據(jù)庫和網(wǎng)狀數(shù)據(jù)庫已經(jīng)逐漸被關系數(shù)據(jù)庫代替,所以本書只在本章簡單介紹了層次模型和網(wǎng)狀模型的數(shù)據(jù)結構。目前,關系數(shù)據(jù)庫已經(jīng)成為當代數(shù)據(jù)庫技術的主流,關系模型在這里也只是簡單介紹,在后續(xù)章節(jié)中將詳細介紹關系模型。第2章關系運算理論主要內容2.1關系數(shù)據(jù)結構2.2關系數(shù)據(jù)操作2.3關系的完整性2.4傳統(tǒng)的集合運算2.5專門的關系運算2.6綜合實例2.7本章小結2.1關系數(shù)據(jù)結構第2章關系運算理論2.1關系數(shù)據(jù)結構2.1.1關系的定義1.域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例如:整數(shù)、實數(shù)、介于某個取值范圍的日期。2.笛卡兒積(CartesianProduct)給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…,dn)|di
Di,i=1,2,…,n}652.1關系數(shù)據(jù)結構(1)元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。(2)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。(3)基數(shù)(CardinalNumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:
(即為元組的個數(shù))。(4)笛卡爾積的表示方法笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。662.1關系數(shù)據(jù)結構例如,給出3個域:D1:院系集合DEPARTMENT={計算機系,日語系}D2:班級集合CLASS={1班,2班}D3:學生集合STUDENT={張三,李四,王五}其中(計算機系,1班,張三)、(計算機系,2班,李四)等都是元組,計算機系、1班、2班、張三、李四等都是分量。該笛卡爾積的基數(shù)為2×2×3=12。即D1×D2×D3共有12個元組。這12個元組可列成一張二維表,如表2.1所示。67682.1關系數(shù)據(jù)結構3.關系(Relation)
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,
表示為:R(D1,D2,…,Dn);
R為關系名,n為關系的目或度(Degree)。(1)元組
關系中的每個元素是關系中的元組,通常用t表示。(2)單元關系與二元關系
當n=1時,稱該關系為單元關系(Unaryrelation)。
當n=2時,稱該關系為二元關系(Binaryrelation)。692.1關系數(shù)據(jù)結構(3)關系的表示關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。如表2.2所示。其中表2.2是在表2.1的笛卡爾積中取出有意義的元組,形成的一個子集。(4)屬性關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每一個列起一個名字,稱為屬性(Attribute)。702.1關系數(shù)據(jù)結構(5)碼①候選碼(Candidatekey)若關系中的某一屬性組的值能唯一地標識一個元組,而其任何真子集都不能再標識一個元組,則稱該屬性組為候選碼,在最簡單的情況下,候選碼只包含一個屬性。例如,存在一個學生關系,包括學號、姓名、年齡、身份證號四個屬性,其中學號可以唯一地標識一個學生元組,身份證號也可以唯一地標識一個學生元組,所以學號和身份證號可以作為學生關系的候選碼。712.1關系數(shù)據(jù)結構②全碼(All-key)在最極端的情況下,關系的所有屬性組是這個關系的候選碼,稱為全碼(All-key)。例如,存在一個音樂會關系,包括演奏者、音樂作品、觀眾三個屬性,其中三個屬性組合在一起才可以唯一地標識一個音樂會元組,所以關系的所有屬性組是這個關系的候選碼,即為全碼。722.1關系數(shù)據(jù)結構③主碼(Primarykey)若一個關系有多個候選碼,則選定其中一個為主碼或主鍵(Primarykey)。例如,在學生關系中,根據(jù)具體情況,學號可以更好地標識一個學生元組,所以學號作為學生關系的主碼。當然身份證號也可以作為學生關系的主碼。732.1關系數(shù)據(jù)結構④主屬性(Primeattribute)與非主屬性(Non-keyattribute)候選碼的諸屬性稱為主屬性(Primeattribute)。不包含在任何候選碼中的屬性稱為非主屬性(Non-keyattribute)。例如,在學生關系中,學號和身份證號為主屬性,姓名和年齡為
非主屬性。742.1關系數(shù)據(jù)結構2.1.2關系的性質(1)列是同質的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。(2)不同的列可出自同一個域,其中的每一列稱為一個屬性,不同的屬性要給予不同的屬性名。(3)列的順序無所謂,即列的次序可以任意交換。在許多實際關系數(shù)據(jù)庫產(chǎn)品中,增加新屬性時,永遠是插至最后一列。752.1關系數(shù)據(jù)結構2.1.2關系的性質(4)任意兩個元組的候選碼不能相同。(5)行的順序無所謂,行的次序可以任意交換。在許多實際關系數(shù)據(jù)庫產(chǎn)品中,插入一個元組時永遠插至最后一行。(6)分量必須取原子值,即每一個分量都必須是不可分的數(shù)據(jù)項。這是規(guī)范條件中最基本的一條。76關系性質1——同質的列77學號姓名性別年齡曾用名10172001陳一男17陳小一10172002姚二女20姚小二張三10172003119無10172004李四21981/2/28李小四關系性質2—不同的屬性名78學號姓名性別年齡姓名10172001陳一男17陳小一10172002姚二女20姚小二10172003張三女19張小三10172004李四男22李小四曾用名關系性質3—屬性無序79學號姓名性別年齡曾用名10172001陳一男17陳小一10172002姚二女20姚小二10172003張三女19張小三10172004李四男22李小四學號姓名曾用名性別年齡10172001陳一陳小一男1710172002姚二姚小二女2010172003張三張小三女1910172004李四李小四男22關系性質4—元組的候選碼不重復80學號姓名性別年齡曾用名10172001陳一男17陳小一10172002姚二女20姚小二10172003張三女19張小三10172004李四男22李小四10172001王五男22王小五關系性質5—元組無序81學號姓名性別年齡10172001陳一男1710172002姚二女2010172003張三女1910172004李四男22學號姓名性別年齡10172004李四男2210172001陳一男1710172003張三女1910172002姚二女20關系性質6—分量是原子82系別名稱高級職稱人數(shù)教授人數(shù)副教授人數(shù)計算機系日語系751210系別名稱教授人數(shù)副教授人數(shù)計算機系日語系751210非規(guī)范化關系規(guī)范化關系2.1關系數(shù)據(jù)結構2.1.3關系模式關系模式是對關系的描述。關系模式在形式上可以表示為:R(U,D,DOM,F(xiàn))其中R為關系名,U為組成該關系的屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間的數(shù)據(jù)依賴關系集合。832.1關系數(shù)據(jù)結構2.1.3關系模式1.關系模式的表示關系模式通??梢院営洖椋篟(U)或R(A1,A2,…,An
)其中R為關系名,A1,A2,…,An為屬性名。而域名及屬性向域的映像常常直接說明為屬性的類型、長度。842.1關系數(shù)據(jù)結構2.1.3關系模式2.關系模式與關系關系模式是對關系的描述,關系模式是靜態(tài)的、穩(wěn)定的;關系是關系模式在某一時刻的狀態(tài)或內容,關系是動態(tài)的、隨時間不斷變化的;關系模式和關系往往統(tǒng)稱為關系,通過上下文加以區(qū)別。852.1關系數(shù)據(jù)結構2.1.4關系數(shù)據(jù)庫在關系模型中,實體以及實體間的聯(lián)系都是用關系來表示的。在一個給定的應用領域中,所有實體及實體之間聯(lián)系的關系的集合(也可以簡單地理解為表的集合)構成一個關系數(shù)據(jù)庫。862.2關系數(shù)據(jù)操作第2章關系運算理論2.2關系數(shù)據(jù)操作2.2.1關系的基本操作關系模型中常用的關系操作包括查詢操作和插入、刪除、修改操作兩大部分。關系的查詢表達能力很強,是關系操作中最主要的部分。查詢操作可以分為:選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Except)和笛卡兒積等。其中,選擇、投影、并、差、笛卡兒積是五種基本操作,其他操作是可以用基本操作來定義和導出的。882.2關系數(shù)據(jù)操作2.2.2關系操作的特點關系操作的特點是集合操作方式,即操作的對象和結果都是集合。這種操作方式也稱為一次一集合的方式,這里提到的“一個集合”也可以理解為“一個關系”或“一個二維表”。相應地,非關系數(shù)據(jù)模型的數(shù)據(jù)操作方式稱為一次一記錄的方式。892.2關系數(shù)據(jù)操作2.2.3關系數(shù)據(jù)語言(1)關系數(shù)據(jù)語言按照完成的功能可分為三類:數(shù)據(jù)定義語言
(DDL)、數(shù)據(jù)操縱語言(DML)和數(shù)據(jù)控制語言(DCL)。(2)關系數(shù)據(jù)語言按照查詢方式的不同可分為三類:關系代數(shù)
語言(如ISBL)、關系演算語言(如APLHA)、具有關系
代數(shù)與關系演算雙重特點的語言(如SQL)。902.3關系的完整性第2章關系運算理論2.3關系的完整性2.3.1完整性約束的分類關系模型中有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。(1)實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系數(shù)據(jù)庫DBMS自動支持。(2)用戶自定義的完整性是應用領域需要遵循的約束條件,體現(xiàn)了具體領域中的語義約束。922.3關系的完整性2.3.2實體完整性1.實體完整性規(guī)則
若屬性A是基本關系R的主屬性,則屬性A不能取空值。2.實體完整性的必要性(1)實體完整性規(guī)則是針對基本關系而言的。一個基本表通常對應現(xiàn)實世界的一個實體集或一個多對多聯(lián)系。2.3關系的完整性(2)現(xiàn)實世界中的實體和實體間的聯(lián)系都是可區(qū)分的,即它們具有某種唯一性標識。相應地,關系模型中以主碼作為唯一性標識。(3)主碼中的屬性即主屬性不能取空值??罩稻褪恰安恢馈被颉盁o意義”的值。主屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾。2.3關系的完整性2.3.2實體完整性3.實體完整性規(guī)則規(guī)定:基本關系的所有主屬性都不能取空值。例如:學生實體中“學號”是主碼,則“學號”不能取空值;課程實體中“課程號”是主碼,則“課程號”不能取空值;學生選課關系——選修表(學號,課程號,成績)中,“學號、課程號”是主碼,則“學號”和“課程號”兩個屬性都不能取空值。9596學號姓名性別年齡所在系10172001101720021017200310172004陳一姚二張三李四男女女男17201922計算機系計算機系計算機系日語系例如:學生(學號,姓名,性別,年齡,系別),“學號”不能取空值;課程(課程號,課程名,學分),“課程號”不能取空值。97課程號課程名學分C1C2C3C4mathsenglishjapanesedatabase3543選課(學號,課程號,成績)中,“學號”和“課程號”兩個屬性都不能取空值。98學號課程號成績10172001101720011017200210172002C1C2C2C4949688762.3關系的完整性2.3.3參照完整性1.關系間的引用現(xiàn)實世界中的實體之間往往存在著某種聯(lián)系,在關系模型中實體及實體間的聯(lián)系都是用關系來描述的。這樣就自然存在著關系與關系間的引用。例如:學生、課程、學生與課程之間的多對多聯(lián)系可以用如下三個關系表示:
學生(學號,姓名,性別,年齡,院系)
課程(課程號,課程名,學分)
選修(學號,課程號,成績)這三個關系(或三張表)之間存在著屬性的引用,即選修關系引用
了學生關系的主碼“學號”和課程關系的主碼“課程號”。992.3關系的完整性2.3.3參照完整性2.外碼設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼KS相對應,則稱F是基本關系R的外碼,基本關系R稱為參照關系(ReferencingRelation),基本關系S稱為被參照關系(ReferencedRelation)或目標關系(TargetRelation)。在上例中,選修關系中的“學號”屬性與學生關系的主碼“學號”相對應;選修關系的“課程號”屬性與課程關系的主碼“課程號”相對應,因此“學號”和“課程號”屬性分別是選修關系的外碼。這里學生關系和課程關系均為被參照關系,選修關系為參照關系。1002.3關系的完整性2.3.3參照完整性3.參照完整性規(guī)則若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼KS相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或取空值(F的每個屬性值均為空值);或等于S中某個元組的主碼值。1012.3關系的完整性2.3.3參照完整性3.參照完整性規(guī)則結合實例,按照參照完整性規(guī)則,“學號”和“課程號”屬性也可以取兩類值:空值或目標關系中已經(jīng)存在的值。但由于“學號”和“課程號”是選修關系中的主屬性,按照實體完整性規(guī)則,它們均不能取空值,并且選修關系中的“學號”和“課程號”屬性實際上只能取相應被參照關系中已經(jīng)存在的主碼值。102103學生(學號,姓名,性別,專業(yè)號,年齡,班長)專業(yè)(專業(yè)號,專業(yè)名)1)學生關系中的專業(yè)號參照專業(yè)關系中的專業(yè)號,專業(yè)號的值可以是:
(1)空值--表示尚未給學生分配專業(yè)(2)非空值--值必須取專業(yè)關系中專業(yè)號的值2)學生關系中的班長與學號之間存在引用關系,班長的取值可以是:(1)空值表示該班級未選班長(2)非空值值必須取同一關系的學號104職工號部門編號姓名…980198029803980498050101020203張三李四王五趙六錢七部門編號部門名稱…01020304財務部人事部公關部技術部職工表(R2)部門表(R1)主鍵外鍵2.3關系的完整性2.3.4用戶定義完整性實體完整性與參照完整性是由系統(tǒng)自動支持的,這是關系模型所要
求的。除此之外,不同的關系數(shù)據(jù)庫系統(tǒng)根據(jù)其應用環(huán)境的不同,
往往需要一些特殊的約束條件,這就是用戶定義的完整性約束條件。(1)用戶定義完整性規(guī)則是針對某一具體關系數(shù)據(jù)庫的約束條件,
反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。(2)關系模型應提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的
系統(tǒng)的方法處理它們,而不要由應用程序承擔這一功能。105106(1)對屬性的類型約束年齡只能取整數(shù),姓名的字符串長度最大為20。(2)對屬性的非空約束學生的姓名不允許為空。(3)對屬性值的取值范圍進行約束學生成績在0—100之間,在職職工的工資不低于1000元等。107(4)對同一關系的不同元組進行約束不允許出現(xiàn)兩個不同的用戶擁有相同的賬號昵稱。(5)對同一關系的各屬性進行約束職工工資=職工工齡*工齡工資+職務工資+………2.4傳統(tǒng)的集合運算第2章關系運算理論2.4傳統(tǒng)的集合運算關系代數(shù)的運算對象和結果均為關系。關系代數(shù)用到的運算符包括:集合運算符、專門的關系運算符、比較運算符和邏輯運算符,如表2.3所示。1092.4傳統(tǒng)的集合運算2.4.1并運算例題2.1在校學生關系R和休學學生關系S,其中關系R與關系S都有四個屬性(學號,姓名,性別,狀態(tài)),若要取得所有學生關
系T,則關系T由屬于在校學生關系R和休學學生關系S的所有元組
組成(即為集合并運算),并且得到的關系T仍然有四個屬性
(學號,姓名,性別,狀態(tài))。如表2.4、表2.5、表2.6所示。110111例如:ABC123456789ABC7894565112RSR∪S的結果為:ABC1234567895112并運算2.4傳統(tǒng)的集合運算2.4.2差運算例題2.2有本店商品關系R和不合格商品關系S,其中關系R與關系S都有三個屬性(品牌,名稱,廠家),若要找出本店內合格的
商品關系T,則關系T由屬于本店商品關系R而不屬于不合格商品
關系S的元組組成(即為集合差運算),并且得到的關系T仍然
有三個屬性(品牌,名稱,廠家)。如表2.7、表2.8、表2.9所示。113114例如:ABC123456789ABC7894565112RSR-S的結果為:ABC123差運算2.4傳統(tǒng)的集合運算2.4.3交運算例題2.3在上例中,若要找出本店內不合格的商品關系T,則關系T由既屬于本店商品關系R又屬于不合格商品關系S的元組組成(即為集合交運算),并且得到的關系T仍然有三個屬性(品牌,名
稱,廠家)。如表2.10所示。116117R∩S=R-(R-S)
R∩S=S-(S-R)118S-RR-SR∩S交運算例如:119ABC123456789ABC7894565112RSR∩S的結果為:ABC456789交運算2.4傳統(tǒng)的集合運算2.4.4廣義笛卡爾積例題2.4
現(xiàn)有學生關系R和必修課程關系S,其中關系R有兩個屬性(學號、姓名),關系S有三個屬性(課程號、課程名、學分),每個學生必須學習所有必修課程,要求形成選課關系T。由學生選修課程形成的選課關系必須包括學生關系R的屬性和必修課程關系S的屬性,即關系T包括學號,姓名,課程號,課程名和學分五個屬性,由于學生關系R中兩個元組選修的課程都對應著必修課程關系S中的三個元組,所以,選課關系T共有六個元組,則得到的關系T由五個屬性和六個元組組成(即為笛卡爾積運算)。如表2.11、表2.12、表2.13所示。120121122兩個分別為n目和m目的關系R和S的廣義笛卡兒積是一個(n+m)列的元組的集合。元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有k1個元組,S有k2個元組,則關系R和關系S的廣義笛卡兒積有k1×k2個元組。記作:ABCabcbceedcCDcdefRSABR.CS.CDabccdabcefbcecdbceefedccdedcefR×S結果為:R×S結果中元組的個數(shù)(即基數(shù),行數(shù))=R和S中行數(shù)之積;屬性的個數(shù)(即元數(shù),列數(shù))=R和S中列數(shù)之和。2.5專門的關系運算第2章關系運算理論125選擇σ
、投影π
、連接、求商÷
(運算不僅涉及行而且涉及列)專門的關系運算:2.5專門的關系運算2.5.1選擇運算設有一個學生—課程數(shù)據(jù)庫。學生關系包括學號、姓名、性別、年齡和院系五個屬性,課程關系包括課程號、課程名和學分三個屬性,選修關系包括學號、課程號和成績三個屬性。關系模式表示如下:student(sno,sname,sex,age,dept)course(cno,cname,credit)sc(sno,cno,grade)1261272.5專門的關系運算2.5.1選擇運算例題2.5查詢計算機系全體學生的信息。由student關系中滿足dept=“計算機系”這一條件的元組組成(即為選擇運算)。結果如表2.17所示。1282.5專門的關系運算2.5.1選擇運算由此可見,選擇運算實際上是從關系R中選取使邏輯表達式值為真的元組。這是從行的角度進行的運算。如圖2.2所示。
圖2.2選擇操作選擇又稱為限制(Restriction)。它是在關系R中選擇滿足給定條件的諸元組,記作:其中F表示選擇條件,它是一個邏輯表達式,取邏輯值“真”或“假”。1292.5專門的關系運算例題2.6查詢年齡小于20歲的學生。
σAge<20(student)或σ4<20(student)結果如表2.18所示。1302.5專門的關系運算2.5.2投影運算例題2.7查詢學生的學號和姓名。由student關系中的學號屬性列和姓名屬性列組成的新關系(即為投影運算)。結果如表2.19所示。說明:形成的新關系不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現(xiàn)重復行,應取消這些完全相同的行。1312.5專門的關系運算2.5.2投影運算由此可見,投影操作是從列的角度進行的運算。如圖2.3所示。關系R上的投影是從R中選擇出若干屬性列組成新的關系。記作:
其中A為R中的屬性列。1322.5專門的關系運算例題2.8查詢學生關系student中都有哪些院系,即查詢關系student在院系屬性上的投影。
πDept(student)
結果如表2.20所示。說明:student關系原來有四個元組,而投影結果取消了重復的計算機系元組,因此只有兩個元組。1332.5專門的關系運算2.5.3連接運算連接也稱為θ連接。它是從兩個關系的笛卡兒積中選取屬性間滿足一定條件的元組。記作:其中A和B分別為R和S上度數(shù)相等且可比的屬性組。θ是比較運算符。連接運算從R和S的廣義笛卡爾積RS中選?。≧關系)在A
屬性組上的值與(S關系)在B屬性組上值滿足比較關系θ的元組。1342.5專門的關系運算2.5.3連接運算連接運算中有兩種最為重要也最為常用的連接,一種是等值連接(Equal-Join),一種是自然連接(Natural-Join)。θ為“=”的連接運算稱為等值連接。它是從關系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組,即等值連接為:1352.5專門的關系運算2.5.3連接運算自然連接(Natural-join)是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉。即若R和S具有相同的屬性組B,U為R和S的全體屬性集合,則自然連接可記作:1362.5專門的關系運算2.5.3連接運算一般的連接操作是從行的角度進行運算。但自然連接還需要取消重復列,所以是同時從行和列的角度進行運算。如圖2.4所示。
圖2.4連接操作137138ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSR
S
139AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310C<E
等值連接R
S140R.B=S.B
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32
自然連接R
S141ABCEa1b153a1b267a2b3810a2b382
外連接R
S:如果把舍棄的元組也保存在結果關系中,而在其他屬性上填空值(NULL)ABCEa1b153a1b267a2b3810a2b382a2b412NULLNULLb5NULL2142
左外連接R
S:如果只把左邊關系R中要舍棄的元組保留就叫做左外連接。ABCEa1b153a1b267a2b3810a2b382a2b412NULL143
右外連接R
S:如果只把右邊關系S中要舍棄的元組保留就叫做右外連接ABCEa1b153a1b267a2b3810a2b382NULLb5NULL2144ABCabcdbcbbfcadBCDbcdbceadbRSAR.BR.CS.BS.CDabcbcdabcbcedbcbcddbcbcecadadbRS等值聯(lián)接3=2RS1=1AR.BR.CS.BS.CDbbfbcdbbfbceabcadbABCabcdbcbbfcadBCDbcdbceadbRSABCDabcdabcedbcddbcecadbRS自然聯(lián)接2.5專門的關系運算2.5.4除運算為敘述上的方便先引入幾個概念。(1)元組的分量(2)象集(ImageSet)147148(1)元組的分量設關系模式為R(A1,A2,……An),它的一個關系為Rt∈R表示t是R的一個元組t[Ai]
則表示元組t中相應于屬性Ai的一個分量。A1A2…Ai…An………………at1at2at3atiatn………………元組t分量t[Ai]149元組的分量舉例2如:關系模式SSNOSNAME
SSEXSCSRQ……99001……99058張三……龐兵男……男1980……1979………………t
:(99058,龐兵,男,1979,……)t[SNAME]=龐兵,表示元組t在姓名SNAME上的分量為“龐兵”。150屬性列/域列舉例姓名學號性別出生日期身份證號籍貫………………張玫200101女1987.1.3210211870103980遼寧劉清200102女1988.4.9370602880409222山東田亮200103男1988.10.6101234881006301河北………………A元組tt[A]=(劉清,200102,女)是元組t在屬性列A上諸分量的集合151(2)象集Zx(ImagesSet)給定一個關系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:
Zx={t[Z]|t
R,t[X]=x}它表示R中屬性組X上值為x的諸元組在Z上分量的集合。152象集舉例1x1在R中的象集
Zx1
={Z1,Z2,Z3},x2在R中的象集
Zx2
={Z2,Z3},x3在R中的象集
Zx3={Z1,Z3}x1Z1x1Z2x1Z3x2Z2x2Z3x3Z1x3Z3R153象集舉例2學號課程號成績200102025720010201782001010389………選課SCXZxt[Z]t[Z]則Zx={(02,57),(01,78)}154象集舉例3例如:學生-課程數(shù)據(jù)庫中的選修關系S-CSNOCNOGrade9900100185990010039099002001759900200280t[X]=t[SNO]=x=99001象集:Zx={(001,85),(003,90)}t[X]=t[CNO]=x=001象集:Zx={(99001,85),(99002,75)}155象集舉例4
學號姓名性別年齡籍貫200103張力女17河北200102王紅女18上海200101馬闖男19北京200104劉樹男19廣州學生Xx則Zx={(200103,張力,河北)}Zt[Z]2.5專門的關系運算2.5.4除運算給定關系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上投影的集合。
記作:其中Yx為x在R中的象集,x=tr[X]1562.5專門的關系運算2.5.4除運算除操作是同時從行和列角度進行運算。如圖2.6所示。
1572.5專門的關系運算2.5.4除運算因此,求R÷S的操作步驟如下:(1)將R中屬性分為兩個集合X和Y,
R(X,Y),其中Y就是S中的前半部分屬性的集合,S(Y,Z)。(2)若X的某個值x的象集YxYx={t[Y]∣t∈R∧t[X]=x}包含S表中t[Y]的所有元組,則將x放入結果集中。158159ABCa1b1c2a2
b3c7a3b4c6a1
b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2XYYZ例:R÷SRS(1)當x=(a1)時其象集為X可以取值為{a1,a2,a3,a4}BCb1c2b2c3b2c1160(2)當x=(a2)時(3)當x=(a3)時(4)當x=(a4)時其象集為其象集為其象集為BCb3c7b2c3BCb4c6BCb6c6
B
C
b1c2b2c1b2c3S在(B,C)Y上的投影為R÷S的結果為:Aa1X2.5專門的關系運算除運算如圖2.7所示。設關系R、S分別為圖2.7中的(a)和(b),R÷S的結果為圖2.7(c)。
在關系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),(b2,c1),(b2,c3)}
顯然只有a1的象集(B,C)包含了S在(B,C)屬性組上的投影,所以R÷S={a1}。
1611622.5專門的關系運算例題2.9已知學生選課關系R,課程表S,要找出選課關系中選修所
有課程的學生的學號。指定的課程號和對應課程名構成的關系記
為S,則該問題可以用R÷S表示。如表2.21、表2.22、表2.23所示。
1631642.6綜合實例第2章關系運算理論2.6綜合實例以學生—課程數(shù)據(jù)庫為例,給出幾個綜合應用多種關系代數(shù)運算進行查詢的例子。
學生關系:student(sno,sname,age,sex,dept)
課程關系:course(cno,cname,credit)
選課關系:sc(sno,cno,grade)
其中,學生關系中學號sno為主碼(主鍵),課程關系中課程號cno為主碼(主鍵),選課關系中學號sno和課程號cno是外碼(外鍵),分別參照學生和課程關系中的主碼sno和cno。1662.6綜合實例(1)查詢選修課程號為“c1”的學生學號和成績。(2)查詢學分為3的課程的課程號和課程名。(3)查詢年齡小于20歲的女學生的學號與姓名。(4)查詢選修學分為3的課程的學生學號。(5)查詢學號為10172003學生所學課程的課程名與學分。(6)查詢學習課程號為“c2”的學生學號和姓名。(7)查詢選修課程號為“c1”或“c3”的學生學號。1672.6綜合實例(8)查詢至少選修課程號為“c1”和“c3”的學生學號。(9)查詢至少選修兩門課程的學生學號。(10)查詢選修課程名為“maths”的學生學號和姓名。(11)查詢至少選修一門學分為3的課程的男學生的姓名。(12)查詢“張三”不學的課程的課程號。(13)查詢學習全部課程的學生姓名。(14)查詢所學課程包含學生10172004所學課程的學生學號。1682.7本章小結第2章關系運算理論2.7本章小結本章首先介紹了關系數(shù)據(jù)結構的基本概念、數(shù)學定義。包括:關系的定義、關系的6個性質、關系模式的表示和關系數(shù)據(jù)庫的相關概念。其次介紹了關系模型由數(shù)據(jù)結構、關系操作、關系完整性約束三部分組成。關系模型必須遵循實體完整性規(guī)則、參照完整性規(guī)則和用戶定義的完整性規(guī)則。最后介紹了關系代數(shù)傳統(tǒng)的集合運算和專門的關系運算。其中并、差、笛卡兒積、投影、選擇這五種運算為基本的運算,它們組成關系代數(shù)完備的運算集。其他三種運算,即交、連接、除運算都可以用這五種基本運算組合而成。170171第3章關系數(shù)據(jù)庫標準語言SQL主要內容3.1SQL概述3.2數(shù)據(jù)定義3.3數(shù)據(jù)查詢3.4數(shù)據(jù)操縱3.5視圖3.6實驗3.7本章小結3.1SQL概述第3章關系數(shù)據(jù)庫標準語言SQL3.1SQL概述3.1.1SQL簡介結構化查詢語言SQL(StructuredQueryLanguage)是一種用于和關系數(shù)據(jù)庫進行交互通信的計算機語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng)。同時它也是數(shù)據(jù)庫腳本文件的擴展名。1753.1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CPFIA 0013-2024含聚谷氨酸水溶肥料
- T/CACE 0107-2023鋼鐵冶金渣基無機膠凝材料
- T/CI 492-2024數(shù)字孿生灌區(qū)水量監(jiān)測設施建設規(guī)程
- 2025關于客房銷售合同2篇
- T/ZSESS 006.1-2023環(huán)保共性產(chǎn)業(yè)園建設和管理規(guī)范第1部分:總則
- 汽車車牌識別系統(tǒng)設計
- 電視劇職員聘用合同3篇
- 風電機組課程設計
- 幼兒呼吸觀察方法與指導
- 小年的祝福語
- 王春武-農(nóng)藥干懸浮劑(DF)項目研究與開發(fā)
- 幼兒啟蒙12電子狗機器人課件
- 《好的數(shù)學:數(shù)的故事》讀書筆記模板
- 2023國家開放大學:《人文英語1》形考答案解析5-8unit
- 土溶洞處理監(jiān)理實施細則
- 道路危險貨物運輸安全標準化手冊
- 名校版初中物理“公式+考點+方法技巧”大匯編
- 醫(yī)院消毒供應中心CSSD??浦R《CSSD器械消毒與干燥方式的正確選擇》精美培訓課件
- 杠桿(CA1340自動車床)加工工藝及夾具設計
- NB-T 10316-2019 風電場動態(tài)無功補償裝置并網(wǎng)性能測試規(guī)范
- GB/T 9444-2019鑄鋼鑄鐵件磁粉檢測
評論
0/150
提交評論