資料庫工程師要求
1. 要過哪些證書才能算是個合格的資料庫工程師
資料庫分為mysql、oracle。db2、sqlserver2005等,每個資料庫的資料庫工程師分為開發工程程、管理工程師、設計工程師,還有數據倉庫工程師,所以你必須先選擇資料庫,在選擇對應的那個職位,才能推薦書籍。
現在oracle占據大部分市場,大企業用,db2一般用於銀行。mysql用於網站,建議學oracle。mysql,因為這是一家公司的產品,學習的話,先找基礎書籍,基礎牢固了,在拓展。不過不管學什麼資料庫,對於資料庫的優化一定要清楚。這是最重要的。
oracle的話學習,建議你看以下書籍,這些數據都是本人親自看過的。
2. 資料庫工程師崗位要求有哪些呢
熟悉資料庫基本原理和理論,了解主流
資料庫系統
的優化設置,性能調整,SQL編寫優化,
數據備份
恢復等等。
3. 全國計算機等級考試四級資料庫工程師報考要求
三級獲證條件:通過三級科目的考試,並已經(或同時)獲得二級相關證書。三級資料庫技術證書要求已經(或同時)獲得二級資料庫程序設計類證書;網路技術、軟體測試技術、信息安全技術、嵌入式系統開發技術等四個證書要求已經(或同時)獲得二級語言程序設計類證書。考生早期獲得的證書(如Pascal、FoxBase等),不嚴格區分語言程序設計和資料庫程序設計,可以直接報考三級。 考試時間的形式:三級考試時間為120分鍾;考試形式為無紙化。 系統環境:Windows 7
四級獲證條件:通過四級科目的考試,並已經(或同時)獲得三級相關證書。 考試時間和形式:四級考試總時間為90分鍾,單課程沒有時間要求;考試形式為無紙化。 系統環境:Windows 7
4. SQL資料庫工程師的工作要求
就我們公司來說,一般資料庫工程師的主要工作包括:數據備份;資料庫日常維護;數據結構方面的設計;SQL調優;解決由於資料庫操作所造成的系統性能問題;給開發人員開展一些資料庫方面的培訓;
你要是覺得能勝任這些工作且有這方面的經驗就可以去應聘了,要是手頭上有資料庫的DBA認證那就更好了.
5. 請教!成為一名合格的資料庫工程師需掌握那些知識技能
數工討論群:27955282 數工考試交流群:37263632
你們交流。
2004資料庫系統工程師級大綱
一、考試說明
1.考試要求
(1)掌握計算機體系結構以及各主要部件的性能和基本工作原理;
<廣告>
(2)掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;
(3)熟練掌握常用數據結構和常用演算法;
(4)熟悉軟體工程和軟體開發項目管理的基礎知識;
(5)熟悉計算機網路的原理和技術;
(6)掌握資料庫原理及基本理論;
(7)掌握常用的大型資料庫管理系統的應用技術;
(8)掌握資料庫應用系統的設計方法和開發過程;
(9)熟悉資料庫系統的管理和維護方法,了解相關的安全技術;
(10)了解資料庫發展趨勢與新技術;
(11)掌握常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(12)了解信息化、計算機應用的基礎知識;
(13)正確閱讀和理解計算機領域的英文資料。
2. 通過本考試的合格人員能參與應用信息系統的規劃、設計、構建、運行和管理,能按照用戶需求,設計、建立、運行、維護高質量的資料庫和數據倉庫;作為數據管理員管理信息系統中的數據資源,作為資料庫管理員建立和維護核心資料庫;擔任資料庫系統有關的技術支持,同時具備一定的網路結構設計及組網能力;具有工程師的實際工作能力和業務水平,能指導計算機技術與軟體專業助理工程師(或技術員)工作。
3. 本考試設置的科目包括
(1)信息系統知識,考試時間為150分鍾,筆試;
(2)資料庫系統設計與管理,考試時間為150分鍾,筆試。
二、考試范圍
考試科目1:信息系統知識
1. 計算機系統知識
1.1 硬體知識
1.1.1 計算機體系結構和主要部件的基本工作原理
?CPU和存儲器的組成、性能、基本工作原理
?常用I/O設備、通信設備的性能,以及基本工作原理
?I/O介面的功能、類型和特點
?CISC/RISC,流水線操作,多處理機,並行處理
1.1.2 存儲系統
?虛擬存儲器基本工作原理,多級存儲體系
?RAID類型和特性
1.1.3 安全性、可靠性與系統性能評測基礎知識
?診斷與容錯
?系統可靠性分析評價
? 計算機系統性能評測方法
1.2 數據結構與演算法
1.2.1 常用數據結構
?數組(靜態數組、動態數組)
?線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)
?棧和隊列
?樹(二叉樹、查找樹、平衡樹、遍歷樹、堆)、圖、集合的定義、存儲和操作
?Hash(存儲位置計算、碰撞處理)
1.2.2 常用演算法
?排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
?演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表),演算法的復雜性
1.3 軟體知識
1.3.1 操作系統知識
?操作系統的類型、特徵、地位、內核(中斷控制)、進程、線程概念
?處理機管理(狀態轉換、同步與互斥、信號燈、分時輪轉、搶占、死鎖)
?存儲管理(主存保護、動態連接分配、分段、分頁、虛存)
?設備管理(I/O控制、假離線、磁碟調度)
?文件管理(文件目錄、文件的結構和組織、存取方法、存取控制、恢復處理、共享和安全)
?作業管理(作業調度、作業控制語言(JCL)、多道程序設計)
?漢字處理,多媒體處理,人機界面
?網路操作系統和嵌入式操作系統基礎知識
?操作系統的配置
1.3.2 程序設計語言和語言處理程序的知識
? 匯編、編譯、解釋系統的基礎知識和基本工作原理
? 程序設計語言的基本成分:數據、運算、控制和傳輸,程序調用的實現機制
? 各類程序設計語言的主要特點和適用情況
1.4 計算機網路知識
?網路體系結構(網路拓撲、OSI/RM、基本的網路協議)
?傳輸介質,傳輸技術,傳輸方法,傳輸控制
?常用網路設備和各類通信設備
?Client/Server結構、Browser/Server結構、Browser/Web/Datebase結構
?LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接
?網際網路基礎知識及應用
?網路軟體
?網路管理
?網路性能分析
?網路有關的法律、法規
2. 資料庫技術
2.1 資料庫技術基礎
2.1.1 資料庫模型
?資料庫系統的三級模式(概念模式、外模式、內模式),兩級映像(概念模式/外模式、外模式/內模式)
?資料庫模型:數據模型的組成要素,概念數據模型ER圖(實體、屬性、關系),邏輯數據模型(關系模型、層次模型、網路模型)
2.1.2 資料庫管理系統的功能和特徵
?主要功能(資料庫定義、資料庫操作、資料庫控制、事務管理、用戶視圖)
?特徵(確保數據獨立性、資料庫存取、同時執行過程、排它控制、故障恢復、安全性、完整性)
?RDB(關系資料庫),OODB(面向對象資料庫),ORDB(對象關系資料庫),NDB(網狀資料庫)
?幾種常用Web資料庫的特點
2.1.3 資料庫系統體系結構
? 集中式資料庫系統
? Client/Server資料庫系統
? 並行資料庫系統
? 分布式資料庫系統
? 對象關系資料庫系統
2.2 數據操作
2.2.1 關系運算
?關系代數運算(並、交、差、笛卡兒積、選擇、投影、連接、除)
?元組演算
?完整性約束
2.2.2 關系資料庫標准語言(SQL)
?SQL的功能與特點
?用SQL進行數據定義(表、視圖、索引、約束)
?用SQL進行數據操作(數據檢索、數據插入/刪除/更新、觸發控制)
?安全性和授權
?程序中的API,嵌入SQL
2.3 資料庫的控制功能
?資料庫事務管理(ACID屬性)
?資料庫備份與恢復技術(UNDO、REDO)
?並發控制
2.4 資料庫設計基礎理論
2.4.1 關系資料庫設計
?函數依賴
?規范化(第一範式、第二範式、第三範式、BC範式、第四範式、第五範式)
?模式分解及分解應遵循的原則
2.4.2 對象關系資料庫設計
?嵌套關系、 復雜類型,繼承與引用類型
?與復雜類型有關的查詢
?SQL中的函數與過程
?對象關系
2.5 數據挖掘和數據倉庫基礎知識
?數據挖掘應用和分類
?關聯規則、聚類
?數據倉庫的成分
?數據倉庫的模式
2.6 多媒體基本知識
2.6.1 多媒體技術基本概念
?多媒體系統基礎知識
?常用多媒體文件格式
2.6.2 多媒體壓縮編碼技術
?多媒體壓縮編碼技術
?統計編碼
?預測編碼
?編碼的國際標准
2.6.3多媒體技術應用
?簡單圖形的繪制,圖像文件的處理方法
?音頻和視頻信息的應用
?多媒體應用開發過程
2.7 系統性能知識
?性能計算(響應時間、吞吐量、周轉時間)
?性能指標和性能設計
?性能測試和性能評估
2.8 計算機應用基礎知識
?信息管理、數據處理、輔助設計、科學計算,人工智慧等基礎知識
?遠程通信服務及相關通信協議基礎知識
3. 系統開發和運行維護知識
3.1 軟體工程、軟體過程改進和軟體開發項目管理知識
?軟體工程知識
?軟體開發生命周期階段目標和任務
?軟體開發項目基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具
?主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)
?軟體開發工具與環境知識
?軟體質量管理基礎知識
?軟體過程改進基礎知識
?軟體開發過程評估、軟體能力成熟度評估的基礎知識
3.2 系統分析基礎知識
?系統分析的目的和任務
?結構化分析方法(數據流圖(DFD)和數據字典(DD),實體關系圖(ERD),描述加工處理的結構化語言)
?統一建模語言(UML)
?系統規格說明書
3.3 系統設計知識
?系統設計的目的和任務
?結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)
?系統總體結構設計(總體布局,設計原則,模塊結構設計,數據存取設計,系統配置方案)
?系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)
?系統設計說明書
3.4 系統實施知識
?系統實施的主要任務
?結構化程序設計、面向對象程序設計、可視化程序設計
?程序設計語言的選擇、程序設計風格
?系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)
?測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試試用例設計、系統測試報告)
?系統轉換基礎知識
3.5 系統運行和維護知識
?系統運行管理知識
?系統維護知識
?系統評價知識
4. 安全性知識
?安全性基本概念(網路安全、操作系統安全、資料庫安全)
?計算機病毒的防治,計算機犯罪的防範,容災
?訪問控制、防闖入、安全管理措施
?加密與解密機制
?風險分析、風險類型、抗風險措施和內部控制
5.標准化知識
?標准化意識,標准化的發展,標准出台過程
?國際標准、國家標准、行業標准、企業標准基本知識
?代碼標准、文件格式標准、安全標准軟體開發規范和文檔標准
?標准化機構
6.信息化基礎知識
?信息化意識
?全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
?有關的法律、法規
?遠程教育、電子商務、電子政務等基礎知識
?企業信息資源管理基礎知識
7.計算機專業英語
?掌握計算機技術的基本詞彙
?能正確閱讀和理解計算機領域的英文資料
考試科目2:資料庫系統設計與管理
1.資料庫設計
1.1理解系統需求說明
?了解用戶需求、確定系統范圍
?確定應用系統資料庫的各種關系
?現有環境與新系統環境的關系
?新系統中的數據項、數據字典、數據流
1.2 系統開發的准備
?選擇開發方法,准備開發環境,制訂開發計劃
1.3 設計系統功能
?選擇系統機構,設計各子系統的功能和介面,設計安全性策略、需求和實現方法,制定詳細的工作流和數據流
1.4 資料庫設計
1.4.1 設計數據模型
?概念結構設計(設計ER模型)
?邏輯結構設計(轉換成DBMS所能接收的數據模型)
?評審設計
1.4.2 物理結構設計
?設計方法與內容
?存取方法的選擇
?評審設計與性能預測
1.4.3 資料庫實施與維護
?數據載入與應用程序調試
?資料庫試運行
?資料庫運行與維護
1.4.4 資料庫的保護
?資料庫的備份與恢復
?資料庫的安全性
?資料庫的完整性
?資料庫的並發控制
1.5 編寫外部設計文檔
?編寫系統說明書(系統配置圖、各子系統關系圖、系統流程圖,系統功能說明、輸入輸出規格說明、數據規格說明、用戶手冊框架)
?設計系統測試要求
1.6 設計評審
2. 資料庫應用系統設計
2.1 設計資料庫應用系統結構
?信息系統的架構(如Client/Server)與DBMS
?多用戶資料庫環境(文件伺服器體系結構、Client/Server體系結構)
?大規模資料庫和並行計算機體系結構(SMP、MPP)
?中間件角色和相關工具
?按構件分解,確定構件功能規格以及構件之間的介面
2.2 設計輸入輸出
?屏幕界面設計,設計輸入輸出檢查方法和檢查信息
?資料庫交互與連接(掌握C程序設計語言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一種開發工具與資料庫互連的方法(如何與資料庫伺服器溝通))
2.3 設計物理數據
?分析事務在資料庫上運行的頻率和性能要求,確定邏輯數據組織方式、存儲介質,設計索引結構和處理方式
?將邏輯數據結構變換成物理數據結構,計算容量(空間代價),確定存取方法(時間效率)、系統配置(維護代價)並進行優化
2.4 設計安全體系
?明確安全等級
?資料庫的登錄方式
?資料庫訪問
?許可(對象許可、命令許可、授權許可的方法)
2.5 應用程序開發
2.5.1 應用程序開發
?選擇應用程序開發平台
?系統實施順序
?框架開發
?基礎小組的程序開發
?源代碼控制
?版本控制
2.5.2 模塊劃分(原則、方法、標准)
2.5.3 編寫程序設計文檔
?模塊規格說明書(功能和介面說明、程序處理邏輯的描述、輸入輸出數據格式的描述)
?測試要求說明書(測試類型和目標,測試用例,測試方法)
2.5.4 程序設計評審
2.6 編寫應用系統設計文檔
?系統配置說明、構件劃分圖、構件間的介面、構件處理說明、屏幕設計文檔、報表設計文檔、程序設計文檔、文件設計文檔、資料庫設計文檔
2.7 設計評審
3. 資料庫應用系統實施
3.1 整個系統的配置與管理
3.2 常用資料庫管理系統的應用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
?創建資料庫
?創建表、創建索引、創建視圖、創建約束、創建UDDT(用戶自定義類型)
?創建和管理觸發器
?建立安全體系
3.3 資料庫應用系統安裝
?擬定系統安裝計劃(考慮費用、客戶關系、雇員關系、後勤關系和風險等因素)
?擬定人力資源使用計劃(組織機構安排的合理性)
?直接安裝(安裝新系統並使系統快速進入運行狀態)
?並行安裝(新舊系統並行運行一段時間)
?階段安裝(經過一系列的步驟和階段使新系統各部分逐步投入運行)
3.4 資料庫應用系統測試
?擬定測試目標、計劃、方法與步驟
?數據載入,准備測試數據
?指導應用程序員進行模塊測試進行驗收
?准備系統集成測試環境測試工具
?寫出資料庫運行測試報告
3.5 培訓與用戶支持
4.資料庫系統的運行和管理
4.1 資料庫系統的運行計劃
?運行策略的確定
<廣告>
?確定資料庫系統報警對象和報警方式
?資料庫系統的管理計劃(執行,故障/恢復,安全性,完整性,用戶培訓和維護)
4.2 資料庫系統的運行和維護
?新舊系統的轉換
?收集和分析報警數據(執行報警、故障報警、安全報警)
?連續穩定的運行
?資料庫維護(資料庫重構、安全視圖的評價和驗證、文檔維護)
?資料庫系統的運行統計(收集、分析、提出改進措施)
?關於運行標准和標准改進一致性的建議
?資料庫系統的審計
4.3 資料庫管理
?數據字典和數據倉庫的管理
?數據完整性維護和管理(實體完整性、參照完整性)
?資料庫物理結構的管理(保證數據不推遲訪問)
?資料庫空間及碎片管理
?備份和恢復(順序、日誌(審計痕跡)、檢查點)
?死鎖管理(集中式、分布式)
?並發控制(可串列性、鎖機制、時間戳、優化)
?數據安全性管理(加密、安全、訪問控制、視圖、有效性確認規則)
?資料庫管理員(DBA)職責
4.4 性能調整
?SQL語句的編碼檢驗
?表設計的評價
?索引的改進
?物理分配的改進
?設備增強
?資料庫性能優化
4.5 用戶支持
?用戶培訓
?售後服務
5. SQL
5.1 資料庫語言
?資料庫語言的要素
?資料庫語言的使用方式(互動式和嵌入式)
5.2 SQL概述
?SQL語句的特徵
?SQL語句的基本成分
5.3 資料庫定義
?創建資料庫(Create Datebase)、創建表(Create Table)
?定義數據完整性
?修改表(Alter Table)、刪除表(Drop Table)
?定義索引(Create Index)、刪除索引(Drop Index)
?定義視圖(Create View)、刪除視圖(Drop View)、更新視圖
5.4 數據操作
?Select語句的基本機構
?簡單查詢
?SQL中的選擇、投影
?字元串比較,涉及空值的比較
?日期時間,布爾值,輸出排序
?多表查詢
?避免屬性歧義
?SQL中的連接、並、交、差
?SQL中的元組變數
?子查詢
5.5 完整性控制與安全機制
?主鍵(Primary Key)約束
?外鍵(Foreign Key)約束
?屬性值上的約束(Null、Check、Create Domain)
?全局約束(Create Assertions)
?許可權、授權(Grant)、銷權(Revoke)
5.6 創建觸發器(Create Trigger)
5.7 SQL使用方式
?互動式SQL
?嵌入式SQL
?SQL與宿主語言介面(Declare、共享變數、游標、卷游標)
?動態SQL
?API
5.8 SQL 標准化
6. 網路環境下的資料庫
6.1 分布式資料庫
6.1.1 分布式資料庫的概念
?分布式資料庫的特點與目標
6.1.2 分布式資料庫的體系結構
?分布式資料庫的模式結構
?數據分布的策略(數據分片、分布透明性)
?分布式資料庫管理系統
6.1.3 分布式查詢處理和優化
6.1.4 分布式事務管理
?分布式資料庫的恢復(故障、恢復、2段提交、3段提交)
?分布式資料庫的透明性(局部、分裂、復制、處理、並發、執行)
6.1.5 分布式資料庫系統的應用
6.2 網路環境下資料庫系統的設計與實施
?數據的分布設計
?負載均衡設計
?資料庫互連技術
6.3 面向Web的DBMS技術
?三層體系結構
?動態Web網頁
?ASP、JSP、XML的應用
7.資料庫的安全性
7.1 安全性策略的理解
?資料庫視圖的安全性策略
?數據的安全級別(最重要的、重要的、注意、選擇)
7.2 資料庫安全測量
?用戶訪問控制(採用口令等)
?程序訪問控制(包含在程序中的SQL命令限制)
?表的訪問控制(視圖機制)
?控制訪問的函數和操作
?外部存儲數據的加密與解密
8. 資料庫發展趨勢與新技術
8.1 面向對象資料庫(OODBMS)
8.1.1 OODBMS的特徵
8.1.2 面向對象數據模型
?對象結構、對象類、繼承與多重繼承、對象標識、對象包含、對象嵌套
8.1.3 面向對象資料庫語言
8.1.4 對象關系資料庫系統(ORDBMS)
?嵌套關系
?復雜類型
?繼承、引用類型
?與復雜類型有關的查詢
?函數與過程
?面向對象與對象關系
?ORDBMS應用領域
8.2 企業資源計劃(ERP)和資料庫
8.2.1 ERP概述
?基本MRP(製造資源計劃)、閉環MRP、ERP
?基本原理、發展趨勢
?ERP設計的總體思路(一個中心、兩類業務、三條干線)
8.2.2 ERP與資料庫
?運行資料庫與ERP數據模型之間的關系
?運行資料庫與ERP資料庫之間的關系
8.2.3 案例分析
8.3 決策支持系統的建立
?決策支持系統的概念
?數據倉庫設計
?數據轉移技術
?聯機分析處理(OLAP)技術
?企業決策支持解決方案
?聯機事務處理(OLTP)
6. 考幾級才能成為資料庫工程師
全國計算機4級為資料庫工程師。
全國計算機等級考試(National Computer Rank Examination,以下簡稱 NCRE),是經原國家教育委員會(現教育部)批准,由教育部考試中心主辦,面向社會,用於考查非計算機專業應試人員計算機應用知識與技能的全國性計算機水平考試體系。
4級:科目:網路工程師、資料庫工程師、軟體測試工程師、信息安全工程師與嵌入式系統開發工程師五個考核項目。
形式:無紙化考試。四級考試科目由五門專業基礎課程中指定的兩門課程組成,總分 100 分,兩門課程各占 50 分。專業基礎課程為計算機專業核心課程,包括:操作系統原理、計算機組成與介面、計算機網路、資料庫原理、軟體工程。考試總時間為 90 分鍾,單課程考試沒有時間要求。
獲證條件:兩門課程分別達到 30 分及以上,並已經(或同時)獲得三級相關證書。2013 年 3 月及以前獲得的三級各科目證書,不區分科目,可以作為四級任一科目的獲證條件。
7. 資料庫工程師的技術能力
資料庫工程師以技術為基礎,通過技術保障資料庫提供更高質量的服務。資料庫工程師工作的職責及在業務中的位置決定了資料庫工程師需要具備更加廣博的知識和深入的技術能力。在資料庫環境的管理與維護中,技術任務可歸結成許多不同的分類。下面列出了一名資料庫工程師應掌握的一些技能:
1)理解數據備份/恢復與災難恢復
恢復已損壞的資料庫是每一個資料庫工程師應掌握的最重要的技能。資料庫工程師需要完全理解資料庫所有可能的備份與恢復方法,以及不同備份方法與不同恢復策略的對應關系。此外,資料庫工程師還需要與業務部門合作,一起確認業務需求,明確用戶能夠容忍的數據丟失底線。此外,業務用戶還需要確定在系統故障情況下,他們的業務能夠維持多長時間。理解這些需求可以幫助資料庫工程師開發出一個滿足業務用戶要求的備份/恢復方法。一個優秀的資料庫工程師要定期測試備份與恢復流程,保證他們有能力恢復業務數據,滿足企業所規定的業務數據丟失與恢復要求。
2)工具集的使用
所謂工具集,指的是一組用於執行不同資料庫工程師任務的腳本。這個工具集應該包含不同的小代碼片段,它們可以快速診斷問題或執行一個特定的任務。這些工具腳本應該按資料庫工程師的活動類型歸類,如備份、索引維護、性能優化、容量管理等。由於總是會執行新任務、發現新問題或找到其他人開發的好用腳本,因此一個優秀的資料庫工程師會不斷地給這個工具集增加新腳本。此外,他還應該了解網上哪裡能夠找到一些免費的工具和腳本。一個好的資料庫工程師知道什麼時候可以利用其他人編寫的腳本,從而節省自己的時間和改進自己的工具集。
3)知道如何快速尋找答案
資料庫每天會面臨各種各樣故障的挑戰,從硬體到網路,從性能壓力到程序bug,資料庫工程師都要從容應對,一一排除。即使是資料庫大牛,也不可能是無所不知的,因此每個資料庫工程師一方面需要不斷修煉自己,積累操作系統、網路、硬體、存儲系統、分布式計算等理論基礎,另一方面還要有快速尋找新問題解決方法的能力。如果一個資料庫實例不能按預期方式運轉,那麼快速尋找新問題的解決方法也是一個重要能力。一個好的資料庫工程師知道如何快速地在網上查找一個未知問題的解決方法。此外,他們也可能已經知道了一些非常不錯的網站,也知道業界專家會提供一些好建議,同時知道什麼時候應該忽略一些不好的建議。你可能想像不到,確實有一些建議不值得參考。
4)如何監控和優化資料庫性能
對於任何資料庫產品,性能都尤其重要,它會直接影響產品的響應速度和用戶體驗。對於一個資料庫工程師來說,性能優化一般需要佔用50%的工作時間,因此資料庫工程師需要知道如何監控和優化數據性能。
以SQL Server舉例,性能是一個關鍵的問題,因此資料庫工程師需要知道如何修復故障和監控性能問題。有許多第三方性能監控工具可以幫助資料庫工程師優化性能。如果資料庫工程師只使用第三方工具,而不會使用SQL Server自帶的原生工具來監控性能,那麼相信很快就會出現問題。雖然使用第三方工具來監控性能也很不錯,但是資料庫工程師一定要理解SQL自帶的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic Management Views、系統/擴展的存儲過程、Extended Events等。許多第三方工具實際上在使用這些底層的原生工具。因此,理解這些自帶的原生工具將有利於增強資料庫工程師使用第三方工具的經驗。
5)研究新版本
在技術領域中,沒有什麼是一成不變的。每隔兩三年,主流資料庫廠商都會發布一個大版本的更新。資料庫工程師應該緊跟新版本所作的修改,它們可能有許多變化方法,最好的方法是遲早介入這個過程。測試版開放後馬上下載和安裝,盡快掌握第一手使用經驗。一名好的資料庫工程師總是走在學習排頭兵,總是會第一時間安裝和測試新版本。這樣他們就可以盡早理解新特性,然後提出一些合理的新建議,幫助組織更好地利用新版本資料庫。
6)理解代碼最佳實踐方法
資料庫工程師應該了解如何編寫高效的代碼。有許多糟糕的編碼實踐方法會導致拙劣的性能。一名好的資料庫工程師要能夠理解和識別這些糟糕的編碼實踐方法,知道如何修改這些爛代碼,讓它們變成高效代碼。此外,他們還要記錄下寫代碼的最佳實踐方法,並且將這些實踐方法分享給其他人。
7)持續不斷地學習
資料庫及其組件涉及面非常廣。資料庫工程師很難理解一個技術的方方面面。資料庫工程師需要持續學習如何管理資料庫。這個學習過程有很多方法。其中之一就是參加正式培訓。但是,並非人人都有這樣充裕的事件和金錢,也並非人人都能夠放下手頭工作專門出去參加正式的培訓。但是,還有許多其他方法可以獲得培訓,而且大多數還是免費的。一名好的資料庫工程師一定要訂閱一些定期發布資料庫新技巧和新文章的社區網站。此外,他還應該加入一些用戶組織,可以在周末參加一些當地的免費沙龍活動。
8)資料庫安全性
安全性是一個熱門話題。資料庫工程師應該完全掌握如何實現資料庫的安全訪問。他們應該理解操作系統身份驗證和資料庫身份驗證的區別,以及它們各自的使用場合。他們應該理解如何使用資料庫角色來管理不同類型用戶的安全配置。他們應該理解連接資料庫的埠與協議。此外,他們還應該理解如何加密整個資料庫,或者加密一個資料庫中一個表的某一個欄位,同時理解關於加密數據的各種問題。
9)資料庫設計
決定資料庫性能的一個關鍵問題是資料庫設計。資料庫工程師需要理解關於資料庫設計的各個方面。他們要能夠理解設計好壞的區別。他們需要理解為什麼使用正確的外鍵約束、主鍵、檢查約束和使用數據類型能夠保持資料庫的數據完整性和實現高效的數據查詢與更新。
10)索引設計
資料庫索引是提高應用程序檢索和更新數據速度的重要環節。資料庫工程師需要知道索引的工作原理。他們應該知道聚簇索引和非聚簇索引的區別,知道這些索引的物理存儲方式。資料庫工程師應該知道如何在執行計劃中使用這些索引。他們應該理解如何找到索引的使用統計、理解索引碎片及如何發現丟失的索引。他們應該知道如何維護索引,以及索引統計信息對於查詢引擎的重要作用。
11)容量監控與規劃
資料庫往往要使用大量的資源,包括CPU、內存、I/O及磁碟空間。資料庫工程師應該理解如何監控資料庫所需要的不同主機資源的用量。他們應該能夠理解這些資源在不同時間的使用情況,以及利用歷史使用數據來規劃未來的容量需求。在監控過程中,資料庫工程師應該能夠預見到容量規劃會在將來什麼時候出現問題,然後採取必要的措施保持資料庫不會因為容量限制而出現中斷。
12)資料庫許可證
不同的產品有許多不同的許可證授權方式。而且,同一款產品本身又有許多不同的版本。資料庫工程師應該理解所負責的資料庫版本的不同授權模式。他們應該能夠提供指導如何通過合理購買授權來減少資料庫總擁有成本,以及如何合理利用授權方法來降低未來版本的升級成本。
13)盡可能實現自動化
資料庫工程師每天都需要執行許多的日常任務。其中一些任務需要每天執行,而另一些則每周、每月或每年執行。一名好的資料庫工程師需要理解如何高效地安排自己的時間。其中一種方法是建立工作流程,這些日常任務的自動執行。通過實現日常任務的自動化執行,資料庫工程師就可以用更多的時間去關注於資料庫環境管理中遇到的嚴重問題。
你具備的特質越多,作為資料庫工程師的你就越優秀。成為一名成功資料庫工程師的關鍵是不斷地學習與提高,努力去掌握更多關於如何管理和維護資料庫環境的知識。
8. 資料庫開發工程師的技能要求有哪些