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à 2 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ữ 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.
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. 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.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 V 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ị. 4 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, ρ, λ, σ , 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, - ρ : E (N × N là một ánh xạ m i cạnh với một c p đỉnh, - λ : (N E) SET+(L) là hàm kết hợp m i đỉnh ho c cạnh với một nhãn thuộc tập L, - σ : (N E)×P 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.
Đồ 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 5 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}, (n1, 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)={Journal}, (n7, title = SIAM. , (n7, year = 1995 , (n7, vol = 24 , (n7, num = 6 ρ(e1) = (n4, n1), λ(e1)={has_author}, (e1, order = 1 ρ(e2) = (n4, n2), λ(e2)={has_author}, (e2, order = 2 ρ(e3) = (n5, n2), λ(e3)={has_author}, (e3, order = 1 ρ(e4) = (n5, n3), λ(e4)={has_author}, (e4, order = 2 ρ(e5) = (n5, n4), λ(e5)={cites} ρ(e6) = (n4, n6), λ(e6)={booktitle}, (e6, pages = 404-416 ρ(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. 6 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 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.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 7 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.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ể.
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ũ.