1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứ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

119 17 1

Đ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

Thông tin cơ bản

Tiê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
Tác giả Trình Thị Bích Phượng
Người hướng dẫn TS. Trần Thiên Thành
Trường học Trường Đại Học Quy Nhơn
Chuyên ngành Khoa Học Máy Tính
Thể loại luận văn
Năm xuất bản 2020
Thành phố Quy Nhơn
Định dạng
Số trang 119
Dung lượng 3,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

TRƯỜNG ĐẠI HỌC QUY NHƠN

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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)

Trang 6

TT TỪ VIẾT TẮT DIỄN GIẢI

database management system)

Trang 7

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 31

Bảng 2-5Cấu trúc bảng DmTrinhdoChuyenmon 31

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 41

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

Trang 8

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

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

Trang 9

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à

Trang 10

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

Trang 11

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  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ị

Trang 12

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ố

Trang 13

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,

ρ(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

Trang 14

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 Đ ưn ơ sở ữ ệu đồ ị

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

Trang 15

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

Trang 16

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,

Trang 17

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

Trang 18

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.

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ị

Trang 19

Ở đâ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:

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

Trang 20

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

Trang 21

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 con của đồ thị mà không cần phải duyệt toàn bộ đồ thị

Trong ví dụ phần mở đầu, nếu muốn tìm ra movie mà Tom Hanks đã

acted , traversal sẽ bắt đầu từ node Tom Hanks, đi theo relationship ACTED_IN và nhận thấy relationship này có liên kết với một nodeForrest Gumpvà đó chính là kết quả mà chúng ta cần tìm kiếm (Minh họa b ng

đường nét đứt trong Hình 1.7)

Hình 1.7 Minh họa Traversal

Ở đây ta dễ dàng thấy được r ng chi phí để tìm ra được kết quả là 1 Path ngắn nhất là path có độ dài b ng zero Nó chính là 1 node đơn và không

có relationship

1.6 Hệ quản trị cơ sở ữ ệu đồ thị Neo4J

Neo4j là một cơ sở dữ liệu NoSql dạng đồ thị mã nguồn mở xây dựng

b ng Java và Scala do tập đoàn Neo technology tài trợ Được phát triển từ năm 2003 và được public từ năm 2007 Ngày nay đã có hàng ngàn công ty và

tổ chức sử dụng trên các lĩnh vực như quản lý mạng, phân tích phần mềm, nghiên cứu khoa học, routing, mạng xã hội,

1.6.1 Các tính năng của Neo4j

Mô hình dữ liệu ượ đồ linh hoạt): Neo4j tuân theo mô hình dữ liệu

đồ thị CSDL của Neo4J chứa các nút (thực thể) và các nút này được kết nối

Trang 22

với nhau (được mô tả bởi các mối quan hệ) Các nút và mối quan hệ lưu trữ

dữ liệu trong các c p khóa-giá trị được gọi là thuộc tính.Trong Neo4j, không cần phải theo một lược đồ cố định, có thể thêm ho c xóa thuộc tính theo yêu cầu

Thu c tính ACID: Neo4j h trợ đầy đủ các quy tắc ACID (Nguyên tử,

Nhất quán, Cách ly và Bền vững)

Khả năn ở r n v đ tin cậy:Có thể mở rộng cơ sở dữ liệu mà

không ảnh hưởng đến tốc độ xử lý truy vấn và tính toàn vẹn dữ liệu Neo4j cũng cung cấp h trợ khả năng sao chép để đảm bảo an toàn và tin cậy cho dữ liệu

Ngôn ngữ truy vấn Cypher: Neo4j cung cấp một ngôn ngữ truy vấn

khai báo mạnh mẽ được gọi là Cypher Cypher có tính chất dễ học, được sử dụng để tạo và truy vấn dữ liệu theo cấu trúc khá đơn giản

Ứng dụng web tích hợp: Neo4j cung cấp ứng dụng web Neo4j

Browser tích hợp Sử dụng ứng dụng này, ta có thể tạo và truy vấn dữ liệu biểu đồ một cách trực quan

