系統設計之 資料庫設計相關掃盲

來源:互聯網
上載者:User

最近工作中需要設計一整套系統,其包括 B/S形式的WEB服務、資料庫等,而且包括要設計應用程式層私人通訊協定的C/S的結構的程式模組,涉及到與外界資料庫互動、與外界模組互動。

 

由於我實在是設計上的小白,也對資料庫、WEB這塊事基本不太懂,在自己大體上對整套系統劃分模組之後,對於系統與資料庫互動,或者系統內部資料庫建設方式存在很多疑惑點。

 

於是我懷著好奇心,和我公司一DB專家聊了一小會。受益匪淺!現在總結一下心得。

 

應用程式層與資料庫的互動許可權控制的設計上一般分為兩種形式:

1. 庫端:即在資料庫中分配使用者權限,不同的應用使用不同的使用者名稱與資料庫進行互動。這樣的方式適合於能很明確的劃分且固定許可權的各個模組。

2. 應用程式層:資料庫給一個應用(主模組)分配一定許可權,然後該應用提供一套API,自己封裝對資料庫的一些操作。可以由其他應用調用。這種方式適合於經常需要變化許可權的副模組(副使用者)

 

系統設計初期盡量使用一個資料庫:(這裡指邏輯上)

除非非常確定兩個庫完全沒有交集,可以在設計上就將它分離,作為不同的資料庫。否則,可以在系統設計初期可以將整個系統的資料庫完全使用一個,整體配置許可權、建表。因為即使之後需要分離,也非常簡單。若初期設計上就邏輯分離,那麼在後期很可能需要交叉的時候帶來更大的麻煩。

 

關於資料庫叢集:

oracle和mysql都提供資料庫叢集。

叢集也大體分兩種:1.相當於負載平衡(效能) 2.相當於備份(安全)

在資料庫設計的時候,中小規模可以完全不考慮儲存空間。(若不夠,加硬碟就是了。)即使大規模資料庫需要考慮儲存空間問題,資料庫廠商有極多的成熟的解決方案,不需要自己考慮。。

資料庫叢集和一個分布式系統基本類似,採用統一對外的閘道伺服器,機器之間走網線心跳通訊等,走光纖(需要的話)傳資料。——這裡都是資料庫廠商研究的事情了,也是有很多成熟方案。

 

MYSQL未必比ORACLE差,即使現在看來,用MYSQL也未必是不專業的表現。

 

 

最後,

相當感謝我們的DB專家孔哥,為我耐心的掃盲~

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.