5.關(guān)系數(shù)據(jù)庫語言概述
關(guān)系數(shù)據(jù)庫語言分三類:數(shù)據(jù)描述語言DDL,數(shù)據(jù)操縱語言DML和數(shù)據(jù)控制語言DCL。其中,DDL負(fù)責(zé)數(shù)據(jù)庫的描述,提供一種數(shù)據(jù)描述機(jī)制,用來描述數(shù)據(jù)庫的特征或數(shù)據(jù)的邏輯結(jié)構(gòu)。DML負(fù)責(zé)數(shù)據(jù)庫的操作,提供一種處理數(shù)據(jù)庫操作的機(jī)制。DCL負(fù)責(zé)控制數(shù)據(jù)庫的完整性和安全性,提供一種檢驗(yàn)完整性和保證安全的機(jī)制。DML是用戶經(jīng)常使用的語言,包括了DBMS的主要功能。DML包括數(shù)據(jù)查詢和數(shù)據(jù)的增、刪、改等功能。其中查詢的表達(dá)方式是DML的主要部分。關(guān)系數(shù)據(jù)庫的DML按照查詢方式可以分為兩大類:
(1)用對(duì)關(guān)系的集合代數(shù)運(yùn)算來表示查詢的方式,稱為關(guān)系代數(shù)(Relational Algebra)。
。2)用謂詞演算來表達(dá)查詢的方式,稱為關(guān)系演算(Relational Calculus)。關(guān)系演算又可按謂詞變?cè)幕緦?duì)象是元組變量(tuple variable)還是域變量(domain variable)分為元組關(guān)系演算和域關(guān)系演算兩種。關(guān)系代數(shù)和兩種關(guān)系演算均是抽象的查詢語言,這些抽象的查詢語言和實(shí)際的DBMS軟件產(chǎn)品中實(shí)現(xiàn)的具體的查詢語言并不完全一樣。但它們是DBMS中查詢語言的理論基礎(chǔ)。關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算這三種語言在表達(dá)能力上是彼此相互等價(jià)的,它們均可以作為評(píng)價(jià)實(shí)際DBMS軟件產(chǎn)品中查詢語言能力的標(biāo)準(zhǔn)。實(shí)際DBMS軟件產(chǎn)品的查詢語言,除了提供關(guān)系代數(shù)(或一種關(guān)系演算)之外,還提供了許多附加的功能,如庫函數(shù)、算術(shù)運(yùn)算等功能。SQL是介于關(guān)系代數(shù),和關(guān)系演算之間的一種語言。SQL不僅具有豐富的查詢功能,而且還具有數(shù)據(jù)庫定義和數(shù)據(jù)庫控制功能。SQL是集DDL、DML、DCL為一體的標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫語言。SQL充分體現(xiàn)了關(guān)系數(shù)據(jù)庫語言的優(yōu)點(diǎn)。
6.關(guān)系代數(shù)
關(guān)系代數(shù)中的運(yùn)算可以分為兩類:
(1)傳統(tǒng)的集合運(yùn)算,如并、交、差、笛卡爾乘積等。這類運(yùn)算是從關(guān)系的“水平方向(即按行)”來進(jìn)行的。
(2)專門的關(guān)系運(yùn)算,如選擇、投影、連接、除。這類運(yùn)算不僅涉及到行而且也涉及到列。
7.關(guān)系演算
關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。用謂詞演算作為關(guān)系數(shù)據(jù)庫的語言并提出關(guān)系演算的是E.F.Codd。Codd首先定義了關(guān)系演算語言ALPHA。但ALPHA并沒有在計(jì)算機(jī)上實(shí)現(xiàn)。但關(guān)系數(shù)據(jù)庫管理系統(tǒng)INGRES所用的QUEL語言是參考ALPHA研制的,與ALPHA十分類似。
六、關(guān)系數(shù)據(jù)庫的規(guī)范化理論
函數(shù)依賴
定義1 設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱‘X函數(shù)確定Y’或‘Y函數(shù)依賴于X’,記作X→Y。
函數(shù)依賴和別的數(shù)據(jù)依賴一樣是語義范疇的概念。只能根據(jù)語義來確定一個(gè)函數(shù)依賴。例如姓名→年齡這個(gè)函數(shù)依賴只有在沒有同名人的條件下成立。如果允許有相同名字,則年齡就不再函數(shù)依賴于姓名了。設(shè)計(jì)者也可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定。例如規(guī)定不允許同名人出現(xiàn),因而使姓名→年齡函數(shù)依賴成立。這樣當(dāng)插入某個(gè)元組時(shí)這個(gè)元組上的屬性值必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在,則拒絕插入該元組。注意,函數(shù)依賴不是指關(guān)系模式R的某個(gè)或某些關(guān)系滿足的約束條件,而是指R的一切關(guān)系均要滿足的約束條件
七、數(shù)據(jù)庫的安全與保護(hù)
1.安全性
數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的或非正常的使用所造成的數(shù)據(jù)泄露、更改或破壞。安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,計(jì)算機(jī)系統(tǒng)都有這個(gè)問題。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多用戶直接共享,是十分重要的信息資源。從而使安全性問題變得更為突出。系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要性能指標(biāo)之一。對(duì)于數(shù)據(jù)庫的安全保密方式可以有系統(tǒng)處理的和物理的兩個(gè)方面。所謂物理的是指,對(duì)于強(qiáng)力逼迫透露口令、在通信線路上竊聽、以至盜竊物理存儲(chǔ)設(shè)備等行為。對(duì)此所采取的措施是將數(shù)據(jù)編為密碼,加強(qiáng)警衛(wèi)以識(shí)別用戶身份和保護(hù)存儲(chǔ)設(shè)備等措施。在一般計(jì)算機(jī)系統(tǒng)中,安全措施是一級(jí)一級(jí)層層設(shè)置的。
。1)用戶標(biāo)識(shí)和鑒定首先,系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。系統(tǒng)進(jìn)行核實(shí),通過鑒定后才提供機(jī)器使用權(quán)。常用的方法有:用一個(gè)用戶名或者用戶標(biāo)識(shí)號(hào)來標(biāo)明用戶身份。系統(tǒng)鑒別此用戶是否是合法用戶。若是,則可以進(jìn)入下一步的核實(shí);若不是,則不能使用計(jì)算機(jī)。用戶名的登錄只由系統(tǒng)管理員進(jìn)行,一般用戶不能實(shí)施用戶名登錄?诹睿≒assword),為了進(jìn)一步核實(shí)用戶,系統(tǒng)常常要求用戶輸入口令。
。2)存取控制對(duì)于獲得上機(jī)權(quán)的用戶還要根據(jù)預(yù)先定義好的用戶權(quán)限進(jìn)行存取控制,保證用戶只能存取他有權(quán)存取的數(shù)據(jù)。所謂用戶權(quán)限是指不同的用戶對(duì)于不同的數(shù)據(jù)對(duì)象允許執(zhí)行的操作權(quán)限。它由兩部分組成,一是數(shù)據(jù)對(duì)象,二是操作類型。數(shù)據(jù)對(duì)象有二類。一類是數(shù)據(jù)本身,如關(guān)系數(shù)據(jù)庫中的表、字段,非關(guān)系數(shù)據(jù)庫中的記錄、字段(亦稱為數(shù)據(jù)項(xiàng))。另一類是外模式、模式、內(nèi)模式。在關(guān)系系統(tǒng)中DBA可以把建立、修改基本表的權(quán)力授予用戶,用戶獲得此權(quán)力后可以建立基本表、索引、視圖。這說明關(guān)系系統(tǒng)中存取控制的數(shù)據(jù)對(duì)象不僅有數(shù)據(jù)而且有模式、外模式、內(nèi)模式等數(shù)據(jù)字典中的內(nèi)容。對(duì)于存取權(quán)限的定義稱為授權(quán)(Authorization)。這些定義經(jīng)過編譯后存儲(chǔ)在數(shù)據(jù)字典中。每當(dāng)用戶發(fā)出存取數(shù)據(jù)庫的操作請(qǐng)求后,DBMS查找數(shù)據(jù)字典,根據(jù)用戶權(quán)限進(jìn)行合法權(quán)限檢查(Authorization Check)。若用戶的操作請(qǐng)求超出了定義的權(quán)限,系統(tǒng)拒絕執(zhí)行此操作。授權(quán)編譯程序和合法權(quán)限檢查機(jī)制一起組成了安全性子系統(tǒng)。衡量授權(quán)子系統(tǒng)精巧程度的另一個(gè)盡度是否提供與數(shù)據(jù)值有關(guān)的授權(quán)。有的系統(tǒng)還允許存取謂詞中引用系統(tǒng)變量,如一天中的時(shí)刻,終端設(shè)備號(hào)。這樣用戶只能在某臺(tái)終端、某段時(shí)間內(nèi)存取有關(guān)數(shù)據(jù),這就是與時(shí)間和地點(diǎn)有關(guān)的存取權(quán)限。另外,在操作系統(tǒng)中對(duì)文件、目標(biāo)等的存取還有一些安全保護(hù)措施。其中加密是一種防止數(shù)據(jù)內(nèi)容被別人引用或了解的切實(shí)可行的辦法。加密有程序加密和硬件加密卡兩種形式。
希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流,請(qǐng)進(jìn)入計(jì)算機(jī)等級(jí)考試論壇
更多信息請(qǐng)?jiān)L問:考試吧計(jì)算機(jī)等級(jí)考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |