數據庫原理及應用教程(第5版) (微課版)課件全套 陳志泊 第1-7章 數據庫系統概述- SQL Server高級應用_第1頁
數據庫原理及應用教程(第5版) (微課版)課件全套 陳志泊 第1-7章 數據庫系統概述- SQL Server高級應用_第2頁
數據庫原理及應用教程(第5版) (微課版)課件全套 陳志泊 第1-7章 數據庫系統概述- SQL Server高級應用_第3頁
數據庫原理及應用教程(第5版) (微課版)課件全套 陳志泊 第1-7章 數據庫系統概述- SQL Server高級應用_第4頁
數據庫原理及應用教程(第5版) (微課版)課件全套 陳志泊 第1-7章 數據庫系統概述- SQL Server高級應用_第5頁
已閱讀5頁,還剩538頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

北京市優質本科課程教材數據庫原理及應用教程(第5版)“十二五”普通高等教育本科國家級規劃教材國家級一流線上課程配套教材第1章數據庫系統概述第1章數據庫系統概述本章目錄信息、數據、數據處理與數據管理01OPTION02OPTION數據庫技術的產生、發展03OPTION數據庫系統和數據庫管理系統04OPTION數據庫系統的內部體系結構數據庫系統的外部體系結構05OPTION06OPTION三個世界及其有關概念07OPTION數據模型的分類08OPTION數據庫領域的新技術1.1信息、數據、數據處理與數據管理1.1.1信息與數據學號:S1姓名:趙亦性別:女年齡:17歲所在系別:計算機信息的特征可存儲、加工、傳遞和再生可以感知源于物質和能量信息是人腦對現實世界事物的存在方式、運動狀態以及事物之間聯系的抽象反映。信息是客觀存在的,人類有意識地對信息進行采集并加工、傳遞,從而形成了各種消息、情報、指令、數據及信號等。1.1信息、數據、數據處理與數據管理1.1.1信息與數據數據是由用來記錄信息的可識別的符號組合的,是信息的具體表現形式。數據的表現包括數字、文字、圖形、圖像、聲音和視頻等,它們都可以經過數字化后存儲到計算機中。S1趙亦女17歲計算機1.1信息、數據、數據處理與數據管理1.1.1信息與數據數據與信息的聯系數據是信息的符號表示,信息則是對數據的語義解釋。本門課程的考試人數為100,考試通過率為90%數據“100”和“90%”被賦予了特定的語義,此處的100表示的是“考試人數為100”,90%表示的是“考試通過率是90%”。信息=數據+語義1.1信息、數據、數據處理與數據管理1.1.2數據處理與數據管理將數據轉換成信息的過程,包括數據的收集、管理、加工利用乃至信息輸出、演變推導等數據處理

數據管理

數據的分類、組織、編碼、存儲、維護、檢索等操作信息=數據+數據處理產出輸出結果

原料輸入“數據處理”的真正含義應該是為了產生信息而處理數據1.2數據庫技術的產生、發展人工管理階段文件系統階段數據庫系統階段數據無專門的存取設備,無專用軟件管理數據,不共享,無獨立性數據以文件形式長期保存,由文件系統管理數據,程序與數據間有一定獨立性,文件的形式已經多樣化,數據具有一定的共享性數據結構化,共享性高、冗余度低,獨立性高,有統一的數據管理和控制功能DBMS

數據的安全性控制、數據的完整性控制、并發控制、數據恢復1.2數據庫技術的產生、發展1.人工管理階段人工管理階段應用程序與數據之間的對應關系1.2數據庫技術的產生、發展2.文件系統階段文件系統階段應用程序與數據之間的對應關系1.2數據庫技術的產生、發展3.數據庫系統階段數據庫系統階段應用程序與數據之間的對應關系1.3數據庫系統和數據庫管理系統1.3.1數據庫系統的組成數據庫系統由數據庫、數據庫用戶、計算機硬件系統和計算機軟件系統組成,可用下圖表示(圖中省略了計算機硬件系統)。1.3數據庫系統和數據庫管理系統1.3.1數據庫系統的組成數據庫數據庫是存儲在計算機內、有組織的、可共享的數據和數據對象(如表、視圖、存儲過程和觸發器等)的集合,這種集合按一定的數據模型(或結構)組織、描述并長期存儲,同時能以安全和可靠的方法進行數據的檢索和存儲。數據庫的特點:集成性,共享性1.3數據庫系統和數據庫管理系統1.3.1數據庫系統的組成2.數據庫用戶最終用戶應用程序員數據庫管理員對數據庫進行存儲、維護和檢索等操作非計算機專業人員使用數據庫設計和編制應用程序并進行調試和安裝負責設計、建立、管理和維護數據庫以及協調用戶對數據庫要求的個人或工作團隊1.3數據庫系統和數據庫管理系統1.3.1數據庫系統的組成3.軟件系統軟件(Software)系統主要包括操作系統(OperatingSystem,OS)、數據庫管理系統(DBMS)、應用開發工具和應用系統等。在計算機硬件層之上,操作系統統一管理計算機資源。DBMS可借助操作系統完成對硬件的訪問,并能對數據庫的數據進行存取、維護和管理。數據庫系統的各類人員、應用程序等對數據庫的各種操作請求,都必須通過DBMS完成。DBMS是數據庫系統的核心軟件。1.3數據庫系統和數據庫管理系統1.3.1數據庫系統的組成4.硬件系統硬件(Hardware)系統指存儲和運行數據庫系統的硬件設備,包括CPU、內存、大容量的存儲設備、輸入/輸出設備和外部設備等。OS硬件應用系統應用開發工具DBMS1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統(DBMS)DBSDBMS核心數據定義查詢更新各種控制1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統1.DBMS的功能1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統1.DBMS的功能數據定義功能DBMS提供數據定義語言(DataDefineLanguage,DDL),定義數據的模式、外模式和內模式三級模式結構,定義模式/內模式和外模式/模式二級映像,定義有關的約束條件。用DDL定義的各種模式需要通過相應的模式翻譯程序轉換為機器內部代碼表示形式,保存在數據字典(DataDictionary,DD)(或稱為系統目錄)中。數據字典是DBMS存取數據的基本依據。因此,DBMS中應包括DDL的編譯程序。1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統1.DBMS的功能數據操縱功能DBMS提供數據操縱語言(DataManipulationLanguage,DML)實現對數據庫的基本操作,包括檢索、更新(包括插入、修改和刪除)等。DML有兩類宿主型自主型獨立使用嵌入在如Fortran、Pascal、C等高級語言中1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統1.DBMS的功能數據庫運行管理功能對數據庫運行的管理是DBMS運行的核心部分。DBMS對數據庫的控制主要通過四個方面實現:數據的安全性控制、數據的完整性控制、多用戶環境下的數據并發控制和數據庫的恢復。數據庫的建立和維護數據庫的建立包括數據庫的初始數據的裝入與數據轉換等,數據庫的維護包括數據庫的轉儲、恢復、重組織與重構造、系統性能監視與分析等。這些功能分別由DBMS的各個實用程序來完成。1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統1.DBMS的功能數據通信接口DBMS提供與其他軟件系統進行通信的功能。一般,DBMS提供了與其他DBMS或文件系統的接口,從而使該DBMS能夠將數據轉換為另一個DBMS或文件系統能夠接受的格式,或者可接收其他DBMS或文件系統的數據,實現用戶程序與DBMS、DBMS與DBMS、DBMS與文件系統之間的通信。通常這些功能要與操作系統協調完成。數據組織、存儲和管理DBMS負責對數據庫中需要存放的各種數據(如數據字典、用戶數據、存取路徑等)的組織、存儲和管理工作,確定以何種文件結構和存取方式物理地組織這些數據,以提高存儲空間利用率和對數據庫進行增、刪、查、改的效率。1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統2.DBMS的組成語言編譯處理程序系統運行控制程序系統建立、維護程序數據字典數據定義語言DDL編譯程序數據操縱語言DML編譯程序系統總控程序安全性控制程序完整性控制程序并發控制程序數據存取和更新程序通信控制程序裝配程序重組程序系統恢復程序描述數據庫中有關信息的數據目錄1.3數據庫系統和數據庫管理系統1.3.2數據庫管理系統3.DBMS的數據存取的過程(1)用戶使用某種特定的數據操作語言向DBMS發出存取請求。(2)DBMS接受請求并將該請求解釋轉換成機器代碼指令。(3)DBMS依次檢查外模式、外模式/模式映像、模式、模式/內模式映像及存儲結構定義。(4)DBMS對存儲數據庫執行必要的存取操作。(5)從對數據庫的存取操作中接受結果。(6)對得到的結果進行必要的處理,如格式轉換等。(7)將處理的結果返回給用戶。1.4數據庫系統的內部體系結構1.4.1三級模式與二級映像數據庫系統模式的概念模式(Schema)是數據庫中全體數據的邏輯結構和特征的描述,它僅涉及型的描述,而不涉及具體的值。模式的一個具體值稱為模式的一個實例(Instance)。同一個模式可以有很多實例。學號姓名

性別年齡系別

001101

張立男20計算機型值模式實例1.4數據庫系統的內部體系結構1.4.1三級模式與二級映像2.三級模式與二級映像三級模式結構與二級映像功能示意圖1.4數據庫系統的內部體系結構1.4.1三級模式與二級映像2.三級模式與二級映像數據庫中全體數據的邏輯結構和特征的描述數據庫用戶能看到并允許使用的那部分局部數據的邏輯結構和特征的描述它是對數據庫存儲結構的描述,是數據在數據庫內部的表示方式可有多個只有一個-內模式是整個數據庫實際存儲的表示-模式是整個數據庫實際存儲的抽象表示-外模式是邏輯模式的某一部分的抽象表示外模式模式內模式1.4數據庫系統的內部體系結構1.4.1三級模式與二級映像2.三級模式與二級映像外模式/模式映像數據庫中的同一模式可以有任意多個外模式,對于每一個外模式,都存在一個外模式/模式映像,所以,在一個數據庫系統中,外模式/模式映像有多個。模式/內模式映像數據庫中的模式和內模式都只有一個,所以,在一個數據庫系統中,模式/內模式映像是唯一的,它確定了數據的全局邏輯結構與存儲結構之間的對應關系。1.4數據庫系統的內部體系結構1.4.2數據的邏輯和物理獨立性外模式/模式映象模式/內模式映象保證了數據與程序間的邏輯獨立性確保了數據的物理獨立性1.4數據庫系統的內部體系結構1.4.3數據庫系統的三級模式與二級映像的優點保證數據的獨立性有利于數據的安全保密有利于數據共享簡化了用戶接口數據庫系統三級模式與二級映像的優點1.5數據庫系統的外部體系結構單用戶結構的數據庫系統主從式結構的數據庫系統分布式結構的數據庫系統客戶/服務器結構的數據庫系統瀏覽器/服務器結構的數據庫系統一臺計算機,不能共享數據大型主機帶多個終端;主機處理,終端輸出是分布在計算機網絡上的多個邏輯相關的數據庫的集合把DBMS的功能與應用程序分開;管理數據的結點稱為服務器應用DBMS的結點稱為客戶機將客戶端運行的應用程序轉移到應用服務器上,充當了客戶機和數據庫服務器的中介1.6三個世界及其有關概念1.6.1現實世界現實世界,即客觀存在的世界。其中存在著各種事物及它們之間的聯系,每個事物都有自己的特征或性質。例如,要描述一個學生,常選用學號、姓名、性別、年齡、系別等來描述,有了這些特征,就能區分不同的學生?,F實世界中,事物之間是相互聯系的,而這種聯系可能是多方面的。例如,在學生管理系統中,可以選擇“學生選修課程”這一聯系表示學生和課程之間的關系。1.6三個世界及其有關概念1.6.2信息世界1.信息世界及其有關概念型值屬性名具體值實體屬性客觀存在并且可以相互區別的“事物”稱為實體實體可以是具體的人、事、物,也可以是抽象的事件

實體所具有的某一特性稱為屬性1.6三個世界及其有關概念1.6.2信息世界1.信息世界及其有關概念單個實體型內部的聯系通常是指組成實體的各屬性之間的聯系實體型之間的聯系通常是指不同實體集之間的聯系具有相同屬性的實體必然具有共同的特征同型實體的集合稱為實體集能唯一標識一個實體的屬性或屬性集稱為實體的碼某一屬性的取值范圍稱為該屬性的域學生(學號,姓名,年齡,性別,系)實體型碼域聯系實體集1.6三個世界及其有關概念1.6.2信息世界2.兩個實體型之間的聯系兩個實體型之間的聯系是指兩個不同的實體集間的聯系,有如下三種類型。1.6三個世界及其有關概念1.6.2信息世界3.兩個以上實體型之間的聯系兩個以上的實體型之間也存在著一對一、一對多和多對多的聯系。例如,對于課程、教師與參考書三個實體型,如果一門課程可以有若干個教師講授,使用若干本參考書,而每一個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書之間的聯系是一對多的聯系。4.單個實體型內部的聯系同一個實體集內的各個實體之間存在的聯系,也可以有一對一、一對多和多對多的聯系。例如,職工實體型內部具有領導與被領導的聯系,即某一職工“領導”若干名職工,而一個職工僅被另外一個職工直接領導,因此,在職工實體集內部這種聯系,就是一對多的聯系。1.6三個世界及其有關概念1.6.3計算機世界標記實體屬性的命名單位稱為字段。能唯一標識文件中每個記錄的字段或字段集,稱為記錄的關鍵字。同一類記錄的集合稱為文件。如,所有學生的記錄組成了一個學生文件。字段的有序集合稱為記錄。如,一個學生(990001,張立,20,男,計算機)為一個記錄。字段Field記錄Record文件File關鍵字Key1.6三個世界及其有關概念1.6.3計算機世界三個世界各術語的對應關系現實世界

