Tải bản đầy đủ (.ppt) (26 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.2 MB, 26 trang )

Cơ sở dữ liệu đồ thị

UNIVERSITY OF INFORMATION TECHNOLOGY
- Department of Information Systems -


Nội dung
 Giới thiệu
 Đại số đồ thị
 Hiện thực hóa đại số đồ thị
 Mô hình truy vấn đồ thị
 Kết luận và hướng phát triển
2


Mục tiêu chuyên đề
 Khảo sát tổng quan tình hình nghiên cứu cơ sở dữ liệu
đồ thị hiện nay.
 Tìm hiểu lý thuyết cơ sở dữ liệu đồ thị và các phép đại
số đồ thị.
 Tổ chức cài đặt cơ sở dữ liệu đồ thị trên hệ quản trị
CSDL quan hệ, và hiện thực một số thao tác truy vấn đồ
thị.
 Ứng dụng vào cơ sở dữ liệu đồ thị cấu trúc Protein..
3


Giới thiệu
 Đồ thị được sử dụng phổ biến trong các mô hình đòi hỏi cấu trúc
phức tạp và dữ liệu không cấu trúc.Đồ thị được sử dụng để giải
quyết các bài toán trong các lĩnh vực như: sinh học phân tử, dữ liệu


DNA, dữ liệu Proteins [16], dữ liệu video [12], dữ liệu cấu trúc hóa
học [8], CAD/CAM, luồng điều khiển giao thông, tài liệu XML, Web và
phân tích mạng xã hội, mạng thông tin, hệ thống thông tin di động…
 Nhu cầu cần có công cụ cho việc tìm kiếm và cho phép thao tác,
truy vấn dữ liệu đồ thị với các thuộc tính và cấu trúc đồ thị tương
đồng, có các hệ thống liên quan: GRACE system [19], the GOQL
system [12], the SBGE system [2]
 Phương pháp tiếp cận của Chuyên đề là sử dụng các phép toán trên
đồ thị: phép giao, phép hội hai đồ thị, phép trừ, phép kết, phép
chọn, phép chiếu và hiện thực các phép toán này bằng cách thêm
vào câu lệnh SQL truyền thống những từ khóa truy vấn bổ sung để
đưa ra kết quả truy vấn đồ thị theo yêu cầu.
4


Mô hình dữ liệu đồ thị
 Biểu diễn thông tin dễ dàng
 Vertices – Đỉnh biểu diễn khái niệm hoặc đối tượng
 Edges – Cạnh biểu diễn mối quan hệ giữa các đỉnh
 Properties – thuộc tính của đối tượng/quan hệ
 Biểu diễn thông tin liên kết cấp độ cao như:
 Social network - Mạng xã hội
 Knowledge bases - Tri thức
 Một số bài toán sử dụng mô hình đồ thị
 Phân tích, khai thác các liên kết
 Web ngữ nghĩa
 Thông tin sinh tin học
5



Đồ thị có nhãn
1. Label graph
Đồ thị có nhãn là một bộ


V is a set of vertices



E is a set of edges



VL is a set of vertex labels



Vl is a set of vertex id

G (với
V , E , V L ,  , Vl ,  )



:V

VL is a vertex labeling function




: V Vl is a vertex identifying function





6


Cơ sở dữ liệu đồ thị
2. Cơ sở dữ liệu đồ thị
Một cơ sở dữ liệu đồ thị là một tập hợp các đồ thị thành viên
G={G1,G2,G3,..,Gn } với mỗi đồ thị Gi là một đồ thị có nhãn. Ví dụ
một cơ sở dữ liệu đồ thị có 3 đồ thị thành viên như sau:

7


Đại số đồ thị [10],[12],[13]
Đại số đồ thị được định nghĩa là các phép toán của đại số quan hệ trên
đồ thị, như : Chiếu: π, Chọn: σ, Hợp: , Tổng: +, Giao: ∩, Kết: × , Trừ: hoặc \.
1. Phép chọn
Cho GD là một cơ sở dữ liệu đồ thị, phép chọn đồ thị trên GD sẽ trả về một
tập hợp các đồ thị thõa F:
 F (GD) {G  GD | G satisfied F}

F là điều kiện truy vấn, F có thể là: graph isomorphism, subgraph
isomorphism, graph containing, graph similarity, và điều kiện khác.
Cho q là 1 đồ thị truy vấn (pattern graph), phép chọn đồ thị được mô tả
như sau:

δisomorphism(q)(GD)
δsubgraphisomorphism(q)(GD)
δsimilarity(q, epsilon)(GD)
8
…….


Phép chọn

9


Đại số đồ thị
2. Graph Projection
Khái niệm đồ thị con:
Cho G =(V, E) là một đồ thị, và XV
Đồ thị con của G trên X được định nghĩa là một đồ thị G′(V′,E′) sao cho:
V′ = X
E′ = V′xV′E
Cho GD là một cơ sở dữ liệu đồ thị, X là tập hợp các đỉnh cần chiếu
(XV). Phép chiếu đồ thị trên GD trả về tập hợp các đồ thị sao cho:

 X (GD) {G  | G is induced graph of G on X}
10


Đại số đồ thị
3. Graph Union
Phép hợp 2 đồ thị G1, G2 (G =G1G2) với tập hợp đỉnh không giao nhau
V1, V2 ( V1 V2 ) và tập cạnh không giao nhau E1, E2 (


E1  E 2 )

là một đồ thị kết quả G với tập đỉnh được định nghĩa V=V 1V2 và tập
cạnh E=E1E2 [7],[16]. Phép hợp có thể được dùng để tính hội của nhiều
đồ thị bằng cách sử dụng GraphUnion(GraphUnion(G1, G2), G3)....
Hai đồ thị ban đầu được gán nhãn lại để trở thành các đồ thị không giao
nhau. Khi đó, đồ thị kết quả chỉ đơn giản là gộp 2 đồ thị không giao nhau.

11


Đại số đồ thị

4. Graph Sum
Đồ thị tổng của hai đồ thị G1, G2 (  (G1 , G2 ) ) là một đồ thị có ma trận
kề được tính bằng tổng của các ma trận kề thành phần và số đỉnh
của các đồ thị G1, G2 phải bằng nhau [7], [17].

12


Đại số đồ thị
5. Graph Intersection
Đồ thị được gọi là giao của hai đồ thị nếu tập đỉnh của đồ thị kết quả
chỉ chứa những đỉnh thuộc về cả hai đồ thị và tập hợp cạnh của đồ
thị kết quả chỉ chứa những cạnh thuộc về cả hai đồ thị. Số đỉnh của
các đồ thị G1, G2 phải bằng nhau [7].

13



Đại số đồ thị
6. Graph Difference
 Phép trừ đồ thị G1, cho G2 : G= G1\G2 được định nghĩa là một đồ thị có
ma trận kề được tính bằng hiệu của ma trận kề G1, và G2 và số đỉnh của
các đồ thị G1, G2 phải bằng nhau [17].
 Nói cách khác, phép trừ G =G1\G2 của 2 đồ thị G1, G2 là kết quả của việc
trích cạnh của đồ thị G1 và cạnh đó không có mặt trong đồ thị G2.

14


Đại số đồ thị
7. Graph Join
Cho hai đồ thị G1 và G2 với hai tập đỉnh không giao nhau V1, V2 ( V V 
1
2
) và hai tập cạnh E1, E2, ( E1  E 2  ) phép kết G = G1+G2 được định
nghĩa là gộp hai đồ thị G1G2 với tất cả các cạnh được nối từ tập đỉnh
của đồ thị thứ nhất V1 đến tập đỉnh của đồ thị thứ hai V2 với nhau

15


Nội dung
 Giới thiệu
 Đại số đồ thị
 Hiện thực cơ sở dữ liệu đồ thị và đại số đồ thị
 Mô hình truy vấn đồ thị

 Kết luận và hướng phát triển

16


Hiện thực cơ sở dữ liệu đồ thị (1)
 Trước đây, dữ liệu đồ thị thường được tổ chức lưu trữ trên tập
