關系數據庫概述
系統(tǒng)而嚴格的提出關系模型的是美國IBM公司的E.F.Codd
- 1970年提出關系數據模型
- E.F.Codd在美國計算機學會會刊《Communications of the ACM》發(fā)表了題為"A Relational Model of Data for shared Data Banks"
- 之后,提出了關系代數和關系演算的概念
- 1972年提出了關系的第一、第二、第三范式
- 1974年提出了關系的BC范式
關系數據模型
關系數據結構
- 表(Table)
也稱為關系,是一個二維的數據結構。它由表名、構成表的各個列、及若干行數據組成
- 關系(Relation)
一個關系邏輯上對應一張二維表,可以為每個關系取一個名稱進行標識
- 列(Column)
字段(Field)或屬性(Attribute)
- 屬性(Attribute)
表中的一列即為一個屬性,表中屬性的個數稱為關系的元或度
- 行(Row)
也稱做元組(Tuple)或記錄(Record)
- 元組(Tuple)
表中的一行
- 分量(Component)
元組中的一個屬性值
- 碼或鍵(Key)
- 超碼或超鍵(Super Key)
關系的一個碼移去某個屬性,它仍然是這個關系的碼
- 候選碼或候選鍵(Candidate Key)
關系的一個碼或鍵中,不能從中移去任意一個屬性
- 主碼或主鍵(Primary Key)
在一個關系的若干候選碼或候選鍵中制定一個用來唯一標識關系的元組
- 全碼或全鍵(All-Key)
一個關系模式中所有屬性集合是這個關系的主碼或主鍵
- 主屬性(Primary Atribute)和非主屬性(NonPrimary Attribute)
關系中包含再任意一個候選碼的屬性稱為主屬性或碼屬性,不包含反之
- 外碼或外鍵(Foreign Key)
當關系中的某個屬性不是這個關系的主碼或候選碼,而是另一個關系的主碼
- 參照關系(Referencing Relation)和被參照關系(Referenced Relation)
參照關系也稱為從關系,被參照關系也稱為主關系,它們是指以外碼相關聯(lián)的二個關系,以外碼作為主碼的關系稱為被參照關系,外碼所在的關系稱為參照關系
- 域(Domain)
取值范圍
- 數據類型(Data Type)
- 關系模式(Relation Schema)
在關系數據庫中,關系模式是型,關系是值
- 關系數據庫(Relation Database)
關系數據庫是以關系模型作為數據的邏輯模型,并采用關系作為數據組織方式的一類數據庫,其數據庫操作建立在關系代數的基礎上,在一個給定的應用領域中,所有關系的集合構成一個關系數據庫
- 每一個屬性都是不可分解的
- 每一個關系僅僅有一個關系模式
- 每一個關系模式中的屬性必須命名
- 同一個關系中不允許出現候選碼或候選鍵值完全相同的元組
- 在關系中元組的順序可以任意交換
- 在關系中屬性的順序可以任意交換
關系操作集合
- 基本的關系操作
查詢(Query)、插入(Insert)、刪除(Delete)、修改(Update)
查詢操作又可以分為選擇、投影、連接、除、并、差、交、笛卡爾積等,關系操作的特點是集合的操作方式,即操作的對象和結果都是集合
- 關系數據語言的分類
代數方式和邏輯方式,代數方式主要有關系代數。它是通過對關系的操作來表達查詢要求的方式;邏輯當時主要有關系演算、它是用謂詞來表達查詢要求的方式
- 關系代數
- 傳統(tǒng)的集合運算
- 并(UNION)
- 差(DIFFERENCE)
- 交(INTERSECTION)
- 笛卡爾積(CARTESIAN PRODUCT)
- 專門的關系運算
- 選擇(SELECT)
> 行變
- 投影(PROJECTION)
> 列變
- 連接(JOIN)
- 除(DICISION)
關系的完整性約束
- 實體完整性約束(Entity Intergrity Constraint)
實體完整性約束是指關系的主屬性,即主碼的組成不能為空,也就是關系的主屬性不能是空值NULL.
- 參照完整性約束(Referential Intergrity Constraint)
- 用戶定義完整性約束(User-defined Integrity Constraint)
用戶定義的完整性約束是針對某一應用環(huán)境的完整性約束條件,它反映了某一具體應用所涉及的數據應滿足的條件
- 關系數據完整性約束的檢驗
對數據執(zhí)行插入、刪除、和更新操作
關系數據庫的規(guī)范化理論
關系模式中可能存在的冗余和異常問題
- 數據冗余
- 更新異常
- 插入異常
- 刪除異常
函數依賴與關鍵字
如果對于R中屬性X的每一個值,R中的屬性Y只有唯一的值與之對應,則稱為X函數決定Y或稱為Y函數依賴與X,記做X->Y
舉個小例子
身份證號->性別
身份證號->姓名
身份證號->年齡
- 完全函數依賴
設R為任意給定關系,X、Y為其屬性集,若X->Y,且對與X的任意真子集都有X不能決定Y,則稱為Y完全依賴X
sno, cno, cname, age (學號、課程號、課程名字,成績)
(sno,cno)->age 為完全依賴
其中sno、cno單獨拿出來,不能決定age
- 部分函數依賴
- 傳遞函數依賴
X->Y,Y不決定X,Y->Z,則X->Z,稱為Z傳遞函數依賴于X
范式與關系規(guī)范化過程
滿足最低要求的稱為第一范式,INF,這是最基本的范式
- 第一范式
不可再分
- 第二范式
所有非主屬性都完全函數依賴與候選關鍵字
- 第三范式
每一個非主屬性都不傳遞函數依賴與候選關鍵字
關系規(guī)范化理論的應用
關系規(guī)范化理論主要應用于數據庫設計中的概念設計階段