Bài này chúng ta sẽ tìm hiểu về Cơ sở dữ liệu phi quan hệ được dùng trong AWS, trước khi chúng ta bắt đầu sử dụng AWS một cách dễ dàng hơn.
Nội dung chính
1. Cơ sở dữ liệu phi quan hệ là gì?
- Cơ sở dữ liệu phi quan hệ là cơ sở dữ liệu không tuân theo mô hình cơ sở dữ liệu quan hệ do hệ quản trị cơ sở dữ liệu quan hệ cung cấp.
- Đó là cơ sở dữ liệu NoSQL, chúng ta đã thấy sự tăng trưởng ổn định trong Cơ sở dữ liệu không quan hệ với sự gia tăng các ứng dụng dữ liệu lớn.
- Chúng ta có Cơ sở dữ liệu phi quan hệ. Bên trong cơ sở dữ liệu, chúng ta có một bộ sưu tập. Bên trong một bộ sưu tập, chúng ta có một tài liệu và bên trong tài liệu, chúng ta có các cặp khóa-giá trị. Nếu chúng ta nói theo nghĩa quan hệ thì Bộ sưu tập là một bảng, tài liệu là một hàng và hàng bao gồm các cặp khóa-giá trị.
2. Cơ sở dữ liệu không quan hệ hoạt động như thế nào?
Mô hình cơ sở dữ liệu không quan hệ sử dụng nhiều mô hình dữ liệu khác nhau như khóa-giá trị, tài liệu, Đồ thị, trong bộ nhớ và tìm kiếm.
Hãy hiểu qua một ví dụ.
- Trong cơ sở dữ liệu quan hệ, một bản ghi sổ bao gồm các bảng riêng biệt và mối quan hệ giữa các bảng được xác định bởi các ràng buộc chính và ngoại. Ví dụ: bảng Sách có ba cột, tức là Id sách, Tên sách và Số ấn bản, Bảng tác giả có ba cột, tức là Id tác giả , Tên tác giả và Id sách . Mô hình mối quan hệ được thiết kế để cơ sở dữ liệu có thể thực thi tính toàn vẹn tham chiếu giữa các bảng để giảm dư thừa.
- Trong cơ sở dữ liệu NonRelational, các bản ghi được lưu trữ dưới dạng định dạng json. Mỗi mục sách như Id sách, Tên sách, Số ấn bản, Id tác giả, Tên tác giả được lưu trữ dưới dạng các thuộc tính trong tài liệu.
JSON / NoSQL
{
"Id sách": "1",
"Tên sách": "Máy tính",
"Số ấn bản": "121",
"Id tác giả": "23",
"Tên tác giả": "Ankita"
}
3. Tại sao nên sử dụng cơ sở dữ liệu không quan hệ
Cơ sở dữ liệu không quan hệ được sử dụng vì các tính năng sau:
- Tính linh hoạt: Nó có một mô hình dữ liệu rất linh hoạt giúp phát triển nhanh hơn và lặp đi lặp lại. Mô hình linh hoạt của cơ sở dữ liệu không quan hệ là một lý tưởng cho dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc.
- Khả năng mở rộng: Cơ sở dữ liệu không quan hệ cung cấp khả năng mở rộng quy mô bằng cách sử dụng các cụm phần cứng phân tán thay vì mở rộng quy mô bằng cách thêm các máy chủ đắt tiền.
- Hiệu suất cao: Cơ sở dữ liệu không quan hệ sử dụng một số mô hình dữ liệu cụ thể như khóa-giá trị, tài liệu, v.v. cung cấp hiệu suất cao hơn cơ sở dữ liệu quan hệ.
- Chức năng cao: Cơ sở dữ liệu không quan hệ cung cấp các API và kiểu dữ liệu chức năng cao cho các mô hình dữ liệu tương ứng của chúng.
4. Các kiểu cơ sở dữ liệu không quan hệ
- Key value
- Tài liệu(Document)
- Đồ thị(Graph)
- Trong bộ nhớ(In-memory)
- Tìm kiếm(Search)
4.1 Key value
- Cơ sở dữ liệu khóa-giá trị là một cơ sở dữ liệu không quan hệ lưu trữ dữ liệu ở dạng giá trị vs khóa.
- Cơ sở dữ liệu khóa-giá trị cung cấp khả năng mở rộng theo chiều ngang và có thể phân vùng cao mà các loại cơ sở dữ liệu khác không thể đạt được.
- Cơ sở dữ liệu khóa-giá trị được sử dụng bởi những doanh nghiệp muốn lưu trữ khối lượng lớn dữ liệu mà không có bất kỳ chi phí hiệu suất nào.
- Một khóa trong cặp khóa-giá trị phải là duy nhất và nó cho phép bạn truy cập vào giá trị được liên kết với khóa.
- Redis, Riak và Oracle NoSQL là những ví dụ về cơ sở dữ liệu khóa-giá trị.
- Kho khóa-giá trị là một bảng Big-Hash gồm các khóa và giá trị.
- Khóa được tạo tự động trong khi giá trị có thể là một chuỗi, JSON, BLOB, v.v.
- Giá trị khóa có một bảng băm bao gồm một khóa và một con trỏ trỏ đến một dữ liệu cụ thể.
- Bảng băm là một nhóm bao gồm một nhóm khóa logic.
Hãy xem xét ví dụ đơn giản trong đó khóa là id sinh viên và giá trị được liên kết với khóa là tên của sinh viên.
Khóa | Giá trị |
1 | Akshita |
2 | Ankita |
3 | Yesha |
Nhược điểm của cơ sở dữ liệu Key-Value:
- Nó không cung cấp các khả năng mà hệ thống cơ sở dữ liệu truyền thống cung cấp như tính nhất quán khi nhiều giao dịch được thực hiện đồng thời. Các khả năng như vậy được cung cấp bởi chính ứng dụng.
- Khi khối lượng dữ liệu tăng lên, thì việc duy trì một khóa duy nhất trở thành một nhiệm vụ khó khăn.
4.2 Tài liệu(Document)
- Cơ sở dữ liệu tài liệu là cơ sở dữ liệu không quan hệ được sử dụng để lưu trữ dữ liệu có cấu trúc dưới dạng tài liệu.
- Cơ sở dữ liệu tài liệu là bắt buộc đối với các nhà phát triển vì dữ liệu trong cấp ứng dụng được biểu thị dưới dạng định dạng JSON.
- Trong cơ sở dữ liệu Tài liệu, một tài liệu có thể có cấu trúc dữ liệu giống nhau hoặc khác.
- Các tài liệu được nhóm thành các tập hợp hoạt động tương tự như một bảng trong cơ sở dữ liệu quan hệ.
- Cơ sở dữ liệu tài liệu rất phổ biến vì nó cho phép bạn duy trì dữ liệu trong cơ sở dữ liệu bằng cách sử dụng cùng một mô hình mà bạn sử dụng trong code ứng dụng của mình.
- Apache CouchDB, MongoDB là những ví dụ về cơ sở dữ liệu Tài liệu.
4.3 Đồ thị(Graph)
- Cơ sở dữ liệu đồ thị là cơ sở dữ liệu mạng được biểu diễn bằng các cạnh và nút để lưu trữ dữ liệu.
- Một Đồ thị có thể dễ dàng chuyển đổi từ mô hình này sang mô hình khác bằng cách sử dụng cơ sở dữ liệu Đồ thị.
- Các nút có một số mối quan hệ, được biểu thị bằng các cạnh giữa các nút.
- Một số thuộc tính xác định được liên kết với cả nút và cạnh.
- Biểu đồ chứa các nút và các cạnh. Các nút được sử dụng để lưu trữ các thực thể trong khi các cạnh được sử dụng để lưu trữ mối quan hệ giữa các cạnh.
- Một cạnh có nút bắt đầu, nút kết thúc, kiểu và hướng. Nó cũng mô tả mối quan hệ cha mẹ – con cái.
- Việc duyệt các liên kết trong cơ sở dữ liệu Đồ thị rất nhanh vì mối quan hệ giữa các nút không được tính toán tại thời điểm truy vấn nhưng nó vẫn tồn tại trong cơ sở dữ liệu.
4.4 Trong bộ nhớ(In-memory)
- Cơ sở dữ liệu trong bộ nhớ là một loại cơ sở dữ liệu không quan hệ phụ thuộc vào bộ nhớ để lưu trữ dữ liệu hơn là lưu trữ dữ liệu trên đĩa hoặc SSD.
- Nó giảm thiểu thời gian phản hồi bằng cách loại bỏ nhu cầu truy cập đĩa.
- Do dữ liệu được lưu trữ và quản lý trong bộ nhớ chính, do đó nó có nguy cơ bị mất dữ liệu khi máy chủ bị lỗi.
- Cơ sở dữ liệu trong bộ nhớ là lý tưởng cho các ứng dụng yêu cầu thời gian phản hồi micro giây.
- Các trường hợp sử dụng của Cơ sở dữ liệu trong bộ nhớ là Đặt giá thầu thời gian thực, Bảng xếp hạng trò chơi và bộ nhớ đệm.
4.5 Tìm kiếm(Search)
- Cơ sở dữ liệu tìm kiếm là một cơ sở dữ liệu không quan hệ được sử dụng để tìm kiếm nội dung dữ liệu.
- Nó sử dụng các chỉ mục để phân loại các đặc điểm giống nhau giữa các dữ liệu và tạo điều kiện cho khả năng tìm kiếm.
- Nó chủ yếu được sử dụng với dữ liệu có thể là dữ liệu dài, bán cấu trúc hoặc dữ liệu phi cấu trúc.
- Nó cung cấp một số phương pháp chuyên biệt như tìm kiếm toàn văn, biểu thức tìm kiếm phức tạp và xếp hạng kết quả tìm kiếm.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Tài liệu từ cafedev:
- Full series tự học Amazon Web Services(AWS)từ cơ bản tới nâng cao tại đây nha.
- Ebook về AWS tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!