UNIVERSITY OF INFORMATION TECHNOLOGY

- Department of Information Systems -
Cơ sở dữ liệu đồ thị
2
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
3
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..
4
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.
5
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
6
Đồ thị có nhãn
1. Label graph

Đồ thị có nhãn là một bộ với

 V is a set of vertices
 E is a set of edges
 V
L
is a set of vertex labels
 V
l
is a set of vertex id
 : V V
L
is a vertex labeling function
 : V V
l
is a vertex identifying function


) , , , , , ( o ì
l L
V V E V G =
ì
o
7
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:
8
Đạ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:
G GD G GD
F
| { ) ( e = o
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)
…….
satisfied F}
×
Phép chọn
9








ALA


VAL


GLU

ALA

G1

ALA


VAL


ALA

' ',' '
( 1, 2)
{ 1, 2}
ALA VAL
G G G
G G G
o =
=

ALA


GLU

ALA

G2

ALA


ALA


10
Đại số đồ thị
2. Graph Projection
G GD
X
' ={ ) ( t G
'
Cho GD là một cơ sở dữ liệu đồ thị, X là tập hợp các đỉnh cần chiếu
(XcV). Phép chiếu đồ thị trên GD trả về tập hợp các đồ thị sao cho:

|
is induced graph of G on X}
Khái niệm đồ thị con:
Cho G =(V, E) là một đồ thị, và XcV
Đồ 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
11
Đại số đồ thị
3. Graph Union
| =
2 1
V V  | =
2 1
E E 
Phép hợp 2 đồ thị G
1
, G
2
(G =G
1
G
2
) với tập hợp đỉnh không giao nhau
V
1
, V
2
( ) và tập cạnh không giao nhau E
1
, E
2
( )
là một đồ thị kết quả G với tập đỉnh được định nghĩa V=V
1
V
2
và tập
cạnh E=E
1
E
2
[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(G
1
, G
2
), G
3
)....

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.
12
Đại số đồ thị
4. Graph Sum
Đồ thị tổng của hai đồ thị G
1,
G
2
( ) 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ị G
1,
G
2
phải bằng nhau [7], [17].

¿
) , (
2 1
G G

G
1

G
2

G
1
G
2






G
2


GLY

ALA

VAL
ALA
G
1


ASP


GLY

ALA

VAL
ALA
ASP


GLY

ALA

VAL
ALA
ASP


¿
) , (
2 1
G G
13 13
Đạ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ị G
1,
G
2
phải bằng nhau [7].





GLY

ALA

VAL

GLY
ALA
G
1
G
2

GLY

ALA
G
1
∩ G
2

ASP

14
Đại số đồ thị
6. Graph Difference
 Phép trừ đồ thị G
1,
cho G
2
: G= G
1
\G
2
đượ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ề G
1,


G
2
và số đỉnh của
các đồ thị G
1,
G
2
phải bằng nhau [17].
 Nói cách khác, phép trừ G =G
1
\G
2
của 2 đồ thị G
1
, G
2
là kết quả của việc
trích cạnh của đồ thị G
1
và cạnh đó không có mặt trong đồ thị G
2
.










G
1

G
1
\ G
2

GLY
G
2

GLY

ASP

VAL

ALA
G
1
\G
2

GLY

ASP

VAL

ALA
GLY

ASP

VAL

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






GLY

ASP

VAL

GLU
ALA
G1 G2
GLY

ASP

VAL

GLU
ALA
G1 × G2
Đại số đồ thị
16
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
17
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 (SDO-
Network). 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).
18
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.
19
Hiện thực đại số đồ thị (1)
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
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
20
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,...).
21
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
24
Mô hình truy vấn đồ thị (3)
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(‘G
Q
‘, g.graphID) = True or
GraphIsomorphism(‘G
Q
‘, g.graphID) = True
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 (User-
Defined Function) vào câu lệnh Select SQL truyền thống.
25
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
26
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.
27
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.
28 28
References (2)
[12] Lei Sheng, Z. M. Özsoyoglu, G. Özsoyoglu. A Graph Query Language and Its Query Processing,
15th International Conference on Data Engineering (ICDE'99), 1999.
[13] Norman Biggs. Algebraic Graph Theory. Cambridge University Press, 2nd edition, 1993.
[14] Richard C. Wilson, Ping Zhu. A Study of graph spectra for comparing graphs and trees, CS
Department, University of York, UK, 2008
[15] Rosalba Giugno and Dennis Shasha. 'Graphgrep: a fast and universal method for querying
graphs', in Proceedings of the 16th International Conference on Pattern Recognition, 2002, pp.467-
470.
[16] Saraswathi Vishveshwara et al. Protein structure insights from graph theory, Journal of Theoretical
and Computational Chemistry, Vol 1, No 1, 2002.
[17] Steven Skiena. Implementing Discrete Mathematics: Combinatorics and Graph Theory with
Mathematica, Perseus Books (Sd) , 1990
[18] Stephens, S., Rung, J. and Lopez, X. Graph Data Representation in Oracle Database 10g: Case
Studies in Life Sciences. IEEE Data Engineering Bulletin, 2004.
[19] Srinath Srinivasa, Harjinder Singh. GRACE: A Graph Database System, COMAD 2005b,
Hyderabad, India, December 2005.
[20] Takashi Washio , Hiroshi Motoda, State of the art of graph-based data mining, ACM SIGKDD
Explorations Newsletter, v.5 n.1, July 2003
[21] Ullman. An Algorithm for Subgraph Isomorphism, Journal of the Association for Computing
Machinery, 23, pp. 31-42, 1976
[22] W Henry Suters. A new approach and faster exact methods for the maximum common subgraph,
2002.

Sign up to vote on this title
UsefulNot useful