資料庫的用途
資料庫是一堆結構化資料的集合,由資料庫管理系統來儲存、修改、管理、查詢。通常這些資料是結構明確的數字、文字、日期等。資料庫也可以是儲存非結構化的二進位資料,例如圖像、影像等,但通常基於效能考量不會這樣儲存。(沒有概念的話可以先當成是一個功能更豐富齊全的Excel表格)
例如在學校可以儲存老師資料、學生、課程資料、出勤點名資料等。在企業可以儲存員工資料、產品資料、客戶資料、訂單資料等。手機內也有迷你版的資料庫,用來儲存通訊錄、代辦事項等資料。而且不只人可以操控資料庫,我們也能寫程式來操控資料庫,網站系統、應用程式都可以透過SQL去資料庫存取資料。
本系列教學目標
這次計畫是寫一系列資料庫系統的教學文章,從最基本的資料庫介紹以及如何安裝,然後教學基本資料庫、資料型態、索引概念,以及簡單的新增、查詢、修改、刪除操作。後面會再提到更複雜子查詢、關聯查詢、群組查詢、正規化、交易機制、權限控管、備份與還原。看完本系列教學應該會有能力獨立規劃一個基本的會員購物網站系統的資料庫結構。
教學中提到的SQL語法我都會以MariaDB 實測一次確保沒問題,因為不會涉及到複雜的新功能所以MySQL也可以直接使用。而MS SQL之類的資料庫系統也可以看本篇教學,因為SQL有標準規範,大部分的概念與SQL語法都是通用的。
MariaDB與MySQL的差別
MariaDB與MySQL都可以免費使用,而且還是來自同一位創始人。一開始先推出的是MySQL,後來MySQL的公司被Sun Microsystems(昇陽)公司收購,Sun之後又被Oracle(甲骨文)收購。可是甲骨文本身也有在研發與販售資料庫系統,這個被一起收購的開源免費MySQL跟自己的業務可能有些衝突。
總之MySQL原始創作者可能不太滿意被收購後的開源社群,又開發了MariaDB。由於MySQL是開源的,所以分支出來的MariaDB的基本操作用起來一摸一樣,使用MySQL提供的客戶端工具、備份工具也都能拿來操作MariaDB。原本寫程式操作資料庫使用的MySQL Driver也可以直接連上MariaDB。
在本系列教學中用哪一個都可以,如果你不曉得要挑哪一個,可以選MariaDB,我平常開發使用它,這次教學也使用它。