1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Khai phá dữ liệu CƠ SỞ DỮ LIỆU ĐỒ THỊ GRAPH DATABASE

15 786 0

Đ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

Định dạng
Số trang 15
Dung lượng 235,14 KB

Nội dung

Cơ sở dữ liệu đồ thị là cách thức lưu trữ thông tin ở dạng đồ thị những đỉnh Node và cạnh Edge.Với cách thức lưu trữ này, việc quản lý dữ liệu trở nên mềm dẽo và dễ dàng hơn ngay cả tron

Trang 1

LỜI MỞ ĐẦU 2

CHƯƠNG I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ĐỒ THỊ (GRAPH DATABASE)3 1 Tổng quan về đồ thị 3

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

3 Ứng dụng của Cơ sở dữ liệu đồ thị 6

CHƯƠNG II GIẢI QUYẾT BÀI TOÁN 7

1 Giới thiệu bài toán 7

2 Giải quyết bài toán 8

CHƯƠNG III KẾT QUẢ ĐẠT ĐƯỢC 14

CHƯƠNG IV TÀI LIỆU THAM KHẢO 15

1 Tài liệu giấy: 15

2 Tài liệu Web: 15

Trang 2

LỜI MỞ ĐẦU



Ngày nay các hệ thống lưu trữ ảnh vân tay thô xuống database trong các công ty ngày càng phát triển, mỗi khi khách hàng hoặc nhân viên đăng nhập (không cần gõ username + pass world mà chỉ cần sử dụng vân tay) hệ thống sẽ tải từng file ảnh lên rồi dùng thuật toán so khớp Tuy nhiên khi dữ liệu quá lớn thì việc này là bất khả thi về thời gian chờ cũng như dung lượng đường truyền Việc xử lý đòi hỏi phải linh hoạt và không làm gián đoạn ứng dụng.Với hệ thống lưu trữ hiện tại không thể linh động với đòi hỏi này.

Người sử dụng muốn có một cầu nối, một biện pháp để giải quyết những vấn đề trên do đó dữ liệu đồ thị ra đời Cơ sở dữ liệu đồ thị là cách thức lưu trữ thông tin

ở dạng đồ thị những đỉnh (Node) và cạnh (Edge).Với cách thức lưu trữ này, việc quản lý dữ liệu trở nên mềm dẽo và dễ dàng hơn ngay cả trong việc ứng dụng tri thức vào khối dữ liệu lưu trữ.

Tiểu luận này là sự khởi đầu cho việc thực hiện bài luận tốt nghiệp cuối khóa, do thời gian có hạn nên em chỉ trình bày khái quát về cơ sở dữ liệu đồ thị, đồng thời ứng dụng trong việc lưu trữ dữ liệu đồ thị (được biểu diễn bằng ma trận) xuống

“Cơ sở dữ liệu”.

Em xin chân thành cảm ơn PGS.TS Đỗ Phúc – Giảng viên phụ trách giảng dạy chuyên đề “cơ sở dữ liệu nâng cao” đã truyền đạt những kiến thức cùng kinh nghiệm vô cùng quý báu đồng thời gợi ý về việc thực hiện đề tài này, xin chân thành cám ơn ban cố vấn học tập và ban quản trị chương trình đào tạo”Thạc sĩ Khoa học máy tính” của Đại Học Quốc Gia TPHCM đã tạo điều kiện về tài liệu tham khảo để em có thể hoàn thành môn học này.

Trang 3

CHƯƠNG I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU

ĐỒ THỊ (GRAPH DATABASE)

1 Tổng quan về đồ thị

 Trong toán học và tin học, đồ thị là đối tượng nghiên cứu cơ bản của lý thuyết đồ thị Một cách không chính thức, đồ thị là một tập các đối tượng gọi là đỉnh nối với nhau bởi các cạnh Thông thường, đồ thị được vẽ dưới dạng một tập các điểm (đỉnh, nút - Node) nối với nhau bởi các đoạn thẳng (cạnh - Edge) Tùy theo ứng dụng mà một số cạnh có thể có hướng

Đồ thị vô hướng

Hình 1.1.1: Đồ thị vô hướng

Đồ thị vô hướng hoặc đồ thị G là một cặp không có thứ tự (ordered pair) G:=(V,

E), trong đó

V, tập các đỉnh hoặc nút (Node)

E, tập các cặp không thứ tự chứa các đỉnh phân biệt, được gọi là cạnh

(Edge) Hai đỉnh thuộc một cạnh được gọi là các đỉnh đầu cuối của cạnh đó.

Tập các cạnh bao gồm cả các cặp đỉnh không phân biệt, các cạnh này được gọi là

các khuyên V (và E) thường là các tập hữu hạn, phần lớn các kết quả nghiên cứu đã

biết không đúng (hoặc khác) khi áp dụng cho đồ thị vô hạn (infinite graph) vì nhiều

luận cứ không dùng được trong trường hợp vô hạn

Trang 4

Đồ thị có hướng

Hình 1.1.1: Đồ thị vô hướng

Đồ thị có hướng G là một cặp có thứ tự G:=(V, A), trong đó

V, tập các đỉnh hoặc nút,

E, tập các cặp có thứ tự chứa các đỉnh, được gọi là các cạnh có hướng hoặc

cung Một cạnh e = (x, y) được coi là có hướng từ x tới y; x được gọi là điểm đầu/gốc và y được gọi là điểm cuối/ngọn của cạnh.

 Cấu trúc đồ thị có thể mở rộng bằng cách gán trọng số cho các cạnh của đồ thị Có thể sử dụng đồ thị có trọng số để ứng dụng trong thực tế như chiều dài con đường (tìm đường đi ngắn nhất giữa 2 điểm), thời gian đi giữa hai nút, độ mạnh liên kết giữa các nút, số giao tác kết nối giữa 2 nút cùng thời điểm

Tham khảo và trích dẫn từ

http://vi.wikipedia.org/wiki/%C4%90%E1%BB%93_th%E1%BB

%8B_%28l%C3%BD_thuy%E1%BA%BFt_%C4%91%E1%BB

%93_th%E1%BB%8B

%29#.C4.90.E1.BB.93_th.E1.BB.8B_v.C3.B4_h.C6.B0.E1.BB.9Bn

g

Trang 5

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

a Giới thiệu :

Cơ sở dữ liệu đồ thị là tập các đồ thị.Một cơ sở dữ liệu đồ thị có thể có nhiều

đồ thị nhưng cũng có thể chỉ có một đồ thị, đó là một đồ thị rất lớn chứa nhiều nút và đỉnh ví dụ như mạng xã hội

b Cách lưu trữ dữ liệu đồ thị :

Dữ liệu được lưu trữ thành những dòng và cột trong những table khác nhau Dữ liệu được truy xuất bằng câu lệnh SQL.SQL cho phép người sử dụng truy xuất khá mạnh mẽ dữ liệu đồ thị bao gồm cả việc trích xuất dữ liệu mới từ dữ liệu đã lưu trữ

Mặc dù có nhiều điểm mạnh nhưng SQL không thể hổ trợ những thao tác tính toán, những biểu thức phức tạp một cách linh hoạt và tùy lúc.Ví dụ như tính chi phí một con đường đi từ đỉnh này để đỉnh khác, tìm chi phí thấp nhất

để đi giữa hai nút cho trước…

Để giải quyết vấn đề trên DB2 và RDBMS đã mở rộng SQL bằng cách xây dựng nhưng hàm cụ thể được gọi là user-defined functions (UDFs) UDFs được sử dụng mọi nơi mà người sử dụng muốn

SBGE sử dụng những hàm mở rộng của DB2 để thao tác trên dữ liệu đồ thị.Với SBGE có thể dễ dàng quản lý dữ liệu đồ thị thông qua các nút, cạnh Với RDBMSs cho phép người sử dụng định nghĩa cũng như tìm kiếm những đồ thị con.RDBMSs có thể linh hoạt trên một đồ thị dữ liệu lớn bởi vì SQL có thể tìm kiếm mà không đòi hỏi việc load cả dữ liệu đồ thị lên bộ nhớ tạm Do đó, SBGE chính là sự kết hợp giữa SQL để quản lý dữ liệu của đồ thị và những hàm mở rộng để quản lý những hàm truy xuất của đồ thị

Trang 6

Lưu trữ bằng network data model trong oracle

Oracle hỗ trợ những procedure để tạo dữ liệu đồ thị.Tiểu luận này sẽ trình bày chi tiết cách sử dụng data network model để lưu trữ cũng như phân tích

dữ liệu đồ thị

Tham khảo và trích dẫn từ “Nguyễn Ngọc Diễm - Tiểu luận chuyên

