日後想在資料庫方面發展,需要有哪些必備的技能?
我現在是一名在校生,對資料庫很感興趣,也希望日後可以在資料庫方面有所發展。但對於方向有點迷糊,有人說要掌握shell,又有人說要掌握php,所以我有幾個問題希望有前輩可以解答。
1 資料庫開發和資料庫管理有什麼異同,各自都需要什麼知識?2 如果初入這行,我找工作的方嚮應該是什麼?3 對於資料庫這一行,除了資料庫本身,還有什麼知識和技能是必不可少的?
4 有沒有什麼好書可以推薦自學。
腳踩著泥濘的路,依然前行;烈日下埋頭苦學,汗流浹背;遇到問題嘗試解決,樂此不疲。我也是這麼走過來的,希望把我所經歷的分享給題主,共勉。
首先從問題答起。
1.資料庫開發和資料庫管理有什麼異同,各自都需要什麼知識?
資料庫開發著眼於開發,資料庫管理著重於管理(貌似是廢話)。資料庫開發和資料庫管理都跟資料庫有很大的關聯,都需要很好的資料庫理論基礎。我們所說的資料庫開發往往是指資料庫之上的開發工作,而不是開發資料庫內核本身。資料庫開發歸根結底還是屬於開發工作,只是這種開發不是開發項目。
資料庫開發主要工作是寫 SQL、出報表、優化 SQL、寫存儲過程等等,需要的知識如下:資料庫理論基礎(基石)、編程基礎以及編程思想、常用的數據結構、SQL 基礎、SQL 性能優化、PL-SQL(Oracle 開發工程師)、T-SQL(MSSQL 開發工程師)、MySQL Procedure(MySQL 開發工程師)、Linux 基礎、Shell 基礎、其他腳本語言(比如 Python、Perl,了解)等。
資料庫管理,也就是我們常說的 DBA,是一個大而全、要求很高的一個職位。資料庫管理,說白了,也就是資料庫運維,保證資料庫正常運作。至於具體有哪些工作,讀者不妨搜索「DBA 職責及日常工作職責」,這裡不贅述。需要的知識如下::資料庫理論基礎(基石)、編程基礎以及編程思想、常用的數據結構、SQL 基礎、SQL 性能優化、PL-SQL(了解)、T-SQL(了解)、MySQL Procedure(了解)、Linux 基礎、Linux 高級知識、Shell 編程基礎(重要,熟練使用)、Python 基礎(可以熟練使用)、其他腳本語言(比如 Ruby、Perl、PHP,了解)、計算機網路基礎、網路硬體以及伺服器硬體基礎、常用 Linux 服務、伺服器以及資料庫安全知識、資料庫備份與恢復(重要)、複製技術(重要)、資料庫性能監控以及優化、常見故障修復、存儲等,最後,還有一點,文檔撰寫能力。當然,不同的資料庫有差異,我只列一個通用的知識。
看到需要了解或者掌握那麼多知識,不要懼怕,水滴石穿,非一日之功,這些都是不斷精進和磨練的,我也在這條路上。
2.如果初入這行,我找工作的方嚮應該是什麼?
找工作的方向自然跟資料庫沾邊,但坦白的說,畢業就找到 DBA 是非常困難的,除非題主特別優秀。3.對於資料庫這一行,除了資料庫本身,還有什麼知識和技能是必不可少的?
我想這個問題我已經在第一個問題當作做了簡單的說明,如果還想深入探討,請評論或者私信。4.有沒有什麼好書可以推薦自學。
自己找到真正想要的、想學的,才是最重要的,不要做伸手黨。如果自己真得想往這個方向發展,相信你會在學習的過程中找到的。5.寫在後面
不要被 DBA 或者 資料庫開發工程師的光環所迷惑,真正做到這一行才知道有多苦逼。沒有強大的內心,沒有強壯的身體,不能忍得住誘惑,不能耐得住寂寞,還是不要從事這個職位了。學習的過程中,多向前輩學習,中國這個資料庫圈子也就那麼大。什麼責任心啊,道德感,細緻啊,就不再提了,我想這是做人做事的基礎吧。題主還可以搜下「DBA生存之四大守則」,拿來讀讀。Good Luck!
Robin2015.02.05 於廣州從sqlite開始學比較好,比較輕量。。如果是純新手的話。。
簡單說下我的認識。資料庫開發,是指基於資料庫的數據,根據業務定製上層應用,開發函數以及存儲過程等;而資料庫管理,多指DBA主要是管理資料庫,包括資料庫設計,數據存儲管理,許可權管理,日誌管理,異常處理以及其他一些的日常維護。通常,二者相互幫助,共同設計維護一個利於開發,易於維護 ,存儲合理的資料庫!資料庫管理是個繁雜的工作,需要時間和經驗的積累沉澱!
推薦閱讀:
※可否對比一下 TiDB 與 AWS Aurora ?
※資料庫出生日期用什麼類型比較好?datetime 或 varchar ?
※大家如何看待類似於達夢資料庫這樣的號稱具有自主知識產權的國產軟體?
※MySQL插入「 」字時報錯,請問是什麼原因?
※CAP理論和NoSQL的疑問?
TAG:資料庫 |