關系數據庫概述課件_第1頁
關系數據庫概述課件_第2頁
關系數據庫概述課件_第3頁
關系數據庫概述課件_第4頁
關系數據庫概述課件_第5頁
已閱讀5頁,還剩105頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1第一章

關系數據庫概述1第一章

關系數據庫概述本章主題數據庫的發展歷程數據模型關系型數據庫系統概述SQL簡介引入項目目標本章主題數據庫的發展歷程關系數據庫概述

3

美國加利福尼亞大學伯克利分校研究人員的統計數據:近3年間,世界范圍內信息生產量以平均每年30%的速度增長,至2002年,全球由紙張、膠片以及磁、光存儲介質所記錄的信息生產總量將達到5億兆字節。許多單位因日常運作而不得不經常性地維護大量數據。伴隨著大量數據、信息的不斷產生,如何安全有效地存儲、檢索和管理數據成了信息時代一個非常重要的問題。數據庫是解決數據存儲、檢索和管理的有效手段。數據庫按照一定的方式來組織數據。它由一個或多個相關的數據項組成,這些數據項又稱作“記錄”。數據庫就是一個數據集合,它包含單位所需的各種問題的答案。例如,“商場里有沒有XX牌子的食品,都有哪些,價格分別是多少?”,或者“從XX城去YY城都有哪幾趟火車?現在有沒有票?”本章的主要內容是描述與數據庫和數據庫管理系統相關的概念,探討各種不同的數據庫模型以及介紹SQL語言。關系數據庫概述3美國加利福尼亞大學伯克利分第一節數據庫概述

4數據庫的產生與發展數據模型數據庫系統與數據庫管理系統第一節數據庫概述4數據庫的產生與發展數據模型數據數據庫的產生與發展

5紙制系統文件系統數據庫系統數據的存儲可分為以下幾個階段:

數據庫的產生與發展5紙制系統文件系統數據庫系統數據的存儲可(一)紙制系統6

早期使用計算機保存數據之前,人們對于大量數據的存儲,可以使用簡單的書面文件來進行。例如,學校里需要保存教師、學生、班級、部門、課程、考試等相關信息。與教師相關的詳細資料存放在教師檔案里,與學生有關的詳細資料存放在學生檔案里。這種數據存儲的介質是紙,紙制書面文件容易毀損,不易長期保存,并且紙制文件數量龐大,會占用大量空間。

(一)紙制系統6早期使用計算機保存數據之前,(二)文件系統7

20世紀50-60年代,計算機的應用和發展為數據在磁盤或磁鼓的存放提供了機會,文件系統開始萌芽。早期的文件系統中,數據是和程序在一起的,如basic語言里就有個DATA語句,專門存放數據用。后來發展到將數據與程序分開存放,即數據獨立于程序,使用時再用程序調用數據文件,比如C語言中帶有文件操作的命令。以文件系統存放的數據主要接受操作系統的管理,操作系統以文件名作為用戶數據的標識,在管理較少、較簡單的數據,或者僅僅只是用來存儲,極少用來查詢,或查詢要求比較簡單的情況下,文件系統能夠滿足一定的用戶應用需求。使用文件系統保存數據的主要缺點有:數據的冗余度太大,數據和應用程序過分相互依賴,數據之間沒有什么聯系,數據缺乏統一的管理和控制。

(二)文件系統720世紀50-60年代,(三)數據庫系統8

數據庫系統從20世紀50年代萌芽,60年代中期產生,至本世紀初,已有40多年的歷史,在這短短40年間,數據庫系統發生了巨大的變化并取得了巨大的成就。它已從第一代的網狀、層次數據庫,第二代的關系數據庫系統,發展到第三代以面向對象模型為主要特征的數據庫系統。數據庫的出現解決了文件系統中所有的問題。在計算機的數據庫中,數據可以永久地保存下來,并能夠提供對數據的集中控制。

(三)數據庫系統8數據庫系統從20世紀50數據庫系統的發展經歷了三個階段

9數據庫發展的初級階段

數據庫發展的中級階段

數據庫發展的高級階段

數據庫系統發展三個階段數據庫系統的發展經歷了三個階段9數據庫發展的初級階段數據(一)數據庫發展的初級階段

10

1963年,美國Honeywell公司的IDS(IntegratedDataStore)系統投入運行,揭開了數據庫技術的序幕。1965年,美國一家火箭公司利用該系統幫助設計了阿波羅登月火箭,推動了數據庫技術的產生。1968年,美國IBM公司推出層次模型的IMS數據庫系統(1969年形成產品)。1969年,美國CODASYL(ConferenceOnDataSystemLanguage,數據庫系統語言協會)組織的數據庫任務組發表關于網狀模型的報告。層次模型與網狀模型的數據庫系統的出現,揭開了數據庫系統發展的序幕。在初級階段中,由于網狀模型數據庫的復雜性和專用性,沒有被廣泛使用,而層次模型數據庫則由于IBM公司的IMS(InformationManagementSystem,信息管理系統)層次模型數據庫系統的發展,得到了極大的發展,其不僅一度成為最大的數據庫管理系統,擁有巨大的客戶群,而且直到現在,仍然得到升級和支持,并不斷與新技術結合,在特定的領域內體現出強大的生命力。(一)數據庫發展的初級階段101963年(二)數據庫發展的中級階段11

1970年,IBM公司的E.R.Codd發表論文提出關系模型,標志著第二代數據庫---關系數據庫的萌芽。自此后,IBM大力投入關系數據庫的研究。關系模型的數據庫較網狀模型、層次模型在底層實現起來都要簡單,所以很快便發展起來,Oracle即是當時成立的一家專做關系模型數據庫的公司。20世紀80年代初,IBM公司的關系數據庫系統DB2問世,Oracle公司則將Oracle移植到桌面計算機上。作為第二代數據庫系統的關系數據庫開始逐步取代層次與網狀模式的數據庫,成為占主導地位的主流數據庫。迄今為止,關系型數據庫系統仍然蓬勃發展,占據數據庫應用的主要地位。

(二)數據庫發展的中級階段111970年,I(三)數據庫發展的高級階段12

近年來,計算機的應用已從傳統的科學計算、事務處理等領域,逐步擴展到工程設計統計、人工智能、多媒體、分布式等領域,這些新的應用領域需要有新的數據庫支撐,而傳統的關系數據庫系統是以商業應用、事務處理為背景而發展起來的,它并不完全適用于新領域。因此,新的領域期待有新的數據庫系統來支撐。另一方面,關系型數據庫開始向不同方向發展。數據庫生產廠商考慮到商業運用的目標,各自在基本遵循SQL-92的標準上為數據庫加入了一些提高效率和提高可用性的功能,舍棄了一些不太現實的約束。由于不同的數據庫廠商選擇在不同基礎進行發展,導致了關系數據庫系統向不同方向上的變遷。例如,Oracle引入了“并行”的機制,并開始了向“關系-對象”型數據庫的變遷,從而形成新一代的數據庫系統的萌芽,目前“關系-對象”型數據庫正在持續發展。(三)數據庫發展的高級階段12近年來,計算機數據模型13模型是一種抽象。如ax2+bx+c=0是一元二次方程的模型。在數據庫技術中,用模型對數據庫的結構和語義進行描述,實現對現實世界的抽象。從用戶所看到的現實世界到直接面向數據庫的邏輯結構,有兩層抽象,對應地有兩種不同抽象層次的數據模型。如圖1.1所示。現實世界概念數據模型邏輯數據模型圖1.1兩層數據模型數據模型13模型是一種抽象。如ax2+bx+c=0是一元二次(一)概念數據模型14

