資料抽象一般分三層:
最底層-----
物理層physical level (
描述資料實際上是怎樣儲存的);
中間層-----
邏輯層logic level (
描述資料庫中儲存什麼資料及這些資料間存在什麼關係);
最頂層-----
檢視層view level (
只描述整個資料庫的某個部分).
關係模型
relational model (logic level)
關係模型用表的集合來表示資料與資料之間的關係。(每個表有多個列,每列有唯一的列名)。這裡還會涉及到正規化(
bcnf
,第三正規化等),滿足資料庫正規化的設計多是結構清晰地,可避免資料冗餘與操作異常,但不代表不滿足正規化的就是錯誤的,不合理的。
實體
-聯絡模型
entity-relationship model (view level)
實體-
聯絡資料模型被廣泛應用於資料庫的設計(這是乙個圖,矩形表示實體類,菱形表示關係,橢圓形表示實體的屬性)。
乙個好的資料庫設計,不會包括資訊冗餘重複,不會缺乏表達某些資訊的能力。
應用設計
觸發器
斷言
(當建立斷言時,系統要檢測其有效性。如果斷言有效,則以後只有不破壞斷言的資料庫修改操作才能被允許。如果斷言較複雜,則檢測會帶來相當大的開銷。)
授權檢視
函式(通過知識資料庫定義的方法,它接收引數並返回某種型別的值,並且不涉及特定使用者表。)
儲存過程(proc
是使用者定義的一系列的
sql語句的集合,涉及到特定表或其他物件的任務,使用者可以呼叫儲存過程。)
資料儲存和查詢
按檔案組織形式分:定長記錄和變長記錄;
按檔案中記錄的組織分:順序檔案組織和多表聚類檔案組織。
索引和雜湊
稠密索引與稀疏索引;
聚集索引與非聚集索引;
多級索引;
索引的更新;
輔助索引。
靜態雜湊與動態雜湊;
雜湊函式,桶溢位處理,雜湊索引;
查詢的處理與優化
事務的管理
事務的四個特性;
併發執行;
可序列化(衝突可序列化);
可序列化的判定。
併發控制
基於鎖的協議;(兩階段鎖協議,嚴格兩階段鎖協議,強兩階段鎖協議)
基於時間戳的協議
死鎖的預防
死鎖的處理
恢復系統
基於日誌的恢復(延遲的資料庫修改,立即的資料庫修改、檢查點的引入)
併發事務的恢復(事務回滾、檢查點、重啟動恢復、
redo
與undo
列表)
關係模型用表的集合來表示資料與資料之間的聯絡。
資料庫模式
(database schema)
,它是資料庫的邏輯設計;
資料庫例項
(database instance)
,它是給定時刻資料庫中資料的乙個快照。
如關係模式
account_schema = (account_number, branch_name, balance).
我們可以說
account_schema
表示account table
的relational model。1.
key鍵
乙個關係中沒有兩個元組的所有屬性的值都是相同的。
candidate key
是指最小
superkey.
superkey
是乙個或多個屬性的組合,這些屬性的組合可以使我們在乙個關係中唯一的標識乙個元組。
primary key
,我們用此代表被資料庫設計者選中的用來在同一關係中區分不同元組的
candidate key.
foreign key
,乙個關係模式
r1可能在它的屬性中包括另個關係模式r2的
primary key.
這個屬性就叫做
r1參照r2的
foreign key. 2.
關係代數基本的運算
選擇、投影、更名、笛卡爾乘積
r = borrow * loan
borrow = (customer_name, loan_number)
loan = (loan_number, branch_name, amount)
r = (borrow.customer_name, borrow.loan_number, loan.loan_number, loan.branch_name, loan.amount)
若borrow
中有n1
個元組,
loan
中有n2
個元組。
r中會有
n1*n2
個元組。
3.第一正規化
first normal form, 1nf
如果乙個關係模式
r的所有屬性域都是原子的,我們稱關係模式
r屬於第一正規化。
(如果某個域的元素被認為是不可分的單元,那麼這個域就是原子的。)4.
第二正規化
second normal form, 2nf
資料庫表中不存在非關鍵字段對任一候選關鍵字段的部分函式依賴。(部分函式依賴
---存在組合關鍵字中的某些字段決定非關鍵字段的情況)
如student (
學號、姓名、課程名字、學分,成績)
(學號、課程名字)
->
(姓名、成績、學分)
這個模式即不符合第二正規化,姓名可以由學號決定,學分可以由課程名字決定。
改進為:
學生(學號、姓名)
課程(課程名字、學分)
選課(學號、課程名字、成績)
這便是符合
2nf 5.
第三正規化
third normal form, 3nf 在
2nf的基礎上,資料表如果不存在非關鍵字段對任一候選關鍵字段的傳遞函式依賴,則符合
3nf。
如student(
學號、姓名、所在學院、學院地點),
(學號)
->
(所在學院),(所在學院)
->
(學院地點),滿足
2nf,不滿足
3nf。
改進為:
student(
學號、姓名、學院)
學院(學院名稱、地點)
即符合3nf 6
.bcnf正規化在
3nf的基礎上,資料庫表中如果不存在任何欄位對任一候選關鍵字段的傳遞函式依賴,則符合
bcnf
正規化。如
store(
倉庫id
、物品id
、管理員
id、數量
),而且僅有乙個管理員管理乙個倉庫。
(倉庫id
、物品id
)->
(管理員
id、數量)
(管理員
id、物品id)
->
(倉庫id
、數量)由於(
倉庫id ) -> (
管理員id);(
管理員id) ->(
倉庫id)
。故不滿足
bcnf
。bcnf
,它能消除所有基於函式依賴能夠發現的冗餘。7.
函式依賴集的閉包
closure of a set of functional dependencies 8.
無關屬性
extraneous attribute 如
f上有函式依賴
ab->c
與a->c, 則b
在ab->c
中是無關的。假設f
上有函式依賴
ab->cd
與a->c, 則c
在ab->cd
中是無關的。9.
正則覆蓋
canonical cover f
是乙個依賴集,同時
f中必須滿足:1)f
中的任何函式依賴都不包含無關屬性;2)f
中函式依賴的左半部都是唯一的。即
f中不存在兩個依賴如下
a1->b1, a2->b2
,其中a1=a2.
正則覆蓋
canonical cover
未必是唯一的。
(未完,待續)
SQLServer資料庫系統概念
資料模型是一種抽象模型,現實世界中的客觀事物是彼此相互聯絡的 1 資料模型是一組整合的概念,使用者描述和操作組織內的資料,資料間的聯絡以及對資料的約束,它包含了資料結構,資料操作和完整性約束 2 概念模型又被稱為實體 聯絡 e r 模型,主要用於描述資訊世界中實體的聯絡 在概念模型中用於描述其資料的...
資料庫系統mysql MySQL資料庫系統
1 mysql的特點 1 多執行緒 多使用者 2 基於c s 客戶端 伺服器 架構 3 簡單易用 查詢速度快 4 安全可靠 2 mysql編譯安裝 代表鍵盤上tab鍵 1 準備工作 解除安裝使用rpm方式安裝的mysql rpm e mysql nodeps 安裝cmake包 cd media ta...
資料庫系統概念 關聯式資料庫
database system concepts 6e 總結 本篇是 資料庫系統概念 原版書籍第一部分,這一部分介紹了關係模型的基礎知識,介紹了最普遍的一種查詢語言 sql語言,以及關係代數。1.關聯式資料庫 a relational database consists of a collectio...