1. Trang chủ
  2. » Công Nghệ Thông Tin

Dữ liệu không gian trên Microsoft SQL server 2008

26 707 1

Đ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 26
Dung lượng 2,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

DỮ LIỆU KHÔNG GIAN TRÊN MICROSOFT SQL SERVER 2008

Trang 2

2

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 3

Hì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 4

4

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 5

khô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 6

6

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 7

Chươ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 9

Ví 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 10

10

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 11

Kế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 12

12

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 13

Chươ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 14

14

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 15

Trả 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,

Trang 16

16

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 18

Ví 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 19

Ví 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 20

Ví 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 21

f 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 22

Hệ 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 23

Country (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 24

24

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 26

26

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

Ngày đăng: 16/07/2015, 16:22

TỪ KHÓA LIÊN QUAN

w