Tải bản đầy đủ (.docx) (72 trang)

Nghiên cứu XD đảm bảo AT CSDL không gian oracle

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.1 MB, 72 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU XÂY DỰNG VÀ ĐẢM BẢO AN TOÀN
CHO CƠ SỞ DỮ LIỆU KHÔNG GIAN TRÊN ORACLE
(ORACLE SPATIAL)
Ngành: An toàn thông tin
Mã số: 7.48.02.02

Sinh viên thực hiện:
Vũ Thị Khánh Ly
Lớp: AT10A
Người hướng dẫn:
ThS. Trần Thị Lượng
Khoa An toàn thông tin - Học viện Kỹ thuật mật mã

Hà Nội, 2018
1


MỤC LỤC

2


CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Chữ viết tắt
CSDL


DBMS
GIS
OODBMS
ORDBMS
RDBMS
SDB
SDBMS
SQL

3

Tiếng anh
Database
Database Management
System
Geographic information
system
Object-oriented database
management system
object-relational database
management system
Relation database
management system
Spatial database
Spatial database management
system
Structured query language

Tiếng Việt
Cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu
Hệ thống thông tin địa lý
Hệ quản trị cơ sở dữ liệu
hướng đối tượng
Hệ quản trị cơ sở dữ liệu
đối tượng - quan hệ
Hệ quản trị cơ sở dữ liệu
quan hệ
Cơ sở dữ liệu không gian
Hệ quản trị cơ sở dữ liệu
không gian
Ngôn ngữ truy vấn cấu
trúc


DANH MỤC HÌNH VẼ

4


DANH MỤC BẢNG BIỂU

5


LỜI CẢM ƠN
Trong quá trình thực hiện đồ án này, em nhận được sự giúp đỡ tận tình
của cán bộ hướng dẫn là ThS. Trần Thị Lượng - Giảng viên Khoa An toàn thông
tin, Học viện Kỹ thuật mật mã; sự động viên của người thân và bạn bè.
Em xin chân thành cảm ơn tất cả mọi người đã tạo những điều kiện tốt

nhất để em hoàn thành đồ án tốt nghiệp này!
SINH VIÊN THỰC HIỆN ĐỒ ÁN

Vũ Thị Khánh Ly

6


LỜI NÓI ĐẦU
Ngày nay, cơ sở dữ liệu đã trở thành một phần không thể thiếu trong các
ứng dụng, phần mềm phục vụ hoạt động đời sống hàng ngày. Tuy nhiên để đáp
ứng nhu cầu của người dùng trong nhiều lĩnh vực thì với cơ sở dữ liệu dạng chữ
là chưa đủ, chính vì lẽ đó cơ sở dữ liệu không gian ra đời. Cơ sở dữ liệu không
gian có thể lưu trữ một khối lượng lớn các thông tin phức tạp, lưu trữ dữ liệu
dưới dạng hình học để ứng dụng vào nhiều lĩnh vực hơn trong thực tiễn.
Đặc biệt, hệ quản trị Oracle có những tính năng và lợi ích hơn hẳn các hệ quản
trị CSDL khác. Tính năng nổi trội nhất của Oracle phải kể đến là khả năng chia sẻ dữ
liệu nhiều hơn, quản lý được dữ liệu dư thừa, an toàn bảo mật cao, ...v.v. Nhu cầu sử
dụng các ứng dụng phần mềm về bản đồ, tìm đường, định vị ngày càng cao đòi hỏi
CSDL không chỉ lưu trữ các kiểu dữ liệu thông thường như kiểu chuỗi, kiểu số, kiểu
ngày tháng mà cần thêm nhu cầu lưu trữ các kiểu dữ liệu không gian. Vậy để hiểu
định nghĩa, đặc trưng, các mô hình CSDL về không gian, CSDL không gian trên
Oracle và làm sao để bảo vệ cho CSDL không gian. Đây là lý do mà em đã lựa chọn
đề tài: “Nghiên cứu xây dựng và đảm bảo an toàn cho cơ sở dữ liệu không gian
trên Oracle” cho đồ án tốt nghiệp của mình.
Đồ án được thực hiện nhằm mục đích tìm hiểu, nghiên cứu, xây dựng một
CSDL không gian trên Oracle và áp dụng cơ chế an toàn để bảo vệ. Nội dung
của đồ án bao gồm ba chương:
Chương 1: Tổng quan về cơ sở dữ liệu không gian.
Chương 2: Cơ sở dữ liệu không gian trên Oracle (Oracle Spatial).

Chương 3: Thực nghiệm xây dựng và đảm bảo an toàn cho cơ sở dữ liệu
không gian trên Oracle (Oracle Spatial).
Sau thời gian khoảng ba tháng thực hiện, các mục tiêu về cơ bản đã đạt
được. Tuy nhiên CSDL không gian đặc biệt là Oracle Spatial còn là một khái
niệm khá mới, thời gian thực hiện có hạn nên đồ án của em chắc chắn không
7


tránh khỏi thiếu sót. Em rất mong nhận được sự góp ý của quý thầy cô và các
bạn để đồ án của em được hoàn thiện hơn.
SINH VIÊN THỰC HIỆN ĐỒ ÁN

Vũ Thị Khánh Ly

8


CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU KHÔNG GIAN
1.1.
Tổng quan về cơ sở dữ liệu
1.1.1. Giới thiệu về cơ sở dữ liệu

