posts - 176, comments - 240, trackbacks - 0, articles - 7

          導航

          <2005年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(20)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          links

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          [導入]數據倉庫建模

          Posted on 2005-11-15 12:29 canonical 閱讀(325) 評論(0)  編輯  收藏 所屬分類: 軟件開發
          關系數據庫的關鍵之處在于關系的分解,在數據庫中只定義了數據之間的兩兩關系,與應用相 關的更復雜的數據關系需要在運行時通過動態join來構造出來,即這些關系儲存在程序中而不是數據庫中。實際上,關系數據庫的一個隱含的假定是數據之間很 少關聯,而在實際應用中單表和主從表也正是最常出現的情況。當一個應用頻繁需要大量表的連接操作的時候,往往意味著關系數據模型的失效,此時我們將不得不 放棄數據的無冗余性,需要通過預連接來構造實例化視圖(Material View),將數據之間的復雜關系固化并明確定義出來。 在數據倉庫里,抽象的討論star schema和snowflake schema哪個更優越是一個毫無意義的問題。 應該聚合到什么程度,需要根據數據應用的具體情況而定。
              關系數據庫本身定義的是數據之間的兩兩關系,缺乏一些全局數據訪問手段。而數據倉庫的一個基本概念是數據空間,即可以通過全局坐標來直接訪問數據,而不是 通過兩兩連接來訪問數據。在數據倉庫中最重要的就是時間維度,因為這是所有數據所共享的一個坐標維度。我們可以將兩個發生在同一時間點上的數據直接并列在 一起,而無論它們之間是否定義了關聯(relation)。
           關系數據庫的基本數據訪問模式如下:
           select 屬性列表            
           from 表A, 表B
           where 表A.data_id = 表B.id
           and 表B.attr = 'A'
           在數據倉庫中 " from 表A, 表B where 表A.data_id = 表B.id "這一部分將多個多個數據表和表之間的關聯條件放在一起定義為所謂的主題。
           而 表B.attr = 'A' 這一部分就從where子句中分離出來作為坐標條件。
              在數據倉庫中建立時間坐標有兩種方式,對于發生在時間點上的事件我們直接建立點坐標,通過his_date字段來表示,而對于延續一段時間的狀態數據,我們可以建立區間坐標,通過from_date和to_date兩個字段來表示。
          主站蜘蛛池模板: 漳州市| 东光县| 高唐县| 涿州市| 裕民县| 石首市| 平乡县| 怀化市| 当涂县| 宁晋县| 肇东市| 苏尼特右旗| 察隅县| 宝鸡市| 乌审旗| 桦南县| 南丰县| 湖北省| 沅江市| 西峡县| 建德市| 呼图壁县| 康马县| 辉县市| 滨州市| 岐山县| 昌乐县| 昆明市| 原阳县| 佛教| 新邵县| 霍山县| 桂林市| 崇礼县| 来安县| 枣阳市| 虞城县| 永顺县| 临沂市| 苗栗县| 德惠市|