T n đ ều khi n: Neo4j có thể làm việc với API REST để làm việc

với các ngôn ngữ lập trình như Java, Scala, Java Script.Nó h trợ hai loại API Java: API Cypher và API Java gốc để phát triển các ứng dụng Java

Trang 23

b ng các phím mũi tên

- Mối quan hệ có hướng: Đơn hướng và Hai chiều

- M i Mối quan hệ chứa "Nút bắt đầu" ho c "Từ nút" và "Đến nút" ho c

"Nút kết thúc"

- Cả Nút và Mối quan hệ đều chứa các thuộc tính

- Mối quan hệ kết nối các nút

Cơ sở dữ liệu đồ thị Neo4j lưu trữ tất cả dữ liệu của nó trong nút và mối quan hệ

1.7 Thao v ữ ệu Ne J

Để thao tác với dữ liệu đồ thị, Neo4j sử dụng ngôn ngữ truy vấn Cypher query language (Cypher Cypher được d ng để truy vấn, cập nhập hay quản trị cơ sở dữ liệu đồ thị một cách hiệu quả

Cypher được lấy cảm hứng từ rất nhiều các cách tiếp cận khác nhau,

một số các từ khóa như là WHERE, ORDER BY được lấy cảm hứng từ

ngôn ngữ SQL, trong khi đó pattern matching thì lại được mượn từ SPARQL Ngoài ra một vài ngữ nghĩa thì lại được mượn từ các ngôn ngữ khác như là Haskell và Python Cấu trúc của Cypher được xây dựng dựa trên ngôn ngữ Tiếng Anh với ngữ nghĩa thuận tiện cho người thao tác với ngôn ngữ, điều này giúp cho việc viết và đọc các câu query cũng dễ dàng hơn

1.7.1 u vấn ng C ph

Để truy vấn b ng Cypher, hãy xem xét đồ thị dưới đây:

Hình 1.8 Đồ thị minh họa cho câu lệnh Cypher

Trang 24

Đồ thị trên mô tả mối quan hệ bạn bè chung của ba người bạn Ngôn ngữ Cypher sử dụng các mã ASCII để biểu diễn các mối quan hệ này như sau:

(c)-[:KNOWS]->(b)-[:KNOWS]->(a), (c)-[:KNOWS]->(a)

Mẫu trên trong ngôn ngữ Cypher mô tả một con đường kết nối c đến b,

b đến a, và c đến a Nhìn chung, ngôn ngữ Cypher thể hiện rất tự nhiên từ cách chúng ta vẽ đồ thị trên bảng trắng

Cũng như hầu hết các ngôn ngữ khác, Cypher cũng có các câu lệnh

riêng Câu truy vấn đơn giản nhất bao gồm một mệnh đề START theo sau bởi MATCHvà RETURN Sau đây là một ví dụ đơn giản cho câu truy vấn sử

dụng 3 mệnh đề trên để tìm bạn chung của người dùng có tên Michael :

hệ Như ví dụ phía trên, điểm bắt đầu sẽ là điểm mà có thuộc tính name có giá trị là Michael Giá trị trả về từ việc tìm kiếm điểm này là nút a (định danh a là

do người dùng tự đ t Định danh này được sử dụng trong suốt phần còn lại của câu truy vấn

2 Lệnh MATCH

Đây là phần đ c tả b ng ví dụ từng phần Ta sử dụng các kí tự ASCII

để đại diện cho các nút và các mối quan hệ, vẽ ra các dữ liệu mà chúng ta

quan tâm Chúng ta sử dụng dấu đóng ngo c và mở ngo c để vẽ các nút (Ví dụ: ( ), ( ), (c),…), sử dụng c p dấu gạch ngang kết hợp với dấu lớn hơn

ho c nhỏ hơn để vẽ ra các mối quan hệ (–>, <–) Các dấu lớn hơn (>) và nhỏ

Trang 25

hơn (<) thể hiện hướng của quan hệ Giữa c p dấu gạch ngang có c p đóng

mở ngo c vuông, nội dung trong c p đóng mở ngo c vuông được bắt đầu

b ng dấu hai chấm và sau đó là tên của mối quan hệ (Ví dụ: -[:KNOWS]->)

Câu ví dụ trên miêu tả một đường dẫn gồm ba nút [:KNOWS]->(a), (c)-[:KNOWS]->(a), một trong số đó đã được nối với định

(c)-[:KNOWS]->(b)-danh a, những nút còn lại nối với b Các nút này được được kết nối bởi các

mối quan hệ KNOWS Mô hình này về lý thuyết có thể được sử dụng nhiều

lần trong dữ liệu đồ thị nên chúng ta nên ghim một phần chúng lại trong đồ thị

Như vậy, chúng ta đã thực hiện xong việc tìm kiếm một nút thực sự

trên đồ thị với mệnh đề START nút đại diện cho Michiael Chúng ta gắn nút này vào định danh a, rồi đưa a sang mệnh đề MATCH Từ đó ta đã ghim mô

hình này đến một điểm trong đồ thị Cypher khớp các phần còn lại của mô hình vào đồ thị vào xung quanh các điểm ghim Từ đó thì nó tìm thấy các nút khác để gắn với các định danh phù hợp Và như vậy, định danh a đại điện cho Michael, c n các định danh b, c sẽ theo định danh a mà gắn vào các nút xung quanh khớp với điều kiện trong mệnh đề MATCH

3 Lệnh RETURN

Mệnh đề này quy định việc các nút, các mối quan hệ và các thuộc tính trong dữ liệu được nối nên được trả về như thế nào cho client Trong ví dụ trên thì chúng ta mong muốn việc trả về là các nút kết nối với định danh b và c

4 Một số lệnh khác của Cypher

WHERE : cung cấp các tiêu chí để lọc các mẫu kết quả phù hợp CREATE và CREAT UNIQUE : tạo nút và các mối quan hệ DELETE : xóa nút, mối quan hệ và thuộc tính

SET : thiết lập các giá trị thuộc tính FOREACH : biểu diễn một hành động cập nhật đối với m i

Trang 26

Cũng giống các ngôn ngữ truy vấn khác, Cypher còn nhiều mệnh

đề khác như SKIP, USING, MERGE, REMOVE,

1.8 C u n đ ừ ữ ệu u n ệ s n ữ ệu đồ ị

Thông thường dữ liệu trước đây được tổ chức và lưu trữ trong các hệ quản trị cơ sở dữ liệu mô hình quan hệ Để chuyển sang mô hình CSDL đồ thị thì tổ chức và lưu trữ dữ liệu quan hệ là một cơ sở quan trọng để thiết kế CSDL đồ thị vì giữa hai mô hình có những mối liên hệ nhất định Trong [5]

đã đưa ra một số quy tắc chuyển đổi từ dữ liệu trong mô hình quan hệ sang dữ liệu mô hình đồ thị

Quy tắc 1.M i bảng thực thể được đại diện bởi một nhãn trên các nút

của dữ liệu trong bảng đó

Quy tắc 2.M i hàng trong bảng thực thể là một nút

Quy tắc 3 Các cột của bảng là các thuộc tính của nút

Quy tắc 4 Xóa các khóa chính

Ví dụ có bảng DangVien chứa các đảng viên với các thuộc tính MaDV, HoTen, GioiTinh, NgaySinh, trong đó MaDV là khóa chính, dữ liệu cụ thể:

Trang 27

Được chuyển thành nút trong CSDL đồ thị:

Quy tắc 5.Thêm các ràng buộc duy nhất cho các khóa chính theocác

nghiệp vụ,thêm chỉ mục cho các thuộc tính tra cứu thường xuyên

Quy tắc 6.Thay thế khóa ngoại b ng các mối quan hệ tới bảng khác,

loại bỏ chúng sau đó

Ví dụ cho lược đồ CSDL đảng viên với hai lược đồ con

DangVien(MaDV, HoTen, GioiTinh, NgaySinh, MaNgach)

Ngach(MaNgach, TenNgach)

Quan hệ giữa hai bảng:

MaDV HoTen GioiTinh NgaySinh MaNgach

MaNgach TenNgach

Cho trước dữ liệu như hai bảng dưới:

DangVien

HoTen: Nguyễn Văn A GioiTinh: Nam

Trang 28

MaNgach TenNgach

Khi đó sẽ chuyển thành hai nút trong CSDL đồ thị:

Quy tắc 7.Xóa dữ liệu có giá trị m c định, không cần lưu trữnhững dữ

liệu này

Quy tắc 8.Dữ liệu trong các bảng không chuẩn hóa và trùng l pcó thể

phải được tách ra thành các nút riêng biệt để có được mộtmô hình rõ ràng hơn

Quy tắc 9 Các kết nối giữa các bảng được chuyển thành các mối quan

hệ,các cột trên các bảng đó là điều kiện kết nối trở thành các thuộc tính quan

hệ

Ví dụ: Xét hai bảng

DangVien(MaDV, HoTen, GioiTinh, NgaySinh)

QTCT (MaDV, Tu, Den, ChucVu, TenCoQuan) //(Quá trình công tác) Với dữ liệu cụ thể:

Trang 29

MaDV Tu Den ChucVu TenCoQuan

0101 01/01/2005 30/9/2010 Chuyên viên UBND Huyện Tuy Phước

0101 01/10/2010 30/5/2020 P trưởng phòng Sở Giáo dục và Đào tạo tỉnh

Bình Định

Chuyển thành dữ liệu trong CSDL đồ thị:

(a)

1.9 Kết luận ươn 1

Chương 1 đã giới thiệu sơ lược về mô hình dữ liệu đồ thị và đ c trưng của

mô hình Hệ quản trị cơ sở dữ liệu Neo4J cũng được giới thiệu và đây là hệ quản trị sẽ sử dụng để minh họa cho luận văn Cuối chương là các quy tắc chuyển dữ liệu từ mô hình quan hệ sang mô hình đồ thị, đây là các quy tắc để xây dựng cơ

sở dữ liệu đảng viên mô hình đồ thị được trình bày trong chương 2

CoQuan

TenCoQuan: Sở Giáo dục và Đào tạo

Tu: 01/01/2005 Den: 30/9/2010

Trang 30

CHƯƠNG XÂY DỰNG CƠ SỞ DỮ LIỆU ĐẢNG VIÊN

THEO MÔ HÌNH ĐỒ THỊ

Chương này sẽ trình bày chi tiết tổ chức cơ sở dữ liệu Đảng viên theo

mô hình quan hệ và chuyển từ cơ sở dữ liệu này sang mô hình đồ thị Một số chức năng truy vấn thường dùng trên mô hình quan hệ cũng được chuyển đổi sang mô hình đồ thị để thấy được mô hình đồ thị vẫn đảm bảo được các thao tác cơ bản và có thể phát triển những chức năng đ c thù của mô hình đồ thị

2.1 G ệu về n Quản Đản v n

Hiện nay Ban Tổ chức Trung ương đã triển khai một hệ thống phần mềm quản lý đảng viên xuyên suốt từ trung ương đến các địa phương Phần mềm quản lý đảng viên đã h trợ cho việc tra cứu, quản lý thông tin về đảng viên một cách nhanh chóng, chính xác, giúp cho việc chỉ đạo của các cấp ủy Đảng được thuận tiện, kịp thời; Qua đó h trợ đắc lực cho cấp u các cấp trong công tác quản lý tổ chức đảng và đảng viên;công tác tổ chức, cán bộ, đào tạo bồi dưỡng, quy hoạch, quản lý sử dụng cấp ủy viên các cấp và đảng viên; công tác khen thưởng, k luật cán bộ, đảng viên; công tác kiểm tra giám sát của tổ chức đảng.Ngoài ra, h trợ các hoạt động phục vụ cho đại hội Đảng các cấp và các hoạt động chỉ đạo điều hành hàng ngày của Thường vụ, Thường trực Đảng ủy của các cơ quan nhà nước Trong phạm vi giới hạn của nhiệm vụ, luận văn chỉ giới hạn những dữ liệu và chức năng quản lý đảng viên của Đảng bộ Huyện Tuy Phước

Các chức năng chính của chương trình quản lý đảng viên:

- Quản lý hồ sơ đảng viên trong huyện Tuy Phước (thông tin cá

nhân; quan hệ gia đình; trình độ học vấn; trình độ chuyên môn)

- Quản lý sinh hoạt Đảng của các chi bộ và đảng viên trong chi bộ

- Quản lý tình trạng đảng viên

Trang 31

- Quản lý quá trình công tác của Đảng viên

- Quản lý và theo dõi kê khai thu nhậphàng năm

- Quản lý tổ chức cơ sở đảng (các chi bộ Đảng)

- Khai thác và tìm kiếm đảng viên

- Thống kê và báo cáo tổ chức đảng

Đối tượng phục vụ:

- Cán bộ, đảng viên thuộc Đảng bộ huyện Tuy Phước

- Cán bộ, đảng viên của Chi bộ trực thuộc

Chương trình quản lý đảng viên về cơ bản đã đáp ứng được những chức năng cơ bản của yêu cầu quản lý đảng viên tại Đảng bộ Huyện Tuy Phước Tuy nhiên, trong khi triển khai công việc quản lý phát sinh những yêu cầu mà chương trình chưa đáp ứng được Đ c biệt với yêu cầu quản lý ngày càng cao

và toàn diện về mọi m t, mọi quan hệ của đảng viên nên nhiều yêu cầu trên thực tế phải làm thủ công vì chương trình không đáp ứng được Ch ng hạn yêu cầu:

- "Tìm những đảng viên mà trong gia đình có 3 thế hệ đều có những đảng viên xuất sắc"

- “Tìm những Đảng viên thuộc chi bộ Thôn Vân hội, thuộc Đảng

bộ TT Diêu Trì, thuộc Đảng Bộ Tuy Phước Bình Định, là cán bộ cách mạng”

thì với tổ chức cơ sở dữ liệu như hiện nay đây là yêu cầu khó vì bài toán này

có sự phân cấp tới 3 cấp Trường hợp nâng thêm 1 cấp nữa là từ Đảng bộ Bình Định truy vấn thông tin với các yêu cầu dạng tương tự như trên là rất khó, đôi khi là không thể thực hiện được (như kết quả khảo sát, so sánh khả năng thực thi giữa hai mô hình) Trong thực tế, những nhu cầu dạng này là thường xảy ra và không phải là hiếm

2.2 Lý do chọn mô hình đồ thị đ quản Đảng viên

Qua tìm hiểu tôi thấy cơ sở dữ liệu mô hình đồ thị là một mô hình dữ

Trang 32

liệu đang được quan tâm ứng dụng nhiều hiện nay và đ c biệt là sử dụng cho những dữ liệu có nhiều mối quan hệ phức tạp, việc tìm kiếm theo mối quan hệ

là thế mạnh của mô hình này Chính vì điều đó nên tôi đ t vấn đề chuyển dữ liệu đảng viên đang được lưu trữ hiện nay trong mô hình quan hệ sang mô hình đồ thị để thử nghiệm những yêu cầu phức tạp của công việc quản lý đảng

Hình 2.1 Mối quan hệ giữ đảng viên và chi b n n đồ thị

Mối quan hệ giữa Đảng viên và chi bộ Đảng là trực thuộc (thành viên của chi bộ)

Mối quan hệ giữa chi bộ với Đảng viên là quản lý, theo dõi và đánh giá Với CSDL đồ thị khi thêm hay bớt thực thể/mối quan hệ hoàn toàn dễ dàng, tuy nhiên, với CSDL quan hệ, do sự ràng buộc giữa 2 thực thể rất ch t chẽ nên việc thêm hay bớt thực thể ho c tạo/xóa mối quan hệ rất khó khăn và khó bảo toàn tính nguyên vẹn của dữ liệu

CSDL đồ thị chỉ gồm các nút, các thuộc tính và mối quan hệ mang lại khả năng mở rộng rất cao, khi thêm nút (hầu hết là thực thể) hay thêm các thuộc tính, mối quan hệ, nó không đ i hỏi một điều kiện gì, không ràng buộc phải có quan hệ này quan hệ khác Việc mở rộng hay thu hẹp quy mô đều rất linh động

Trực thuộc / thành

viên

Đảng viên

Chi bộ Đảng Quản lý, theo

dõi

Trang 33

Một cách tổng quát, đây là bài toán khá phức tạp và đa cấp nếu mở rộng áp dụng cho nhiều đảng bộ ho c cấp cao hơn Khi đó việc phân cấp của

mô hình sẽ là dạng cây phân cấp với nhiều cấp độ khác nhau, việc sử dụng cơ

sở dữ liệu quan hệ cũng có thể giải quyết đƣợc vấn đề nhƣng rất khó khăn khi

số cấp lớn hơn 3 và tính hiệu quả sẽ không cao, nhất là về khả năng xử lý, truy xuất và mở rộng, càng nhiều cấp thì tốc độ truy xuất càng giảm Nhƣ vậy, việc ứng dụng cơ sở dữ liệu đồ thị vào quản lý sẽ dễ dàng giải quyết nhu cầu

mở rộng này mà không cần thay đổi gì nhiều

Ví dụ: Đ t vấn đề mở rộng bài toán thêm tính năng quản lý bạn bè của Đảng viên Ta có các mối quan hệ sau: Đảng viên A là bạn của Đảng viên B, Đảng viên B là bạn của Đảng viên C Hãy so sánh 2 câu truy vấn tìm tất cả những đảng viên C có bạn là B mà B có bạn là A trên 2 CSDL quan hệ và CSDL đồ thị

CSDL quan hệ mô tả mối quan hệ theo dạng liên kết vòng:

Hình 2.2 Minh họa bảng DANGVIEN

Câu lệnh SQL trong mô hình quan hệ:

Select * From DANGVIEN c

inner join (select * from DANGVIEN b inner join (select * from DANGVIEN where ma=’A’ a on a.MA=b.FK FRIENDwhere ma=’B’ b on b.MA=c.FK_FRIEND

Trang 34

Trong mô hình này, nếu xóa B đi thì sẽ rất khó khăn và không bảo đảm toàn vẹn dữ liệu

Đối với truy vấn, đây là câu truy vấn khá phức tạp, nếu có thêm mối quan hệ C là bạn của D nữa thì mức độ phức tạp sẽ tăng lên, càng sâu càng phức tạp, trong khi trong thực tế tồn tại các mối quan hệ ấy Truy vấn càng phức tạp thì thời gian truy xuất sẽ càng tăng lên

Cơ sở dữ liệu đồ thị mô tả mối quan hệ theo thực tế:

Hình 2.3 Minh họa mối quan hệ Friend_Of c đảng viên

Câu lệnh truy vấn b ng Cypher trong Neo4J:

MATCH (a:Dangvien)

-[:FRIEND_OF]->(b:Dangvien)-[:FRIEND_OF]->(c:Dangvien) Where a.Ma=’A’ and b.Ma=’B’ RETURN c

Truy vấn đối với bài toán này là khá đơn giản, khả năng mở rộng rất dễ dàng, chỉ cần chỉ ra các mối quan hệ của chúng nếu muốn mở rộng thêm

Ngoài ra, đối với các hệ thống đã và đang sử dụng CSDL quan hệ để quản lý Đảng viên hoàn toàn dễ dàng chuyển qua CSDL đồ thị b ng cách chuyển đổi các thực thể từ các bảng (table) thành các thực thể riêng lẻ, các mối quan hệ (ràng buộc) sẽ đƣợc chuyển thành các mối quan hệ thông qua

một module chuyển đổi CSDL

Ví dụ: chuyển thông tin Đảng viên từ 1 bảng trong CSDL quan hệ sang CSDL đồ thị có thể đƣợc mô tả nhƣ sau:

Trang 35

Hình 2.4 Minh họa chuy n dữ liệu từ bản s n đồ thị

Do cơ sở dữ liệu đảng viên đã được thiết kế và ứng dụng theo mô hình quan hệ nên trong chương này luận văn sử dụng thiết kế có s n của cơ sở dữ liệu đảng viên theo mô hình quan hệ và chuyển sang mô hình đồ thị

2.3 Cơ sở dữ liệu đảng viên trong mô hình quan hệ

MS: 002

Trang 36

Hình 2.5 Sơ đồ c ơ sở dữ liệu đảng viên trong mô hình quan hệ

Về tổng thể, cơ sở dữ liệu quan hệ Quản lý đảng viên gồm có 23 bảng (tables), chia làm nhiều nhóm thông tin, m i nhóm liên quan đến một số loại thông tin và một số bảng khác nhau

2.3.2 Chi tiết các bảng

2.3.2.1 Nhóm thông tin quản lý hồ sơ đảng viên của các chi bộ t ong Đảng bộ

Đây là nhóm quản lý chi tiết danh sách Đảng viên của các chi bộ Đảng trực thuộc Đảng bộ huyện Tuy Phước, Bình Định

Mô tả bảng và ý nghĩa:

Để diễn giải mối quan hệ này cần 3 bảng: DangBo, ChiBo và Dangvien

DangBo: trong phạm vi bài toán này, bảng DangBo chứa 1 dòng duy

nhất lưu thông tin của đảng bộ Tuy phước BìnhĐịnh Tuy nhiên, việc sử dụng bảng này với mục đích có thể mở rộng áp dụng cho bất kỳ Đảng bộ nào

Bản 2-1Cấu trúc bảng DangB`o

5 Stthienthi Là số thứ tự hiển thị trên báo cáo

ChiBo: Quản lý thông tin các chi bộ trong 1 đảng bộ, mối quan hệ giữa

ChiBo và DangBo thể hiện qua cột ChiBo.madangbo

DangBo key

ten truso dienthoai stthienthi

varchar(30) nvarchar(200) nvarchar(400) varchar(30) int

<pk>

Trang 37

Bản 2-2Cấu trúc bảng ChiBo

4 Dienthoai Số điện thoại

5 Madangbo Là khóa ngoại, cột key trong bảng DangBo Thể hiện

mối quan hệ trực thuộc (Chi bộ trực thuộc Đảng bộ)

6 Stthienthi Là số thứ tự hiển thị trên báo cáo

Dangvien: Là đối tượng chính của bài toán này Lưu trữ các thông tin

chính của Đảng viên nh m xác định và phân biệt giữa đảng viên này với đảng viên khác và xác định 1 đảng viên cụ thể đang thuộc quyền quản lý của chi bộ

cụ thể của đảng bộ

Bản 2-3Cấu trúc bảng Dangvien

ChiBo key

ten truso dienthoai madangbo stthienthi

varchar(30) nvarchar(200) nvarchar(400) varchar(30) varchar(30) int

<pk>

<fk>

Dangvien key

ten ngaysinh phai ngaydubi ngaychinhthuc chucvudang noio noicongtac sdt email madangbo machibo matrinhdohv matrinhdochuyenmon miensinhhoat tungaymiensinhoat ngungsinhhoat tungayngungsinhhoat dengayngungsinhoat ghichu

varchar(30) nvarchar(30) date nvarchar(10) date date nvarchar(50) nvarchar(200) nvarchar(200) varchar(30) varchar(150) varchar(30) varchar(30) varchar(10) varchar(10) bit date bit date date nvarchar(500)

Trang 38

TT Tên ƣờng Ý n

16 Tungaymiensinhhoat Miễn sinh hoạt từ

17 Ngungsinhhoat Ngƣng sinh hoạt đảng? (0 vẫn còn sinh

hoạt; 1 – ngƣng

18 Tungayngungsinhhoat Ngƣng sinh hoạt từ

19 Denngayngungsinhhoat Ngƣng sinh hoạt đến

2.3.2.2 hóm th ng tin t nh độ học vấn, chuyên môn

Nhóm này quản lý trình độ học vấn và chuyên môn của Đảng viên

ten ghichu stthienthi

varchar(10) nvarchar(100) nvarchar(300) int

<pk>

Trang 39

Bản 2-4Cấu trúc bảng DmTrinhdoHocvan T

T

Tên ƣờng

4 Stthienthi Là số thứ tự hiển thị trên báo cáo

2.3.2.3 Nhóm thông tin Sinh hoạt đảng củ các Đảng viên và chi bộ Đảng

Mục đích của nhóm thông tin này là quản lý quá trình sinh hoạt đảng của Chi bộ và sự tham gia của Đảng viên vào các kỳ sinh hoạt ấy của chi bộ nhƣ thế nào

Mô tả bảng và ý nghĩa:

DmTrinhdoChuyenmon key

ten ghichu stthienthi

varchar(10) nvarchar(100) nvarchar(300) int

<pk>

Trang 40

Nhóm này liên quan đến 4 bảng: Dangvien, Chibo, Sinhhoatdang, Thamgiasinhhoatdang

Dangvien: đã mô tả

Chibo: đã mô tả

Sinhhoatdang: Bảng này lưu trữ các lần tổ chức sinh hoạt đảng của

từng chi bộ, các thông tin gồm có như: ngày sinh hoạt, phân loại (định kỳ, đột xuất), nội dung (tóm tắt nội dung sinh hoạt)

Bản 2-6Cấu trúc bảng Sinhhoatdang

3 Ngaysinhhoat Ngày sinh hoạt

4 Nội dung Tóm tắt nội dung sinh hoạt

5 Phân loại Định kỳ hay đột xuất

Dangvienthamgiasinhhoatdang: Bảng này lưu trữ chi tiết việc tham

gia sinh hoạt đảng của đảng viên trong từng lần sinh hoạt chi bộ, các thông tin gồm có như: mã đảng viên, mã sinh hoạt, tình trạng, ghi chú (tóm tắt ghi chú)

Bản 2-7Cấu trúc bảng Dangvienthamgiasinhhoatdang

1 Key Khóa chính, mã sinh hoạt đảng của đảng viên

Sinhoatdang key

machibo ngaysinhhoat noidung phanloai

varchar(30) varchar(30) date nvarchar(150) nvarchar(15)

<pk>

<fk>

Dangvienthamgiasinhhoatdang key

madangvien masinhhoat tinhtrang ghichu

varchar(50) varchar(30) varchar(30) nvarchar(10) nvarchar(500)

<pk>

<fk2>

<fk1>

Ngày đăng: 11/08/2021, 16:08

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Deepak Singh Rawat, Navneet Kumar Kashyap, Graph Database: A Complete GDBMS Survey, International Journal for Innovative Research in Science &amp; Technology, Volume 3, Issue 12, 2017 Sách, tạp chí
Tiêu đề: Graph Database: A Complete GDBMS Survey
[2]. Renzo Angles, The Property Graph Database Model, Proceedings of the 12th Alberto Mendelzon International Workshop on Foundations of Data Management, Cali, Colombia, May 21-25, 2018.CEUR Workshop Proceedings 2100, CEUR-WS.org 2018 Sách, tạp chí
Tiêu đề: The Property Graph Database Model", Proceedings of the 12th Alberto Mendelzon International Workshop on Foundations of Data Management, Cali, Colombia, May 21-25, 2018
[4]. Renzo Angles And Claudio Gutierrez, Survey of Graph Database Models , ACM Comput. Surv., 2008 Sách, tạp chí
Tiêu đề: ACM Comput. Surv
[5]. Y. Unal and H. Oguztuzun (2018), Migration of Data from Relational Database to Graph Database, In ICIST’18: 8th International Conference on Information Systems and Technologies, March 16–18, Istanbul, Turkey. ACM, New York, NY, USA Sách, tạp chí
Tiêu đề: Migration of Data from Relational Database to Graph Database
Tác giả: Y. Unal and H. Oguztuzun
Năm: 2018
[3]. Patil N. S., Kiran P, Kavya N. P., Naresh Patel K. M., A Survey on Graph Database Management Techniques for Huge Unstructured Data, International Journal of Electrical and Computer Engineering (IJECE), Vol. 8, No. 2, 2018, pp. 1140-1149 Khác
[6]. Ian Robinson, Jim Webber, and Emil Eifrem, 2013, Graph Databases , O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm