Facebook Pixel

Database (Cơ sở dữ liệu) là gì? Những loại Database phổ biến nhất hiện nay

01 Sep, 2024

Database (cơ sở dữ liệu) là một tập hợp các đơn vị lưu trữ thông tin có liên quan với nhau, được quản lý bởi một hệ quản trị cơ sở dữ liệu (DBMS)

Database (Cơ sở dữ liệu) là gì?  Những loại Database phổ biến nhất hiện nay

Mục Lục

Cơ sở dữ liệu ra đời vào những năm 1960 như một giải pháp cho vấn đề lưu trữ và quản lý khối lượng dữ liệu ngày càng lớn và phức tạp trong các hệ thống máy tính. Trước khi có cơ sở dữ liệu, thông tin được lưu trữ trong các tập tin riêng lẻ, không có tổ chức hệ thống, dẫn đến việc quản lý dữ liệu rất khó khăn, dễ xảy ra lỗi và tốn kém thời gian.

1. Database là gì?

Database (cơ sở dữ liệu) là một tập hợp các đơn vị lưu trữ thông tin có liên quan với nhau, được quản lý bởi một hệ quản trị cơ sở dữ liệu - Database Management System (DBMS).

Hãy tưởng tượng một công ty có hàng trăm nhân viên và họ cần lưu trữ thông tin về mỗi nhân viên như tên, địa chỉ, số điện thoại, vị trí công việc, và mức lương. Trước khi có cơ sở dữ liệu, công ty này có thể lưu thông tin của mỗi nhân viên trong một tập tin riêng lẻ như text files (txt) hoặc spreadsheet files (csv). Điều này dẫn đến nhiều vấn đề:

  • Trùng lặp dữ liệu: Nếu một nhân viên thay đổi số điện thoại, bạn phải tìm và cập nhật số này trong tất cả các tập tin có chứa thông tin về nhân viên đó. Điều này không chỉ mất thời gian mà còn dễ dẫn đến sai sót nếu bỏ sót.
  • Khó truy vấn dữ liệu: Giả sử bạn muốn tìm tất cả nhân viên trong một phòng ban cụ thể, bạn phải mở từng tập tin để kiểm tra thông tin, điều này rất bất tiện và tốn thời gian.
  • Thiếu tính toàn vẹn: Nếu thông tin về một nhân viên được cập nhật không nhất quán giữa các tập tin, công ty có thể gặp rủi ro khi đưa ra các quyết định dựa trên dữ liệu sai lệch.

Cơ sở dữ liệu giải quyết những vấn đề này bằng cách lưu trữ tất cả thông tin có liên quan trong một hệ thống tập trung. Ví dụ, thay vì lưu trữ thông tin nhân viên trong các tập tin riêng lẻ, tất cả dữ liệu sẽ được lưu trong một Database.

Khi muốn thay đổi số điện thoại của một nhân viên, bạn chỉ cần cập nhật một nơi duy nhất, và mọi truy vấn sau này sẽ tự động phản ánh sự thay đổi đó. Điều này giúp loại bỏ trùng lặp, đảm bảo tính toàn vẹn của dữ liệu và cho phép truy vấn thông tin một cách dễ dàng và nhanh chóng.

2. Các loại Cơ sở dữ liệu phổ biến

2.1 Relational Database (Cơ sở dữ liệu quan hệ)

RDBMS (Hệ quản trị cơ sở dữ liệu quan hệ) được tạo ra để cung cấp một giải pháp lưu trữ dữ liệu nhất quán và đáng tin cậy, đảm bảo rằng dữ liệu luôn ở trạng thái hợp lệ và an toàn, ngay cả khi có sự cố xảy ra.

2.1.1 Relational Database là gì?

Cơ sở dữ liệu quan hệ (Relational Database) là một hệ thống lưu trữ dữ liệu có cấu trúc, trong đó dữ liệu được tổ chức thành các bảng dưới dạng hàng (rows) và cột (columns). Mỗi bảng có một mã định danh duy nhất (primary key) và có thể liên kết với các bảng khác thông qua khóa ngoại (foreign key).

Primary Key là  mã định danh duy nhất cho mỗi hàng, đây là một cột hoặc một tập hợp các cột đảm bảo rằng mỗi hàng trong bảng là duy nhất. Primary key này sau đó được sử dụng để tạo chỉ mục (index) cho bảng, giúp truy cập và tìm kiếm dữ liệu nhanh chóng hơn. Ví dụ về cột được chọn làm Primary Key: số điện thoại, email, mã nhân viên, mã sản phẩm, ...

Foreign Key (khoá ngoại) là một cột (hoặc một tập hợp các cột) trong một bảng, dùng để tham chiếu đến một hàng cụ thể trong một bảng khác. Nó giúp tạo ra mối quan hệ giữa các bảng trong cơ sở dữ liệu.

2.1.2 Đặc điểm của Cơ sở dữ liệu quan hệ

  • Dữ liệu được chuẩn hoá (normalization):  Chuẩn hoá là quá trình điều chỉnh các bảng trong cơ sở dữ liệu để đảm bảo chúng tuân thủ các quy tắc nhằm loại bỏ sự dư thừa và cải thiện tính nhất quán của cơ sở dữ liệu. Có bảy dạng chuẩn (normal forms) được tổ chức theo cấu trúc phân cấp, từ đơn giản đến phức tạp.
  • Transaction tuân thủ ACID: ACID là một tập hợp các thuộc tính giúp đảm bảo các giao dịch trong cơ sở dữ liệu quan hệ được thực hiện một cách an toàn và đáng tin cậy, đặc biệt là trong các hệ thống yêu cầu mức độ tin cậy cao như ngân hàng và các hệ thống tài chính khác.
  • Dữ liệu được truy xuất bằng SQL: SQL (Structured Query Language) là một ngôn ngữ truy vấn được sử dụng để tương tác và thao tác với cơ sở dữ liệu. Bạn có thể sử dụng SQL để thực hiện các hành động như truy vấn dữ liệu, chèn dữ liệu mới, cập nhật dữ liệu, hoặc xóa dữ liệu trong cơ sở dữ liệu.

2.1.3 Các Cơ sở dữ liệu quan hệ phổ biến

  • MySQL: Là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở rất phổ biến có hiệu suất cao, ổn định, và dễ sử dụng, được phát triển và duy trì bởi Oracle Corporation. MySQL thường được sử dụng cho các ứng dụng web như WordPress, Joomla, và Drupal, ...
  • PostgreSQL: Là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở tiên tiến, được biết đến với khả năng tuân thủ chặc chẽ các tiêu chuẩn SQL. PostgreSQL hỗ trợ nhiều loại chỉ mục (indexes), khóa ngoại (foreign keys), triggers, và các loại dữ liệu tùy biến, giúp nó trở thành lựa chọn phổ biến trong các ứng dụng yêu cầu tính toàn vẹn dữ liệu cao, từ doanh nghiệp đến nghiên cứu.
  • Microsoft SQL Server: Là một hệ quản trị cơ sở dữ liệu quan hệ do Microsoft phát triển, phổ biến trong các doanh nghiệp sử dụng các sản phẩm Microsoft khác như Azure và .NET. SQL Server cung cấp các công cụ phân tích dữ liệu, báo cáo và tích hợp dễ dàng với các hệ thống khác của Microsoft.
  • Oracle Database: Là một hệ quản trị cơ sở dữ liệu quan hệ được sử dụng rộng rãi trong các doanh nghiệp lớn và các hệ thống yêu cầu cao về hiệu suất và bảo mật. Oracle hỗ trợ các tính năng tiên tiến như phân vùng dữ liệu, quản lý đa người dùng, và các giao dịch phức tạp, đặc biệt hữu ích trong các ngành như tài chính và ngân hàng.

2.2 NoSQL Database

NoSQL được thiết kế với mục tiêu khác biệt với RDBMS truyền thống, thay vì tuân theo các nguyên tắc của RDBMS, NoSQL phá vỡ những nguyên tắc này và tạo ra các nguyên tắc mới để phù hợp với những nhu cầu khác nhau trong việc lưu trữ và quản lý dữ liệu.

2.2.1 NoSQL Database là gì?

NoSQL Database là một loại hệ quản trị cơ sở dữ liệu được thiết kế để xử lý các dữ liệu phi cấu trúc, bán cấu trúc, hoặc không theo mô hình bảng truyền thống như trong cơ sở dữ liệu quan hệ như hình ảnh, âm thanh, video, ...

NoSQL không phải là viết tắt của No SQL (không có SQL) như nhiều người hiểu nhầm, mà thực chất là viết tắt của Not Only SQL (không chỉ SQL). Điều này có nghĩa là các cơ sở dữ liệu NoSQL không hoàn toàn loại bỏ SQL, mà thay vào đó cung cấp các giải pháp lưu trữ và truy vấn dữ liệu khác với cơ sở dữ liệu quan hệ truyền thống (RDBMS).

