- 自挖坑,存檔
崗位職能區分
資料庫技術在現代軟體技術領域有廣泛的應用,與資料相關的技術崗位和職能,也可以區分為若幹個不同的類别。根據在一個理想的開發團隊中不同的分工和知識掌握的不同,可以區分為:
- 程式員
- 分析師
- 設計師
- 架構師管理者
對于資料庫領域,分析與設計崗位、架構與運維崗位(管理者)的重疊較高。特别是分析與設計崗位通常在團隊中由同一(組)人承擔。在更多的團隊中架構師也與分析和設計人員的崗位重疊。是以,從項目開發周期考慮,可以簡單的分為三類:
- 分析與設計崗位(含架構)
- 開發崗位
- 運維崗位
個人能力發展路線
基本路線圖
- 初級程式員
- 中級技術崗位
- 初級設計人員
- 初級管理者
- 中級開發人員
- 進階技術崗位
- 架構師
- 設計師
- 進階管理者
入門
通常來說,新手接觸資料庫技術,從程式員崗位做起。這是因為對于資料庫技術,此崗位比較容易切入。在軟體開發團隊中,通常允許初學資料庫技術的開發人員,從事受限的資料庫開發工作,此類工作内容可以是基本的增删改查,其資料結構已經由設計人員固定。初級程式員崗位是練習 SQL 語言基本技能、了解關系模型的很好的切入點。
近 年來,此崗位工作通常使用 ORM 工具來完成工作,以提高工作效率和品質。但是對資料庫的了解仍然對這個崗位有重要意義。對資料庫知識有深入了解的開發人員,可以編寫出更高品質的 ORM 代碼,可以在必要的時候越過 ORM 的功能局限,編寫擴充代碼,可以定位性能瓶頸進行優化,等等。
是以,關系型資料庫研發崗位,在當今應用層封裝技術非常成熟的前提下,入門更為容易。程式員可以先從 ORM 入手,通常自己比較熟悉的應用層程式設計環境學習資料通路知識,然後再進一步了解 SQL 語言的知識。另一方面, ORM 并不能代替關系資料庫本身。關系資料庫知識的掌握程度直接影響程式員的職業發展。
提升
分析/設計崗位
技術人員掌握了基本的資料庫通路知識後,通常在資料庫技術領域,可以有三個不同的發展方向。常見的一個發展方向是轉入分析與設計領域。UML 的用例分析、類圖、需求分析等知識,與關系資料庫的基本設計工具 E-R 圖有直接的關系。由此也可以看出,關系資料庫的設計和分析工作其實是整合在項目開發過程中的。因為,向此方向發展的技術人員應該提升綜合能力,轉向軟體分析設計知識。
良好的項目分析準備,能更好的厘清資料庫設計所需要的資訊。良好的資料庫設計,是編寫出優質應用層代碼的基礎。個人前期工作中積累的資料庫程式設計經驗,能夠使得設計師了解資料庫設計中的關鍵點,了解基本泛式和常見設計模式的運用方法。
===== 中級開發人員 ====
面向資料庫的程式設計工作,本身存在較深入的技術要求。高水準的資料庫開發人員,面對各種問題,可以更快的給出解決方案,提供高品質的軟體産品。
通常在複雜查詢、複雜事務、資料遷移、業務報表定制等方面,需要高水準的開發人員支援。
初級管理者
初級資料庫管理者可能由開發人員轉崗,也可能獨立學習,或由系統管理者轉崗。除了掌握系統管理者的基本能力,還要了解關系資料的知識。
作為資料庫管理者,要能夠實作資料庫服務的部署、備份、恢複。能夠為開發人員和客戶提供問題診斷、預警支援。能夠找出營運過程中發生的常見問題,予以解決。
進階技術崗位
架構師
對于大型項目,系統架構成為獨立的、重要的崗位。架構師要求綜合性的知識和能力,有關資料庫領域,主要在于叢集設計,備份方案的實作,這需要對作業系統、網絡工程、資料庫自身的特性都有深入的了解。要求能夠解決項目中資料庫層的性能和可靠性問題。
設計師
通常來說設計師的工作與架構師有一定的重疊。相對來說設計師的工作更偏“軟”,需要與開發團隊有更多的交流。往往設計師要肩負進階資料庫開發人員的職責。同時要有對業務的深入了解。能夠設計出應對海量資料、高可靠性、複雜業務的資料庫方案。
進階管理者
進階資料庫管理者是通常概念中資料庫領域的高端崗位。這個崗位要求有很強的運維技術能力。要能夠參與資料庫架構方案的設計,并将其實作。要求能夠完成複雜叢集的實施、備份恢複方案實作、預警和問題診斷。
技術能力評佑
初級崗位
預備要求
- - 掌握基本的程式設計知識,能夠用項目使用的程式設計語言參與開發
- 文檔閱讀能力,能夠讀懂項目文檔,使用術語與團隊成員交流
- 有内外存的基本知識
達标名額
- 能夠使用 ORM 工具(對我部門建議 SQLAlchemy )進行基本的增删改查操作
- 能夠了解 ORM 生成的 SQL 腳本
- 能夠手工編寫簡單的單表和兩表關聯操作
- 學會使用用戶端工具
中級崗位
中級開發人員
- 能夠使用 SQL 語言解決複雜的查詢
- 熟練使用工作資料庫平台,包括特定的程式設計功能
- 熟練使用 ORM 工具,可以靈活的使用 ORM 和 SQL 解決工作中的技術問題
- 可以判斷出程式運作中的資料性能問題、設計問題,提出解決方案
分析/設計人員
- 能夠了解業務模型,将其轉化為資料模型
- 能夠使用 UML 完成從需求分析到資料庫設計的思考和工具
- 能夠設計出合理的資料庫結構,程式設計友善,維護容易,避免性能和安全隐患
- 能夠指導初級開發人員解決技術問題 - 熟練閱讀和編寫複雜的 SQL 語句
管理者
- 熟悉 SQL 程式設計,能夠編寫複雜的報表查詢和資料操作 - 熟悉 *nix 系統環境能夠
- 了解資料庫安裝和部署方法 - 能夠為架構師和開發人員提供問題診斷支援
- 能夠設計和實作基本的備份方案 - 能夠使用系統腳本和 SQL 快速解決常見的管理問題包括:
- 資料備份恢複
- 伺服器狀态查詢
- 解決死鎖、死鍊
- 存儲遷移
- 授權管理
進階崗位
架構師
- 熟悉特定資料庫的特性
- 能夠了解需求分析,掌握客戶需求
- 能夠設計出合理的服務架構和運維方案
- 能夠為開發和設計人員提供資料庫技術的咨詢支援
- 能夠為運維人員提供資料庫運維問題的解決方案
- 能夠為客戶提供良好的售前咨詢
設計師
- 熟悉項目設計
- 了解業務需求,能夠與分析人員和客戶進行良好的溝通
- 了解資料特性,能夠根據使用的技術進行設計
- 能夠将業務需求轉化為良好的設計方案
- 能夠為開發和設計人員提供資料庫技術的咨詢支援
管理者
- 熟悉機房環境
- 熟悉作業系統和伺服器的運維技術
- 熟悉資料庫特性
- 能夠制定資料庫伺服器整體運維方案
- 能夠為資料庫營運提供災備、預警、優化、擴充服務