📰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 và Đồ nội thất. Những bảng này được liên kết bằng các cột – Số phòng và 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):
| 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.
SQL | MongoDB | DynamoDB | Cassandra | Couchbase |
---|---|---|---|---|
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