Giới thiệu

Graph là gì?

Đồ thị (Graph) là tập đúng theo những đỉnh (Vertices) cùng cạnh (Edges), xuất xắc là tập đúng theo thân những nút(Node) cùng mối quan hệ (Relationship) thân những nút ít với nhau. Mối quan hệ giới tính có thể là một trong những chiều giỏi hai phía.

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


*

*

Ví dụ: A với B có kiểu mốt quan hệ tình dục "FRIEND" cùng nhau tuy vậy chỉ bao gồm A là "FOLLOW" B.

Cấu trúc dữ liệu

Có vô số phương pháp màn trình diễn cấu trúc dữ liệu của Đồ thị nhỏng Danh sách cạnh, Danh sách kề, Ma trận kề, Ma trận liên trực thuộc.

Với Danh sách cạnh ta rất có thể màn biểu diễn dưới dạng danh mục cùng với từng bộ phận là 1 trong Tuple(Node, Node, Relationship)

(A, B, Friend)(B, A, Friend)(A, B, Follow)(C, A, Follow)(C, B, Follow)Trong lúc đó với Ma trận Kề ta đề nghị biểu diễn 2 ma trận không giống nhau, từng ma trận tất cả size N x N với N là số Node cùng cực hiếm trên (X, Y) bộc lộ 1 quan hệ trường đoản cú 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ó rất nhiều dạng đồ dùng thị không giống nhau, bên dưới đây là một vài dạng


*

*

Learning Neo4J

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

Khoa học tập buôn bản hội

Nlỗi minch họa làm việc hình trước tiên của bài viết, sự liên can giữa người và người sinh ra bắt buộc một mạng thôn hội(social network). Facebook với Twitter là 2 mạng xã hội Khủng cơ mà chúng ta cũng có thể hình dung được áp dụng của vật dụng thị trong công nghệ làng hội.

Ví dụ: Để tìm kiếm những người Nổi tiếng X vào mạng xã hội, chúng ta có thể những thống kê con số Follow của X với đưa ra những người tất cả số lượng Follow tối đa. Nói theo cách toán học tập thì ta search bậc của đỉnh hay con số cạnh nối với đỉnh kia (X) với tìm ra đều đỉnh bao gồm bậc tối đa.

Trong diễn bầy, dựa vào phần nhiều comment của người dùng ta rất có thể phân loại đội người tiêu dùng tất cả thuộc chủ ý với nhau.


*

Detecting Subgroups in Online Discussions by Modeling Positive sầu and Negative sầu Relations among mỏi Participants

Nghiên cứu giúp sinch học

Các yếu tố sinh học(protein, phân tử, gen) cùng các liên quan của chúng cũng khiến cho một trang bị thị sinch học tập. Dựa vào kia fan ta rất có thể mày mò được quy trình trao đổi chất vào cơ thể, sự cửa hàng thân những bộ phận không giống nhau trên khung người.


Sơ đồ vật đàm phán hóa học trong khung người nhỏ người

Bài toán thù tìm kiếm đường đi


WebSearch Pagerank là thuật toán thù so sánh các links được dùng trong Google Search để xếp thứ hạng các website.


Tóm lại, Đồ thị hiện diện sinh hoạt mọi phần nhiều địa điểm miễn bao gồm Đối tượng(Node) cùng Các can hệ giữa các Đối tượng (Relationship) đầy đủ hoàn toàn có thể làm cho Đồ thị.


Graph Databases

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

Có 2 Đặc điểm nhưng mà bọn họ cần được lưu ý Lúc nghiên cứu và phân tích về Graph Database

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

Data Modeling

Nodes

Node hay dùng để màn trình diễn báo cáo của một thực thể. Đồ thị đơn giản duy nhất là đồ thị mà trong số ấy chỉ gồm một Node.


Labels

Label thường dùng để định hình một đội nhóm các Node có cùng một miền cùng nhau, Việc gán nhãn giúp chia Đồ thành phố các thứ thị con và một thể cho bài toán tính toán. lấy ví dụ như phần nhiều Node biểu diện công bố mang đến User hoàn toàn có thể được gán nhãn :User .

Xem thêm: Choke Point Là Gì - Nghĩa Của Từ Choke

Một Node hoàn toàn có thể không tồn tại hoặc có không ít nhãn.


Relationships

Relationship bộc lộ quan hệ tuyệt các kết nối thân các Node với nhau. Các Relationships góp tổ chức triển khai những Node thành một cấu tạo, Biến đồ dùng thị trấn một cấu trúc nhỏng dạng list, map tốt đa số cấu tạo phức tạp hơn.

Trong Neo4j, mỗi Relationship là 1 trong những Cạnh được bố trí theo hướng nối Node mối cung cấp và Node đích. Một Node có thể tất cả Cạnh nối với chủ yếu nó.


Relationship Types

Mỗi Relationship chỉ có duy nhất một Relationship Types. Nlỗi ví dụ bên trên, họ gồm các Relationship :IS_FOLLOWING, :IS_ADMIN , Relationship Type đỡ đần ta biết được mối quan hệ giữa các Node là gì. Việc đặt type cho Relationship góp họ dễ dàng hình dung được Node làm sao là Node nguồn và Node nào là Node đích.

Properties

Properties là 1 cặp key-value biểu lộ những ở trong tính của Node hoặc Relationship. Trong ví dụ về thiết bị thị , Node :User gồm thuộc tính là "name", "born" và Relationship :IS_ADMIN bao gồm ở trong tính "roles".

Các value rất có thể tất cả những hình dạng tài liệu nlỗi number, string, boolean hoặc list.

Traversals với paths

Traversal là biện pháp nhưng mà họ truy vấn vấn dữ liệu để trả lời cho một thắc mắc ví dụ như như "Những page làm sao mà lại anh Pđợi quan sát và theo dõi nhưng mà anh X không theo dõi". Travesaling một đồ gia dụng thị tức thị bọn họ bắt đầu xuất phát điểm từ một Node và lần theo những Relationship theo các quy tác như thế nào đó. Đa số bọn họ chỉ cần lần theo Đồ thị bé của Đồ thị (phụ thuộc vào những Label, các Relationship Type).

Kết trái của traversal có thể trả về là 1 trong lối đi (path) từ Node này đến Node kia. Nlỗi ví dụ Đồ thị cơ mà bọn họ gồm, Kết quả trả về đến câu hỏi " Anh Pđợi sẽ theo dõi số đông Page nào" là một trong đường đi trường đoản cú Node bao gồm name:"Phóng" đi qua cạnh :IS_FOLLOWING với mang đến Node tất cả name:"Gái Xinh" .

Path nlắp nhất có độ lâu năm là 0 với cùng 1 Node với không có Relationship.

Schema

Schema trong Neo4j bao hàm Indexes với Constraints.

Indexes được áp dụng để tăng hiệu suất mang đến câu truy vấn, nguyên nhân chủ yếu mang lại Việc sử dụng Indexes là khi truy vấn vấn dữ liệu trên trang bị thị, chúng ta ban đầu bằng một Node và trải qua những Node, việc index giúp cho tra cứu kiếm các Node một phương pháp mau lẹ. cũng có thể tiến công index trong bất cứ thời khắc như thế nào, mặc dù Khi gồm dữ liệu, bài toán tiến công index vẫn tốn các thời hạn hơn.Constraints được sử dụng để chắc chắn rằng các thuộc tính vâng lệnh các mức sử dụng nào kia. lấy một ví dụ nlỗi số CMND của :User là độc nhất vô nhị.

Cypher

Cypher là ngôn từ tầm nã vấn trong Neo4J. Các câu query là tập hòa hợp các mệnh đề được link với nhau. Dưới đó là một số trong những mệnh đề hay dùng:

Patterns

Node

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

MATCH: search tìm theo pattern. OPTIONAL MATCH tương tự MATCH nhưng đã trả về kết quả Null trường hợp có missing trong pattern.MERGE: bảo vệ pattern luôn mãi sau trong đồ vật thị, còn nếu như không mãi mãi, MERGE sẽ giúp đỡ sinh sản pattern đó.WITH: triển khai các thao tác làm việc cùng với các output trước khi lịch sự các mệnh đề không giống.WHERE: Thêm các buộc ràng mang đến patternRETURN: Định nghĩa hiệu quả trả vềCREATE: Tạo Node, Relationship hoặc một Path.DELETE: Xóa Node, RelationshipSET: Dùng để update Labels, PropertiesLIMIT, ORDER BY : tương tự như SQL.