đề Cơ Sở Dữ Liệu Nâng Cao”

3 Ứng dụng của Cơ sở dữ liệu đồ thị

 Trong sinh học: lưu trữ cấu trúc Gien, protein,…

 Trong hóa học: lưu trữ cấu tạo phân tử các chất, hợp chất,…

 Trong tin học: Mạng xã hội, lưu trữ hình ảnh,…

Trang 7

CHƯƠNG II GIẢI QUYẾT BÀI TOÁN

1 Giới thiệu bài toán

Bài toán đặt ra là: chúng ta sẽ dùng các thiết bị hỗ trợ để scan các dấu vân tay và mã hóa các hình ảnh này sang đồ thị và lưu trữ vào cơ sở dữ liệu Khi khách hàng đăng nhập bằng dấu vân tay, hệ thống sẽ scan dấu vân tay này và xử

lý bên dưới cơ sở dữ liệu đồ thị để tối ưu hóa thời gian chờ khi dữ liệu lưu trữ khổng lồ

Hình 2.1.1.1: Hình ảnh về các dấu vân tay (Finger print)

Trong bài tiểu luận này, em sẽ trình bày quá trình lưu 1 đồ thị (đã mã hóa thành ma trận) vào cơ sở dữ liệu Vấn đề về mã hóa hình ảnh vân tay thành đồ thị và tìm kiếm dấu vân tay trong cơ sở dữ liệu đồ thị em sẽ cố gắng nghiên cứu

và hoàn chỉnh đề tài này để trình bày trong bài luận cuối khóa

Trang 8

2 Giải quyết bài toán

Trong báo cáo này, em sử dụng C# (Visual 2005) giao diện Form để người dùng nhập đồ thị được biểu diễn dạng ma trận vào cơ sở dữ liệu Cơ sỡ dữ liệu sử dụng là SQL Server 2005

Hình 2.2.1: Mô hình dữ liệu đồ thị

Table “Graph”

Tên thuộc tính Kiểu Mô tả

graphID Int ID của Graph, là duy nhất không được trùng với

các id khác

graphNAME Varchar Tên của Graph

graphDescription Text Mô tả

Table “Node”

Trang 9

Tên thuộc tính Kiểu Mô tả

nodeID Int ID của Node (đỉnh), là duy nhất không được

trùng với các id khác

nodeNAME Varchar Tên của Node

graphID Int Khóa ngoại, Link tới table “Graph”

nodeLevel Int Bậc của Node (chỉ xét đồ thị vô hướng)

Table “Edge”

Tên thuộc tính Kiểu Mô tả

edgeID Int ID của Edge (cạnh), là duy nhất không được

trùng với các id khác

graphID Int Khóa ngoại, link tới table “Graph”

nodeID1 Int Khóa ngoại, Link tới table “Node”

nodeID2 Int Khóa ngoại, Link tới table “Node”

Length Int Độ dài giữa nodeID1 và nodeID2 (độ dài giữa 2

đỉnh)

Ví dụ với đồ thị dữ liệu sau :

Trang 10

Hình 2.2.2: Đồ thị vô hướng G1

Tập đỉnh: V(A, B, C, D, E, F, L, H, G)

Tập cạnh: E(AB, AG, BC, CF, DG, DE, EF, EH, FL, LH, HG)

Biểu diễn đồ thị G1 dưới dạng ma trận

G1 = |L11 L11 L20 00 00 00 00 00 L 90

Cho giá trị cụ thể tập cạnh (L1,L2,…,L10)

E

[ L1= L2=¿¿12

L 3=¿3

L 4=¿4

L 5=¿6

L 6=¿5

L 7=¿3

L 8=¿4

L 9=¿1

L10=¿2]

Trang 11

G1 = |1 1 0 0 0 0 0 0 11 1 2 0 0 0 0 0 0

0 2 1 0 0 3 0 0 0

0 0 0 1 2 0 0 0 4

0 0 0 2 1 6 0 5 0

0 0 3 0 6 1 4 0 0

0 0 0 0 0 4 1 5 0

0 0 0 0 5 0 5 1 3

Giải thuật trên máy tính

 Create Table “Graph” trong SQL Server

 Create Table “Node” trong SQL Server

CREATE TABLE [dbo].[graph](

[graphID] [int] IDENTITY(1,1) NOT NULL,

[graphName] [nvarchar](100) COLLATE

SQL_Latin1_General_CP1_CI_AS NOT NULL,

[graphDescription] [text] COLLATE

SQL_Latin1_General_CP1_CI_AS NULL,

CONSTRAINT [PK_graph] PRIMARY KEY CLUSTERED

(

[graphID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY]

) ON [PRIMARY]

CREATE TABLE [dbo].[node](

[nodeID] [int] NOT NULL,

[nodeName] [nvarchar](50) COLLATE

SQL_Latin1_General_CP1_CI_AS NOT NULL,

[graphID] [int] NOT NULL,

[nodeLevel] [int] NOT NULL,

CONSTRAINT [PK_node] PRIMARY KEY CLUSTERED

(

[nodeID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY]

) ON [PRIMARY]

Trang 12

 Create Table “Edge” trong SQL Server

Giao diện Form sử dụng

Hình 2.2.3: Giao diện ban đầu.

Nhập tên và số đỉnh của đồ thị cần lưu trữ xuống cơ sở dữ liệu sau đó nhấn nút “New Graph”

CREATE TABLE [dbo].[edge](

[edgeID] [int] NOT NULL,

[graphID] [int] NOT NULL,

[nodeID1] [int] NOT NULL,

[nodeID2] [int] NOT NULL,

[length] [int] NOT NULL,

CONSTRAINT [PK_edge] PRIMARY KEY CLUSTERED

(

[edgeID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY]

) ON [PRIMARY]

Trang 13

Hình 2.2.3

Danh sách bên dưới tự động tạo số dòng và số cột bằng với số đỉnh mà ta vừa nhập

Ta nhập đồ thị được biểu diễn dưới dạng ma trận vào danh sách như “Hình 2.2.3” sau đó nhấn nút “Save” để lưu dữ liệu vào cơ sở dữ liệu

Hình 2.2.3: Thông báo đã lưu thành công.

Trang 14

CHƯƠNG III KẾT QUẢ ĐẠT ĐƯỢC

Bước đầu tìm hiểu về đồ thị và cơ sở dữ liệu đồ thị, thực hiện thành công việc lưu dữ liệu đồ thị vào cơ sở dữ liệu (SQL Server 2005)

Tuy nhiên do thời gian có hạn, nên kết quả còn nhiều hạn chế:

 Việc sử dụng mô hình lưu trữ như trên tuy đơn giản nhưng truy xuất chậm nếu dữ liệu lớn

 Chưa tối ưu hóa mô hình dữ liệu

Hướng phát triển:

 Tiếp tục tìm hiểu và nghiên cứu “Cơ sở dữ liệu đồ thị” và áp dụng hệ cơ sở

dữ liệu khác trong việc lưu trữ dữ liệu đồ thị để tối ưu hóa thời gian tìm kiếm

 Phát triển hoàn chỉnh thành bài luận cuối khóa với những mục tiêu đã đề ra lúc đầu

 Kết hợp với bài tiểu luận trong các chuyên đề trước đã thực hiện: “Tìm hiểu

về Logic Mờ” để áp dụng cho việc tìm gần đúng đối với trường hợp sử dụng ảnh gương mặt để lưu trữ hoặc tìm theo ảnh dấu vân tay

Trang 15

CHƯƠNG IV TÀI LIỆU THAM KHẢO

1 Tài liệu giấy:

A/ Prof Do Phuc - Mining, Indexing and Searching Graph Databases

 HOÀNG KIẾM – THANH THỦY – CHI MAI – “Đôi cánh I – CA – RƠ nhà xuất bản thống kê HÀ NỘI – 1990”

 PGS.TS Đỗ Văn Nhơn – TS Đỗ Phúc – “Giáo trình Các Hệ Cơ Sở Tri Thức, Đại học Quốc gia Tp.HCM, 2002”

 Bài thu hoạch các khóa trước (khóa 2008 – 2009 - 2010)

2 Tài liệu Web:

 http://vi.wikipedia.org/wiki/%C4%90%E1%BB%93_th%E1%BB%8B_

%28l%C3%BD_thuy%E1%BA%BFt_%C4%91%E1%BB%93_th%E1%BB

%8B%29#.C4.90.E1.BB.93_th.E1.BB.8B_v.C3.B4_h.C6.B0.E1.BB.9Bng

 http://en.wikipedia.org/wiki/Graph_database

 http://www.graph-database.org/

Ngày đăng: 10/04/2015, 00:16

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w