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

Báo cáo chuyên đề cơ sở dữ liệu nâng cao Network Data Model

35 777 3

Đ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 35
Dung lượng 916 KB

Nội dung

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..Dữ liệu đồ thị là cách thức lưu trữ thông tin ở dạng đồ thị những đỉnh và cạ

Trang 1

LỜI MỞ ĐẦU



Ngày nay, hầu hết các ứng dụng đều có một lượng dữ liệu khổng lồ.Vấn đề lưu trữ và xử

lý dữ liệu trở nên khó khăn và cần được quan tâm hơn, dữ liệu linh hoạt và được thay đổi gần như theo thời gian thậm chí thay đổi cấu trúc cơ bản của dữ liệu 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 Dữ liệu đồ thị là cách thức lưu trữ thông tin ở dạng đồ thị những đỉnh và cạnh.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ự trình bày khái quát về cơ sở dữ liệu đồ thị, đồng thời trình bày trình bày một cách chi tiết việc ứng dụng network data model của oracle để lưu trữ dữ liệu đồ thị và sử dụng Java API để phân tích dữ liệu đã lưu trữ.

Em xin chân thành cảm ơn PGS.TS Đỗ Phúc – Giảng viên môn học cơ sở dữ liệu nâng cao đã truyền đạt những kiến thức vô cùng quý báu, 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ĩ Công nghệ thông tin qua mạng 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.

Chân thành cám ơn!

Nguyễn Ngọc Diễm

Trang 2

PHẦN I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ĐỒ THỊ



Đồ thị là một tập các đối tượng được gọi là các đỉnh được nối với nhau bởi các

cạnh.Có 2 loại đồ thị : đồ thị vô hướng và đồ thị có hướng

Đồ thị vô hướng

Đồ thị có hướng

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ị trọng số để biểu diễn những khái niệm khác nhau như chiều dài con đường,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 ở một thời điểm nào đó…

Nhiều bài toán thực tế có thể được biểu diễn bằng đồ thị Ví dụ, cấu trúc liên kết của một website có thể được biểu diễn bằng một đồ thị có hướng, XML, cấu trúc phân tử hóa học, cấu trúc protein, đối tượng 3D…

II 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…

Trang 3

Lưu trữ bằng SBGE

Để 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ữnghàm truy xuất của đồ thị

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ị

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

Dữ liệu đồ thị có nhiều ứng dụng trong thực tế như : trong sinh học (dùng cơ sở dữliệu đồ thị để lưu trữ cấu trúc genes, protein hoặc mô hình của một tế bào…), trong hóa học ( Cấu trúc phân tử của một chất), lưu trữ ảnh, mạng xã hội, cấu trúc liên kết

Data network model thao tác trên hai loại dữ liệu đồ thị: Logical và Spatial Với

đồ thị dang Spatial, người sử dụng có thể lưu trữ được thông tin không gian của các đỉnhnhư vị trí địa lý, kinh độ, vĩ độ để từ đó có thể có những thao tác thích hợp Đồ thị Spatial thường được sử dụng để lưu trữ các dữ liệu GIS (hệ thống thông tin địa lý) Còn

đồ thị logical thì ngược lại, chỉ lưu trữ được những thông tin cơ bản của một node như tên, trạng thái, nhãn Ví dụ như lưu trữ : XML, cấu trúc protein, và mạng xã hội… Mạng Spatial :

Mạng logical

Trang 4

Đây là mô hình tương tác của client với database thông quan network data model

Việc sử dụng data network model để quản lý dữ liệu đồ thị bao gồm các thành phần chính sau :

 Mô hình dữ liệu đồ thị được lưu trữ trong database dưới dạng các table

 Những hàm SQL để định nghĩa và quản lý dữ liệu (nằm trong gói SDO_NET)

 Những hàm phân tích đồ thị sử dụng Java API.Java API phân tích dữ liệu đồ thị bằng cách copy dữ liệu từ database và lưu trữ vào bộ nhớ tạm trong quá trình thao tác

 Phân tích dữ liệu đồ thì bằng PL/SQL

