Mô hình dữ liệu logic

Một phần của tài liệu Một số vấn đề về mạng lưới trong cơ sở dữ liệu không gian (Trang 25)

Các ứng dụng được mô hình thành các đồ thị có nhiều phép toán phổ

biến. Chúng ta nhấn mạnh rằng mỗi phép toán này có thể được thực hiện trong nhiều cách khác nhau, tùy thuộc vào ứng dụng và cấu trúc lưu trữ đồ thị [11].

Có ba lớp (hay thực thể) cơ bản trong các đồ thị: Graph, Vertex và Edge. Với mỗi lớp liệt kê một loạt các phép toán (operation) phổ biến, hoặc các phương thức (method).

Public class Graph

{ public void add(Object label); // label miêu tảđỉnh thêm vào

public void addEdge(Object v1, Object v2, Object label);

// một cạnh được chèn vào giữa hai đỉnh v1 và v2

public Object delete(Object label); // xóa một đỉnh

public Object deleteEdge(Object v1, Object v2);

//xóa cạnh nối đỉnh v1 và v2

public Object get(Object label); // trả về nhãn đỉnh

public Edge getEdge(Object v1, Object v2);

// trả về nhãn của cạnh nối v1 và v2

public Object get-a-Successor(Object label);

// trả về nút liền kề với đỉnh

public Iterator getSuccessors(Object label);

// trả về tất cả các láng giềng liền kề

public Iteator getPredecessors(Object label); // trả về tất cả các nút cha

public boolean isDirected(); // trả về True nếu đồ thị có hướng

Vertex và Edge là hai lớp quan trọng khác. Hầu hết các thuật toán đồ thị

lưu lại vết của các đỉnh và các cạnh được thăm bằng cách đánh dấu chúng. Vì vậy, thật hữu ích để cung cấp hướng hỗ trợ cho các phép toán này. Vertex có thể

nhìn thấy được từ giao diện đồ thị, lớp này được công khai. public class Vertex

{ public Vertex(Object label);

//cấu tử của lớp. Tạo ra nút với nhãn thích hợp

public Object label(); // trả về nhãn thích hợp với đỉnh

public boolean visit(); // đánh dấu đỉnh đã đến thăm

public boolean isVisited(); // trả về True nếu đỉnh đã được thăm

}

Tương tự với lớp Vertex, lớp Edge được công khai vì nó được nhìn thấy từ giao diện đồ thị vì phương thức getEdge được sử dụng trong lớp Graph. Ở đây, chỉ liệt kê một vài phương thức cơ bản của lớp Edge. Khi sử dụng ta có thể

cung cấp thêm nhiều phương thức hơn. public class Edge

{ public Edge(Object v1, Object v2, Object label, boolean directed);

// cấu tử của lớp. Cạnh có hướng nếu được thiết lập giá trị True

public Object Start(); // trả về nút đầu tiên của cạnh

public Object End(); // trả về nút thứ hai của cạnh

} H HE 8 9 I 1 A AE 2 B 6 F G 7 J 10 3 C E5 D 4 EJ/EG EA JE GA GE AG

Ngoài ra, một số hệ thống gồm các kiểu dữ liệu bổ sung như tuyến

đường... Một đường đi là một dãy bắt đầu với một nút và kết thúc là một nút khác. Nó bao gồm các nút và các cạnh theo thứ tự đường đi. Chẳng hạn, các tuyến

đường tàu hỏa trong mạng lưới đường tàu hỏa miêu tả một đường đi (hình 1.14).

Một phần của tài liệu Một số vấn đề về mạng lưới trong cơ sở dữ liệu không gian (Trang 25)

Tải bản đầy đủ (PDF)

(91 trang)