數據庫基礎知識_第1頁
數據庫基礎知識_第2頁
數據庫基礎知識_第3頁
數據庫基礎知識_第4頁
數據庫基礎知識_第5頁
已閱讀5頁,還剩160頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

評論

0/150

提交評論