Neo4J Là Gì

     
Giới thiệu

Graph là gì?

Đồ thị (Graph) là tập hợp các đỉnh (Vertices) cùng cạnh (Edges), tuyệt là tập hòa hợp giữa những nút(Node) và quan hệ (Relationship) giữa những nút cùng với nhau. Côn trùng quan hệ có thể là một chiều giỏi hai chiều.

Bạn đang xem: Neo4j là gì

Bạn đã xem: Neo4j là gì


*

*

Ví dụ: A với B có mốt quan hệ giới tính "FRIEND" với nhau tuy nhiên chỉ gồm A là "FOLLOW" B.

Cấu trúc dữ liệu

Có rất nhiều cách thức biểu diễn kết cấu dữ liệu của Đồ thị như danh sách cạnh, list kề, Ma trận kề, Ma trận liên thuộc.

Với danh sách cạnh ta có thể biểu diễn dưới dạng list với mỗi phần tử là 1 Tuple(Node, Node, Relationship)

(A, B, Friend)(B, A, Friend)(A, B, Follow)(C, A, Follow)(C, B, Follow)Trong lúc ấy với Ma trận Kề ta phải biểu diễn 2 ma trận không giống nhau, từng ma trận có kích thước N x N cùng với N là số Node và quý giá tại (X, Y) biểu thị 1 quan hệ từ X -> Y

FRIENDX | A | B | C |A | 0 | 1 | 0 |B | 1 | 0 | 0 |C | 0 | 0 | 0 |FOLLOWX | A | B | C |A | 0 | 1 | 0 |B | 0 | 0 | 0 |C | 1 | 1 | 0 |Có tương đối nhiều dạng vật dụng thị không giống nhau, dưới đấy là một số dạng


*

*

Learning Neo4J

Ứng dụng của Đồ thị

Khoa học xã hội

Như minh họa sinh sống hình trước tiên của bài xích viết, sự ảnh hưởng giữa bạn và fan hình thành bắt buộc một mạng làng mạc hội(social network). Facebook và Twitter là 2 social lớn mà chúng ta có thể hình dung được áp dụng của thứ thị trong công nghệ xã hội.

Ví dụ: Để tìm phần nhiều người khét tiếng X vào mạng làng mạc hội, bạn cũng có thể thống kê con số Follow của X và chuyển ra những người dân có số lượng Follow cao nhất. Nói theo một cách toán học tập thì ta tìm kiếm bậc của đỉnh hay con số cạnh nối cùng với đỉnh kia (X) và tìm ra mọi đỉnh có bậc cao nhất.

Trong diễn đàn, phụ thuộc những comment của người tiêu dùng ta rất có thể phân chia nhóm người tiêu dùng có cùng chủ ý với nhau.


*

Detecting Subgroups in Online Discussions by Modeling Positive và Negative Relations among Participants

Nghiên cứu vớt sinh học

Các nhân tố sinh học(protein, phân tử, gen) và các tương tác của chúng cũng khiến cho một đồ dùng thị sinh học. Dựa vào đó fan ta hoàn toàn có thể tìm phát âm được quá trình trao đổi hóa học trong cơ thể, sự địa chỉ giữa các bộ phận khác nhau trên cơ thể.

Sơ đồ hiệp thương chất trong cơ thể con người

Bài toán tìm mặt đường đi

WebSearch Pagerank là thuật toán phân tích những liên kết được sử dụng trong Google tìm kiếm để xếp hạng các trang web.

Tóm lại, Đồ thị hiện diện ở khắp những nơi miễn có Đối tượng(Node) và các tương tác giữa những Đối tượng (Relationship) đều hoàn toàn có thể tạo đề xuất Đồ thị.

Graph Databases

Một hệ thống quản lý cơ sở tài liệu đồ thị (graph database management system) là một trong những hệ thống có thể Create, Read, Update cùng Delete (CRUD) . Graph Databases thường được xây cất để áp dụng vào các hệ thống OLTP.

Có 2 đặc điểm mà chúng ta cần phải để ý khi phân tích về Graph Database

Processing Engine: sử dụng index-free adjacency.Neo4J

Data Modeling

Nodes

Node thường dùng để làm biểu diễn tin tức của một thực thể. Đồ thị dễ dàng và đơn giản nhất là thứ thị mà trong đó chỉ gồm một Node.

Labels

Một Node rất có thể không tất cả hoặc có khá nhiều nhãn.

Xem thêm: Self-Reliance Là Gì

Relationships