tin. Kích thước tập tin gia tăng đáng kể, tốc độ truy xuất chậm
nếu tập tin không được chỉ mục tốt.
 Một số nghiên cứu tổ chức mô hình dữ liệu đồ thị trên nền hệ
quản trị cơ sở dữ liệu như “Mô hình dữ liệu mạng (Network
Data Model)” của hãng Oracle[25], hay phần mềm PostGIS của
nhóm nghiên cứu Refractions Research Inc trên nền DBMS
PostgreSQL hướng quan hệ-đối tượng.
 Hạn chế của mô hình dữ liệu mạng : mỗi mạng (network) chỉ
cho phép lưu một đồ thị và tên của mạng là cố định khi tạo mới
mạng, truy xuất dữ liệu từ bảng đỉnh, cạnh hay đường đi trên
network đều phải chỉ định tên network cố định, kích thước mặc
định cho mỗi lần tạo mới network xấp xỉ 1.4MB (SDONetwork). Nếu biểu diễn 1 protein là 1 SDO-network,với trên
40.000 protein không thể truy xuất nhanh dữ liệu lẫn các thao
tác trên đồ thị (dung lượng bộ nhớ lưu trữ ~56000 MB).
17


Hiện thực cơ sở dữ liệu đồ thị (2)
 Lưu trữ đồ thị trên XML cũng đã được triển khai để mở rộng
khả năng lưu trữ dữ liệu trên nền ứng dụng web.
 Cú pháp xử lý dữ liệu XML khá phức tạp (phân biệt hoa,
thường, truy xuất theo đường dẫn thư mục), việc truy vấn CSDL
đồ thị trên XML gặp khó khăn trước khi đạt đến khả năng lưu

trữ mở rộng của nó.
 Object-Relational DBMS: mỗi đồ thị là một đối tượng (object),
các column với data type của column là một object do người sử
dụng định nghĩa. Với các DBMS dạng này, thao tác trên đồ thị
chính là các thao tác trên các object.
 Bản chất hệ quản trị cơ sở dữ liệu hướng quan hệ-đối tượng vẫn
là quan hệ, do đó các truy vấn vẫn quay về ngôn ngữ SQL thao
tác trên các table.

18


Hiện thực đại số đồ thị (1)
Có thể dễ dàng tích hợp biểu diễn SQL mở rộng với truy vấn đồ thị. Câu truy
vấn trả về một tập hợp các đồ thị nếu thỏa điều kiện

1. Hàm trả về đồ thị kết quả (each function returns a graph)
 GraphIntersection
 GraphUnion
 GraphDifference
 GraphJoin
2. Hàm trả về cơ sở dữ liệu đồ thị (each funtion returns a graph
database)
 GraphDBSelection
 GraphDBProjection
 GraphDBDistance
Ví dụ: Graph selection
SELECT g.graphID from GraphMaster g
WHERE SubGraphIsomorphism(‘G.txt’,g.graphID)
Ví dụ:

SELECT g.graphID from GraphMaster g
WHERE GraphDistance (‘G.txt’, g.graphID) < Epsilon

19


Hiện thực đại số đồ thị (2)
Một số hàm được đề xuất để hỗ trợ truy vấn đồ thị.
1. GraphSimilarity(‘protein-name1’, ‘protein-name2’): calculates the distance
between two graphs, the similarity between two protein structures.
2. GraphIsomorphism(‘protein-name1’, ‘protein-name2’)
3. SubgraphIsomorphism(‘protein-name1’, ‘protein-name2’)
4. GraphContain(‘amino acids list’): returns graphs, each of which contains a
given amino acid list.
5. GraphDBSelection(‘criteria’): select protein structures according to criteria.
6. GraphUnion(‘protein-name1’, ‘protein-name2’)
7. GraphIntersection(‘protein-name1’, ‘protein-name2’)
8. GetProteinData(‘protein-name’): retrieves the information of amino acid
sequence of protein.
9. GetProteinProperty(‘protein-name’, ‘Property’): returns the values of properties
such as DNA chain, gene encoding protein, 3D coordinates of the atom, 3D
protein structure,...).
20