Đây là mô hình mô tả việc sử dụng Java API để thao tác trên dữ liệu đồ thị được lưu trữ sẳn

Trang 5

III Cấu trúc dữ liệu lưu trữ đồ thị

Một dữ liệu đồ thị được lưu trữ trong database thông qua 2 table chính : Node và Link.Tuy nhiên bên cạnh đó còn có 2 table khác đó là Path và Path Link, dữ liệu trong

2 table này chính là kết quả của những hàm phân tích đồ thị ví dụ như tìm đường đi ngắn nhất giữa 2 node, tìm danh sách node liền kề…

Hình sau miêu tả mối quan hệ giữa các table trong database

NODES : đỉnh của đồ thị

LINKS : cạnh của đồ thị

PATHS : đường dẫn của 2 đỉnh trong đồ thị

PATH_LINKS : Lưu trữ những cạnh mà đường dẫn PATHS đi qua Khóa chính của table PATHS chính là khóa ngoại của table PATH_LINKS

IV Lưu trữ đồ thị bằng table có sẵn

Sử dụng procedure SDO_NET.CREATE_NODE_TABLE để tạo ra table node.Đây là procedure đã được oracle định nghĩa sẳn, tham số của procedure trên là

Table_node_name : Tên của table sẽ lưu trữ các nút của đồ thị

Geom_type : chỉ định loại đồ thị mà node này sẽ thuộc.SDO_GEOMETRY

với đồ thị Spatial và null với đồ thị logical

Geom_column : chỉ định cột sẽ lưu trữ dữ liệu không gian nếu là đồ thị

Geom_column varchar2,Cost_column varchar2,No_of_hierarchy_levels number)

Trang 6

Hình sau có no_of _hierachy_levels là 2.

Ví dụ :

EXECUTE SDO_NET.CREATE_NODE_TABLE( 'NODES_DATA' , NULL,NULL, NULL, );

Câu lệnh trên sẽ tạo ra một table có tên là NODES_DATA, table này sẽ lưu trữ toàn bộ các nút của đồ thị logical không phân cấp

Table NODES_DATA sau khi tạo sẽ có các thuộc tính sau:

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

NODE_ID Number ID của node, là duy nhất không được trùng với các id

khácNODE_NAME Varchar2 Tên của node

NODE_TYPE Varchar2 Loại node, do người sử dụng tự định nghĩa

ACTIVE Varchar2 Y nếu nút là active có nghĩa là có thể hiển thị trong

mạng, N nếu node được ẩn

PARTITION_ID Number Đây là khóa ngoại của table PARTITION

Ví dụ : Ta có mạng sau

Ta sẽ tiến hành insert 3 dòng vào table NODES_DATA, mỗi dòng sẽ lưu thông tin một đỉnh của đồ thị

Trang 7

2 Tạo LINK

Sử dụng procedure SDO_NET.CREATE_LINK_TABLE để tạo table link lưu trữ

sự kết nối giữa 2 node trong một mạng.Hay nói cách khác, một link chính là một cạnh trong đồ thị

Các tham số của procedure SDO_NET.CREATE_LINK_TABLE là :

Tương tự như procedure tạo table Node

Ví dụ :

EXECUTE SDO_NET CREATE_LINK_TABLE ('LINKS_DATA', NULL,NULL, NULL, );

Câu lệnh trên sẽ tạo ra table LINKS_DATA với các thuộc tính như sau

LINK_NAME Varchar2 Tên của link liên kết

START_NODE_ID Number ID của node bắt đầu Nếu đồ thị có hướng thì đây

là ID của đỉnh gốc

END_NODE_ID Number ID của node kết thúc.Nếu đồ thị có hướng thì đây

là ID của định ngọn

LINK_TYPE Varchar2 Loại link, do người sử dụng tự định nghĩa

ACTIVE Varchar2 Y : nếu link này được hiển thị trong đồ thị, N :

nếu link bị ẩn đi

LINK_LEVEL Number Cấp độ của link, được sử dụng trong đồ thị phân

cấp.Cấp độ của link cũng chính là độ ưu tiên khi duyệt độ thị tìm đường đi

Ví dụ :

INSERT INTO NODES_DATA ( NODE_ID , NODE_NAME , ACTIVE ) VALUES ( 1 'N1', 'Y');

INSERT INTO NODES_DATA ( NODE_ID , NODE_NAME , ACTIVE ) VALUES ( 2 'N2', 'Y');

INSERT INTO NODES_DATA ( NODE_ID , NODE_NAME , ACTIVE ) VALUES ( 3 'N3', 'Y');

SDO_NET.CREATE_LINK_TABLE(

Table_link_name varchar2,Geom_type varchar2,Geom_column varchar2,Cost_column varchar2,No_of_hierarchy_levels number)

Trang 8

Đồ thị có 3 cạnh cũng chính là 3 link liên kết giữa các node.Khi lưu trữ đồ thị trên vào database, mỗi cạnh được ánh xạ thành một dòng trong table LINKS_DATA được tạo bằng procedure trên.

Các tham số cần truyền vào khi gọi procedure trên :

Table_ Path _name : Tên của table sẽ lưu trữ danh sách đường đi giữa hai node

bất kỳ của đồ thị

Geom_type : chỉ định loại đồ thị mà đường dẫn này sẽ thuộc.SDO_GEOMETRY

với đồ thị Spatial và NULL với đồ thị logical

Ví dụ : Nếu gọi procedure EXECUTE SDO_NET.CREATE_PATH_TABLE( 'PATHS' , NULL);

Thì sẽ tạo một table PATHS trong database với các thuộc tính sau:

START_NODE_ID Number ID của node bắt đầu của link đầu tiên trong

danh sách link mà con đường này đi qua.END_NODE_ID Number ID của node cuối cùng của link cuối cùng

trong danh sách link mà con đường này đi qua

PATH_TYPE Varchar2 Loại Path do người sử dụng tự định nghĩaCOST Number Chi phí khi thực hiện đi theo con đường trên

ví dụ như thời gian lái xe khi khảo sát trong

đồ thị giao thông, khoảng cách đi giữa hai node giao thông…

INSERT INTO LINKS_DATA ( LINK_ID , LINK_NAME , START_NODE_ID , END_NODE_ID ,

ACTIVE ) VALUES ( , 'L1', 1 , 2 , 'Y');

INSERT INTO LINKS_DATA ( LINK_ID , LINK_NAME , START_NODE_ID , END_NODE_ID ,

ACTIVE ) VALUES ( , 'L2', 2 , 3, 'Y');

INSERT INTO LINKS_DATA ( LINK_ID , LINK_NAME , START_NODE_ID , END_NODE_ID ,

ACTIVE ) VALUES ( , 'L3', 1 , 3, 'Y');

SDO_NET.CREATE_NODE_TABLE(

Table_Path_name varchar2,Geom_type varchar2)

Trang 9

SIMPLE Varchar2 Y: nếu là đường đi đơn, N: trường hợp

ngược lại.Đường đi đơn là con đường mà từ node đầu tiên đến node cuối cũng mỗi link được duyệt qua duy nhất chỉ một lần

BIDIRECTED CHAR(1) Chỉ đồ thị có hướng hay vô hướng

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

Ta lưu trữ đường đi từ A đến F như sau :

A  B  C  F

Thì lúc này dữ liệu trong table PATHS sẽ được insert như sau

Vì đây là đồ thị không trọng số nên mỗi link đi qua có chi phí như nhau và được tính là 1.Vậy với đường đi trên sẽ tốn chi phí là 3

4 Tạo PATH_LINK

Sử dụng procedure SDO_NET CREATE_PATH_LINK_TABLE để tạo table PATHS_LINKtrong database, table này sẽ lưu trữ cụ thể những link mà một đường đi sẽ đi qua

Các tham số của procedure trên là

Table_Path_Link_name : Tên table sẽ lưu trữ thông tin trên.

Khi procedure trên thực thi xong thì một table có tên là PATH_LINKS sẽ được tạo trong database, thuộc tính của table trên bao gồm :

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

PATH_ID Number ID của đường đi,đây là khóa ngoại của table PATHS được

tạo bên trênLINK_ID Number ID link, đây là khóa ngoại của table LINKS.PATH_ID và

LINK_ID khóa chính trong table này

INSERT INTO PATHS ( PATH_ID , PATH_NAME , START_NODE_ID , END_NODE_ID ,

COST, SIMPLE ) VALUES ( , 'P1', A, F ,3 ,'Y');

SDO_NET.CREATE_PATH_LINK_TABLE(

Table_Path_Link_name varchar2)

Trang 10

SEQ_NO Number Số lượng link_Id trong đường đi này, SEQ_NO mặc định

là 1 ( đường đi chỉ chứa 1 link có mã số là LINK_ID), thuộc tính này cho phép đường đi có thể lặp lại cạnh đã đi rồi

Với đường đi A  B  C  F trong ví dụ trên thì dữ liệu được lưu trữ vào table

PATH_LINKS như sau:

Bên cạnh sử dụng những table có sẳn, người sử dụng vẫn có thể tự tạo ra những table lưu trữ thông tin đồ thị

 Tạo table NODES

 Tạo table LINKS

 Tạo table PATHS

 Tạo table PATH_LINKS

CREATE TABLE NODES

( USER_NAME varchar(255 ), Node Id

PASS varchar(255 ), Node name

INSERT INTO PATH_LINKS ( PATH_ID , LINK_ID,SEQ_NO) VALUES ( , 1,1);

INSERT INTO PATH_LINKS ( PATH_ID , LINK_ID,SEQ_NO) VALUES ( , 2,1);

INSERT INTO PATH_LINKS ( PATH_ID , LINK_ID,SEQ_NO) VALUES ( , 3,1);

Trang 11

Số lượng thuộc tính trong các table trên vẫn có thể thay đổi tùy thuộc vào yêu cầu củatừng đồ thị

Mỗi mạng dữ liệu khi được tạo ra sẽ lưu trữ vào table user_sdo_network_metadata

thuộc tính của table đó như sau

NETWORK VARCHAR2(24) Tên của mạng lưu trữ, là duy nhất

NETWORK_CATEGORY VARCHAR2(12) Có 2 option.SPATIAL nếu mạng lưu

trữ dữ liệu không gian, ngược lại là LOGICAL

GEOMETRY_TYPE VARCHAR2(24) Loại của dữ liệu không gian nếu

NETWORK_CATEGORY là SPATIAL, có 3 lựa chọn SDO_GEOMETRY,LRS_GEOMETRY,TOPO_GEOMETRY

NETWORK_TYPE VARCHAR2(24) Người sử dụng tự định nghĩa để miêu

tả loại mạng lưu trữ

NO_OF_HIERARCHY_LE

VELS

NUMBER Chiều cao phân cấp của mạng, là 1

nếu mạng không có sự phân cấp.NO_OF_PARTITIONS NUMBER Số partition của mạng lưu trữ

LINK_DIRECTION VARCHAR2(12) UNDIRECTED : Đồ thị vô hướng

DIRECTED : Đồ thị có hướng

NODE_TABLE_NAME VARCHAR2(32) Tên table lưu trữ danh sách

node(đỉnh) của đồ thịNODE_GEOM_COLUMN VARCHAR2(32) Tên của cột chứa dữ liệu không gian

trong table lưu trữ danh sách node.Thuộc tính này chỉ chứa dữ liệu khi đồ thị đang xét là SPATIAL

24)

Tên của cột lưu trữ thông tin về chi phí của node Mặc định là 0

LINK_TABLE_NAME VARCHAR2(32) Tên table lưu trữ danh sách link liên

CREATE TABLE PATH_LINKS

( PATH_ID number,

LINK_ID number,

SEQ_NO number

);

Trang 12

kết giữa 2 node trong đồ thịLINK_GEOM_COLUMN VARCHAR2(32) Tên của cột chứa dữ liệu không gian

trong table lưu trữ danh sách link.Thuộc tính này chỉ chứa dữ liệu khi đồ thị đang xét là SPATIAL

PATH_LINK_TABLE_NA

ME VARCHAR2(32) Tên của table Path_Links.Được chỉ định khi và chỉ khi thuộc tính

PATH_TABLE_NAME được chỉ định

PATH_GEOM_COLUMN VARCHAR2(32) Tên của cột lưu trữ thông tin không

gian trong table PATHSLRS_TABLE_NAME VARCHAR2(32) Nếu GEOMETRY_TYPE là

SDO_GEOMETRY, thì thuộc tính này sẽ chứa tên của table mà lưu trữ thông tin không gian

LRS_GEOM_COLUMN VARCHAR2(32) Nếu LRS_TABLE_NAME chứa tên

table, thì thuộc tính này sẽ chứa tên cột dữ liệu không gian của table đóPARTITION_TABLE_NA

Có 2 hàm procedure tương ứng với 2 loại mạng Spatial và

Logical.SDO_NET.CREATE_SDO_NETWORK tạo ra mạng Spatial,

SDO_NET.CREATE_LOGICAL_NETWORK tạo ra mạng Logical

Procedure trên chứa 4 tham số : Tên mạng, số phân cấp mạng loại đồ thị được lưu trữ có hướng hay vô hướng, trạng thái node có chi phí hay không

Khi procedure trên được thực thi thì sẽ tạo ra một cấu trúc mạng như sau :

Tạo một mạng SPATIAL có tên là US_ROAD, tạo ra một table

US_ROAD_NODE$ để lưu trữ các node của mạng, table US_ROAD_LINK$ lưu trữ các link của mạng,table US_ROAD_PATH$ để lưu trữ các đường đi của 2 node trong mạng, US_ROAD_PLINK$ để lưu trữ danh sách link mà đường đi giữa 2 node đi qua

EXEC SDO_NET.CREATE_SDO_NETWORK ('US_ROADS',1,TRUE,FALSE)

Trang 13

Chú ý : Procedure trên không tự động rollback nếu bị lỗi Do đó nếu đang tạo cấu trúc mạng mà bị lỗi, phải tiến hành drop mạng bằng procedure DROP_NETWORK trước khi tạo lại mạng mới có tên như cũ.

Với cách này, sẽ không linh hoạt trong việc sử dụng, nếu nhưng người sử dụng muốn có một sự thay đổi nào đó trong cấu trúc của các table thì không thể dùng cách này được

-LINK_ID NOT NULL NUMBER

LINK_NAME VARCHAR2(32 CHAR)

START_NODE_ID NOT NULL NUMBER

END_NODE_ID NOT NULL NUMBER

LINK_TYPE VARCHAR2(24 CHAR)

ACTIVE VARCHAR2(1 CHAR)

-PATH_ID NOT NULL NUMBER

PATH_NAME VARCHAR2(32 CHAR)

PATH_TYPE VARCHAR2(24 CHAR)

START_NODE_ID NOT NULL NUMBER

END_NODE_ID NOT NULL NUMBER

-PATH_ID NOT NULL NUMBER

LINK_ID NOT NULL NUMBER

SEQ_NO NUMBER

Trang 14

Cách 2: Đây là cách linh hoạt hơn, dùng để giải quyết khuyết điểm ở cách

thứ nhấtInsert trực tiếp vào table user_sdo_network_metadataSQL> Create the node table

SQL> CREATE TABLE us_intersections (

node_id NUMBER,

location SDO_GEOMETRY,

CONSTRAINT us_intersections_pk PRIMARY KEY (node_id)

);

SQL> Create the link table

CREATE TABLE us_streets (

link_id NUMBER,

start_node_id NUMBER NOT NULL,

end_node_id NUMBER NOT NULL,

SQL> Create path table

SQL> CREATE TABLE us_paths (

path_id NUMBER,

start_node_id NUMBER NOT NULL,

end_node_id NUMBER NOT NULL,

SQL> Create path link table

SQL> CREATE TABLE us_path_links (

Trang 15

Table us_ streets chứa 2 cột biểu diển chi phí : chiều dài con đường(street_length )

và thời gian đi hết con đường đó(travel_time)

Mạng US_ROAD được đã định nghĩa sử dụng Street_length cho cột lưu trữ chi phí của mạng.Điều này đồng nghĩa với việc có thể tính được đoạn đường đi ngắn nhất giữa hai node bất kỳ

SQL> INSERT INTO USER_SDO_NETWORK_METADATA(

Trang 16

Bên cạnh đó, việc tính toán thời gian đi nhanh nhất giữa 2 node bất kỳ vẫn có thể được yêu cầu Để giải quyết được bài toán đó thì phải tạo thêm một mạng thứ 2, mạng này sẽ có cấu trúc tương tự mạng US_ROAD nhưng cột chi phí giữa hai node là

Trang 17

VII Kiểm tra mạng dữ liệu được tạo

Sau khi tạo xong cấu trúc mạng, để chắc chắn mạng tạo không bị lỗi cần phải kiểmtra lại bằng lệnh sau

SELECT SDO_NET.VALIDATE_NETWORK('US_ROADS') FROM DUAL;

Kết quả :

NULL : nếu như mạng không tồn tại

TRUE : nếu mạng tạo thành công và không bị lỗi

Một chuổi string miêu tả lỗi nếu mạng được định nghĩa không chính xác

VIII Tạo cây chỉ mục tìm kiếm

Việc tạo chỉ mục để tìm kiếm trong oracle được kế thừa từ cấu trúc của R-Tree index R-Tree là một cây cân bằng tương tự như B-Tree Với ý tưởng như sau : các index sẽ nằm tại các node lá chứa các điểm dữ liệu, khi đó việc tìm kiếm sẽ thực hiện trên một số lượng nhỏ các nút.Thuật toán tìm kiếm duyệt cây từ gốc đi xuống theo cách tương tự như B-Tree Tuy nhiên khi thăm một nút sẽ có nhiều hơn một cây con dưới node đó đang cần được tìm kiếm, vì lý do đó thuật toán không đảm bảo thực hiện tốt trong trường hợp xấu nhất Tuy nhiên với nhiều kiểu của dữ liệu, thuật toán cập nhật sẽ duy trì hình dạng của cây để cho phép thuật toán tìm kiếm loại đi những vùng không liên quan của không gian index và kiểm tra duy nhất dữ liệu gần vùng tìmkiếm

Ví dụ: Mỗi vùng sẽ được ánh xạ thành một nhánh trong cây chỉ mục

Cây chỉ mục được lưu trữ trong database oracle như sau

Ví dụ như table Customers có cột location lưu trữ vị trí địa lý của từng khách hàng như số nhà tên đường tên thành phố…

Ngày đăng: 11/04/2015, 07:57

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] < A/ Prof. Do Phuc> Mining, Indexing and Searching Graph Databases Khác
[2] <Ravi Kothuri, Albert Godfrind, Euro Beinat> Pro Oracle Spatial for Oracle Database 11g Khác
[3] < Chuck Murray>2003 Oracle Spatial Topology and Network Data Models, 10g Release 1 (10.1) Khác
[4] < Hyatt Regency Phoenix> 2010 Developing Network Analysis Applications Using the Oracle Spatial Network Data Model Khác
[5] < B. A. Eckman,P. G. Brown> 2006 Graph data management for molecular and cell biology Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w