




已閱讀5頁,還剩160頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
數(shù)據(jù)庫基礎知識,蔣望東副教授,湖南財政經(jīng)濟學院信息管理系,1概論1.1數(shù)據(jù)、信息、數(shù)據(jù)處理1.2計算機數(shù)據(jù)管理技術(shù)的發(fā)展1.3數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)1.4數(shù)據(jù)庫系統(tǒng)的系統(tǒng)結(jié)構(gòu)1.5數(shù)據(jù)庫技術(shù)的發(fā)展,1.1數(shù)據(jù)、信息、數(shù)據(jù)處理(1)數(shù)據(jù):描述事物的符號記錄。數(shù)據(jù)與語義(含義)密不可分。舉例:數(shù)字、文字、圖形、圖像、聲音、語言等。例如:(200505101,張三,男,21,上海,計算機專業(yè))(2)信息:經(jīng)加工處理后獲取的有價值的數(shù)據(jù)。數(shù)據(jù)與信息的關(guān)系?(3)數(shù)據(jù)處理:指對各種數(shù)據(jù)進行收集、存儲、加工和傳播的一系列活動總和。數(shù)據(jù)管理:指對數(shù)據(jù)進行分類、組織、編碼、存儲、檢索和維護,它是數(shù)據(jù)處理的中心問題。信息=數(shù)據(jù)+數(shù)據(jù)處理,現(xiàn)實世界:客觀存在的世界中的事物及其聯(lián)系。數(shù)據(jù)庫方法中:客觀事物及聯(lián)系抽象實體(信息世界)轉(zhuǎn)換記錄(計算機世界),信息世界(或概念世界):現(xiàn)實世界在人腦中的反映,是對客觀事物及其聯(lián)系的一種抽象描述。描述方法:常用E-R模型來描述(以后介紹)。,計算機世界(又稱數(shù)據(jù)世界):是在信息世界基礎上的進一步抽象。描述方法:數(shù)據(jù)模型。常用術(shù)語:數(shù)據(jù)項(Field)(字段):標記實體屬性的符號集。(描述屬性)數(shù)據(jù)庫中可以命名及存取的最小邏輯數(shù)據(jù)單位。記錄(Record):數(shù)據(jù)項的有序數(shù)據(jù)集合。(描述實體)注:關(guān)系數(shù)據(jù)庫系統(tǒng)中稱為元組。,字段、屬性、列,記錄、元組、行,學生基本信息表,學,號,姓,名,年,齡,性,別,系,名,年,級,95004,王小明,19,女,社會學,95,95006,黃大鵬,20,男,商品學,95,95008,張文斌,18,女,法律學,95,1.2計算機數(shù)據(jù)管理技術(shù)的發(fā)展(1)人工管理階段:20世紀50年代中期以前。特點:a、數(shù)據(jù)不能長期保存。b、數(shù)據(jù)不共享與程序不具有獨立性。c、系統(tǒng)中無對數(shù)據(jù)進行管理的軟件。,圖1-2人工管理階段應用程序與數(shù)據(jù)的關(guān)系,(2)文件系統(tǒng)階段:20世紀50年代后期60年代中后期。特點:a、數(shù)據(jù)可以長期保存,多次訪問。b、由文件系統(tǒng)管理相應的數(shù)據(jù)(無集中管理)。c、程序和數(shù)據(jù)有了一定的獨立性,存儲分開。d、數(shù)據(jù)共享差,冗余度大。,應用程序1,數(shù)據(jù)組1,數(shù)據(jù)組2,應用程序2,數(shù)據(jù)組N,應用程序N,文件系統(tǒng),圖1-3文件系統(tǒng)階段應用程序與數(shù)據(jù)的關(guān)系,(3)數(shù)據(jù)庫系統(tǒng)階段:20世紀60年代后期開始。例:學生基本信息記錄表:,這個表格的缺點:有些同學的獎懲記錄很多,但大部分沒有,因此“獎懲情況”這一欄該留多大的位置很難確定。而且很難統(tǒng)計獎勵的次數(shù),修改后的記錄表:將學生基本信息和獎懲情況分開來,獎懲情況表,修改后的學生基本信息記錄表,特點:描述數(shù)據(jù)時不僅描述數(shù)據(jù)本身,還描述了數(shù)據(jù)間的聯(lián)系。,特點:a、數(shù)據(jù)結(jié)構(gòu)化,信息完整,功能通用。b、實現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余,易擴充。c、采用了特定的數(shù)據(jù)模型。d、數(shù)據(jù)獨立性高。物理獨立性:應用程序的處理與數(shù)據(jù)物理結(jié)構(gòu)無關(guān)。邏輯獨立性:數(shù)據(jù)的邏輯結(jié)構(gòu)的改變,用戶程序可以不改變。,e、數(shù)據(jù)由DBMS統(tǒng)一管理和控制。,返回,應用程序1,應用程序2,應用程序N,數(shù)據(jù)庫管理系統(tǒng)DBMS,數(shù)據(jù)庫,圖1-4數(shù)據(jù)庫系統(tǒng)階段應用程序與數(shù)據(jù)的關(guān)系,數(shù)據(jù)管理技術(shù)三個發(fā)展階段的詳細比較,應用背景科學計算科學計算、管理大規(guī)模管理,硬件背景無直接存取存儲設備磁盤、磁鼓大容量磁盤,軟件背景沒有操作系統(tǒng)有文件系統(tǒng)有DBMS,處理方式批處理實時處理、批處理,數(shù)據(jù)的管理者用戶(程序員)文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)面向的對象某一應用程序某一應用現(xiàn)實世界,數(shù)據(jù)的共享程度無共享,冗余度很大共享性差,冗余度大共享性高,冗余度小,獨立性差,實時處理、分布處理、批處理,具有高度的物理獨立性和一定的邏輯獨立性,數(shù)據(jù)的獨立性,不獨立,完全依靠于程序,記錄內(nèi)有結(jié)構(gòu)、整體無結(jié)構(gòu),整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,數(shù)據(jù)控制能力應用程序自己控制文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng),1.3數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)(1)數(shù)據(jù)庫(DataBase,簡稱DB)定義:長期存放在計算機存儲設備上有組織的、可共享的、相關(guān)的數(shù)據(jù)集合。特征:數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存;可為各種用戶共享;冗余度較??;數(shù)據(jù)獨立性較高;易擴展。(數(shù)據(jù)庫系統(tǒng)DBS的核心,是被管理的對象)(2)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)功能:負責對DB進行管理與維護。,圖1-5數(shù)據(jù)庫管理系統(tǒng)在計算機系統(tǒng)中的地位,DBMS應包含的功能:數(shù)據(jù)定義功能:數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)數(shù)據(jù)操縱功能:數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)如:插入、查找、修改和刪除等操作。數(shù)據(jù)庫的運行管理:數(shù)據(jù)控制語言(DataControlLanguage,簡稱DCL)數(shù)據(jù)庫的建立和維護功能,DBMS須提供的數(shù)據(jù)控制功能:數(shù)據(jù)安全性(Security)保護。數(shù)據(jù)完整性(Integrity)檢查。完整性:數(shù)據(jù)的正確性、有效性、一致性。并發(fā)(Concurrency)控制:能實現(xiàn)多個用戶同時對數(shù)據(jù)庫庫中的數(shù)據(jù)或同一數(shù)據(jù)進行合理存取。數(shù)據(jù)庫恢復(Recovery)。注:目前典型的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)有Oracle、Sybase、DB2、Informix、SQLserver、Foxpro、access。,(3)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡稱DBS)即具有管理和控制數(shù)據(jù)庫功能的計算機系統(tǒng)。注:常將數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。a、數(shù)據(jù)庫系統(tǒng)的5個組成部分:硬件系統(tǒng)數(shù)據(jù)庫DB數(shù)據(jù)庫管理系統(tǒng)DBMS相關(guān)軟件(支持軟件,如操作系統(tǒng)等;應用開發(fā)工具軟件等)數(shù)據(jù)庫系統(tǒng)用戶:數(shù)據(jù)庫管理員(DBA):負責數(shù)據(jù)庫管理的和維護操作。,數(shù)據(jù)庫設計者:負責數(shù)據(jù)庫中數(shù)據(jù)的確定、存取方式、數(shù)據(jù)庫最后的定義等。最終用戶:數(shù)據(jù)庫的主要用戶,對數(shù)據(jù)庫提出查詢和更新等操作要求。最終用戶分三類:偶然用戶、簡單用戶、復雜用戶。系統(tǒng)分析員和應用程序員。系統(tǒng)分析員:負責分析最終用戶需求,對這些需求做出數(shù)據(jù)庫事務的準確的定義。應用程序員:把系統(tǒng)分析員提供的數(shù)據(jù)事務定義編制成計算機軟件,并進行編碼、測試、維護。,b、數(shù)據(jù)庫系統(tǒng)的主要特征:實現(xiàn)數(shù)據(jù)共享減少數(shù)據(jù)冗余度保持數(shù)據(jù)的一致性數(shù)據(jù)的獨立性安全保密性并發(fā)控制故障恢復,應用系統(tǒng),應用開發(fā)工具,操作系統(tǒng),數(shù)據(jù)庫管理系統(tǒng),用戶,用戶,用戶,數(shù)據(jù)庫,圖1-6數(shù)據(jù)庫系統(tǒng),本小結(jié)結(jié)束,DBA,1.5數(shù)據(jù)庫系統(tǒng)的系統(tǒng)結(jié)構(gòu)(1)模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。(不涉及到具體的值)例:學生選課數(shù)據(jù)庫模式:學生(學號,姓名,性別,專業(yè)班級,出生年月)課程(課程號,課程名,學分)選課(學號,課程號,成績)注意:模式中不包含具體的記錄數(shù)據(jù)模式的實例:模式的具體值稱為模式的實例。,學生表實例,模式與實例的關(guān)系:1)、模式相對穩(wěn)定。2)、同一個模式,可以有很多實例,實例是相對變動的。3)、模式反映的是數(shù)據(jù)結(jié)構(gòu)及其聯(lián)系,而實例反映的是數(shù)據(jù)庫某一時刻的狀態(tài)值。數(shù)據(jù)庫中的模式:用數(shù)據(jù)描述語言精確定義數(shù)據(jù)模型的全部語句。,()數(shù)據(jù)庫系統(tǒng)的三級模式兩級映射結(jié)構(gòu):1)、外模式(ExternalSchema)(子模式Subschema、用戶模式):用子模式數(shù)據(jù)描述語言(子模式DDL)來定義外模型的全部語句。2)、概念模式(簡稱模式,Schema)又稱邏輯模式:用模式數(shù)據(jù)描述語言(模式DDL)來定義概念模型的全部語句。3)、內(nèi)模式(InternalSchema)也稱物理模式、存儲模式(StorageSchema):用設備介質(zhì)語言(內(nèi)模式DDL)來定義內(nèi)模型的模式。(是對數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述。),實例,(3)三類模式之間的關(guān)系與區(qū)別:(重點)1)、子模式是概念模式的子集。2)、一個數(shù)據(jù)庫只有一個概念模式,只有一個內(nèi)模式,可以有多個外模式。3)、外模式是保證數(shù)據(jù)庫安全性的一個有力措施。4)、一個外模式可以對應多個應用,但一個應用只能對應一個外模式。(4)數(shù)據(jù)庫管理系統(tǒng)三級模式之間的兩級映射:1)、子模式模式映射:保證了邏輯數(shù)據(jù)獨立性:用戶數(shù)據(jù)獨立于全局邏輯數(shù)據(jù)的特性(模式變,子模式可以不變)。2)、模式物理模式映射:保證了物理數(shù)據(jù)獨立性:全局邏輯數(shù)據(jù)獨立于物理數(shù)據(jù)的特性。,圖1-15數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)圖,邏輯獨立性,物理獨立性,外模式(子模式)面向用戶,人事登記表,科研登記表,工資卡片,基本文件,職工信息表,項目表,工資表,第一層,第二層,第三層,(概念)模式(面向系統(tǒng)整體),內(nèi)模式(物理模式)(面向計算機存儲),主數(shù)據(jù)文件擴展名為.mdf,物理組織最佳的形式,全校數(shù)據(jù)庫,教務處:教務管理系統(tǒng),學生處:學生信息管理系統(tǒng),現(xiàn)代化教學中心:一卡通管理系統(tǒng),。,數(shù)據(jù)庫的物理存儲模式,外模式,模式,內(nèi)模式,邏輯獨立性,物理獨立性,例:,全校數(shù)據(jù)庫,教務處:教務管理系統(tǒng),學生處:學生信息管理系統(tǒng),現(xiàn)代化教學中心:一卡通管理系統(tǒng),。,數(shù)據(jù)庫的物理存儲模式,學生(學號,姓名,性別,專業(yè)班級,出生年月,籍貫,家庭地址,聯(lián)系方式)課程(課程號,課程名,學分,開課單位)獎懲信息(學號,獎懲記錄)選課(學號,課程號,成績)一卡通(。),學生(學號,姓名,性別,專業(yè)班級)課程(課程號,課程名,學分,開課單位)選課(學號,課程號,成績),學生(學號,姓名)一卡通(。),學生(學號,姓名,性別,專業(yè)班級,出生年月,籍貫,家庭地址,聯(lián)系方式)獎懲信息(學號,獎懲記錄),數(shù)據(jù)庫文件的存儲形式,如文件名,是否索引等。,思考:1、學生表中增加一個字段,對3個系統(tǒng)有影響嗎?2、將字段名“專業(yè)班級”改名為“班級”,對3個系統(tǒng)有影響嗎?,1.5數(shù)據(jù)庫技術(shù)的發(fā)展,第一代數(shù)據(jù)庫的代表是1969年IBM公司研制的層次模型的數(shù)據(jù)庫管理系統(tǒng)IMS和70年代美國數(shù)據(jù)庫系統(tǒng)語言協(xié)商CODASYL下屬數(shù)據(jù)庫任務組DBTG提議的網(wǎng)狀模型。層次數(shù)據(jù)庫的數(shù)據(jù)模型是有根的定向有序樹,網(wǎng)狀模型對應的是有向圖。這兩種數(shù)據(jù)庫奠定了現(xiàn)代數(shù)據(jù)庫發(fā)展的基礎。這兩種數(shù)據(jù)庫具有如下共同點:1.支持三級模式(外模式、模式、內(nèi)模式)。保證數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的物理獨立性和一定的邏輯獨立性;2.用存取路徑來表示數(shù)據(jù)之間的聯(lián)系;3.有獨立的數(shù)據(jù)定義語言;4.導航式的數(shù)據(jù)操縱語言,第二代數(shù)據(jù)庫的主要特征是支持關(guān)系數(shù)據(jù)模型。這一理論是在20世紀70年代由時任IBM研究員的E.F.Codd博士提出的。關(guān)系數(shù)據(jù)庫系統(tǒng)管理的數(shù)據(jù),其結(jié)構(gòu)較為簡單,數(shù)據(jù)本身以二維表的形式進行存儲;表之間的數(shù)據(jù)聯(lián)系是通過一個表的碼與另一個表的碼的連接來實現(xiàn)。關(guān)系數(shù)據(jù)庫系統(tǒng)為其管理的數(shù)據(jù)提供并發(fā)控制、應急恢復和可伸縮性等功能。值得注意的是關(guān)系數(shù)據(jù)庫最重要的特征不是其存儲和讀取數(shù)據(jù)的能力,而是關(guān)系數(shù)據(jù)庫系統(tǒng)提供的強大的查詢功能以及提供的十分方便、易于使用的非過程化查詢語言SQL,這些優(yōu)點使得關(guān)系型數(shù)據(jù)庫得到廣泛的應用。,第三代數(shù)據(jù)庫產(chǎn)生于80年代,隨著科學技術(shù)的不斷進步,不同領域的數(shù)據(jù)庫應用提出了更多新的數(shù)據(jù)管理的需求,關(guān)系型數(shù)據(jù)庫已經(jīng)不能完全滿足需求,于是數(shù)據(jù)庫技術(shù)的研究和發(fā)展進入了新時代。主要有以下特征:1.支持數(shù)據(jù)管理、對象管理和知識管理;2.保持和繼承了第二代數(shù)據(jù)庫系統(tǒng)的技術(shù);3.對其它系統(tǒng)開放,支持數(shù)據(jù)庫語言標準,支持標準網(wǎng)絡協(xié)議,有良好的可移植性、可連接性、可擴展性和互操作性等。第三代數(shù)據(jù)庫支持多種數(shù)據(jù)模型(比如關(guān)系模型和面向?qū)ο蟮哪P停?,并和諸多新技術(shù)相結(jié)合(比如分布處理技術(shù)、并行計算技術(shù)、人工智能技術(shù)、多媒體技術(shù)、模糊技術(shù)),廣泛應用于多個領域(商業(yè)管理、GIS、計劃統(tǒng)計等),由此也衍生出多種新的數(shù)據(jù)庫技術(shù)。,2數(shù)據(jù)模型,2.1數(shù)據(jù)模型的概念,2.1.1數(shù)據(jù)的三個范疇數(shù)據(jù)需要人們的認識、理解、整理、規(guī)范和加工,然后才能存放到數(shù)據(jù)庫中。也就是說數(shù)據(jù)從現(xiàn)實生活進入到數(shù)據(jù)庫實際經(jīng)歷了若干個階段。一般分為三個階段,即現(xiàn)實世界階段、信息世界階段和機器世界階段,也稱為數(shù)據(jù)的三個范疇。,1.現(xiàn)實世界2.信息世界術(shù)語:實體(Entity):客觀存在的、可以相互區(qū)別的事物稱為實體。實體可以是具體的對象,例如,一個學生、一輛汽車等。也可以是抽象的事件,例如,一次借書、一次足球賽等。實體集(EntitySet):性質(zhì)相同的同類實體的集合,稱為實體集。例如,所有的學生、全國足球聯(lián)賽的所有比賽等。屬性(Attribute):實體有很多特性,每一個特性稱為屬性。每個屬性有一個值域,其類型可以是整數(shù)型、實數(shù)型或字符串型等。例如,學生有學號、姓名、年齡、性別等屬性,相應值域為字符串、字符串、整數(shù)和字符串型。碼(Key):能唯一標識每個實體的屬性或?qū)傩约?,稱為碼。,3.機器世界術(shù)語:字段(Field):標記實體屬性的命名單位稱為字段或數(shù)據(jù)項。它是可以命名的最小信息單位。字段的命名往往和屬性名相同,例如,學生有學號、姓名、年齡、性別等字段。記錄(Record):字段的有序集合稱為記錄。一般用一個記錄描述一個實體,例如,一個學生記錄由有序的字段集組成:(學號,姓名,年齡,性別)。文件(File):同一類記錄的匯集稱為文件。文件是描述實體集的,例如,所有學生記錄組成了一個學生文件。碼(Key):能惟一標識文件中每個記錄的字段或字段集,稱為記錄的碼。這個概念與實體的碼相對應。例如,學生的學號可以作為學生記錄的碼。,機器世界和信息世界術(shù)語的對應關(guān)系:信息世界機器世界實體記錄屬性字段(數(shù)據(jù)項)實體集文件碼.碼,以學生數(shù)據(jù)為例表示了信息在三個世界中的有關(guān)術(shù)語及其聯(lián)系:,2.1.2數(shù)據(jù)模型的組成要素及分類,數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三要素組成。數(shù)據(jù)結(jié)構(gòu)描述的是系統(tǒng)的靜態(tài)特性,即數(shù)據(jù)對象的數(shù)據(jù)類型、內(nèi)容、屬性,以及數(shù)據(jù)對象之間的聯(lián)系。數(shù)據(jù)操作描述的是系統(tǒng)的動態(tài)特性,是對各種對象的實例允許執(zhí)行的操作集合。完整性約束是一組完整性規(guī)則的集合,它是對數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依賴性規(guī)則,用來保證數(shù)據(jù)的正確性、有效性和相容性。,2.2E-R模型,2.2.1基本概念(1)實體實體是現(xiàn)實世界中客觀存在并可相互區(qū)別的事物。實體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。例如一個員工、一個部門、物資設備等等都是實體。(2)屬性實體所具有的某一特性稱為屬性。將一個屬性賦予某實體集,則表明該實體集中每個實體都有相似信息,但每個實體在自己的每個屬性上都有各自的值。例如,實體集員工可能具有EmployeeID、EmployeeName屬性,對于某個特定的Employee實體,它的EmployeeID為20100012,EmployeeName為Jack。(3)碼(key)唯一表示實體的屬性集稱為碼,例如EmployeeID為Employee實體的碼。,(4)域(Domain)屬性的取值范圍稱為域。例如,EmployeeID的域為8位整數(shù),EmployeeName的域為字符串集。(5)實體集實體集是具有相同特征或能用同樣特征描述的實體集合。例如,某個單位的所有員工的集合可被定義為實體集Employee。組成實體集的各實體稱為實體集的外延,例如某單位所有員工稱為實體集Employee的外延。(6)實體型實體型是指具有相同屬性的實體必然具有共同的特征和性質(zhì)。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,員工(員工編號、姓名、部門、性別、年齡、職稱)就是一個實體型。(7)聯(lián)系現(xiàn)實世界中,事物內(nèi)部或事物之間總是有聯(lián)系的,聯(lián)系反映了實體之間或?qū)嶓w內(nèi)部的關(guān)系。,兩個實體間的聯(lián)系集可分為3種:一對一聯(lián)系(1:1)如果對于實體集A至少和實體集B中的一個實體有聯(lián)系,反之亦然,則稱實體集A和實體集B具有一對一聯(lián)系,記為1:1.一對多聯(lián)系(1:n)如果實體集A中每個實體與實體集B中任意多個(含零個或多個)實體有聯(lián)系,而實體集B中每個實體至多與實體集A中一個實體有聯(lián)系,就稱實體集A和實體集B具有一對多聯(lián)系,記為1:n。多對多聯(lián)系(m:n)如果實體集A中每個實體與實體集B中任意多個(含零個或多個)實體有聯(lián)系,而實體集B中每個實體與實體集A中任意多個(含零個或多個)個實體有聯(lián)系,就稱實體集A和實體集B具有多對多聯(lián)系,記為m:n。,例:假設每個部門只能有一個負責人,每個負責人只能負責一個部門,則部門與負責人這兩個實體之間是一對一的聯(lián)系。每個部門可能有多個員工,而每個員工只能屬于一個部門,則部門實體集Depart和員工實體集Employee之間是一對多聯(lián)系。一個工程項目可能需要多個員工參與,而每個員工還可以參與其它項目,則工程項目與員工之間就是多對多聯(lián)系。,同一個實體集內(nèi)的各實體之間也可以存在一對一、一對多、多對多的聯(lián)系。例:實體集員工Employee各具體實體之間具有領導與被領導關(guān)系,即某一員工“領導”若干名員工,而一個員工僅被另外一個員工直接領導,這就是一對多的聯(lián)系。員工與員工之間還有配偶聯(lián)系,由于一個員工只能有一個配偶,所以員工之間的“配偶”聯(lián)系就是一對一的聯(lián)系,兩個以上實體型之間也存在一對一、一對多、多對多的聯(lián)系。例:學生選課系統(tǒng)中,有教師、學生、課程三個實體,并且有語義:同樣一門課程可能同時有幾位教師開設,而每位教師都可能開設幾門課,學生可以在選課的同時選擇教師。,(8)弱實體集在描述實體的過程中,有些實體集的屬性可能不足以形成主碼,需要依賴其他實體集中的部分屬性。這樣的實體集叫做弱實體集,不需要依賴其他的實體的實體集稱為強實體集。例如一個單位的員工實體集Employee與工作履歷實體集Career,則工作履歷實體集Career是以職工存在為前提的,即工作履歷實體集Career是弱實體集。,2.2.2E-R圖設計,1、E-R圖基本元素和表示方法E-R圖提供了表示實體集、屬性和聯(lián)系的方法,在E-R圖中:(1)實體集:用矩形表示,矩形框內(nèi)寫明實體名。(2)屬性:用橢圓形表示,并用無向邊將其與相應的實體集連接起來。(3)聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體集連接起來,同時在無向邊上表明聯(lián)系的類型(1:1,1:n或m:n)。如果聯(lián)系具有屬性,則該屬性仍用橢圓框表示,仍需要用無向邊將屬性與對應的聯(lián)系連接起來。(4)用虛邊矩形和虛邊菱形分別表示弱實體和弱實體之間的聯(lián)系。,例如:學生實體及屬性,完整的學生選課ER圖,綜合實例,【例2.1】某電力公司的配電物資存放在倉庫中,假設一個倉庫可以存放多種物資,一種配電物資只能存放在一個倉庫中;一個配電搶修工程可能需要多種配電物資,一種配電物資可以應用到多個搶修工程中。倉庫包含倉庫編號、倉庫名稱倉庫面積等屬性,配電物資包含物資編號、物資名稱、單價、規(guī)格、數(shù)量等屬性,搶修工程包含工程編號、工程名稱、工程開始日期、工程結(jié)束日期、工程狀態(tài)(工程是否完工)等屬性,某一搶修工程領取某配電物資時,必須標明領取數(shù)量、領取日期、領取部門。,【例2.2】某工廠有若干車間及倉庫,一個車間可以生產(chǎn)多種零件,每種零件只能在一個車間生產(chǎn),一種零件可以組裝在不同產(chǎn)品中,一種產(chǎn)品需要多種零件,每種零件和產(chǎn)品都只能存放在一個倉庫中;車間有工人,工人有家屬。各實體的屬性為:車間:車間號、車間主任姓名、地址和電話;工人:工號、姓名、年齡、性別、工種;工廠:工廠名、廠長名;產(chǎn)品:產(chǎn)品號、產(chǎn)品名、價格;零件:零件號、零件規(guī)格、價格;倉庫:倉庫號、倉庫負責人、電話;家屬:姓名、親屬關(guān)系。,實體及其聯(lián)系圖,實體及其屬性圖,實體及其屬性圖,【例2.3】某學校有若干名教師和學生,并且教師和學生不能跨系;每個教師可以教授若干門課程,每門課程只能由一個教師任課;每個學生可以同時選修多門課程。請設計某學校的教學管理的E-R模型。其中實體有:系、教師、學生、課程。系屬性有:系編號、系名、系主任。教師屬性有:教師編號、教師姓名、職稱。學生屬性有:學號、姓名、性別、班號。課程屬性有:課程編號、課程名、學分。,答:E-R模型如下:,系,學生,課程,教師,系編號,系主任,系名,教師編號,職稱,教師姓名,學號,性別,姓名,課程號,學分,課程名,選修,從屬,任課,從屬,1,m,m,n,m,1,m,1,班號,學時,返回,成績,3關(guān)系數(shù)據(jù)庫,主要講述:關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系的定義和性質(zhì)關(guān)系數(shù)據(jù)庫的基本概念關(guān)系運算,3.1關(guān)系模型,關(guān)系模型就是用二維表格結(jié)構(gòu)來表示實體及實體之間聯(lián)系的模型。關(guān)系模型是各個關(guān)系的框架的集合,即關(guān)系模型是一些表格的格式,其中包括關(guān)系名、屬性名、關(guān)鍵字等。例如,教學數(shù)據(jù)庫中教師與課程的關(guān)系模型如圖。教師關(guān)系課程關(guān)系C授課關(guān)系SC圖3.1教師課程數(shù)據(jù)庫的關(guān)系模型,3.1關(guān)系模型,由上例可以看出,在一個關(guān)系中可以存放兩類信息:一類是描述實體本身的信息一類是描述實體(關(guān)系)之間的聯(lián)系的信息在層次模型和網(wǎng)狀模型中,把有聯(lián)系的實體(元組)用指針鏈接起來,實體之間的聯(lián)系是通過指針來實現(xiàn)的。而關(guān)系模型則采用不同的思想,即用二維表來表示實體與實體之間的聯(lián)系,這就是關(guān)系模型的本質(zhì)所在。所以,在建立關(guān)系模型時,只要把的所有的實體及其屬性用關(guān)系框架來表示,同時把實體之間的關(guān)系也用關(guān)系框架來表示,就可以得到一個關(guān)系模型。,關(guān)系模型具有以下特點:(1)描述的一致性。(2)利用公共屬性連接。(3)結(jié)構(gòu)簡單直觀。(4)有嚴格的理論基礎。(5)語言表達簡練。關(guān)系模型的缺點是在執(zhí)行查詢操作時,需要執(zhí)行一系列的查表、拆表、并表操作,故執(zhí)行時間較長,但是采用優(yōu)化技術(shù)的當代關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢操作的效率,完全不遜色于建立在其他數(shù)據(jù)模型上的數(shù)據(jù)庫系統(tǒng)。,3.2關(guān)系的定義,在關(guān)系模型中,數(shù)據(jù)是以二維表的形式存在的,這個二維表就叫做關(guān)系。關(guān)系理論是以集合代數(shù)理論為基礎的,因此,我們可以用集合代數(shù)給出二維表的“關(guān)系”定義。為了從集合論的角度給出關(guān)系的定義,我們先引入域和笛卡爾積的概念。,3.2.1域(Domain),域是一組具有相同數(shù)據(jù)類型的值的集合,又稱為值域。(用D表示)例如整數(shù)、實數(shù)、字符串的集合。域中所包含的值的個數(shù)稱為域的基數(shù)(用m表示)。關(guān)系中用域表示屬性的取值范圍。例如:D1=李力,王平,劉偉m1=3D2=男,女m2=2D3=47,28,30m3=3其中,D1,D2,D3為域名,分別表示教師關(guān)系中姓名、性別、年齡的集合。域名無排列次序,如D2=男,女=女,男,3.2.2笛卡爾積(CartesianProduct),給定一組域D1,D2,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡爾積為D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。由定義可以看出,笛卡爾積也是一個集合。其中:1.元素中的每一個di叫做一個分量(Component),來自相應的域(diDi)2.每一個元素(d1,d2,d3,dn)叫做一個n元組(n-tuple),簡稱元組(Tuple)。但元組不是di的集合,元組的每個分量(di)是按序排列的。如:(1,2,3)(2,3,1)(1,3,2);而集合中的元素是沒有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2),3.2.2笛卡爾積(CartesianProduct),3.若Di(i=1,2,n)為有限集,Di中的集合元素個數(shù)稱為Di的基數(shù),用mi(i=1,2,n)表示,則笛卡爾積D1D2Dn的基數(shù)M(即元素(d1,d2,dn)的個數(shù))為所有域的基數(shù)的累乘之積,即M=例如:上述表示教師關(guān)系中姓名、性別兩個域的笛卡爾積為:D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(劉偉,男),(劉偉,女)其中:李力、王平、劉偉、男、女都是分量(李力,男),(李力,女)等是元組其基數(shù)M=m1m2=3*2=6;元組的個數(shù)為6,4.笛卡爾積可用二維表的形式表示。例如,上述的6個元組可表示成表3.1。表3.1D1和D2的笛卡爾積由上例可以看出,笛卡爾積實際是一個二維表,表的框架由域構(gòu)成,表的任意一行就是一個元組,表中的每一列來自同一域,如第一個分量來自D1,第二個分量來自D2。,3.2.3關(guān)系(Relation),笛卡爾積D1D2Dn的任一子集稱為定義在域D1,D2,Dn上的n元關(guān)系(Relation),可用R(D1,D2Dn)表示如上例D1D2笛卡爾積的子集可以構(gòu)成教師關(guān)系T1,如下表:,幾點說明:1.R為關(guān)系名,n稱為關(guān)系的目或度(Degree)。當n=1時,稱為單元關(guān)系。當n=2時,稱為二元關(guān)系。當n=n時,稱為n元關(guān)系。如上例為二元關(guān)系,關(guān)系名為T。,幾點說明:2.該子集中的元素是關(guān)系中的元組,用r表示,關(guān)系中元組個數(shù)是關(guān)系的基數(shù)。如(李力,男),(王平,女),(劉偉,男)為三個元組,關(guān)系的基數(shù)為3。如果一個關(guān)系的元組個數(shù)是無限的,則稱為無限關(guān)系;如果一個關(guān)系的元組個數(shù)是有限的,則稱為有限關(guān)系。由于計算機存儲系統(tǒng)的限制,我們一般不去處理無限關(guān)系,而只考慮有限關(guān)系。,幾點說明:3.同樣可以把關(guān)系看成一個二維表。其中,(1)表的框架由域Di(i=1,2,n)構(gòu)成;(2)表的任意一行對應一個元組;(3)表的每一列來自同一域;(4)域可以相同,為了加以區(qū)別,每列起一個名字,稱為屬性,n目關(guān)系有n個屬性,屬性的名字唯一,屬性的取值范圍Di(i=1,2,n)稱為值域(5)具有相同關(guān)系框架的關(guān)系成為同類關(guān)系,例如,有另一個關(guān)系T2,如表3.3所示:T1和T2是同類關(guān)系。,幾點說明:4.數(shù)學上關(guān)系是笛卡爾積的任意子集,但在實際應用中關(guān)系是笛卡爾積中所取的有意義的子集。例如在表3.1中選取一個子集構(gòu)成如下關(guān)系,顯然不符合實際情況,在關(guān)系模型中,關(guān)系可進一步定義為:定義在域D1,D2,Dn(不要求完全相異)上的關(guān)系由關(guān)系頭(Heading)和關(guān)系體(Body)組成。關(guān)系頭:由屬性名A1,A2,An的集合組成,每個屬性Ai正好對應一個域Di(i=1,2,n),關(guān)系頭,也稱關(guān)系框架,相對固定,是關(guān)系的數(shù)據(jù)結(jié)構(gòu)的描述。關(guān)系體:是指關(guān)系結(jié)構(gòu)中的內(nèi)容或者數(shù)據(jù),并非固定不變,它隨元組的建立、刪除或修改而變化。,3.3關(guān)系的性質(zhì),盡管關(guān)系與二維表格、傳統(tǒng)的數(shù)據(jù)文件是非常類似的,但它們之間又有重要的區(qū)別。嚴格地說,關(guān)系是種規(guī)范化了的二維表中行的集合,為了使相應的數(shù)據(jù)操作簡化,在關(guān)系模型中,對關(guān)系作了種種限制,關(guān)系具有如下特性:1.關(guān)系中不允許出現(xiàn)相同的元組。因為數(shù)學上集合中沒有相同的元素,而關(guān)系是元組的集合,所以作為集合元素的元組應該是唯一的。2.關(guān)系中元組的順序(即行序)是無關(guān)緊要的,在一個關(guān)系中可以任意交換兩行的次序。因為集合中的元素是無序的,所以作為集合元素的元組也是無序的。根據(jù)關(guān)系的這個性質(zhì),可以改變元組的順序使其具有某種排序,然后按照順序查詢數(shù)據(jù),可以提高查詢速度。,3.關(guān)系中屬性的順序是無關(guān)緊要的,即列的順序可以任意交換。交換時,應連同屬性名一起交換,否則將得到不同的關(guān)系。例如:關(guān)系T1作如下交換時,無任何影響,如下表所示,4.同一屬性名下的各個屬性值必須來自同一個域,是同一類型的數(shù)據(jù)。5.關(guān)系中各個屬性必須有不同的名字,不同的屬性可來自同一個域,即它們的分量可以取自同一個域。例如,有如下表中關(guān)系,職業(yè)與兼職是兩個不同的屬性,但它們?nèi)∽酝粋€域職業(yè)教師,工人,輔導員,6.關(guān)系中每一分量必須是不可分的數(shù)據(jù)項,或者說所有屬性值都是原子的,即是一個確定的值,而不是值的集合。屬性值可以為空值,表示“未知”或“不可使用”,即不可“表中有表”。滿足此條件的關(guān)系稱為規(guī)范化關(guān)系,否則稱為非規(guī)范化關(guān)系。,例如,在表3.2中,籍貫含有省、市縣兩項,出現(xiàn)了“表中有表”的現(xiàn)象,則為非規(guī)范化關(guān)系,而把籍貫分成省、市縣兩列,將其規(guī)范化,如表3.3所示,表3.2表3.3,3.4關(guān)系的鍵,2.4.1候選鍵與關(guān)系鍵能唯一標識關(guān)系中元組的屬性或?qū)傩约?,則稱該屬性或?qū)傩约癁楹蜻x鍵(CandidateKey),也稱候選關(guān)鍵字或候選碼。如:“學生關(guān)系”中的學號能唯一標識每一個學生,則屬性學號是學生關(guān)系的候選鍵。在“選課關(guān)系”中,只有屬性的組合“學號+課程號”才能唯一地區(qū)分每一條選課記錄,則屬性集“學號+課程號”是選課關(guān)系的候選鍵,下面給出候選鍵的形式化定義:設關(guān)系R有屬性A1,A2,An,其屬性集K=(Ai,Aj,Ak),當且僅當滿足下列條件時,K被稱為候選鍵:1.唯一性(Uniqueness):關(guān)系R的任意兩個不同元組,其屬性集K的值是不同的。2.最小性(Minimally):組成關(guān)系鍵的屬性集(Ai,Aj,Ak)中,任一屬性都不能從屬性集K中刪掉,否則將破壞唯一性的性質(zhì),例如:“學生關(guān)系”中的每個學生的學號是唯一的,“選課關(guān)系”中“學號+課程號”的組合也是唯一的對于屬性集“學號+課程號”去掉任一屬性,都無法唯一標識選課記錄。,如果一個關(guān)系中有多個候選鍵,可以從中選擇一個作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為主關(guān)系鍵(PrimaryKey),或簡稱為主鍵、主碼、關(guān)系鍵、關(guān)鍵字。例如,假設在學生關(guān)系中沒有重名的學生,則“學號”和“姓名”都可作為學生關(guān)系的候選鍵。如果選定“學號”作為數(shù)據(jù)操作的依據(jù),則“學號”為主關(guān)系鍵。,主關(guān)系鍵是關(guān)系模型中的一個重要概念。每個關(guān)系必需選擇一個主關(guān)系鍵,選定以后,不能隨意改變。每個關(guān)系必定有且僅有一個主關(guān)系鍵,因為關(guān)系的元組無重復,至少關(guān)系的所有屬性的組合可作為主關(guān)系鍵,通常用較小的屬性組合作為主關(guān)系鍵。,3.4.2主屬性與非主屬性,主屬性(PrimeAttribute):包含在主碼中的的各屬性稱為主屬性。非主屬性(Non-PrimeAttribute):不包含在任何候選碼中的屬性稱為非主屬性。在最簡單的情況下,一個候選碼只包含一個屬性,如學生關(guān)系中的“學號”,教師關(guān)系中的“教師號”。在最極終端的情況下,所有屬性的組合是關(guān)系的候選碼,這時稱為全碼(all-key)。,下面是一個全碼的例子:假設有教師授課關(guān)系TCS,分別有三個屬性教師(T)、課程(C)和學生(S)。一個教師可以講授多門課程,一門課程可以為多個教師講授,同樣一個學生可以選聽多門課程,一門課程可以為多個學生選聽。在這種情況下,T,C,S三者之間是多對多關(guān)系,(T,C,S)三個屬性的組合是關(guān)系TCS的候選碼,稱為全碼,T,C,S都是主屬性。,3.4.3外部關(guān)系鍵,如果關(guān)系R2的一個或一組屬性X不是R2的主碼,而是另一關(guān)系R1的主碼,則該屬性或?qū)傩越MX稱為關(guān)系R2的外部關(guān)系鍵或外鍵(Foreignkey)。并稱關(guān)系R2為參照關(guān)系(referencingrelation),關(guān)系R1為被參照關(guān)系(referencedrelation)。由外部關(guān)系鍵的定義可知,被參照關(guān)系的主碼和參照關(guān)系的外碼必須定義在同一個域上。,習題1,學校,校長,聘用,姓名,校名,聘期,1,1,電話,地址,職稱,性別,學校(校名,電話,地址,校長名,聘期)校長(姓名,職稱,性別),習題2,商店(商店編號,商店名,地址)職工(職工編號,姓名,性別,商店編號,聘期),商店,職工,聘用,職工編號,商店編號,聘期,1,N,商店名,地址,姓名,性別,習題3,設某商業(yè)集團數(shù)據(jù)庫中有3個實體集,一是“商店”實體集,屬性有商店編號、商店店名、地址等;二是“商品”實體集,屬性有商品號、商品名、規(guī)格、單價;三是“職工”實體集,屬性有職工編號、姓名、性別、業(yè)績等。商店與商品之間存在“銷售”聯(lián)系,每個商店可銷售多種商品,每種商品也可放在多個商店銷售,每個商店銷售一種商品,有月銷售量;商店與職工之間存在著“聘用”聯(lián)系,每個商店有多名職工,每個職工只能在一個商店工作,商店聘用制共有聘期和月薪。試畫出該系統(tǒng)的E-R模型;并將其轉(zhuǎn)化為關(guān)系模型。,習題3參考答案,E-R圖轉(zhuǎn)換為關(guān)系模式,商店(商店編號,商店名,地址)職工(職工編號,姓名,性別,業(yè)績,商店編號,聘期,月薪)商品(商品號,商品名,規(guī)格,單價)銷售(商店編號,商品號,月銷售量),習題4,設某商業(yè)集團數(shù)據(jù)庫中有3個實體集,一是“公司”實體集,屬性有公司編號、公司名、地址等;二是“倉庫”實體集,屬性有倉庫編號、倉庫名、地址;三是“職工”實體集,屬性有職工編號、姓名、性別等。公司與倉庫之間存在“隸屬”聯(lián)系,每個公司管轄多個倉庫,每個倉庫只能屬于一個公司管轄;倉庫與職工之間存在著“聘用”聯(lián)系,每個倉庫可聘用多名職工,每個職工只能在一個倉庫工作,倉庫聘用職工有聘期和月薪。試畫出該系統(tǒng)的E-R模型;并將其轉(zhuǎn)化為關(guān)系模型。,習題4參考答案,E-R圖轉(zhuǎn)換為關(guān)系模式,公司(公司編號,公司名,地址)職工(職工編號,姓名,性別,倉庫編號,聘期,月薪)倉庫(倉庫編號,倉庫名,地址,公司編號),3.4.4關(guān)系模型的完整性,為了維護數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性,對關(guān)系數(shù)據(jù)庫的插入、刪除和修改操作必須有一定的約束條件,這就是關(guān)系模型的三類完整性:1.實體完整性(EntityIntegrity)指主關(guān)系鍵的值不能為空或部分為空。關(guān)系模型中的一個元組對應一個實體,一個關(guān)系則對應一個實體集。例如,一條學生記錄對應著一個學生,學生關(guān)系對應著學生的集合。,2.參照完整性(Referentialintegrity)如果關(guān)系R2的外部關(guān)系鍵X與關(guān)系R1的主關(guān)系鍵相符,則X的每個值或者等于R1中主關(guān)系鍵的某一個值,或者取空值。如圖3.3所示,學生關(guān)系中某個學生(如s1)“系別”的取值,必須在參照的系別關(guān)系中主關(guān)系鍵“系別”的值中能夠找到,否則表示把該學生分配到一個不存在的部門中,顯然不符合語義。如果某個學生(如s11)“系別”取空值,則表示該學生尚未分配到任何一個系。否則,它只能取專業(yè)關(guān)系中某個元組的專業(yè)號值,S(學生關(guān)系)D(系別關(guān)系)圖3.3學生表和系別表,3.用戶定義完整性(User-definedIntegrity)用戶定義完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件。它反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。例如,屬性值根據(jù)實際需要,要具備一些約束條件,如選課關(guān)系中成績不能為負數(shù);某些數(shù)據(jù)的輸入格式要有一些限制等關(guān)系模型應該提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的、系統(tǒng)的方法處理它們,而不要由應用程序承擔這一功能。,3.5.1關(guān)系模式和關(guān)系數(shù)據(jù)庫模式,一個關(guān)系的屬性名的集合R(A1,A2,An)叫做關(guān)系模式。其中:R為關(guān)系名,A1,A2,An為屬性名(i=1,2,n)。由定義可以看出,關(guān)系模式是關(guān)系的框架,或者稱為表框架,指出了關(guān)系由哪些屬性構(gòu)成,是對關(guān)系結(jié)構(gòu)的描述。一組關(guān)系模式的集合叫做關(guān)系數(shù)據(jù)庫模式,關(guān)系數(shù)據(jù)庫模式是對關(guān)系數(shù)據(jù)庫結(jié)構(gòu)的描述,或者說是對關(guān)系數(shù)據(jù)庫框架的描述,也就是前面所講過的關(guān)系頭,可以看作是關(guān)系的型。與關(guān)系數(shù)據(jù)庫模式對應的數(shù)據(jù)庫中的當前值就是關(guān)系數(shù)據(jù)庫的內(nèi)容,稱為關(guān)系數(shù)據(jù)庫的實例,即前面所講過的關(guān)系體,可以看作是關(guān)系的值。例如,在下圖所示的教學數(shù)據(jù)庫中,共有五個關(guān)系,其關(guān)系模式分別為:學生(學號,姓名,性別,年齡,系別)教師(教師號,姓名,性別,年齡,系別)課程(課程號,課程名,課時)選課(學號,課程號,成績)授課(教師號,課程號),在每個關(guān)系中,又有其相應的數(shù)據(jù)庫的實例例如:與學生關(guān)系模式對應的數(shù)據(jù)庫中的實例有如下6個元組:,3.5.2關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫是“一組隨時間變化,具有各種度的規(guī)范化關(guān)系的集合”。因為關(guān)系是由關(guān)系頭和關(guān)系體組成的,所以關(guān)系數(shù)據(jù)庫也可以看作是一組關(guān)系頭和關(guān)系體的集合。由此可見,關(guān)系數(shù)據(jù)庫也有型和值的概念,其型就是關(guān)系數(shù)據(jù)庫模式,相對固定;其值就是關(guān)系數(shù)據(jù)庫內(nèi)容,代表現(xiàn)實世界中的實體,而實體是隨著時間不斷變化的,所以其值在不同的時刻會有所變化。比如,學生和教師的年齡隨時間而增長,教師的工資和崗位津貼也會發(fā)生變化,3.6關(guān)系代數(shù),關(guān)系模型與其他模型相比,最有特色的是它的數(shù)據(jù)庫語言。目前關(guān)系數(shù)據(jù)庫所使用的語言一般都具有定義、查詢、更新和控制一體化的特點,而查詢是最主要的部分。所以說,關(guān)系數(shù)據(jù)庫的核心部分是查詢,故又稱為查詢語言,而查詢的條件要使用關(guān)系運算表達式來表示。因此,關(guān)系運算是設計關(guān)系數(shù)據(jù)語言的基礎。按表達查詢的方法不同,關(guān)系運算可分為關(guān)系代數(shù)和關(guān)系演算兩大類。,3.6.1關(guān)系代數(shù)的分類及其運算符,關(guān)系代數(shù)是對關(guān)系進行集合代數(shù)運算,是基于關(guān)系代數(shù)的操作語言,稱為關(guān)系代數(shù)語言,簡稱關(guān)系代數(shù)。它是由IBM在一個實驗性的系統(tǒng)上實現(xiàn)的,稱為ISBL(InformationSystemBaseLanguage)語言。關(guān)系代數(shù)的運算對象是關(guān)系,運算結(jié)果也是關(guān)系,關(guān)系代數(shù)用到的運算符主要包括四類:集合運算符:(并),-(差),(交),X(廣義笛卡爾積);專門的關(guān)系運算符:(選擇),(投影),(連接),(自然連接),(除);算術(shù)比較運算符:(大于),(大于等于),(小于),(小于等于),=(等于),(不等于);邏輯運算符:(與),(或),(非),關(guān)系代數(shù)運算按運算符的不同主要分為兩類:傳統(tǒng)的集合運算:把關(guān)系看成元組的集合,以元組作為集合中元素來進行運算,其運算是從關(guān)系的“水平”方向即行的角度進行的。包括并、差、交和笛卡爾積等運算。專門的關(guān)系運算:不僅涉及行運算,也涉及列運算,這種運算是為數(shù)據(jù)庫的應用而引進的特殊運算。包括選取、投影、連接和除法等運算。,3.6.2傳統(tǒng)的集合運算,對兩個關(guān)系的集合運算傳統(tǒng)的集合運算是二目運算,是在兩個關(guān)系中進行的。但是并不是任意的兩個關(guān)系都能進行這種集合運算,而是要在兩個滿足一定條件的關(guān)系中進行運算。設給定兩個關(guān)系R、S,若滿足:()具有相同的度n;()R中第i個屬性和S中第i個屬性必須來自同一個域。則說關(guān)系R、S是相容的。除笛卡爾積外,要求參加運算的關(guān)系必須滿足上述的相容性定義。,1.并(Union)關(guān)系R和關(guān)系S的并由屬于R或?qū)儆赟的元組組成,即R和S的所有元組合并,刪去重復元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:RS=t|tRtS對于關(guān)系數(shù)據(jù)庫,記錄的插入和添加可通過并運算實現(xiàn)。,并運算范例,R,S,RS,2.差(Difference)關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成,即R中刪去與S中相同的元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:R-S=t|tRtS通過差運算,可實現(xiàn)關(guān)系數(shù)據(jù)庫記錄的刪除,RS,差運算范例,R,S,RS,SR,3.交(Intersection)關(guān)系R與關(guān)系S的交由既屬于R又屬于S的元組組成,即R與S中相同的元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:RS=t|tRtS如果兩個關(guān)系沒有相同的元組,那么它們的交為空。交運算可以用差運算來表示:RS=R-(R-S),RS,交運算范例,R,S,RS,4.廣義笛卡爾積(ExtendedCartesianProduct)兩個分別為n目和m目關(guān)系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合,元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組。若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1*k2個元組,記作RS=trts|trRtsS關(guān)系的廣義笛卡爾積可用于兩關(guān)系的連接操作。,廣義笛卡爾積運算,A,B,11112222,C,D,1019201010102010,E,aabbaabb,rxs,【Example3.4】如圖(a)、(b)所示的兩個關(guān)系R與S為相容關(guān)系,(c)為R與S的并(d)為R與S的交,(e)為R與S的差,(f)為R與S的廣義笛卡爾積。RS(a)(b),RSR-S(c)(d)RS(e),RS,圖3.4傳統(tǒng)的集合運算,3.6.3專門的關(guān)系運算,1、選擇(Selection)-水平分割F(R)=ttRF=TrueF(R)表示從關(guān)系R中挑選出滿足條件表達式F的那些元組所構(gòu)成的關(guān)系。F的形式:由邏輯運算符連接算術(shù)表達式而成邏輯表達式:,算術(shù)表達式:XYX,Y是屬性名、常量、或簡單函數(shù)是比較算符,,選擇運算,R,AD)等值連接(C=D)(c)(d),等值連接(R.B=S.B)自然連接(e)(f)圖3.5連接運算舉例,結(jié)合上例,可以看出等值連接與自然連接的區(qū)別:1.等值連接中不要求相等屬性值的屬性名相同,而自然連接要求相等屬性值的屬性名必須相同,即兩關(guān)系只有在同名屬性才能進行自然連接。如上例R中的C列和S中的D列可進行等值連接,但因為屬性名不同,不能進行自然連接。2.等值連接不將重復屬性去掉,而自然連接去掉重復屬性,也可以說,自然連接是去掉重復列的等值連接。如上例R中的B列和S中的B列進行等值連接時,結(jié)果有兩個重復的屬性列B,而進行自然連接時,結(jié)果只有一個屬性列B。,3.6.3專門的關(guān)系運算,5除法(Division)RS=tt=tk1tk2“如果tk2S,則R”R能被S除的充分必要條件是:R中的屬性包含S中的所有屬性;R中有一些屬性不出現(xiàn)在S中。,3.6.3專門的關(guān)系運算,RS的運算步驟是:T=1,2,r-s(R)W=(TS)R(計算TS中不在R中的元組);V=1,2,r-s(W)RS=T-V。即RS=1,2,r-s(R)1,2,r-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)技項目資金管理辦法
- 公共收益處置管理辦法
- 民政救濟專戶管理辦法
- 出口毛巾加工管理辦法
- 視覺識別技術(shù)在串番茄采摘機器人設計與試驗中的應用
- 十堰市總承包管理辦法
- 變電站設計與施工指導手冊
- 河南擔保公司管理辦法
- 江蘇水利科技管理辦法
- 教育學課程論教學理論體系與考試要點解析
- RoHS及REACH培訓材料課件
- 員工宿舍表格模板
- 真需求-打開商業(yè)世界的萬能鑰匙
- 無創(chuàng)眶周抗衰規(guī)范
- 暑假假期安全教育(課件)-小學生主題班會
- 2024年1月黑龍江高中學業(yè)水平合格考政治試卷真題(含答案詳解)
- 供應室護理進修匯報總結(jié)
- 儲糧害蟲與技術(shù)和化學防治
- 自適應前照燈控制系統(tǒng)
- 電梯招標文件示范文本
- 上海市安裝工程預算定額(2000)工程量計算規(guī)則
評論
0/150
提交評論