📰Các loại cơ sở dữ liệu

Cơ sở dữ liệu quan hệ (Relational Database) và Non-relational Database.

Cơ sở dữ liệu quan hệ (Relational Database) và Non-relational Database.

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

Vào những năm 1980, cơ sở dữ liệu quan hệ xuất hiện như một mô hình doanh nghiệp phổ biến nhờ có năng suất, tính linh hoạt và khả năng tương thích với phần cứng nhanh hơn. Cơ sở dữ liệu quan hệ tổ chức các bản ghi thành một số bảng thay vì danh sách liên kết.

Trong mô hình cơ sở dữ liệu quan hệ, mỗi danh mục sẽ có một bảng, trong đó các thuộc tính của danh mục ở dạng cột và bản ghi dữ liệu ở dạng hàng. Ví dụ: bạn có thể lập mô hình cửa hàng bán lẻ đồ nội thất dưới dạng một tập hợp các bảng – PhòngĐồ nội thất. Những bảng này được liên kết bằng các cột – Số phòng Tên đồ nội thất. Cả hai cột này còn được gọi là khóa chính.

Số phòng

Tên phòng

1

Phòng ngủ

2

Phòng trẻ em

Tên đồ nội thất

Màu

Giường

Màu nâu

Tủ đồ

Màu trắng

Bàn đầu giường

Màu đen

Số phòng

Tên đồ nội thất

1

Giường

1

Tủ đồ

2

Tủ đồ

Non-relational Database

SQL là ngôn ngữ truy vấn dùng để truy xuất, truy cập và chỉnh sửa dữ liệu trong cơ sở dữ liệu quan hệ. Ngược lại, NoSQL đại diện cho một cơ chế cơ sở dữ liệu không sử dụng các mối quan hệ dạng bảng trong quá trình lập mô hình dữ liệu. Cơ sở dữ liệu NoSQL được tạo ra vào đầu thế kỷ 21 khi các kiến trúc cơ sở dữ liệu phân tán và điện toán cụm xuất hiện. Kiến trúc phân tán lưu trữ một cơ sở dữ liệu lớn trên nhiều thiết bị lưu trữ cơ sở. Cách sắp xếp này được gọi là điều chỉnh quy mô theo chiều ngang. Cơ chế phần mềm được sử dụng trong NoSQL có tốc độ cao, không yêu cầu lược đồ bảng biểu cố định, sở hữu khả năng lưu trữ dữ liệu được nhóm lại hoặc trùng lặp cũng như có thể điều chỉnh quy mô theo chiều ngang.

So sánh

Cơ sở dữ liệu quan hệ

Cơ sở dữ liệu NoSQL

Khối lượng công việc tối ưu

Cơ sở dữ liệu quan hệ được thiết kế dành cho các ứng dụng xử lý giao dịch trực tuyến (OLTP) trong giao dịch có độ ổn định cao và thích hợp để xử lí phân tích trực tuyến (OLAP).

Các cơ sở dữ liệu NoSQL được thiết kế cho các mẫu truy cập dữ liệu, bao gồm các ứng dụng có độ trễ thấp. Cơ sở dữ liệu tìm kiếm NoSQL được thiết kế để phục vụ phân tích dữ liệu có cấu trúc chưa hoàn chỉnh.

Mô hình dữ liệu

Mô hình quan hệ chuẩn hóa dữ liệu vào bảng được hình thành từ hàng và cột. Sơ đồ quy định rõ ràng bảng, hàng, cột, chỉ mục, mối quan hệ giữa các bảng và các thành tố cơ sở dữ liệu khác. Cơ sở dữ liệu sẽ thực thi tính toàn vẹn tham chiếu trong mối quan hệ giữa các bảng.

Các cơ sở dữ liệu NoSQL cung cấp nhiều mô hình dữ liệu khác nhau như khóa-giá trị, tài liệu và biểu đồ, được tối ưu hóa để đạt hiệu năng và quy mô tối ưu.

Thuộc tính ACID