Các cơ sở dữ liệu NoSQL thường không tuân theo nguyên tắc ACID một cách nghiêm ngặt mà thay vào đó sử dụng các nguyên tắc như BASE (Basically Available, Soft state, Eventually consistent) để đạt được hiệu suất và tính khả dụng cao trong môi trường phân tán.

2.2.2 Đặc điểm của Cơ sở dữ liệu NoSQL

  • Tuân thủ nguyên tắc BASE: BASE là phiên bản mềm dẻo hơn của các nguyên tắc ACID, được thiết kế để phù hợp với tính linh hoạt của NoSQL. NoSQL chấp nhận việc dữ liệu có thể không nhất quán ngay lập tức, nhưng sẽ trở nên nhất quán theo thời gian.
  • Liên hệ chắc chẽ với nguyên lý CAP: NoSQL áp dụng nguyên lý CAP (Consistency, Availability, Partition tolerance) để đạt được sự cân bằng giữa tính nhất quán, tính sẵn sàng, và khả năng chịu lỗi phân vùng. Tùy thuộc vào yêu cầu cụ thể của ứng dụng, các hệ thống NoSQL có thể được cấu hình để ưu tiên một hoặc hai yếu tố trong CAP, chấp nhận sự đánh đổi của yếu tố còn lại.

2.2.3 Các loại Cơ sở dữ liệu NoSQL phổ biến

  1. Document type database (Cơ sở dữ liệu dạng tài liệu): Đây là một loại cơ sở dữ liệu NoSQL lưu trữ dữ liệu dưới dạng các tài liệu, thường là các định dạng như JSON (JavaScript Object Notation), XML (eXtensible Markup Language), hoặc BSON (Binary JSON). Các database phổ biến thuộc loại này bao gồm: MongoDB, CouchDB, Amazon DynamoDB, RethinkDB.
  2. Key-value type database (Cơ sở dữ liệu dạng key-value): Đây là loại cơ sở dữ liệu đơn giản nhất trong các loại cơ sở dữ liệu NoSQL. Nó hoạt động đúng như tên gọi: lưu trữ giá trị (value) dưới dạng một cặp khóa-giá trị (key-value). Mỗi key là một chỉ mục và value là giá trị tương ứng với khóa đó. Các database phổ biến thuộc loại này bao gồm: Redis, Riak KV, Berkeley DB.
  3. Column-oriented database (Cơ sở dữ liệu theo cột): Đây là một loại cơ sở dữ liệu NoSQL lưu trữ dữ liệu theo cột thay vì theo hàng, khác biệt so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), nơi dữ liệu được lưu trữ và đọc theo hàng. Các database phổ biến thuộc loại này bao gồm: HBase, Cassandra, Google Bigtable.
  4. Graph type database (Cơ sở dữ liệu dạng đồ thị): Đây là loại cơ sở dữ liệu NoSQL được tối ưu hóa cho việc lưu trữ và truy vấn dữ liệu có cấu trúc đồ thị. Trong cơ sở dữ liệu dạng đồ thị, dữ liệu được biểu diễn dưới dạng các nút (nodes)mối quan hệ (relationships) giữa các nút. Các database phổ biến thuộc loại này bao gồm: Neo4j, Amazon Neptune, OrientDB.

3. Kết luận

Cơ sở dữ liệu (Database) là một thành phần cốt lõi trong hệ thống thông tin, đóng vai trò lưu trữ, quản lý và truy xuất dữ liệu một cách có tổ chức và hiệu quả. Sự phát triển của công nghệ đã dẫn đến sự ra đời và phát triển của nhiều loại cơ sở dữ liệu khác nhau, mỗi loại có những đặc điểm và ưu điểm riêng để phục vụ cho các mục đích sử dụng cụ thể.

Việc lựa chọn loại cơ sở dữ liệu phù hợp không chỉ phụ thuộc vào yêu cầu kỹ thuật mà còn vào quy mô và mục tiêu của ứng dụng. Hiểu rõ đặc điểm và ưu nhược điểm của từng loại cơ sở dữ liệu sẽ giúp bạn đưa ra quyết định chính xác, tối ưu hóa hiệu suất và tính khả dụng của hệ thống trong dài hạn.

Các bài viết liên quan tại Blog 200Lab:

Bài viết liên quan

Lập trình backend expressjs

xây dựng hệ thống microservices
  • Kiến trúc Hexagonal và ứng dụngal font-
  • TypeScript: OOP và nguyên lý SOLIDal font-
  • Event-Driven Architecture, Queue & PubSubal font-
  • Basic scalable System Designal font-

Đăng ký nhận thông báo

Đừng bỏ lỡ những bài viết thú vị từ 200Lab