第一講 初步認識數據庫系統
1-1. 數據庫、數據庫系統和數據庫管理系統的關係.
數據庫系統包括數據庫和數據庫管理系統
數據庫系統是數據庫開發的工作環境
數據庫是數據的集合
數據庫管理系統管理數據庫
1-2. 數據庫系統的構成包括數據庫、數據庫管理系統、數據庫應用程序、數據庫管理員以及計算機與網絡基本系統
1-3. 數據庫系統語言包括了DDL(數據庫定義語言)、DML(數據庫操縱語言)和DCL(數據庫控制語言)
1-4. 數據庫管理系統的功能有哪些?
完整性控制、併發控制和通訊控制
不包括處理機控制
1-5. 從用戶角度看數據庫管理系統,其功能包括哪些?
數據庫定義、數據庫操縱、數據庫控制和數據庫維護
1-6. 從系統角度看數據庫管理系統,其功能包括哪些?
數據庫語言及其編譯、查詢實現與查詢優化、事務處理功能以及數據存儲與索引等其他功能
第二講 數據庫系統的結構抽象與演變
2-1. 什麼是三級模式兩層映像?
三級模式:內模式(存儲模式,物理模式),外模式(用戶模式,局部模式),概念模式(邏輯模式,全局模式)
兩層映像:E-C映像(外模式映射到概念模式)、C-I映像(概念模式映射到內模式)
兩個獨立性:邏輯數據獨立性、物理數據獨立性
邏輯數據獨立性:當概念模式發生變化時,可以通過E-C映像的調整,從而不需要改變外部模式,用戶的應用程序也不需要改變
物理數據獨立性:當內部模式發生變化時,可以通過C-I映像的調整,從而不需要改變概念模式和外部模式,用戶的應用程序也不需要改變
2-2. 數據、模式和數據模型是一種什麼關係?
數據 ⊆ 數據模型 ⊆ 模式
數據模型是對模式結構的抽象,模式是對數據結構形式的抽象
模式(概念模式、邏輯模式):數據庫中全體數據的邏輯結果和特徵的描述,是所有用戶的公共數據視圖
數據模型:是現實世界數據特徵的抽象,或者說是現實世界的數據模擬。數據庫中,用數據模型來抽象地表示現實世界的數據和信息
2-3. 第一代數據庫系統是指基於網狀模型或層次模型的數據庫系統
2-4. 第二代數據庫系統是指基於關係模型的數據庫系統
2-5. 數據庫系統與文件系統的主要差別有?
數據的組織是否依賴於具體的應用程序
數據存取是否可以記錄或記錄的集合爲單位進行操作
不同文件之間以及不同記錄之間是否有聯繫
2-6. 面向對象數據庫系統對關係數據庫系統的重大改進有?
允許複雜的數據類型存在
突破了關係模型第一範式的限制
既支持記錄集合的操作,又支持面向對象的操作
第三講 關係模型之基本概念
3-1. 什麼是關係模型?關係模型有什麼作用?
關係模型是一種數據的邏輯結構,採用表描述事物的屬性,並通過表之間的關聯,表示事物之間的聯繫;
聯繫規範化的關係
是數據庫的三大經典數據模型之一, 也是現在大多數商品化數據庫系統所 仍然使用的數據模型
標準的數據庫語言(SQL語言)是建立在關係模型基礎之上的, 數據庫領域的衆多理論也都是建立在關係模型 基礎之上的
3-2. 什麼是關係?爲什麼把表稱作關係?
關係是一組域的笛卡爾積的子集,笛卡爾積中具有某一方面意義的那些元組被稱作一個關係。因爲表儲存 的就是符合某種意義的關係的抽象集合,也就是說表是關係的載體,表是符合某種結構的多個關係的集 合,所以稱表是關係
3-3. 爲什麼要區分實體完整性和參照完整性?
-
完整性是對主碼外碼以及有特殊要求的一些數據的約束.實體完整性要求主碼不能爲空值;參照完整性要求外碼爲空值,或者爲另一個碼的主碼。因爲外碼通常是聯繫兩個關係的紐帶;實體完整形保證數據庫每個數據都是可以找到的,即可識別的。
-
完整性是對主碼外碼以及有特殊要求的一些數據的約束.實體完整性要去主碼不能爲空值。
-
實體完整性是對主碼而言,關係的主碼中的屬性值不能爲空值。關係中的元組對應到現實世界相互之間可區分的一個個個體,這些個體是通過主碼來唯一標識的,若主碼爲空,則出現不可標識的個體,這是不容允許的;參照完整性是對外碼而言,外碼可以取空值,如果不爲空值那必然是另一個關係的主碼,如果關係R1的某個元組t1是參照了關係R2的某個元組t2,則t2必須存在。
-
候選鍵是唯一一個在關係模式裏能夠標識元組並且不含多餘屬性的屬性集。候選鍵的作用是:①保證實體的完整性;②加快數據庫的操作速度;③在表中添加新記錄時,表會自動檢查新紀錄的主鍵值,不允許該值與其他記錄主鍵值重複;④表自動按主鍵值的順序顯示錶中的記錄,如果沒有定義主鍵,則按輸入記錄的順序顯示錶中的記錄。
3-4. 某關係R的外鍵是指其它關係的候選鍵,可以是R中的主屬性或非主屬性
3-5. 關係的任何屬性都是不可再分的
3-6. 笛卡爾積的基數是每個集合的基數相乘
3-7. 關於關係模式與關係
- 同一關係模式下,可有很多的關係
- 關係模式是關係的結構, 關係是關係模式在某一時刻的數據
- 關係模式是穩定的;而關係是某一時刻的值,是隨時間可能變化的
3-8. 關於關係的特性
- 關係是以內容(名字或值)來區分的
- 區分哪一列是靠列名
- 區分哪一行是靠某一或某幾列的值
- 關係的任意兩個元組不能完全相同
- 元組相同是指兩個元組的每個分量都相同
- 在同一個關係中如存在相同的元組,則僅保留其中的一個
3-9. 關係模型就是處理Table的,它由關係、關係運算和完整性約束組成
3-10. 關係數據庫中,體現“實體能夠區分並唯一標識元組”的規則是實體完整性規則
第六講 SQL語言之概述
6-1. 如何用SQL語言表達模糊查詢?
查詢姓張的可以使用 Like ‘張%’ 來進行查詢;查詢名字中帶一個英字的可以使用 Like ‘%英%’ 來進行查詢, SQL中的Select語句是通過在檢索條件中引入運算符 Like 來表示模糊查詢的,Like後跟一個給定字符串模式,然後找出匹配給定字符串的字符串。其中給定字符串中可以出現%, _ 等匹配符,其中% 匹配零個或多個字符, _ 匹配任意單個字符, 爲轉義字符,用於去掉一些特殊字符的特定含義,使其被作爲普通字符看待,如用 % 去匹配字符% ,用_去匹配字符_
6-2. 如何表達多表聯合查詢,需要注意什麼?
Select Sname From Student,SC,Course
Where Student.S# =SC.#andSC.C# =Course.C#andCname=’數據庫系統’
需要注意連接條件的正確表示和更名操作
6-3. SQL語言集數據查詢、數據操縱、數據定義和數據控制功能於一體,其中,CREATE、DROP、ALTER語句是實現數據定義.
6-4. 在Table中要求無重複元組是通過定義Primary key或Unique來保證的;而在檢索結果中要求無重複元組, 是通過在SELECT子句中引入DISTINCT保留字來實現的.
6-5. 要在表S中刪除一個屬性“年齡”,可選用的SQL語句是 ALTER TABLE S DROP Sage
6-6. 查詢時,若要輸出無重複的記錄,SELECT子句中使用的保留字是: DISTINCT
6-7. 結果排序是在Select語句中通過增加order by子句實現的,後跟DESC降序或省略爲升序
6-8. SQL語言集數據查詢、數據操縱、數據定義和數據控制功能於一體
屬於數據定義語言DDL的是:CREATE、DROP、ALTER
屬於數據操縱語言DML的是:UPDATE、INSERT、DELETE
屬於數據查詢語言DQL的是:SELECT
屬於數據控制語言DCL的是:GRANT、REVOKE
6-9. 在SELECT語句中,與關係代數中 σ 運算符對應的是WHERE子句
6-10. 在SELECT語句中,與關係代數中π運算符對應的是SELECT子句
第七講 SQL語言之複雜查詢與視圖
7-1. 視圖是什麼?
視圖是外模式加上外模式到概念模式的映像;創建 view 就是實現外模式,as 子查詢就完成了到 E-C 映像;視圖能簡化用戶操作,使用戶能多種角度看待同一數據,且對重構數據庫提供了一定程度的邏輯獨立性,另外能夠對機密數據提供安全保護和更清晰的表達查詢。
7-2. 在SQL語言中,子查詢是 嵌入到另一個查詢語句之中的查詢語句
7-3. 下面有關HAVING子句
- HAVING子句必須與GROUP BY 子句同時使用,不能單獨使用
- 使用HAVING子句的同時可以使用WHERE子句
- 使用HAVING子句的作用是過濾掉不滿足條件的分組
7-4. SQL語言中的視圖是一種子模式及子模式到模式的映像
7-5. 關於SQL視圖更新的可執行性
- 如果視圖的select目標列包含聚集函數,則不能更新
- 如果視圖中包括了group by子句,則不能更新
- 如果視圖是由單個表的列構成,但並沒有包括主鍵,則不能更新