1.基本概念
數據庫系統:本質上是一個用計算機存儲信息的系統
數據庫(DB):信息的集合,是收集計算機數據的倉庫、容器,系統用戶可以對這些數據執行一系列操作。
數據:是描述事物的符號記錄,具有多種表現形式(文字、圖形、圖像、聲音、語言……)
是信息的符號表示。
信息:是現實世界事物的存在方式或狀態的反應。具有可感知、可存儲、可加工、可傳遞、可再生……自然屬性。
具有特定釋義和意義的數據。
數據庫系統(DBS):一個采用了數據庫技術,有組織、動態地存儲大量相關聯數據,方便多用戶訪問的計算機系統
廣義上,由數據庫、硬件、軟件、人員組成。
2.數據模型
DBMS(數據庫管理系統):實現對共享數據有效地組織、管理、存取
功能:數據定義;數據庫操作;數據庫運行管理;數據組織、存儲、管理;數據庫的建立、維護;其他功能
特征:數據結構化且統一管理;較高的數據獨立性;數據控制功能;數據庫的安全性保護;數據庫的完整性;並發控制;故障恢復;
分類:關系數據庫系統(RDBS);面向對象的數據庫系統(OODBS);對象關系數據庫系統(ORDBS)
體系結構:集中式數據庫系統;客戶端/服務器體系結構;並行數據庫系統(共享內存式多處理器+無共享式並行體系結構);分布式數據庫系統
數據庫服務器
分類:事務服務器(查詢服務器)、數據服務器
數據庫的三級模式結構:采用“三級模式、兩級映射”
有“型”和“值”的概念。“型”是指對某一數據的結構、屬性的說明;“值”是型的一個具體賦值
組成:
1.概念模式:模式。數據庫中全部數據的邏輯結構、特征的描述,只涉及到“型”的描述。反應的是數據庫的結構、聯系,相對穩定。
2.外模式:用戶模式、子模式。是用戶與數據庫系統的接口,是用戶用到的那部分數據的描述。
3.內模式:存儲模式。是數據物理結構、存儲方式的描述,是數據在數據庫內部的表示方式。不涉及到物理記錄、設備約束。比內模式更接近物理存儲、訪問的那些軟件機制是操作系統的一部分(文件系統)
數據按外模式的描述提供給用戶;按內模式的描述存儲在磁盤上;概念模式提供者這兩級模式相對穩定的中間點,使得兩級的任意一級的改變都不受另一級的牽制
4.兩級映像:模式/內模式映像,外模式/模式映像,保證了數據具有較高的邏輯獨立性、物理獨立性
數據模型:對現實世界數據特征的抽象。
是數據庫結構的基礎,是用來秒速數據的一組概念、定義
分類:概念數據模型(信息模型)、基本數據模型;
三要素:數據結構、數據操作、數據的約束條件
E-R模型:實體-聯系模型。最為常用的概念模型。
只能說明實體間的語義聯系,還不能進一步地詳細說明數據結構
兩個不同實體間的聯系:一對一(1:1),一對多(1:n),多對多(m:n)
兩個以上不同實體集之間的聯系:1:1:1,1:1:n,1:m:n,r:m:n
同一實體集內的二元聯系:1:1,1:n,m:n
屬性:實體某方面的特性,每個屬性取值范圍不同。同一實體的屬性及其域是相同的,但可能取不同的值
分類:簡單屬性和符合屬性、單值屬性和多值屬性、NULL屬性、派生屬性
E-R方法:
示例:
擴充的E-R模型:
1.弱實體:一類實體對另一些實體具有很強的依賴關系。即,一個實體的存在必須以另一個實體為前提,將這類實體稱為弱實體。弱實體用雙線矩形框表示
2.特殊化(U):一個實體集可按照某些特征區分為幾個子實體。普遍到特殊的過程
子類(雙豎邊矩形框)繼承超類所有的屬性和聯系,但是子類還有自己特殊的屬性和聯系
分類:全特殊化(雙線),部分特殊化(單線);不相交特殊化(d),重疊特殊化(o)
普遍化:將幾個具有共同特性的實體集概括為一個更普遍的實體集的過程
層次模型:采用樹型結構表示數據與數據間的聯系。表示1:n的聯系
層次模型不能直接表示多對多的聯系,若要表示多對多的聯系,可采用:冗余節點法、虛擬節點分解法
網狀模型(DBTG模型):采用數據結構表示數據與數據間聯系的數據模型。
比層次模型更具有普遍性的數據結構,是層次模型的一個特例
與層次模型的區別:
1.子女節點與雙親節點的聯系不唯一,需要為每個聯系命名
2.允許復合聯系,兩個節點之間有兩個以上的聯系。
示例:
關系模型:最常用的,用表格結構表達實體集以及實體集之間的聯系。由若干個關系模式組成的集合。
最大特色:描述的一致性
示例:
面向對象模型:
核心概念:對象和對象標識,封裝,對象的屬性,類和類層次(有根有向無環圖),繼承(單繼承、多重繼承)
示例:
3.關系代數
域:屬性取值范圍所對應的一個集合。
關系型數據模型中,所有的域都應是原子數據。這種限制為第一范式條件
笛卡兒積與關系:
示例:
相關名詞:
目/度:R表示關系的名字,n是關系的目/度
候選碼:能唯一標識一個元組的某一屬性或屬性組的值
主碼:若一個關系有多個候選碼,選定其中一個為主碼
主屬性:包含在任何候選碼中的屬性。不包含的為非碼屬性
外碼:R中的屬性或屬性組非改關系的碼,但是是其他關系的碼
全碼:R中所有屬性組是候選碼,則稱為全碼
關系類型:
基本關系/基本表/基表:實際存在的表,是實際存儲數據的邏輯表示
查詢表:查詢結果對應的表
視圖表/虛表:由基本表、其他視圖表導出的表。本身不獨立存儲在數據庫中,數據庫只存放它的定義。
關系數據庫模式:
完整性約束:保證當授權用戶對數據庫作修改時不會破環數據的一致性。
防止對數據的意外破壞。
分類:
1.實體完整性:R的主屬性不能取空值
2.參照完整性(引用完整性):關系R中每個元組在外碼上的值或者取空值=關系S中某個元祖的主碼值
3.用戶定義完整性:屬性域的約束
關系運算:
關系操作中的操作對象、操作結果都是集合。
非關系數據模型的數據操作方式則是一次一個記錄的方式
關系數據語言分類:關系代數語言、關系演算語言、具有關系代數和關系演算雙重特點的語言
關系代數運算分類:集合運算符、專門的關系運算符、算術比較符、邏輯運算符
投影:關系R中選擇若干屬性列A組成新的關系
廣義投影:允許在投影列表中使用算數運算,實現了對投影運算的擴充。
選擇:從關系R中國選擇滿足規定條件的諸元組
連接(union):θ連接、等值連接、自然連接(去重)
外連接:左外鏈接、右外連接、全外鏈接
除:
示例: