當我們學習一項技術會感到困難,是因為還沒有理解技術的本質,
猶如身處於迷霧之中,學習的關鍵其實在於廬山真面目,當我們
能夠弄清楚了技術被創建出來的原因,技術所使用的架構及限制,
這個時候就能以更透徹的思維去學習技術的內容了!
橫看成嶺側成峰,
遠近高低各不同。
不識廬山真面目,
只緣身在此山中。
透過前幾天的學習,我們曉得程式開發人員會透過SQL操作資料庫,
但是這整個過程還有一個在管理資料庫的角色DBMS。
DBMS = Database Management System = 資料庫管理系統
想像一下,當我們在科技公司上班時,採購的機台零件已到貨,
被放入倉庫之中,正常來說,我們並沒有權限直接到倉庫拿零件。
我們需要透過輸入領料單,由公司材料課人員檢查,並且到倉庫領取
材料之後交到你手上。
這位材料課人員他必須懂得整個倉庫的存放方式與規則,收到你申請的
領料單時,他能夠知道如何去哪裡拿材料跟怎麼把東西交付到你手中,
他同時也要檢查你的領料單輸入的內容,如果有錯的話會告訴你哪裡的
資料是錯的 (口氣可能不會很好),想領料你就必須重新輸入正確的領料資訊。
這位仁兄還必須知道他什麼可以做、什麼不能做,要管理材料被保存在正確
的地方,要設置每個倉庫的使用權限、例如材料課課長有權限可以進入倉庫,
測試部門的工程師則沒有權限,然後要確保一手交單、一手交貨,確保一致性。
DBMS 就像這位材料課人員
備註 :
筆者曾經待過的科技公司在管理採購物品的單位稱為材料課。
曾經待過的部隊在管理採購物品的單位稱為收發室。如果讀者生活中發現公司有類似功能的單位與角色,請隨意
替換,並且思考一下他們的業務是不是與上述的DBMS類似?