版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章
資料庫系統(tǒng)導論
第一章
資料庫系統(tǒng)導論
資料庫(database)是通用化的相關數(shù)據(jù)的集合,它不僅包括數(shù)據(jù)本身,而且包括關於數(shù)據(jù)之間的聯(lián)繫?!?.1數(shù)據(jù)與資訊1.1.1數(shù)據(jù)、資訊與數(shù)據(jù)處理1.1.2資訊系統(tǒng)2024-2-1141.數(shù)據(jù)的概念
數(shù)據(jù)(Data),通常只用符號記錄下來的可加以鑒別的資訊(Information),即描述事物的符號記錄稱為數(shù)據(jù)。描述事物的符號可以是數(shù)字,也可以是文字、圖形、圖像、聲音、語言等,數(shù)據(jù)有多種表現(xiàn)形式,它們都可以經(jīng)過數(shù)位化後存入電腦。數(shù)據(jù)的概念包括兩個方面:其一,數(shù)據(jù)內容是事物特性的反映或描述;其二,數(shù)據(jù)是符號的集合。
符號:不僅指數(shù)字、字母、文字和其他特殊字元,且包括圖形、圖像、聲音等多媒體數(shù)據(jù)。
記錄:不僅指寫在紙上,而且包括記錄在各種介質上。
通信:在空間上傳遞
存儲:在時間上傳遞1.1.1數(shù)據(jù)、資訊與數(shù)據(jù)處理第一章資料庫系統(tǒng)導論2024-2-1152.資訊的概念資訊是關於現(xiàn)實世界事物的存在方式或運動形態(tài)反映的綜合,是人們進行各種活動所需要的知識。數(shù)據(jù)與資訊的關係:有聯(lián)繫也有區(qū)別
數(shù)據(jù)是載荷資訊的物理符號或稱為載體,數(shù)據(jù)能表示資訊,但並非任何數(shù)據(jù)都能表示資訊。
資訊是人們消化理解了的數(shù)據(jù)。
資訊是抽象的,不隨數(shù)據(jù)設備所決定的數(shù)據(jù)形式而改變。
數(shù)據(jù)的表示方式具有可選性。
資訊是反映客觀現(xiàn)實世界的知識,用不同的數(shù)據(jù)形式可以表示同樣的資訊。第一章資料庫系統(tǒng)導論2024-2-1163.數(shù)據(jù)處理
數(shù)據(jù)處理是指將數(shù)據(jù)轉換成資訊的過程。廣義地講,它包括對數(shù)據(jù)的收集、存儲、加工、分類、檢索、傳播等一系列活動。狹義地講,它是指對所輸入的數(shù)據(jù)進行加工整理。資訊=數(shù)據(jù)+處理例如,人的“出生日期”是與生俱來的不可改變的基本特徵之一,屬於原始數(shù)據(jù),而年齡使用現(xiàn)年與出生日期相減而得的,具有相對性。第一章資料庫系統(tǒng)導論2024-2-117數(shù)據(jù)收集原始數(shù)據(jù)資訊傳播二次數(shù)據(jù)數(shù)據(jù)存儲((資訊)處理1數(shù)據(jù)存儲處理2通信
圖1-1數(shù)據(jù)與資訊的關係第一章資料庫系統(tǒng)導論2024-2-1181.資訊系統(tǒng)
資訊系統(tǒng)只為了某些明確的目的而建立的,它是有人員、設備、程式和數(shù)據(jù)集合構成的統(tǒng)一整體。資訊系統(tǒng)的主要功能是提供資訊,以支持一個組織機構的運行、管理和決策。更確切地說,資訊系統(tǒng)將不使用的數(shù)據(jù)形式加工成可利用的形式。1.1.2資訊系統(tǒng)第一章資料庫系統(tǒng)導論2024-2-1192.資訊系統(tǒng)分類(1)數(shù)據(jù)處理系統(tǒng)EDP(ElectronicDataProcessing):用電腦代替繁雜的手工事務處理工作。目的:提高數(shù)據(jù)處理的準確性、及時性,節(jié)約人力,提高工作效率。(2)管理資訊系統(tǒng)MIS(ManagementInformationSystem):由若干子系統(tǒng)構成的一個集成的人機系統(tǒng),從組織的全局出發(fā),實現(xiàn)數(shù)據(jù)共用
,提供分析、計畫、預測、控制等方面的綜合資訊。目的:發(fā)揮系統(tǒng)的綜合效益,提高管理水準。(3)決策支持系統(tǒng)DSS(DecisionSupportSystem):為決策過程提供有效的資訊和輔助決策手段的人機系統(tǒng)。目的:幫助決策者提高決策的科學性及有效性。第一章資料庫系統(tǒng)導論§1.2電腦數(shù)據(jù)管理的發(fā)展2024-2-1111
20世紀50年代以前,數(shù)據(jù)的組織和管理完全靠程式員手工完成。其硬體是:外存只有紙帶、卡片、磁帶,沒有磁片等直接存取的存儲設備;軟體是:沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟體;數(shù)據(jù)處理方式是批處理。數(shù)據(jù)與應用程式之間的關係如圖1-2所示。第一階段:人工管理階段(50年代中期以前)第一章資料庫系統(tǒng)導論2024-2-1112圖1-2人工管理數(shù)據(jù)與程式的關係應用程式2數(shù)據(jù)2數(shù)據(jù)n應用程式n應用程式1數(shù)據(jù)1
第一章資料庫系統(tǒng)導論2024-2-1113
特點:
(1)數(shù)據(jù)與程式不具有獨立性一組數(shù)據(jù)對應一組程式。這就使得程式依賴於數(shù)據(jù),如果數(shù)據(jù)的類型、格式或者數(shù)據(jù)量、存取方法、輸入輸出方式等改變了,程式必須做相應的修改。(2)數(shù)據(jù)不能長期保存由於數(shù)據(jù)是面向應用程式的,在一個程式中定義的數(shù)據(jù),無法被其他程式利用,因此程式與程式之間存在大量的重複數(shù)據(jù)。(3)系統(tǒng)中沒有對數(shù)據(jù)進行管理的軟體數(shù)據(jù)管理任務,包括存儲結構、存儲方法、輸入輸出方法等完全由電腦自負其責。這就給應用程式設計人員增加了很大的負擔。第一章資料庫系統(tǒng)導論2024-2-1114第二階段:檔系統(tǒng)階段(50年代後期至60年代中後期)
20世紀50年代後期到60年代中期,這時硬體方面已有了磁片、磁鼓等直接存取存儲設備;軟體方面,操作系統(tǒng)中已經(jīng)有了專門的數(shù)據(jù)管理軟體,一般稱為檔系統(tǒng);處理方式上不僅有了批處理,而且能夠聯(lián)機即時處理。由於檔系統(tǒng)具有數(shù)據(jù)的增、刪、改等操作,使得數(shù)據(jù)管理變得輕鬆,且數(shù)據(jù)可以反復使用。但這個階段仍存在一些問題,如數(shù)據(jù)冗餘度大、數(shù)據(jù)共用性差等。第一章資料庫系統(tǒng)導論2024-2-1115檔系統(tǒng)存在的問題
(1)數(shù)據(jù)冗餘和數(shù)據(jù)不一致(DataRedundancyandInconsistency)(2)數(shù)據(jù)訪問困難(DifficultyinAccessingData)(3)數(shù)據(jù)孤立(DataIsolation)(4)完整性問題(IntegrityProblems)(5)原子性問題(AtomicityProblems)(6)併發(fā)性問題(Concurrent-accessAnomalies)(7)安全性問題(SecurityProblems)第一章資料庫系統(tǒng)導論2024-2-1116
圖1-3檔系統(tǒng)數(shù)據(jù)與程式的關係物理檔N物理檔1應用程式N應用程式1應用程式2物理檔2
檔系統(tǒng)
第一章資料庫系統(tǒng)導論2024-2-1117
20世紀60年代後期以來,電腦越來越多地應用於管理領域,使得數(shù)據(jù)量急劇增長。同時,人們對數(shù)據(jù)共用的要求也越來越強烈。這時硬體已有大容量硬碟,硬體價格下降;軟體則價格上升,為編制和維護系統(tǒng)軟體及應用程式所需的成本相對增加;在處理方式上,聯(lián)機即時處理要求更多,並開始提出和考慮分佈處理。檔系統(tǒng)管理數(shù)據(jù)已經(jīng)不能滿足應用的需求,於是為了解決多用戶、多應用共用數(shù)據(jù)的要求,使數(shù)據(jù)為盡可能多的應用服務,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟體系統(tǒng)即資料庫管理系統(tǒng)。第三階段:資料庫系統(tǒng)階段(60年代後期至70年代後期)第一章資料庫系統(tǒng)導論2024-2-1118與人工管理和文件系統(tǒng)相比,資料庫系統(tǒng)的特點主要有以下幾個方面:(1)數(shù)據(jù)結構化(2)數(shù)據(jù)的共用性高,冗餘度低,易擴充(3)數(shù)據(jù)獨立性高(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制第一章資料庫系統(tǒng)導論2024-2-1119
圖1-5分佈式資料庫系統(tǒng)
第一章資料庫系統(tǒng)導論電腦1
DB1通信網(wǎng)絡電腦2電腦3
DB3
DB2§1.3資料庫系統(tǒng)的組成1.3.1資料庫系統(tǒng)的組成1.3.2三級結構1.3.3資料庫的二級映象功能與數(shù)據(jù)獨立性1.3.4DBMS的主要功能2024-2-11211.硬體系統(tǒng)2.資料庫集合3.系統(tǒng)軟體(DBMS)(DataBaseManagementSystem,簡稱DBMS)4.資料庫管理員(DataBaseAdministrator,簡稱DBA)5.用戶1.3.1資料庫系統(tǒng)的組成第一章資料庫系統(tǒng)導論2024-2-1122資料庫管理系統(tǒng)操作系統(tǒng)硬體資料庫應用系統(tǒng)專業(yè)用戶資料庫管理員最終用戶圖1-6資料庫系統(tǒng)層次示意圖第一章資料庫系統(tǒng)導論2024-2-1123
資料庫系統(tǒng)的三級模式結構是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內模式三級構成。1.模式(Schema)2.外模式(ExternalSchema)3.內模式(InternalSchema)1.3.2三級結構第一章資料庫系統(tǒng)導論2024-2-1124
模式也稱邏輯模式,是資料庫中全體數(shù)據(jù)的邏輯結構和特徵的描述,是所有用戶的公共數(shù)據(jù)視圖,屬於邏輯層抽象(LogicalLevel)。它是資料庫系統(tǒng)模式結構的中間層,既不涉及數(shù)據(jù)的物理存儲細節(jié)和硬體環(huán)境,也與具體的應用程式,與所使用的應用開發(fā)工具及高級程式設計語言(如C,COBOL,F(xiàn)ORTRAN)無關。模式實際上是資料庫數(shù)據(jù)在邏輯級上的視圖。一個資料庫只有一個模式。資料庫模式以某一種數(shù)據(jù)模型為基礎,統(tǒng)一綜合地考慮了所有用戶的需求,並將這些需求有機地結合成一個邏輯整體。定義模式時不僅要定義數(shù)據(jù)的邏輯結構,例如數(shù)據(jù)記錄由哪些資料項目構成,資料項目的名字、類型、取值範圍等,而且要定義數(shù)據(jù)之間的聯(lián)繫,定義與數(shù)據(jù)有關的安全性、完整性要求。第一章資料庫系統(tǒng)導論2024-2-1125
外模式也稱子模式(Subschema)或用戶模式,屬於視圖層抽象(ViewLevel),它是資料庫用戶(包括應用程式員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特徵的描述,是資料庫用戶的數(shù)據(jù)視圖,是與某一應用有關的數(shù)據(jù)邏輯表示。外模式通常是模式的子集。一個資料庫可以有多個外模式。由於它是各個用戶的數(shù)據(jù)視圖,如果不同的用戶在應用需求、看待數(shù)據(jù)的方式、對數(shù)據(jù)保密的要求等方面存在差異,則其外模式描述就是不同的。即使對模式中同一數(shù)據(jù),在外模式中的結構、類型、長度、保密級別等都可以不同。另一方面,同一外模式也可以為某一用戶的多個應用系統(tǒng)所使用,但一個應用程式只能使用一個外模式。第一章資料庫系統(tǒng)導論2024-2-1126
內模式也稱存儲模式(StorageSchema),屬於物理層抽象(PhysicalLevel)。一個資料庫只有一個內模式。它是數(shù)據(jù)物理結構和存儲方式的描述,是數(shù)據(jù)在資料庫內部的表示方式。例如,記錄的存儲方式是順序存儲、按照B樹結構存儲還是按hash方法存儲;索引按照什麼方式組織;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結構有何規(guī)定等。第一章資料庫系統(tǒng)導論2024-2-1127資料庫管理系統(tǒng)在三級模式之間提供了兩層映象:
·
外模式/模式映象
·
模式/內模式映象正是這兩層映象保證了資料庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。第一章資料庫系統(tǒng)導論1.3.3資料庫的二級映象功能與數(shù)據(jù)獨立性2024-2-11281.外模式/模式映象模式描述的是數(shù)據(jù)的全局邏輯結構,外模式描述的是數(shù)據(jù)的局部邏輯結構。對應於同一個模式可以有任意多個外模式。對於每一個外模式,資料庫系統(tǒng)都有一個外模式/模式映象,它定義了該外模式與模式之間的對應關係。這些映象定義通常包含在各自外模式的描述中。當模式改變時(例如增加新的關係、新的屬性、改變屬性的數(shù)據(jù)類型等),由資料庫管理員對各個外模式/模式的映象作相應改變,可以使外模式保持不變。應用程式是依據(jù)數(shù)據(jù)的外模式編寫的,從而應用程式不必修改,保證了數(shù)據(jù)與程式的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。第一章資料庫系統(tǒng)導論2024-2-11292.模式/內模式映象資料庫中只有一個模式,也只有一個內模式,所以模式/內模式映象是唯一的,它定義了數(shù)據(jù)全局邏輯結構與存儲結構之間的對應關係。例如,說明邏輯記錄和字段在內部是如何表示的。該映象定義通常包含在模式描述中。當資料庫的存儲結構改變了(例如選用了另一種存儲結構),由資料庫管理員對模式/內模式映象作相應改變,可以使模式保持不變,從而應用程式也不必改變。保證了數(shù)據(jù)與程式的物理獨立性,簡稱數(shù)據(jù)的物理獨立性。第一章資料庫系統(tǒng)導論2024-2-1130物理獨立性是指用戶的應用程式與存儲在磁片上的資料庫中數(shù)據(jù)的相互獨立性。也就是說,數(shù)據(jù)在磁片上的資料庫中的存儲是由DBMS管理的,用戶程式一般不需要瞭解。應用程式要處理的只是數(shù)據(jù)的邏輯結構也就是資料庫中的數(shù)據(jù),這樣在電腦存儲設備上的物理存儲改變時,應用程式可以不必改變,而由DBMS來處理這種改變,這又稱為“物理獨立性”。有的DBMS還提供一些功能使得某些程式上資料庫的邏輯結構改變了,用戶程式也可以不改變,這又稱為“邏輯獨立性”所以說,數(shù)據(jù)獨立性是資料庫的一種特徵和優(yōu)點,它有利於在資料庫結構修改應用程式盡可能的不改變或少改變,這樣就大大減少了應用程式開發(fā)人員的工作量。第一章資料庫系統(tǒng)導論2024-2-1131圖1-7資料庫的三級結構和兩個獨立性2024-2-11321.數(shù)據(jù)定義功能
DBMS提供數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)2.數(shù)據(jù)操縱功能
DBMS還提供數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)第一章資料庫系統(tǒng)導論1.3.4DBMS的主要功能2024-2-11333.資料庫的運行管理(1)併發(fā)(Concurrency)(2)數(shù)據(jù)的安全性(Security)保護(3)數(shù)據(jù)的完整性(Integrity)檢查(4)資料庫恢復(Recovery)4.數(shù)據(jù)字典數(shù)據(jù)字典DD(DataDictionary)中存放著對實際資料庫各級模式所做的定義,即對數(shù)據(jù)庫結構的描述。第一章資料庫系統(tǒng)導論§1.4數(shù)據(jù)和數(shù)據(jù)聯(lián)繫的描述1.4.1三個世界1.4.2E-R模型(Entity-RelationshipModel)1.4.3E-R模型的實例2024-2-11351.現(xiàn)實世界在現(xiàn)實世界中,事物及事物之間存在著聯(lián)繫,這種聯(lián)繫是客觀存在的。2.概念世界(1)實體(Entity)客觀存在並可相互區(qū)別的事物稱為實體。例如,一個職工、一個學生、一個部門、一門課、學生的一次選課、部門的一次訂貨、老師與系的工作關係(即某位老師在某系工作)等都是實體。(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。例如學生實體可以由學號、姓名、性別、出生年份、系、入學時間等屬性組成。(94002268,張山,男,1976,電腦系,1994)。第一章資料庫系統(tǒng)導論1.4.1三個世界2024-2-1136
(3)關鍵字(Key)唯一標識實體的屬性集稱為關鍵字。例如學號是學生實體的關鍵字。(4)聯(lián)繫(Relationship)在現(xiàn)實世界中,事物內部以及事物之間是有聯(lián)繫的,這些聯(lián)繫在資訊世界中反映為實體(型)內部的聯(lián)繫和實體(型)之間的聯(lián)繫。實體內部的聯(lián)繫通常是指組成實體的各屬性之間的聯(lián)繫。實體之間的聯(lián)繫通常是指不同實體集之間的聯(lián)繫。第一章資料庫系統(tǒng)導論2024-2-1137(5)實體型(EntityType)具有相同屬性的實體必然具有共同的特徵和性質。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,學生(學號,姓名,性別,出生年份,系,入學時間)就是一個實體型。(6)實體集(EntitySet)同型實體的集合稱為實體集。例如,全體學生就是一個實體集。第一章資料庫系統(tǒng)導論2024-2-1138相關英文講解:Entitytype:Agroupofobjectswiththesameproperties,whichareidentifiedbytheenterpriseashavinganindependentexistence.Entityoccurrence:Auniquelyidentifiableobjectofanentitytype.Attribute:Apropertyofanentityorarelationshiptype.Candidatekey:Theminimalsetofattributesthatuniquelyidentifieseachoccurrenceofanentitytype.3.機器世界資料庫中的數(shù)據(jù)是有結構的,這種結構用數(shù)據(jù)模型表示。數(shù)據(jù)模型將概念世界中的實體及實體間的聯(lián)繫進一步抽象成便於電腦處理的方式。第一章資料庫系統(tǒng)導論2024-2-1139第一章資料庫系統(tǒng)導論1.4.2E-R模型(Entity-RelationshipModel)1.概念概念模型是對資訊世界建模,所以概念模型應該能夠方便、準確地表示出上述資訊世界中的常用概念。概念模型的表示方法很多,其中最為著名最為常用的是P.P.S.Chen於1976年提出的實體-聯(lián)繫方法(Entity-RelationshipApproach)。該方法用E-R圖來描述現(xiàn)實世界的概念模型,E-R方法也稱為E-R模型。2024-2-11402.描述概念世界,建立概念模型的實用工具
E-R圖提供了表示實體型、屬性和聯(lián)繫的方法:
·
實體型:用矩形表示,矩形框內寫明實體名。
·
屬性:用橢圓形表示,並用無向邊將其與相應的實體連接起來。
·
聯(lián)繫:用菱形表示,菱形框內寫明聯(lián)繫名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1,1:n或m:n)。
相關英文講解:TheERmodelusesahigherlevelofabstractionthanthesemanticnetbycombiningsetsofentityoccurrencesintoentitytypesandsetsofrelationshipoccurrencesintorelationshiptypes.第一章資料庫系統(tǒng)導論2024-2-11413.聯(lián)繫的類型兩個實體型之間的聯(lián)繫可以分為三類:(1)一對一聯(lián)繫(1:1)設A,B為兩個實體集。若A中的每個實體至多和B中的一個實體有聯(lián)繫,反過來,B中的每實體至多和A中的一個實體有聯(lián)繫,稱A對B或B對A是1:1聯(lián)繫,見圖1-8。例如,一個公司只有一個總經(jīng)理,同時一個總經(jīng)理不能在其他公司兼職。注意“至多”一詞的含義,1:1聯(lián)繫不一定都是一一對應的關係。第一章資料庫系統(tǒng)導論2024-2-1142圖1-8一對一聯(lián)繫第一章資料庫系統(tǒng)導論2024-2-1143(2)一對多聯(lián)繫(1:n)如果A中的每個實體可以和B中的幾個試題有聯(lián)繫,而B中的每個實體至多和A中的一個實體有聯(lián)繫,那麼A對B屬於1:n聯(lián)繫,見圖1-9。這類聯(lián)繫比較普遍,例如,部門與職工只在一個部門就職(只占一個部門的編制)。又如,一個學生只能在一個系註冊,而一個系有很多個學生。一對一的聯(lián)繫可以看作一對多聯(lián)繫的一個特殊情況,即n=1時的特例。第一章資料庫系統(tǒng)導論2024-2-1144圖1-9一對多聯(lián)繫第一章資料庫系統(tǒng)導論2024-2-1145(3)多對多聯(lián)繫(m:n)若A中的每個實體可與和B中的多個實體有聯(lián)繫,反過來,B中的每個實體也可以與A中的多個試題有聯(lián)繫,稱A對B或B對A是m:n聯(lián)繫,見圖1-10。例如,一個學生可以選修多門課程,一門課程由多名學生選修。學生和課程間存在多對多聯(lián)繫。圖書與讀者之間是m:n聯(lián)繫:一位讀者可以借閱若干本圖書;同一本書可以相繼被幾個讀者借閱。研究人員和科研之間是m:n聯(lián)繫:一個人可以參加多個課題;一個課題由多個人參加。第一章資料庫系統(tǒng)導論2024-2-1146圖1-10多對多聯(lián)繫第一章資料庫系統(tǒng)導論2024-2-1147相關英文講解:Relationshiptype:Asetofmeaningfulassociationsamongentitytypes.Relationshipoccurrence:Auniquelyidentifiableassociation,whichincludesoneoccurrencefromeachparticipatingentitytype.0..1Zerooroneentityoccurrence1..1(orjust1)Exactlyoneentityoccurrence0..*(orjust*)Zeroormanyentitiesoccurrences1..*Oneormanyentityoccurrences第一章資料庫系統(tǒng)導論2024-2-1148
以一個簡單的工廠管理為例。通過實地調查分析,該工廠需要管理的實體類型有雇員、部門、專案、零件、供應商和倉庫。在該系統(tǒng)中,與管理這些實體有關的有以下這些聯(lián)繫:(1)一個雇員只在一個部門工作,一個部門可以有多個雇員。(2)一個雇員可以參加一個以上的專案,每個專案常需要多個人參加。(3)每個專案必須確定一個負責人,一個人可以負責多個專案。(4)一個供應商可以為若干個專案供應零件,每個專案可以從不同的供應商那裏採購零件,每個專案需要多種零件。(5)系統(tǒng)還保存各個供應商可以提供的各種零件與數(shù)量。(6)一種零件還可以由其他幾種零件組裝而成。(7)購買的零件存放在倉庫裏,一個倉庫存放多種零件,一種零件也可以存放在不同的倉庫當中。第一章資料庫系統(tǒng)導論1.4.3E-R模型的實例2024-2-1149雇員雇員號,姓名,性別,職稱,工資,住址部門部門號,名稱,電話,部門地址專案專案號,專案名,預算,開始日期,完成日期零件零件號,零件名,規(guī)模,單價供應商編號,名稱,聯(lián)繫人,電話,帳號倉庫庫號,地址,面積,電話表1-1第一章資料庫系統(tǒng)導論2024-2-1150圖1-11一個工廠的E-R圖第一章資料庫系統(tǒng)導論2024-2-1151本章小結
在這一章,我們介紹了數(shù)據(jù)與資訊的區(qū)別與聯(lián)繫、資訊系統(tǒng)、電腦數(shù)據(jù)管理發(fā)展的4個階段(人工管理階段、檔系統(tǒng)階段、資料庫系統(tǒng)階段和分佈式資料庫系統(tǒng)階段)、資料庫系統(tǒng)的組成、DBMS的主要功能,以及數(shù)據(jù)和數(shù)據(jù)聯(lián)繫的描述方法:E-R模型。第一章資料庫系統(tǒng)導論2024-2-1152教學目的:l
瞭解幾種典型的數(shù)據(jù)模型,重點掌握關係模型l
掌握關係資料庫的基本概念l
掌握關係代數(shù)中6種基本運算教學要求:l
牢記有關概念,掌握6種關係運算第二章關係數(shù)據(jù)模型2024-2-1153課程章節(jié)§2.1非關係模型§2.2關係模型§2.3關係運算第二章關係數(shù)據(jù)模型2024-2-1154§2.1非關係模型
2.1.1層次模型(HierarchicalDataModel)滿足下麵兩個條件的基本層次聯(lián)繫的集合為層次模型:(1)有且只有一個結點沒有雙親結點,這個結點稱為根結點;(2)根以外的其他結點有且只有一個雙親結點。在層次模型中,每個結點表示一個記錄類型,記錄(類型)之間的聯(lián)繫用結點之間的連線(有向邊)表示,這種聯(lián)繫是父子之間的一對多的聯(lián)繫。這就使得層次資料庫系統(tǒng)只能處理一對多的實體聯(lián)繫。
第二章關係數(shù)據(jù)模型2024-2-11551.層次數(shù)據(jù)模型的數(shù)據(jù)結構
2.多對多聯(lián)繫在層次模型中的表示
3.層次模型的數(shù)據(jù)操縱與完整性約束
4.層次數(shù)據(jù)模型的存儲結構
5.層次模型的優(yōu)缺點
第二章關係數(shù)據(jù)模型2024-2-1156層次模型的優(yōu)點主要有:
·
層次數(shù)據(jù)模型本身比較簡單。
·
對於實體間聯(lián)繫是固定的,且預先定義好的應用系統(tǒng),採用層次模型來實現(xiàn),其性能優(yōu)於關係模型,不低於網(wǎng)狀模型。
·
層次數(shù)據(jù)模型提供了良好的完整性支持。
層次模型的缺點主要有:
·
現(xiàn)實世界中很多聯(lián)繫是非層次性的,如多對多聯(lián)繫、一個結點具有多個雙親等,層次模型表示這類聯(lián)繫的方法很笨拙,只能通過引入冗餘數(shù)據(jù)(易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)組織(引入虛擬結點)來解決。
·
對插入和刪除操作的限制比較多。
·
查詢子女結點必須通過雙親結點。
·
由於結構嚴密,層次命令趨於程式化。
第二章關係數(shù)據(jù)模型2024-2-11572.1.2網(wǎng)狀模型(NetworkDataModel)
1.網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結構
把滿足以下兩個條件的基本層次聯(lián)繫集合稱為網(wǎng)狀模型:(1)允許一個以上的結點無雙親;(2)一個結點可以有多於一個的雙親。2.網(wǎng)狀數(shù)據(jù)模型的操縱與完整性約束
3.網(wǎng)狀數(shù)據(jù)模型的存儲結構
第二章關係數(shù)據(jù)模型2024-2-1158學生選修程課(a)S1C1
S1C2S2C2S2C1S2C3S3C1S3C2S3C3S3C4C1C3C4C2S1S3S2(b)
圖2-1網(wǎng)狀模型第二章關係數(shù)據(jù)模型2024-2-11594.網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點
網(wǎng)狀數(shù)據(jù)模型的優(yōu)點主要有:
·
能夠更為直接地描述現(xiàn)實世界,如一個結點可以有多個雙親。
·
具有良好的性能,存取效率較高。
網(wǎng)狀數(shù)據(jù)模型的缺點主要有:
·
結構比較複雜,而且隨著應用環(huán)境的擴大,資料庫的結構就變得越來越複雜,不利於最終用戶掌握。
·
其DDL,DML語言複雜,用戶不容易使用。第二章關係數(shù)據(jù)模型2024-2-11602.1.3面向對象模型(ObjectOrientedModel)
面向對象模型中最基本的概念是對象(object)和類(class)。1.對象現(xiàn)實世界中實體的模型化,它和記錄的概念相似,但更複雜。每個對象有一個唯一的識別字,並把一個狀態(tài)(state)和一個行為(behavior)封裝在一起。2.類每個類有兩部分組成,其一是對象類型;其二是對這個對象類型進行的操作方法。對象的狀態(tài)是描述該對象屬性值的集合,對象的行為是對該對象操作的集合。第二章關係數(shù)據(jù)模型2024-2-11613.類層次一個系統(tǒng)中所有的類和子類組成一個樹狀的類層次。4.面向對象模型的優(yōu)缺點優(yōu)點:由於面向對象模型中不僅包括描述對象狀態(tài)的屬性集,而且包括類的方法及類層次,具有更加豐富的表達能力。因此,面向對象的資料庫比層次、網(wǎng)狀、關係資料庫使用方便。缺點:由於模型複雜,系統(tǒng)實現(xiàn)起來難度大。第二章關係數(shù)據(jù)模型2024-2-1162
§2.2關係模型(RelationDataModel)
2.2.1二維表
關係模型是用二維表的形式來表示實體和實體間聯(lián)繫的數(shù)據(jù)模型。關係的邏輯結構是一個二維表。表2-1和表2-2分別代表訂單和庫存兩個關係。表2-1訂單關係訂單號貨號訂貨單位售價訂貨量送貨地點96001JW65陽光公司806.50280天津96002VF90友誼商城588.881700北京96003AB55和平飯店250.991005上海96004EF77五環(huán)實業(yè)674.00600北京第二章關係數(shù)據(jù)模型2024-2-1163表2-2庫存關係貨號品名庫存量倉庫地點單價VF90電話機1000北京550.00JW65收錄機300上海800.50SL88錄影機2600北京11898.50AB55收音機3000上海280.00EF77電視機1200廣州600.00第二章關係數(shù)據(jù)模型2024-2-11642.2.2關係術語
1.關係(Relations)一個關係對應通常說的一張表;2.元組(Tuples)表中的一行即為一個元組;3.屬性(Attributes)表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。如上表有六列,對應六個屬性(學號,姓名,年齡,性別,系和年級);第二章關係數(shù)據(jù)模型2024-2-1165
4.域(Domains)屬性的取值範圍稱為該屬性的域。如人的年齡一般在1~150歲之間,大學生年齡屬性的域是(14~38),性別的域是(男,女),系別的域是一個學校所有系名的集合;學號的域為8位整數(shù),姓名的域為字串集合。5.關鍵字或碼(Keys)表中的某個屬性組,它可以唯一確定一個元組,如圖1.27中的學號,可以唯一確定一個學生,也就成為本關係的主關鍵字;6.分量(Component):元組中的一個屬性值;7.關係模式(RelationSchemas)對關係的描述,一般表示為:關係名(屬性1,屬性2,…,屬性n)第二章關係數(shù)據(jù)模型2024-2-1166相關英文講解:Recursiverelationship:Arelationshiptypewherethesameentitytypeparticipatesmorethanonceindifferentroles.Attribute:Apropertyofanentityorarelationshiptype.Attributedomain:Thesetofallowablevaluesforoneormoreattributes.Candidatekey:Theminimalsetofattributesthatuniquelyidentifieseachoccurrenceofanentitytype.第二章關係數(shù)據(jù)模型2024-2-11672.2.3關係模型的特點
1.關係必須規(guī)範化所謂規(guī)範化是指關係模型中的每一個關係模式都必須滿足一定的要求。2.
模型概念單一無論實體還是實體之間的聯(lián)繫都用關係表示。對數(shù)據(jù)的檢索結果也是關係(即表)。所以其數(shù)據(jù)結構簡單、清晰,用戶易懂易用。3.集合操作在關係模型中,操作的對象和結果都是元組的集合,即關係。第二章關係數(shù)據(jù)模型2024-2-1168關係數(shù)據(jù)模型還具有下列優(yōu)點:
·關係模型與非關係模型不同,它是建立在嚴格的數(shù)學概念的基礎上的。
·關係模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程式員的工作和數(shù)據(jù)庫開發(fā)建立的工作。關係數(shù)據(jù)模型最主要的缺點是,由於存取路徑對用戶透明,查詢效率往往不如非關係數(shù)據(jù)模型。因此為了提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)資料庫管理系統(tǒng)難度。第二章關係數(shù)據(jù)模型2024-2-1169§2.3關係運算
關係代數(shù)的運算對象是關係,運算結果亦為關係。關係代數(shù)用到的運算符包括四類:集合運算符、專門的關係運算符、算術比較符和邏輯運算符。關係代數(shù)的運算按運算符的不同可分為傳統(tǒng)的集合運算和專門的關係運算兩類。第二章關係數(shù)據(jù)模型2024-2-11702.3.1傳統(tǒng)的集合運算傳統(tǒng)的集合運算是二目運算,包括並、差、交三種運算。1.並運算(Union)設有兩個關係R和S,它們具有相同的元素。R和S的並是由屬於R或屬於S的元素組組成的集合。2.差運算(Difference)設有兩個關係R和S,它們具有相同的元數(shù)。R和S的差是由屬於R但不屬於S的元組組成的集合。3.交(Intersection)設有兩個關係R和S,它們具有相同的元數(shù)。R和S的交是由既屬於R又屬於S的元組組成的集合。第二章關係數(shù)據(jù)模型2024-2-11712.3.2選擇運算(Selection)選擇運算是從指定的關係中選取滿足給定條件的若干元組以構成一個新關係的運算,其表現(xiàn)形式為:
SELECT關係名
WHERE條件
其中,條件是由常數(shù)、字段名及其通過相應的比較運算符和邏輯運算符連接形成邏輯運算式組成的。第二章關係數(shù)據(jù)模型2024-2-1172例1:設有關係圖書如表所示,從圖書中找出書名是“資料庫理論”的書目。
圖書目總編號分類號書名作者出版單位單價
445501445502445503332211112266665544114455113388TP3/12TP3/12TP3/12TP5/10TP3/12TS7/21TR9/12TR7/90資料庫導論資料庫導論資料庫導論電腦基礎FoxBASE高等數(shù)學線性代數(shù)大學英語DateDateDate李偉張三劉明孫業(yè)胡玲科技出版社科技出版社科技出版社高等教育出版社電子工業(yè)出版社高等教育出版社北京大學出版社清華大學出版社17.9017.9017.9018.0032.6019.0020.8012.50SELECT圖書WHERE書名=″資料庫導論″查詢結果包括3個元組第二章關係數(shù)據(jù)模型2024-2-1173例2:從圖書中找出高等教育出版社出版的,單價不超過20元的書目。SELECT圖書WHERE出版單位=“高等教育出版社”AND單價<=20
查詢結果包括兩個元組第二章關係數(shù)據(jù)模型2024-2-11742.3.3投影運算(Projection)關係R上的投影是從R中選擇出若干屬性列組成新的關係。投影運算是從指定的關係中選取指定的若干字段從而構成一個新關係的運算,其表現(xiàn)形式為:PROJECT關係名(字段名1,字段名2,……,字段名n)第二章關係數(shù)據(jù)模型2024-2-1175例3:設有讀者關係,讀者(借書證號、姓名、性別、單位、職稱、地址)。按照單位在前,姓名在後的次序列出讀者名單。PROJECT讀者(單位、姓名)
此運算結果包括元組數(shù)目不變,但減少了列的數(shù)目,同時列的順序顛倒過來了。例4:從圖書中找出藏書所涉及的所有的出版社。PROJECT圖書(出版社)查詢結果包括5個元組。
投影之後不僅減少了某些列,也可能減少了某些元組。以為取消了某些屬性之後,其餘屬性可能有相同的值,造成重複元組,應當刪除完全相同的元組。第二章關係數(shù)據(jù)模型2024-2-11762.3.4聯(lián)接運算(Join)
選擇和投影運算都屬於一目運算,它們的操作對象只是一個關係。連接運算是二目運算,需要兩個關係作為操作對象。1.聯(lián)接聯(lián)接運算是選取若干個指定關係中的字段滿足給定條件的元組從左至右連接,從而構成一個新關係的運算,其表現(xiàn)形式為:
JOIN〈關係1〉AND〈關係2〉WHERE〈條件〉第二章關係數(shù)據(jù)模型2024-2-1177例5:設有訂單和庫存兩個關係如表2-4和表2-5所示。查看存庫量的商品詳情。
表2-4定單關係訂單號貨號訂貨單位售價訂貨量送貨地點96001JW65陽光公司806.50280天津96002VF90友誼商城588.881700北京96003AB55和平飯店250.991005上海96004EF77五環(huán)實業(yè)590.00600北京第二章關係數(shù)據(jù)模型2024-2-1178貨號品名庫存量倉庫地點單價VF90電話機1000北京550.00JW65收音機300上海800.50SL88錄影機2600北京11898.50AB55收音機3000上海280.00EF77電視機1200廣州600.00表2-5庫存關係第二章關係數(shù)據(jù)模型2024-2-1179表2.6定單關係訂貨號貨號訂貨單位售價訂購量送貨地點品名存庫量倉庫地點單價96001JW65陽光公司806.50280天津收音機300上海800.5096003AB55和平飯店250.991005上海收音機3000上海280.0096004EF77五還實業(yè)674.00600北京電視機1200廣州600.00JOIN訂單AND庫存WHERE訂單(貨號)=庫存(貨號)AND庫存量>=訂購量結果如表2-6所示。表2-6例5聯(lián)接結果第二章關係數(shù)據(jù)模型2024-2-1180例6:設有3個關係:學生(學號,姓名,所在系,性別,籍貫,現(xiàn)住址……)課程(課程號,課程名稱,學分,課時……)選修(學號,課程號,成績)查詢成績90分以上的學生姓名。R1=SELECT選修WHERE成績>=90R2=PROJECT學生(學號,姓名)R3=JOINR1ANDR2WHERER1(學號)=R2(學號)如果用以下方式查詢,效率則低得多。S1=JOIN選課AND學生WHERE選課(學號)=學生(學號)S2=SELECTS1WHERE成績>=90第二章關係數(shù)據(jù)模型2024-2-1181例7查看選修了“操作系統(tǒng)”課程的學生詳細情況。S1=SELECT課程WHERE課程名=“操作系統(tǒng)”S2=PROJECTS1(課程號,課程名)S3=JOIN選修ANDS2WHERE選課(課程號)=S2(課程號)S4=JOIN學生ANDS3WHERE學生(學號)=S3(學號)通過上述例子可見,不同關係中的公共屬性是自然聯(lián)接的“紐帶”。利用關係的投影、選擇和自然聯(lián)接可以方便地構造新的關係。2.自然聯(lián)接自然聯(lián)接是去掉重複屬性的等值聯(lián)接。它屬於聯(lián)接運算的一個特例,是最常用的聯(lián)接運算,在關係運算中起著重要作用。第二章關係數(shù)據(jù)模型2024-2-1182
2.3.5外關鍵字
定義:如果一個關係中的屬性或屬性組並非該關係的關鍵字,但它們是另外一個關係的關鍵字,則稱其為該關係的外關鍵字。在例5、例6中,訂單關係中的關鍵字是訂單號,屬性貨號不是本關係的關鍵字,而是庫存關係的關鍵字。因此,對於訂單關係而言,貨號是外關鍵字。在例7、例8中,選修關係的關鍵字是屬性組合(學號,課程號);學號或課程號的任何一個都不能唯一確定選修關係的整個元組,但它們分別是學生和課程關係的關鍵字。因此,對於選修而言,它們是外關鍵字。第二章關係數(shù)據(jù)模型2024-2-1183本章小結
在這一章,我們首先簡單介紹了非關係模型:層次模型、網(wǎng)狀模型、面向對象模型。然後重點介紹了關係數(shù)據(jù)模型。通俗的講,一個關係就是一個二維表。表中的一行是關係的一個元組,表中的一列為關係中一個屬性的具體值。應當掌握關係模型的特點和關係運算。關係運算包括傳統(tǒng)的集合運算(並、差、交)和專門的關係運算(選擇、投影、聯(lián)接)。此外關鍵字是一個很重要的概念,它是使關係之間建立聯(lián)繫的手段。第二章關係數(shù)據(jù)模型2024-2-1184章後習題
1.數(shù)據(jù)模型有幾種,都是什麼?2.解釋下列名詞:關係、關係模式、關係模型、屬性、元組、關鍵字、外關鍵字。3.試舉出層次模型、網(wǎng)狀模型和關係模型的例子,並給出一個實例。4.關係模型有事麼特點?5.關係資料庫有哪些特點?6.試給出一個有3個以上屬性的關係,至少包括5個元組,並指出關鍵字。7.關係運算有幾種類型,都包括哪些?8.能否舉出一個例子,聯(lián)接運算但不是自然聯(lián)接。第二章關係數(shù)據(jù)模型2024-2-11859.試畫出選擇、投影、聯(lián)接運算的流程圖,或用某種程序設計語言實現(xiàn)。10.設有學生選修課程資料庫,S(S#,SNAME,AGE,SEX,DEPARTMENT,ADDRESS,BIRTHPLACE)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)試用關係運算查詢下列問題:(1)學生“李小波”所在的系。(2)學生“李小波”所選修的全部課程名稱。(3)所有成績都在80分以上的學生姓名及所在的系。第二章關係數(shù)據(jù)模型2024-2-1186教學目的瞭解SQL的背景知識掌握SQL查詢語句掌握SQL數(shù)據(jù)定義語句CREATE、DROP、ALTER掌握數(shù)據(jù)操縱語句INSERT、DELETE、UPDATE掌握數(shù)據(jù)控制語句GRANT、REVOKE教學要求牢記有關概念,掌握SQL查詢第三章資料庫的標準語言SQL2024-2-1187§3.1SQL查詢§3.2SQL數(shù)據(jù)定義§3.3SQL數(shù)據(jù)操作§3.4SQL數(shù)據(jù)控制§3.5數(shù)據(jù)字典課程章節(jié)第三章資料庫的標準語言SQL2024-2-1188教學重點SQL數(shù)據(jù)定義:基本表、視圖、別名,建立索引SQL數(shù)據(jù)操縱:插入、更新、刪除SQL數(shù)據(jù)查詢教學難點SQL查詢:簡單查詢、聯(lián)接查詢、嵌套查詢、庫函數(shù)查詢、集合運算第三章資料庫的標準語言SQL2024-2-1189SQL的特點
SQL語言集數(shù)據(jù)查詢(DataQuery)、數(shù)據(jù)操縱(DataManipulation)、數(shù)據(jù)定義(DataDefinition)和數(shù)據(jù)控制(DataControl)功能於一體,主要特點包括:1.綜合統(tǒng)一2.高度非過程化3.面向集合的操作方式4.以同一種語法結構提供兩種使用方式5.語言簡捷,易學易用第三章資料庫的標準語言SQL2024-2-1190§3.1SQL查詢
SELECT-FROM-WHERE基本結構:SELECT[DISTINCT]目標列SELECT子句FROM基本表(或視圖)列FROM子句[WHERE條件運算式]WHERE子句[GROUPBY列名1GROUPBY子句[HAVING內部函數(shù)運算式]]HAVING字句[ORDERBY列名2[ASC/DESC]]第三章資料庫的標準語言SQL2024-2-1191注釋:選擇表中的全部列或部分列,這就是投影運算。2.消除取值重複的行兩個本來並不完全相同的元組,投影到指定的某些列上後,可能變成相同的行了。3.如果指定DISTINCT短語,則表示在計算時要取消指定列中的重複值。如果不指定DISTINCT短語或指定ALL短語(ALL為缺省值),則表示不取消重複值。第三章資料庫的標準語言SQL2024-2-1192l
單價between10and20等價於單價>=10and單價<=20l
出版單位in(“人民出版社”,”科學出版社”)等價於出版單位=”人民出版社”
or出版單位=”科學出版社”l
書名like“資料庫%”
或書名like“資料庫__”like後面必須是字串常量_下劃線任何一個字元
%任何多個字元(包括0個)l
exists存在notexists不存在4.條件運算式(1)關係運算(2)邏輯運算(3)謂詞(4)幾種特殊的第三章資料庫的標準語言SQL2024-2-11936.集合的比較
SOME:“至少比一個……”;
ALL:“比所有的都……”。
7.集合基數(shù)的測試(1)測試一個子查詢的結構是否為空
EXISTS:子查詢的結果不為空時為真;
NOTEXISTS:子查詢的結果為空時為真。(2)測試一個子查詢的結果是否存在重複元組
UNIQUE:子查詢的結果不存在重複元組時為真;
NOTUNIQUE:子查詢的結果存在重複元組時為真。5.集合成員資格的確認
IN:當指定元素在集合中時為真;
NOTIN:當指定元素不在集合中時為真。第三章資料庫的標準語言SQL2024-2-11948.測試空值ISNULL:為空時為真;ISNOTNULL:不為空時為真。9.GROUPBY子句將查詢結果表按某一列或多列值分組,值相等的為一組。10.對查詢結果排序用戶可以用ORDERBY子句對查詢結果按照一個或多個屬性列的昇冪(ASC)或降序(DESC)排列,缺省值為昇冪。第三章資料庫的標準語言SQL2024-2-1195查詢實例例題:設圖書管理關係數(shù)據(jù)模型的三個關係模式:圖書(總編號,分類號,書名,作者,出版單位,單價)讀者(借書證號,姓名,性別,單位,職稱,地址)借閱(借書證號,總編號,借閱日期,備註)第三章資料庫的標準語言SQL2024-2-11963.1.1簡單查詢例1:找出讀者李欣所在單位SELECT“讀者李欣所在單位:”,姓名,單位FROM讀者WHERE姓名=“李欣”;注:SELECT子句中允許有字串常量(運算式的簡單情況)例2:查看所有讀者的全部情況SELECT*FROM讀者;注:SELECT子句中的*表示全部屬性的通配符在查詢中無條件限制時,可省略WHERE子句第三章資料庫的標準語言SQL2024-2-1197例3:查找人民出版社和科學出版社的所有圖書及作者方法一:SELECT書名,作者,出版單位FROM圖書WHERE出版單位=“人民出版社”
OR出版單位=“科學出版社”;方法二:SELECT書名,作者,出版單位FROM圖書WHERE出版單位IN(“人民出版社”,“科學出版社”);第三章資料庫的標準語言SQL2024-2-1198例4:查找書名以“資料庫”打頭的所有圖書及作者SELECT書名,作者FROM圖書WHERE書名LIKE“資料庫%”;注:謂詞LIKE後面必須是字串常量,其中可以使用兩個通配符:_下劃線任何一個字元%任何多個字元(包括0個)
例5:列出圖書館中所有藏書的書名及出版單位SELECTDISTINCT書名,出版單位FROM圖書;注:DISTINCT從查詢結果中去掉重複元組第三章資料庫的標準語言SQL2024-2-1199例6:查出人民出版社的所有圖書及單價,結果按單價降序排列SELECT書名,出版單位,單價FROM圖書;WHERE出版單位=“人民出版社”O(jiān)RDERBY單價DESC;第三章資料庫的標準語言SQL2024-2-11100例7:查找價格介於10和20元之間的圖書,結果按分類號和單價昇冪排列方法一:SELECT書名,作者,單價,分類號FROM圖書WHERE單價BETWEEN10AND20ORDERBY分類號,單價[ASC];方法二:SELECT書名,作者,單價,分類號FROM圖書WHERE單價>=10AND單價<=20ORDERBY分類號,單價[ASC];注:用ORDERBY可對查詢結果排序DESC(descending)降序ASC(ascending)昇冪多重排序:主關鍵字,次關鍵字,關鍵字3,……第三章資料庫的標準語言SQL2024-2-11101例8:檢索借了總編號為500088和100909兩本書的借書證號SELECTX.借書證號FROM借閱X,借閱YWHEREX.借書證號=Y.借書證號ANDX.總編號=”500088”ANDY.總編號=”100909”;注:同一個關係借閱在一個查詢模組中出現(xiàn)兩次,則必須引入別名X,Y用相同屬性時用“.”分開第三章資料庫的標準語言SQL2024-2-11102例9:求缺少職稱的讀者姓名SELECT姓名FROM讀者WHERE職稱ISNULL;注:列名IS[NOT]NULL不能寫成列名=NULL第三章資料庫的標準語言SQL2024-2-111033.1.2聯(lián)接查詢查詢目標涉及到兩個或幾個關係1.等值與非等值連接查詢
連接查詢中用來連接兩個表的條件稱為連接條件或連接謂詞。2.自身連接
連接操作不僅可以在兩個表之間進行,也可以是一個表與其自己進行連接,稱為表的自身連接。3.外連接
在通常的連接操作中,只有滿足連接條件的元組才能作為結果輸出。4.複合條件連接
上面各個連接查詢中,WHERE子句中只有一個條件,即連接謂詞。WHERE子句中可以有多個連接條件,稱為複合條件連接。注:連接條件中的字段類型必須是可比的,但不必相同第三章資料庫的標準語言SQL2024-2-11104例10:查找所有借閱了圖書的讀者姓名及所在單位SELECTDISTINCT姓名,單位FROM讀者,借閱WHERE讀者.借書證號=借閱.借書證號;
例11:找出讀者李欣所借的所有圖書的書名及借閱日期SELECT姓名,“所借圖書:”,書名,借閱日期FROM圖書,借閱,讀者WHERE讀者.借書證號=借閱.借書證號and借閱.總編號=圖書.總編號and姓名=”李欣”;注:查詢涉及到三個關係之間的自然聯(lián)接,用外關鍵字指出聯(lián)接條件第三章資料庫的標準語言SQL2024-2-11105例12:查找價格在20元以上已借出的圖書,結果按單價降序排序SELECT*FROM圖書,借閱WHERE圖書.總編號=借閱.總編號and單價>=20ORDERBY單價DESC;注:這裏*代表圖書和借閱兩個關係聯(lián)接後的所有屬性第三章資料庫的標準語言SQL2024-2-11106
在SQL語言中,一個SELECT-FROM-WHERE語句稱為一個查詢塊。將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢。1.帶有IN謂詞的子查詢
在嵌套查詢中,子查詢的結果往往是一個集合,所以謂詞IN是嵌套查詢中最經(jīng)常使用的謂詞。2.帶有比較運算符的子查詢
帶有比較運算符的子查詢是指父查詢與子查詢之間用比較運算符進行連接。3.帶有ANY或ALL謂詞的子查詢
子查詢返回單值時可以用比較運算符,而使用ANY或ALL謂詞時則必須同時使用比較運算符。4.帶有EXISTS謂詞的子查詢
EXISTS代表存在量詞$。帶有EXISTS謂詞的子查詢不返回任何數(shù)據(jù),只產(chǎn)生邏輯真值“true”或邏輯假值“false”。3.1.3嵌套查詢第三章資料庫的標準語言SQL2024-2-11107例13:找出讀者李欣所借的所有圖書的書名及借閱日期SELECT姓名,“所借圖書:”,書名,借閱日期FROM圖書WHERE總編號IN(SELECT總編號FROM借閱WHERE借書證號IN(SELECT借書證號FROM讀者WHERE姓名=”李欣”)));第三章資料庫的標準語言SQL2024-2-11108例14:找出借閱了“C語言程式設計”一書的讀者姓名及所在單位方法一:SELECT姓名,單位FROM圖書,借閱,讀者WHERE讀者.借書證號=借閱.借書證號and借閱.總編號=圖書.總編號and書名=”C語言程式設計”;方法二:SELECT姓名,單位FROM讀者WHERE借書證號IN(SELECT借書證號FROM借閱WHERE總編號IN(SELECT總編號FROM圖書WHERE書名=”C語言程式設計”)));注:在嵌套查詢中最常用的是謂詞IN
並非所有的嵌套查詢都能用聯(lián)接查詢替代,往往是結合使用更顯得簡潔、方便第三章資料庫的標準語言SQL2024-2-11109例15:找出與李欣在同一天借書的讀者姓名、所在單位SELECT姓名,單位,借閱日期FROM讀者,借閱WHERE借閱.借書證號=讀者.借書證號AND借閱日期IN(SELECT借書日期FROM借閱,讀者WHERE借閱.借書證號=讀者.借書證號AND姓名=“李欣”);第三章資料庫的標準語言SQL2024-2-11110例16:找出沒有借閱任何圖書的讀者及所在單位方法一:SELECT姓名,單位FROM讀者WHERE借書證號NOTIN(SELECT借書證號FROM借閱);方法二:SELECT姓名,單位FROM讀者WHERENOTEXISTS(SELECT*FROM借閱WHERE借閱.借書證號=讀者.借書證號);注:EXISTS表示存在,若子查詢結果非空,則滿足條件
NOTEXISTS表示不存在,若子查詢結果為空,則滿足條件第三章資料庫的標準語言SQL2024-2-11111例17:找出藏書中所有與“資料庫導論”或“資料庫原理”在同一出版單位出版的書SELECT*FROM圖書WHERE出版單位=ANY(SELECT出版單位FROM圖書WHERE書名IN(“資料庫導論”,“資料庫原理”));注:ANY表示與子查詢結果的任何一個值相比較,滿足條件即可=ANY亦可用IN代替第三章資料庫的標準語言SQL2024-2-11112例18:找出藏書中比高等教育出版社的所有圖書單價更高的書籍方法一:SELECT*FROM圖書WHERE單價>ALL(SELECT單價FROM圖書WHERE出版單位=“高等教育出版社”);方法二:用函數(shù)SELECT*FROM圖書WHERE單價>(SELECTMAX(單價)FROM圖書WHERE出版單位=“高等教育出版社”);注:ALL表示與子查詢結果的所有單價相比都高才算滿足條件第三章資料庫的標準語言SQL2024-2-11113為了進一步方便用戶,增強檢索功能,SQL提供了許多集函數(shù),主要有:
COUNT(*)統(tǒng)計元組個數(shù)
COUNT(屬性名)統(tǒng)計一列中值的個數(shù)
SUM計算一列值的總和(此列必須是數(shù)值型)
AVG計算一列值的平均值(此列必須是數(shù)值型)
MAX求一列值中的最大值
MIN求一列值中的最小值例19:見例18方法二3.1.4使用庫函數(shù)查詢第三章資料庫的標準語言SQL2024-2-11114例20:求圖書館藏書的總冊數(shù)SELECT“藏書總冊數(shù):”,COUNT(*)FROM圖書;例21:求電腦科學系當前借閱了圖書的讀者人數(shù)SELECT“電腦科學系借書人數(shù):”,COUNT(DISTINCT借書證號)FROM借閱WHERE借書證號IN(SELECT借書證號FROM讀者WHERE單位=“電腦科學系”);第三章資料庫的標準語言SQL2024-2-11115例22:求出各個出版社圖書的最高價格,最低價格和平均價格SELECT出版單位,MAX(單價),MIN(單價),AVG(單價)FROM圖書GROUPBY出版單位;注:GROUPBY的作用是按屬性的取值對元組分組,然後對每一組分別使用庫函數(shù)此時,若在SELECT子句中出現(xiàn)庫函數(shù),與之並列的其他專案必須也是庫函數(shù)或者是GROUPBY的對象,否則會出現(xiàn)邏輯錯誤第三章資料庫的標準語言SQL2024-2-11116例23:找出藏書中各個出版單位的冊數(shù)、價值總額,並按總價排列,總價相同時按冊數(shù)降序排列
SELECT出版單位,“冊數(shù):”,COUNT(*),“總價:”,SUM(單價)FROM圖書GROUPBY出版單位ORDERBYSUM(單價),COUNT(*)DESC;注:SELECT子句中允許有字串常量(運算式的簡單情況)第三章資料庫的標準語言SQL2024-2-11117例24:找出當前至少借閱了5本圖書的讀者及所在單位SELECT姓名,單位FROM讀者WHERE借書證號IN(SELECT借書證號FROM借閱GROUPBY借書證號HAVINGCOUNT(*)>=5);第三章資料庫的標準語言SQL2024-2-11118例25:分別找出借書人數(shù)超過10人次的單位及具體人數(shù)SELECT單位,“借書人數(shù):”,COUNT(借書證號)FROM讀者,借閱WHERE讀者.借書證號=借閱.借書證號GROUPBY單位HAVINGCOUNT(借書證號)>10;注:HAVING子句通常在GROUPBY之後用,作用是限定分組檢索條件HAVING中條件必須包含庫函數(shù),WHERE子句裏不能直接用庫函數(shù)HAVING子句與WHERE子句不矛盾,先用WHERE限定元組,再用GROUPBY分組,最後用HAVING限定分組的選擇條件第三章資料庫的標準語言SQL2024-2-11119SELECT語句的查詢結果是元組的集合,所以多個SELECT語句的結果可進行集合操作。集合操作主要包括並操作UNION、交操作INTERSECT和差操作MINUS。集合並(UNION)集合交(INTERSECT)集合差(EXCEPT)MINUS3.1.5集合運算第三章資料庫的標準語言SQL2024-2-11120例26:有一個校友通訊記錄關係,包含姓名、職稱和單位三個屬性,相應的數(shù)據(jù)定義與讀者關係一致。求校友與讀者中具有教授、副教授職稱人員的並集。SELECT姓名,職稱,單位FROM讀者WHERE職稱IN(“教授”,“副教授”)UNIONSELECT姓名,職稱,單位FROM校友WHERE職稱IN(“教授”,“副教授”);注:子查詢目標的結構與類型必須互相匹配集合運算結果將去掉重複元組第三章資料庫的標準語言SQL2024-2-11121SQL語言中的SELECT句型靈活多樣,所表達的語義可以從簡單到複雜。
小節(jié)上述例子可知SELECT語句的一般語法如下:
S
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人房產(chǎn)抵押擔保貸款保險合同范本2篇
- 二零二五年度車輛運輸水工鵝卵石運輸協(xié)議3篇
- 2025年個人股東股權增資擴股合同模板4篇
- 設計思維解鎖創(chuàng)意潛能的鑰匙
- 2025年度大學生實習實訓基地實習崗位合作協(xié)議
- 2025年度個人戶外運動裝備過橋資金借款合同3篇
- 網(wǎng)絡安全實訓室的應急預案制定及實施
- 2025年度工傷賠償協(xié)議范本發(fā)布通知3篇
- 二零二五年度車牌號碼拍賣合同書4篇
- 2025版新型材料研發(fā)項目施工保密協(xié)議書3篇
- 合成生物學在生物技術中的應用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財務分析報告
- 無違法犯罪記錄證明申請表(個人)
- 電捕焦油器火災爆炸事故分析
- 大學生勞動教育PPT完整全套教學課件
- 繼電保護原理應用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
- 蓋洛普Q12解讀和實施完整版
- 2023年Web前端技術試題
- 品牌策劃與推廣-項目5-品牌推廣課件
評論
0/150
提交評論