1、關系數據庫概述
1.1 關系數據庫的產生歷史
2、關系數據模型
2.1 組成要素
關系數據結構;關系操作集合;關系完整性約束
2.2 關系數據結構
2.2.1 表(Table)
2.2.2 關系(Relation)
2.2.3 關系的三種類型
2.2.4 列
-
表名必須唯一
-
字段名必須唯一
-
不同表中可以出現相同的字段名
2.2.5 屬性
2.2.6 行
2.2.7 分量
2.2.8 碼或鍵(key)
2.2.9 超碼或超鍵
2.2.10 候選碼或候選鍵
單個屬性的碼一定是候選碼
2.2.11 主屬性或非主屬性
2.2.12 主碼或主鍵
2.2.13 全碼或全鍵
2.2.14 外碼或外鍵
2.2.15 參照關系與被參照關系
主碼:也叫做主關系或被參照關系
外碼:也叫做從關系或參照關系
2.2.16 域
2.2.17 概要
在關系的一個碼或鍵中,不能從中移去任何一個屬性,否則它就不是這個關系的碼或鍵,稱這樣的碼或鍵為該關系的( 候選碼或候選鍵 )。
一個關系的候選碼或候選鍵是這個關系的( 最小 )超碼或超鍵。
在數據庫中,關系中包含在任何一個候選碼中的屬性稱為(主屬性或碼屬性)
2.2.18 數據類型
2.2.19 關系模型
2.2.20 關系數據庫
2.2.21 關系數據庫應用
2.2.22 簡答:關系數據庫對關系的限定有哪些具體要求?
在關系中,任意兩行數據是允許重復的.
在關系中,如果設置了候選碼,則任意兩行數據是不允許重復的.
2.3 關系操作
2.3.1 概要
2.3.2 查詢
2.3.3 特點
說明:關系操作是通過關系語言實現的.
2.4 關系數據語言
2.4.1 關系代數語言
2.4.2 結構化查詢語言(SQL)
2.4.3 關系演算語言
- 元組關系演算
- 域關系演算
共同特點:具有完備的表達能力,是非過程化的集合操作語言,功能強,能夠獨立使用也可以嵌入高級語言中使用。
2.5 運算符
2.5.1 三大要素
2.6 傳統的集合運算
2.6.1 並\差\交\笛卡爾積
2.6.2 並
2.6.3 差
2.6.4 交
2.6.5 笛卡爾積
2.7 專門的關系運算
2.7.1 選擇
2.7.2 投影
πA(R)中的A指的是屬性序列.
2.7.3 連接
select * from r inner join s where s.b = r.b;
2.7.4 除
2.8 簡答
解析:
沒有選修B5 = 所有 — 有B5
學生姓名 = π姓名(S)
檢索 = 選擇 σ
2.9 關系的完整性約束
2.9.1 數據庫的數據完整性是指數據庫中數據的正確性、相容性、一致性。
2.9.2 實體完整性約束
2.9.3 參照完整性約束
參照完整性約束只針對於外碼進行約束,不會針對主碼而言。
解析:學生安排了某門專業的課程(如:語、數、外),進行學修。學生想早點拿到學分,就需要報名專業的課程(語、數、外)去考試,或者這一次沒把握,這次不報名。但學生就沒法去報名某門專業的課程(如:語、數、外)之外的課程去拿到相對於的學分。
2.9.4 用戶定義完整性約束User-defined Integrity Constraint
域完整性約束(針對某一應用環境的完整性約束)、其他
2.9.5 應用情景
- 執行插入操作
- 執行刪除操作
- 執行更新操作(上述兩種情況的綜合)
3、關系數據庫的規范化理論
3.1 關系模式中可能存在的冗余和異常問題
3.1.1 數據冗余
- 指同一數據被反復存儲的情況
3.1.2 更新異常
- 數據冗余造成的,多個內容更改使操作錯誤
3.1.3 插入異常
- 不能正常的執行插入操作
3.1.4 刪除異常
- 不應該刪除的數據會出現被刪除的情況
3.2 函數依賴與關鍵字
3.2.1 X—>Y
3.2.2 函數依賴
定義:關系中屬性間的對應關系
3.2.2.1 完全函數依賴
可知:完全函數依賴中X為候選碼.
3.2.2.2 部分函數依賴
可知:部分函數依賴中X為超碼.
3.2.2.3 傳遞函數依賴
X決定Y,Y不決定X,Y決定Z,則有X—>Z,稱為Z傳遞依賴於X.
簡答:完全函數依賴,部分函數依賴,傳遞函數依賴
3.2.3 關鍵字
3.3 范式與關系規划化過程
3.3.1 簡答:關系規范化過程
3.3.2 第一范式1NF
第一范式綜合應用
原因:
GRADE完全函數依賴於(SNO,CNO);
CTITLE、INAME、IPLACE都只函數依賴於CNO,即它們與(SNO,CNO)為部分函數依賴.
3.3.3 第二范式2NF
第一范式變為第二范式的過程,找表當中的部分函數依賴,然后拆開,即為第二范式.
第二范式綜合應用
3.3.4 第三范式3NF
第二范式變為第三范式第過程,找表中的傳遞函數依賴,然后拆開,即為第三范式.
第三范式綜合應用