Đây là bài viết mở đầu cho serie về Database và những điều cơ bản nhất. Các bài viết trong serie này được mình tham khảo, trích, tổng hợp lược dịch từ Blog của 1 lập trình viên nước ngoài OmarElGabry.
Hay bắt đầu đi từ điều cơ bản nhất để tìm hiểu về Database và cách để kiểm soát nó.
Tại sao cần DB?
Khi bạn có dữ liệu, bạn sẽ muốn lưu trữ nó ở đâu đó. Dữ liệu này có thể là: thông tin khách hàng, các sản phẩm, đơn đặt hàng, … ect. Chúng có thể ở các dạng như: văn bản, số, hình ảnh, files, audio, video.
Hay nghĩ tới việc bạn có danh sách khách hàng của công ty trong 1 file exel, mở file đó lên bạn sẽ thấy bảng danh sách khách hàng, với các cột tên, tuổi, địa chỉ, ..ect, và hàng trăm, ngàn,.. bản ghi các khách hàng. Bạn có thể thêm, sửa, hoặc xóa trong cái bảng này. Đó chính là 1 thứ dữ liệu đã được tổ chức tốt hơn.
Vấn đề tiếp tục sinh ra với đống dữ liệu là khi chúng nhiều lên, nhiều lên.. lên nữa. Từ việc dữ liệu bị trùng lặp do người ta lú lẫn nhập sai, rồi dữ liệu nhạy cảm thì có thể bị truy cập bởi bất cứ ai, rồi việc tìm kiếm thông tin của 1 khách hàng trong danh sách 9999 khách hàng.v..v.. Và sau đó thì thứ gọi là Database ra đời, với mục đích cao cả là để lưu trữ toàn bộ đống dữ liệu lộn xộn 1 cách có tổ chức, đảm bảo sự ổn định, bảo mật cho dữ liệu, giải quyết các vấn đề phát sinh, hỗ trợ chúng ta quản lí làm việc tốt hơn với dữ liệu.
Database là gì?
Database là một hệ thống cấu trúc để bạn cất dữ liệu của mình vào trong đó tuân theo các “luật” của chính bạn tạo ra. Nó là thứ bạn không thể nhìn thấy, nhưng bạn biết dữ liệu của bạn ở trong đó an toàn, dễ dàng truy xuất một cách tin cậy và có khoa học.
DBMS là gì ?
Các thứ database(DB) bạn nghe nhắc đến như là: Oracle, MySQL, SQL Server, MongoDB . Nếu bạn gọi chúng là DB thì không đúng rồi, sự thật chúng là “hệ quản trị cơ sở dữ liệu – Database management System(DBMS)”.
Bạn có thể hiểu DBMS là một phần mềm cài trên máy tính của bạn hoặc một máy chủ, mà bạn sử dụng nó để quản lí 1 hoặc nhiều DB.
DB lưu trữ dữ liệu và cách tổ chức (luật) các dữ liệu đó, trong khi DBMS là công cụ để bạn quản lí các dữ liệu và điều luật này. Quản lí ở có thể là thêm, xóa, sửa, truy xuất, tạo, chèn, ..v..v… Các điều luật ở đây ví dụ như: loại của dữ liệu (integer hoặc string), mối quán hệ giữ chúng.
Các loại DB và DBMS
Đúng thế, chúng còn có các loại nữa, vì cách thức lưu trữ, tổ chức, cấu trúc,… khác nhau của chúng. DB có các loại khác nhau thì tương ứng với nó cũng là các DBMS thích hợp.
Các loại DB liệt kê dưới đây:
- Relational Database (RDB)
- Hierarchical Database
- Network Database
- Object-Oriented Database
- NoSQL Database Systems
Bạn hay để ý 2 cái tô đậm, vì đó là 2 loại phổ biến nhất hiện nay. Trong serie này chúng ta sẽ tìm hiểu về Relational Database(RDB) và quản lý với Relational Database Management Systems(RDBMS) vì:
- Nó tiêu biểu nhất.
- Là tiền đề để bạn có thể tìm hiểu những cái còn lại.
RDBMS như: MySQL, SQL Server, Oracle,…
Câu chuyện tôi kể
Users – người nông dân
DBMS – quản lý kho
Database – nhà kho chứa lương thực
SQL/API – ngôn ngữ/phương thức để giao tiếp với quản ly kho
Câu chuyện bắt đầu:
Người nông dân (User) sau khi tạo ra lương thực (data) có nhu cầu lưu, tích trữ trong kho (database). Ông ta đem lương thực tới gặp người quản lý kho (DBMS), ra lệnh (SQL/API..) cho người quản lý kho (DBMS) cất (Insert) lương thực (data) của ông ta vào kho (database).
Ngoài lệnh cất (Insert), ông ta còn có thể ra các lệnh khác như lấy ra (Select), sửa (Update) hoặc xóa bỏ (Delete).
Kho lưu trữ hiện nay có 2 loại phổ biến nhất là: Relational Database và No-SQL Database.
Kho khác loại nhau thì cũng cần các Quản lý kho (DBMS) khác nhau:
Với loại kho Relational Database, có một số Quản lý kho(DBMS) phổ biến kể đến là: MSSQL, MySQL, Oracle. Đặc điểm chung của mấy quản lý kho này là hiểu chung một loại ngôn ngữ (SQL). Tức là muốn ra lệnh cho mấy ông này thì phải đi học lớp ngôn ngữ SQL thôi.
Với loại kho No-SQL Database, thì cũng có đến hàng tá các loại Quản lý kho, thậm chí còn phân loại ra thành 4 nhóm khác nhau. Đã thế còn không hiểu chung 1 ngôn ngữ, mỗi ông Quản lý kho lại tự đặt ra cho mình các phương thức riêng (API) để quản lý việc xuất nhập điều khiển kho. Cũng chính vì kho loại này không xài chung ngôn ngữ SQL như loại trên nên được gọi là (Non-SQL Database)
Tổng kết
Đây là kiến thức cơ bản đầu tiên khi học về Database, hình ảnh dưới đây mình vẽ để có 1 cái nhìn tổng quan. Hãy đọc và hiểu nó trước khi chúng ta đi vào phần tiếp.