熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

高性能MySQL:范式和反范式

2013-11-23 21:09:18  來源: MySQL 

   范式和反范式

  對於任何給定的數據通常都有很多種表示方法從完全的范式化到完全的反范式化以及兩者的折中在范式化的數據庫中每個事實數據會出現並且只出現一次相反在反范式化的數據庫中信息是冗余的可能會存儲在多個地方

  如果不熟悉范式則應該先學習一下有很多這方面的不錯的書和在線資源在這裡我們只是給出閱讀本章所需要的這方面的簡單介紹下面以經典的雇員部門部門領導的例子開始

  這個schema 的問題是修改數據時可能發生不一致假如Say Brown 接任Accounting 部門的領導需要修改多行數據來反映這個變化這是很痛苦的事並且容易引入錯誤如果Jones這一行顯示部門的領導跟Brown這一行的不一樣就沒有辦法知道哪個是對的這就像是有句老話說的一個人有兩塊手表就永遠不知道時間此外這個設計在沒有雇員信息的情況下就無法表示一個部門如果我們刪除了所有Accounting部門的雇員我們就失去了關於這個部門本身的所有記錄要避免這個問題我們需要對這個表進行范式化方式是拆分雇員和部門項拆分以後可以用下面兩張表分別來存儲雇員表

  和部門表

  這樣設計的兩張表符合第二范式在很多情況下做到這一步已經足夠好了然而第二范式只是許多可能的范式中的一種

  這個例子中我們使用姓(Last Name)作為主鍵因為這是數據的自然標識從實踐來看無論如何都不應該這麼用這既不能保證唯一性而且用一個很長的字符串作為主鍵是很糟糕的主意

      返回目錄高性能MySQL

       編輯推薦

       ASPNET MVC 框架揭秘

       Oracle索引技術

       ASP NET開發培訓視頻教程

  數據倉庫與數據挖掘培訓視頻教程


From:http://tw.wingwit.com/Article/program/MySQL/201311/29679.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.