Tiểu luận môn cơ sở dữ liệu nâng cao TÌM HIỂU GRAPH DATABASE NEO4J

28 2.4K 27
Tiểu luận môn cơ sở dữ liệu nâng cao TÌM HIỂU GRAPH DATABASE NEO4J

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTTQM ………… o0o………… BÁO CÁO THU HOẠCH MÔN HỌC CƠ SỞ DỮ LIỆU NÂNG CAO Đề tài: TÌM HIỂU GRAPH DATABASE NEO4J GVHD: PGS.TS. PhúcĐỗ HVTH: Nguy n V n Chungễ ă MÃ SỐ: CH1101070 TP.Hồ Chí Minh, N m 201ă 2 CƠ SỞ DỮ LIỆU NÂNG CAO LỜI MỞ ĐẦU  Ngày nay, dữ liệu của hầu hết các ứng dụng đều rất rất lớn, có những ứng dụng truy cập dữ liệu lên đến Tera Byte hoặc cả nghìn Tera Byte. Như vậy làm thế nào để ứng dụng truy cập dữ liệu lớn như vậy mà tốc độ truy cập nhanh nhất mà vẫn đảm bảo dữ liệu trả ra không bị thiếu sót, đây là một vấn đề đâu đầu của nhiều người. Cơ sở dữ liệu đồ thị ra đời đã phần nào giải quyết được vấn đề đó. Neo4J ra đời dựa trên ý tưởng cơ sở dữ liệu đồ thị và ngày càng hoàn thiện và khẳng định tính ưu việt của mình trong việc lưu trử dữ liệu khổng lồ. Trong bài tiểu luận này là sự trình bày khái quát về cơ sở dữ liệu đồ thị, đồng thời trình bày tổng quan về Neo4J. Em xin chân thành cảm ơn PGS.TS. Đỗ Phúc – Giảng viên môn học cơ sở dữ liệu nâng cao đã truyền đạt những kiến thức vô cùng quý báu, xin chân thành cám ơn ban cố vấn học tập và ban quản trị chương trình đào tạo thạc sĩ Công nghệ thông tin qua mạng của Đại Học Quốc Gia TPHCM đã tạo điều kiện về tài liệu tham khảo để em có thể hoàn thành môn học này. Chân thành cám ơn! Nguyễn Văn Chung - 1 - CƠ SỞ DỮ LIỆU NÂNG CAO MỤC LỤC LỜI MỞ ĐẦU 1 CƠ SỞ DỮ LIỆU NÂNG CAO 2 PHẦN I : CƠ SỞ DỮ LIỆU ĐỒ THỊ 3 PHẦN II : CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J 12 KẾT LUẬN 26 - 2 - CƠ SỞ DỮ LIỆU NÂNG CAO ΠΗ Ν Ι : Ầ CƠ SỞ DỮ LIỆU ĐỒ THỊ I. TỔNG QUAN ĐỒ THỊ I.1. Giới thiệu : Trong toán học và tin học, đồ thị là đối tượng nghiên cứu cơ bản của lý thuyết đồ thị. Một cách không chính thức, đồ thị là một tập các đối tượng gọi là đỉnh nối với nhau bởi các cạnh. Thông thường, đồ thị được vẽ dưới dạng một tập các điểm (đỉnh, nút) nối với nhau bởi các đoạn thẳng (cạnh). Tùy theo ứng dụng mà một số cạnh có thể có hướng. I.2. Đồ thị vô hướng: Đồ thị vô hướng hoặc đồ thị G là một cặp không có thứ tự (ordered pair) G:=(V, E), trong đó: - V, tập các đỉnh hoặc nút, - E, tập các cặp không thứ tự chứa các đỉnh phân biệt, được gọi là cạnh. Hai đỉnh thuộc một cạnh được gọi là các đỉnh đầu cuối của cạnh đó.Tập các cạnh bao gồm cả các cặp đỉnh không phân biệt, các cạnh này được gọi là các khuyên. - 3 - CƠ SỞ DỮ LIỆU NÂNG CAO I.3. Đồ thị có hướng: Đồ thị có hướng G là một cặp có thứ tự G:=(V, A), trong đó: - V, tập các đỉnh hoặc nút, - A, tập các cặp có thứ tự chứa các đỉnh, được gọi là các cạnh có hướng hoặc cung. Một cạnh e = (x, y) được coi là có hướng từ x tới y; x được gọi là điểm đầu/gốc và y được gọi là điểm cuối/ngọn của cạnh. II. CƠ SỞ DỮ LIỆU ĐỒ THỊ II.1. Giới thiệu : Một cơ sở dữ liệu đồ thị lưu trữ dữ liệu trong một đồ thị, chung nhất của cấu trúc dữ liệu, có khả năng đại diện cho bất kỳ loại dữ liệu một cách rất dễ tiếp cận. Hãy để theo cùng một số đồ thị, sử dụng chúng để diễn đạt các khái niệm đồ thị. II.2. Nodes và Relationships : “Một đồ thị —các bộ dữ liệu lưu trong → các Node —có → Properties” Đồ thị đơn giản nhất là một Node duy nhất, một node có tên xem như là Properties. Một Node ban đầu có thể với một Property và tăng dần lên vài triệu, mặc dù điều đó có thể có đôi chút vụng về. Tại một số điểm, nó làm cho cảm giác để phân phối dữ liệu vào nhiều nút, tổ chức với các Relationships rõ ràng. - 4 - CƠ SỞ DỮ LIỆU NÂNG CAO II.3. Các Relationship tổ chức trong Đồ thị: “Các Node —được tổ chức bởi→ Các Relationship —các Node có→ Properties”. Relationships tổ chức các Nodes thành những cấu trúc tùy tiện, cho phép một Graph giống như một List, Tree, Map, hoặc một hợp chất Entity, bất kỳ có thể được kết hợp thành phức tạp hơn, đa dạng về cấu trúc liên kết nối. II.4. Truy vấn Đồ thị với một Traversal: “Một Traversal —điều hướng→ Một đồ thị; Traversal —xác định→ các Path —sắp xếp→ Nodes” Traversal là làm thế nào bạn truy vấn một Đồ thị, điều hướng từ bắt đầu từ các Node tới các Node liên quan theo một thuật toán, việc tìm kiếm câu trả lời cho câu hỏi như "những gì âm nhạc nào bạn bè của tôi như tôi chưa sở hữu", hoặc "nếu điều này cung cấp năng lượng đi xuống, những dịch vụ web bị ảnh hưởng? ". - 5 - CƠ SỞ DỮ LIỆU NÂNG CAO II.5. Indexes tìm các Nodes và các Relationships “Một Index —maps từ→ các Property —tới một trong hai→ các Node hoặc các Relationship” Thông thường, bạn muốn tìm thấy một Node cụ thể hoặc Relationship theo một Property nó có. Thay vì đi qua toàn bộ Đồ thị, sử dụng một Index để thực hiện một truy tìm, câu hỏi như "tìm ra cho các tài khoản tên người dùng master-of-graph." - 6 - CƠ SỞ DỮ LIỆU NÂNG CAO II.6. Neo4j là một Graph Database “Một cở sở dữ liệu đồ thi — quản lý → một Đồ thị và — cũng quản lý luôn → các Indexe có liên quan” Neo4j là một cơ sở dữ liệu mã nguồn mở đồ thị thương mại hỗ trợ. Nó được thiết kế và được xây dựng từ mặt đất lên là một cơ sở dữ liệu đáng tin cậy, tối ưu hóa cho các cấu trúc đồ thị thay vì các bảng. Làm việc với Neo4j, ứng dụng của bạn được tất cả các biểu cảm của một đồ thị, với độ tin cậy của tất cả bạn mong đợi của một cơ sở dữ liệu. - 7 - CƠ SỞ DỮ LIỆU NÂNG CAO III. So sánh Database Models: Một cơ sở dữ liệu đồ thị lưu trữ dữ liệu có cấu trúc trong các Node và các Relationship của một đồ thị. Làm thế nào để so sánh với các mô hình bền bỉ khác?Bởi vì một đồ thị là một cấu trúc chung, chúng ta hãy so sánh một vài mô hình sẽ nhìn vào một đồ thị. III.1. Một CSDL Đồ thị biến đổi một RDBMS: Lật đổ ngăn xếp của các bản ghi trong một cơ sở dữ liệu quan hệ trong khi vẫn giữ tất cả các mối quan hệ, và bạn sẽ thấy một đồ thị. Trường hợp một RDBMS được tối ưu hóa cho dữ liệu tổng hợp, Neo4j được tối ưu hóa cho dữ liệu kết nối cao. - 8 - CƠ SỞ DỮ LIỆU NÂNG CAO Hình: RDBMS Hình: Cơ sở dữ liệu đồ thị như một RDBMS III.2. CSDL đồ thị dựng lên một Key-Value Store Một mô hình Key-Value tuyệt vời cho tra cứu các giá trị đơn giản hoặc danh sách. Khi các giá trị được kết nối với nhau, bạn đã có một đồ thị.Neo4j cho phép bạn xây dựng cấu trúc dữ liệu đơn giản thành phức tạp hơn, dữ liệu kết nối với nhau. Hình: Key-Value Store K* đại diện cho một key, V* là một value. - 9 - [...]... - CƠ SỞ DỮ LIỆU NÂNG CAO • Tạo Node • Tạo Relationship - 21 - CƠ SỞ DỮ LIỆU NÂNG CAO • Tạo Style View - 22 - CƠ SỞ DỮ LIỆU NÂNG CAO • Màn hình đồ thị III.4 Tạo Node dùng Ứng Dụng C#: • Tạo Node mới: • Kết quả tạo Node từ Ứng dụng - 23 - CƠ SỞ DỮ LIỆU NÂNG CAO • Tạo Relationship “Con” từ Node tới Node • Kết quả tạo Relationship từ Node 19 tới Node 20 - 24 - CƠ SỞ DỮ LIỆU NÂNG CAO - 25 - CƠ SỞ DỮ LIỆU... (other) document - 10 - CƠ SỞ DỮ LIỆU NÂNG CAO Hình: CSDL Đồ thị như là Document Store - 11 - CƠ SỞ DỮ LIỆU NÂNG CAO ΠΗ Ầ ΙΙ : CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J Ν I Giới thiệu Neo4j là một cơ sở dữ liệu đồ thị, lưu trữ dữ liệu trong các nút và các mối quan hệ của một đồ thị Chung của các cấu trúc dữ liệu, biểu đồ thanh lịch đại diện cho bất kỳ loại dữ liệu, bảo quản cấu trúc tự nhiên của miền Neo4j là một dự án... việc lưu trữ dữ liệu đồ thị Nhưng xét về những lợi điểm mà dữ liệu đồ thị đem lại thì con người sẵn sàn chi trả chi phí cho vấn đề đó - 26 - CƠ SỞ DỮ LIỆU NÂNG CAO Tài liệu tham khảo 1 PGS.TS Đỗ Phúc - Bài giảng môn học Cơ sở dữ liệu nâng cao Chương trình đào tạo thac sĩ CNTT qua mạng 2 Website tham khảo: http:/ /neo4j. org/ http://www .graph- database. org/ http://en.wikipedia.org/wiki /Graph_ database -... 24 - CƠ SỞ DỮ LIỆU NÂNG CAO - 25 - CƠ SỞ DỮ LIỆU NÂNG CAO KẾT LUẬN Việc ra đời cơ sở dữ liệu đồ thị là một điều tất yếu trong một môi trường năng động mà sự thay đổi được tính bằng giờ thậm chí bằng phút Lĩnh vực sử dụng cơ sở dữ liệu đồ thị có thể nói là rất nhiều như: trong kinh doanh, trong sinh học, trong hóa học, khoa học… Việc áp dụng cơ sở dữ liệu đồ thị không chỉ giải quyết được vấn đề lưu... đó là rút tri thức từ dữ liệu hiện có và đồng thời áp dụng máy học lên khối dữ liệu đã lưu trữ để khám phá ra những dữ liệu mới.Vì mục đích của tấc cả các ứng dụng ngày nay là không chỉ lưu trữ được dữ liệu , xử lý linh hoạt dữ liệu trong mọi thời điểm mà còn phải là một hệ thống thông minh có khả năng đưa ra những nhận xét phán đoán hoặc rút trích những kết luận chính xác từ dữ liệu nhập vào Tuy nhiên,... Node duy nhất với một Property: II.2 Relationship Mối quan hệ(Relationship) giữa các Node là một phần quan trọng của một cơ sở dữ liệu đồ thị Chúng cho phép cho việc tìm kiếm dữ liệu liên quan Cũng giống như các Node, các mối quan hệ có thể có các Property - 12 - CƠ SỞ DỮ LIỆU NÂNG CAO Một mối quan hệ kết nối hai nút, và được bảo đảm có bắt đầu có hiệu lực và các nút kết thúc Khi mối quan hệ luôn luôn...CƠ SỞ DỮ LIỆU NÂNG CAO Hình: CSDL đồ thị giống như Key-Value Store III.3 CSDL Đồ thị liên quan Column-Family: Column-Family (BigTable-Style) cơ sở dữ liệu là một sự tiến hóa có giá trị quan trọng, bằng cách sử dụng "gia đình" để cho phép nhóm hàng Lưu trữ trong một đồ thị, các gia đình có thể trở thành thứ bậc, và các mối quan hệ giữa các dữ liệu trở nên rõ ràng III.4 CSDL... thông qua Document Store: Hệ thống phân cấp container của một cơ sở dữ liệu tài liệu có thể chứa dữ liệu miễn phí tốt đẹp, lược đồ có thể dễ dàng được thể hiện như một cái cây Đó là tất nhiên một đồ thị Hãy tham khảo các tài liệu khác (hoặc các yếu tố tài liệu) bên trong cây đó và bạn có một đại diện có ý nghĩa hơn của cùng một dữ liệu Khi trong Neo4j, những mối quan hệ dễ dàng điều hướng Hinh: Document... Version Neo4j thời gian chạy được liên tục thử nghiệm với JRE 1.6 III.2 Cài đặt Neo4J Server: Neo4J có thể cài đặt trên server, chạy hoặc Application hoặc System Service - 18 - CƠ SỞ DỮ LIỆU NÂNG CAO - Download gói mới nhất tại http:/ /neo4j. org/download - -Chọn version tương thích với platform Ở đây chọn cho hệ điều hành Windows 64 bit Giải nén file vừa download về - -Đổi tên directory top-level thành NEO4J_ HOME... con phổ truy cập, như bạn đã biết trong đồ thị các nút và các mối quan hệ thú vị được tìm thấy Neo4j đi kèm với một cuộc gọi lại của traversal API cho phép bạn chỉ định các quy tắc traversal Ở mức độ cơ bản là một sự lựa chọn giữa đi qua chiều rộng hoặc chiều sâu đầu tiên - 17 - CƠ SỞ DỮ LIỆU NÂNG CAO III CÀI ĐẶT NEO4J: III.1 Yêu cầu hệ thống: 1 CPU Hiệu suất nói chung là bộ nhớ hoặc I/O bị ràng buộc . - CƠ SỞ DỮ LIỆU NÂNG CAO Hình: CSDL Đồ thị như là Document Store - 11 - CƠ SỞ DỮ LIỆU NÂNG CAO ΠΗ Ν ΙΙ : Ầ CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J I. Giới thiệu Neo4j là một cơ sở dữ liệu đồ thị, lưu trữ dữ. tài liệu tham khảo để em có thể hoàn thành môn học này. Chân thành cám ơn! Nguyễn Văn Chung - 1 - CƠ SỞ DỮ LIỆU NÂNG CAO MỤC LỤC LỜI MỞ ĐẦU 1 CƠ SỞ DỮ LIỆU NÂNG CAO 2 PHẦN I : CƠ SỞ DỮ LIỆU. HOẠCH MÔN HỌC CƠ SỞ DỮ LIỆU NÂNG CAO Đề tài: TÌM HIỂU GRAPH DATABASE NEO4J GVHD: PGS.TS. PhúcĐỗ HVTH: Nguy n V n Chungễ ă MÃ SỐ: CH1101070 TP.Hồ Chí Minh, N m 201ă 2 CƠ SỞ DỮ LIỆU NÂNG CAO LỜI

Ngày đăng: 10/04/2015, 13:22

Từ khóa liên quan

Mục lục

  • CƠ SỞ DỮ LIỆU NÂNG CAO

  • LỜI MỞ ĐẦU

  • PHẦN I : CƠ SỞ DỮ LIỆU ĐỒ THỊ

    • I. TỔNG QUAN ĐỒ THỊ

      • I.1. Giới thiệu :

      • I.2. Đồ thị vô hướng:

      • I.3. Đồ thị có hướng:

      • II. CƠ SỞ DỮ LIỆU ĐỒ THỊ

        • II.1. Giới thiệu :

        • II.2. Nodes và Relationships :

        • II.3. Các Relationship tổ chức trong Đồ thị:

        • II.4. Truy vấn Đồ thị với một Traversal:

        • II.5. Indexes tìm các Nodes và các Relationships

        • II.6. Neo4j là một Graph Database

        • III. So sánh Database Models:

          • III.1. Một CSDL Đồ thị biến đổi một RDBMS:

          • III.2. CSDL đồ thị dựng lên một Key-Value Store

          • III.3. CSDL Đồ thị liên quan Column-Family:

          • III.4. CSDL Đồ thị thông qua Document Store:

          • PHẦN II : CƠ SỞ DỮ LIỆU ĐỒ THỊ NEO4J

            • I. Giới thiệu

            • II. Các khái niệm trong Neo4j

              • II.1. Node:

              • II.2. Relationship

              • II.3. Properties

              • II.4. Paths

Tài liệu cùng người dùng

Tài liệu liên quan