A. 關於資料庫方向就業的問題
前面四種:
資料庫應用開發 (application development)
除了基本的SQL方面的知識,還要對開發流程,軟體工程,各種框架和開發工具等等
資料庫應用開發這個方向上的機會最多,職位最多,薪水一般
數據建模專家 (data modeler)
除了基本的SQL方面的知識,非常熟悉資料庫原理,數據建模
負責將用戶對數據的需求轉化為資料庫物理設計和物理設計
這個方向上在大公司(金融,保險,研究,軟體開發商等)有專門職位,
在中小公司則可能由程序員承擔。
商業智能專家 (business intelligence - BI)
主要從商業應用,最終用戶的角度去從數據中獲得有用的信息,
涉及OLAP (online analytical processing)
需要使用SSRS, cognos, crystal report等報表工具,或者其他一些數據挖掘,統計方面的軟體工具
這個方面我不熟悉,不敢亂說(以免被拍磚,呵呵)
數據構架師 (Data Architect)
主要從全局上制定和控制關於資料庫在邏輯這一層的大方向,
也包括數據可用性,擴展性等長期性戰略,
協調資料庫的應用開發,建模,DBA之間的工作。
這個方向上在大公司(金融,保險,研究,軟體開發商等)有專門職位,
在中小公司或者沒有這個職位,或者由開發人員,DBA負責。
前面五種:
資料庫管理員 (database administrator - DBA)
資料庫的安裝,配置,調優,備份/恢復,監控,自動化等,
協助應用開發(有些職位還要求優化SQL,寫存儲過程和函數等)
這個方向上的職位相對少一些,但一般有點規模的公司還是會有這樣的職位
數據倉庫專家 (data warehouse - DW)
應付超大規模的數據,歷史數據的存儲,管理和使用,
和商業智能關系密切,很多時候BI和DW是放在一個大類裡面的,
但是我覺得DW更側重於硬體和物理層上的管理和優化。
存儲工程師 (storage engineer)
專門負責提供數據存儲方案,使用各種存儲技術滿足數據訪問和存儲需求,
和DBA的工作關系比較密切。
對高可用性有嚴格要求(比如通信,金融,數據中心等)的公司通常有這種職位,
這種職位也非常少。
性能優化工程師 (performance engineer)
專長資料庫的性能調試和優化,為用戶提供解決性能瓶頸方面的問題。
我知道至少IBM, 微軟和Oracle都有專門的資料庫性能實驗室(database performance lab),
也有專門的性能優化工程師,負責為其資料庫產品和關鍵應用提供這方面的技術支持。
對資料庫性能有嚴格要求的公司(比如金融行業)可能會有這種職位。
因為針對性很強,甚至要求對多種資料庫非常熟悉,所以職位極少。
高級資料庫管理員 (senior DBA)
在DBA的基礎上,還涉及上面3種職位的部分工作,具體包括下面這些:
對應用系統的數據(布局,訪問模式,增長模式,存儲要求等)比較熟悉。
對性能優化非常熟悉,可以發現並優化從SQL到硬體I/O,網路等各個層面上的瓶頸
對於存儲技術相對熟悉,可能代替存儲工程師的一些工作,
對資料庫的高可用性技術非常熟悉(比如MSSQL的集群,ORACLE RAC/FailSafe, IBM的DPF, HADR等)
對大規模資料庫有效進行物理擴展(比如表分區)或者邏輯擴展(比如資料庫分區,聯合資料庫等)
熟悉各種數據復制技術,比如單向,雙向,點對點復制技術,以滿足應用要求。
災難數據恢復過程的建立,測試和執行
這種職位一般只在對資料庫要求非常高並且規模非常大(比如金融,電信,數據中心等)的公司需要,
而且這種公司一般有一個專門獨立負責資料庫的部門或組。
這種職位非常少。