Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Chuyên ngành kinh tế Ứng dụng mô hình cơ sở dữ liệu đồ thị xây dựng cơ sở dữ liệu mạng thông tin đảng...

Tài liệu Ứng dụng mô hình cơ sở dữ liệu đồ thị xây dựng cơ sở dữ liệu mạng thông tin đảng viên tại huyện tuy phước, tỉnh bình định

.DOCX
121
1
124

Mô tả:

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN TRÌNH THỊ BÍCH PHƯỢNG ỨNG DỤNG MÔ HÌNH CƠ SỞ DỮ LIỆU ĐỒ THỊ XÂY DỰNG CƠ SỞ DỮ LIỆU MẠNG THÔNG TIN ••• ĐẢNG VIÊN TẠI HUYỆN TUY PHƯỚC, TỈNH BÌNH ĐỊNH Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 8480101 Người hướng dẫn: TS. Trần Thiên Thành LỜI CAM ĐOAN Tôi xin cam đoan đây là quá trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là hoàn toàn trung thực và có nguồn gốc rõ ràng. Quy Nhơn, ngày tháng năm 2020 Người thực hiện Trình Thị Bích Phượng LỜI CẢM ƠN Trước hết em xin được bày tỏ lòng biết ơn sâu sắc đối với thầy giáo hướng dẫn TS. Trần Thiên Thành, Khoa Công nghệ thông tin - Trường Đại học Quy Nhơn đã tận tình giúp đỡ, hướng dẫn em trong thời gian vừa qua và đã dành rất nhiều thời gian quý báu để giúp em hoàn thành đề tài luận văn được giao. Em xin chân thành cảm ơn Thầy. Em xin gửi lời cảm ơn đến các Thầy cô giáo trong Khoa Công nghệ thông tin, trường Đại học Quy Nhơn đã giảng dạy em trong suốt quãng thời gian qua, cung cấp cho chúng em những kiến thức chuyên môn cần thiết và quý báu giúp chúng em hiểu rõ hơn các lĩnh vực đã nghiên cứu để hoàn thành đề tài luận văn được giao. Cuối cùng, em xin cảm ơn gia đình và đồng nghiệp, bạn bè đã động viên cổ vũ, đóng góp ý kiến cho em trong suốt quá trình học cũng như làm luận văn tốt nghiệp giúp em hoàn thành đề tài luận văn đúng thời hạn. Quy Nhơn, ngày tháng năm 2020 Người thực hiện Trình Thị Bích Phượng MỤC LỤC •• LỜI CAM ĐOAN LỜI CẢM ƠN DANH MỤC CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH MỞ ĐẦU.........................................................................................................1 CHƯƠNG 1. CƠ SỞ DỮ LIỆU ĐỒ THỊ........................................................3 1.1. Cơ sở dữ liệu đồ thị ............................................................................. 3 1.2. Đặc trưng của cơ sở dữ liệu đồ thị.........................................................6 1.2.1 Hiệu suất (Performance)............................................................ 6 1.2.2 Linh động (Flexibility) ............................................................. 6 1.2.3 Dễ dàng phát triển và nâng cấp ................................................. 7 1.3. Một số ứng dụng của cơ sở dữ liệu đồ thị .......................................... 7 1.4. Một số hệ quản trị cơ sở dữ liệu đồ thị................................................8 1.4.1 Neo4J ........................................................................................ 8 1.4.2 DEX .......................................................................................... 9 1.4.3 Infinite Graph ............................................................................ 9 1.4.4 Hyper GraphDB......................................................................... 9 1.5. Mô hình dữ liệu của CSDL đồ thị ...................................................... 10 1.6. Hệ quản trị cơ sở dữ liệu đồ thị Neo4J................................................ 13 1.6.1 Các tính năng của Neo4j.......................................................... 13 1.6.2 Mô hình dữ liệu của Neo4J ...................................................... 14 1.7. Thao tác với dữ liệu Neo4J ............................................................... 15 1.7.1 Truy vấn b ng Cypher ............................................................. 15 1.8. Chuyển đổi từ dữ liệu quan hệ sang dữ liệu đồ thị............................. 18 1.9. Kết luận chương 1...............................................................................21 CHƯƠNG 2. XÂY DỰNG CƠ SỞ DỮ LIỆU ĐẢNG VIÊN THEO MÔ HÌNH ĐỒ THỊ ...........................................................................................................22 2.1. Giới thiệu về bài toán Quản lý Đảng viên...........................................22 2.2. Lý do chọn mô hình đồ thị để quản lý Đảng viên ..............................23 2.3. Cơ sở dữ liệu đảng viên trong mô hình quan hệ ................................27 2.3.1 Sơ đồ tổng thể ..........................................................................27 2.3.2 Chi tiết các bảng ......................................................................28 2.4. Chuyển đổi sang cơ sở dữ liệu đồ thị ................................................43 Chi tiết ý nghĩa các thực thể: .............................................................44 Chi tiết ý nghĩa các mối quan hệ: .......................................................51 2.5. Truy vấn trên cơ sở dữ liệu đảng viên................................................52 2.6. Kết luận chương 2 .............................................................................61 CHƯƠNG 3. THỰC NGHIỆM .....................................................................62 3.1. Xây dựng cơ sở dữ liệu đảng viên trên mô hình đồ thị .....................62 3.1.1 Tạo cơ sở dữ liệu đảng viên .....................................................62 3.1.2 Chuyển dữ liệu từ cơ sở dữ liệu quan hệ sang cơ sở dữ liệu đồ thị ........................................................................................................64 3.1.3 Minh họa..................................................................................68 3.2. Thực hiện các truy vấn ......................................................................71 3.3. Nhận xét và đánh giá .........................................................................77 3.4. Kết luận chương 3 ..............................................................................77 KẾT LUẬN ...................................................................................................78 DANH MỤC TÀI LIỆU THAM KHẢO .......................................................79 PHỤ LỤC QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN THẠC SĨ (bản sao) DANH MỤC CÁC TỪ VIẾT TẮT TT 1 2 3 TỪ VIẾT TẮT DIỄN GIẢI TW Trung ương DB Database (cơ sở dữ liệu) RDBMS Hệ quản trị cơ sở dữ liệu quan hệ (Relational database management system) 4 Graph Database / Cơ sở dữ liệu đồ thị GraphDB 5 CSDL Cơ sở dữ liệu 6 QLDV Quản lý Đảng viên DANH MỤC CÁC BẢNG Bảng 2- 1Cấu trúc bảng DangB'o...................................................................28 Bảng 2-2Cấu trúc bảng ChiBo ........................................................................29 Bảng 2-3Cấu trúc bảng Dangvien ..................................................................29 Bảng 2-4Cấu trúc bảng DmTrinhdoHocvan ..................................................3 1 Bảng 2-5Cấu trúc bảng DmTrinhdoChuyenmon ...........................................3 1 Bảng 2-6Cấu trúc bảng Sinhhoatdang ...........................................................32 Bảng 2-7Cấu trúc bảng Dangvienthamgiasinhhoatdang ................................32 Bảng 2-8Cấu trúc bảng Vanban .....................................................................33 Bảng 2-9Cấu trúc bảng Banhanhvanbantoichibo ...........................................34 Bảng 2-10Cấu trúc bảng DmKqXeploai..........................................................35 Bảng 2-11Cấu trúc bảng DanhmucXeploainam .............................................35 Bảng 2-12Cấu trúc bảng Xeploaidangviennam ..............................................36 Bảng 2-13Cấu trúc bảng Dmtinhtp .................................................................36 Bảng 2-14Cấu trúc bảng Dmquanhuyen..........................................................37 Bảng 2-15Cấu trúc bảng Dmchucvu ...............................................................37 Bảng 2-16Cấu trúc bảng Dmxeploaicongtac ..................................................37 Bảng 2-17Cấu trúc bảng Quatrinhcongtac.......................................................38 Bảng 2-18Cấu trúc bảng Dmquanhe ...............................................................39 Bảng 2-19Cấu trúc bảng Quanhegiadinh ........................................................40 Bảng 2-20Cấu trúc bảng Dmloaitaisan ..........................................................4 1 Bảng 2-21Cấu trúc bảng Dmlydotanggiamts...................................................41 Bảng 2-22Cấu trúc bảng Kekhaithunhaphangnam .........................................42 Bảng 2-23Cấu trúc bảng Kekhaithunhapchitiettaisan ....................................42 Bảng 3-1 Danh sách các bảng trích từ cơ sở dữ liệu đảng viên......................64 Hình 1.1Toàn cảnh các mô hình CSDL thông dụng 4 ....................................3 Hình 1.2. Đồ thị thuộc tính biểu diễn thông tin thư mục của các công bố khoa học 2 ..................................................................................................4 Hình 1.3 Node trong cơ sở dữ liệu đồ thị........................................................10 Hình 1.4 Relationship trong cơ sở dữ liệu đồ thị ............................................10 Hình 1.5 Minh họa mối quan hệ một nút đến chính nó ..................................11 Hình 1.6 Minh họa nhãn trong các nodes .......................................................12 Hình 1.7 Minh họa Traversal ..........................................................................13 Hình 1.8 Đồ thị minh họa cho câu lệnh Cypher .............................................15 DANH MỤC CÁC HÌNH Hình 2.1 Mối quan hệ giữa đảng viên và chi bộ trong mô hình đồ thị ...........24 Hình 2.2 Minh họa bảng DANGVIEN ...........................................................25 Hình 2.3 Minh họa mối quan hệ Friend_Of của các đảng viên ......................26 Hình 2.4 Minh họa chuyển dữ liệu từ bảng sang đồ thị..................................27 Hình 2.5 Sơ đồ của cơ sở dữ liệu đảng viên trong mô hình quan hệ ..............28 Hình 2.1 Lược đồ cơ sở dữ liệu đảng viên trong mô hình đồ thị.....................43 Hình 3.1 Tạo CSDL QLDVTuyPhuoc............................................................62 Hình 3.2 Khởi động CSDL QLDVTuyPhuoc..................................................62 Hình 3.3 CSDL QLDVTuyPhuoc đã khởi động..............................................63 Hình 3.4 Giao diện quản lý CSDL QLDVTuyPhuoc .....................................63 Hình 3.5 Import dữ liệu vào CSDL QLDVTuyPhuoc ....................................67 Hình 3.6 Minh họa CSDL QLDVTuyPhuoc với 2 loại nút DangBo và ChiBo70 1 MỞ ĐẦU Lí do chọn đề tài: Cơ sở dữ liệu mô hình quan hệ (RDBMS có vai tr to lớn trong việc quản lý dữ liệu trong thời gian trước đây. Tuy vậy, đến nay do nhu cầu quản lý thông tin đa dạng, phong phú và phức tạp hơn nên việc dùng mô hình quan hệ để quản lý dữ liệu g p nhiều khó khăn trong việc triển khai và sử dụng. Một số mô hình cơ sở dữ liệu mới ra đời đáp ứng nhu cầu quản lý dữ liệu phức tạp như mô hình hướng đối tượng, mô hình đồ thị, mô hình họ cột,.. Cơ sở dữ liệu đồ thị (Graph database được sử dụng trong các dữ liệu có nhiều mối quan hệ như mạng xã hội, các hệ gợi ý, các hệ thống điều khiển truy cập, Điểm mạnh của cơ sở dữ liệu đồ thị là khả năng lưu trữ các mối quan hệ và truy vấn trên những quan hệ. Trong những năm vừa qua việc quản lý cơ sở dữ liệu Đảng viên đã và đang được xây dựng đâu đó ở nhiều Đảng bộ nh m lưu trữ và tìm kiếm, thống kê về dữ liệu Đảng viên. Tuy nhiên, nhu cầu về lưu trữ và tìm kiếm thông tin Đảng viên ngày càng nhiều và phức tạp nên cơ sở dữ liệu Đảng viên đã xây dựng đôi khi không đáp ứng được, đ c biệt với các Đảng bộ lớn có nhiều đảng viên, có nhiều cấp Đảng bộ ho c chi bộ trực thuộc thì việc quản lý trở nên khó khăn, phức tạp hơn rất nhiều. Trong bối cảnh đó, việc xây dựng hệ thống cơ sở dữ liệu Quản lý Đảng viên là một giải pháp đáp ứng nhu cầu quản lý và tìm kiếm thông tin Đảng viên đa dạng, phong phú và nhanh chóng. Sở dĩ việc chọn mô hình đồ thị thay cho mô hình quan hệ vì mô hình quan hệ bắt buộc dữ liệu phải có cấu trúc ch t chẽ và việc lưu trữ các mối quan hệ trong mô hình quan hệ rất hạn chế. Trong khi đó nhu cầu quản lý dữ liệu Đảng viên cần nhiều thông tin không có cấu trúc ch t và cần lưu nhiều mối quan hệ của Đảng viên, hơn nữa, do nhu cầu quản lý việc mở rộng và thay đổi thường xuyên diễn ra. Cơ sở dữ liệu đồ thị là một cơ sở dữ liệu NoSQL, mô hình dữ 2 liệu dựa trên lý thuyết đồ thị với khả năng biểu diễn các mối quan hệ giữa các đối tượng rất phong phú. Cơ sở dữ liệu đồ thị cho phép lưu trữ dữ liệu không cần cấu trúc ch t như mô hình quan hệ, cho phép truy vấn trên dữ liệu thuộc tính và các quan hệ nên thuận tiện nhanh chóng khi cần tìm kiếm thông tin quan hệ của những Đảng viên. Luận văn này tạ p trung vào ứng dụng cơ sở dữ liệu đồ thị để thiết kế và xây dựng cơ sở dữ liệu Quản lý Đảng viên tại huyện Tuy Phước, Tỉnh Bình Định sao cho đáp ứng được nhu cầu lưu trữ, xử lý dữ liệu và tìm kiếm thông tin nhanh chóng, đáp ứng nhu cầu phong phú của nghiệp vụ Quản lý Đảng viên. CHƯƠNG 1. CƠ SỞ DỮ LIỆU ĐỒ THỊ Trong chương này sẽ trình bày về mô hình cơ sở dữ liệu đồ thị và giới thiệu một hệ quản trị cơ sở dữ liệu mô hình đồ thị được sử dụng phổ biến là Neo4J. 1.1. Cơ sở dữ liệu đồ thị Cơ sở dữ liệu mô hình đồ thị được dựa vào lý thuyết đồ thị và mô hình cơ sở dữ liệu ngữ nghĩa (xem hình 1.1). Hình 1.1T n ản n CSDL n ụn Đồ thị G là một c p G = (V, E , trong đó V là tập hữu hạn các phần tử, gọi là các đỉnh; E c V X V là tập các c ặp đỉnh, gọi là các cạnh. Đồ thị gọi là có hướng nếu m i cạnh xác định thứ tự của hai đỉnh. Một đồ thị gọi là đồ thị đơn nếu giữa hai đỉnh có không quá một cạnh. Một đồ thị mà giữa hai đỉnh có nhiều hơn một cạnh gọi là đa đồ thị. Trong cơ sở dữ liệu đồ thị thường dùng khái niệm đồ thị thuộc tính (Property Graph) được định nghĩa như sau. Cho L là tập hữu hạn các nhãn, P là tập hữu hạn các tên thuộc tính, V là tập các giá trị nguyên tố. Địn n 1 đồ ị u n 2 Đồ thị thuộc tính G là một bộ G = (N, E, p, Ằ, ơ), trong đó: - N là tập hữu hạn các nút (gọi là các đỉnh , - E là tập hữu hạn các cạnh, - p : E ^(N X N) là một ánh xạ mỗ i cạnh với một c ặp đỉnh, SET+(Z) là hàm kết hợp mỗ i đỉnh ho ặc cạnh Ằ : (N u E) - với một nhãn thuộc tập L, - ơ : (N^ E)XP ^SET'( V là một ánh xạ kết hợp mỗ i đỉnh hoặc cạnh với một những thuộc tính và m i thuộc tính gán cho nó một tập những giá trị trong V. Author order-'1” / has author order=“l” Author / Entry, InProceedings title=“GraphLog: a pages—‘404-416” X booktitle f simple paths ...” numpages—“24” \ keyword=“recursive queries” / keyword—‘paths” \ s' X fk title-‘SIAM J. Comput. year—‘1995” vol=“24 X \ J Hình 1.2. Đồ thị thu ộ c tín h biếu d iễn th ôn g tin th ư m ụ c củ a các cô n g bố kh 0 a h ọ c [2] Ví dụ 1. Đồ thị thuộc tính biểu diễn thông tin thư mục của các công bố khoa học được cho như hình 1. Các nút là bài viết, tạp chí, k yếu hội thảo, tác giả được gán các nhãn Author , Journal , Proceedings , Entry, InProceedings , Entry, Article . Các cạnh là các đường nối giữa các nút, m i cạnh có một nhãn has author , cites , booktitle , published in . Các đỉnh và cạnh có các thuộc tính và giá trị, ch ng hạn order= 1 , fname= Mariano , N = { n1, n2, n3, n4, n5, n6, n7} E = { e1, e2, e3, e4, e5, e6, e7} Ấ(n1)={Author}, (n, fname )=’’Mariano’ ’, (n1, lname )=’’Consens ’ ’ ^(n2)={Author}; (n2; fname ) = “ ‘Alberto ’’, (n2, lname ) = ’’Mendelzon’ ’ Ấ(n3)={Author}, (n3, fname )=’’Peter’ (n3, lname )=’’Wood’ ’ Ấ(n4)={Article}, (n4, title )=’’GraphLog (n4, numpages )=’’13’ (n4, keyword = Datalog Ấ(n5)={Article}, (n5, title )=’ ’Finding (n5, numpages )=’ ’24 ’ ’ (n5,keyword = recursive queries , (n5, keyword = paths Ấ(n6)={Conference}, (n6, title )=’’PODS’ (n6, year)= “‘1990’(n6, month = April Ấ(n7)={Joumal}, (n7, title) = “SIAM (n7, year)=”1995”, (n7, vol = 24 , (n7, num = 6 p(ei) = (n4, n1), Ấ(e1)={has_author}, (e1, order) =’’1’ ’ p(e2) = (n4, ni), Ấ(e2)={has_author}, (e2, order) = “‘2 ’’ p(e3) = (n5, n2), Ấ(e3)={has_author}, (e3, order) = ’’1’ ’ p(e4) = (n5, n3), Ấ(e4)={has_author}, (e4, order) = “‘2 ’’ p(e5) = (n5, n4), Ấ(e5)={cites} p(e6) = (n4, n6), Ấ(e6)={booktitle}, (e6, pages) = ’’404-416’ ’ p(e7) = (n5, n7), Ấ(e7)={published_in}, (e7, pages) = ’’1234-1258’ ’ Theo Wikipedia: Cơ sở dữ liệu đồ thị (Graph Database) là cơ sở dữ liệu sử dụng cấu trúc đồ thị với các nút (node), cạnh (edge) và thuộc tính (property) để biểu diễn và lưu trữ dữ liệu. Tùy theo mô hình dữ liệu của mỗ i cơ sở dữ liệu mà loại đồ thị tương ứng được sử dụng. Chẳng hạn cơ sở dữ liệu Neo4J sử dụng loại đồ thị thuộc tính. Cơ sở dữ liệu đồ thị là một loại cơ sở dữ liệu NoSQL, trong đó dữ liệu được lưu tại các nút, các cạnh và các thuộc tính. Khác với mô hình quan hệ, cơ sở dữ liệu mô hình đồ thị đ t trọng tâm vào các mối quan hệ của dữ liệu nên ph hợp với những loại dữ liệu có nhiều mối quan hệ và những truy vấn phức tạp trên các mối quan hệ. 1.2. Đặ c t rưng của cơ sở dữ liệu đồ thị 1.2.1 Hiệu suất (Performance) Trong các CSDL quan hệ, khi các tập dữ liệu ngày càng lớn thì việc thực hiện các truy vấn sâu và phải kết hợp nhiều bảng dữ liệu sẽ tạo ra các bảng dữ liệu trung gian có kích thước lớn và tốn thời gian xử lý do sử dụng phép kết nối. Với CSDL đồ thị thì dữ liệu không phải kết nối dữ liệu vì bản thân dữ liệu đã có s n các kết nối trong các mối quan hệ, vì các truy vấn đã được nội bộ hóa thành một phần của đồ thị. Như vậy, thời gian thực hiện truy vấn t lệ với kích thước của một phần đồ thị được duyệt để đáp ứng truy vấn chứ không phụ thuộc vào kích thước của toàn bộ CSDL đồ thị. Do vậy dù kích thước của tập dữ liệu có tăng lên thì thời gian thực hiện truy vấn vẫn không ảnh hưởng. 1.2.2 Linh động (Flexibility) Tính linh động là một đ c trưng thấy rõ và khác biệt nhất của CSDL NoSQL mà CSDL đồ thị là một trong số đó, so với các CSDL khác, rõ nhất là CSDL mô hình quan hệ. Với CSDL đồ thị, chúng ta không cần xác định trước cấu trúc hay mô hình của CSDL. Có thể so với CSDL quan hệ, khi xây dựng một CSDL cho một bài toán, chúng ta phải xác định cấu trúc của các bảng là các trường, kiểu của trường và sau đó gần như là không thay đổi gì ho c thay đổi cũng rất khó khăn, đơn cử như việc thêm bớt trường hay thay đổi kiểu của trường . . . Với CSDL đồ thị thì chúng ta hoàn toàn có thể thêm vào nút hay các mối quan hệ, các thuộc tính mới mà không làm ảnh hưởng tới các nút khác, cũng không làm thay đổi kết quả truy vấn đang thực hiện. Như vậy, có thể thấy CSDL đồ thị rất linh động, phù hợp cho các công việc có tính chất hay thay đổi và độ ổn định không cao. Bởi tính linh động này mà người ta không cần phải cam kết một mô hình nào đó mà sau một thời gian lại thấy không phù hợp và phải xây dựng lại. Ngoài ra thì tính linh động này còn giảm bớt chi phí bảo trì và rủi ro như các CSDL khác mang lại. 1.2.3 Dễ dàng phát triển và nâng cấp Với tính chất tự nhiên trong các lược đồ tự do của mô hình dữ liệu của CDL đồ thị cộng với việc được h trợ tốt các giao diện lập trình ứng dụng (API cũng như ngôn ngữ truy vấn, CSDL đồ thị cho phép chúng ta phát triển các ứng dụng một cách có kiểm soát. Chúng ta có thể dễ dàng vận dụng và thử các xu hướng mới một cách nhanh nhẹn và đưa ra xu hướng phù hợp nhất có thể. 1.3. M t số ứng dụng c ơ sở dữ liệu đồ thị Khả năng thực thi nhanh (Performance là ưu điểm rất lớn của CSDL đồ thị so với CSDL quan hệ (RDBMS). Khi dữ liệu lớn cùng với việc sử dụng nhiều câu lệnh join sẽ khiến hiệu suất trở nênchậm chạp, trong khi thì CSDL đồ thị với cách truy vấn dữ liệu chỉ tập trung vào một phân khu của đồ thị có chứa các dữ liệu liên quan nên hiệu suất không thay đổi nhiều. Ngoài ra, CSDL đồ thị 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 truy vấn cũ. Với các ưu điểm này, CSDL đồ thịthường được dùng trong các hệ thống: mạng nơron, mạng xã hội (tìm bạn bè), giới thiệu sản phẩm(dựa theo sở thích/lịch sử mua sắm của người dùng), . Với những kiểu ứng dụng như vậy thì cách lưu trữ dữ liệu của RDBMS đều không thích hợp khi mà chúng chỉ chuẩn hóa dữ liệu để lưu vào các bảng và làm giảm đi tính kết nối. Cách duy nhất để tạo kết nối ở mô hình quan hệ là tạo các khóa ngoại (foreign key) đến các bản ghi ở bảng khác, và việc join các bảng 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 mối quan hệ là phức tạp. Ví dụ với mạng xã hội có dữ liệu liên kết nhiều, CSDL đồ thị là 1 lựa chọn tốt hơn nhiều so với RDBMS. Facebook hiện d ng CSDL đồ thị để liệt kê và minh họa các mối quan hệ khác nhau giữa những người dùng. Ví dụ vớicác giải pháp về giám sát mạng (security & network monitoring . CSDL đồ thị được sử dụng nhiều, đơn giản vì các ứng dụng đó cần phân tích nhiều các kết nối từ nơi này sang nơi khác. Thực tế thì các dữ liệu trong 1 hệ thống mạng là dữ liệu có nhiều kết nối. Ví dụ: Máy A truy vấn DNS tới server B để vào website C download file D Chính vì vậy, nếu xây dựng CSDL của hệ thống Network Monitoring sử dụng RDBMS chắc chắn sẽ rất phức tạp. Trong tình huống này nếu ứng dụng CSDL đồ thị thì sẽ đơn giản hơn, ví dụ các máy tính là 1 loại node, các truy vấn sẽ là quan hệ, máy chủ ho c thiết bị mạng có thể được xếp thêm vào 1 loại node khác. Giả sử 1 tình huống như sau: Một số máy tính trong hệ thống mạng có phần mềm quản lý nhân sự bị xung đột với một phần mềm nào đó. Trong khi, các máy tính c n lại không bị xung đột. Dựa vào CSDL đồ thị ta sẽ nhanh chóng tìm ra các phần mềm tr ng nhau trên các máy tính có bị xung đột. Để từ đó khoanh v ng được nguyên nhân. 1.4. M số ệ uản ị ơ sở ữ ệu đồ ị 1.4.1 Neo4J Neo4J là CSDL đồ thị của công ty Neo Technology được viết b ng Java và giới thiệu lần đầu vào năm 2007. Neo4J là phần mềm nguồn mở cho phiên bản cộng đồng theo giấy phép GPLv3, ngoài ra c n có phiên bản thương mại cho doanh nghiệp với các chức năng nâng cao. Neo4J có thể d ng nhiều ngôn ngữ lập trình để lập trình thao tác với dữ liệu như Java, Python, Ruby, C , Neo4J là một CSDL đồ thị tốt nhất cho doanh nghiệp, nó có thể mở rộng đến hàng t nút và các mối quan hệ giữa chúng. Trong Neo4J các nút và mối quan hệ đều có thuộc tính. Nó được phát triển dựa trên mô hình đồ thị thuộc tính. Neo4J đảm bảo tính ACID nhưng không h trợ sharding. Chi tiết hơn về Neo4J sẽ được trình bày trong phần sau. 1.4.2 DEX DEX là một CSDL đồ thị dựa trên bitmap, được viết b ng C , ra đời vào năm 2008. Các phiên bản gần đây DEX h trợ cả Java, .Net để lập trình thao tác với dữ liệu. DEX là một phần mềm nhỏ gọn nhưng h trợ các truy vấn đa dạng với các mạng khác nhau như phân tích mạng xã hội, nhận dạng mẫu, DEX được biết đến như một CSDL đồ thị hiệu năng cao và là một trong những CSDL NoSQL được sử dụng phổ biến trong các ứng dụng. 1.4.3 Infinite Graph Là sản phẩm của tổ chức Objectivity, một tổ chức chuyên tập trung vào các giải pháp cơ sở dữ liệu có tính co giãn lớn sử dụng k thuật hướng đối tượng và phân tích mối quan hệ. Infinite Graph là CSDL đồ thị phân tán phát triển trên Java và dựa trên cấu trúc kiểu đồ thị. Infinite Graph cho phép làm việc trên đám mây, được thiết kế để làm việc với thông lượng cao. Infinite Graph h trợ index trên nhiều trường để truy vấn hiệu năng cao. 1.4.4 Hyper GraphDB Hyper GraphDB là CSDL đồ thị nguồn mở h trợ hyper đồ thị. Hyper đồ thị là một dạng đồ thị khác, trong đó cạnh này là điểm đến của những cạnh khác. Hyper GraphDB h trợ truy vấn trực tuyến với API được viết b ng Java. Hyper GraphDB được sử dụng cho những ứng dụng có độ phức tạp cao và tri thức tính co giãn lớn. Hyper GraphDB lưu trữ hướng đồ thị và lập chỉ mục t y biến. Trong CSDL đồ thị này, một hyper cạnh dễ dàng chuyển đổi sang một bộ. Hyper GraphDB là CSDL hướng đồ thị và phân tán 1.5. Mô hình dữ liệu c CSDL đồ thị Mô hình dữ liệu được biểu diễn dưới dạng đồ thị và có các yếu tố liên kết với nhau, với số lượng quan hệ không xác định giữa chúng. Thành phần cơ bản trong mô hình cơ sở dữ liệu đồ thị gồm có: - Đỉnh (Node): Nút là một đơn vị cơ bản của đồ thị. Thường được sử dụng để biểu diễn các thực thể (entities như người, tài khoản,.. Nó chứa các thuộc tính với các c p khóa-giá trị, gần tương đương với bản ghi, quan hệ ho c hàng trong cơ sở dữ liệu quan hệ. Ví dụ: Chúng ta có thể coi Person là một node cơ bản. ĩ Person name = Tom Hanks' born = 1958 ) Hình 1.3 N e n ơ sở dữ liệu đồ thị - Cạnh (Edge/relationship : c n được gọi là mối quan hệ (relationship), là các đường kết nối các node, đại diện cho mối quan hệ giữa chúng. Ngoài ra relationship c n có thể cấu trúc phân chia các nodes thành những cấu trúc khác nhau, biến đồ thị thành các dạng cấu trúc giống như là list, tree, map, ho c có thể là thực thể phức hợp (compound entity . Thực thể phức hợp là thực thể có nhiều liên kết phức tạp liên kết với nhau. Cácrelationships sẽ giúp cho đồ thị sẽ có ý nghĩa hơn, gẫn gũi với bài toán thực tế hơn. Hình 1.4 Relationship n ơ sở dữ liệu đồ thị Ở đây ta có thể thấy có hai quan hệ là ACTED_IN và DIRECTED, hai quan hệ này giúp cho chúng ta có thể hiểu rõ hơn về dữ liệu mà chúng ta đang có. Giống như các nút, các mối quan hệ cũng có thể chứa các thuộc tính như các cặp khóa-giá trị. Đồ thị trong hình 1.4, quan hệ ACTED_IN có thuộc tính roles cung cấp thêm thông tin cho mối quan hệ. - Loại quan hệ (relationship type): M i một quan hệ chỉ được phép có đúng một kiểu quan hệ. Ở ví dụ trên chúng ta đã sử dụng ACTED_IN và DIRECTED như là 2 kiểu quan hệ giữa các thực thể. Thuộc tính roles trong liên kết ACTED_IN có cấu trúc dữ liệu là một mảng (array) với chỉ một phần tử trong nó. Với việc sử dụng liên kết ACTED_IN, với node Tom Hanks ta có thể hiểu đây chính là source node và node Forrest Gump là target node. Ta có thể dễ dàng nhìn thấy được là node Tom Hanks đang hướng đến node Forrest Gump. Chú ý một điều là Relationships luôn luôn phải có hướng (direction). Một node cũng có thể có Relationships đến chính nó. Nếu như chúng ta muốn biểu diễn Tom HanksKNOWNS đến chính bản thân node đó, chúng ta có thể biểu diễn như sau: [ name = 'Tom Hanks' I tom =1856 I ‘VkL'ki/’LhjiHo l_>NOWS Hình 1.5 Minh họa mối quan hệ m nú đến chính nó - Thuộc tính (Properties : Là một c p khóa (key)-giá trị (value) được d ng để biểu diễn cho các thuộc tính của các nodes cũng như là các relationships. Trong ví dụ về đồ thị ban đầu chúng ta sử dụng các properties là name và born cho các nodes có labels là Person, title và released cho node Movie. Đồng thời ta cũng sử dụng property roles trong :ACTED_IN liên kết. Các property có thể lưu trữ các kiểu dữ liệu đa dạng khác nhau như là number, string và boolean với các miền giá trị tương ứng. Để hiểu rõ hơn về vấn đề này chúng ta có thể tìm hiểu thêm phần Cypher. - Nhãn (label): Có thể được sử dụng để mô hình hóa miền giá trị của các node lại với nhau, thông thường chúng ta sẽ gộp nhóm các node có cùng kiểu dữ liệu ho c là thuộc tính thành một tập hợp rồi sau đó gắn label vào cho chúng. Ví dụ, tất cả những nodes mà biểu diễn cho một đối tượng là users thì có thể được gắn labels là :Users. Lúc này bạn có thể thuận tiện làm việc với Neo4j thông qua các nodes đã được gắn labels này, ch ng hạn như là tìm tất cả các users có tên khớp với ABC,. . . M i một node thì có thể có một ho c nhiều lables, ở hình trên, các nodes sẽ có các nhãn tương ứng là Person và Movie. Ta có thể thấy m i một nhãn lúc này sẽ biểu diễn một lớp đối tượng khác nhau. Nhưng trong những bài toán khác khi mà chúng ta muốn biểu diễn thêm những chiều khác nhau của dữ liệu thì sao? Lúc này ta có thể thêm labels vào cho các nodes. Hình vẽ phía bên dưới sẽ minh họa rõ hơn cho việc sử dụng nhiều labels cho cùng một node. Hình 1.6 Minh họa nhãn trong các nodes - Traversals and paths: Traversals là cách để làm thế nào có thể truy vấn được cơ sở dữ liệu đồ thị. Traversals đồ thị có nghĩa là duyệt qua tất cả các nodes b ng cách "lần" theo các liên kết (following relationships) và phải tuân thủ theo một số luật nhất định. Trong hầu hết các trường hợp chúng ta sẽ chỉ phải duyệt qua các tập
- Xem thêm -

Tài liệu liên quan