從現實世界到概念模型,是第一級抽象,用模型來表示對現實世界的這一抽象,稱為概念數據模型。概念數據模型是一種獨立于任何計算機系統實現的,完全不涉及信息在計算機系統中的表示,只是用來描述某個特定組織所關心的信息結構,如實體聯系模型。實體聯系模型(EntityRelationshipModel,ER模型)是P.P.Chen于1976年提出的。實體(Entity)是指客觀存在,可以相互區別、可以被描述的事物。實體可以是具體的對象,也可以是抽象的對象。例如計算機、人、課本、桌子甚至課本的結構,都屬于客觀存在的,可以相互區別,也可以被描述的,都稱為實體。實體聯系模型直接從現實世界中抽象出實體類型及實體間聯系,然后用實體聯系圖(ER圖)表示數據模型。該部分內容將在最后一章講述。

(一)概念數據模型14從現實世界到概念模型(二)邏輯數據模型15

從概念數據模型到邏輯數據模型是對現實世界做的第二級抽象,用模型來表示對概念數據的這一抽象,稱為邏輯數據模型。邏輯數據模型是一種直接面向數據庫中數據的邏輯結構,用來描述存儲數據的容器以及在該容器中存儲和檢索數據的過程,例如有關系模型、網狀模型、層次模型、面向對象模型等。這類模型涉及到數據在計算機系統中如何實現的問題,通常有嚴格的定義,一般又稱為“基本數據模型”或“結構數據模型”。邏輯數據模型的定義包含三個基本要素:數據結構:定義實體類型和實體間聯系在計算機中的表達和實現;數據操作:定義對數據庫的檢索和更新(包括插入、刪除、修改)兩類操作;數據完整性:定義數據及其聯系應具有的制約和依賴規則。

(二)邏輯數據模型15從概念數據模型到邏輯數(1)層次模型16

層次模型(HierarchicalModel)用樹形結構來表示實體及實體之間聯系的數據模型。其主要特點有兩個:①樹的最高結點---根結點,只有一個,該結點沒有雙親結點;②根以外的其他結點都與一個且只與一個父結點相連。例如操作系統管理方式下的文件組織結構便是一種層次模型,如圖1.2所示。C:ProgramFilesDocumentsandSettingsWINDOWSMicrosoftOfficeYahoo!MicrosoftSQLServer

在層次模型中,樹的結點是記錄類型,記錄之間的聯系是通過指針來實現的。1968年IBM公司研制推的IMS數據庫管理系統是第一個基于層次模型的大型商用數據庫管理系統。