信息世界

計算機世界事物總體 實體集文件事物個體 實體記錄特征 屬性字段事物間聯系 實體模型數據模型1.6三個世界及其有關概念1.6.4三個世界之間的聯系如下圖所示,在實際的數據處理過程中,首先將現實世界的事物及聯系抽象成信息世界的概念模型,然后再抽象成計算機世界的數據模型。概念模型并不依賴于具體的計算機系統,不是某一個DBMS所支持的數據模型,它是計算機內部數據的抽象表示;概念模型經過抽象,轉換成計算機上某一DBMS支持的數據模型。1.7數據模型的分類1.7.1數據模型的組成要素1.數據結構數據結構描述的是數據庫的靜態特性,是數據模型中最基本的部分,不同的數據模型采用不同的數據結構。2.數據操作數據操作是指對數據庫中的各種數據允許執行的操作的集合,包括操作及相應的操作規則,描述了數據庫的動態特性。數據庫有查詢和更新(包括插入、刪除和修改)兩類操作。數據模型必須定義這些操作的確切含義、操作符號、操作規則(如優先級)以及實現操作的語言。1.7數據模型的分類1.7.1數據模型的組成要素3.數據的完整性約束數據的完整性約束條件是一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯系所具有的制約和依存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效、相容。數據模型應該反映和規定本數據模型必須遵守的基本的和通用的完整性約束條件,還應該提供定義完整性約束條件的機制,以反映具體應用所涉及的數據必須遵守的特定的語義約束條件。例如,在學生管理數據庫中,學生的年齡不得超過40歲。1.7數據模型的分類1.7.2層次模型無雙親,根節點·每棵樹有且僅有一個結點沒有雙親,該結點

就是根結點·根以外的其他結點有且僅有一個雙親結點·父子結點之間的聯系是一對多(1:n)的聯系層次模型有向樹的示意圖1.7數據模型的分類1.7.2層次模型TS數據庫模型具有四個記錄型:D,R,S,TS與T是葉結點,它們沒有子女結點由D到R,R到T,由D到S均是一對多的關系1.7數據模型的分類1.7.2層次模型層次模型的數據操縱與數據完整性約束進行插入操作時,如果沒有相應的雙親結點值就不能插入子女結點值。進行刪除操作時,如果刪除雙親結點值,則相應的子女結點值也被同時刪除。修改操作時,應修改所有相應的記錄,以保證數據的一致性。層次模型的優缺點結構簡單,層次分明查詢效率高提供良好的數據完整性支持不能直接表示多對多聯系插入和刪除數據限制太多查詢子女結點必須通過雙親結點優點缺點1.7數據模型的分類1.7.3網狀模型網狀模型的數據結構網狀模型是采用有向圖結構表示記錄型與記錄型之間聯系的數據模型。每個結點表示一個記錄型,每個記錄型可包含若干個字段,記錄型描述的是實體。結點間的帶箭頭的連線(或有向邊)表示記錄型間的1:n的父子聯系。網狀模型的特點:有一個以上的結點沒有雙親結點允許結點有多個雙親結點允許兩個結點之間有多種聯系(復合聯系)1.7數據模型的分類1.7.3網狀模型網狀模型的數據操縱與完整性約束插入數據時,允許插入尚未確定雙親結點值的子女結點值。刪除數據時,允許只刪除雙親結點值。修改數據時,只需更新指定記錄即可。網狀模型的優缺點可表示實體間的多種復雜聯系具有良好的性能和存儲效率數據結構復雜數據定義語言、數據操縱語言復雜用戶需要了解網狀模型的實現細節優點缺點1.7數據模型的分類1.7.4關系模型關系模型的數據結構及有關概念小型數據庫系統:Foxpro、Access大型數據庫系統:Oracle、SQLServer、Informix、Sybase關系二維表SNO學號SN姓名SEX性別AGE年齡DEPT系別S1趙亦女17計算機S2錢爾男18信息S3孫珊女20信息S4李思男21自動化S5周武男19計算機S6吳麗女20自動化元組屬性域:屬性的取值范圍,{男,女}1.7數據模型的分類1.7.4關系模型每一行對應的列的屬性值,即為元組中的一個屬性值。可惟一標識一個元組的屬性或屬性集,也稱為關系鍵或主碼,如S表中學號可以惟一確定一個學生,為學生關系的主碼。關系模式是對關系的描述,是關系模型的“型”。一般表示為:關系名(屬性1,屬性2,……屬性n)如:學生(學號,姓名,性別,年齡,系別)關系實例是關系模式的“值”,是關系的數據,相當于二維表中的數據。分量關鍵字關系模式關系實例1.7數據模型的分類1.7.4關系模型關系模型的數據操縱與完整性約束關系模型中的數據操作是集合操作,操作對象和操作結果都是關系,即若干元組的集合。關系模型把對數據的存取路徑隱蔽起來,用戶只要指出“干什么”,而不必詳細說明“怎么干”,從而大大地提高了數據的獨立性,提高了用戶操作效率。關系模型的優缺點有嚴格的數學理論根據用關系描述實體間的聯系具有更高的數據獨立性、更好的安全保密性查詢效率不如非關系模型優點缺點1.7數據模型的分類1.7.5非關系模型(NoSQL,NotOnlySQL)NoSQL的特點:易擴展NoSQL數據庫中的數據之間無關系,非常容易擴展。大數據量,高性能NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。應用靈活NoSQL無須事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。這點在大數據量的Web2.0時代尤其明顯。高可用NoSQL在不太影響性能的情況,就可以方便地實現高可用的架構。比如Cassandra、HBase模型,通過復制模型也能實現高可用。1.7數據模型的分類1.7.6面向對象模型對象和對象標識對象是現實世界中實體的模型化。對象標識獨立于對象的內容和存儲位置,是一種邏輯標識符,通常由系統產生,它在整個系統范圍內是惟一的。兩個對象即使內部狀態值和方法都相同,如標識符不同,仍認為是兩個相等而不同的對象。每個對象都包含一組屬性和一組方法。一個學生一門課程一次考試記錄對象屬性方法對象屬性方法……1.7數據模型的分類1.7.6面向對象模型類(Class)和繼承(Inheritance)具有同樣屬性和方法集的所有對象構成了一個對象類,一個對象是某一類的實例。類的屬性域可以是基本數據類型(如整型、實型、字符型等),也可以是類。類的表示具有層次性和繼承性。對象類型值1.8數據庫領域的新技術1.8.1分布式數據庫分布式數據庫的定義分布式數據庫是一組結構化的數據集合,它們在邏輯上屬于同一系統,而在物理上分布在計算機網絡的不同結點上。分布式數據庫的特點自治與共享冗余的控制分布事務執行的復雜性數據的獨立性

數據冗余的透明性數據分布透明性物理數據透明性邏輯數據透明性1.8數據庫領域的新技術1.8.1分布式數據庫

集中式系統和分布式系統

集中式數據庫就是集中在一個中心場地的電子計算機上,以統一處理方式所支持的數據庫。集中控制處理效率高,可靠性好;數據冗余少,數據獨立性高;易于支持復雜的物理結構去獲得對數據的有效訪問。1.8數據庫領域的新技術1.8.2數據倉庫與數據挖掘技術數據倉庫就是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,通常用于輔助決策支持。對多個異構數據源的有效集成,集成后按照主題進行重組,包含歷史數據。存放在數據倉庫中的數據通常不再修改,用于做進一步的分析型數據處理。1.數據倉庫的定義2.數據倉庫的體系結構1.8數據庫領域的新技術1.8.2數據倉庫與數據挖掘技術3.數據挖掘的定義數據挖掘(DataMining),就是從大量數據中獲取有效的、新穎的、潛在有用的、最終可理解的模式的非平凡過程,簡單地說,數據挖掘就是從大量數據中提取或“挖掘”知識,又被稱為數據庫中的知識發現(KnowledgeDiscoveryinDatabase,KDD)。4.數據挖掘的方法數據挖掘的分析方法可以分為兩類:直接數據挖掘與間接數據挖掘。直接數據挖掘的目標是利用可用的數據建立一個模型,這個模型對剩余的數據,比如對一個特定的變量進行描述。間接數據挖掘的目標中并沒有選出某一具體的變量并用模型進行描述,而是在所有的變量中建立起某種關系。1.8數據庫領域的新技術1.8.3大數據技術1.大數據技術的產生背景隨著硬件存儲成本的持續下降、互聯網技術和物聯網技術的高速發展,現代社會每天正以不可想象的速度產生各類數據,如電子商務網站的用戶訪問日志、微博中評論和轉發信息、各類短視頻和微電影、各類商品的物流配送信息、手機通話記錄等。這些數據或流入已經運行的數據庫系統,或形成具有結構化的各類文件,或形成具有非結構化特征的視頻和圖像文件。據統計,Google每分鐘進行200萬次搜索,全球每分鐘發送2億封電子郵件,12306網站春節期間一天的訪問量為84億次。總之,人們已經步入一個以各類數據為中心的全新時代——大數據時代。1.8數據庫領域的新技術1.8.3大數據技術2.大數據的概念普遍采用大數據的4V特性來描述大數據,即“數據量大(Volume)”、“數據類型繁多(Variety)”、“數據處理速度快(Velocity)”和“數據價值密度低(Value)”?!皵祿看蟆笔菑臄祿幠5慕嵌让枋龃髷祿?。大數據的數據量可以從數百TB到數百PB,甚至到EB的規模?!皵祿愋头倍唷笔菑臄祿碓春蛿祿N類的角度描述大數據的。大數據的數據類型可以宏觀分為結構化數據和非結構化數據?!皵祿幚硭俣瓤臁笔菑臄祿漠a生和處理的角度描述大數據的。“數據價值密度低”是從大數據潛藏的價值分布情況描述大數據的。雖然大數據中具有很多有價值的潛在信息,但其價值的密度遠遠低于傳統關系型數據庫中的數據價值。1.8數據庫領域的新技術1.8.3大數據技術3.大數據的關鍵技術目前大數據所涉及的關鍵技術主要包括數據的采集和遷移、數據的存儲和管理、數據的處理和分析、數據安全和隱私保護。4.大數據技術的應用場景目前,大數據技術的應用已經非常普遍,涉及的領域包括傳統零售業、金融業、醫療業和政府機構等。1.8數據庫領域的新技術1.8.4NewSQL技術1.NewSQL的定義和特點NewSQL是各種新型可伸縮高性能SQL數據庫的簡稱,旨在為在線事物處理(OLTP)工作負載提供NoSQL系統的可擴展性,同時保持傳統數據庫系統的ACID保證。NewSQL仍然采用關系數據模型,支持SQL查詢,擁有強一致性和事物一致性。另外,NewSQL借鑒了NoSQL的架構,有很好的水平擴展性,支持海量數據存儲。1.8數據庫領域的新技術1.8.4NewSQL技術2.NewSQL系統的分類(1)新型架構新型架構NewSQL不是擴展已有系統,而是從全新的起點開始設計,采用分布式架構,包含支持多節點并發控制、基于復制的容錯、流控制和分布式查詢處理等組件。這樣做的優點是系統所有部分都可以針對多節點環境進行優化,包括查詢優化、節點間通信協議優化等。1.8數據庫領域的新技術1.8.4NewSQL技術2.NewSQL系統的分類(2)透明的數據分片中間件系統提供數據分片中間件,用戶可以借助它們將數據庫分成多個部分,并存儲到由多個單節點機器組成的集群中,每一個節點都運行相同的數據庫管理系統,只維護自己負責的整個數據庫中的一部分數據,不能被不用的應用獨立訪問或修改。集中化的中間組件負責分配查詢,協調事務,同時也管理數據的位置,復制和跨節點的數據分區。集群典型的架構是在每個節點上都安裝一個中階層和中間件通信,這個組件負責代替中間件在數據庫管理系統實例上執行查詢并返回結果,最后由中間件整合。使用數據分片中間件的核心優勢是能夠非常簡單地替換已經使用了單節點數據庫管理系統的數據庫,開發者無需對應用做任何修改。1.8數據庫領域的新技術1.8.4NewSQL技術2.NewSQL系統的分類(3)Database-as-a-ServiceDatabase-as-a-Service是云服務提供商的NewSQL方案,通過云服務,用戶不需要在自己的硬件設備上或者云端虛擬機上安裝和維護數據庫管理系統。Database-as-a-Service提供商負責維護所有數據庫物理機及其配置,包括系統優化、賦值和備份。交付給用戶的只是一個連接數據庫管理系統的網絡鏈接,以及一個用于監控的儀表盤頁面或者一組用于系統控制的API。1.8數據庫領域的新技術1.8.4NewSQL技術3.NewSQL的常用產品(1)SpannerSpanner是谷歌公司設計、開發和部署的,是一個可擴展的、全球分布式的數據庫系統,后續的很多NewSQL數據庫系統都借鑒了Spanner的思想。Spanner被組織成多個zone的集合,每個zone都類似于一個BigTable服務器的部署。(2)CockroachDBCockroachDB是Spanner的開源版本,支持標準SQL接口、線性擴展、強一致性、高可用性等重要特性。1.8數據庫領域的新技術1.8.4NewSQL技術3.NewSQL的常用產品(3)TiDBTiDB是PingCAP公司自主設計,支持在線事物處理與在線分析處理,可以水平擴容或者縮容、金融高可用性、實時HTAP、云原生的分布式數據庫。(4)OceanBaseOceanBase是由螞蟻集團自主研發的企業級分布式關系數據庫,基于分布式框架和通用服務器、實現了金融機構可靠性以及數據一致性。(5)TDSQLTDSQLMySQL是騰訊研發的一款分布式數據庫產品,具備強一致性、高可用、全球部署架構、分布式水平擴展、高性能、企業級安全等特性。1.8數據庫領域的新技術1.8.4NewSQL技術4.NewSQL的應用領域(1)金融業互聯網特色金融業務中,單筆交易變小、交易次數變多、NewSQL技術可以支持這類應用。(2)電子商務電子商務平臺都是基于分布式數據庫,NewaSQL的分布結構保證了數據庫免受物理硬件性能限制,實現性能在線擴展。1.8數據庫領域的新技術1.8.4NewSQL技術4.NewSQL的應用領域(3)海量數據訪問NewSQL技術支持節點快速彈性完成垂直、水平擴展縮容,滿足用戶的含量數據存儲和查詢要求,可以廣泛應用于工業遠程監控和遠程控制、智慧城市的延展、智能家居、車聯網、充電樁加油站等傳感監控設備多、采樣率高、數據上報存儲數據量大的場景。(4)HTAP混合場景NewSQL實現了HTAP(HybridTransactionalandAnalyticalProcessing)解決方案,能做到針對同樣數據的OLTP和OLAP業務同時運行且互不干擾,降低數據存儲成本,可以廣泛應用于工業物聯網、商業智能分析、電商推薦系統、搜索引擎等業務場景。1.8數據庫領域的新技術1.8.5NoSQL技術(1)鍵值(Key-Value)存儲數據庫鍵值存儲數據庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。Key/value模型對于IT系統來說的優勢在于簡單、易部署。但是如果數據庫管理員(DBA)只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了。(2)列存儲數據庫列存儲數據庫通常是用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。1.8數據庫領域的新技術1.8.5NoSQL技術(3)文檔型數據庫文檔型數據庫的靈感是來自于LotusNotes辦公軟件的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型數據庫可以看作是鍵值數據庫的升級版,允許之間嵌套鍵值,在處理網頁等復雜數據時,文檔型數據庫比傳統鍵值數據庫的查詢效率更高。(4)圖形(Graph)數據庫圖形數據庫同其他行列以及剛性結構的SQL數據庫不同,它是使用靈活的圖形模型,并且能夠擴展到多個服務器上。1.8數據庫領域的新技術1.8.1分布式數據庫NoSQL的特點:易擴展NoSQL數據庫中的數據之間無關系,非常容易擴展。大數據量,高性能NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。應用靈活NoSQL無須事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。這點在大數據量的Web2.0時代尤其明顯。高可用NoSQL在不太影響性能的情況,就可以方便地實現高可用的架構。比如Cassandra、HBase模型,通過復制模型也能實現高可用。本章小結本章介紹了信息、數據、數據處理與數據管理的基本概念,以及數據庫技術的三個階段及其優缺點;本章介紹了數據庫系統的組成;本章介紹了數據庫系統的內部和外部體系結構;本章介紹了三個世界及其有關概念,以及計算機世界中常用的數據模型;本章介紹了數據庫領域的新技術。北京市優質本科課程教材數據庫原理及應用教程(第5版)“十二五”普通高等教育本科國家級規劃教材國家級一流線上課程配套教材第2章

