




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 第一章 數據庫系統概論 一、數據庫技術概述 1. 數據、數據處理、數據管理數據是描述現實世界中各種具體事物或抽象概念的可存儲并具有明確意義的各種符號。數據處理是指包括數據采集、整理、編碼和輸入,從而有效地將數據組織到計算機中,由計算機對數據進行存儲、加工、分類、檢索、傳輸和輸出等一系列的操作過程。數據管理是指數據處理的一系列活動中的基本操作環節,如對數據的組織、存儲、檢索和維護等工作,它是數據處理的核心。通俗說,數據管理就是指在計算機系統里對數據所進行的操作。在數據組織到計算機中之前不屬于數據管理,將數據通過網絡傳輸到另一個計算機系統的傳輸動作也不屬于數據管理。人工管理階段背景:硬件,沒有直
2、接存取設備,軟件,沒有操作系統及管理數據的軟件;數據處理的方式為批處理文件系統階段背景:硬件,有直接存取設備,軟件,有操作系統和專門的數據管理的軟件;數據處理方式可為批處理方式也可為聯機方式數據庫系統階段背景:多用戶、多應用共享數據要求,大量數據處理需求。. 數據庫系統數據庫系統指在計算機系統中引入數據庫后的系統構成,由六部分構成:數據庫(DataBase,DB) 是存儲在計算機系統內的、有結構的數據的集合;數據庫管理系統(DataBase Management System,DBMS) 是管理數據庫的系統軟件,為用戶和數據之間提供接口,使用戶可對數據庫進行各種操作。是數據庫系統的核心部分。運
3、行環境 包括計算機硬件系統、操作系統、開發工具等;數據庫管理員(DataBase Administraor,DBA) 主要負責設計、建立、管理和維護數據庫,協調各用戶對數據庫的要求等;DBA不一定只是一個人,可以是一個工作組;用戶(Users) 數據庫系統的服務對象。數據庫應用系統 滿足用戶功能需求的軟件系統。 二、數據模型1. 數據模型概述數據模型是數據抽象的工具,即用此工具來組織數據,使數據結構化。目前廣泛使用的數據模型可分為兩個層次。第一層數據模型是獨立于計算機系統的模型,它完全不涉及信息在系統中的表示,只是用來描述某個特定組織所關心的信息結構,這類模型稱為“概念數據模型”。第二層數據模
4、型是依賴于計算機系統的模型,它是直接面向數據庫的邏輯結構,這類模型涉及到計算機系統和數據庫管理系統,這類模型稱為“結構數據模型”。現實世界(事物 事物特性)信息世界(實體 實體屬性)數據世界(記錄 數據項)概念模型結構模型1. 現實世界的抽象過程現實世界客觀存在的世界。在現實世界中存在著各種運動著的物質,即各種事物及事物之間的聯系。客觀世界中的事物都有一些特征,人們正是利用這些特征來區分事物。信息世界人們通過大腦對客觀世界的感知,又通過分析、歸納、抽象等方法處理,形成信息,對這些信息進行記錄、整理、歸納和格式化,即構成了信息世界。實體聯系模型、對象模型數據世界(機器世界)數據化了的信息世界稱為
5、數據世界,也叫機器世界。關系模型、層次模型、網狀模型2. 概念數據模型概念數據模型是獨立于計算機系統,完全不涉及數據在計算機系統中的表示,按用戶的觀點在信息世界中對事物建模,強調其語義表達能力,主要用于數據庫概念設計。典型的概念模型有:實體聯系模型(ER模型)和對象模型。 3. 結構數據模型的三要素結構數據模型是面向計算機系統的,是現實世界中的信息最終在機器世界中得到的反映,它通常有一組嚴格定義了語法和語義的語言,人們可以使用它來定義、操縱數據庫的數據。典型的結構數據模型有:層次模型、網狀模型和關系模型。數據結構數據操作數據約束3.1 數據結構數據結構用于描述數據的靜態特性。數據結構不僅要描述
6、數據本身,如數據類型、內容、屬性;還要描述數據之間的聯系。不同的數據模型采用不同的數據結構。在關系數據模型中用數據記錄和數據項來描述。 3.2 數據操作數據操作用于描述數據的動態特性。是指對數據庫中的數據所允許執行的操作的集合。主要有插入、刪除、修改和查詢四種操作。 3.3 數據約束數據約束是一組完整性規則的集合。完整性規則是數據模型中數據及其聯系所具有的約束規則,用來限定數據庫狀態以及狀態的變化,以保證數據的正確性。完備的數據模型都會提供描述約束的機制,盡可能完整地描述現實系統中對事物的約束規定,以達到真實描述現實系統的目的。4. 層次模型層次模型(Hierarchical Data Mod
7、el)是數據庫系統中最早出現的數據模型。20世紀60年代后期,IBM開發出IMS (Information Management System) DBMS,是層次數據模型的基礎。 層次模型是以記錄型為結點的有向樹。用樹形結構表示各類實體以及實體之間的聯系。現實世界中許多實體之間的聯系就呈現出一種很自然的層次關系,如:行政機構、家庭關系等。層次模型中,每個結點表示一個記錄類型,結點之間的連線表示記錄類型間的聯系,但這種聯系只能是父子聯系。層次模型中,任何一個給定的記錄值,只有按其路徑查看時,才能顯示出它的完整意義。沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在。 層次模型的數據結構樹結點表示“實
8、體”,即一條記錄,樹結點之間的連線表示“聯系”。層次模型的數據操作按數據結構中對樹的操作,實現結點的增加、刪除、修改和查詢。層次模型的數據約束一個模型一個根,根以外的結點只有一個雙親結點,一對多關系。5. 網狀模型(Net Data Model)網狀數據模型的典型代表是DBTG系統,亦稱CODASYL系統。網狀模型去掉了層次模型的兩個限制,允許結點有多個雙親結點。可比層次模型更直接地描述現實世界。它是層次模型的泛化。數據結構用有向圖描述,圖頂點表示實體,邊表示實體間的聯系。數據操作實現對圖中頂點的插入、刪除、修改和查詢。數據約束沒有約束。 6. 關系模型關系模型是由E.F.Codd(埃德加.考
9、特)于1970年首先提出。它的基礎不是圖而是表。用二維表來表示實體和聯系。每個二維表稱為一個關系。表中每一行代表一個實體,表中每一列則代表實體的屬性。二維表既反映了實體本身,也反映了實體與實體間的聯系。數據結構表中的行表示實體,表和表之間的相同屬性反映實體間的聯系。數據操作按行可以增加、刪除、修改和查詢實體。數據約束任何兩行不能完全相同,主鍵約束、域值約束、參照完整性約束、用戶自定義約束等。7. 面向對象模型面向對象模型(Object-Oriented Data Model)用對象來描述事物,一個事物即為一個對象。面向對象模型的數據結構用對象、對象屬性及對象之間的聯系來描述。面向對象模型的數據
10、操作及完整性約束則是統一封裝在對象之中的。三、數據庫系統的構造數據庫系統的三級模式數據庫系統總體結構數據庫系統的主要特點1. 數據庫系統三級模式結構1.1 數據的獨立性概念所謂數據獨立性,是指應用程序獨立于數據的邏輯表示與物理存儲。通過將數據的定義與存儲從程序中獨立出來實現。 1.2 數據的邏輯獨立性數據邏輯獨立性是當概念模式改變時,例如,增加了新的關系、新的屬性、改變了屬性的數據類型等,由DBA對各個外模式/概念模式的映象作相應改變,可使外模式盡可能保持不變。由于應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。 1.3 數據的物理獨
11、立性數據的物理獨立性 是指當數據庫的內模式發生改變時,如存儲設備或存儲方法發生改變,由DBA對概念模式/內模式映象作相應改變,使概念模式盡可能保持不變,從而應用程序也不必改變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。2. 數據庫系統總體結構圖數據庫設計部分結合三級模式講透。案例教學:以教學管理系統為例。教學管理系統面向教務管理員、教師、學生、教學管理領導。在此引出視圖的概念 3. 數據庫系統的主要特點數據結構化可控數據冗余數據共享性好多種應用、多種語言共享數據獨立性高集中統一控制數據的安全性控制數據的完整性控制并發控制 四、數據庫管理系統什么是數據庫管理系統數據庫管理系統的功能數據
12、庫管理系統的組成數據庫語言 1.什么是數據庫管理系統數據庫管理系統(DataBase Management System)簡稱為DBMS。是一種負責數據庫定義、建立、操作、管理和維護的系統軟件。它的作用既類似于命令解釋器,把用戶對數據庫的操作命令轉換為對系統存儲文件的操作;又類似于一個向導,把用戶對數據庫的一次訪問,從用戶級帶到概念級,再導向物理級。 2. DBMS的功能數據庫的定義數據庫的建立數據庫的操作數據庫的控制數據庫的維護與故障恢復數據通信。 3. 數據庫管理系統的組成從程序的角度看,數據庫管理系統是一組程序的集合體,按程序的功能可分為如下三類。3.1 語言處理程序3.2 運行控制程序
13、3.3 服務性程序 3.1 語言處理程序向用戶提供數據庫的定義、操作等功能。由以下編譯程序或解釋程序組成:數據庫各級模式的語言處理程序。其作用是將各級源模式編譯成各級目標模式。數據庫操作編譯處理程序。即將應用程序中DML語句轉換成主語言編譯程序能處理的形式,實現預編譯。查詢語言解釋程序。處理終端查詢語句,并決定其操作的執行過程。數據庫控制語言解釋程序。解釋每個數據庫控制命令的含義,決定操作的執行過程。 3.2 運行控制程序負責數據庫運行時的管理、調度和控制。由以下程序模塊組成:系統總控程序。它是整個DBMS的核心,負責控制、協調DBMS各個程序的活動,保證系統有條不紊地工作。訪問控制程序。其內
14、容包括核對用戶、口令,核對授權和密碼,檢驗訪問的合法性,以決定一個訪問是否能進入數據庫;并發控制程序。在多個用戶同時訪問數據庫時,通過管理訪問隊列和封鎖表,以及封鎖的建立和撤消等工作,協調各個用戶的訪問,以避免造成數據修改和丟失等不正常現象,從而保證各應用程序讀寫數據的正確性;保密控制程序。在執行操作之前,核對保密規定。即數據加密約定。數據的完整性控制程序。在執行用戶請求的每次操作前或后,核對數據的完整性約束條件,從而決定是否允許操作執行。數據存取程序。執行數據存取操作,是DBMS與文件系統的接口。把用戶對數據庫的訪問請求轉換為相應的文件存取命令,通過文件系統從相應的物理文件中讀出數據,或向相
15、應的物理文件寫入數據。數據更新程序。執行數據庫中數據的插入、刪除和修改操作,并負責修改相應的指針。通信控制程序。實現用戶程序與DBMS之間的通信。 3.3 服務性程序提供數據庫中數據的裝入和維護等服務性功能,由以下一些程序模塊組成:數據庫裝入程序 該程序將初始數據裝入數據庫中。 運行日志程序 該程序記載對數據庫的所有訪問,包括用戶名、進入時間、操作方式、操作對象、數據修改前的值和數據修改后的值等。 重組織程序 當數據庫性能變壞時,需要重新組織數據庫,該程序可按原組織方法重新裝入數據或采用新方法、新結構重新組織數據。 數據庫恢復程序 當數據庫系統遭到破壞時,數據庫系統恢復程序可將系統恢復到可用狀
16、態。性能監控程序 該程序監督用戶操作的執行時間與數據存儲空間的占用情況,估算系統性能,以決定數據庫是否需要重新組織。 轉貯程序編輯和打印程序4. 數據庫語言數據庫管理系統是用戶與數據庫之間的接口。一個數據庫管理系統必須為用戶提供某種工具完成下列工作:建立自己的數據庫,對數據庫進行各種操作。這個工具就是數據庫語言。數據庫語言包括數據描述語言、數據操作語言、數據庫管理例行程序三大部分。最常用的數據庫語言就是SQL語言。 4.1 數據描述語言Data Description Language,負責描述和定義數據的各種特性。這些特性包括數據的結構、數據之間的關系、數據的完整性約束等。這些描述和定義被存
17、儲在數據庫管理系統中的數據字典中。數據字典(Data Dictionary, DD) 是數據庫管理系統中的一個特殊文件,用于存儲數據庫的一些說明信息,這些說明信息稱為元數據(Meta Data)。參見P20.SQL語言中的Create Table,Create View,Create Database,alter database,Drop table,Alter table等都是數據描述語言。 4.2 數據操作語言Data Manipulation Language,是用戶操作數據庫中數據的工具。一般包括以下幾方面的操作:從數據庫中檢索滿足條件的數據;把新的數據記錄插入到數據庫中去;從數據庫
18、中刪除某些過時的、沒有保留價值的原有數據; 修改某些已經發生了變化的數據項值,使之能確切反映變化后的情況。如,Select, Insert, Delete,Update等。按使用方式可將數據操作語言分為宿主式操作語言和自主式操作語言。宿主式操作語言也稱為嵌入式操作語言。4.3 數據庫管理例行程序存取控制例行程序安全性控制例行程序完整性控制例行程序事務管理例行程序恢復例行程序監控例行程序 五、數據庫應用系統開發概述兩種模式C/S模式B/S模式組件與分布式對象技術組件技術分布式對象技術 1. C/S模式是一種分布式的計算模式。C/S模式通過網絡環境,將應用劃分為“前端”和“后臺”。前端由客戶機擔任
19、GUI(Graphic User Interface)處理以及向服務器發送用戶請求和接收服務器回送的處理結果;后端為服務器,主要承擔數據庫的管理,按用戶請求進行數據處理并回送結果等工作。 兩層C/S結構網絡為局域網,表示層和功能層揉在一起的,邏輯上沒有分開,只是將數據層分開。 三層C/S結構表示層、功能 層、數據層。表示層表示層是應用的用戶接口部分,它擔負著用戶與應用間的對話功能。它用于檢查用戶從鍵盤等輸入的數據,顯示應用輸出的數據。為使用戶能直觀地進行操作,一般要使用圖形用戶接口(GUI),操作簡單、易學易用。在變更用戶接口時,只需改寫顯示控制和數據檢查程序,而不影響其他兩層。檢查的內容也只
20、限于數據的形式和值的范圍,不包括有關業務本身的處理邏輯。在這層的程序開發中主要是使用可視化編程工具。 功能層功能層相當于應用的本體,它將具體的業務處理邏輯編入程序中。例如,在制作訂購合同時要計算合同金額,按照定好的格式配置數據、打印訂購合同,而處理所需的數據則要從表示層或數據層取得。表示層和功能層之間的數據交換要盡可能簡潔。例如,用戶檢索數據時,要設法將有關檢索要求的信息一次傳送給功能層,而由功能層處理過的檢索結果數據也一次傳送給表示層。在應用設計中,一定要避免進行一次業務處理,在表示層和功能層間進行多幾次數據交換的笨拙設計。這層的程序多半是用可視化編程工具開發的,也有使用C語言的。數據層數據
21、層就是DBMS,負責管理對數據庫數據的讀寫。DBMS必須能迅速執行大量數據的更新和檢索。現在的主流是關系數據庫管理系統(RDBMS)。因此,一般從功能層傳送到數據層的要求大都使用SQL語言。 三層C/S的優點:具有靈活的硬件系統構成提高程序的可維護性 利于變更和維護應用技術規范 進行嚴密的安全管理 2. B/S模式(多層)3. 組件技術組件(Component),是指具有某種功能的獨立軟件單元,其最重要的特性是可復用性。組件模型由組件和容器構成。組件通過接口向外界提供功能入口。組件的范圍很廣,小到一個按鈕,大到一個系統,如瀏覽器。容器(Container),是一種存放相關組件的“器皿”。如表單
22、(Form)、頁面(Page)、框架(Frame)等。組件技術應解決兩個問題:復用和互操作。常見的組件規范有:VBX、OCX、ActiveX。VBX、OCX、ActiveX都是由微軟推出的 4. 分布式對象技術組件向分布式環境延伸,形成了分布式對象技術。利用分布式對象技術,可以實現異構平臺間分布式對象間的相互通信,極大地提高系統的可擴展性。組件技術與分布式技術用得較廣泛的模型有:CORBA、COM/DCOM/COM+、JavaBeans/EJB/J2EE。參見P32-33。 六、數據庫技術的發展第一代數據庫系統第二代數據庫系統OLTP與OLAP數據倉庫與數據挖掘并行與分布式數據庫系統Inter
23、net/Web數據庫面向對象的數據庫系統 1. 第一代數據庫系統以層次數據庫管理系統和網狀數據庫管理系統的出現為標志,其典型代表分別是IMS和DBTG系統。層次數據庫和網狀數據庫均支持三級模式的體系結構,均用存取路徑表示數據間的聯系,都有數據定義語言和導航式的數據操縱語言。對這兩種數據庫的應用要求:一是要熟悉數據庫的各種路徑,二是有較高的應用數據庫的編程技巧。層次型和網狀型均缺少相應的數學理論基礎。 2. 第二代數據庫系統支持關系數據模型的關系數據庫系統是第二代數據庫系統。關系模型既簡單,又有堅實的數學基礎。 3. OLTP與OLAPOLTP(Online Transaction Proces
24、sing)即聯機事務處理。是一種數據庫應用技術。如民航的訂票系統、銀行儲蓄系統、證券交易系統等均屬于OLTP的應用。OLAP(Online Analysis Processing)即聯機分析處理。也是一種數據庫應用技術,1993年由E.F.Codd提出。OLAP著重于“數據分析”,而OLTP著重于“數據管理”。OLAP的典型應用就是決策支持系統(DSS)。 4. 數據倉庫與數據挖掘數據倉庫(Data Warehouse)的概念由W.H.Inmon于1991年提出,其給出的定義為:數據倉庫是面向主題的、集成的、穩定的、不同時間的數據集合,用以支持經營管理中決策制定過程。Sybase: Indus
25、try Warehouse Studio 3.2IBM: Visual Warehouse OLAPOracle: Oracle Warehouse BuilderMicrosoft: SQL Server OLAP Service數據挖掘(Data Mining)是在大量的、不完整的、有噪聲的數據中發現潛在的、有價值的模式和數據間關系的過程。數據挖掘技術有:判斷法、決策樹、人工神經網絡、遺傳算法、模糊技術、粗集方法、可視化技術等。5. 并行與分布式數據庫系統并行數據庫系統即將傳統的數據庫管理技術與并行處理技術相結合形成的數據庫系統。其特點是由多處理機及多個磁盤構成,數據庫系統的吞吐量大大提高
26、,事務響應時間大大縮短。分布式數據庫系統,目前沒有統一的定義,多種理解參見P45。具有如下特點:數據的物理分散性;數據的邏輯整體性;數據分布的獨立性;站點自治與協調;數據的冗余與冗余透明性。 6.Internet/Web數據庫Internet/Web數據庫,其實質是在傳統的關系數據庫技術基礎上,對數據庫模型、存儲機制和檢索技術等方面進行改進,而構造出基于Internet/Web應用的數據庫系統。Internet/Web數據庫的主要特征:采用多維處理、變長存儲以及面向對象等新技術,使數據庫應用轉為全面基于Internet的應用。 7. 面向對象的數據庫系統面向對象的數據庫系統(OODBS),即以
27、面向對象的程序設計語言為基礎,引入數據庫技術,來建立的新一代的數據庫系統。OODBS概念是1989年以英國Glasgow大學的Atkinson為首的6名學者首先提出的。1990年,以美國Berkeley大學Stonebraker為首的DBMS功能委員會提出以關系數據庫系統為基礎,建立對象關系數據庫系統(ORDBS)。有人把ORDBS歸為第三代數據庫系統,而把OODBS歸為第四代數據庫系統。第二章 實體聯系數據模型 一、數據模型綜述1.為什么需要數據模型?由于數據的定義與操作從應用程序中剝離出來,交由DBMS來定義和管理。于是DBMS需要采用某種數據結構來定義、存儲所要管理的數據。狹義上講,這種
28、數據結構就是DBMS的數據模型。另一方面,現實系統要向計算機化的管理轉變,因此,在數據庫設計時,也必須用某種方式將其所關心、管理的數據抽取出來并組織起來,數據模型也正是起到這種作用。技術上的要求和應用要求數據的靜態結構。數據的動態操作(增刪改查詢)。數據的完整性約束。綜合說來,應描述數據、數據之間的聯系、數據語義及完整性限制,同時還需要提供對數據操作的方法。2. 如何描述數據模型?用數據模型的三要素 3.如何評價數據模型?真實地描述現實系統。基本要求易于為一般用戶所理解。易于計算機實現。 4.數據模型為什么有層次性?從數據抽象的過程看。數據模型是數據庫設計時數據抽象的工具,由于抽象層次的存在,
29、相應地,數據模型也會有層次。從評價指標(第二、三項)的互斥性看。目前已被商用化DBMS支持的數據模型中,沒有一個能同時滿足上述三項要求。也就是說無法在數據庫應用系統開發時,從設計到實現只使用一個數據模型。 5.數據模型的未來有兩個發展方向:設計、開發與實現的一統數據模型。如面向對象模型。“層次共存,自動轉換”。即設計用的數據模型到數據庫管理系統所用的數據模型之間的相互轉換由計算機輔助完成。如實現ERM向關系模型相互轉換的工具有:Sybase公司的Power Designer、CA公司的ERwin等;實現對象模型向關系模型轉換的工具有:Rational公司的Rose。 6.ERM的地位與作用?傳
30、統三種數據模型的特點:能較好地滿足第一和第三項評價要求。三種數據模型的不足:不易被業務用戶理解。這是提出語義數據模型(Semantic Data Model)的基礎。 實體聯系模型(Entity Relationship Model, ERM)是用得最多且最成熟的語義數據模型。屬于數據庫應用系統設計的內容。 從數據庫應用系統設計角度看,ER模型主要用于DB概念設計,是DB概念設計較常用的設計工具。 二、數據庫設計綜述數據庫設計一般分為如下步驟:需求分析概念數據庫設計邏輯數據庫設計模式優化物理數據庫設計安全設計 三、實體聯系模型實體、實體集及屬性聯系及聯系集ERM中的完整性約束弱實體ERM各元素
31、圖示 1. 實體、實體型及屬性1.1 實體、實體型實體(Entity):現實世界中有別于其他對象的對象。對象可以是具體的,也可以是抽象的。具體的實體如某某學生、某某老師等;而抽象的實體如某門課程、某份合同等。實體型(Entity Set):同類實體的集合。通常情況下簡稱為實體。如學生、教師、課程、合同。實體是指具體的個體,而實體型是對有共同特性的實體進行歸類。實體用矩形來表示。學生 1.2 屬性屬性(Attribute):是指實體的特征或性質,即實體用屬性描述。如學生實體的屬性有:學號、姓名、生日、年齡、性別、住址等。屬性按結構分:簡單屬性、復合屬性和子屬性。簡單屬性表示屬性不可再分;復合屬性
32、表示該屬性還可再分為子屬性。如姓名可分為現用名、曾用名、英文名等。實體用屬性描述,實體集中的所有實體具有相同的屬性。屬性用橢圓框表示。 1.3 域域(Domain):指屬性的取值范圍。屬性按取值分,有單值屬性,多值屬性、導出屬性和空值屬性。只有一個取值的屬性稱為單值屬性;多于一個取值的屬性為多值屬性;值不確定或還沒有值的屬性稱為空值屬性;其值可由另一個屬性的取值推導出來的屬性為導出屬性。多值屬性如學位,一個人可能獲得多個學位;導出屬性如年齡,可由生日導出;空值屬性如學位,當還沒有獲得學位時,其值不定。1.4 鍵鍵(Key):能惟一標識實體的一個或一組屬性。如學號、課程號等。按鍵所包含的屬性個數
33、分:簡單鍵和復合鍵。由一個屬性構成的鍵稱為簡單鍵;由多個屬性構成的鍵稱為復合鍵。候選鍵(Candidate Key):最小屬性集合的鍵。主鍵(Primary Key):當存在多個候選鍵時,需選定其中一個作為主鍵,將其作為描述實體的惟一標識。鍵用屬性名加下劃線表示。 學號最小屬性集合,意即在該集合中沒有一個屬性是多余的。如學生實體,其屬性有:學號,姓名,性別,年齡等,在這些屬性中,學號可惟一確定各個不同的實體,根據鍵的定義,學號是鍵;同樣,學號與姓名的集合也可以惟一確定各個不同的實體,(學號,姓名)也是鍵,但它不是候選鍵,因為在這個鍵的集合中,姓名是多余的。進而可以得出結論:單屬性的鍵一定是候選
34、鍵,多屬性構成的鍵有可能不是候選鍵。 2. 聯系及聯系型2.1 聯系及聯系集聯系聯系(Relationship):是兩個或多個實體間的關聯。如“張三”選修“C語言”,此聯系用“成績”屬性來描述。 2.1 聯系及聯系型(續)聯系型聯系型(Relationship Set):相似的一組聯系稱為聯系型。因此聯系型就是實體型與實體型之間的聯系。通常簡稱為聯系。聯系型的階:一個聯系型所關聯的實體型的數量n,稱為聯系型的階。即稱為n元聯系。如“學生”與“課程”兩個實體型通過“選課”關聯,此聯系稱為二元聯系。如“商品”、“客戶”、“售貨員”三個實體型通過“門市另售”相關聯,此聯系稱為三元聯系。見圖2-2。
35、2.2 聯系型存在的幾種情況聯系用棱型框表示。聯系型存在的4種情況二元聯系(Binary Relationship):三元聯系(Ternary Relationship):兩個實體型間存在多個不同的聯系:如“員工”和“部門”兩個實體之間既存在“工作”關系,又存在“管理”關系。遞歸聯系(Recursive Relationship):同一個實體型中的兩個實體之間存在的關聯。如“員工”實體型中的兩個具體的人之間存在的“領導”與“被領導”關系。 歸納上面所介紹的是關于實體聯系模型的數據結構的內容。它是利用“實體”來描述現實世界中的客觀事物,實體又由“屬性”來描述,并用主鍵來惟一標識;用“聯系”來描述
36、事物之間的關聯,聯系也可有其屬性描述,聯系由所參與實體的主鍵共同惟一標識。實體聯系模型縮寫為ERM。 3. ERM中的完整性約束3.1 一般性約束根據關聯的實體參與到聯系中數量間的約束,聯系型可分為:一對一(1:1)聯系一對多(1:n)聯系多對多(m:n)聯系 聯系型分類定義定義 設聯系型R關聯實體型A和B,如果A中的一個實體只與B中的一個實體關聯,反過來,B中的一個實體也只與A中的一個實體關聯,則稱R是一對一聯系型;如果A中的一個實體與B中的n個實體關聯,反過來,B中的一個實體只與A中的一個實體關聯,則稱R是一對多聯系型;如果A中的一個實體與B中的n個實體關聯,反過來,B中的一個實體又與A中
37、的m個實體關聯,則稱R是多對多聯系型。3.2 鍵約束鍵約束(Key Constraint)是指在一個聯系型R中,實體型A中的一個實體,對應在實體型B中只能找到一個相關聯的實體;或實體型B中的一個實體,對應在實體型A中只能找到一個相關聯的實體。鍵約束的作用鍵約束對于聯系型主鍵的確定有重要的作用。對于1:1聯系,其主鍵就可取關聯的任一實體的主鍵獨立擔當;對于1:n聯系,其主鍵只需由n方實體的主鍵擔當;對于m:n聯系,其主鍵必須由關聯的所有實體的主鍵擔當。 3.3 參與約束參與約束(Participation Constraint)是實體與聯系之間的約束,也稱為實體關聯約束。參與約束分為完全參與(T
38、otal Participation)約束和部分參與(Partial Participation)約束。完全參與約束表示與聯系關聯的某個實體型中的所有實體,全部參與到聯系中來。如“學生”實體型與“選課”聯系型,所有的學生實體都會參與“選課”聯系。部分參與約束則表示與聯系關聯的某個實體型,只有部分實體參與到聯系中來。如“員工”實體型與“管理”聯系,只有部分員工參與管理。完全參與約束圖示時,用粗線表示。參見P63圖2-14。 4. 弱實體弱實體是指管理主體之外的實體型。也稱為外部實體。如,員工是企業管理的主體之一,然而企業為員工辦理保險時,不可避免地會涉及保險的受益人,受益人一般不是企業的員工,“
39、受益人”則稱為弱實體。識別實體:與弱實體型關聯的實體型,稱為識別實體型。如“員工”實體型。識別聯系:實體型與弱實體型之間的聯系稱為識別聯系。 對弱實體有如下約束:識別實體與弱實體之間的聯系必須是1:n聯系;弱實體必須完全參與識別聯系。弱實體和識別聯系用粗線條表示。 5. ERM各元素圖示四、應用實例經調研,了解到如下數據信息:某公司有多個原材料庫房,每個庫房分布在不同的地方,每個庫房有不同的編號,公司對這些庫房進行統一管理;每個庫房可以存放多種不同的原材料,為了便于管理,各種原材料分類存放,同一種原材料集中存放在同一個庫房里;每一個庫房可安排一名或多名員工管理庫房,在這些庫房里,每一個管理員有
40、且僅有一名員工是他的直接領導;應用實例同一種原材料可以供應多個不同的工程項目,同一個工程項目要使用多種不同的原材料;同一種原材料可由多個不同的廠家生產,同一個生產廠家可生產多種不同的原材料。從第4點了解到:工程項目實體編號,預算資金,開工日期,竣工日期;原材料與工程項目之間的供應聯系為n:m;從第5點了解到:廠家實體編號,名稱,地址,聯系電話;原材料與廠家之間的供應聯系為n:m。 應用實例實體型及屬性庫房實體型:庫房號、地點、庫房面積、庫房類型。員工實體型:員工號、姓名、性別、出生年月、職務。原材料實體型:材料號、名稱、規格、單價、說明。工程項目實體型:項目號、預算資金、開工日期、竣工日期。生
41、產廠家實體型:廠家號、廠家名稱、通信地址、聯系電話。 應用實例聯系型及屬性工作聯系型:1:n領導聯系型:1:n,且是遞歸聯系。存放聯系型:m:n,且有“庫存量”屬性。供應聯系型:三元聯系,且有“供應量”屬性。 五、擴展實體聯系模型擴展實體聯系模型實質上是與面向對象模型異曲同工。 1. 類層次子類(Subclass)概念:有時,需要將實體型中的實體分成子類。分類后體現為一種層次關系,最上層為超類(Superclass),下層即為子類。如,小時工和合同工是員工的子類。表示:小時工ISA(is a)員工、合同工ISA員工。ISA為這種類層次的聯系。子類屬性:除可繼承超類屬性外還可有自己獨特的屬性。小
42、時工合同工 2. 演繹與歸納2.1 演繹概念:演繹是根據超類來識別子類的處理過程。方法:先定義超類,再由超類來定義子類,然后加入子類的特定屬性,即由“一般”到“特殊”的方法。例如,員工按工作性質分,可分為:管理人員(特定屬性為職務級別)、技術人員(特定屬性為技術職稱)、銷售人員(特定屬性為銷售業績)。 2.2 歸納概念:歸納是指歸納出多個實體型的共同特征,并形成由這些共同特征構成的新實體型。方法:先定義子類,再定義超類,即由“特殊”到“一般”,有的教材稱此為“一般化”。例如,通過對博士生、碩士生、本科生、專科生、預科生、碩博連讀生、本碩連讀生等子類進行歸納,得出“學生”這個超類。 2.3 演繹
43、的原則重疊約束(Overlap)重疊約束要求演繹出的子類實體不能有重疊或交叉,又名“正交約束”。它是演繹時應遵守的默認原則。包容約束(Covering)包容約束要求超類中的每個實體必須屬于某一個子類。也就是說,子類的所有實體,構成超類中的所有實體,又名“完全性約束”。包容約束實際上要求在演繹時,要找全所有的子類,不要漏掉某一個子類。 3. 聚集聯系是指實體間的關聯。但有時,在實體和聯系之間也存在聯系的情況。這就與聯系的概念有矛盾。為了解決此問題,引入“聚集”概念。將聯系以及該聯系所關聯的實體一起,作為一個“高層”實體(或虛實體)來對待,該高層實體即為聚集。然后將高層實體看作一般的實體,與其他的
44、實體一起建立新的聯系。通過這種抽象處理后,保持了聯系概念的一致性,即聯系是實體間的關聯。第三章 關系數據庫的理論基礎一、關系數據庫概述關系數據模型,于1970年由E.F.Codd首先提出。關系模型帶來了數據庫領域的革命,它是目前最流行的RDBMS的基礎。在關系模型中,數據結構通過表來描述的,表既可以描述實體,也可描述聯系,如學生表則描述的是學生實體,成績表則描述的是學生實體與課程實體之間的聯系。分三點討論關系數據模型的概念與術語 關系數據操作 關系模型的四類完整性約束 1. 關系數據模型的概念與術語 1.1 元組、屬性和域元組:表中的每一行稱為一個元組,與一個實體對應,也稱為記錄。屬性:表中每
45、一列稱為一個屬性。每個屬性都有一個屬性名。與實體的屬性對應,也稱為字段。域:每個屬性所對應的值變化范圍叫做屬性的域。1.2 關系、關系模式關系與關系名:關系是元組的集合。每個關系都有一個關系名,它與實體名相對應。若一個關系由n個屬性構成,則稱該關系為n元關系。關系模式:對關系的描述稱為關系模式。由關系名及其所有屬性名的集合構成。例如:教師(職工號,姓名,性別,職務,專業)。一個關系模式可以有多個關系。如,學生(學號,姓名,性別,出生日期,住址,電話),一個大學就可能有多個學生表。1.3 關系模型、關系數據庫關系模型:是所有的關系模式的集合。一個關系模型描述了若干實體及其相互聯系,反映了對客觀世
46、界一部分的邏輯抽象。關系數據庫:對應于一個關系模型的所有關系的集合稱為關系數據庫。1.4 關鍵字在給定的關系中,能用來唯一地標識一個元組的屬性或屬性組,稱為給定關系的關鍵字(Key)。與實體的“鍵”對應。可唯一標識關系中每一個元組的屬性或屬性組,而又不包含多余的屬性,稱為該關系的候選關鍵字(Candidate Key)。與實體的候選鍵對應。若一個關系中有多個候選關鍵字,則選取其中一個為主關鍵字(Primary Key)。與實體的主鍵對應。在給定的關系中,經常需要根據某個或某幾個屬性的值,來唯一地存取某個元組,也就是需要用某個或某幾個屬性來唯一地標識一個元組,稱這樣的屬性組為給定關系的關鍵字。關
47、鍵字(續)包含在候選關鍵字中的屬性叫主屬性。主關鍵字在數據庫設計中是一個很重要的概念,每個關系都必須選擇一個候選關鍵字作為主關鍵字;對任一關系,主關鍵字一經選定,通常是不能隨意改變的。關鍵字舉例在關系模式:學生(學號,姓名,性別,出生日期,聯系電話,家庭住址)中,“學號”、“姓名”(假設不存在同名同姓),“聯系電話”(假定沒有姐妹或兄弟在同一所學校)等,均為候選關鍵字;“學號”、“學號,姓名”等是關鍵字;一般選“學號”為主關鍵字;“學號”、“姓名”、“聯系電話”均為主屬性。結論從上例中可看出:主關鍵字一定是候選關鍵字;候選關鍵字一定是關鍵字。反過來不一定成立。1.5 外部關鍵字設有兩個關系R和
48、S,它們的共有屬性X是關系S的候選關鍵字或主關鍵字,但不是關系R的關鍵字,則稱X為關系R的外部關鍵字或外部碼(External Key)。例如,有兩個關系:職工(職工號,姓名,性別,年齡,部門號)部門(部門號,部門名)在職工關系中,“部門號”不是關鍵字;在部門關系中,“部門號”是關鍵字;則稱“部門號”是職工關系的外部關鍵字。外部關鍵字為兩個表之間的聯系提供了橋梁作用。已隱含X是候選關鍵字。2. 關系數據操作數據查詢對一個關系內的數據查詢主要是選擇一些指定的屬性以及選擇滿足某些邏輯條件的元組。而對多個關系的數據查詢可以分解為:先將多個關系合并成一個關系,然后再對合并后的關系進行查詢。因此,對數據
49、查詢可以分解為三種基本操作:一個關系內的屬性指定;一個關系內元組的選擇和兩個關系的合并。數據插入,即在關系中插入一些新的元組。數據刪除,在關系內刪除一些元組。數據修改,在關系內修改一些元組的內容。數據修改可以分解成兩個更為基本的操作:先刪除要修改的元組,然后插入修改后的元組。因此上述四種操作,包含的操作方法有五種:關系的屬性指定、關系的元組選擇、兩個關系的合并、關系中元組的插入和關系中元組的刪除。3. 關系模型的四類完整性約束 關系模型的完整性約束規則是對關系的某種約束條件,確保數據庫中數據的正確性、一致性和有效性,防止錯誤的數據進入數據庫中造成無效操作。完整性約束分為四類:3.1 域完整性約
50、束域完整性(Domain Integrity)約束要求屬性值必須取自其對應的值域;一個屬性值能否為空值由其語義決定。域完整性約束是最基本的約束,不需要顯式定義。域完整性約束可以通過數據定義來實現,如數據類型、數據寬度、默認值等就能限制域的范圍。3.2 實體完整性約束實體完整性(Entity Integrity)約束的規則是:主關鍵字值必須是唯一的,且不能為空值。這一規則規定了關系中不能有重復的元組,不存在沒有被標識的元組。一張表只能有一個主鍵,主鍵一旦設定,一般不再修改。實體完整性約束(續1)這一規則的理論依據有:一個關系通常對應現實世界的一個實體型;現實世界的實體是可區分的,即它們具有某種唯
51、一性標識;在關系模型中主關鍵字作為唯一性標識;如果主關鍵字取空值,說明存在某個不可標識的實體,所以主關鍵字不能取空值。在關系模型中,實體完整性約束除了主鍵約束外,還提供有唯一約束。唯一約束主要是針對候選鍵的,以保證候選鍵值的完整性。唯一約束要求候選鍵值唯一,有且僅有一個空值。表中的候選鍵可設定為唯一約束,反過來說,設定為唯一約束的屬性(組)就是該表的候選鍵。一張表可有多個候選鍵,因此一張表也可有多個唯一約束。3.3 參照完整性約束參照完整性(Referential Integrity)約束又稱為引用完整性。參照完整性約束規則:設有兩個關系R和S,屬性(組)A是S的候選關鍵字,是R的外部關鍵字,
52、則對于R中的A的取值只有兩種可能性:取空值。等于S中某個元組的關鍵字值。參照完整性約束(續1)例如,前面職工關系中的部門號只能取兩種值:空值,說明該職工還未明確工作部門;取部門關系中出現的部門值,說明此職工的部門已確定,不可能分配到一個不存在的部門中去。參照完整性規則定義了外部關鍵字與主(候選)關鍵字的引用規則,不引用不存在的實體;外部關鍵字與主(候選)關鍵字對應可實現兩個關系的關聯。參照完整性約束(外鍵約束)在關系模型中,通過定義外鍵約束或觸發器來保證參照完整性約束。外鍵所在的表稱為從表;外鍵作為主鍵或候選鍵的表稱為主表。結論主表 從表 主表中的主鍵值在修改和刪除時,從表中與該表主鍵值相同的
53、外鍵值可級聯(CASCADE)修改和刪除,或改為空(SET NULL)或默認值(SET DEFAULT),或禁止(NO ACTION)主表主鍵值的修改和刪除。從表主表 從表中的外鍵值在插入和修改時,其值應參照主表中的主鍵。外鍵約束需要顯式定義,且應在從表上定義外鍵約束。參照完整性約束(觸發器)利用觸發器也可保證兩表間的數據完整性。主表的觸發器維護主表到從表方向的數據完整性,而從表的觸發器維護從表到主表方向的參照完整性。3.4 用戶自定義完整性約束用戶自定義完整性約束是針對某一具體數據的約束條件,由應用環境決定,它反映的是某一具體應用所涉及的數據必須滿足的語義要求。例如,可以給出規則:退休年齡男
54、60歲,女55歲。學生借閱圖書不能超過10本等等。域完整性約束規定了二維表列的取值情況;實體完整性約束規定了二維表行的取值情況;參照完整性規定了具有聯系的兩表間相同屬性的取值情況。用戶自定義完整性約束在關系模型中,用戶自定義完整性可用檢查約束(CHECK CONSTRAINT)或斷言(ASSERTION)來保證。檢查約束,有時也稱為表約束或表限制,可用來檢查:表中某一列的值是否在某一取值范圍之內;表中某幾列之間是否滿足指定的條件。二、關系運算(Relational Operators)1. 關系的數學定義笛卡爾積定義:給定一組任意集合D1,D2,Dn,它們可以包括相同的元素。這n個集合的笛卡爾
55、積為D1D2 Dn=(d1,d2,dn)| di Di, i=1,2,,n)笛卡爾積可以表示為一個二維表,表中的每一行對應一個元組,表中的每一列對應一個域。關系的數學定義(續 )關系定義:設有屬性A1,A2,Ak,它們分別在域D1,D2,Dk中取值,則這些域構成的一個笛卡爾乘積空間D=D1D2 Dk中的任一個子集D為一個關系,記為R。其關系模式是屬性Ai的有序集合,記為R(A1,A2,Ak)。D中任一個元素稱為R的一個元組。k稱為關系R的目或元。使用集合論的符號,上述定義可表述為:R=| DD或R=tk| tk DD tk=2. 傳統的關系運算 合并(Union)求差(Difference)相
56、交(Intersection)乘積(Cartesian Product)進行此四種運算的運算符屬于雙目運算符,或稱二元運算符。說明在傳統的關系運算中,除乘積外,所有其他運算中參與運算的兩個關系必須是相容可并的,即它們必須具有相同的元,且一個關系的第j個屬性與另一個關系的第j個屬性必須從相同的域中取值(但屬性的名字不必相同)。2.1合并(Union)設R和S分別為n元關系,R與S的并為屬于R或屬于S的元組組成的一個新關系。記為:RS=t|t Rt SRS具有與R相同的屬性名集合。合并舉例A1A2A3bbcd2323dbdbA1A2A3abceg32256cddffA1A2A3bbcdaeg232
57、3356dbdbcffRSRS2.2 求差(Difference)設R和S分別為n元關系,R與S的差為屬于R而不屬于S的元組組成的一個新關系。記為:R-S= t|t Rt SR-S具有與R相同的屬性名集合。求差舉例A1A2A3bbcd2323dbdbA1A2A3abceg32256cddffA1A2A3bd33bbRSR-S2.3 相交(Intersection)設R和S分別為n元關系,R與S的交為屬于R同時屬于S的元組組成的一個新關系。記為:RS= t|t Rt SRS具有與R相同的屬性名集合。根據定義, RS=R-(R-S)。因此交運算可以用差運算表示。用圖解釋RS=R-(R-S)的關系相
58、交舉例A1A2A3bbcd2323dbdbA1A2A3abceg32256cddffA1A2A3bc22ddRSR S2.4 乘積(Cartesian Product)兩個關系R和S(設R為k1元關系,S為k2元關系)的廣義笛卡爾乘積,是由屬于R的任一元組tk1和屬于S的任一元組tk2連接而成的新元組t所組成的一個新關系。記為:RS=t|t= tk1 R tk2 SRS為一個k1+k2元的新關系。前k1個分量為R的一個元組,后k2個分量為S的一個元組;RS有k1k2個元組。乘積舉例A1A2A3bbcd2323dbdbB1B2ab32A1A2A3B1B2bbbbccdd22332233ddbbd
59、dbbabababab32323232RSRS在此引出改名操作。若求S S,如何表示呢?3. 專門的關系運算 進行投影與選擇運算的運算符稱為單目運算符或稱一元運算符。3.1 投影(Projection)投影運算是從一個現有的關系中,選取某些屬性(列),并可對這些屬性重新排列,最后從得出的結果中刪除重復的行,而得到一個新關系。若R是一個k元關系,其元組變量為tk=,那么關系R在其屬性Aj1,Aj2,Ajn(nk,j1,j2,jn為1k 之間互不相同的整數)上的投影記為:j1,j2,jn(R)=t|t= R投影舉例A1A2A3bbcd2323dbdbA3A2db23R3,2(R)3.2 選擇(Se
60、lection)選擇運算是從一個現有關系中,選擇滿足一定條件的元組組成一個新的關系。記為:F(R)=t|t= t R F=True 選擇舉例A1A2A3abcg3226cddf25 3f (S)A1A2A3abceg32256cddffS3.3 連接(join)連接可定義為RS后再作“選擇”操作。它是關系代數中使用最頻繁的操作之一。條件連接等連接自然連接外連接3.3.1 條件連接(condition Join)設R為k1元關系,S為k2元關系,A為關系R的屬性, B為關系S的屬性,A、B具有相同的域,則兩個關系R和S的連接,是由屬于R的任一元組變量tk1和屬于S的任一元組變量tk2連接而成,且
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國會展策劃市場供需形勢分析與投資經營效益研究報告
- 蕪湖濟民醫療集團招聘筆試真題2024
- 涼山州越西縣招聘衛生事業單位人員筆試真題2024
- 河北省特崗教師筆試真題2024
- 西藏自治區人民防空辦公室事業單位真題2024
- 2024年忻州市忻府區就業和人才服務中心招聘筆試真題
- 2024年北京市密云區教育委員會選調筆試真題
- 移動互聯網使用管理制度
- 智能動態監控管理制度
- 旅客離崗服務管理制度
- 控制性爆破專項施工進度計劃
- GB/T 25820-2010包裝用鋼帶
- 中醫診斷思維與辨證思路培訓講義課件
- 超聲波流量計、流量計算機氣相色譜儀說明書-17.encal3000色譜儀-elster
- 教育家辦學:中小學校長專業標準解讀課件
- 抹灰施工工藝培訓課件
- 茶葉企業營銷課件
- 《高等數學》全冊教案教學設計
- 部編人教版六年級下冊語文 第六單元素養提升卷 優質試題課件
- DB14T1049.3-2021 山西省用水定額 第3部分:服務業用水定額
- DB37T 4309-2021 礦床三維地質建模規范
評論
0/150
提交評論