Neo4j - Tổng quan
Neo4j là Cơ sở dữ liệu đồ thị mã nguồn mở hàng đầu thế giới được phát triển bằng công nghệ Java. Nó có khả năng mở rộng cao và không có lược đồ (NoSQL).
Cơ sở dữ liệu đồ thị là gì?
Đồ thị là một biểu diễn bằng hình ảnh của một tập hợp các đối tượng trong đó một số cặp đối tượng được nối với nhau bằng các liên kết. Nó bao gồm hai yếu tố - nút (đỉnh) và mối quan hệ (cạnh).
Cơ sở dữ liệu đồ thị là cơ sở dữ liệu dùng để mô hình hóa dữ liệu dưới dạng đồ thị. Ở đây, các nút của biểu đồ mô tả các thực thể trong khi các mối quan hệ mô tả sự liên kết của các nút này.
Cơ sở dữ liệu đồ thị phổ biến
Neo4j là một Cơ sở dữ liệu đồ thị phổ biến. Các cơ sở dữ liệu đồ thị khác là Cơ sở dữ liệu Oracle NoSQL, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph và AllegroGraph.
Tại sao lại sử dụng cơ sở dữ liệu đồ thị?
Ngày nay, hầu hết dữ liệu tồn tại dưới dạng mối quan hệ giữa các đối tượng khác nhau và thường thì mối quan hệ giữa dữ liệu có giá trị hơn chính dữ liệu.
Cơ sở dữ liệu quan hệ lưu trữ dữ liệu có cấu trúc cao trong đó có một số bản ghi lưu trữ cùng một loại dữ liệu để chúng có thể được sử dụng để lưu trữ dữ liệu có cấu trúc và chúng không lưu trữ các mối quan hệ giữa các dữ liệu.
Không giống như các cơ sở dữ liệu khác, cơ sở dữ liệu đồ thị lưu trữ các mối quan hệ và kết nối dưới dạng các thực thể hạng nhất.
Mô hình dữ liệu cho cơ sở dữ liệu đồ thị đơn giản hơn so với các cơ sở dữ liệu khác và chúng có thể được sử dụng với hệ thống OLTP. Họ cung cấp các tính năng như tính toàn vẹn của giao dịch và tính khả dụng trong hoạt động.
Cơ sở dữ liệu đồ thị RDBMS Vs
Sau đây là bảng so sánh cơ sở dữ liệu Quan hệ và cơ sở dữ liệu Đồ thị.
Sr.No | RDBMS | Cơ sở dữ liệu đồ thị |
---|---|---|
1 | Những cái bàn | Đồ thị |
2 | Hàng | Điểm giao |
3 | Cột và Dữ liệu | Thuộc tính và giá trị của nó |
4 | Ràng buộc | Các mối quan hệ |
5 | Tham gia | Traversal |
Ưu điểm của Neo4j
Sau đây là những ưu điểm của Neo4j.
Flexible data model - Neo4j cung cấp một mô hình dữ liệu đơn giản và linh hoạt nhưng mạnh mẽ, có thể dễ dàng thay đổi theo các ứng dụng và ngành.
Real-time insights - Neo4j cung cấp kết quả dựa trên dữ liệu thời gian thực.
High availability - Neo4j rất sẵn sàng cho các ứng dụng thời gian thực doanh nghiệp lớn với sự đảm bảo về giao dịch.
Connected and semi structures data - Sử dụng Neo4j, bạn có thể dễ dàng biểu diễn dữ liệu được kết nối và bán cấu trúc.
Easy retrieval - Sử dụng Neo4j, bạn không chỉ có thể biểu diễn mà còn dễ dàng truy xuất (duyệt / điều hướng) dữ liệu được kết nối nhanh hơn khi so sánh với các cơ sở dữ liệu khác.
Cypher query language- Neo4j cung cấp một ngôn ngữ truy vấn khai báo để biểu diễn đồ thị một cách trực quan, sử dụng cú pháp ascii-art. Các lệnh của ngôn ngữ này ở định dạng con người có thể đọc được và rất dễ học.
No joins - Sử dụng Neo4j, nó KHÔNG yêu cầu các phép nối phức tạp để truy xuất dữ liệu được kết nối / liên quan vì rất dễ dàng truy xuất chi tiết mối quan hệ hoặc nút liền kề của nó mà không cần nối hoặc chỉ mục.
Đặc điểm của Neo4j
Sau đây là các tính năng đáng chú ý của Neo4j:
Data model (flexible schema)- Neo4j tuân theo một mô hình dữ liệu có tên là mô hình đồ thị thuộc tính gốc. Ở đây, đồ thị chứa các nút (thực thể) và các nút này được kết nối với nhau (được mô tả bằng các mối quan hệ). Các nút và mối quan hệ lưu trữ dữ liệu trong các cặp khóa-giá trị được gọi là thuộc tính.
Trong Neo4j, không cần tuân theo một lược đồ cố định. Bạn có thể thêm hoặc bớt các thuộc tính theo yêu cầu. Nó cũng cung cấp các ràng buộc lược đồ.
ACID properties - Neo4j hỗ trợ đầy đủ các quy tắc ACID (Nguyên tử, Nhất quán, Cô lập và Độ bền).
Scalability and reliability- Bạn có thể mở rộng cơ sở dữ liệu bằng cách tăng số lần đọc / ghi và khối lượng mà không ảnh hưởng đến tốc độ xử lý truy vấn và tính toàn vẹn của dữ liệu. Neo4j cũng cung cấp hỗ trợ choreplication vì sự an toàn và độ tin cậy của dữ liệu.
Cypher Query Language- Neo4j cung cấp một ngôn ngữ truy vấn khai báo mạnh mẽ được gọi là Cypher. Nó sử dụng ASCII-art để mô tả đồ thị. Cypher rất dễ học và có thể được sử dụng để tạo và truy xuất quan hệ giữa các dữ liệu mà không cần sử dụng các truy vấn phức tạp như Joins.
Built-in web application - Neo4j cung cấp một Neo4j Browserứng dụng web. Sử dụng điều này, bạn có thể tạo và truy vấn dữ liệu biểu đồ của mình.
Drivers - Neo4j có thể hoạt động với -
API REST để làm việc với các ngôn ngữ lập trình như Java, Spring, Scala, v.v.
Java Script để làm việc với các khuôn khổ UI MVC như Node JS.
Nó hỗ trợ hai loại API Java: API Cypher và API Native Java để phát triển các ứng dụng Java. Ngoài những thứ này, bạn cũng có thể làm việc với các cơ sở dữ liệu khác như MongoDB, Cassandra, v.v.
Indexing - Neo4j hỗ trợ Indexes bằng cách sử dụng Apache Lucence.