關系模型及其操作第2章關系模型及其操作第二章主要內容關系模型的構成原理01OPTION03OPTION關系的完整性和碼02OPTION關系模式和關系數據庫模式04OPTION關系代數2.1關系模型的數學基礎及形式化定義1.集合及域(1)集合(Set)的定義與理解定義2.1集合是指具有特定性質的事物的總體。例如:課程集合={?等數學,線性代數,離散數學,概率論,計算機導論,組成原理,數據庫…}。學?姓名集合={張?,王天,趙啟,…}結合中構成集合的個體稱為元素或成員。例如:在上述課程集合中,?等數學是課程集合的元素。根據集合中元素數量是否有限,可將集合分為有限集合和無限集合。給定業務所包含的數據抽象為集合后通常為有限集合,只是不同集合元素數量存在較大差異。2.1關系模型的數學基礎及形式化定義1.集合及域(2)集合的性質及理解集合具有無序性、互異性和確定性,這些性質也能反映在關系模型的構建中。無序性:集合中元素之間不存在順序。例如:性別集合={男,女}={女,男};互異性:任何兩個元素都認為是不相同的,即每個元素只能出現?次。例如,在學號集合中不可能出現兩個重復的學號。確定性:給定?個集合和?個元素,元素只能屬于或者不屬于該集合,?者必居其?。例如:男是性別集合的元素,男屬于性別集合,但是男不是學號集合的元素,所以男不屬于學號集合。2.1關系模型的數學基礎及形式化定義1.集合及域(3)域(Domain)定義2.2域是一組具有相同數據類型的值的集合,又稱為值域(用D表示)。例如,整數、實數和字符串的集合都是域。域中所包含的值的個數稱為域的基數(用m表示),例如,以教師關系t為例D1={劉楊,石麗,顧偉,趙禮,趙希希,張剛},m1=6;D2={男,女},m2=2;D3={26,30,32,36,40,50},m3=6。其中,D1、D2、D3分別表示教師關系中的姓名域、性別域和年齡域的集合。2.1關系模型的數學基礎及形式化定義2.笛卡爾積與關系(1)笛卡爾積(CartesianProduct)定義2.3給定一組域D1,D2,…,Dn(它們包含的元素可以完全不同,也可以部分或全部相同),其笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}

每一個元素(d1,d2,…,dn)中的每一個值di叫做一個分量(Component),分量來自相應的域(di∈Di)每一個元素(d1,d2,…,dn)叫做一個n元組(n-Tuple),簡稱元組(Tuple)。但元組是有序的,相同分量di的不同排序所構成的元組不同。如,以下三個元組是不同的,(1,2,3)≠(2,3,1)≠(1,3,2)2.1關系模型的數學基礎及形式化定義2.笛卡爾積與關系(1)笛卡爾積(CartesianProduct)若Di(i=1,2,…,n)為有限集,Di中的集合元素個數稱為Di的基數,用mi(i=1,2,…,n)表示,則笛卡爾積D1×D2×…×Dn的基數M(即元組(d1,d2,…,dn)的個數)為所有域的基數的累乘之積。例如D1表示學生姓名域{張?,王天,趙啟,…};D2表示課程名稱域{數據庫系統,離散數學,...};D1×D2={(張一,數據庫系統),(王天,數據庫系統),(趙啟,數據庫系統),(張一,離散數學),...}。其中,(張一,數據庫系統)為元組,元組中第一個分量來源于姓名域D1,第二個分量來源于課程名稱域D2。2.1關系模型的數學基礎及形式化定義2.笛卡爾積與關系(2)笛卡爾積(CartesianProduct)由于元組中分量位置代表了參與笛卡爾積運算的域,因此,可根據元組中出現的各個分量,推理得出參與笛卡爾積運算的域,同時,也可將笛卡爾積的集合形式表示為二維表形式。例如,笛卡爾積D1×D2的二維表形式為姓名課程張一數據庫系統王天數據庫系統趙啟數據庫系統張一離散數學王天離散數學趙啟離散數學......2.1關系模型的數學基礎及形式化定義2.笛卡爾積與關系(3)關系(Relation)定義2.4笛卡爾積D1×D2×…×Dn的任一子集稱為定義在域D1,D2,…,Dn上的n元關系(Relation),可用R(D1,D2,…,Dn)表示。其中,R表示關系的名字,n是關系的目或度(Degree)。例如,笛卡爾積D1×D2的某個子集可以構成如下所示的教師關系T1tn姓名sex性別劉楊男石麗女顧偉男趙禮女趙希希女張剛男屬性屬性的名字唯一

