- 相關(guān)推薦
2017年計算機(jī)三級數(shù)據(jù)庫考試知識點(diǎn)
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,它產(chǎn)生于距今六十多年前,隨著信息技術(shù)和市場的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。
以下是小編整理的關(guān)于計算機(jī)三級數(shù)據(jù)庫考試知識點(diǎn),歡迎大家參考!
限制條件一:視圖數(shù)據(jù)的更改
當(dāng)用戶更新視圖中的數(shù)據(jù)時,其實(shí)更改的是其對應(yīng)的數(shù)據(jù)表的數(shù)據(jù)。無論是對視圖中的數(shù)據(jù)進(jìn)行更改,還是在視圖中插入或者刪除數(shù)據(jù),都是類似的道理。但是,不是所有視圖都可以進(jìn)行更改。如下面的這些視圖,在SQL Server數(shù)據(jù)庫中就不能夠直接對其內(nèi)容進(jìn)行更新,否則,系統(tǒng)會拒絕這種非法的操作。
如在一個視圖中,若采用Group By子句,對視圖中的內(nèi)容進(jìn)行了匯總。則用戶就不能夠?qū)@張視圖進(jìn)行更新。這主要是因?yàn)椴捎肎roup By子句對查詢結(jié)果進(jìn)行匯總在后,視圖中就會丟失這條紀(jì)錄的物理存儲位置。如此,系統(tǒng)就無法找到需要更新的紀(jì)錄。若用戶想要在視圖中更改數(shù)據(jù),則數(shù)據(jù)庫管理員就不能夠在視圖中添加這個Group BY分組語句。
如不能夠使用Distinct關(guān)鍵字。這個關(guān)鍵字的用途就是去除重復(fù)的紀(jì)錄。如沒有添加這個關(guān)鍵字的時候,視圖查詢出來的紀(jì)錄有250條。添加了這個關(guān)鍵字后,數(shù)據(jù)庫就會剔除重復(fù)的紀(jì)錄,只顯示不重復(fù)的50條紀(jì)錄。此時,若用戶要改變其中一個數(shù)據(jù),則數(shù)據(jù)庫就不知道其到底需要更改哪條紀(jì)錄。因?yàn)橐晥D中看起來只有一條紀(jì)錄,而在基礎(chǔ)表中可能對有的紀(jì)錄有幾十條。為此,若在視圖中采用了Distinct關(guān)鍵字的話,就無法對視圖中的內(nèi)容進(jìn)行更改。
如果在視圖中有AVG、MAX等函數(shù),則也不能夠?qū)ζ溥M(jìn)行更新。如在一張視圖中,其采用了SUN函數(shù)來匯總員工的工資時,此時,就不能夠?qū)@張表進(jìn)行更新。這是數(shù)據(jù)庫為了保障數(shù)據(jù)一致性所添加的限制條件。
可見,試圖雖然方便、安全,但是,其仍然不能夠代替表的地位。當(dāng)需要對一些表中的數(shù)據(jù)進(jìn)行更新時,我們往往更多的通過對表的操作來完成。因?yàn)閷σ晥D內(nèi)容進(jìn)行直接更改的話,需要遵守一些限制條件。在實(shí)際工作中,更多的處理規(guī)則是通過前臺程序直接更改后臺基礎(chǔ)表。至于這些表中數(shù)據(jù)的安全性,則要依靠前臺應(yīng)用程序來保護(hù)。確保更改的準(zhǔn)確性、合法性。
限制條件二:定義視圖的查詢語句中不能夠使用某些關(guān)鍵字
我們都知道,視圖其實(shí)就是一組查詢語句組成。或者說,視圖是封裝查詢語句的一個工具。在查詢語句中,我們可以通過一些關(guān)鍵字來格式化顯示的結(jié)果。如我們在平時工作中,經(jīng)常會需要把某張表中的數(shù)據(jù)跟另外一張表進(jìn)行合并。此時,數(shù)據(jù)庫管理員就可以利用Select Into語句來完成。先把數(shù)據(jù)從某個表中查詢出來,然后再添加到某個表中。
當(dāng)經(jīng)常需要類似的操作時,我們是否可以把它制作成一張視圖。每次有需要的時候,只需要運(yùn)行這個視圖即可,而不用每次都進(jìn)行重新書寫SQL代碼。不過可惜的是,結(jié)果是否定的。在SQL Server數(shù)據(jù)庫的視圖中,是不能夠帶有Into關(guān)鍵字。如果要實(shí)現(xiàn)類似的功能,只有通過函數(shù)或者過程來實(shí)現(xiàn)。
另外,跟Oracle數(shù)據(jù)庫不同的是,在微軟的SQLServer數(shù)據(jù)庫中創(chuàng)建視圖的時候,還有一個額外的限制。就是不能夠在創(chuàng)建視圖的查詢語句中,使用order by排序語句。這是一個很特殊的規(guī)定。一些Oracle的數(shù)據(jù)庫管理員,在使用SQL Server數(shù)據(jù)庫創(chuàng)建視圖的時候,經(jīng)常會犯類似的錯誤。他們就搞不明白,為什么Oracle數(shù)據(jù)庫中可行,但是在微軟的數(shù)據(jù)庫中則行不通呢?這恐怕只有微軟數(shù)據(jù)庫產(chǎn)品的設(shè)計者才能夠回答的問題。總之我們要記住的就是,在SQLServer數(shù)據(jù)庫中,建立視圖時,查詢語句中不能夠包含Order By語句。
限制條件三:要對某些列取別名,并保證列名的唯一
在表關(guān)聯(lián)查詢的時候,當(dāng)不同表的列名相同時,只需要加上表的前綴即可。不需要對列另外進(jìn)行命名。但是,在創(chuàng)建視圖時就會出現(xiàn)問題,數(shù)據(jù)庫會提示 “duplicate column name”的錯誤提示,警告用戶有重復(fù)的列名。有時候,用戶利用Select語句連接多個來自不同表的列,若擁有相同的名字,則這個語句仍然可以執(zhí)行。但是,若把它復(fù)制到創(chuàng)建視圖的窗口,創(chuàng)建視圖時,就會不成功。
查詢語句跟創(chuàng)建視圖的查詢語句還有很多類似的差異。如有時候,我們在查詢語句中,可能會比較頻繁的采用一些算術(shù)表達(dá)式;或者在查詢語句中使用函數(shù)等等。在查詢的時候,我們可以不給這個列“取名”。數(shù)據(jù)庫在查詢的時候,會自動給其命名。但是,在創(chuàng)建視圖時,數(shù)據(jù)庫系統(tǒng)就會給你出難題。系統(tǒng)會提醒你為列取別名。
從以上兩個例子中,我們可以看出,雖然視圖是對SQL語句的封裝,但是,兩者仍然有差異。創(chuàng)建視圖的查詢語句必須要遵守一定的限制。如要保證視圖的各個列名的唯一;如果自阿視圖中某一列是一個算術(shù)表達(dá)式、函數(shù)或者常數(shù)的時候,要給其取名字,等等。
限制條件四:權(quán)限上的雙重限制
為了保障基礎(chǔ)表數(shù)據(jù)的安全性,在視圖創(chuàng)建的時候,其權(quán)限控制比較嚴(yán)格。
一方面,若用戶需要創(chuàng)建視圖,則必須要有數(shù)據(jù)庫視圖創(chuàng)建的權(quán)限。這是視圖建立時必須遵循的一個基本條件。如有些數(shù)據(jù)庫管理員雖然具有表的創(chuàng)建、修改權(quán)限;但是,這并不表示這個數(shù)據(jù)庫管理員就有建立視圖的權(quán)限。恰恰相反,在大型數(shù)據(jù)庫設(shè)計中,往往會對數(shù)據(jù)庫管理員進(jìn)行分工。建立基礎(chǔ)表的就只管建立基礎(chǔ)表;負(fù)責(zé)創(chuàng)建視圖的就只有創(chuàng)建視圖的權(quán)限。
其次,在具有創(chuàng)建視圖權(quán)限的同時,用戶還必須具有訪問對應(yīng)表的權(quán)限。如某個數(shù)據(jù)庫管理員,已經(jīng)有了創(chuàng)建視圖的權(quán)限。此時,若其需要創(chuàng)建一張員工工資信息的視圖,還不一定會成功。這還要這個數(shù)據(jù)庫管理員有美譽(yù)跟工資信息相關(guān)的基礎(chǔ)表的訪問權(quán)限。如建立員工工資信息這張視圖一共涉及到五張表,則這個數(shù)據(jù)庫管理員就需要擁有者每張表的查詢權(quán)限。若沒有的話,則建立這張視圖就會以失敗告終。
第三,就是視圖權(quán)限的繼承問題。如上面的例子中,這個數(shù)據(jù)庫管理員不是基礎(chǔ)表的所有者。但是經(jīng)過所有者的授權(quán),他就可以對這個基礎(chǔ)表進(jìn)行訪問,就可以以此為基礎(chǔ)建立視圖。但是,這個數(shù)據(jù)庫管理員有沒有把對這個基礎(chǔ)表的訪問權(quán)限再授權(quán)給其他人呢?如他能否授權(quán)給A用戶訪問員工考勤信息表呢?答案是不一定。默認(rèn)情況下,數(shù)據(jù)庫管理員不能夠再對其他用戶進(jìn)行授權(quán)。但是,若基礎(chǔ)表的所有者,把這個權(quán)利給了數(shù)據(jù)庫管理員之后,則他就可以對用戶進(jìn)行重新授權(quán)。讓數(shù)據(jù)庫管理員可以給A用戶進(jìn)行授權(quán),讓其可以進(jìn)行相關(guān)的操作。
【計算機(jī)三級數(shù)據(jù)庫考試知識點(diǎn)】相關(guān)文章:
計算機(jī)三級數(shù)據(jù)庫考試真題及答案10-11
2017年計算機(jī)考試三級數(shù)據(jù)庫技術(shù)考試大綱10-22
2017年計算機(jī)等級考試三級數(shù)據(jù)庫技術(shù)考試重點(diǎn)09-30
2017年計算機(jī)三級考試數(shù)據(jù)庫技術(shù)考試試題附答案05-13
2017年計算機(jī)三級數(shù)據(jù)庫技術(shù)考試模擬試題06-23
2017年計算機(jī)三級數(shù)據(jù)庫技術(shù)考試試題及答案08-01
全國計算機(jī)等級考試三級網(wǎng)絡(luò)技術(shù)知識點(diǎn)05-14
2017年計算機(jī)三級網(wǎng)絡(luò)技術(shù)考試復(fù)習(xí)知識點(diǎn)07-20
計算機(jī)三級考試試題10-24