Cơ sở dữ liệu (CSDL) là tập dữ liệu có mối quan hệ tương quan nhau và
lưu trữ trong môi trường máy tính, CSDL có thể được xem như một hoặc vài file
lưu trữ trên một số thiết bị nhớ ngoài. Hệ quản trị cơ sở dữ liệu (Database
Management System - DBMS) là một nhóm các chương trình giúp quản lý cấu
trúc CSDL và truy xuất dữ liệu trong CSDL như MS Access, SQL Server, My
SQL...v.v. DBMS phục vụ như một trung gian giữa người dùng và CSDL, hiển
thị CSDL dưới một khung nhìn duy nhất cho các người dùng/ứng dụng, cho
phép ứng dụng có thể truy suất CSDL thông qua nhiều loại ngôn ngữ. DBMS

cho phép dữ liệu được chia sẻ.

Hình 1.1: Mô hình tương tác người dùng và cơ sở dữ liệu thông qua DBMS
Phần mềm của hệ quản trị cơ sở dữ liệu bao gồm hai phần, phần trên làm
nhiệm vụ xử lý các truy vấn của người sử dụng, phần dưới cho phép truy nhập
9


vào dữ liệu lưu trữ trên máy tính. Hệ quản trị cơ sở dữ liệu thường được xây
dựng trên cơ sở mô hình dữ liệu sử dụng, trước kia có mô hình dữ liệu phân cấp
(hierarchical) và mô hình dữ liệu mạng (network). Ngày nay, ba mô hình cơ sở
dữ liệu đang được phát triển và sử dụng rộng rãi đó là mô hình cơ sở dữ liệu
quan hệ (relational), hướng đối tượng (object-oriented), đối tượng quan hệ
(object-relational).
Mô hình dữ liệu phân cấp ngày nay đã quá lỗi thời, hệ quản trị cơ sở dữ
liệu phân cấp (hierarchical DBMS) giả thiết rằng dữ liệu có mối quan hệ thứ bậc
cha và con. Cấu trúc dữ liệu bắt buộc phải xây dựng phù hợp với mô hình này để
thực hiện được lợi ích và hiệu quả trong quản lý.
Hệ quản trị cơ sở dữ liệu mạng (network DBMS) cho phép các cấu trúc
dữ liệu phức tạp được xây dựng nhưng không có tính mềm dẻo và đòi hỏi thiết
kế phải hết sức cẩn thận, tuy nhiên lợi ích của mô hình này là nhanh và hiệu quả.
1.1.2.

Mô hình quan hệ
Cơ sở dữ liệu quan hệ phát triển trên cơ sở mô hình quan hệ, ở đó dữ liệu

tổ chức vào các quan hệ hay các bảng. Một quan hệ là một bảng dữ liệu hai
chiều (cột và dòng), mô tả một thực thể. Mỗi cột tương ứng với một thuộc tính
của thực thể. Mỗi dòng chứa các giá trị dữ liệu của một đối tượng cụ thể thuộc
thực thể. Lược đồ quan hệ được sử dụng để mô tả một quan hệ, bao gồm: tên

quan hệ, các thuộc tính và bậc của quan hệ (số lượng các thuộc tính). Quan hệ là
tập các bản ghi lưu dữ liệu của các tập thuộc tính trong lược đồ quan hệ.
Hệ quản trị cơ sở dữ liệu quan hệ RDBMS (relation-database management
system) được sử dụng một cách rộng rãi hơn so với các hệ quản trị cơ sở dữ liệu
khác bởi lợi ích nhanh chóng và tin cậy. Tuy nhiên, với những ứng dụng lớn nó tỏ
ra chậm chạp vì hệ quản trị cơ sở dữ liệu quan hệ phải sử dụng rất nhiều bảng cho
hàng loạt các quy tắc.
1.1.3.

Mô hình hướng đối tượng
Mô hình cơ sở dữ liệu hướng đối tượng đã xuất hiện như một giải pháp

nhằm giải quyết sự phức tạp trong việc mô hình hóa thực thể. Mô hình dữ liệu
10


hướng đối tượng cho phép dùng lại các dữ liệu và các phương pháp thông qua
tính kế thừa, cho phép xây dựng các đối tượng phức tạp, và cho phép định danh
các đối tượng một cách độc lập.
Hệ quản trị cơ sở dữ liệu hướng đối tượng OODBMS (Object-oriented
database management system) tích hợp giữa hướng đối tượng và cơ sở dữ liệu.
Cơ sở dữ liệu hướng đối tượng được đặc trưng bởi mô hình dữ liệu hướng đối
tượng và ngôn ngữ lập trình hướng đối tượng, ở đó các đơn vị dữ liệu là các đối
tượng cơ sở. Các đối tượng này có định danh, thuộc tính và hành vi được định
nghĩa qua phương thức, tất cả được bao gói trong chính đối tượng đó.
1.1.4.

Mô hình đối tượng-quan hệ
Mô hình đối tượng - quan hệ được mở rộng từ mô hình dữ liệu quan hệ,