元組域2.1關系模型的數學基礎及形式化定義2.笛卡爾積與關系(3)關系(Relation)關系的幾點說明:(1)在關系R中,當n=1時,稱為單元關系。當n=2時,稱為二元關系,以此類推。(2)關系中的元組通常用t表示,關系中元組個數是關系的基數。(3)關系中的不同域(列)的取值可以相同,為了加以區別,必須對每個域(列)起一個名字,稱為屬性(Attribute),n元關系必有n個屬性,屬性的名字唯一;屬性的取值范圍稱為值域,等價于對應域Di(i=1,2,…,n)的取值范圍。具有相同關系框架的關系稱為同類關系。(4)在數學上,關系是笛卡爾積的任意子集,但在實際應用中,關系是笛卡爾積中所取的有意義的子集。2.1關系模型的數學基礎及形式化定義2.笛卡爾積與關系(3)關系(Relation)在關系模型中,關系可進一步定義為:

關系頭(Heading)+關系體(Body)

由屬性名的集合組成關系結構中的內容或者數據不變可變定義2.5定義在域D1,D2,…,Dn(不要求完全相異)上的關系由關系頭(Heading)和關系體(Body)組成。2.1關系模型的數學基礎及形式化定義3.關系的性質列是同質的,即每一列中的分量必須來自同一個域,必須是同一類型的數據。不同的屬性可來自同一個域,但不同的屬性必須有不同的名字。例如,假設某關系中的兩個屬性“職業”和“兼職”,它們可以來自同一個域{教師,工人,輔導員}。列的順序可以任意交換。但交換時,應連同屬性名一起交換,否則將得到不同的關系。關系中元組的順序(即行序)可任意,在一個關系中可以任意交換兩行的次序。因為關系是以元組為元素的集合,而集合中的元素是無序的,所以作為集合元素的元組也是無序的。關系中不允許出現相同的元組。因為數學上集合中沒有相同的元素,而關系是元組的集合,所以作為集合元素的元組應該是唯一的。2.1關系模型的數學基礎及形式化定義3.關系的性質關系中每一分量必須是不可分的數據項,也就是說,不能出現“表中有表”的現象。滿足此條件的關系稱為規范化關系,否則稱為非規范化關系。例如,以下左表是非規范化關系,可以把其中的屬性“籍貫”分成兩個新的屬性,即“?。▍^市)”、“市/縣”,將其規范化,如右表所示。姓名籍貫省市/縣張強吉林長春王麗山西大同姓名省市/縣張強吉林長春王麗山西大同非規范化的關系規范化的關系主要內容關系模型的構成原理01OPTION03OPTION關系的完整性和碼02OPTION關系模式和關系數據庫模式04OPTION關系代數2.2關系模式與關系數據庫模式1.關系模式定義2.6關系的描述稱為關系模式(RelationSchema)。它可以形式化地表示為:R(U,D,DOM,F)關系模式通常簡記為:R(U)或R(A1,A2,…,An)R--關系名U--屬性名集合D--屬性所來自的域DOM--屬性向域的映像集合F--屬性間數據的依賴關系集合屬性名

2.2關系模式與關系數據庫模式1.關系模式關系模式關系關系頭關系體靜態、穩定,固定不變隨數據更新不斷變化2.2關系模式與關系數據庫模式1.關系模式例如,在第1章的表1-1~表1~5所示的教學數據庫teaching中,共有五個關系,其關系模式可分別表示為:教師(教師號,姓名,性別,年齡,職稱,工資,專業,院系)學生(學號,姓名,性別,年齡,專業,院系)課程(課程號,課程名,課時)選課(學號,課程號,成績)授課(教師號,課程號)2.2關系模式與關系數據庫模式1.關系模式對于上述每個關系模式,又有其相應的實例例如,在第1章的表1-1中,與教師關系模式對應的數據庫中的實例如下表所示。t1劉楊男40教授3610.5計算機信息學院t2石麗女26講師2923.3信息信息學院t3顧偉男32副教授3145計算機信息學院t4趙禮女50教授4267.9自動化工學院t5趙希希女36副教授3332.67數學理學院t6張剛男30講師3012自動化工學院2.2關系模式與關系數據庫模式2.關系數據庫模式關系數據庫模式關系數據庫型值靜態、穩定,固定不變隨數據更新不斷變化主要內容關系模型的構成原理01OPTION03OPTION關系的完整性和碼02OPTION關系模式和關系數據庫模式04OPTION關系大似乎2.3關系的完整性和碼1.候選碼和主碼(1)候選碼定義2.6設關系R有屬性A1,A2,…,An,其屬性集K=(Ai,Aj,…,Ak),當且僅當滿足下列條件時,K被稱為候選碼。唯一性(Uniqueness),關系R的任意兩個不同元組,其屬性集K的值是不同的。最小性(Minimum),組成關系鍵的屬性集(Ai,Aj,…,Ak)中,任一屬性都不能從屬性集K中刪掉,否則將破壞唯一性的性質?!罢n程關系”中的課程號能唯一標識每一門課程,則屬性“課程號”是課程關系的候選碼“授課關系”中,只有屬性的組合“教師號+課程號”才能唯一地區分每一條授課記錄,則屬性集“教師號+課程號”是授課關系的候選碼“選課關系”中“學號+課程號”的組合是唯一的,同時,“學號+課程號”滿足最小性,從中去掉任一屬性,都無法唯一標識選課記錄2.3關系的完整性和碼1.候選碼和主碼(2)主碼如果一個關系中有多個候選碼,可以從中選擇一個作為查詢、插入或刪除元組的操作變量,被選用的候選碼稱為主碼主碼也稱為主關系鍵、主鍵、關系鍵、關鍵字等,后續章節中,統一稱為主碼例如,假設在學生關系中增加了一個屬性“身份證號”,則“學號”和“身份證號”都可作為學生關系的候選碼。如果選定“學號”作為數據操作的依據,則“學號”為主碼。如果選定“身份證號”作為數據操作的依據,則“身份證號”為主碼。主碼是關系模型中的一個重要概念,每個關系有且只有一個主碼,選定以后,不能隨意改變。2.3關系的完整性和碼1.候選碼和主碼(3)主屬性和非主屬性主屬性(PrimeAttribute)是指包含在主碼中的各個屬性非主屬性(Non-PrimeAttribute)是指不包含在任何候選碼中的屬性,也稱為非碼屬性在最簡單的情況下,一個候選碼只包含一個屬性,如學生關系中的“學號”,教師關系中的“教師號”在最極端的情況下,例如,在第1章的表1-5所示的授課關系中,所有屬性的組合,即“教師號+課程號”是關系的候選碼,這時稱為全碼(All-key)。2.3關系的完整性和碼2.外碼定義2.7如果關系R2的一個或一組屬性X不是R2的主碼,而是另一關系R1的主碼,則該屬性或屬性組X稱為關系R2的外碼(Foreignkey)或外部關系鍵(在后續章節中統一稱為外碼),并稱關系R2為參照關系(ReferencingRelation),關系R1為被參照關系(ReferencedRelation)。關系R1關系R2屬性X屬性Y…屬性X屬性Z…主碼