Cơ sở dữ liệu quan hệ có các thuộc tính mang tính nguyên tố, nhất quán, tách biệt và bền vững (ACID):

  • Tính nguyên tố đòi hỏi giao dịch phải được thực thi đầy đủ hoặc hoàn toàn không thực hiện.

  • Tính nhất quán đòi hỏi rằng khi giao dịch được thực hiện, dữ liệu phải nhất quán với sơ đồ cơ sở dữ liệu.

  • Tính tách biệt đòi hỏi rằng các giao dịch diễn ra đồng thời phải được thực thi tách biệt với nhau.

  • Tính bền vững đòi hỏi phải có khả năng phục hồi từ tình trạng hư hỏng hệ thống hoặc mất điện đột ngột về trạng thái đã biết cuối cùng.

Cơ sở dữ liệu NoSQL thường phải đánh đổi bằng cách nới lỏng một số thuộc tính ACID này của cơ sở dữ liệu quan hệ để có mô hình dữ liệu linh hoạt hơn có khả năng thay đổi quy mô theo chiều ngang. Việc này biến các cơ sở dữ liệu NoSQL thành lựa chọn tuyệt vời cho các trường hợp sử dụng cần thông lượng cao, độ trễ thấp cần thay đổi quy mô theo chiều ngang vượt qua giới hạn của một phiên bản duy nhất.

Hiệu năng

Hiệu năng thường phụ thuộc vào hệ thống con của ổ đĩa. Thông thường, việc tối ưu hóa các truy vấn, chỉ mục và cấu trúc bảng bắt buộc phải được thực hiện để đạt mức hiệu năng tối đa.

Hiệu năng thường được xem là chức năng của kích cỡ cụm phần cứng ngầm, độ trễ mạng và ứng dụng đưa ra lệnh gọi.

Quy mô

Cơ sở dữ liệu quan hệ thường tăng quy mô bằng cách tăng năng lực điện toán của phần cứng hoặc tăng quy mô bằng cách thêm bản sao của khối lượng công việc chỉ đọc.

Cơ sở dữ liệu NoSQL thường có tính phân mảnh cao do các mẫu truy cập khóa-giá trị có khả năng tăng quy mô bằng cách sử dụng kiến trúc được phân phối để tăng thông lượng, đem đến hiệu năng ổn định với quy mô gần như không giới hạn.

API

Yêu cầu lưu trữ và truy xuất dữ liệu được truyền đạt bằng cách sử dụng các truy vấn nhất quán với ngôn ngữ truy vấn có cấu trúc (SQL). Các truy vấn này được phân tích và thực thi bởi cơ sở dữ liệu quan hệ.

API trên cơ sở đối tượng cho phép các nhà phát triển ứng dụng dễ dàng lưu trữ và truy xuất cấu trúc dữ liệu trong bộ nhớ. Khóa phân mảnh tìm kiếm các cặp khóa-giá trị, tập hợp cột hoặc văn bản có cấu trúc chưa hoàn chỉnh có chứa đối tượng và thuộc tính của ứng dụng được xếp theo chuỗi.

Thuật ngữ SQL so với NoSQL

Bảng sau sẽ so sánh thuật ngữ được sử dụng trong cơ sở dữ liệu NoSQL chọn lọc với thuật ngữ được sử dụng trong cơ sở dữ liệu SQL.

SQLMongoDBDynamoDBCassandraCouchbase

Bảng

Bộ sưu tập

Bảng

Bảng

Bộ chứa dữ liệu

Hàng

Tài liệu

Mục

Hàng

Tài liệu

Cột

Trường

Thuộc tính

Cột

Trường

Khóa chính

Id đối tượng

Khóa chính

Khóa chính

ID văn bản

Chỉ mục

Chỉ mục

Chỉ mục thứ cấp

Chỉ mục

Chỉ mục

Chế độ xem

Chế độ xem

Chỉ mục thứ cấp toàn cục

Chế độ xem cụ thể hóa

Chế độ xem

Bảng hoặc đối tượng lồng nhau

Văn bản nhúng

Bản đồ

Bản đồ

Bản đồ

Mảng

Mảng

Danh sách

Danh sách

Danh sách

Last updated