mô hình này là sự thỏa hiệp giữa hai khái niệm hướng đối tượng và quan hệ. Ở
đó các đặc trưng hướng đối tượng được tích hợp trong cơ sở dữ liệu quan hệ
nhằm sử dụng sức mạnh của mô hình hướng đối tượng trong khi đó vẫn duy trì
đầy đủ các chức năng trong mô hình quan hệ.
Hệ quản trị cơ sở dữ liệu đối tượng - quan hệ ORDBMS (object-relational
database management system) là một hệ thống quản lý cơ sở dữ liệu (DBMS)
bao gồm cả cơ sở dữ liệu quan hệ (RDBMS) và cơ sở dữ liệu hướng đối tượng
(OODBMS). ORDBMS hỗ trợ các thành phần cơ bản của bất kỳ mô hình cơ sở
dữ liệu hướng đối tượng nào trong các lược đồ và ngôn ngữ truy vấn được sử
dụng, chẳng hạn như đối tượng lớp và tính kế thừa.
1.2.

Giới thiệu về GIS (Geographic information system)
Có rất nhiều định nghĩa về GIS, một cách dễ hiểu có thể hình dung GIS là

hệ thống thông tin địa lý, về khía cạnh bản đồ học thì GIS là kết hợp của lập bản
đồ và công nghệ cơ sở dữ liệu, GIS không chỉ là công cụ tạo bản đồ mà còn lưu
trữ và biểu diễn dữ liệu. Sau đây là một số định nghĩa về GIS hay được sử dụng.
Định nghĩa của dự án The Geographer's Craft, khoa địa lý, trường đại học
Texas: là cơ sở dữ liệu số chuyên dụng trong đó hệ trục tọa độ không gian là
11


phương tiện tham chiếu chính. GIS bao gồm các công cụ để thực hiện các công
việc sau đây:


Nhập dữ liệu từ bản đồ giấy, ảnh vệ tinh, ảnh máy bay, số liệu điều tra và các




nguồn khác.
• Lưu trữ dữ liệu, khai thác, truy vấn cơ sở dữ liệu.
Biến đổi dữ liệu, phân tích, mô hình hóa, bao gồm cả dữ liệu thống kê và dữ liệu



không gian.
Lập báo cáo, bao gồm bản đồ chuyên đề, các bảng biểu, biểu đồ và kế hoạch.
Từ định nghĩa trên thấy rõ ba vấn đề sau của GIS:



Thứ nhất, GIS có quan hệ với ứng dụng cơ sở dữ liệu. Toàn bộ thông tin trong
GIS đều liên kết với tham chiếu không gian như phương tiện chính để lưu trữ và



xâm nhập thông tin.
Thứ hai, GIS là công nghệ tích hợp. Hệ GIS đầy đủ có đầy đủ khả năng phân
tích, bao gồm phân tích ảnh máy bay, ảnh vệ tinh hay tạo lập mô hình thống kê,



vẽ bản đồ...v.v.
Cuối cùng, GIS được xem như tiến trình không chỉ là phần cứng, phần mềm rời
rạc mà GIS còn được sử dụng vào trợ giúp quyết định. Cách thức nhập, lưu trữ,
phân tích dữ liệu trong GIS phải phản ánh đúng cách thức thông tin sẽ được sử
dụng trong công việc lập quyết định hay nghiên cứu cụ thể.
Định nghĩa của Viện Nghiên cứu hệ thống môi trường ESRI, Mỹ: GIS là

công cụ trên cơ sở máy tính để lập bản đồ và phân tích những cái đang tồn tại và
các sự kiện xảy ra trên Trái đất. Công nghệ GIS tích hợp các thao tác cơ sở dữ
liệu như truy vấn và phân tích thống kê với lợi thế quan sát và phân tích thống
kê bản đồ. Các khả năng này sẽ phân biệt GIS với các hệ thông tin khác. Có rất
nhiều chương trình máy tính sử dụng dữ liệu không gian như AutoCAD và các
chương trình thống kê, nhưng chúng không phải là GIS vì chúng không có khả
năng thực hiện các thao tác không gian.
Định nghĩa của David Cowen, NCGIA, Mỹ: GIS là hệ thống phần cứng,
phần mềm và các thủ tục được thiết kế để thu thập, quản lý, xử lý, phân tích, mô
12


hình hóa và hiển thị các dữ liệu qui chiếu không gian để giải quyết các vấn đề
quản lý và lập kế hoạch phức tạp. Độ phức tạp của thế giới thực là không giới
hạn. Càng quan sát thế giới gần hơn càng thấy được chi tiết hơn. Con người
mong mỏi lưu trữ, quản lý đầy đủ các dữ liệu về thế giới thực. Nhưng sẽ dẫn đến
phải có cơ sở dữ liệu lớn vô hạn để lưu trữ mọi thông tin chính xác về chúng.
Do vậy, để lưu trữ được dữ liệu không gian của thế giới thực vào máy tính thì
phải giảm số lượng dữ liệu đến mức có thể quản lý được bằng tiến trình đơn
giản hóa hay trừu tượng hóa (hình 1.2).

Hình 1.2: Hệ thống thông tin địa lý
Ý nghĩa chủ yếu của tin học hóa thông tin địa lý là khả năng tích hợp các
kiểu và nguồn dữ liệu khác biệt. Mục tiêu của GIS là cung cấp cấu trúc một cách
hệ thống để quản lý các thông tin địa lý khác nhau và phức tạp, đồng thời cung
cấp các công cụ, các thao tác hiển thị, truy vấn, mô phỏng...v.v.

13



Hình 1.3: Tầng bản đồ
GIS lưu trữ thông tin thế giới thực thành các tầng (layer) bản đồ chuyên đề
mà chúng có khả năng liên kết địa lý với nhau (hình 1.3). Mỗi nhóm người sử
dụng sẽ quan tâm nhiều hơn đến một hay vài loại thông tin. Ví dụ, Sở giao thông
công chính sẽ quan tâm nhiều đến hệ thống đường phố. Sở nhà đất quan tâm
nhiều đến các khu dân cư và công sở. Sở thương mại quan tâm nhiều đến phân bổ
khách hàng trong vùng. Tư tưởng tách bản đồ thành tầng tuy đơn giản nhưng khá
mềm dẻo và hiệu quả, giúp giải quyết rất nhiều vấn đề về thế giới thực.
1.3.
1.3.1.

Tổng quan về cơ sở dữ liệu không gian
Giới thiệu về cơ sở dữ liệu không gian
Cơ sở dữ liệu không gian là một cơ sở dữ liệu đã được tối ưu hoá dùng để

lưu trữ và truy vấn dữ liệu thường là các đối tượng hình học đơn giản như điểm,
đường, đa giác,...v.v. Một số cơ sở dữ liệu không gian cho phép xử lý những cấu
trúc phức tạp hơn như 3D, mạng tuyến tính,...v.v.
Dữ liệu không gian còn được gọi là dữ liệu không gian địa lý hoặc các
thông tin địa lý. Dữ liệu không gian xác định vị trí địa lý của các vùng, ranh giới
trên trái đất, lưu trữ toạ độ, cấu trúc liên kết hoặc dữ liệu khác có thể ánh xạ
được. Có ba loại dữ liệu cơ bản: points, lines, regions.

14


Các yêu cầu cần thiết cho việc xây dựng cơ sở dữ liệu không gian:




Trước hết, đó phải là một hệ cơ sở dữ liệu.
Các kiểu dữ liệu không gian phải được cung cấp trong các mô hình dữ liệu và
ngôn ngữ truy vấn, các phép toán truy vấn quan hệ như phép nối, chọn. Cần thiết



xây dựng thêm một số phép toán mới với các kiểu dữ liệu hình học.
Biểu diễn dữ liệu logic phải được mở rộng tới dữ liệu kiểu hình học và thỏa mãn
tính độc lập dữ liệu, duy trì tính đơn giản nhất có thể và tính đóng đối với người



sử dụng.
Ngôn ngữ truy vấn phải tích hợp với các hàm nhằm hỗ trợ xây dựng ứng



một cách phong phú các đối tượng hình học.
• Có thể biểu diễn vật lý một cách hiệu quả dữ liệu không gian.
Truy nhập dữ liệu không gian một cách hiệu quả, hiện nay B-tree không còn là
tiếp cận với truy nhập dữ liệu không gian. Và theo đó chúng ta cần xây dựng cấu
trúc mới cho việc đánh chỉ mục cơ sở dữ liệu không gian.
1.3.2. Đặc trưng của cơ sở dữ liệu không gian
Cơ sở dữ liệu không gian sử dụng đánh chỉ mục không gian để tăng tốc hoạt
động của cơ sở dữ liệu. Ngoài các truy vấn SQL điển hình như câu lệnh select,
insert CSDL không gian có thể thực thi đa dạng các thao tác không gian như:



Đo lường không gian: nó có khả năng tìm khoảng cách giữa các điểm, các vùng.

Hàm không gian: ví dụ như, sửa đối các hàm hiện thời để tạo ra những hình mới,



hàm tìm điểm hay vùng giao nhau.
• Xác nhận không gian: nó cho phép thực hiện những truy vấn True/False.
Hàm tạo: tạo ra các hình mới, như chỉ ra các điểm nút có thể tạo nên đường, hay



nếu đỉnh đầu và đỉnh cuối trùng nhau, chúng có thể tạo nên một đa giác.
Hàm theo dõi các câu truy vấn trả về thông tin cụ thể như: vị trí tâm của một



đường tròn hay điểm đầu, điểm cuối của một đường.

1.3.3. Mô hình cơ sở dữ liệu không gian
1.3.3.1.
Sử dụng mô hình dữ liệu quan hệ

Sử dụng hệ quản trị cơ sở dữ liệu quan hệ để quản lý GIS có những đặc
trưng chính như:
15




Biểu diễn các đối tượng bằng các quan hệ (bảng). Mỗi hàng thể hiện một đối





tượng, mỗi cột là thuộc tính mô tả đối tượng đó.
Thuộc tính có kiểu chữ số (alphanumeric).
Truy vấn dựa vào SQL, đây là cách tiếp cận xoay quanh chuẩn SQL, nhưng khi

1.

điều khiển các ứng dụng về không gian địa lý có những hạn chế sau:
Vi phạm nguyên lý độc lập dữ liệu, các truy vấn trên đối tượng đòi hỏi có hiểu
biết về cấu trúc các đối tượng không gian. Sự thay đổi cấu trúc dẫn đến phải tổ

3.

chức lại cơ sở dữ liệu và thay đổi công thức truy vấn.
2. Cần đến số lượng lớn các dòng dữ liệu thể hiện dữ liệu không gian.
Cuối cùng là thiếu đi sự thân thiện với người sử dụng. Rất khó định nghĩa kiểu
không gian mới, đặc biệt là khó kiểm tra các phép toán cơ bản.
1.3.3.2. Tích hợp trên cơ sở mở rộng hệ quản trị cơ sở dữ liệu
Mô hình này đã nhận được sự quan tâm rất lớn từ nhiều năm trước đó ở
nhiều ứng dụng và được phát triển trên cơ sở thêm các kiểu, các toán tử mới vào
hệ thống cơ sở dữ liệu quan hệ như sau:



Ngôn ngữ truy vấn SQL được mở rộng để thực thi dữ liệu không gian. Toán tử




không gian được điều khiển trên cơ sở các kiểu dữ liệu alphanumeric.
Một số chức năng khác của cơ sở dữ liệu như tối ưu hoá truy vấn, được sửa đổi
nhằm thích nghi với các dữ liệu không gian một cách hiệu quả.
Hầu hết các hệ quản trị cơ sở dữ liệu có sẵn đều sử dụng cách tiếp cận mở
rộng không gian ví dụ như Oracle (Bắt đầu từ phiên bản 8i) và PostgreSQL.
1.3.3.3.

Sử dụng kiến trúc song song
Hiện nay rất nhiều hệ đã được biết đến khi xây dựng các ứng dụng GIS

như: ArcInfo (ESRI), MGE và TIGISs sử dụng cách tiếp cận này. Kiến trúc này
tách riêng việc quản lý dữ liệu mô tả (dữ liệu dạng alphanumeric) với quản lý dữ
liệu không gian, gồm hai hệ thống cùng xuất hiện ở hình 1.4.

16


Hình 1.4: Kiến trúc song song
Bao gồm:


Hệ quản trị cơ sở dữ liệu quan hệ và một số thành phần ở đó mô tả dữ liệu kiểu
alphanumeric.
• Các chức năng cho việc quản lý dữ liệu không gian.
Tuy nhiên tiếp cận này cũng có mặt hạn chế như:



Hai thành phần trên xuất hiện cùng nhau mà mô hình dữ liệu của chúng lại không




đồng nhất, do vậy mô hình phải sử dụng kết hợp những thực thi khác nhau.
Mất một phần chức năng cơ bản của hệ quản trị cơ sở dữ liệu như: phục hồi, sao
lưu dữ liệu, truy vấn và tối ưu dữ liệu.
1.3.4. Các hàm truy vấn cơ bản đối với cơ sở dữ liệu không gian
1.3.4.1. Hàm SDO_AGGR_MBR()
Thông thường các hàm thao tác với cơ sở dữ liệu không gian được bắt đầu
với SDO_*. Ví dụ như hàm SDO_AGGR_COCAT_LINE trả về một hình học nối
các dòng được xác định hay các định dạng đa tuyến, hàm SDO_AGGR_UNION
trả về một đối tượng hình học là liên kết topo của các đối tượng hình học được chỉ
định. Các hàm trên hầu như chỉ được chỉ định cho không gian hai chiều, ngoại trừ
hàm SDO_AGGR_MBR() được hỗ trợ cho cả hình học hai chiều và ba chiều.
Hàm SDO_AGGR_MBR trả lại hình chữ nhật bao quanh tối thiểu của các
hình học được chỉ định.
17


Ví dụ: Câu lệnh sẽ trả về tât cả các hình chữ nhật có trong một bảng COLA
_MARKETS.

SELECT SDO_AGGR_MBR (SHAPE) FROM COLA_MARKETS ;

Ngoài ra ta còn có thể sử dụng kết hợp với các điều kiện để cho ra kết quả
như mong muốn.
1.3.4.2. Hàm khai báo hình học
Trước khi đi vào nội dung khai báo về hình học, hãy theo dõi bảng dưới
đây để hiểu về các quy định khi sử dụng các hàm:
Bảng 1.1: Bảng giá trị khai báo hình không gian đa chiều
SDO_GTYPE

Point
Line String
Polygon
Collection
Multipoint
Solid

2D
2001
2002
2003
2004
2005
2008

3D
3001
3002
3003
3004
3005
3008

4D
4001
4002
4003
4004
4005
4008


Bảng trên miêu tả cơ bản về giá trị cần khai báo khi ta sử dụng hàm khai
báo kiểu hình học. Giả sử 2002 là dùng cho hình học đoạn thẳng và là hình học
2D, ...v.v. Ngoài ra vẫn còn rất nhiều giá trị khác được cho theo quy định dạng dữ
liệu tuyến tính trong đó D là chỉ số chiều của hình (bao gồm 2, 3, 4).
Hàm khai báo hình học SDO_GEOMETRY() đây là một hàm khai báo
hình học được dùng phổ biến nhất với mục đích tạo ra hình học một hay nhiều
chiều với các tọa độ điểm tùy ý. Cụ thể như sau:
CREATE TYPE

Trong đó:
18

SDO_GEO METRY AS OBJECT(
SDO_GTYPE NUMBER,
SDO_SRID NUMBER,
SDO_POINT SDO_POINT_TYPE,
SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES SDO_ORDINATES_ARRAY );






SDO_GTYPE: chỉ ra kiểu của geometry.
SDO_SRID: dành riêng sử dụng trong tương lai.
SDO_POINT: là một kiểu đối tượng với các thuộc tính toạ độ X, Y, và Z. Nếu
SDO_ELEM_INFO và SDO_ORDINATES đều không có giá trị và
SDO_POINT có giá trị thì giá trị X và Y là toạ độ của điểm. Trong trường hợp




khác, thuộc tính SDO_POINT được bỏ qua.
SDO_ELEM_INFO: là những giá trị kiểu số có độ dài thay đổi. Các thông số này cho
biết cách thể hiện tung độ lưu trữ trong thuộc tính SDO_ORDINATES. Mỗi bộ ba số
này truyền đạt thông tin về một phần tử geometry và một geometry có thể chứa đựng
nhiều phần tử. Nếu một geometry có một phần tử mảng SDO_ELEM_INFO có ba số.
Nếu một geometry có hai phần tử mảng SDO_ELEM_INFO có sáu số, ...v.v. Mỗi bộ ba



như vậy được hiểu như sau:
 SDO_STARTING_OFFSET: chỉ ra khoảng cách trong mảng.
SDO_ORDINATES: nơi bắt đầu toạ độ cho phần tử này. Giá trị khoảng cách
này bắt đầu từ 1 và không bao giờ mang giá trị 0. Do vậy toạ độ đầu tiên của



phần tử đầu tiên sẽ là SDO_GEOMETRY.SDO_ORDINATES.
SDO_ETYPE: chỉ ra kiểu của phần tử. Khoảng giá trị từ 0 đến 5. Giá trị 1, 2 và
3 là những phần tử đơn giản. Chúng được định nghĩa bởi một bộ ba đơn trong
mảng SDO_ELEM_INFO. Giá trị 4 và 5 là những phần tử ghép. Chúng bao
gồm ít nhất một bộ ba khởi đầu kèm với một nhóm các bộ ba tiếp theo phụ



thuộc các phần tử ghép thêm.
SDO_INTERPRETATION: xác định một trong hai biện pháp phụ thuộc
SDO_ETYPE là đơn hay phức hợp . Nếu SDO_ETYPE là phức hợp (4 hoặc

5), trường này chỉ ra có bao nhiêu bộ ba giá trị kèm theo. Nếu SDO_ETYPE là
đơn (1, 2 hoặc 3) thuộc tính thể hiện xác định dãy toạ độ của phần tử. Ví dụ một
đường hay một ranh giới vùng có thể được tạo nên bởi một chuỗi các đường
thẳng nối với nhau. Nếu một đối tượng hình học có nhiều hơn một phần tử thì
toạ độ cuối cùng của một phần tử luôn nhỏ hơn khoảng cách đầu tiên cho phần
tử tiếp theo. Phần tử cuối cùng trong geometry được mô tả bằng những toạ độ từ
khoảng cách bắt đầu của nó tới giá trị cuối cùng trong mảng.

19


Đối với những phần tử phức hợp, tập hợp của N bộ ba được sử dụng để
mô tả phần tử. Có một điều cần nhớ thứ tự kề nhau của các phần tử. Điểm cuối
cùng của một phần tử con là điểm đầu tiên của phần tử tiếp theo. Toạ độ cuối
cùng của phần tử con thứ N hoặc là khoảng cách bắt đầu của phần tử tiếp theo
của geometry hoặc toạ độ cuối cùng trong mảng SDO_ORDINATES.


SDO_ORDINATES: một mảng kiểu số có độ dài thay đổi dùng để lưu trữ các
giá trị toạ độ tạo nên đường biên của một đối tượng không gian. Mảng này luôn
được sử dụng kết hợp với mảng SDO_ELEM_INFO. Những giá trị trong mảng
này xác định bởi số chiều. Ví dụ một vùng có đường biên tạo thành từ 4 điểm
trong không gian 2 chiều thì được lưu trữ như : (X1, Y1, X2, Y2, X3, Y3, X4,
Y4). Nếu 4 điểm đó trong không gian 3 chiều thì chúng được lưu trữ như: (X1,
Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, X4, Y4, Z4). Thiết lập chỉ dẫn không gian, các
toán tử và hàm chức năng đều bỏ qua giá trị Z vì phiên bản này chỉ hỗ trợ các
đối tượng không gian 2 chiều. Số chiều gắn với mỗi điểm được lưu trữ như kiểu
metadata, những giá trị trong SDO_ORDINATES phải tồn tại và hợp lệ. Không
có giá trị đặc biệt nào được sử dụng để phân định các phần tử trong một
geometry phức hợp. Điểm bắt đầu và kết thúc trong chuỗi mô tả một phần tử cụ

thể đã được xác định bởi các giá trị trong STARTING_OFFSET và phần tử tiếp
theo trong mảng SDO_ELEM_INFO. Giá trị khoảng cách bắt đầu từ 1.
SDO_ORDINATES(1) là toạ độ đầu tiên của điểm đầu tiên của phần tử đầu tiên.
Ví dụ: Ta khai báo một hình học như hình 1.5.
SDO_GEOMETRY(
2002, null, null,
SDO_ ELEM_INFO _ARRAY (1, 2, 1),
SDO_ORDINATES_ARRAY ( 10, 10, 20, 25, 30, 10, 40, 10)
);

Ta được một hình học như sau:

20


Hình 1.5: Hình học khai báo sử dụng SDO_GEOMETRY

CHƯƠNG 2: CƠ SỞ DỮ LIỆU KHÔNG GIAN TRÊN ORACLE
(ORACLE SPATIAL)
2.1. Giới thiệu về hệ quản trị CSDL Oracle
2.1.1. Lịch sử ra đời
Năm 1977 một chàng trai trẻ có tên là Lawrence Ellision sau khi đã đọc
và tìm hiểu về mô hình quan hệ (relational model) của công ty máy tính IBM đã
quyết định thành lập công ty Oracle. Sau đó hai năm (1979), công ty này đã phát
hành sản phẩm đầu tay của mình chính là CSDL Oracle phiên bản 2.0, nó không
những là một sản phẩm CSDL quan hệ mà còn tích hợp ngôn ngữ truy vấn có
cấu trúc SQL. Năm 1983 phiên bản ba được phát hành với các thay đổi trong
ngôn ngữ SQL, mở rộng hiệu suất và các cải tiến. Năm 1985 phiên bản năm ra
đời đánh dấu một sự kiện quan trọng vì nó được áp dụng theo công nghệ khách
chủ. Năm 1997 Oracle giới thiệu phiên bản tám, tiếp đến là phiên bản 8i (ver

8.1.5) hỗ trợ nhiều tính năng mới và việc phát triển ứng dụng CSDL trên
Internet. Và với phiên bản Oracle 11g ra đời năm 2007 với nhiều tính năng nổi
21


bật như hỗ trợ tính toán lưới, dữ liệu lớn (big data),...v.v. Oracle đã có thể cung
cấp đa dạng các giải pháp lưu trữ và xử lý dữ liệu chuyên nghiệp cho các khách
hàng theo nhiều hướng ứng dụng khác nhau.
2.1.2. Tìm hiểu cơ bản về hệ quản trị CSDL Oracle
2.1.2.1. Cơ sở dữ liệu quan hệ
Mỗi tổ chức có thông tin, dữ liệu đều phải lưu trữ và quản lý để đáp ứng
yêu cầu của họ. Ví dụ, một công ty phải thu thập và duy trì hồ sơ nguồn nhân
lực cho nhân viên của mình. Những thông tin này phải luôn sẵn sàng cho những
người cần nó.
Một hệ thống thông tin là một hệ thống chính thức để lưu trữ và xử lý
thông tin. Một hệ thống thông tin có thể là một tập hợp các hộp bìa cứng chứa
các cặp tài liệu cùng với các quy tắc để làm thế nào lưu trữ và truy xuất chúng
một cách hợp lý. Tuy nhiên, hiện nay hầu hết các công ty đều sử dụng một cơ sở
dữ liệu để tự động hoá hệ thống thông tin của họ. Một cơ sở dữ liệu là một tập
hợp có tổ chức của các thông tin được xử lý như một đơn vị. Mục đích của một
cơ sở dữ liệu để thu thập, lưu trữ và lấy thông tin liên quan sử dụng cho các ứng
dụng cơ sở dữ liệu.


Hệ quản trị cơ sở dữ liệu
Một hệ quản trị cơ sở dữ liệu (DBMS) là phần mềm điều khiển lưu trữ, tổ
chức và truy xuất dữ liệu. Thông thường một DBMS có các yếu tố sau:






Mã kernel: quản lý bộ nhớ và lưu trữ cho các DBMS.
Lưu trữ của siêu dữ liệu: thường được gọi là một từ điển dữ liệu.
Ngôn ngữ truy vấn: cho phép các ứng dụng dùng để truy cập dữ liệu.
Một ứng dụng cơ sở dữ liệu là một phần mềm để tương tác với một cơ sở
dữ liệu để truy cập và thao tác dữ liệu. Thế hệ đầu tiên của hệ thống quản trị cơ
sở dữ liệu bao gồm các loại sau:



Phân cấp: một cơ sở dữ liệu phân cấp tổ chức dữ liệu trong cấu trúc cây.

22




Mỗi bản ghi cha có một hoặc nhiều bản ghi con, tương tự như cấu trúc của hệ



thống tập tin.
Mạng lưới: một mạng cơ sở dữ liệu giống như một cơ sở dữ liệu phân cấp, ngoại
trừ các bản ghi có mối quan hệ nhiều - nhiều thay vì một - nhiều.
Các hệ quản trị cơ sở dữ liệu trước đây được lưu trữ cứng nhắc, các mối
quan hệ được xác định trước. Do không tồn tại ngôn ngữ định nghĩa dữ liệu nên
việc thay đổi cấu trúc dữ liệu rất khó khăn. Ngoài ra các hệ thống này thiếu một
ngôn ngữ đơn giản, cản trở việc phát triển ứng dụng.



Mô hình quan hệ
Trong bài báo năm 1970 “Một mô hình quan hệ của dữ liệu dành cho các

ngân hàng lớn” của E.F.Codd đã định nghĩa một mô hình quan hệ dựa trên lý
thuyết toán học. Ngày nay, hầu hết mô hình cơ sở dữ liệu được chấp nhận rộng
rãi là mô hình quan hệ.
Một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu phù hợp với mô hình quan
hệ. Mô hình quan hệ có những khía cạnh chủ yếu sau:


Cấu trúc: Xác định rõ đối tượng dữ liệu lưu trữ hoặc truy xuất của một cơ sở dữ



liệu.
Các hành động: Định nghĩa rõ ràng những hành động cho phép các ứng dụng



thao tác với dữ liệu và cấu trúc dữ liệu.
Quy tắc toàn vẹn: Chi phối hành động lên dữ liệu và cấu trúc của dữ liệu.
Một cơ sở dữ liệu quan hệ lưu trữ dữ liệu trong một tập các quan hệ đơn
giản. Một mối quan hệ là một tập hợp nhiều bộ. Một bộ là một tập hợp không
theo thứ tự của nhiều giá trị thuộc tính.
Một bảng là một đại diện hai chiều của một mối quan hệ dưới dạng nhiều
hàng (nhiều tuple) và nhiều cột (nhiều thuộc tính). Mỗi hàng trong một bảng có
chung một tập các cột. Một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu mà lưu
trữ dữ liệu trong các mối quan hệ (các bảng). Ví dụ, một cơ sở dữ liệu quan hệ
có thể chứa thông tin về các nhân viên công ty trong bảng nhân viên, một bảng

phòng ban và một bảng lương.
23




Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS)
Một mô hình quan hệ là cơ sở cho một hệ quản trị cơ sở dữ liệu quan hệ.

Một RDBMS tác động tới dữ liệu trong cơ sở dữ liệu, lưu trữ và lấy nó để ứng
dụng có thể thao tác.
Một RDBMS phân biệt các loại hành động sau đây:


Hành động logic: trong trường hợp này, một ứng dụng chỉ rõ những nội dung
được yêu cầu. Ví dụ, một ứng dụng yêu cầu một tên nhân viên hoặc thêm một



bản ghi nhân viên vào bảng.
Hành động vật lý: trong trường hợp này, RDBMS xác định hành động nào nên
được thực hiện và thực hiện các hành động. Ví dụ, sau khi một ứng dụng truy
vấn một bảng, cơ sở dữ liệu có thể sử dụng một chỉ số để tìm kiếm các hàng
được yêu cầu, đọc dữ liệu vào bộ nhớ, thực hiện các bước khác trước khi trả về
một kết quả cho người dùng. Các RDBMS lưu trữ và lấy dữ liệu để các hoạt
động trong suốt với các ứng dụng cơ sở dữ liệu.
Cơ sở dữ liệu Oracle là một RDBMS, thực hiện các tính năng hướng đối
tượng như các kiểu do người dùng định nghĩa, thừa kế, đa hình được gọi là hệ
quản trị cơ sở dữ liệu quan hệ đối tượng (ORDBMS). Cơ sở dữ liệu Oracle đã
mở rộng mô hình quan hệ đến một mô hình quan hệ đối tượng, làm cho nó có

thể lưu trữ mô hình kinh doanh phức tạp trong một cơ sở dữ liệu quan hệ.
2.1.2.2. Đối tượng lược đồ
Đặc trưng của một RDBMS là sự độc lập của lưu trữ dữ liệu vật lý từ cấu
trúc dữ liệu hợp lý. Trong cơ sở dữ liệu Oracle, một giản đồ cơ sở dữ liệu là tập
hợp các cấu trúc dữ liệu logic. Trong cơ sở dữ liệu Oracle, một lược đồ cơ sở dữ
liệu là một tập hợp của cấu trúc dữ liệu vật lý, hay đối tượng lược đồ. Một lược
đồ cơ sở dữ liệu được sở hữu bởi một người dùng và có tên giống với tên của
người dùng.

24


Đối tượng lược đồ là những cấu trúc do người dùng khởi tạo trực tiếp
tham chiếu đến dữ liệu trong cơ sở dữ liệu. Cơ sở dữ liệu hỗ trợ nhiều loại đối
tượng lược đồ, hầu hết trong đó là bảng và chỉ mục.
Một đối tượng lược đồ là một kiểu của đối tượng cơ sở dữ liệu. Một số
đối tượng cơ sở dữ liệu như profiles và role không thuộc lược đồ.


Bảng một bảng là tập hợp các hàng. Một cột xác định một thuộc tính của thực
thể được mô tả bởi bảng, trong khi một hàng xác định một thể hiện của thực thể.
Ví dụ, các thuộc tính của thực tể nhân viên tương ứng với các cột như ID nhân
viên, tên, tuổi nhân viên,…vv. Một hàng xác định một nhân viên nào đó. Có thể
tuỳ chọn quy tắc cho mỗi cột của một bảng, những quy tắc này được gọi là các
ràng buộc toàn vẹn. Ví dụ như NOT NULL là một ràng buộc cột để chứa một



giá trị cho mỗi hàng.
Chỉ mục là một cấu trúc dữ liệu tuỳ chọn có thể tạo ra trên một hoặc nhiều cột

của bảng. Chỉ mục có thể tăng hiệu suất nhận dữ liệu. Khi xử lý một yêu cầu, dữ
liệu có thể được sử dụng chỉ mục có sẵn để xác định giá trị được yêu cầu một
cách hiệu quả. Chỉ mục hữu ích khi ứng dụng thường xuyên truy vấn đến một
hàng hoặc nhiều hàng cụ thể.
2.1.2.3. Truy xuất dữ liệu



Ngôn ngữ truy vấn cấu trúc (SQL): SQL là viết tắt của Structured Query



Language, là ngôn ngữ truy vấn mang tính cấu trúc:
Được thiết kế để quản lý dữ liệu trong một hệ thống quản lý cơ sở dữ liệu quan



hệ (RDBMS).
SQL là ngôn ngữ cơ sở dữ liệu, được sử dụng để tạo, xóa trong cơ sở dữ liệu, lấy



các hàng và sửa đổi các hàng...vv.
Hầu hết DBMS như MySQL, Oracle, MS Access, Sybase, Informix, Postgres
và SQL Server sử dụng SQL như là ngôn ngữ cơ sở dữ liệu chuẩn.
SQL là cần thiết để:





25

Tạo cơ sở dữ liệu, bảng và view mới.
Để chèn các bản ghi vào trong một cơ sở dữ liệu.
Để xóa các bản ghi từ một cơ sở dữ liệu.


×