qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          亂談SQL Server數(shù)據(jù)庫視圖

            數(shù)據(jù)庫里存儲(chǔ)著大量的數(shù)據(jù),但是為了保證數(shù)據(jù)的安全也為了方便,并不是所有用戶的都可瀏覽所有數(shù)據(jù)。為此SQL Server里用權(quán)限、角色、視圖來解決這一系列問題。本篇博客我先介紹視圖。

            概念:視圖是從一個(gè)或多個(gè)關(guān)聯(lián)表中派生出的一個(gè)虛擬表,換句話說就是以一個(gè)或多個(gè)表中的部分?jǐn)?shù)據(jù)組成的虛擬“表”。

            特點(diǎn):

            一、分割數(shù)據(jù),簡化視點(diǎn):即通過SELECT和WHERE語句來選擇你關(guān)心的數(shù)據(jù),而去除無關(guān)的數(shù)據(jù)。

            二、簡化操作:視圖可以避免對(duì)表的訪問和存取操作,同時(shí)視圖是一個(gè)很好的查詢窗口。

            三、保護(hù)數(shù)據(jù):針對(duì)用戶創(chuàng)建視圖,自動(dòng)屏蔽權(quán)限外的數(shù)據(jù)。

            四、為數(shù)據(jù)重構(gòu)提供一定的邏輯獨(dú)立性:在關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)重構(gòu)是不可避免的,最常見的是垂直分割為兩個(gè)表,那么由于表中的數(shù)據(jù)類型和值并沒有改變,所以只要稍微改動(dòng)視圖的定義既可以滿足變更之后的表

            五、自動(dòng)更新:在數(shù)據(jù)庫結(jié)構(gòu)不變的情況下,如果基表中的數(shù)據(jù)改變,會(huì)被自動(dòng)的反應(yīng)到視圖中

            疑問:對(duì)于視圖是一個(gè)對(duì)象,又是“虛擬表”,還具有自動(dòng)更新的特點(diǎn),引發(fā)了我對(duì)視圖存儲(chǔ)的思考:視圖是對(duì)象說明視圖創(chuàng)建后即被實(shí)例化,那么它應(yīng)該是實(shí)際存在于數(shù)據(jù)庫中的,它也確實(shí)存在。但是它是虛擬表又怎么解釋呢?首先,它只能是以結(jié)果集的方式存儲(chǔ),每次打開就打開結(jié)果集,但是這樣的話如何自動(dòng)更新;或者是以T-SQL 語句才方式存儲(chǔ),每次打開便執(zhí)行一次語句,這樣就可以解釋自動(dòng)更新了,但問題是視圖可能很大每次執(zhí)行浪費(fèi)資源。所以這兩種存儲(chǔ)方式并不科學(xué)。

            我查了一些資料,也咨詢了學(xué)長、學(xué)姐,結(jié)果是沒有結(jié)果。但經(jīng)過討論我認(rèn)為,視圖應(yīng)該是以結(jié)果集的形式來存儲(chǔ)的,同時(shí)存在著一種類似于觸發(fā)器的機(jī)制來時(shí)時(shí)更新視圖里的內(nèi)容。這樣的話視圖的性質(zhì)和特點(diǎn)就都可以解釋了。當(dāng)然這只是我的推斷,不是事實(shí),寫出來只是想尋找答案。

          posted on 2012-08-07 11:13 順其自然EVO 閱讀(277) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2012年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 敦煌市| 安平县| 塘沽区| 道孚县| 湖口县| 东宁县| 余江县| 福安市| 新化县| 秦皇岛市| 明光市| 乐平市| 缙云县| 东方市| 定州市| 西贡区| 阿克陶县| 屏东县| 陈巴尔虎旗| 高邮市| 甘南县| 榆树市| 韩城市| 嵊泗县| 文化| 洛宁县| 峨山| 安阳市| 平利县| 罗田县| 龙江县| 东源县| 江华| 泰宁县| 淮阳县| 辉县市| 武城县| 水城县| 双牌县| 泗水县| 蒙阴县|