正文 第42章 信息係統與數據庫應用基礎3(1 / 2)

關係運算對應於表的操作,在對關係數據庫進行查詢時,為了找到用戶感興趣的數據,需要對關係進行一定的運算。這些運算以一個或兩個關係作為輸入,運算的結果是產生一個新的關係。關係運算主要有選擇、投影和連接三種。

(1)選擇運算。

選擇運算是指從關係中找出滿足給定條件的元組,又稱為篩選運算。選擇的條件以邏輯表達式給出,使得邏輯表達式的值為真的元組被選中。選擇是從行的角度進行的運算,即選擇部分行,經過選擇運算可以得到一個新的關係,其關係模式不變,但其中的元組是原關係的一個子集。

(2)投影運算。

從關係模式中指定若幹個屬性組成新的關係稱為投影。投影是從列的角度進行的運算,經過投影可以得到一個新關係,其關係模式所包含的屬性個數往往比原關係少,或者屬性的排列順序不同。投影運算提供了垂直調整關係的手段,體現出關係中列的次序無關的特性。選擇運算和投影運算經常聯合使用,從數據庫文件中提取某些記錄和某些數據項。

(3)連接運算。

從兩個關係中選取滿足連接條件的元組組成新關係稱為連接。連接是關係的橫向結合,連接運算將兩個關係模式的屬性名拚接成一個更寬的關係模式,生成的新關係中包含滿足連接條件的元組。連接過程是通過連接條件來控製的,連接條件中將出現兩個關係中的公共屬性名。

選擇和投影運算都是單目運算,它們的操作對象隻是一個關係,相當於對一個二維表進行切割。連接運算是二目運算,需要兩個關係作為操作對象,如果需要連接兩個以上的關係,應當兩兩進行連接。

數據完整性是指數據庫中數據的準確性、正確性和有效性。數據庫中的數據完整性是用戶對數據存儲和維護的一種需求,它可以指定某些屬性或者字段的取值必須限製在一定的範圍之內,也可以指定某些數據之間必須滿足一定的約束條件。

作為關係的DBMS,為了維護數據庫的完整性,一般對關係模式提供以下三類完整性約束機製。

(1)域完整性規則。

域完整性規定了屬性的取值範圍。如學生成績不能為負數。

(2)實體完整性規則。

實體完整性要求任何元組的主關鍵字的值不得為空值並且必須在所屬的關係中唯一。

(3)參照完整性規則。

參照完整性要求當一個外部關鍵字的值不為空值時,以該外部關鍵字的值作為主關鍵字的值的元組必須在相應的關係中存在。如在上麵的學生情況表中的“係名”字段的值可以為空值,表示這個學生還沒有分配到某個係,如不為空值,則這個學生所在係名必須是在“係”關係中出現的係名,如沒有出現,則出現錯誤。如在某個學生的“係名”字段的值為“建築工程”係,而這個係在“係”表中是沒有的,那肯定就出錯了。

結構化查詢語言(StructuredQueryLanguage,SQL)是關係數據庫的標準語言。該語言語法簡單、使用方便,主流的關係數據庫管理係統都支持SQL。

(1)SQL的特點。

①是一種“非過程語言”,用戶隻要指出“做什麼”,而“如何做”的過程由DBMS完成。

②體現關係模型在結構、完整性和操作方麵的特征。

③有命令和嵌入程序兩種使用方式,命令式使用方式直接用語句操作,而嵌入式將語句嵌入程序中使用。

④功能齊全,簡潔易學,使用方便。

⑤為主流DBMS產品所支持。

(2)SQL的命令分類。

SQL按命令的功能可以分為以下四類。

①數據定義語言(DataDefinitionLanguage,DDL)。SQL提供了CREATE、DROP、ALTER語句,用於定義、刪除和修改數據模式。

②數據查詢語言(QueryLanguage,QL)。查詢是數據庫的核心操作,SQL提供SELECT語句,具有靈活的使用方式和極強的查詢功能,關係操作中最常用的“投影、選擇和連接”,都體現在SELECT語句中。

③數據操縱語言(DataManipulationLanguage,DML)。SQL提供了INSERT、DELETE和UPDATE語句用於數據的增加、刪除和修改。