(2)關(guān)系操作:關(guān)系模型規(guī)定了關(guān)系操作的功能和特點,但不對DBMS語言的語法做出具體的規(guī)定。關(guān)系數(shù)據(jù)庫語言的主要特點(或優(yōu)點)是其高度的非過程化(Non-procedureae)或者說明性(declarative)。關(guān)系數(shù)據(jù)庫語言的語句是透明的。用戶只須知道語句做什么,而不須知道怎么做的。Codd在其早期的文章中,引入了8種基本的操作:并(Union)交(Intersection)差(Difference)笛卡爾乘積(Cartesian Product)限制(Restrictions)投影(Projection)連接(Join)除(Division)這些操作都是對關(guān)系的內(nèi)容或表體實施操作的,得到的結(jié)果仍為關(guān)系。
注意,這些操作只是基本的操作,而不是不再可分的原始(Primitive)操作,例如,Join,Intersection和Division可以由其它五種操作合成。但是,把它們?nèi)齻也作為基本操作使用起來很方便。另外,Codd并沒說上述8種操作就是關(guān)系數(shù)據(jù)庫只能有的8種操作。
實際上,上述8種操作僅僅是作為最小的DML操作的基礎(chǔ)部分,并且也還未考慮到DDL的需求。SQL支持的操作多于上述8種DML操作,而且SQL還支持DDL操作。關(guān)系操作的特點是集合操作,即操作的對象和結(jié)果都是集合。這種操作方式也稱為一次一集合(set-at-a-time)方式。而非關(guān)系模型的數(shù)據(jù)庫的操作方式則為一次一記錄(record-at-a-time)方式。關(guān)系操作可以用兩種方式來表示:
①代數(shù)方式,即關(guān)系代數(shù)
②邏輯方式,即關(guān)系演算而關(guān)系演算又進一步分為元組關(guān)系演算和域關(guān)系演算。已經(jīng)證明,這些表示方式在功能上是相互等價的。一般選其一即可。
(3)關(guān)系模型的三類完整性 關(guān)系模型的三類完整性是:
①實體完整性(Entity Integrity)
②參照完整性(Referential Integrity)
③用戶定義的完整性(User Defined Integrity)其中,實體完整性和參照完整性是任何關(guān)系模型都必須滿足的完整性約束條件,應(yīng)該由關(guān)系數(shù)據(jù)庫DBMS自動支持。而用戶定義的完整性的支持是由DBMS提供完整性定義設(shè)施(或機制),可以隨DBMS商品軟件不同而有所變化。
實體完整性是指:若屬性A是基本關(guān)系R的主關(guān)鍵字的屬性(即主屬性),則屬性A不能取空值(NULL)。在關(guān)系數(shù)據(jù)庫中有各種關(guān)系,如基本關(guān)系(常稱為基本表)、查詢表、視圖表等等;颈硎侵笇嶋H存在的表,它是實際存儲數(shù)據(jù)的邏輯表示。查詢表是指和查詢結(jié)果相對應(yīng)的表。而視圖表是由基本表或視圖表導(dǎo)出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)。實體完整性是針對基本關(guān)系的?罩凳侵浮安恢馈被蛘摺盁o意義的”或“不屬于定義域”值?罩狄浴癗ULL”表示。對于實體完整性作如下說明:
(1)一個基本關(guān)系通常對應(yīng)于現(xiàn)實世界中的一個實體集。例如學(xué)生關(guān)系對應(yīng)于學(xué)生實體集;娟P(guān)系不是由其它關(guān)系生成的關(guān)系;娟P(guān)系是本原(Primitive),是定義復(fù)雜關(guān)系的出發(fā)點。
(2)現(xiàn)實世界中的實體是可區(qū)分的,即實體具有某種唯一性的標識。
(3)在關(guān)系模型中由主關(guān)鍵字作為滿足唯一性的標識。
(4)主關(guān)鍵字中屬性不能取空值。因為若主關(guān)鍵字中某屬性取空值,則意味著某個實體不可標識;而這和(2)相矛盾。參照完整性是指:若基本關(guān)系R中含有另一個基本關(guān)系S的主關(guān)鍵字K S 所對應(yīng)的屬性組F(F稱為R的外部關(guān)鍵字(external keys)),則在關(guān)系R中的每個元組中的F上的值必須滿足:
①或者取空值(即F中的每個屬性的值均為空值);
②或等于S中某個元組的主關(guān)鍵字的值;娟P(guān)系R和S不一定是不同的關(guān)系。外部關(guān)鍵字也稱為外來關(guān)鍵字。例如,某數(shù)據(jù)庫中有職工關(guān)系EMP(職工號,姓名,部門號)和部門關(guān)系DEPT(部門號,部門名稱)為兩個基本關(guān)系。關(guān)系EMP的主關(guān)鍵字為“職工號”,DEPT的主關(guān)鍵字為“部門號”在EMP中,“部門號”是EMP的外部關(guān)鍵字。故此,在EMP中的每個元組中“部門號”的值只有兩種可能性:
①取空值。這說明這個職工尚未分到某個部門;
②或取非空值。這時“部門號”的值必須是DEPT中某個元組中的“部門號”的值。這說明一個職工不可能被分配到一個不存在的部門。也就是說,被參照的關(guān)系DEPT中一定存在一個元組,該元組的關(guān)鍵字的值等于EMP中某元組的外部關(guān)鍵字的值。實體完整性和參照完整性是針對任何關(guān)系數(shù)據(jù)庫系統(tǒng)的所有數(shù)據(jù)庫的一般性原則。用戶定義的完整性針對某一具體的數(shù)據(jù)庫的約束條件。條件是由現(xiàn)實世界中的應(yīng)用環(huán)境決定的。它涉及到某一具體的應(yīng)用中的數(shù)據(jù)所必須滿足的語義要求。關(guān)型模型的DBMS應(yīng)提供定義和檢驗這類完整性條件的機制,以使用統(tǒng)一的方法來自動地處理它們而不要求應(yīng)用程序員來承擔(dān)這一功能。
5.關(guān)系數(shù)據(jù)庫語言概述
關(guān)系數(shù)據(jù)庫語言分三類:數(shù)據(jù)描述語言DDL,數(shù)據(jù)操縱語言DML和數(shù)據(jù)控制語言DCL。其中,DDL負責(zé)數(shù)據(jù)庫的描述,提供一種數(shù)據(jù)描述機制,用來描述數(shù)據(jù)庫的特征或數(shù)據(jù)的邏輯結(jié)構(gòu)。DML負責(zé)數(shù)據(jù)庫的操作,提供一種處理數(shù)據(jù)庫操作的機制。DCL負責(zé)控制數(shù)據(jù)庫的完整性和安全性,提供一種檢驗完整性和保證安全的機制。DML是用戶經(jīng)常使用的語言,包括了DBMS的主要功能。DML包括數(shù)據(jù)查詢和數(shù)據(jù)的增、刪、改等功能。其中查詢的表達方式是DML的主要部分。關(guān)系數(shù)據(jù)庫的DML按照查詢方式可以分為兩大類:
(1)用對關(guān)系的集合代數(shù)運算來表示查詢的方式,稱為關(guān)系代數(shù)(Relational Algebra)。
(2)用謂詞演算來表達查詢的方式,稱為關(guān)系演算(Relational Calculus)。關(guān)系演算又可按謂詞變元的基本對象是元組變量(tuple variable)還是域變量(domain variable)分為元組關(guān)系演算和域關(guān)系演算兩種。關(guān)系代數(shù)和兩種關(guān)系演算均是抽象的查詢語言,這些抽象的查詢語言和實際的DBMS軟件產(chǎn)品中實現(xiàn)的具體的查詢語言并不完全一樣。但它們是DBMS中查詢語言的理論基礎(chǔ)。
關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算這三種語言在表達能力上是彼此相互等價的,它們均可以作為評價實際DBMS軟件產(chǎn)品中查詢語言能力的標準。實際DBMS軟件產(chǎn)品的查詢語言,除了提供關(guān)系代數(shù)(或一種關(guān)系演算)之外,還提供了許多附加的功能,如庫函數(shù)、算術(shù)運算等功能。SQL是介于關(guān)系代數(shù),和關(guān)系演算之間的一種語言。SQL不僅具有豐富的查詢功能,而且還具有數(shù)據(jù)庫定義和數(shù)據(jù)庫控制功能。SQL是集DDL、DML、DCL為一體的標準的關(guān)系數(shù)據(jù)庫語言。SQL充分體現(xiàn)了關(guān)系數(shù)據(jù)庫語言的優(yōu)點。
6.關(guān)系代數(shù)
關(guān)系代數(shù)中的運算可以分為兩類:
(1)傳統(tǒng)的集合運算,如并、交、差、笛卡爾乘積等。這類運算是從關(guān)系的“水平方向(即按行)”來進行的。
(2)專門的關(guān)系運算,如選擇、投影、連接、除。這類運算不僅涉及到行而且也涉及到列。
7.關(guān)系演算
關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。用謂詞演算作為關(guān)系數(shù)據(jù)庫的語言并提出關(guān)系演算的是E.F.Codd。Codd首先定義了關(guān)系演算語言ALPHA。但ALPHA并沒有在計算機上實現(xiàn)。但關(guān)系數(shù)據(jù)庫管理系統(tǒng)INGRES所用的QUEL語言是參考ALPHA研制的,與ALPHA十分類似。
以上內(nèi)容是關(guān)于數(shù)據(jù)庫系統(tǒng)工程師復(fù)習(xí)的介紹,由唯學(xué)網(wǎng)數(shù)據(jù)庫欄目小編提供,因此考生如若獲知更多關(guān)于數(shù)據(jù)庫資訊、復(fù)習(xí)指導(dǎo)等內(nèi)容,請隨時關(guān)注唯學(xué)網(wǎng),小編會在第一時間為考生發(fā)布相關(guān)的報道。
|
|
||
|
|