ArangoDB - Mô hình dữ liệu và mô hình hóa
Trong chương này, chúng ta sẽ tập trung vào các chủ đề sau:
- Tương tác cơ sở dữ liệu
- Mô hình dữ liệu
- Phục hồi dữ liệu
ArangoDB hỗ trợ mô hình dữ liệu dựa trên tài liệu cũng như mô hình dữ liệu dựa trên đồ thị. Đầu tiên chúng ta hãy mô tả mô hình dữ liệu dựa trên tài liệu.
Các tài liệu của ArangoDB gần giống với định dạng JSON. Không hoặc nhiều thuộc tính được chứa trong một tài liệu và một giá trị được đính kèm với mỗi thuộc tính. Giá trị thuộc kiểu nguyên tử, chẳng hạn như số, Boolean hoặc null, chuỗi ký tự hoặc kiểu dữ liệu phức hợp, chẳng hạn như tài liệu / đối tượng được nhúng hoặc một mảng. Mảng hoặc đối tượng con có thể bao gồm các kiểu dữ liệu này, điều này ngụ ý rằng một tài liệu duy nhất có thể đại diện cho các cấu trúc dữ liệu không tầm thường.
Hơn nữa trong hệ thống phân cấp, các tài liệu được sắp xếp thành các bộ sưu tập, có thể không chứa tài liệu nào (trên lý thuyết) hoặc nhiều hơn một tài liệu. Người ta có thể so sánh tài liệu với hàng và bộ sưu tập với bảng (Ở đây bảng và hàng đề cập đến những tài liệu của hệ quản trị cơ sở dữ liệu quan hệ - RDBMS).
Tuy nhiên, trong RDBMS, xác định cột là điều kiện tiên quyết để lưu trữ các bản ghi vào một bảng, gọi các lược đồ định nghĩa này. Tuy nhiên, là một tính năng mới, ArangoDB không có lược đồ - không có lý do tiên nghiệm nào để chỉ định tài liệu sẽ có những thuộc tính nào.
Và không giống như RDBMS, mỗi tài liệu có thể được cấu trúc theo một cách hoàn toàn khác với một tài liệu khác. Các tài liệu này có thể được lưu cùng nhau trong một bộ sưu tập duy nhất. Trên thực tế, các đặc điểm chung có thể tồn tại giữa các tài liệu trong bộ sưu tập, tuy nhiên hệ thống cơ sở dữ liệu, tức là bản thân ArangoDB, không ràng buộc bạn với một cấu trúc dữ liệu cụ thể.
Bây giờ chúng ta sẽ cố gắng hiểu ArangoDB của [graph data model], yêu cầu hai loại tập hợp - thứ nhất là tập hợp tài liệu (được gọi là tập hợp đỉnh trong ngôn ngữ lý thuyết nhóm), loại thứ hai là tập hợp cạnh. Có một sự khác biệt tinh tế giữa hai loại này. Bộ sưu tập Edge cũng lưu trữ tài liệu, nhưng chúng có đặc điểm là bao gồm hai thuộc tính duy nhất,_from và _tođể tạo quan hệ giữa các tài liệu. Trong thực tế, một tài liệu (cạnh đọc) liên kết hai tài liệu (đọc đỉnh), cả hai đều được lưu trữ trong bộ sưu tập tương ứng của chúng. Kiến trúc này bắt nguồn từ khái niệm lý thuyết đồ thị của một đồ thị có nhãn, có hướng, loại trừ các cạnh không chỉ có nhãn mà còn có thể là một JSON hoàn chỉnh giống như tài liệu.
Để tính toán dữ liệu mới, xóa tài liệu hoặc để thao tác chúng, các truy vấn được sử dụng để chọn hoặc lọc tài liệu theo tiêu chí đã cho. Hoặc đơn giản như một "truy vấn mẫu" hoặc phức tạp như "kết hợp", các truy vấn được mã hóa bằng AQL - Ngôn ngữ truy vấn ArangoDB.