1 基本概念
1.1 資料庫與資料庫管理系統
資料庫系統(DataBase System, DBS)是一個采用了資料庫技術,有組織地、動态地存儲大量相關聯資料,友善多使用者通路的計算機系統。
廣義上講,DBS是由資料庫、硬體、軟體(作業系統、資料庫管理系統DBMS、應用程式)、人員(系統分析員和資料庫設計人員、應用程式員、最終使用者、資料庫管理者)組成。
使用者操作應用程式,應用程式依賴DBMS,DBMS依賴作業系統,作業系統操作具體的硬體;
1.2 DBMS的功能
(1)資料定義(Data Definition Lanaguage, DDL):所有建立語句;
(2)資料操作(Data Manipulation Language, DML):所有操作語句;
(3)資料庫運作管理:并發管理、安全性管理、存取控制、完整性檢查、日志管理、事務管理、自動恢複等;
(4)資料組織、存儲和管理:分類組織、存儲、管理;
(5)資料庫的建立和維護
(6)其他功能
1.3 DBMS的特征與分類
特征
(1)資料結構化且統一管理;
(2)有效高的資料獨立性;
(3)資料控制功能;
(4)故障恢複;
分類
通常分以下三類:
(1)關系資料庫系統(Relation DataBase System, RDBS)
(2)面向對象資料庫系統(Object-Oriented DataBase System, OODBS)
(3)對象關系資料庫系統(Object-Oriented Relation DataBase System, OORDBS)
1.4 資料庫系統的體系結構
從資料庫管理系統角度看,資料庫系統通常采用三級模式結構;
從最終使用者角度看,資料庫系統結構分為集中式結構、C/S結構、并行結構、分布式結構;
1.5 資料庫的三級模式結構
資料庫領域公認的标準結構是三級模式結構,它包括外模式、模式和内模式,有效地組織、管理資料,提高了資料庫的邏輯獨立性和實體獨立性。使用者級對應外模式,概念級對應模式,實體級對應内模式,使不同級别的使用者對資料庫形成不同的視圖。所謂視圖,就是指觀察、認識和了解資料的範圍、角度和方法,是資料庫在使用者“眼中"的反映,很顯然,不同層次(級别)使用者所“看到”的資料庫是不相同的。
三級模式
模式(邏輯模式):又稱概念模式或者邏輯模式,對應于概念級,它是資料庫設計者綜合所有使用者的資料,按照統一的觀點構造的全局邏輯結構,是對資料庫中全部資料的邏輯結構和特征的總體描述,是所有使用者的公共資料視圖。它是由資料庫管理系統提供的資料模式描述語言(Data Description Language,DDL)來描述、定義的,展現、反應了資料庫系統的整體觀。一個資料庫隻有一個模式。
外模式(使用者模式):又稱子模式或使用者模式,對應于使用者級。它是某個或某幾個使用者所看到的資料庫的資料視圖,是與某一應用有關的資料的邏輯表示。外模式是從模式導出的一個子集,包括模式中允許特定使用者使用的那部分資料。使用者可以通過外模式描述語言來描述、定義對應于使用者的資料記錄(外模式),也可以利用資料操縱語言(Data Manipulation Language,DML)。一個資料庫可以有多個外模式,同一個外模式可以被多個應用程式使用,但是一個應用程式隻能對應一個外模式。
内模式(實體結構):又稱存儲模式,對應于實體級,它是資料庫中全體資料的内部表示或底層描述,是資料庫最低一級的邏輯描述,它描述了資料在存儲媒體上的存儲方式和實體結構,對應着實際存儲在外存儲媒體上的資料庫。内模式由内模式描述語言來描述、定義。一個資料庫隻有一個内模式。
在一個資料系統中,隻有唯一的資料庫,因而作為定義、描述資料庫存儲結構的内模式和定義、描述資料庫邏輯結構的模式,也是唯一的,但是建立在該資料庫系統之上的應用則是非常廣泛、多樣的,是以對應的外模式不是唯一的,也不可能是唯一的。
二級映像
外模式/模式:使用者界面映射到邏輯模式;
模式/内模式:邏輯模式轉化為實體結構;
外模式與内模式是邏輯上獨立的,是以外模式發生改變不會影響内模式,内模式發生改變不會影響外模式;
2 資料模型
2.1 資料模型的基本概念
模型就是對現實世界特征的模拟和抽象,資料模型是對現實世界資料特征的抽象。最常用的資料模型分為概念資料模型、基本資料模型;
(1)概念資料模型。也稱資訊模型,是按使用者的觀點對資料和資訊模組化,是現實世界到資訊世界的第一層抽象,強調其語義表達功能,易于使用者了解,是使用者和資料庫設計人員交流的語言,
主要用于資料庫設計。這類模型中最著名的是實體聯系模型,簡稱E-R模型。
(2)基本資料模型。它是按計算機系統的觀點對資料模組化,是現實世界資料特征的抽象,用于DBMS的實作。基本的資料模型有層次模型、網狀模型、關系模型、面向對象模型。
2.2 資料模型的三要素
資料模型三要素:
資料結構:是所研究的對象類型的集合,是對系統靜态特征的描述;
資料操作:對資料庫中各種對象的執行個體允許執行的操作的集合;
資料的限制條件:是一組完整性規則的集合;
最常用的資料模型有:層次模型、網狀模型、關系模型、面向對象模型;
2.3 E-R模型
概念模型是對現實世界模組化,是以概念模型能夠友善、準确地表示資訊世界中的常用概念。概念模型有很多種表示方法,其中最常用的是P.P.S.Chen于1976年提出的實體-聯系方法(Entity Relationship Approach)。該方法用E-R圖來描述現實世界的概念模型,稱為實體-聯系模型(Entity-Relationship Model, E-R模型)。
E-R模型組成:
(1)實體,用矩形表示;
(2)屬性,用橢圓表示,并用無向邊與實體聯系;
(3)聯系,用棱形表示,并用無向邊分别與有關實體連接配接起來,同時在無向邊旁标注上聯系的類型(1:1、1:n、m:n);
2.4 層次模型
采用樹型結構表示資料與資料間的聯系。
2.5 網狀模型
采用網絡結構表示資料與資料間的聯系。
2.6 關系模型
由若幹個關系模式組成的集合,是最常用的資料庫模型之一。
2.7 面向對象模型
用面向對象程式設計的思想設計資料庫,将實體抽象為類。
3 關系代數
3.1 關系資料庫的基本概念
屬性和域
屬性:用屬性來表示實體的特征;
關系資料庫模型中,對域(屬性的取值範圍)有一個限制,所有的域都是原子資料(确定的資料);
笛卡爾積
實體間最全的關聯結果集合;
元數:屬性的個數;
元組:記錄的條數;
基數:元組的個數;
相關名詞
(1)目或度:關系R包含的集合個數;
(2)候選碼:能唯一辨別一個元組的屬性或屬性組;
(3)主碼:從候選碼裡面選擇一個作為主碼;
(4)主屬性:包含在候選碼中的屬性;
(5)非碼屬性:不包含在候選碼中的屬性;
(6)外碼:外鍵;
(7)全碼:關系模型的主碼是所有屬性組,稱為全碼;
完整性限制
實體完整性:主屬性不能為空;
參照完整性:外碼要麼正确要麼為空;不允許出現找不到關系的外碼;
使用者定義完整性:使用者自己定義的完整性限制條件;
關系運算
關系資料語言分:關系代數語言、關系演算語言(元組關系演算語言、域關系演算語言)、具有關系代數和關系演算雙重特點的語言(SQL);
關系代數運算符有4類:
集合運算符:并、交、差、廣義笛卡爾積;
專門的關系遠算符:選擇、投影、連接配接、除法;
算術比較符:>、>=、<、<=、=、<>;
邏輯運算符:not、and、or;
3.2 五種基本的關系代數運算
并:集合相加(對應union語句);
差:集合相減(可以用exists語句實作);
廣義笛卡爾積:集合相乘(對應隻寫from不加where語句);
投影:對實體的屬性做選擇(對應select語句);
選擇:對實體的元組做選擇(對應where語句);
3.3 擴充的關系代數運算
擴充到關系代數運算可以從基本的關系運算中導出,主要包括選擇、投影、連接配接、除法、廣義笛卡爾積、外連接配接;
交:集合相交;可用集合相減實作;
連接配接:分條件連接配接、等值連接配接(特殊的條件連接配接)、自然連接配接(特殊的等值連接配接,去掉了重複的屬性列);
除:會從水準方向和垂直方向進行運算;
廣義投影:允許在投影清單中加入表達式;
外連接配接:左外連接配接、右外連接配接、全連接配接;
4 SQL語言
4.1 SQL資料庫體系結構
SQL主要有三個标準:ANSI(美國國家标準機構)SQL;對ANSI SQL進行修改後在1992年采用的标準SQL-92或SQL2;最近的SQL-99标準,也稱為SQL3标準;SQL-99從SQL2擴充而來,并增加了對象關系特征和許多其他新的功能。
SQL特點
(1)綜合統一。
(2)高度非過程化。
(3)面向集合的操作方式。
(4)兩種使用方式。自含式,直接使用SQL語句查詢資料庫;嵌入式,将SQL語言嵌入到進階語言程式中;
(5)語言簡潔、易學易用。SQL語言功能極強,完成核心功能隻用了9個動詞,包括如下:
資料查詢:SELECT;
資料定義:CREATE、DROP、ALTER;
資料操縱:INSERT、UPDATE、DELETE;
資料控制:GRANT、REVORK;
SQL支援三級模式結構:視圖對應外模式、基本表對應模式、存儲檔案對應内模式;
4.2 SQL的基本組成
(1)資料定義語言;SQL DDL提供定義關系模式和視圖、删除關系和視圖、修改關系模式的指令;
(2)互動式資料操縱語言;SQL DML提供查詢、插入、删除、修改的指令;
(3)事務控制;SQL提供定義事務開始和結束的指令;
(4)嵌入式SQL和動态SQL;用于嵌入到某種通用的進階語言(C、C++、Java、PL/I、COBOL、VB等)中混合程式設計;
(5)完整性;SQL DDL包括定義資料庫中的資料必須滿足的完整性限制條件的指令,對于破壞完整性限制條件的更新将被禁止;
(6)權限管理;SQL DDL中包括說明對關系和視圖的通路權限;
4.3 SQL資料定義
create table ...
alter table ...
drop table ...
create [unique][cluster] index ...
drop index ...
create view ...
drop view ...
6 資料庫的控制功能
6.1 事務管理
SQL語言中,事務定義語句有如下三條:
BEGIN TRANSACTION:開啟事務;
COMMIT:送出事務;
ROLLBACK:復原事務;
四大特性
ACID:原子性(atormicity)、一緻性(consistency)、隔離性(isolation)、持久性(durability);
6.2 資料庫的備份與恢複
故障類型:事務内部故障、系統故障、媒體故障、計算機病毒;
備份
靜态轉儲和動态轉儲、海量轉儲和增量轉儲、日志檔案;
恢複
事務恢複步驟:
(1)反向掃描檔案日志,查找該事務的更新操作;
(2)對事務的更新操作執行逆操作;
(3)繼續反向掃描日志檔案,查找該事務的其他更新操作,并做同樣的處理,直到事務的開始标志;
鏡像
實際應用中往往對關鍵的資料和日志檔案做鏡像;