(1)層次模型16層次模型(Hierarch(2)網狀模型17

如果取消層次模型中的兩個限制,允許一個以上的結點無雙親或一個結點可以有多于一個的雙親結點,便形成了網絡,又稱為有向圖。把用有向圖結構表示實體類型及實體之間聯系的模型叫網狀模型(NetworkModel)。如圖1.3所示。在網狀模型中,有向圖的結點是記錄類型,記錄之間的聯系是通過指針來實現的。1969年,CODASYL組織推出的DBTG系統,又稱CODASYL系統,奠定了數據庫系統的基本概念、方法和技術。實際的基于網狀模型的數據庫系統有CullinetSoftwareInc公司的IDMS、Univac公司的DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE。網狀模型和層次模型在本質上是一樣的。系老師課程專業學生成績圖1.3網狀模型聘任設置任課開設招收被選選課(2)網狀模型17如果取消層次模型中的兩個限(3)關系模型18

1970年由美國IBM公司SanJose研究室的研究員E.F.Codd提出的一種數據模型,該模型用二維表格來表示實體和實體間聯系,稱為關系模型(RelationalModel)。在層次模型和網狀模型中,文件中存放的是數據,各文件之間的聯系是通過指針來實現。關系模型中,文件存放兩類數據:實體、實體間的聯系。如圖1.4所示,Teachers表存放教師實體數據,Courses表存放課程實體數據,Classes存放班級實體數據,Teacher_course表存放教師的授課數據,前兩個文件存放的是實體本身的數據,最后一個文件存放的是教師實體、課程實體及班級實體間的聯系。典型的關系數據庫系統有ORACLE、SYBASE、DB/2、COBASE、PBASE、EasyBase、DM/2、OpenBase。(3)關系模型181970年由美國IBM公19圖1.4關系模型19圖1.4關系模型(4)面向對象模型20

現實世界中存在著許多復雜的數據結構,例如CAD數據、圖形數據、嵌套遞歸數據等,這樣的數據結構關系模型不能表達實現,但面向對象模型卻可以方便地表示。面向對象的概念早在1968年就出現了,現已使用在數據庫技術中。面向對象模型中最基本的概念是對象(object)和類(class)。(4)面向對象模型20現實世界中存在著許多復數據庫系統與數據庫管理系統21數據(Data)、信息(Information)、數據處理(DataProcessing)數據庫(Database,簡記為DB)數據庫管理系統(DatabaseManagementSystem,簡記為DBMS)數據庫系統(DatabaseSystem,簡記為DBS)數據庫系統與數據庫管理系統21數據(Data)、信息(Inf(一)數據、信息、數據處理22

現實中的事物的描述都可以稱為數據,事物可以用數字、文字、圖表、圖像、聲音等來描述,這些都是數據。如一個學生的各門課程的成績,一個教師的基本情況,一個商場的當天銷售情況等等。在日常的工作中,數據是最重要的組成部分,所謂的工作要么是使用現有的數據,要么是通過各種業務計算形成了新的數據。如一個學生的總成績是多少,商場當天銷售最好的商品是什么等等。數據與信息既有聯系又有區別。通常把對事物的原始描述,稱為數據,根據數據經過一定的計算過程得到的新的數據稱為信息。數據處理數據信息圖1.5數據與信息所以,信息來自于數據,是根據某些用戶要求而對數據加工后產生的,對這些用戶有用的數據。數據處理是完成數據轉換成信息的方法,數據處理從某些已知的數據出發,推導加工出一些新的數據,這些新的數據就是信息。數據處理包含數據的收集、存儲、傳遞、加工、統計管理、輸出等過程。數據、數據處理和信息的關系如圖1.5所示。數據處理數據信息圖1.5數據與信息(一)數據、信息、數據處理22現實中的事物的(二)數據庫23

數據庫,存儲在磁帶、磁盤、光盤或其他外存介質上,按一定結構組織在一起的相關數據的集合。在計算機中,數據庫是數據和數據庫對象的集合。所謂數據庫對象是指表(Table)、視圖(View)、存儲過程(StoredProcedure)、觸發器(Trigger)等。其中表是用來存放數據的對象,表包含數據庫中的所有數據。一個數據庫由多個表組成。數據庫對象將在以后的章節中介紹。

(二)數據庫23數據庫,存儲在磁帶、磁盤、光(三)數據庫管理系統24

數據庫管理系統是指數據庫系統中對數據進行管理的軟件系統,是一組能完成描述、管理、維護數據庫的程序系統,是數據庫系統的核心組成部分,它按照一種公用的和可控制的方法完成插入新數據、修改和檢索數據的操作。對數據庫的一切操作,包括定義、查詢、更新以及各種控制,都是通過DBMS進行的。DBMS的工作示意圖如圖1.6示。DB應用程序數據請求數據(處理結果)低層指令數據(查詢結果)數據庫系統DBMS

圖1.6DBMS工作示意圖首先,數據庫管理系統接受用戶通過前臺應用程序提交的數據請求和處理請求,并將用戶的數據請求(高級指令)轉換成復雜的機器指令(低層指令),實現對數據庫的操作。其次,接受從數據庫的操作中返回的查詢結果,對查詢結果進行處理(格式轉換),并將處理結果返回給應用程序,應用程序使用輸出功能將結果呈現給用戶。(三)數據庫管理系統24數據庫管理系統是指數數據庫管理系統具備的主要數據操縱功能

25(1)數據庫的定義功能。數據庫管理系統提供數據定義語言(DDL,DataDefineLanguage)用于管理數據庫中的對象,比如創建數據庫、刪除表等。(2)數據庫的操縱功能。數據庫管理系統提供數據操縱語言(DML,DataManipulateLanguage)實現對數據的操作,包括對數據的更新(插入、刪除、修改)和檢索(查詢)。(3)數據庫的保護功能。數據庫管理系統提供對數據庫中數據的保護功能,包括數據庫的恢復(在數據庫遭到破壞或數據不正確時,恢復數據至正確的狀態)、數據庫的并發控制(對多個用戶訪問同一個數據進行控制,防止數據遭到破壞)、數據完整性控制(保證數據庫中數據及語義的正確、一致和有效,防止任何對數據造成錯誤的操作)、數據安全性控制(防止未經授權的用戶對數據庫的數據進行訪問,保證數據不被惡意更改或破壞等)。數據庫管理系統具備的主要數據操縱功能25(1)數據庫的定義(四)數據庫系統26

簡單地講,數據庫系統是指一個具體的數據庫管理系統軟件和用它建立起來的數據庫;嚴謹地講,數據庫系統是采用數據庫技術的計算機系統,能夠實現有組織地、動態地存儲大量相互聯系的數據,為用戶提供數據訪問的機制。如圖1.6,一個完整的數據庫系統由數據庫、數據庫管理系統、數據庫管理員(DBA)、用戶和應用程序組成。(四)數據庫系統26簡單地講,數據庫系統是指第二節關系數據庫概述

關系數據庫的基本概念關系數據庫的基本要求SQL簡介2770年代是數據庫蓬勃發展的年代,當時基于層次模型的數據庫系統和基于網狀模型的數據庫系統占據了整個商用市場,而基于關系模型的數據庫系統僅處于實驗階段。80年代基于關系模型的數據庫系統逐步代替上述兩種模型的系統,成為主流的數據庫系統。按照關系模型存儲數據的數據庫系統稱為關系型數據庫系統。在關系型數據庫中,不論是實體還是實體與實體之間的聯系均存儲為二維表。第二節關系數據庫概述關系數據庫的基本概念27關系數據庫的基本概念

28

關系數據庫將同一類或者相關的數據存放在一個數據庫表中。例如,將所有的學生基本信息情況存放在一個表中,而將所有的教師基本信息存放于另一個表中。表類似于EXCEL中的電子表格,由行和列組成,但這里的數據庫表的定義比電子表格要嚴格。數據庫中關系的性質數據庫表的相關概念關系數據庫的基本概念28關系數據庫將同一類(一)數據庫表的相關概念學號姓名智育成績總成績考試課考查課小計011001葉海平..................29

(1)關系(Relation):關系即表,一個關系對應一張表(2)元組(Tuple):表中的一行(3)屬性(Attribute):表中的一列,給每一列取一個名稱即屬性名(4)主鍵(Key):表中可唯一確定一個元組的某個屬性組(5)域(Domain):屬性的取值范圍(6)分量(Component):元組中的一個屬性值(7)關系模式(RelationSchema):對關系的描述關系必須是規范化的,關系必須滿足一定的規范條件。最基本的規范條件是關系的每一個分量必須是一個不可分的數據項。如表1-1,智育成績不是最小的不可再分的數據項,故該表不是關系模型的數據庫表。

表1-1學生成績報表(一)數據庫表的相關概念學號姓名智育成績總成績考試課考查課小(二)數據庫中關系的性質

30

數據庫表由多行數據組成,每一行數據也可以稱為一條記錄或一個元組,同一個表中不能出現完全相同的記錄。表中縱向的數據稱為列,每一列均是由列名和列值組成,列又稱為屬性或字段,同一個表中不能出現完全相同的列名。屬性必須是同質的,即同一列的各個值應是同類型的數據。任一屬性必須是原子的,它不可再分。表中行的順序可以任意排列,表中列的順序也可以任意排列。(二)數據庫中關系的性質30數據庫表由多行關系數據庫的基本要求

31

為便于在計算機系統中實現關系模型,對關系模型作了嚴格的定義。基于關系模型的關系數據庫的基本要素有三部分組成:數據結構(實體類型和實體間聯系的表達和實現)、關系操作集合(對數據庫的檢索和更新,包括插入、刪除和修改)、關系的完整性(數據及其聯系應具有的制約和依賴規則)。數據結構關系操作集合關系的完整性關系數據庫的基本要求31為便于在計算機系統(一)數據結構32

關系操作采用集合操作,即操作的對象和結果都是集合。一個關系(二維表)由關系的“型”或“關系框架”(又稱表結構)與關系的“值”(又稱記錄數據)兩部分組成。一個關系數據庫可以包含一組關系,也可以只有一個關系。定義一個關系數據庫,就是對它所包含的所有關系框架進行描述。(一)數據結構32關系操作采用集合操作,即操作(二)關系數據33

關系模型中常用的關系操作包括:選擇、投影、連接、除、并、交、差等查詢操作和增、刪、改操作兩大部分。查詢的表達能力是其中最主要的部分。上述的關系操作可以分為兩類,傳統的集合操作和專門的關系操作。傳統的集合操作

選擇投影連接專門的關系數據關系數據并差交笛卡爾積(二)關系數據33關系模型中常用的關系操作包(1)傳統的集合操作Student_idStudent_nameStudent_sexStudent_nationStudent_birthdayStudent_timeStudent_classidStudent_homeStudent_else011001葉海平男漢1986-01-232004-09-01011山西011002景風男漢1986-06-252004-09-01011重慶012001華麗佳女漢1987-05-202004-09-01012大連012002范治華男漢1986-06-122004-09-01012山東34表1-2關系R設關系R如表1-2所示(1)傳統的集合操作Student_idStudent_na35表1-3關系SStudent_idStudent_nameStudent_sexStudent_nationStudent_birthdayStudent_timeStudent_classidStudent_homeStudent_else012002范治華男漢1986-06-122004-09-01012山東013001李佳佳女漢1986-03-012004-09-01013湖南013002史慧敏女漢1986-10-112004-09-01013湖北014001安靜女漢1986-03-232004-09-01014山西關系S如表1-3所示35表1-3關系SStudent_idStudent_na(1.1)并(Union)

36

關系R和關系S具有相同的結構,R和S的并記為RS,結構不變,由屬于R或屬于S的元組組成。RS如表1-4所示。表1-4RSStudent_idStudent_nameStudent_sexStudent_nationStudent_birthdayStudent_timeStudent_classidStudent_homeStudent_else011001葉海平男漢1986-01-232004-09-01011山西011002景風男漢1986-06-252004-09-01011重慶012001華麗佳女漢1987-05-202004-09-01012大連012002范治華男漢1986-06-122004-09-01012山東013001李佳佳女漢1986-03-012004-09-01013湖南013002史慧敏女漢1986-10-112004-09-01013湖北014001安靜女漢1986-03-232004-09-01014山西(1.1)并(Union)36關系R和關系S具有相同(1.2)差(Difference)

37

關系R和關系S具有相同的結構,R和S的差記為R-S,結構不變,由屬于R而不屬于S的元組組成。R-S如表1-5所示表1-5R-SStudent_idStudent_nameStudent_sexStudent_nationStudent_birthdayStudent_timeStudent_classidStudent_homeStudent_else011001葉海平男漢1986-01-232004-09-01011山西011002景風男漢1986-06-252004-09-01011重慶012001華麗佳女漢1987-05-202004-09-01012大連(1.2)差(Difference)37關系R和關系S(1.3)交(Intersection)

38

關系R和關系S具有相同的結構,R和S的交記為RS,結構不變,由既屬于R又屬于S的元組組成。RS如表1-6所示。表1-6RSStudent_idStudent_nameStudent_sexStudent_nationStudent_birthdayStudent_timeStudent_classidStudent_homeStudent_else012002范治華男漢1986-06-122004-09-01012山東(1.3)交(Intersection)38關系R和(1.4)廣義笛卡爾積39設關系R 如表1-7所示

Student_idStudent_nameStudent_sexStudent_nation011001葉海平男漢011002景風男漢012001華麗佳女漢012002范治華男漢關系S如表1-8所示

Student_idCourse_idStudent_grade011001100182011002100186011001200178(1.4)廣義笛卡爾積39設關系R 如表1-7所示Stud40

關系R的目(列數)為n(此例為4),關系S的目為m(此例為3),關系R和關系S的笛卡爾積RS是一個n+m(此例為7)目的元組集合。每個元組的前n個分量來自R的一個元組,后m個分量來自S的一個元組。若R有k1(此例為4)個元組,S有k2(此例為3)個元組,則RS有k1k2個(此例為12)元組。如表1-9所示

Student_idStudent_nameStudent_sexStudent_nationStudent_idCourse_idStudent_grade011001葉海平男漢011001100182011001葉海平男漢011002100186011001葉海平男漢011001200178011002景風男漢011001100182011002景風男漢011002100186011002景風男漢011001200178012001華麗佳女漢011001100182012001華麗佳女漢011002100186012001華麗佳女漢011001200178012002范治華男漢011001100182012002范治華男漢011002100186012002范治華男漢01100120017840關系R的目(列數)為n(此例為4),關系S(2)專門的關系操作41

從關系中找出滿足給定條件的元組稱為選擇,相當于對關系做水平分割。選擇條件以邏輯表達式給出,使該邏輯表達式的值為真的元組被選取。詳細內容參見查詢一章。.從關系的所有屬性中挑選若干屬性組成新的關系稱為投影。這是對列進行運算,相當于對關系進行垂直分解。

聯接是將兩個關系的屬性名拼接在一起,形成一個更寬的關系模式,生成新的關系中包含滿足聯接條件的元組投影聯接選擇(2)專門的關系操作41從關系中找出滿足給定條件(三)關系的完整性

42

關系模型提供了豐富的完整性控制機制,包括三類完整性:實體完整性、參照完整性、用戶定義的完整性。實體完整性和參照完整性是關系模型定義必須滿足的完整性約束條件,由關系數據庫系統提供自動支持。實體完整性參照完整性用戶定義完整性(三)關系的完整性42關系模型提供了豐富的完(1)實體完整性43

在關系模型中,數據是在關系中存儲的,關系是表的正式術語。一個基本關系通常對應現實世界的一個實體集,現實世界中實體是可以區分的,即它們具有某種唯一性標識。從前面的示例中可以看出,表的其中一個最重要的特點是表中的行是無序的,所以行在表中的位置不能標識該行數據。每個數據庫的表都必須有一個列唯一標識表中的一行,保證表中的任兩行都不會包含有完全相同的記錄數據。唯一地標識表中記錄的一個或一組列稱為“主鍵”。主鍵碼不能取空值,主鍵取空值說明存在某個不可標識的實體。(1)實體完整性43在關系模型中,數據是在關(2)參照完整性44

參見上面的示例,Teachers表中的Teacher_id列用來唯一標識每個教師實體,是Teachers表的主鍵,Teacher_course表中的Teacher_id的取值與Teachers表中的Teacher_id的取值相匹配,即Teacher_course表中的Teacher_id的取值要么為空,要么等于Teachers表中的Teacher_id的某個值,則Teacher_course表中的Teacher_id稱為Teacher_course表的外鍵。外鍵與主鍵定義在同一個值域上。實體完整性和參照完整性用于任何關系數據庫系統。(2)參照完整性44參見上面的示例,Teac(3)用戶定義完整性45

用戶定義的完整性則是針對某一數據庫的約束條件,由應用環境決定,它反映某一具體應用所涉及的數據必須滿足的語義要求。關系模型具有如下特點:①關系必須規范化。即關系模型中每一個關系模式都必須滿足一定的要求。②模型概念單一。即關系模型中,無論是實體還是實體間的聯系都用關系表示。(3)用戶定義完整性45用戶定義的完整性則是SQL簡介

46

SQL(Structured

QueryLanguage),結構化查詢語言。SQL最早是由IBM的圣約瑟研究實驗室為其關系數據庫管理系統SYSTEMR開發的一種查詢語言。SQL語言結構簡潔,功能強大,簡單易學,自從IBM公司1981年推出以來,SQL語言得到了廣泛的應用,1986年,美國ANSI(美國國家標準協會)采用SQL作為關系數據庫管理系統的標準語言,后SQL標準又經過了多次修改。微機上常用的數據庫開發系統VisualFoxpro、PowerBuilder及大型數據庫管理系統Oracle、Sybase、Informix、SQLserver都支持SQL語言作為查詢語言。SQL簡介46SQL(Structured47SQL語言DMLDDLDCLDQL數據操縱語言DML(DataManipulationLanguage),例如INSERT、UPDATE、DELETE

數據控制語言DCL(DataControlLanguage),例如COMMIT、WORK、ROLLBACK、WORK數據定義語言DDL(DataDefinitionLanguage),例如CREATE、ALTER、DROP

數據查詢語言DQL(DataQueryLanguage),例如SELECT47SQL語言DMLDDLDCLDQL數據操縱語言DML(第三節本書案例介紹

48

本書主要介紹SQLSERVER2005對數據的操作功能,為了更好地理解這些知識,全書使用了一個完整的學生管理數據庫系統,講述操作的章節使用了該數據庫系統,通過對本書知識的學習,可以按照數據庫系統所需在SQLSERVER2005中完成數據庫各個對象的創建,為應用系統提供數據支持。本書在最后一章對該數據庫系統的數據做了完整的分析和設計,數據分析和設計是在SQLSERVER2005中實現這些數據的前提。數據分析決定哪些數據需要存儲在數據庫中,數據設計決定數據以什么結構、什么方式存儲在數據庫中,數據實現是指選擇合適的數據庫管理系統將數據實際存儲在計算機的存儲設備上。第三節本書案例介紹48本書主要介(一)功能需求分析

49

用戶是通過應用程序界面提供的各個功能來操作存儲在數據庫服務器上的數據。可以這樣來理解,用戶使用MicrosoftWord來處理文字,Word提供了許多功能方便用戶來操作文字,處理完畢的文字需要單獨保存,形成文檔文件,即用戶數據文件。同理,數據庫系統也是由可操作的應用程序和用戶數據組成,可操作的應用程序需要用其他的高級語言來編寫,用戶數據需要單獨保存。為了提高數據的保存和使用,目前常用數據庫管理系統來單獨存儲用戶數據。學生管理系統的目標是提高學生管理工作的效率,具有對學生個人信息、課程信息、選課信息進行管理及維護的功能。此處列出學生系統的功能,僅是為了說明一個完整的數據庫系統的前臺應用程序和后臺數據庫的作用,以便于讀者更好地理解數據庫在數據庫系統中的作用。學生管理系統的功能需求包括管理員對功能的需求和學生對功能的需求兩大部分(一)功能需求分析49用戶是通過應用程序(1)管理員對功能的需求

50

(1)學生信息的瀏覽,包括學生的姓名、性別、民族、出生日期、入學時間、所在班級、籍貫及備注信息;學生信息的添加、修改、刪除。(2)班級管理信息的瀏覽,包括班級設置、年級信息等;班級管理信息的添加、修改、刪除、瀏覽。(3)教師信息的添加、修改、刪除、瀏覽;(4)課程的瀏覽,包括課程名、課程類型、學時、學分和課程具體描述;課程的添加、修改、刪除、瀏覽;對所設課程進行教師分配。(5)學生成績信息的瀏覽和統計,可按成績、課號、年度、統計內容方面對成績進行統計;學生成績信息的添加、修改、刪除、選課人數的統計。(1)管理員對功能的需求50(1)學生信息的瀏覽(2)學生對功能的需求

51(1)瀏覽個人基本信息,具體內容包括姓名、學號、民族、出生日期、籍貫、所在班級、備注等。(2)修改個人信息中的密碼信息。(3)瀏覽課程信息,包括課程名、課程類型、學時、學分和課程具體描述、任課教師;。(4)瀏覽、設置個人選課情況。(5)瀏覽個人成績信息。學生管理系統的主要功能如圖1.7所示。學生管理系統用戶管理管理員管理教師管理課程管理班級管理選課管理成績管理學生管理圖1.7學生管理系統的功能(2)學生對功能的需求51(1)瀏覽個人基本信息,具體內容(二)數據需求分析52

功能的操作對象是用戶數據,在創建數據庫之前,必須根據系統功能確定系統所需要的數據。常用的方法是調查用戶,分析用戶所使用的現行系統,從現有的系統中獲得大多數的數據資料,如管理報表、帳單、票據等。通過對學生管理系統的調查分析,可以得到諸如學生入學時填寫的基本情況表、系和班級的設置情況、每學期的課程安排情況、每學期的成績數據、授課教師情況等等,這些數據的數量龐大,聯系較復雜,需要使用專門的數據庫管理系統對數據做統一管理。學生管理系統的數據庫設計在第十五章講述。(二)數據需求分析52功能的操作對象是用戶數據,在創建數本章小結53

本章立足于關系數據庫的基本知識,向讀者闡述了學習關系數據庫管理系統所必須具備的知識,包括:為什么使用數據庫?數據庫系統與數據庫管理系統的區別?數據庫如何組織數據?關系數據庫的三個基本要素定義,這些要素都在關系數據庫管理系統中得到了實現。學習和理解這些知識,有利于對后續章節知識進行更深層的理解。本章小結53本章立足于關系數據庫的基本知識,習題541.選擇題(1)某單位由不同的部門組成,不同的部門每天都要產生一些報告、報表等數據,以往都采用紙張的形式來進行數據的保存和分類,隨著業務的擴展,這些數據越來越多,管理這些報告、報表越來越費時費力,此時應該考慮()

A.由一個人來完成這些工作

B.在不同的部門中,由專門的人員去管理這些數據

C.采用數據庫系統來管理這些數據

D.不再使用這些數據(2)一個單位的組織結構通常可以用()模型來進行描述。

A.網絡B.層次C.文檔文件D.以上不可能(3)唯一標識表中記錄的一個或者一組列被稱為()

A.外鍵B.主鍵C.關系D.表(4)數據冗余是指()

A.數據和數據之間沒有建立關系

B.數據有丟失C.數據量太大D.存在大量重復的數據2.思考題(1)簡述SQL語言的四個組成部分?(2)邏輯數據模型有哪幾種?習題541.選擇題55本章結束ThankYou!55本章結束ThankYou!56第一章

關系數據庫概述1第一章

關系數據庫概述本章主題數據庫的發展歷程數據模型關系型數據庫系統概述SQL簡介引入項目目標本章主題數據庫的發展歷程關系數據庫概述

58

美國加利福尼亞大學伯克利分校研究人員的統計數據:近3年間,世界范圍內信息生產量以平均每年30%的速度增長,至2002年,全球由紙張、膠片以及磁、光存儲介質所記錄的信息生產總量將達到5億兆字節。許多單位因日常運作而不得不經常性地維護大量數據。伴隨著大量數據、信息的不斷產生,如何安全有效地存儲、檢索和管理數據成了信息時代一個非常重要的問題。數據庫是解決數據存儲、檢索和管理的有效手段。數據庫按照一定的方式來組織數據。它由一個或多個相關的數據項組成,這些數據項又稱作“記錄”。數據庫就是一個數據集合,它包含單位所需的各種問題的答案。例如,“商場里有沒有XX牌子的食品,都有哪些,價格分別是多少?”,或者“從XX城去YY城都有哪幾趟火車?現在有沒有票?”本章的主要內容是描述與數據庫和數據庫管理系統相關的概念,探討各種不同的數據庫模型以及介紹SQL語言。關系數據庫概述3美國加利福尼亞大學伯克利分第一節數據庫概述

59數據庫的產生與發展數據模型數據庫系統與數據庫管理系統第一節數據庫概述4數據庫的產生與發展數據模型數據數據庫的產生與發展

60紙制系統文件系統數據庫系統數據的存儲可分為以下幾個階段:

數據庫的產生與發展5紙制系統文件系統數據庫系統數據的存儲可(一)紙制系統61

早期使用計算機保存數據之前,人們對于大量數據的存儲,可以使用簡單的書面文件來進行。例如,學校里需要保存教師、學生、班級、部門、課程、考試等相關信息。與教師相關的詳細資料存放在教師檔案里,與學生有關的詳細資料存放在學生檔案里。這種數據存儲的介質是紙,紙制書面文件容易毀損,不易長期保存,并且紙制文件數量龐大,會占用大量空間。

(一)紙制系統6早期使用計算機保存數據之前,(二)文件系統62

20世紀50-60年代,計算機的應用和發展為數據在磁盤或磁鼓的存放提供了機會,文件系統開始萌芽。早期的文件系統中,數據是和程序在一起的,如basic語言里就有個DATA語句,專門存放數據用。后來發展到將數據與程序分開存放,即數據獨立于程序,使用時再用程序調用數據文件,比如C語言中帶有文件操作的命令。以文件系統存放的數據主要接受操作系統的管理,操作系統以文件名作為用戶數據的標識,在管理較少、較簡單的數據,或者僅僅只是用來存儲,極少用來查詢,或查詢要求比較簡單的情況下,文件系統能夠滿足一定的用戶應用需求。使用文件系統保存數據的主要缺點有:數據的冗余度太大,數據和應用程序過分相互依賴,數據之間沒有什么聯系,數據缺乏統一的管理和控制。

(二)文件系統720世紀50-60年代,(三)數據庫系統63

數據庫系統從20世紀50年代萌芽,60年代中期產生,至本世紀初,已有40多年的歷史,在這短短40年間,數據庫系統發生了巨大的變化并取得了巨大的成就。它已從第一代的網狀、層次數據庫,第二代的關系數據庫系統,發展到第三代以面向對象模型為主要特征的數據庫系統。數據庫的出現解決了文件系統中所有的問題。在計算機的數據庫中,數據可以永久地保存下來,并能夠提供對數據的集中控制。

(三)數據庫系統8數據庫系統從20世紀50數據庫系統的發展經歷了三個階段

64數據庫發展的初級階段

數據庫發展的中級階段

數據庫發展的高級階段

數據庫系統發展三個階段數據庫系統的發展經歷了三個階段9數據庫發展的初級階段數據(一)數據庫發展的初級階段

65

1963年,美國Honeywell公司的IDS(IntegratedDataStore)系統投入運行,揭開了數據庫技術的序幕。1965年,美國一家火箭公司利用該系統幫助設計了阿波羅登月火箭,推動了數據庫技術的產生。1968年,美國IBM公司推出層次模型的IMS數據庫系統(1969年形成產品)。1969年,美國CODASYL(ConferenceOnDataSystemLanguage,數據庫系統語言協會)組織的數據庫任務組發表關于網狀模型的報告。層次模型與網狀模型的數據庫系統的出現,揭開了數據庫系統發展的序幕。在初級階段中,由于網狀模型數據庫的復雜性和專用性,沒有被廣泛使用,而層次模型數據庫則由于IBM公司的IMS(InformationManagementSystem,信息管理系統)層次模型數據庫系統的發展,得到了極大的發展,其不僅一度成為最大的數據庫管理系統,擁有巨大的客戶群,而且直到現在,仍然得到升級和支持,并不斷與新技術結合,在特定的領域內體現出強大的生命力。(一)數據庫發展的初級階段101963年(二)數據庫發展的中級階段66

1970年,IBM公司的E.R.Codd發表論文提出關系模型,標志著第二代數據庫---關系數據庫的萌芽。自此后,IBM大力投入關系數據庫的研究。關系模型的數據庫較網狀模型、層次模型在底層實現起來都要簡單,所以很快便發展起來,Oracle即是當時成立的一家專做關系模型數據庫的公司。20世紀80年代初,IBM公司的關系數據庫系統DB2問世,Oracle公司則將Oracle移植到桌面計算機上。作為第二代數據庫系統的關系數據庫開始逐步取代層次與網狀模式的數據庫,成為占主導地位的主流數據庫。迄今為止,關系型數據庫系統仍然蓬勃發展,占據數據庫應用的主要地位。

(二)數據庫發展的中級階段111970年,I(三)數據庫發展的高級階段67

近年來,計算機的應用已從傳統的科學計算、事務處理等領域,逐步擴展到工程設計統計、人工智能、多媒體、分布式等領域,這些新的應用領域需要有新的數據庫支撐,而傳統的關系數據庫系統是以商業應用、事務處理為背景而發展起來的,它并不完全適用于新領域。因此,新的領域期待有新的數據庫系統來支撐。另一方面,關系型數據庫開始向不同方向發展。數據庫生產廠商考慮到商業運用的目標,各自在基本遵循SQL-92的標準上為數據庫加入了一些提高效率和提高可用性的功能,舍棄了一些不太現實的約束。由于不同的數據庫廠商選擇在不同基礎進行發展,導致了關系數據庫系統向不同方向上的變遷。例如,Oracle引入了“并行”的機制,并開始了向“關系-對象”型數據庫的變遷,從而形成新一代的數據庫系統的萌芽,目前“關系-對象”型數據庫正在持續發展。(三)數據庫發展的高級階段12近年來,計算機數據模型68模型是一種抽象。如ax2+bx+c=0是一元二次方程的模型。在數據庫技術中,用模型對數據庫的結構和語義進行描述,實現對現實世界的抽象。從用戶所看到的現實世界到直接面向數據庫的邏輯結構,有兩層抽象,對應地有兩種不同抽象層次的數據模型。如圖1.1所示。現實世界概念數據模型邏輯數據模型圖1.1兩層數據模型數據模型13模型是一種抽象。如ax2+bx+c=0是一元二次(一)概念數據模型69

從現實世界到概念模型,是第一級抽象,用模型來表示對現實世界的這一抽象,稱為概念數據模型。概念數據模型是一種獨立于任何計算機系統實現的,完全不涉及信息在計算機系統中的表示,只是用來描述某個特定組織所關心的信息結構,如實體聯系模型。實體聯系模型(EntityRelationshipModel,ER模型)是P.P.Chen于1976年提出的。實體(Entity)是指客觀存在,可以相互區別、可以被描述的事物。實體可以是具體的對象,也可以是抽象的對象。例如計算機、人、課本、桌子甚至課本的結構,都屬于客觀存在的,可以相互區別,也可以被描述的,都稱為實體。實體聯系模型直接從現實世界中抽象出實體類型及實體間聯系,然后用實體聯系圖(ER圖)表示數據模型。該部分內容將在最后一章講述。

(一)概念數據模型14從現實世界到概念模型(二)邏輯數據模型70

從概念數據模型到邏輯數據模型是對現實世界做的第二級抽象,用模型來表示對概念數據的這一抽象,稱為邏輯數據模型。邏輯數據模型是一種直接面向數據庫中數據的邏輯結構,用來描述存儲數據的容器以及在該容器中存儲和檢索數據的過程,例如有關系模型、網狀模型、層次模型、面向對象模型等。這類模型涉及到數據在計算機系統中如何實現的問題,通常有嚴格的定義,一般又稱為“基本數據模型”或“結構數據模型”。邏輯數據模型的定義包含三個基本要素:數據結構:定義實體類型和實體間聯系在計算機中的表達和實現;數據操作:定義對數據庫的檢索和更新(包括插入、刪除、修改)兩類操作;數據完整性:定義數據及其聯系應具有的制約和依賴規則。

(二)邏輯數據模型15從概念數據模型到邏輯數(1)層次模型71

層次模型(HierarchicalModel)用樹形結構來表示實體及實體之間聯系的數據模型。其主要特點有兩個:①樹的最高結點---根結點,只有一個,該結點沒有雙親結點;②根以外的其他結點都與一個且只與一個父結點相連。例如操作系統管理方式下的文件組織結構便是一種層次模型,如圖1.2所示。C:ProgramFilesDocumentsandSettingsWINDOWSMicrosoftOfficeYahoo!MicrosoftSQLServer

在層次模型中,樹的結點是記錄類型,記錄之間的聯系是通過指針來實現的。1968年IBM公司研制推的IMS數據庫管理系統是第一個基于層次模型的大型商用數據庫管理系統。

(1)層次模型16層次模型(Hierarch(2)網狀模型72

如果取消層次模型中的兩個限制,允許一個以上的結點無雙親或一個結點可以有多于一個的雙親結點,便形成了網絡,又稱為有向圖。把用有向圖結構表示實體類型及實體之間聯系的模型叫網狀模型(NetworkModel)。如圖1.3所示。在網狀模型中,有向圖的結點是記錄類型,記錄之間的聯系是通過指針來實現的。1969年,CODASYL組織推出的DBTG系統,又稱CODASYL系統,奠定了數據庫系統的基本概念、方法和技術。實際的基于網狀模型的數據庫系統有CullinetSoftwareInc公司的IDMS、Univac公司的DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE。網狀模型和層次模型在本質上是一樣的。系老師課程專業學生成績圖1.3網狀模型聘任設置任課開設招收被選選課(2)網狀模型17如果取消層次模型中的兩個限(3)關系模型73

1970年由美國IBM公司SanJose研究室的研究員E.F.Codd提出的一種數據模型,該模型用二維表格來表示實體和實體間聯系,稱為關系模型(RelationalModel)。在層次模型和網狀模型中,文件中存放的是數據,各文件之間的聯系是通過指針來實現。關系模型中,文件存放兩類數據:實體、實體間的聯系。如圖1.4所示,Teachers表存放教師實體數據,Courses表存放課程實體數據,Classes存放班級實體數據,Teacher_course表存放教師的授課數據,前兩個文件存放的是實體本身的數據,最后一個文件存放的是教師實體、課程實體及班級實體間的聯系。典型的關系數據庫系統有ORACLE、SYBASE、DB/2、COBASE、PBASE、EasyBase、DM/2、OpenBase。(3)關系模型181970年由美國IBM公74圖1.4關系模型19圖1.4關系模型(4)面向對象模型75

現實世界中存在著許多復雜的數據結構,例如CAD數據、圖形數據、嵌套遞歸數據等,這樣的數據結構關系模型不能表達實現,但面向對象模型卻可以方便地表示。面向對象的概念早在1968年就出現了,現已使用在數據庫技術中。面向對象模型中最基本的概念是對象(object)和類(class)。(4)面向對象模型20現實世界中存在著許多復數據庫系統與數據庫管理系統76數據(Data)、信息(Information)、數據處理(DataProcessing)數據庫(Database,簡記為DB)數據庫管理系統(DatabaseManagementSystem,簡記為DBMS)數據庫系統(DatabaseSystem,簡記為DBS)數據庫系統與數據庫管理系統21數據(Data)、信息(Inf(一)數據、信息、數據處理77

現實中的事物的描述都可以稱為數據,事物可以用數字、文字、圖表、圖像、聲音等來描述,這些都是數據。如一個學生的各門課程的成績,一個教師的基本情況,一個商場的當天銷售情況等等。在日常的工作中,數據是最重要的組成部分,所謂的工作要么是使用現有的數據,要么是通過各種業務計算形成了新的數據。如一個學生的總成績是多少,商場當天銷售最好的商品是什么等等。數據與信息既有聯系又有區別。通常把對事物的原始描述,稱為數據,根據數據經過一定的計算過程得到的新的數據稱為信息。數據處理數據信息圖1.5數據與信息所以,信息來自于數據,是根據某些用戶要求而對數據加工后產生的,對這些用戶有用的數據。數據處理是完成數據轉換成信息的方法,數據處理從某些已知的數據出發,推導加工出一些新的數據,這些新的數據就是信息。數據處理包含數據的收集、存儲、傳遞、加工、統計管理、輸出等過程。數據、數據處理和信息的關系如圖1.5所示。數據處理數據信息圖1.5數據與信息(一)數據、信息、數據處理22現實中的事物的(二)數據庫78

數據庫,存儲在磁帶、磁盤、光盤或其他外存介質上,按一定結構組織在一起的相關數據的集合。在計算機中,數據庫是數據和數據庫對象的集合。所謂數據庫對象是指表(Table)、視圖(View)、存儲過程(StoredProcedure)、觸發器(Trigger)等。其中表是用來存放數據的對象,表包含數據庫中的所有數據。一個數據庫由多個表組成。數據庫對象將在以后的章節中介紹。

(二)數據庫23數據庫,存儲在磁帶、磁盤、光(三)數據庫管理系統79

數據庫管理系統是指數據庫系統中對數據進行管理的軟件系統,是一組能完成描述、管理、維護數據庫的程序系統,是數據庫系統的核心組成部分,它按照一種公用的和可控制的方法完成插入新數據、修改和檢索數據的操作。對數據庫的一切操作,包括定義、查詢、更新以及各種控制,都是通過DBMS進行的。DBMS的工作示意圖如圖1.6示。DB應用程序數據請求數據(處理結果)低層指令數據(查詢結果)數據庫系統DBMS

圖1.6DBMS工作示意圖首先,數據庫管理系統接受用戶通過前臺應用程序提交的數據請求和處理請求,并將用戶的數據請求(高級指令)轉換成復雜的機器指令(低層指令),實現對數據庫的操作。其次,接受從數據庫的操作中返回的查詢結果,對查詢結果進行處理(格式轉換),并將處理結果返回給應用程序,應用程序使用輸出功能將結果呈現給用戶。(三)數據庫管理系統24數據庫管理系統是指數數據庫管理系統具備的主要數據操縱功能

80(1)數據庫的定義功能。數據庫管理系統提供數據定義語言(DDL,DataDefineLanguage)用于管理數據庫中的對象,比如創建數據庫、刪除表等。(2)數據庫的操縱功能。數據庫管理系統提供數據操縱語言(DML,DataManipulateLanguage)實現對數據的操作,包括對數據的更新(插入、刪除、修改)和檢索(查詢)。(3)數據庫的保護功能。數據庫管理系統提供對數據庫中數據的保護功能,包括數據庫的恢復(在數據庫遭到破壞或數據不正確時,恢復數據至正確的狀態)、數據庫的并發控制(對多個用戶訪問同一個數據進行控制,防止數據遭到破壞)、數據完整性控制(保證數據庫中數據及語義的正確、一致和有效,防止任何對數據造成錯誤的操作)、數據安全性控制(防止未經授權的用戶對數據庫的數據進行訪問,保證數據不被惡意更改或破壞等)。數據庫管理系統具備的主要數據操縱功能25(1)數據庫的定義(四)數據庫系統81

簡單地講,數據庫系統是指一個具體的數據庫管理系統軟件和用它建立起來的數據庫;嚴謹地講,數據庫系統是采用數據庫技術的計算機系統,能夠實現有組織地、動態地存儲大量相互聯系的數據,為用戶提供數據訪問的機制。如圖1.6,一個完整的數據庫系統由數據庫、數據庫管理系統、數據庫管理員(DBA)、用戶和應用程序組成。(四)數據庫系統26簡單地講,數據庫系統是指第二節關系數據庫概述

關系數據庫的基本概念關系數據庫的基本要求SQL簡介8270年代是數據庫蓬勃發展的年代,當時基于層次模型的數據庫系統和基于網狀模型的數據庫系統占據了整個商用市場,而基于關系模型的數據庫系統僅處于實驗階段。80年代基于關系模型的數據庫系統逐步代替上述兩種模型的系統,成為主流的數據庫系統。按照關系模型存儲數據的數據庫系統稱為關系型數據庫系統。在關系型數據庫中,不論是實體還是實體與實體之間的聯系均存儲為二維表。第二節關系數據庫概述關系數據庫的基本概念27關系數據庫的基本概念

83

關系數據庫將同一類或者相關的數據存放在一個數據庫表中。例如,將所有的學生基本信息情況存放在一個表中,而將所有的教師基本信息存放于另一個表中。表類似于EXCEL中的電子表格,由行和列組成,但這里的數據庫表的定義比電子表格要嚴格。數據庫中關系的性質數據庫表的相關概念關系數據庫的基本概念28關系數據庫將同一類(一)數據庫表的相關概念學號姓名智育成績總成績考試課考查課小計011001葉海平..................84

(1)關系(Relation):關系即表,一個關系對應一張表(2)元組(Tuple):表中的一行(3)屬性(Attribute):表中的一列,給每一列取一個名稱即屬性名(4)主鍵(Key):表中可唯一確定一個元組的某個屬性組(5)域(Domain):屬性的取值范圍(6)分量(Component):元組中的一個屬性值(7)關系模式(RelationSchema):對關系的描述關系必須是規范化的,關系必須滿足一定的規范條件。最基本的規范條件是關系的每一個分量必須是一個不可分的數據項。如表1-1,智育成績不是最小的不可再分的數據項,故該表不是關系模型的數據庫表。

表1-1學生成績報表(一)數據庫表的相關概念學號姓名智育成績總成績考試課考查課小(二)數據庫中關系的性質

85

數據庫表由多行數據組成,每一行數據也可以稱為一條記錄或一個元組,同一個表中不能出現完全相同的記錄。表中縱向的數據稱為列,每一列均是由列名和列值組成,列又稱為屬性或字段,同一個表中不能出現完全相同的列名。屬性必須是同質的,即同一列的各個值應是同類型的數據。任一屬性必須是原子的,它不可再分。表中行的順序可以任意排列,表中列的順序也可以任意排列。(二)數據庫中關系的性質30數據庫表由多行關系數據庫的基本要求

86

為便于在計算機系統中實現關系模型,對關系模型作了嚴格的定義。基于關系模型的關系數據庫的基本要素有三部分組成:數據結構(實體類型和實體間聯系的表達和實現)、關系操作集合(對數據庫的檢索和更新,包括插入、刪除和修改)、關系的完整性(數據及其聯系應具有的制約和依賴規則)。數據結構關系操作集合關系的完整性關系數據庫的基本要求31為便于在計算機系統(一)數據結構87

關系操作采用集合操作,即操作的對象和結果都是集合。一個關系(二維表)由關系的“型”或“關系框架”(又稱表結構)與關系的“值”(又稱記錄數據)兩部分組成。一個關系數據庫可以包含一組關系,也可以只有一個關系。定義一個關系數據庫,就是對它所包含的所有關系框架進行描述。(一)數據結構32關系操作采用集合操作,即操作(二)關系數據88

關系模型中常用的關系操作包括:選擇、投影、連接、除、并、交、差等查詢操作和增、刪、改操作兩大部分。查詢的表達能力是其中最主要的部分。上述的關系操作可以分為兩類,傳統的集合操作和專門的關系操作。傳統的集合操作

選擇投影連接專門的關系數據關系數據并差交笛卡爾積(二)關系數據33關系模型中常用的關系操作包(1)傳統的集合操作Student_idStudent_nameStudent_sexStudent_nationStudent_birthdayStudent_timeStudent_classidStudent_homeStudent_else011001葉海平男漢1986-01-232004-09-01011山西011002景風男漢1986-06-252004-09-01011重慶012001華麗佳女漢1987-05-202004-09-01012大連012002范治華男漢1986-06-122004-09-01012山東89表1-2關系

溫馨提示

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

最新文檔

評論

0/150

提交評論