Nội dung
 Giới thiệu
 Đại số đồ thị
 Hiện thực đại số đồ thị
 Mô hình truy vấn đồ thị

 Kết luận và hướng phát triển

21


Mô hình truy vấn đồ thị (3)
Các hệ quản trị cơ sở dữ liệu như DB2, Oracle, SQL
Server cho phép người lập trình tích hợp các UDF (UserDefined Function) vào câu lệnh Select SQL truyền thống.
Khi đó câu lệnh Select trở nên đơn giản hơn và thuận tiện
hơn.
Ví dụ: Cho đồ thị truy vấn GQ có 5 đỉnh, câu SQL được viết
lại như sau:
Select g.graphID from GraphTbl g where
SubgraphIsomorphism(‘GQ‘, g.graphID) = True or
GraphIsomorphism(‘GQ‘, g.graphID) = True
24


Nội dung
 Giới thiệu
 Đại số đồ thị
 Hiện thực đại số đồ thị
 Mô hình truy vấn đồ thị
 Kết luận và hướng phát triển

25


Kết luận và hướng phát triển


 Có thể xây dựng hệ thống ngôn ngữ mở rộng truy vấn đồ thị dựa
trên nền cơ sở dữ liệu quan hệ.
 Giới thiệu về đại số đồ thị, hiện thực các truy vấn đại số đồ thị
bằng các hàm SQL mở rộng. Các hàm SQL mở rộng được xây
dựng trước (User-defined-function) cho phép người dùng lồng vào
câu lệnh truy vấn SQL thuần túy để khai thác các tính chất đồ thị
trong tập hợp đồ thị.
 Nghiên cứu một số lý thuyết đẳng cấu đồ thị và hướng tiếp cận so
sánh đồ thị dựa trên phổ đồ thị và một số phương pháp khác.

26


References (1)
[1] Akihiro Inokuchi, Takashi Washio, Hiroshi Motoda. An Apriori-based Algorithm for Mining Frequent
Substructures from Graph Data. Proc. of The 4th European Conf. on Principles and Practice of Knowledge
Discovery in Databases (PKDD’00), pp 13–23, Lyon,France. 09/2000.
[2] B. A. Eckman, P. G. Brown. Graph data management for molecular and cell biology. Source, IBM Journal of
Research and Development archive. Volume 50 , Issue 6 (November 2006).
[3] Beineke, L. W. and Wilson, R. J. Topics in Algebraic Graph Theory. Cambridge University Press, p. 104,
2004.
[4] B.T. Messmer and Horst Bunke. Subgraph isomorphism in polynomial time. Technical Report IAM 95-003,
University of Bern, Institute of Computer Science and Applied Mathematics, Bern, Switzerland, 1995.
[5] Chris Godsil. Graph Spectra and Graph Isomorphism. Aveiro Workshop on Graph Spectra, University of
Aveiro, Mathematics Department, April 2006.
[6] Dennis Shasha, J. T. L. Wang, and R. Giugno. Algorithmics and Applications of Tree and Graph Searching.
In Proc. PODS'02 Proceeding of the International Conference in Pattern recognition (ICPR), Quebec,
Canada, August 2002.
[7] Harary, F. Graph Theory, Addison-Wesley, 1994
[8] Haoliang Jiang, Haixun Wang, Philip S. Yu, Shuigeng Zhou. Gstring: A novel approach for efficient search in

graph databases, IEEE 23rd International Conference on Data Engineering, 2007.
[9] H Bunke, Kim Shearer. Graph distance metric based on the maximal common subgraph, Pattern
Recognition letter 19, pp 225-229, 1998
[10] Huahai He and Ambuj K. Singh, "Graphs-at-a-time: Query Language and Access Methods for Graph
Databases", In Proceedings of the ACM SIGMOD International Conference on Management of Data
(SIGMOD'08), Vancouver, Canada, 2008.
[11] Jonathan Gross, Jay Yellen. Graph Theory and Its Applications, CRC Press, 1998.

27


×