主碼

外碼或外部關系鍵參照關系

被參照關系

被參照關系的主碼和參照關系的外碼必須定義在同一個域上2.3關系的完整性和碼3.關系的完整性完整性約束實體完整性參照完整性用戶自定義完整性必須滿足體現具體領域中的語義約束2.3關系的完整性和碼3.關系的完整性(1)實體完整性實體完整性是指主碼的值不能為空或部分為空課程關系中的主碼“課程號”不能為空授課關系中的主碼“教師號+課程號”不能部分為空,即“教師號”和“課程號”兩個字段的取值都不能為空。2.3關系的完整性和碼3.關系的完整性(2)參照完整性如果關系的外碼X與關系R1的主碼相符,則R2中X的每個值或者等于R1中主碼的某一個值或者取空值表示未分配院系2.3關系的完整性和碼3.關系的完整性(3)用戶自定義完整性用戶自定義完整性是針對某一具體關系數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求屬性值根據實際需要,要具備一些約束條件。如規定選課關系中成績屬性的取值范圍在0和100之間;某些數據的輸入格式要有一些限制等。關系模型應該提供定義和檢驗這類完整性的機制,以便用統一的、系統的方法處理它們,而不要由應用程序承擔這一功能。主要內容關系模型的構成原理01OPTION03OPTION關系的完整性和碼02OPTION關系模式和關系數據庫模式04OPTION關系代數2.4關系代數關系數據結構關系操作關系完整性約束查詢更新插入刪除修改

關系模型2.4關系代數北京林業大學信息學院1關系代數的分類及其運算符關系代數是一種抽象的查詢語言

關系代數的運算對象與運算結果都是關系關系代數運算符∪-∩

×

∏??xθy÷>,≥<,≤=,≠∧∨┐

集合運算符

關系運算符

比較運算符邏輯運算符第2章北京林業大學信息學院2.4關系代數關系代數的運算按運算符的不同主要分為兩類:傳統的集合運算:把關系看成元組的集合,以元組作為集合中元素來進行運算,其運算是從關系的“水平”方向即行的角度進行的。包括并、差、交和笛卡爾積等運算。專門的關系運算:不僅涉及行運算,也涉及列運算,這種運算是為數據庫的應用而引進的特殊運算。包括選取、投影、連接和除法等運算。2.4關系代數北京林業大學信息學院2傳統的集合運算設給定兩個關系R、S,若滿足:(1)

具有相同的列數(或稱度數)n;(2)

R中第i個屬性和S中第i個屬性必須來自同一個域。則說關系R、S是相容的。除笛卡爾積外,其他的集合運算要求參加運算的關系必須滿足上述的相容性定義。2.4關系代數北京林業大學信息學院并(Union):R∪S={t|t∈R∨t∈S}差(Difference):R-S={t|t∈R∧┐t∈S}交(Intersection):R∩S={t|t∈R∧t∈S}廣義笛卡爾積(ExtendedCartesianProduct):R×S={tr⌒ts|tr∈R∧ts∈S}R∩S=R-(R-S)2.4關系代數【例】

如圖2-3(a)、(b)所示的兩個關系R與S為相容關系,(c)為R與S

的并,(d)為R與S的差,(e)為R與S的交,(f)為R與S的廣義笛卡爾積。

ABCABCa1b1c1a1b1c1a1b1c2a2b2c1a2b2c1a2b3c2(a)(b)

R

S2.4關系代數ABCa1b1c1a2b2c1

R∩S

(e)ABCa1b1c2(d)R-SABCa1b1c1a1b1c2a2b2c1a2b3c2R∪S

(c)2.4關系代數北京林業大學信息學院ABCABCa1b1c1a1b1c1a1b1c1a2b2c1a1b1c1a2b3c2a1b1c2a1b1c1a1b1c2a2b2c1a1b1c2a2b3c2a2b2c1a1b1c1a2b2c1a2b2c1a2b2c1a2b3c2(f)圖2-3傳統的集合運算

R×S2.4關系代數北京林業大學信息學院2.3.3專門的關系運算由于傳統的集合運算,只是從行的角度進行,而要靈活地實現關系數據庫多樣的查詢操作,必須引入專門的關系運算。在講專門的關系運算之前,為敘述上的方便先引入幾個概念。

(1)設關系模式為R(A1,A2,……An),它的一個關系為R,t∈R表示t是R的一個元組,t[Ai]則表示元組t中相應于屬性Ai的一個分量。2.4關系代數北京林業大學信息學院(2)若A={Ai1,Ai2,……,Aik},其中Ai1,Ai2,……,Aik是A1,A2,……,An中的一部分,則A稱為屬性列或域列,?則表示{A1,A2,……,An}中去掉{Ai1,Ai2,……,Aik}后剩余的屬性組。t[A]={t[Ai1],t[Ai2],……,t[Aik]}表示元組t在屬性列A上諸分量的集合。(3)R為n元關系,S為m元關系,tr∈R,ts∈S,tr⌒

ts稱為元組的連接(Concatenation),它是一個n+m列的元組,前n個分量為R的一個n元組,后m個分量為S中的一個m元組。(4)給定一個關系R(X,Z),X和Z為屬性組,定義當t[X]=x時,x在R中的像集(Imageset),為Zx={t[Z]|t∈R,t[X]=x},它表示R中的屬性組X上值為x的各元組在Z上分量的集合。

北京林業大學信息學院2.4關系代數x1在R中的像集Zx1={Z1,Z2,Z3}x2在R中的像集Zx2={Z2,Z3}x3在R中的像集Zx3={Z1,Z3}Z3x3Z1x3Z3x2Z2x2Z3x1Z2x1Z1x1R2.4關系代數北京林業大學信息學院[例2-5]查詢計算機系的全體學生。

Dept=‘計算機’(S)或

5=‘計算機’(S)(其中5為屬性Dept的序號)運算結果如圖選?。⊿election)

F(R)={t|t∈R∧F(t)='真'}從行的角度進行的運算F為選取的條件2.4關系代數北京林業大學信息學院[例2]查詢工資高于1000元的男教師。