Relationship thể hiện quan hệ hay những kết nối giữa những Node cùng với nhau. Các Relationships góp tổ chức các Node thành một cấu trúc, trở thành đồ đô thị một cấu tạo như dạng list, maps hay những cấu trúc phức tạp hơn.

Trong Neo4j, từng Relationship là 1 trong Cạnh được bố trí theo hướng nối Node nguồn và Node đích. Một Node hoàn toàn có thể có Cạnh nối với thiết yếu nó.

Relationship Types

Mỗi Relationship chỉ bao gồm duy tuyệt nhất một Relationship Types. Như lấy ví dụ trên, họ có những Relationship :IS_FOLLOWING, :IS_ADMIN , Relationship Type đỡ đần ta biết được quan hệ giữa những Node là gì. Câu hỏi đặt type cho Relationship giúp bọn họ dễ tưởng tượng được Node nào là Node nguồn với Node nào là Node đích.

Properties

Properties là một trong những cặp key-value thể hiện những thuộc tính của Node hoặc Relationship. Trong lấy ví dụ về thiết bị thị , Node :User có thuộc tính là "name", "born" với Relationship :IS_ADMIN tất cả thuộc tính "roles".

Các value rất có thể có những kiểu tài liệu như number, string, boolean hoặc list.

Traversals và paths

Traversal là giải pháp mà bọn họ truy vấn dữ liệu để vấn đáp cho một thắc mắc Ví dụ như "Những page nào nhưng mà anh Phóng theo dõi nhưng lại anh X không theo dõi". Travesaling một trang bị thị nghĩa là bọn chúng ta bắt đầu từ một Node và lần theo những Relationship theo các quy tác làm sao đó. Hầu như họ chỉ cần lần theo Đồ thị nhỏ của Đồ thị (dựa vào các Label, những Relationship Type).

Kết quả của traversal rất có thể trả về là 1 trong đường đi (path) tự Node này mang lại Node kia. Như lấy ví dụ Đồ thị mà bọn họ có, hiệu quả trả về cho câu hỏi " Anh Phóng vẫn theo dõi phần lớn Page nào" là một trong những đường đi từ bỏ Node có name:"Phóng" đi qua cạnh :IS_FOLLOWING và đến Node tất cả name:"Gái Xinh" .

Path ngắn nhất bao gồm độ dài là 0 với 1 Node và không tồn tại Relationship.

Schema

Schema trong Neo4j bao gồm Indexes cùng Constraints.

Indexes được thực hiện để tăng công suất cho câu tróc nã vấn, lý do chính mang đến việc sử dụng Indexes là khi truy vấn tài liệu trên vật thị, bọn chúng ta bước đầu bằng một Node cùng đi qua những Node, bài toán index giúp cho tìm kiếm những Node một cách nhanh chóng. Hoàn toàn có thể đánh index trong bất kể thời điểm nào, tuy nhiên khi bao gồm dữ liệu, vấn đề đánh index sẽ tốn nhiều thời hạn hơn.Constraints được thực hiện để chắc chắn rằng các thuộc tính tuân hành các khí cụ nào đó. Ví như số CMND của :User là duy nhất.

Xem thêm: Muốn Mở Cửa Hàng Đồng Giá 10K Hà Nội, Hệ Thống Cửa Hàng

Cypher

Cypher là ngữ điệu truy vấn vào Neo4J. Những câu query là tập hợp các mệnh đề được link với nhau. Dưới đấy là một số mệnh đề thường dùng:

Patterns

Node

()(p)(:User)(p:User)(p:User name: "Phóng") Relationship-->-->-->-->-}>->Pattern(p:UserCMND:12)-->(p:PageId:1)Pattern variablespath = (p:UserCMND:12)-->(p:PageId:1)Clauses

MATCH: tra cứu kiếm theo pattern. OPTIONAL MATCH tựa như MATCH nhưng lại sẽ trả về công dụng Null nếu tất cả missing vào pattern.MERGE: bảo đảm pattern luôn luôn tồn tại trong đồ thị, còn nếu như không tồn tại, MERGE để giúp đỡ tạo pattern đó.WITH: tiến hành các thao tác làm việc với các output trước lúc sang các mệnh đề khác.WHERE: Thêm những ràng buộc mang lại patternRETURN: Định nghĩa công dụng trả vềCREATE: tạo Node, Relationship hoặc một Path.DELETE: Xóa Node, RelationshipSET: cần sử dụng để cập nhật Labels, PropertiesLIMIT, ORDER BY : giống như như SQL.