Các Graph Database Và Neo4J, Cơ Bản Về Graph Database Trong Ruby

Hiểu 1 cách đơn giản, graph database là database sử dụng cấu trúc graph để lưu trữ dữ liệu, nó khác so với cơ sỡ dữ liệu quan hệ lưu data dưới dạng bảng, hay No
SQL lưu data dưới dạng document key value.

Bạn đang xem: Các graph database

*


Các record dữ liệu trong graph database được gọi là Nodes, các node được kết nối với nhau bằng các quan hệ Relationships. Nodes và Relationships đều có thể có các thuộc tính Properties. Các Nodes có thể phân thành các group để dễ quản lý nhờ vào Label

2. Tại sao dùng Graph database:

Graph database không có mục đích là thay thế relational database hay
No
SQL database, nó được dùng cho các ứng dụng focus vào các quan hệ(relationship) giữa các thực thể dữ liệu, ví dụ các ứng dụng mạng xã hội, các chức năng suggest, recommend(suggest 1 item cho người sử dụng dựa trên lịch sử hoạt động của người đó), quản lý các mạng lưới(network, traffic...)...

Xem thêm: Tài xế grab bạch kim - thử thách “trở lại hạng bạch kim”

Với những kiểu ứng dụng như vậy thì cách lưu trữ dữ liệu của relational database hoặc No
SQL database đều không thích hợp khi mà chúng chỉ normalize dữ liệu để lưu vào các bẳng hay các document và làm giảm đi tính kết nối. Cách duy nhất để tạo kết nối ở 2 loại database trên là tạo các foreign key/link đến các record/document khác, và việc join các bảng hay lần ngược lại các link là việc phức tạp, kém hiệu quả và dễ gây lỗi, đặc biệt nếu các quan hệ là phức tạp

3. Ưu điểm của Graph database:

3.1 Performance:

Performance là ưu điểm rất lớn của graph databse so với relational database và Nosql database. Khi dữ liệu trở nên lớn cùng với việc sử dụng nhiều câu lệnh join sẽ khiến performance trở nên rất tệ, trong khi thì graph database với cách query dữ liệu chỉ focus vào 1 phân khu của graph có chức các dữ liệu liên quan nên performance không thay đổi nhiều.

3.2: Dễ thay đổi:Chúng ta có thể thêm vào các nodes, các relationships, các subgraph mà không làm ảnh hưởng đến dữ liệu cũ, các query cũ.

4. Neo4j

+Là 1 open-source graph database

+Được viết bằng Java

+Là 1 implement hoàn thiện của graph database

+Là graph database nổi tiếng nhất hiện tại

5. Sử dụng Neo4J để xây dựng ứng dụng:

Thử tạo 1 ứng dụng nhỏ sử dụng neo4j để hiểu về graph database, ứng dụng này là mô phỏng lại chức năng nhỏ của mạng xã hội, đó là kết nối friend, gồm các chức năng:+Xem danh sách friend của mình

+Search 1 user khác

+Xem danh sách friends của 1 user

+Xem có bao nhiêu bạn chung giữa mình và người khác

+Kết bạn

+Suggest bạn dựa trên số bạn chung

Graph model của ứng dụng sẽ như sau:

Leave a Reply

Your email address will not be published. Required fields are marked *