(Sal>1000)∧(Sex='男')(T)運算結果如圖第2章北京林業大學信息學院2.4關系代數[例2-7]查詢教師的姓名、教師號及其職稱。ΠTN,TNo,Prof(T)或Π2,1,5(T)(其中2,1,5分別為屬性TN、TNo和Prof的序號)運算結果如圖投影(Projection)

ΠA(R)={t[A]|t∈R}A為R中的屬性列從列的角度進行的運算第2章北京林業大學信息學院2.4關系代數[例2-8]查詢教師關系中有哪些系。ΠDept(T)運算結果如圖第2章北京林業大學信息學院2.4關系代數[例2-9]查詢講授C5課程的教師號。ΠTNo(σCNo='C5'(TC))運算結果如圖第2章北京林業大學信息學院2.4關系代數自然連接:在等值連接的情況下,當連接屬性X與Y具有相同屬性組時,把在連接結果中重復的屬性列去掉,記為:R

?

Sθ連接(θJoin)

={t

r⌒ts|tr∈R∧ts∈S∧tr[X]

ts[Y]為真}

為算術比較運算符=等值連接<小于連接>大于連接R?x

yS第2章北京林業大學信息學院2.4關系代數

[例2-10]設有如圖2-9(a)、(b)所示的兩個關系R與S,(c)為R和S的大于連接(C>D),(d)為R和S的等值連接(C=D),(e)為R和S的等值連接(R.B=S.B),(f)為R和S的自然連接。

(a)

(b)

第2章北京林業大學信息學院2.4關系代數

(c)

(d)

(f)

(e)

第2章北京林業大學信息學院2.4關系代數[例2-11]查詢講授“數據庫”課程的教師姓名。ΠTN(

CN='數據庫'(C)?TC?ΠTNo,TN(T))或ΠTN(ΠTNo(

CN='數據庫'(C)?TC)?ΠTNo,TN(T))運算結果如圖等值連接與自然連接的區別

自然連接要求相等屬性值的屬性名相同,而等值連接不要求

自然連接是去掉重復列的等值連接第2章北京林業大學信息學院2.4關系代數除法(Division)除法運算同時從行和列的角度進行運算,適合于包含“全部”之類的短語的查詢。Yx為x在R中的像集,x=tr[X]R÷S={tr[X]|tr∈R∧Πy(S)

Yx}第2章北京林業大學信息學院2.4關系代數【例2-12】

已知關系R和S,如圖2-11(a),(b)所示,則R÷S如圖(c)所示。ABCDa1b2c3d5a1b2c4d6a2b4c1d3a3b5c2d8R(a)CDFc3d5f3c4d6f4S(b)

ABa1b2R÷S(c)

第2章北京林業大學信息學院2.4關系代數與除法的定義相對應,本題中

X={A,B}={(a1,b2),(a2,b4),(a3,b5)},Y={C,D}={(c3,d5),(c4,d6)}Z={F}={f3,f4}其中,元組在X上各個分量值的像集分別為:(a1,b2)的象集為{(c3,d5),(c4,d6)}(a2,b4)的象集為{(c1,d3)}(a3,b5)的象集為{(c2,d8)}S在Y上的投影為{(c3,d5),(c4,d6)}顯然只有(a1,b2)的像集包含S在Y上的投影,所以R÷S={(a1,b2)}第2章北京林業大學信息學院2.4關系代數[例2-13]查詢選修了全部課程的學生學號和姓名。

ΠSNo,CNo(SC)÷ΠCNo(C)*ΠSNo,SN(S)[例2-14]查詢至少選修了C1課程和C3課程的學生學號。

ΠSNo,CNo(SC)÷ΠCNo(

CNo='C1'∨CNo='C3'(C))只有S4同學的像集至少包含了C1課程和C3課程,因此,查詢結果為S4。北京市優質本科課程教材數據庫原理及應用教程(第5版)“十二五”普通高等教育本科國家級規劃教材國家級一流線上課程配套教材第3章關系數據庫標準語言——SQL第3章關系數據庫標準語言——SQL目錄北京林業大學信息學院SQL的基本概念與特點01OPTION03OPTION數據庫的操作02OPTIONSQLServer2022Express簡介數據表的操作04OPTION06OPTION多關系(表)的連接查詢05OPTION單關系(表)的數據查詢SQL的基本概念與特點07OPTION09OPTION數據庫的操作08OPTIONSQLServer2022Express簡介數據表的操作10OPTION11OPTION單關系(表)的數據查詢北京林業大學信息學院結構化查詢語言StructuredQueryLanguage數據查詢數據定義數據操縱數據控制3.1SQL的基本概念與特點北京林業大學信息學院3.1.1SQL的發展及標準化SQL的發展ChamberlinSEQUEL大型數據庫

SybaseINFORMIXSQLServerOracleDB2INGRES----------------小型數據庫

FoxProAccessSQL3.1SQL的基本概念與特點北京林業大學信息學院3.1.2SQL的基本概念基本表(BaseTable)

一個關系對應一個基本表

一個或多個基本表對應一個存儲文件視圖(View)

視圖是從一個或幾個基本表導出的表,是一個虛表 S(SNo,SN,Sex,Age,Dept)

S_Male(SNo,SN,Age,Dept)無數據,只有定義Sex='男'在數據庫中只存有S_Male的定義,數據仍在S表中3.1SQL的基本概念與特點北京林業大學信息學院

SQL語言支持的關系數據庫的三級模式結構3.1SQL的基本概念與特點北京林業大學信息學院3.1.3SQL的主要特點SQL語言是類似于英語的自然語言,簡潔易用SQL是一種一體化的語言SQL語言是一種非過程化的語言SQL語言既是自含式語言,又是嵌入式語言SQL語言具有數據查詢、數據定義、數據操縱和數據控制四種功能SQL語言是一種面向集合的語言3.2SQLServer2022Express簡介北京林業大學信息學院3.2.1SQLServer的發展與版本SQLServer是一個支持關系模型的關系數據庫管理系統

企業版(EnterpriseEdition)

標準版(StandardEdition)

Web版(WebEdition)

開發者版(DeveloperEdition)

3.2SQLServer2022Express簡介3.2.2SQLServer2022的主要組件組件

功能數據庫引擎存儲、處理和保護數據的核心引擎,復制,全文搜索以及用于管理關系數據和XML數據的工具。SQLServerManagementStudio集成環境,用于配置和管理SQLServer的主要組件。Full-textSearch用于搜索文本多的數據、ReportingServices(用于根據您的權數據創建功能強大的報表)。SQLLocalDB輕型版本,該版本具備所有可編程性功能,在用戶模式下運行,并且具有快速的零配置安裝和必備組件要求較少的特點北京林業大學信息學院3.2.3ManagementStudio開始→所有程序→MicrosoftSQLServerTools→MicrosoftSQLServerManage

溫馨提示

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

評論

0/150

提交評論