第二部分 - 關(guān)系模型與語言 - 3 - 視圖

在 ANSI-SPARC 三層結(jié)構(gòu)中硬梁, 描述了數(shù)據(jù)庫結(jié)構(gòu)呈現(xiàn)在特定用戶面前的一個外部視圖滋捶。在關(guān)系模型中 “視圖(view)” 這個詞的含義稍微有些不同抓歼。它不完全是用戶看到的外部模型嚷闭,它指 虛關(guān)系 或者 導(dǎo)出關(guān)系勤众,即無需單獨存在掩浙,必要時可從一或多個基本關(guān)系中動態(tài)的將其導(dǎo)出花吟。因此衅澈,一個外部模型可以由基本關(guān)系(概念級)和基本關(guān)系導(dǎo)出的視圖共同組成。

1. 術(shù)語

前述關(guān)系均為基本關(guān)系部默。

  • 基本關(guān)系(base relation):與概念模式中的一個實體相對應(yīng)的具名關(guān)系婚夫,它的元組都存儲在數(shù)據(jù)庫的物理結(jié)構(gòu)中。

可以根據(jù)關(guān)系定義視圖。

  • 視圖(view):對一個或多個基本關(guān)系進行關(guān)系操作得到的動態(tài)結(jié)果。視圖是一個無需存在于數(shù)據(jù)庫當(dāng)中禽笑,但卻可以根據(jù)某個特定用戶需要在必要時再產(chǎn)生的虛關(guān)系僚稿。

視圖是一個因用戶存在,并呈現(xiàn)在用戶面前的關(guān)系,可以把它當(dāng)做基本關(guān)系進行操作,但與基本關(guān)系不同的是,它并不是真正存在于存儲器中(雖然它的定義存儲在系統(tǒng)目錄中)方库。視圖的內(nèi)容被定義成基于一個或多個基本關(guān)系的查詢配喳。對試圖所進行的任何操作自動的轉(zhuǎn)換成對導(dǎo)出它的關(guān)系進行操作。視圖是 動態(tài)的,這意味著,對導(dǎo)出視圖的基本關(guān)系的修改將立即反映到視圖上。當(dāng)用戶對視圖做允許的修改時刊棕,這些修改將作用到基本關(guān)系上。

2. 視圖的用途

需要視圖機制的原因:

  • 通過對特定用戶隱藏部分數(shù)據(jù)庫信息,提供了一個強大而靈活的安全機制。如果屬性或元組不出現(xiàn)在視圖中杈曲,用戶將無從得知其存在。

  • 允許用戶根據(jù)自己的需求自定義訪問數(shù)據(jù)的方法,因此不同的用戶可以通過不同的途徑同時看到相同的數(shù)據(jù)枢劝。

  • 可以簡化對基本關(guān)系的復(fù)雜操作。例如卜壕,如果一個視圖被定義成兩個關(guān)系的聯(lián)合(連接)您旁,用戶就可以在該視圖上執(zhí)行更為簡單的操作,而這個操作將會被 DBMS 轉(zhuǎn)換成該連接上的等價操作轴捎。

可以讓視圖支持用戶所熟悉的外部模型鹤盒。例如:

  • 用戶可能需要這樣的 Branch 元組,它包含經(jīng)理的姓名和 Branch 中已有的其他屬性侦副≌炀猓可以將關(guān)系 Branch 與關(guān)系 Staff 連接起來,并限定關(guān)系 Staff 中員工的職位必須是 “Manager”秦驯,從而創(chuàng)建所需視圖率触。

  • 應(yīng)該讓一些員工看不到 Staff 中的 salary 屬性。

  • 可以對屬性進行重命名,或者是更改屬性的順序葱蝗。例如穴张,某個用戶習(xí)慣把分公司的屬性 branchNo 的全稱 Branch Number 寫出來,那么两曼,可以通過自定義的視圖讓他看到那樣的列標題皂甘。

  • 某些員工應(yīng)該只能看到他們所管理的房產(chǎn)記錄。

雖然這些例子足以說明視圖提供了 邏輯數(shù)據(jù)獨立性悼凑,但實際上偿枕,視圖還提供了更為重要的一類邏輯數(shù)據(jù)獨立性,即允許概念模式的重組户辫。例如渐夸,如果在某個關(guān)系中添加了一個新的屬性,當(dāng)前用戶可以完全不知道他的存在渔欢,只要他們的視圖不涉及該屬性墓塌。再則,一個現(xiàn)有的關(guān)系被重新排列或是被拆分奥额,仍然可以通過定義視圖而讓用戶按原樣使用數(shù)據(jù)庫苫幢。

3. 視圖的更新

對某個基本關(guān)系的所有更新應(yīng)該立即反映到涉及這個基本關(guān)系的視圖中。同樣垫挨,如果這個視圖被更新韩肝,那么它涉及的底層基本關(guān)系也應(yīng)該反應(yīng)出這種變化。但通過視圖進行更新存在一些約束九榔。下面給出大多數(shù)系統(tǒng)允許通過視圖進行更新操作的條件:

  • 如果視圖由一個基本關(guān)系的簡單查詢生成哀峻,而且他還包含了基本關(guān)系中的主關(guān)鍵字或是候選關(guān)鍵字,則可以通過這個視圖進行更新操作哲泊。
  • 不允許對涉及多個基本關(guān)系的視圖進行更新剩蟀。
  • 如果視圖的生成中涉及聚集或是分組操作,則不允許通過這個視圖進行更新攻旦。

可以根據(jù)理論上不可更新喻旷、理論上可更新和部分可更新來對視圖進行分類生逸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牢屋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子槽袄,更是在濱河造成了極大的恐慌烙无,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遍尺,死亡現(xiàn)場離奇詭異截酷,居然都是意外死亡,警方通過查閱死者的電腦和手機乾戏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門迂苛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來三热,“玉大人,你說我怎么就攤上這事三幻【脱” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵念搬,是天一觀的道長抑堡。 經(jīng)常有香客問我,道長朗徊,這世上最難降的妖魔是什么首妖? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮爷恳,結(jié)果婚禮上矩父,老公的妹妹穿的比我還像新娘刮吧。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布怕犁。 她就那樣靜靜地躺著,像睡著了一般慷荔。 火紅的嫁衣襯著肌膚如雪耗跛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天节芥,我揣著相機與錄音在刺,去河邊找鬼。 笑死头镊,一個胖子當(dāng)著我的面吹牛蚣驼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播相艇,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼颖杏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坛芽?” 一聲冷哼從身側(cè)響起留储,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咙轩,沒想到半個月后获讳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡活喊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年丐膝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡帅矗,死狀恐怖偎肃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浑此,我是刑警寧澤软棺,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站尤勋,受9級特大地震影響喘落,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜最冰,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一瘦棋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧暖哨,春花似錦赌朋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至达布,卻和暖如春团甲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黍聂。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工躺苦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人产还。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓匹厘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脐区。 傳聞我的和親對象是個殘疾皇子愈诚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容