CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J VÀ ỨNG DỤNG

21 927 13
  • Loading ...
1/21 trang

Thông tin tài liệu

Ngày đăng: 10/04/2015, 15:34

Võ Thị Thu Nguyệt Trang i ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH - ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG Chuyên đề: CƠ SỞ DỮ LIỆU NÂNG CAO Tiểu luận: CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J VÀ ỨNG DỤNG Học viên thực hiện : Võ Thị Thu Nguyệt Mã số học viên : CH1101112 Người hướng dẫn : PGS.TS Đỗ Phúc Năm 2012 MỤC LỤC MỤC LỤC 2 LỜI MỞ ĐẦU 1 Chương 1: 2 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ĐỒ THỊ 2 1.1 Lý thuyết đồ thị: 2 1.2 Cơ sở dữ liệu đồ thị: 2 1.2.1 Khái niệm: 2 1.2.2 “Một đồ thị chứa các node và các quan hệ”: 2 1.2.3 “Các mối quan hệ tổ chức nên đồ thị”: 3 1.2.4 “Truy vấn cơ sở dữ liệu đồ thị bằng cách duyệt đồ thị”: 3 1.2.5 Indexing: 4 Chương 2: 8 NEO4J 8 2.1 Tổng quan về Neo4j: 8 2.2 Neo4j: 8 2.2.1 Kiến trúc logic của Neo4j: 8 2.2.2 Nodes: 9 2.2.3 Relationships: 10 2.2.4 Properties: 12 2.2.5 Đường đi Paths: 13 2.2.6 Duyệt đồ thị: 14 Chương 3: 15 ỨNG DỤNG SỬ DỤNG NEO4J TRONG XÂY DỰNG MỘT MẠNG XÃ HỘI 15 3.1 Giới thiệu: 15 3.2 Mô tả: 15 3.2.1 Kịch bản ứng dụng: 15 3.2.3 Thực hiện chương trình: 15 Chương 4: 17 KẾT LUẬN 17 TÀI LIỆU THAM KHẢO 18 DANH MỤC HÌNH ẢNH LỜI MỞ ĐẦU Cơ sở dữ liệu đồ thị là một vấn đề mới mà chúng ta cần phải nghiên cứu hiện nay. Đỉnh cao của ứng dụng cơ sở dữ liệu đồ thị là dùng để lưu trữ dữ liệu của một hay nhiều mạng xã hội một cách dễ dàng và hiệu quả. Nếu như cơ sở dữ liệu truyền thống biểu diễn bởi các bảng và mối quan hệ giữa chúng thông qua khóa ngoại, thì cơ sở dữ liệu đồ thị biểu diễn trực quan hơn bởi các node, thể hiện các mối quan hệ khác nhau giữa các node, các cạnh, dựa trên các quan hệ đó để tính toán các lợi ích kinh tế khác. Có nhiều cơ sở dữ liệu đồ thị khác nhau, tuy nhiên, neo4j được xem cơ sở dữ liệu hiệu quả nhất, bằng việc lưu trữ nhiều cơ sở dữ liệu đồ thị, tốc độ truy vấn nhanh và khả năng lưu trữ tốt. Nội dung bài tiểu luận tập trung vào trình bày cơ sở dữ liệu đồ thị neo4j và cách tiếp cận neo4j trong một ứng dụng mạng xã hội nhỏ. Em xin chân thành cảm ơn thầy, PGS.TS Đỗ Phúc đã truyền đạt những kiến thức quý báu về bộ môn Cơ sở dữ liệu nâng cao nói chung, và đặc biệt là những kiến thức về cơ sở dữ liệu đồ thị, làm tiền đề cho những ý tưởng của em về việc xây dựng một mạng xã hội của riêng mình. Bài viết còn nhiều sai xót do sự hạn chế về thời gian cũng như kinh nghiệm thực tế, mong thầy thông cảm và bỏ qua. Võ Thị Thu Nguyệt Trang 1 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ĐỒ THỊ 1.1 Lý thuyết đồ thị: Đồ thị là một tập các đối tượng được gọi là các đỉnh nối với nhau bởi các cạnh(hoặc cung). Đồ thị thường được biểu diễn dưới dạng một tập các điểm nối với nhau bằng các đoạn thẳng(các cung). Biểu diễn đồ thị dưới dạng tập hợp như sau: - Tập đỉnh V ≠ φ - Tập cạnh E={(u,v): u,v ∈ V} Đồ thị G được biểu diễn : G = (V,E) Có 2 loại đồ thị: - Đồ thị có hướng: cạnh là cặp đỉnh có thứ tự, gọi là cung. - Đồ thị vô hướng: cạnh là cặp đỉnh không có thứ tự. Ta có (u, v) ∈ E => (v, u) ∈ E Mỗi cạnh có thể được gán trọng số (biểu diễn độ đo đi từ đỉnh u đến đỉnh v) được gọi là đồ thị có trọng số. Đồ thị có thể biểu diễn được nhiều cấu trúc trong thực tế, như cấu trúc liên kết các website, hay mạng lưới giao thông, … Ví dụ : Hình 1 – Ví dụ về đồ thị Một ứng dụng quan trọng của lý thuyết đồ thị đó là việc biểu diễn cơ sở dữ liệu đồ thị, là nội dung ta sẽ tìm hiểu dưới đây. 1.2 Cơ sở dữ liệu đồ thị: 1.2.1 Khái niệm: Cơ sở dữ liệu đồ thị sử dụng các cấu trúc đồ thị với các node, các cạnh, và các thuộc tính để biểu diễn và lưu trữ dữ liệu. Chúng ta hãy tìm hiểu các khái niệm sau: 1.2.2 “Một đồ thị chứa các node và các quan hệ”: “Đồ thị - lưu trữ dữ liệu trong – Các node – có – Các mối quan hệ” Võ Thị Thu Nguyệt Trang 2 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Đồ thị đơn giản nhất có thể là đồ thị chỉ có 1 node duy nhất, lưu các thuộc tính biểu diễn giá trị của nó. Một node có thể bắt đầu chỉ với 1 thuộc tính Property và sau đó phát triển thành hàng triệu properties. Tại một số điểm, nó phân tán dữ liệu thành nhiều node khác, tổ chức thành các mối quan hệ rõ ràng. Hình sau biểu diễn cách tổ chức của một cơ sở dữ liệu đồ thị: Hình 2 – Tổ chức của một cơ sở dữ liệu đồ thị 1.2.3 “Các mối quan hệ tổ chức nên đồ thị”: “Các node – được tổ chức bởi -> các mối quan hệ - có các -> thuộc tính” Các mối quan hệ này tổ chức các node thành các cấu trúc tùy tiện, cho phép đồ thị tương tự như 1 List, Tree, Map hay các compound Entity, mà có thể kết nối thành những cấu trúc phức tạp hơn, đa dạng về kết nối với nhau. 1.2.4 “Truy vấn cơ sở dữ liệu đồ thị bằng cách duyệt đồ thị”: “Một phép duyệt – điều hướng –> một đồ thị; nó - xác định –> đường đi – theo thứ tự - các node” Chúng ta truy vấn 1 cơ sở dữ liệu đồ thị sử dụng cách duyệt đồ thị, xuất phát từ node bắt đầu đến các node kế cận theo 1 giải thuật, được mô hình như hình dưới đây: Võ Thị Thu Nguyệt Trang 3 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Hình 3 - Mô hình truy vấn cơ sở dữ liệu đồ thị 1.2.5 Indexing: “Một chỉ mục – được map từ -> các thuộc tính – đến -> các node hoặc các mối quan hệ.” Mục đích của việc đánh chỉ mục (indexing) là tìm kiếm được nhanh chóng và chính xác trong cơ sở dữ liệu đồ thị. Võ Thị Thu Nguyệt Trang 4 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Hình 4 – Quan hệ giữa chỉ mục và các thành phần trong cơ sở dữ liệu đồ thị Như vậy, ta có một cái nhìn tổng quan về cơ sở dữ liệu đồ thị như sau: Võ Thị Thu Nguyệt Trang 5 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Hình 5 – Tổng quan về cơ sở dữ liệu đồ thị Ở đây, một cơ sở dữ liệu đồ thị sẽ quản lý các chỉ mục và đồ thị gồm các node và các cạnh. Các node trong đồ thị lưu trữ thông tin của chúng thông qua các node và các mối quan hệ giữa các node. Các chỉ mục sẽ ánh xạ đến từng node, từng mối quan hệ giữa các node, và đến các thuộc tính của các node và các mối quan hệ đó. Để thực hiện truy vấn trong 1 cơ sở dữ liệu đồ thị, ta thực hiện một phép duyệt đồ thị dựa trên một giải thuật để xác định đường đi theo thứ tự của các node. Ví dụ về một cơ sở dữ liệu đồ thị: Võ Thị Thu Nguyệt Trang 6 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Hình 6 – Ví dụ về cơ sở dữ liệu đồ thị Trong ví dụ này, đồ thị của cơ sở dữ liệu gồm 3 node N = {Alice, Bob, Group}, với tập thuộc tính gồm P V = {id, name, age, type}. Các cạnh cũng có tập các thuộc tính sau: P E = {id, label, since}. Đây là một đồ thị có hướng với những thuộc tính của các cạnh nối 2 đỉnh là khác nhau. Trong cơ sở dữ liệu này, ta có thể thực hiện truy vấn các thông tin, như: tìm mối quan hệ giữa người có tên là Alice với người có tên là Bob, tìm các cá nhân có quan hệ là “is_member” của group có tên là “Chess”…. Sau đây chúng ta sẽ tìm hiểu về Neo4j để sau đó xây dựng một ứng dụng mạng xã hội dựa vào cấu trúc lưu trữ dữ liệu của Neo4j. Võ Thị Thu Nguyệt Trang 7 [...].. .Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 2: Neo4j Chương 2: NEO4J 2.1 Tổng quan về Neo4j: Neo4j là một cơ sở dữ liệu đồ thị, lưu trữ dữ liệu trong các node và các quan hệ của một đồ thị Các cấu trúc dữ liệu chung nhất là đồ thị, biểu diễn bất kỳ kiểu dữ liệu nào, đảm bảo cấu trúc tự nhiên của một cơ sở dữ liệu Neo4j không giống như cơ sở dữ liệu truyền thống, nó là NOSQL(Not... relationships Neo4j có thể lưu trữ một hoặc nhiều cơ sở dữ liệu đồ thị mà tốc độ duyệt các node vẫn đảm bảo nhanh và hiệu quả Ứng dụng cơ sở dữ liệu đồ thị Neo4j vào việc lưu trữ và xây dựng mạng xã hội đang trở thành một xu hướng hiện nay, sẽ mở ra một thời đại mới của thời đại công nghệ là mạng xã hội Võ Thị Thu Nguyệt Trang 17 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Tài liệu tham khảo TÀI LIỆU THAM KHẢO... đồ thị nhanh chóng Ứng dụng thực hiện việc tìm mối liên hệ giữa node 12 và node 10, từ đó kiểm chứng xem 2 node 10 và 12 có thể hình thành nên quan hệ “friend” hay không Võ Thị Thu Nguyệt Trang 16 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 4: Kết luận Chương 4: KẾT LUẬN Cơ sở dữ liệu đồ thị Neo4j được biểu diễn bởi các nodes, các relationships của các nodes, và tập các properties của các nodes và. .. kiệm chi phí “đi lại” giữa các node Võ Thị Thu Nguyệt Trang 14 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 3: Ứng dụng sử dụng neo4j trong xây dựng Chương 3: ỨNG DỤNG SỬ DỤNG NEO4J TRONG XÂY DỰNG MỘT MẠNG XÃ HỘI 3.1 Giới thiệu: Chương trình xây dựng một cơ sở dữ liệu cho một mạng xã hội nhỏ, sử dụng phần mềm mã nguồn mở neo4j 3.2 Mô tả: 3.2.1 Kịch bản ứng dụng: Xây dựng một mạng xã hội thu nhỏ gồm... relationships Ví dụ: Võ Thị Thu Nguyệt Trang 12 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 2: Neo4j Hình 15- Biểu diễn một Property 2.2.5 Đường đi Paths: Một đường đi là một hay nhiều node được kết nối với nhau bởi các relationships, thường được biểu diễn bằng kết quả của phép duyệt Hình 16 – Path Võ Thị Thu Nguyệt Trang 13 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 2: Neo4j Đường đi ngắn nhất... vào miền của các mối quan hệ mà có thể được sử dụng cho nhiều mục đích khác nhau Võ Thị Thu Nguyệt Trang 9 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 2: Neo4j Hình 8 – Node, relationships và properties Như đã trình bày trong chương 1, một đồ thị đơn giản chỉ chưa 1 node, và có thể chỉ chứa một thuộc tính Ví dụ: Hình 9 – Ví dụ về một đồ thị đơn giản với 1 node và 1 property Trong ví dụ trên, đồ thị. .. transactional như một cơ sở dữ liệu thực sự, với đầy đủ các đặc tính ACID (Atomicity, Consistency, Isolation, Durability) 2.2 Neo4j: 2.2.1 Kiến trúc logic của Neo4j: Kiến trúc logic của Neo4j được mô tả theo hình dưới đây: Võ Thị Thu Nguyệt Trang 8 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 2: Neo4j Hình 7 – Kiến trúc logic của Neo4j Trong đó: - File system: là các file trên ổ cứng, được lưu trữ cẩn... 19 – Cơ sở dữ liệu của mạng xã hội 3.2.3 Thực hiện chương trình: Chương trình xây dựng một cơ sở dữ liệu đồ thị gồm tập các node {7, 8, 9, 10, 11, 12, 13, 14, 15, 16} với tập các relationships = {friend, colleague, know, member} Tập thuộc tính của các node {7, 8, 9, 10, 11, 12, 13, 15, 16} bao gồm {name, age, work} Tập thuộc tính của node 14 gồm {name, since} Cơ sở dữ liệu đồ thị Neo4j và ứng dụng. .. các thuộc tính với các giá trị của các thuộc tính này Võ Thị Thu Nguyệt Trang 10 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 2: Neo4j Một relationship luôn có hướng Chúng biểu diễn quan hệ đầu vào của 1 node, và quan hệ đầu ra của 1 node, dùng cho phép duyệt đồ thị: Hình 11 – Một relationship giữa start node và end node Hình 12 – quan hệ vào và quan hệ ra của một node Một node cũng có thể tự có quan... nghĩa là không chỉ truy vấn dữ liệu bằng các câu sql thông thường Như đã trình bày trong chương 1, chúng ta truy vấn trong một cơ sở dữ liệu đồ thị dựa trên phép duyệt đồ thị Neo4j một dự án mã nguồn mở dùng trong cộng đồng GPLv3, được hỗ trợ bởi công ty Neo Technology Đặc điểm của Neo4j: - Biểu diễn mô hình dữ liệu hướng đồ thị một các trực quan - Quản lý lưu trữ trên đĩa cứng, hoàn toàn tối ưu cho . cảm và bỏ qua. Võ Thị Thu Nguyệt Trang 1 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ĐỒ THỊ 1.1 Lý thuyết đồ thị: Đồ. trong cơ sở dữ liệu đồ thị Như vậy, ta có một cái nhìn tổng quan về cơ sở dữ liệu đồ thị như sau: Võ Thị Thu Nguyệt Trang 5 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu. Nguyệt Trang 6 Cơ sở dữ liệu đồ thị Neo4j và ứng dụng Chương 1: Tổng quan về Cơ sở dữ liệu đồ thị Hình 6 – Ví dụ về cơ sở dữ liệu đồ thị Trong ví dụ này, đồ thị của cơ sở dữ liệu gồm 3 node N
- Xem thêm -

Xem thêm: CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J VÀ ỨNG DỤNG, CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J VÀ ỨNG DỤNG, CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J VÀ ỨNG DỤNG

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay