• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            黎明的剔透里伸出了你沁清的曖昧

            Graphics|EngineDev|GameDev|2D&3D Art

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              60 隨筆 :: 1 文章 :: 18 評論 :: 0 Trackbacks

            背景:現(xiàn)在要做一個用戶管理的系統(tǒng),需要我們提供服務(wù)來實現(xiàn)和原始數(shù)據(jù)庫的兼容,但是現(xiàn)在我們的數(shù)據(jù)庫和網(wǎng)站數(shù)據(jù)庫中存儲的內(nèi)容或者說是字段有些不同,但是我們還是希望可以的話,將改動降低到最小,當(dāng)然,這只是我的初步了解,現(xiàn)在具體的情況還沒有很了解,為了這方面的應(yīng)用,上網(wǎng)了解了一下數(shù)據(jù)庫的相關(guān)操作,了解到“視圖”是個比較有利的武器可以解決這個問題。

            視圖是從一個或幾個基本表(或視圖)導(dǎo)出的表。它與基本表不同,是一個虛表。數(shù)據(jù)庫只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。所以基本表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也就隨之改變了。從這個意義上講,視圖就像一個窗口,透過它可以看到數(shù)據(jù)庫中自己感興趣的數(shù)據(jù)及其變化。
            視圖使用的時候跟表一樣。主要作用是不讓所有的人都能看到整張表。比如有個員工信息表,里面有聯(lián)系方式,薪資等,可能只希望HR能看到薪資,其他人只能看到聯(lián)系方式,那么就可以使用視圖來實現(xiàn)。
            既然視圖的定義是基于基本表的,那為什么還要定義視圖呢?這是因為合理地使用視圖能夠帶來許多好處:
            1、單源表視圖
               視圖的數(shù)據(jù)可以只取自一個基本表的部分行、列,這樣的視圖行列與基本表行列對應(yīng)。這樣定義的視圖一般可以進(jìn)行查詢和更改數(shù)據(jù)操作。
            2、多源表視圖
               視圖的數(shù)據(jù)可以來自多個表中,這樣定義的視圖一般只用于查詢,不用于修改數(shù)據(jù)。
            3、在已有視圖上定義的新視圖
               可以在視圖上再建立視圖,這時作為數(shù)據(jù)源的視圖必須是已經(jīng)建立好的。
            4、帶表達(dá)式的視圖
               在定義基本表時,為減少數(shù)據(jù)庫中的冗余數(shù)據(jù),表中只存放基本數(shù)據(jù),由基本數(shù)據(jù)經(jīng)過各種計算派生出的數(shù)據(jù)一般是不存儲的。但由于視圖中的數(shù)據(jù)并不實際存儲,所以定義視圖時可以根據(jù)需要設(shè)置一些派生屬性列,在這些派生屬性列中保存經(jīng)過計算的值。這些派生屬性由于在基本表中并不實際存在,因此,也稱它們?yōu)樘摂M列。包含虛擬列的視圖也稱為帶表達(dá)式的視圖。
            5、含分組統(tǒng)計信息的視圖
               含分組統(tǒng)計信息的視圖是指定義視圖的查詢語句中含有GROUP BY子句,這樣的視圖只能用于查詢,不能用于修改數(shù)據(jù)。

            數(shù)據(jù)的物理獨立性是指用戶的應(yīng)用程序不依賴于數(shù)據(jù)庫的物理結(jié)構(gòu)。數(shù)據(jù)的邏輯獨立性是指當(dāng)數(shù)據(jù)庫重構(gòu)造時,如增加新的關(guān)系或?qū)υ械年P(guān)系增加新的字段,用戶的應(yīng)用程序不會受影響。層次數(shù)據(jù)庫和網(wǎng)狀數(shù)據(jù)庫一般能較好地支持?jǐn)?shù)據(jù)的物理獨立性,而對于邏輯獨立性則不能完全的支持。
            在相關(guān)許數(shù)據(jù)庫中,數(shù)據(jù)庫的重構(gòu)造往往是不可避免的。重構(gòu)數(shù)據(jù)庫最常見的是將一個基本表“垂直”地分成多個基本表。例如:將學(xué)生關(guān)系Student(Sno,Sname,Ssex,Sage,Sdept),分為SX(Sno,Sname,Sage)和SY(Sno,Ssex,Sdept)兩個關(guān)系。這時原表Student為SX表和SY表自然連接的結(jié)果。如果建立一個視圖Student:
            CREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept)
            AS
            SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept
            FROM SX,SY
            WHERE SX.Sno=SY.Sno;
            這樣盡管數(shù)據(jù)庫的邏輯結(jié)構(gòu)改變了(變?yōu)镾X和SY兩個表了),但應(yīng)用程序不必修改,因為新建立的視圖定義為用戶原來的關(guān)系,使用戶的外模式保持不變,用戶的應(yīng)用程序通過視圖仍然能夠查找數(shù)據(jù)。
            當(dāng)然,視圖只能在一定程度上提供數(shù)據(jù)的邏輯獨立,比如由于視圖的更新是有條件的,因此應(yīng)用程序中修改數(shù)據(jù)的語句可能仍會因為基本表構(gòu)造的改變而改變。

            posted on 2013-11-08 08:28 情絕格調(diào)(fresmaster) 閱讀(4678) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            99久久精品费精品国产| 午夜精品久久久久久| 久久天天躁狠狠躁夜夜2020一 | 久久精品成人一区二区三区| 国产巨作麻豆欧美亚洲综合久久| 97久久精品无码一区二区| 久久不见久久见免费视频7| 久久精品国产69国产精品亚洲| 国产精品免费久久久久影院| 无码任你躁久久久久久| 99久久精品毛片免费播放| 久久久久免费视频| 久久久久女人精品毛片| 国产福利电影一区二区三区久久久久成人精品综合 | 99久久精品免费看国产一区二区三区 | 一本色综合网久久| 久久精品草草草| 狠狠综合久久综合88亚洲| 亚洲成人精品久久| 午夜不卡久久精品无码免费| 久久九九久精品国产| 亚洲国产精品无码久久久秋霞2 | 亚洲精品国产成人99久久| 久久久一本精品99久久精品88| 久久综合九色综合精品| 国产偷久久久精品专区| 亚洲国产精品综合久久网络| 亚洲国产天堂久久综合网站| 精品乱码久久久久久久| 无码人妻精品一区二区三区久久 | 99久久www免费人成精品| 久久精品国产久精国产思思| 久久人人爽人人爽人人AV东京热| 欧美一级久久久久久久大| 久久精品国产一区二区电影| 7国产欧美日韩综合天堂中文久久久久| 伊人久久综合无码成人网| 中文字幕乱码久久午夜| 久久久久99精品成人片直播| 久久久国产乱子伦精品作者| 亚洲中文字幕久久精品无码APP |