Lưu trữ dữ liệu không gian Khái niệm Hệ quản trị cơ sở dữ liệu không gian SDBMS – Spatial Database Manage System, đây là một hệ quản trị cơ sở dữ liệu, có hỗ trợ mô hình dữ liệu không
Trang 1DỮ LIỆU KHÔNG GIAN TRÊN MICROSOFT SQL SERVER 2008
Trang 22
Chương 1: GIỚI THIỆU VỀ MICROSOFT SQL SERVER 2008
1.1 Tổng quan về SQL Server
Microsoft SQL Server là hệ thống quản trị cơ sở dữ liệu quan hệ (Relational
DataBase Management System - RDBMS) do Microsoft phát triển, nó sử dụng ngôn ngữ lập trình và truy vấn cơ sở dữ liệu Transact-SQL để trao đổi dữ liệu giữa máy trạm (Client) và máy chủ (Server)
Transact-SQL dựa trên ngôn ngữ vấn tin có cấu trúc chuẩn (ANSI-SQL: là ngôn ngữ vấn tin có cấu trúc do học viện quốc gia Hoa Kỳ đưa ra), ANSI-SQL thường được gọi là SQL, ngôn ngữ này là cách thức chuẩn để giao tiếp với cơ sở dữ liệu (CSDL)
1.2 Mô hình hoạt động của SQL Server
SQL Server là hệ quản trị CSDL hoạt động trên mạng, có thể thực hiện trao đổi
dữ liệu theo nhiều mô hình mạng khác nhau, nhiều giao thức và phương thức truyền tin khác nhau
Hình 1.1 Mô hình chung của SQL Server
Trong đó có ba kiểu kết nối cơ bản đến SQL Server là:
Kết nối trên Desktop: Có thể trên cùng máy tính với SQL Server hoặc kết nối
qua mạng nội bộ Trên một Desktop có thể có nhiều ứng dụng, mỗi ứng dụng có thể thực hiện thao tác với nhiều CSDL
Trang 3Hình 1.2 Mô hình Desktop của SQL Server
Kết nối qua mạng diện rộng: Thông qua đường truyền mạng xa kết nối đến
SQL Server SQL Server có thể thực hiện trao đổi dữ liệu với các ứng dụng theo nhiều giao thực truyền tin khác nhau (TCP/IP, NetBeUI, Names Pipes,…), các ứng dụng có thể sử dụng nhiều phương thức kết nối khác nhau (OLE DB, ODBC, DB-Library)
Hình 1.3 Mô hình Client / Server của SQL Server
Trang 44
Kết nối qua mạng Internet: nếu xét riêng các ứng dụng kết nối với SQL
Server trên mạng Internet, các máy chủ SQL Server sẽ được quản lý thông qua các hệ thống máy chủ mạng, hệ điều hành mạng, các ứng dụng (COM+, ASP, IIS) sẽ thông qua máy chủ mạng kết nối đến SQL Server, mô hình này có thể áp dụng cho các mạng nội bộ, diện rộng, ứng dụng được khai thác trên trình duyệt Internet Browser
Hình 1.4 Mô hình kết nối ứng dụng trên mạng Internet của SQL Server
Sử dụng câu lệnh truy vấn dữ liệu Transaction-SQL
Có hệ thống phân quyền bảo mật tương thích với hệ thống bảo mật của công nghệ NT (Network Technology) hoặc sử dụng hệ thống bảo vệ độc lập của SQL Server
Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứng dụng trên Internet
Cho phép lập trình kết nối với nhiều ngôn ngữ lập trình khác dùng xây dựng các ứng dụng đặc thù (Visual Basic, C, C++, ASP, ASP.NET, XML, )
1.4 Lưu trữ dữ liệu không gian
Khái niệm Hệ quản trị cơ sở dữ liệu không gian (SDBMS – Spatial Database Manage System), đây là một hệ quản trị cơ sở dữ liệu, có hỗ trợ mô hình dữ liệu không gian, kiểu dữ liệu không gian (SDT – Spatial Data Types) và ngôn ngữ truy vấn SQL
Trang 5không gian, hỗ trợ kiểu dữ liệu không gian trong lập trình : cung cấp chỉ số không gian (Spatial Indexing) và thuật toán liên kết không gian (Spatial Joins)
Cơ sở dữ liệu không gian là một cơ sở dữ liệu trong đó có chứa đối tượng không gian Đối tượng không gian có được biểu diễn thông qua các đối tượng hình học cơ bản (điểm, đường và vùng) hoặc được biểu diễn dạng ảnh (raster) Dữ liệu không gian biểu diễn thông tin vị trí địa lý và hình dạng của các đối tượng trên trái đất
Hình 1.5 Minh họa cơ sở dữ liệu không gian
Hiện nay có rất nhiều hệ quản trị CSDL không gian như: DB2 (phần mở rộng IBM DB2 Spatial Extender), Oracle (Oracle Spatial), PostgreSQL (phần mở rộng PostGIS), Sqlite (phần mở rộng SpatialLite), và Microsoft SQL Server phiên bản 2008 trở lên
Trong SQL Server 2008 giới thiệu các 2 kiểu dữ liệu không gian là:
Kiểu dữ liệu hình học (Geometry): Là kiểu dữ liệu không gian cơ bản được sử
dụng để biểu diễn các đối tượng trong hệ tọa độ Euclide (tọa độ phẳng), đối tượng không có thông tin về SRID (Spatial Reference Identifiers, đây là một hệ quy chiếu đã được định nghĩa trước ứng với một số nguyên)
Kiểu dữ liệu địa lý (Geography): Là kiểu dữ liệu không gian cơ bản được sử
dụng để biểu diễn các đối tượng trong hệ tọa độ trái đất (tọa độ Ellipsoid) Đối tượng có chứa thông tin về SRID
Hình 1.6 Mô hình thiết kế của các đối tượng khô ng gian
Trang 66
Trong SQL Server 2008, các đối tượng hình học trên bản đồ được mô tả bởi Well-Know Text (WKT) hoặc Well-Known Binary (WKB), các định nghĩa đầu tiên được đưa ra bởi Open Geospatial Consortium (OGC) trong đó:
Well-Know Text (WKT): ngôn ngữ đánh dấu kiểu văn bản dùng để biểu diễn
cho các đối tượng hình học ở định dạng vector trên bản đồ.WKT bao gồm các thông tin về kiểu của đối tượng và các tọa độ dạng đối tượng
Ví Dụ:
Ngoài ra, WKT cũng được sử dụng để mô tả hệ quy chiếu như Datum, Geoid, Hệ tọa
độ và Phép chiếu bản đồ của các đối tượng không gian
Well-Known Binary (WKB): ngôn ngữ đánh dấu kiểu nhị phân dùng để biểu
diễn cho các đối tượng hình học trên bản đồ (tương tự như WKT) ở hệ thập lục phân
Ví Dụ:
Với sự hỗ trợ làm việc với các đối tượng không gian, người sử dụng SQL Server
2008 có thể thực hiện việc lưu trữ dữ liệu không gian cũng như thực hiện truy vấn không gian mà các hệ quản trị cơ sở dữ liệu truyền thống (không chứa thành phần không gian – non spatial database) không thể thực hiện được Tính năng này sẽ cung cấp cho các nhà quản lý trong các lĩnh vực liên quan đến yếu tố không gian một hệ quản trị CSDL phù hợp, đặc biệt là những nhà quản lý về tài nguyên-môi trường, nhà quản lý giao thông, các hệ thống điện – cấp thoát nước, người nghiên cứu về địa lý, cũng như các nhà quy hoạch phát triển kinh tế
-GEOMETRYCOLLECTION (POINT(2 3),LINESTRING(2 3,3 4))
POINT(2.0 4.0) được thể hiện bằng: 000000000140000000000000004010000000000000
1-byte integer 00 or 0: big endian
4-byte integer 00000001 or 1: POINT (trên mặt phẳng)
8-byte float 4000000000000000 or 2.0: tọa độ x
8-byte float 4010000000000000 or 4.0: tọa độ y
Trang 7Chương 2: TẠO CƠ SỞ DỮ LIỆU 2.1 Tạo Database
Bước 1: Vào Server cần tạo, click chuột phải vào Database > New Database
Bước 2: Đặt tên cho Database
2.2 Tạo bảng
Bước 1: Vào Database cần tạo, click chuột phải vào Table > New Table.
Trang 8
8
Bước 2: Tạo các trường thuộc tính cho bảng
Ví dụ: Tạo một bảng có tên là “Khong_gian” trong cơ sở dũ liệu “dialy”
2.3 Tạo dữ liệu không gian
a Tạo đối tượng dạng điểm
x, y: tọa độ điểm SRID: thông số quy
Trang 9Ví dụ: Tạo một đối tượng điểm có tọa độ là (7 12) thuộc hệ quy chiếu WGS-84
Bước 1:
Bước 2:
Bước 3:
Kết quả:
Trang 1010
b Tạo dữ liệu dạng đường
linestring_tagged_text: có dạng Linestring(x1 y1, x2 y2,… xn yn ); SRID: thông số
quy định lưới chiếu
Ví dụ: Tạo đối tượng dạng đường có tọa độ điểm bắt đầu là (0 0) và kết thúc là (7 8)
thuộc hệ quy chiếu WSG-84
Thực hiện các bước tương tự như đối với đối tượng điểm
Kết quả:
c Tạo dữ liệu dạng vùng
polygon_tagged_text: có dạng POLYGON(x1 y1, x2 y2,… xn yn, x1 y1 );
SRID: thông số quy định lưới chiếu
Ví dụ: Tạo một Polygon có tọa độ là (-122.358 47.653, -122.348 47.649, -122.348
47.658, -122.358 47.658, -122.358 47.653) thuộc hệ quy chiếu WGS-84.
insert into [ten_bang] ([ten_cot])
values
( geography ::STLineFromText( ‘linestring_tagged_text’, SRID)
insert into [ten_bang] ([ten_cot])
values
( geography ::STPolyFromText( ‘polygon_tagged_text’, SRID)
Trang 11Kết quả:
Chương 3: CHUYỂN DỮ LIỆU TỪ SHAPEFILE SANG SQL SERVER 2008
3.1 Chuyển dữ liệu từ Shapefile sang SQL Server bằng câu lệnh Comandline
Cú pháp sử dụng để chuyển dữ liệu từ Shapefile sang SQL Server 2008:
3.2 Chuyển dữ liệu từ Shapefile sang SQL Server bằng phần mềm
Sử dụng phần mềm ShapeFile to SQL Server của Morten Nielsen (www.sharpgis.net)
shp2sqlserver.exe -h
Usage: shp2sqlserver.exe [OPTIONS]+ "connectionString" "path to shapefile"
Loads a shapefile into Microsoft SQL Server 2008
example: shp2sqlserver.exe "Data Source=.\SQLExpress2008;Initial Catalog=spatialtest;Integrated Security=true" myshape.shp
Options:
-s, srid=VALUE Thông số quy địng lưới chiếu(SRID) Mặc định là -1
-g, geometry_column=VALUE Tên cột chứa dữ liệu không gian
-t, table_name=VALUE Tên bảng
-k, key_column=VALUE Tên của cột được xác địng làm khóa chính
-i, index Tạo một chỉ mục không gian (spatial index)
-l, latlong Thêm dữ liệu không gian (spatial data) dưới dạng Geography -a, append Append data
-h, help Hiển thị thông báo và kết thúc
Trang 1212
Kết quả: Bảng “STATE” trong Database “Dialy” được tạo từ file “STATE.shp”
Ngoài ra, còn có thể sử dụng phần mềm
FME Quick Translator của công ty Safe
Software (www.safe.com) để chuyển đối
shapefile sang SQL Sever 2008
Trang 13Chương 4: CÁC CÂU TRUY VẤN KHÔNG GIAN TRÊN SQL SERVER 2008
Để có thể thực hiện truy vấn không gian bằng ngôn ngữ SQL, thì SQL Server đã cài đặt sẵn các hàm hỗ trong việc truy vấn dữ liệu không gian Đối với mỗi hệ quản trị CSDL khác nhau thì tên hàm cũng khác nhau Những hàm dưới đây là các hàm thường dùng nhất và đã được định nghĩa trong SQL Server 2008
4.1 Các hàm hỗ trợ cơ bản
a STGeomFromText
Trả về một đối tượng địa lý dựa vào thông tin từ WKT (Well-Known Text)
Cú pháp:
Ví dụ: Tạo một đối tượng không gian dạng đường có tọa độ là (122.360 47.656,
-122.343 47.656) thuộc hệ quy chiếu WGS-84
b STGeomFromWKB
Trả về một đối tượng địa lý dựa vào thông tin từ WKB (Well-Known Binary)
Cú pháp:
Ví dụ: Tạo một đối tượng dạng đường có tọa độ là (-122.360 47.656, -122.343 47.656)
ở dạng nhị phân, thuộc hệ quy chiếu WGS-84 sẽ được thể hiện như sau:
Ngôn ngữ đánh dấu kiểu văn bản của đối tượng hình học (WKT)
Ngôn ngữ đánh dấu kiểu nhị phân của đối tượng hình học (WKB)
Trang 1414
c STAsText
Trả về dạng ngôn ngữ đánh dấu kiểu văn bản của đối tượng hình học (WKT) Kết quả trả về không bao gồm độ cao hoặc kết quả đo lường (chiều dài, chu vi, diện tích) của đối tượng địa lý
Cú pháp:
Ví dụ: sau khi tạo một đối tượng dạng điểm, sử dụng hàm STAsText để trả giá trị của
điểm đó về dạng text
d STAsBinary
Trả về dạng ngôn ngữ đánh dấu kiểu nhị phân của đối tượng hình học (WKB) Kết quả trả về không bao gồm độ cao hoặc kết quả đo lường (chiều dài, chu vi, diện tích) của đối tượng địa lý
Trang 15Trả về kiểu hình học của đối tượng không gian dưới dạng chuỗi Bao gồm Point,
LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString, và
Trang 1616
4.2 Nhóm hàm đo lường
Đối với nhóm hàm đo lường, đơn vị kết quả tính toán được trả về như sau:
- Đối với dữ liệu dạng Geography: kết quả trả về có đơn vị mét
- Đối với dữ liệu dạng Geometry: kết quả trả về có đơn vị được quy định theo hệ tọa độ Đề-các (xy)
Cú pháp:
Ví dụ: Tìm chiều dài đường thẳng
Đối tượng 1 STDistance(đối tượng 2)
Đối tượng STLength ()
Trang 17Đối tượng STArea ()
Đối tượng STBuffer (khoảng cách)
Trang 18Ví dụ: tìm đối tượng không gian thuộc Polygon A không giao nhau với Polygon B
Đối tượng A STIntersection (đối tượng B)
Đối tượng A STUnion (đối tượng B)
Đối tượng A STDiffence (đối tượng B)
Trang 19Ví dụ: so sánh tập hợp các đối tượng (điểm, đường, vùng) và đối tượng Polygon có
giống nhau hay không?
b STDisjoint
Trả về 1 nếu các đối tượng không giao nhau, trả về 0 nếu các đối tượng giao nhau Kết quả trả về rỗng nếu hai đối tượng khác SRID
Cú pháp
Ví dụ: xét hai đối tượng điểm là vùng có giao nhau hay không?
Đối tượng A STEqual (đối tượng B)
Đối tượng A STDisjoint (đối tượng B)
Trang 20Ví dụ: xét hai đối tượng đường có chung một phần giao nhau hay không?
Đối tượng A STIntersects (đối tượng B)
Đối tượng A STTouches (đối tượng B)
Đối tượng A STCrosses (đối tượng B)
Trang 21f STWithin
Trả về giá trị 1 nếu đối tượng không gian A hoàn toàn nằm trong đối tượng
không gian B Ngược lại, trả về giá trị 0
Ví dụ: kiểm tra đối tượng B có nằm hoàn toàn trong đối tượng A hay không
Đối tượng A STWithin (đối tượng B)
Đối tượng A STContains (đối tượng B)
Trang 22Hệ quản trị CSDL SQL Server 2008 sử dụng ngôn ngữ lập trình và truy vấn cơ
sở dữ liệu Transact-SQL nên hỗ trợ rất nhiều các lệnh truy vấn cho CSDL, đặc biệt là CSDL không gian Bài tiểu luận chỉ trình bày một số truy vấn cơ bản cho CSDL không gian, có thể tìm hiểu thêm các truy vấn khác trong phần trợ giúp người dùng của phần mềm
Hình 4.1 Phần trợ giúp người dùng trong SQL Sever 2008
4.5 Minh họa
Dưới đây là một số ví dụ về câu lệnh truy vấn SQL không gian, sử dụng ngôn ngữ truy vấn SQL và các hàm truy vấn không gian được định nghĩa trong SQL Sever
2008 Để minh họa cho việc thực hiện các truy vấn, ta sử dụng các bảng dữ liệu sau:
Đối tượng A.STOverlaps(đối tượng B)
Trang 23Country (CNTRY_NAME, POP_CNTRY,CURR_TYPE, the_geom)
Rivers ( NAME, SYSTEM, the_geom)
CITIES( NAME, COUNTRY, POPULATION, CAPTAL, the_geom)
a Câu truy vấn sử dụng Area: Liệt kê tên (CNTRY_NAME), dân số (POP_CNTRY)
và tính diện tích (Dien_tich) của mỗi quốc gia trong bảng Country
Trang 2424
b Câu truy vấn sử dụng Distance:Liệt kê tên Thành phố, Quốc gia và khoảng cách
từ Thành phố đó đến Hà Nội
Liệt kê các Quốc gia và số Quốc gia láng giềng ứng với từng Quốc gia, sắp xếp số Quốc gia láng giềng theo thứ tự tăng dần
Trang 25 Cho biết quốc gia nào có số láng giềng nhiều nhất
d Câu truy vấn sử dụng STCrosses: Liệt kê tên Quốc gia và tên dòng sông
chảy qua các Quốc gia đó
e Câu truy vấn sử dụng STContains và STBuffer: Liệt kê tên các Thành phố
nằm trong vùng đệm 5m so với dòng sông Amazon
Trang 2626
f Câu truy vấn sử dụng STIntersection: Liệt kê chiều dài từng đoạn của dòng
sông Mekong trên từng quốc gia mà nó chảy qua
Chương 5: ĐÁNH GIÁ – KẾT LUẬN
Sau một thời gian nghiên cứu và tìm hiểu về đề tài tiểu luận, nhóm đã thu được các kết quả như sau:
• Cách cài đặt, các thao tác cơ bản với hệ quản trị CSDL SQL Server 2008 Ngoài
ra, nắm rõ được lịch sử phát triển, các tính năng cơ bản, mô hình hoạt động và những ưu điểm và hạn chế của nó so với các hệ quản trị khác
• Hiểu được cơ sở lý thuyết về CSDL không gian và một số khái niệm liên quan
• Cách thức tạo ra CSDL không gian, cách xử lý với dữ liệu không gian…đặc biệt là nắm được tác dụng và cách sử dụng các hàm hỗ trợ việc truy vấn dữ liệu không gian của SQL Server 2008
• Áp dụng các hàm đó vào truy vấn không gian thông qua các bài toán cụ thể mà nhóm đặt ra
Với đặc điểm là hệ quản trị cơ sở dữ liệu được Microsoft phát triển với tính chất thương mại, nên SQL Server 2008 có thể đáp ứng một cách đầy đủ các yêu cầu cơ bản đối với một hệ quản trị cơ sở dữ liệu Đặc biệt từ phiên bản này, SQL Server đã có khả năng làm việc với dữ liệu không gian, đây là một việc làm tất yếu trong bối cảnh các hệ quản trị cơ sở dữ liệu khác đều có hướng phát triển cho việc hỗ trợ cơ sở dữ liệu không gian, đặc biệt là các hệ quản trị cơ sở dữ liệu mã nguồn mở
Ngày nay, với sự phát triển của công nghệ thông tin, đặc biệt trong lĩnh vực Hệ thống thông địa lý, thì yêu cầu của một hệ quản trị cơ sở dữ liệu không chỉ có chức năng quản lý dữ liệu thuộc tính thông thường, mà còn phải có chức năng quản lý dữ liệu không gian Với những tìm hiểu về hệ quản trị cơ sở dữ liệu SQL Server 2008, nhóm
đã thấy được vai trò quan trọng và ý nghĩa của dữ liệu không gian đối với người nghiên cứu về Địa lý, cũng như các lĩnh vực khác trong xã hội Từ đó, áp dụng kiến thức đã tiếp thu được vào việc giải quyết các bài toán của chuyên ngành trong tương lai