一、資料庫基本概念 1、關係資料庫 (1)關係操作 關係操作所操作的對象和結果都是集合,成為一次一集合的方式。而非關係數據模型的資料庫操作方式為一次一記錄的方式。 關係數據模型中最重要的是關係查詢操作,主要分為:選擇(select)、投影(project)、連接(jion)、除(divide)、並( ...
一、資料庫基本概念
1、關係資料庫
(1)關係操作
關係操作所操作的對象和結果都是集合,成為一次一集合的方式。而非關係數據模型的資料庫操作方式為一次一記錄的方式。
關係數據模型中最重要的是關係查詢操作,主要分為:選擇(select)、投影(project)、連接(jion)、除(divide)、並(union)、差(except)、交(intersection)和笛卡爾積等。其中,選擇、投影、並、差、笛卡爾積是5種基本的操作。
(2)關係型資料庫語言
在實際的關係資料庫系統中,為實現選擇、投影、並、差等操作,為用戶提供了一種介於關係代數和關係驗算之間的語言SQL(Strutured Query Language,結構化查詢語言)。SQL語言是用於關係資料庫查詢的結構化語言,目前許多關係型資料庫管理系統支持SQL語言,如SQL Server、Access、Oracle、DB2、MySQL等。
SQL語言的功能包括數據查詢、數據操縱、數據定義和數據控制四個部分。SQL語言簡潔、方便、實用,為完成其核心功能只用了6個動詞——SELECT、CREATE、INSERT、UPDATE、DELETE和GRANT(REVOKE)。作為關係型資料庫標準語言雖然被眾多商用資料庫管理系統產品採用,但是不同的資料庫管理系統在實踐過程中都對SQL規範做了某改編和擴充。所以,在實際上不同資料庫管理系統之間的SQL語言不能完全互相通用。如甲骨文公司的ORACLE資料庫所使用的SQL語言是Procedural Language/SQL(簡稱PL/SQL),而微軟的SQL Server資料庫系統支持的是Transact-SQL(簡稱T-SQL)。
(3)關係的完整性
關係資料庫模型的完整性規則是對關係的某種約束條件。關係模型中有三類完整性約束:實體完整性、參照完整性、用戶定義的完整性。當中實體完整性和參照完整性是關係模型必須滿足的完整性約束條件。被稱作是關係的兩個不變性。應該由關係系統自己主動支持。
-
實體完整性(Entity Integrity):若屬性(指一個或一組屬性)A是基本關係R的主屬性,則A不能取空值。所謂空值就是“不知道”或“不存在”的值。
依照實體完整性的規則的規定,基本關係的主碼都不能取控制。假設主碼由若幹屬性組成,則全部這些主屬性都不能取空值。
對於實體完整性規則說明:
1)實體完整性規則是針對基本關係而言的。一個基本表通常相應現實世界的一個實體集。如學生關係相應於學生的集合。
2)現實世界中的實體是可區分的。即他們具有某種唯一性標識。比如每一個學生都是獨立的個體,是不一樣的。
3)關係模型中以主碼作為唯一性標識。
4)主碼中的屬性,即主屬性不能取空值。假設主屬性取空值。就說明存在某個不可標識的實體,即存在不可區分的實體,這與2)相矛盾,因此這個規則稱為實體完整性。 - 參照完整性(Refernetial Integrity):在現實生活中,實體之間往往存在某種聯繫,在資料庫模型中的實體機實體之間的聯繫都用關係描述,這樣就存在著關係與關係間的引用。在關係資料庫系統中,通過引入外鍵的概念來表達實體之間的相互引用。
1)設F是基本關係R的一個或一組屬性,但不是關係R的碼。
K是基本關係S的主碼。假設F與K相相應,則稱F是R的外碼(foreign key)。
並稱基本關係R為參照關係。
基本關係S為被參照關係。外碼並不一定要與相應的主碼同名。
2)若屬性(或屬性組)F是基本關係R的外碼。它與基本關係S的主碼K相相應(基本關係R與S不一定是不同的關係)。則對於R中每一個元組在F上的值必須為:◀或者取空值(F的每一個屬性值均為空值)◀或者等於S中的某個元組的主碼值。
- 用戶定義的完整性(User-defined Integrity):實體完整性和參照完整性是任何關係資料庫系統都必須支持的。除此之外,不同的關係資料庫系統根據其應用環境不同,往往還需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關係資料庫的約束條件。它反映某一具體應用所涉及的數據必須滿足的語義要求。
例如,在‘學生’表中,用戶規定總學分為60分才為及格。