每年的鐵人都是在最忙的時候舉辦的,今年鼓起勇氣再忙也要來寫。希望可以把30天寫好寫滿!
廢話不多說讓我們直接切入正題
TL;DR 本系列文章適合大概知道基本的資料結構,並且有些許的程式編輯經驗,但是還沒有認真學過資料庫的朋友。
這個系列的技術文章將會用主題式來深入淺出介紹資料庫。參考資料主要會使用學校裡大學部學生的入門資料庫課程,配合使用資料庫的聖經 Database Systems: The Complete Book 2nd Edition。但既然是部落格形式的文章,內容會盡可能的包含範例,所以會犧牲一些內容來換去多一點的實作。
另外,這個系列的文章不會介紹如何將終端應用程式連接上資料庫。
大部分的人聽到資料庫反射動作就是:「哦! 大數據嗎? 感覺可以存很多資料。好厲害喔!」
但是這裡我們講的資料庫指的是資料庫管理系統 (Database Management System, DBMS)。有發現加上了管理系統其實表示兩件事情:
(1) 他是一個系統: DBMS 不只是儲存資料,更勝於操作、並且管理這些儲存的資料。
(2) 既然可以管理: 代表資料是「有結構」的被儲存的,而這些不同的「結構」就成了不同類型的資料庫系統。
所以當讀者在閱讀這個系列文章的時候,可以從「管理資料」的角度去思考和吸收,並儘量避免去想如何「應用」這些儲存的資料。不是應用資料不重要,而是這不是 DBMS 主要的功能。此外,為了讓編輯和閱讀起來比較輕鬆,這個系列文章中,資料庫管理系統、DBMS、和資料庫三個名詞都指同一個東西。文章中會盡可能用教育部的學術名詞資訊網的中文用語,但是如果我找不到就會自行翻譯。
一個好的資料庫系統必須要確定他在每個操作 (註: 這裡講的是transaction, 之後會在討論到) 的過程中,都是正確而且可靠的。所以資訊科學家認為DBMS需要具備四個特性,我們簡稱叫做 ACID:
有沒有發現上面提到的有三個在討論操作,只有一個講述資料庫的內容結構。在30天的後段我們會更仔細的討論資料庫運作的原理。這裡想要讓讀者看的是資料庫重點在它是操作資料的工具,而非資料本體的應用。
與資料庫共舞總共分為五個大章節:
第一章 關聯式資料庫
這個章節主要會筆記 結構化查詢語言 (Structured Query Language, SQL) 的使用語法以及在自己的電腦上架起MySQL。
第二章 非關聯式資料庫
這個章節會筆記 什麼是非關聯式資料庫,並且介紹 MongoDB 的語法並操作MongoDB Atlas。
第三章 圖資料庫
同屬非關聯式資料庫的一種,這個章節介紹 Neo4j 的語法。
第四章 資料庫設計
第四章我們回到關聯式資料庫,但是這次我們會更深入討論如果身為資料庫管理員是如何設計並建構資料庫。
第五章 資料庫運作原理
最後我們會介紹關聯式資料庫一些深入的運作原理。
咦, 這本 Fundamentals of Database Systems 不才是聖經嗎 XD
30天 GO~~