intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Truong Ho | Ngày: | Loại File: PDF | Số trang:26

134
lượt xem
25
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

"Dữ liệu không gian trên Microsoft SQL server 2008" có nội dung sau: giới thiệu về Microsoft SQL server 2008, tạo cơ sở dữ liệu, chuyển dữ liệu từ shapefile sang SQL server 2008, các câu truy vấn không gian trên SQL server 2008, đánh giá kết luận.

Chủ đề:
Lưu

Nội dung Text: Dữ liệu không gian trên Microsoft SQL server 2008

  1. DỮ LIỆU KHÔNG GIAN TRÊN MICROSOFT SQL SERVER 2008 1
  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. 2
  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 3
  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 1.3. Tính năng cơ bản  Cho phép quản trị một hệ CSDL lớn, có tốc độ xử lý dữ liệu nhanh đáp ứng yêu cầu về thời gian.  Cho phép nhiều người cùng khai thác trong một thời điểm đối với một CSDL và toàn bộ quản trị CSDL.  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 4
  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 5
  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ụ: POINT(0 0) LINESTRING(0 0,1 1,1 2) POLYGON((0 0,4 0,4 4,0 4,0 0),(11, 2 1, 2 2, 1 2,1 1)) MULTIPOINT(0 0,1 2) MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 - 2,-2 -2,-2 -1,-1 -1) GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4)) 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ụ: 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 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ế. 6
  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. 7
  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 insert into [ten_bang] ([ten_cot]) x, y: tọa độ điểm values SRID: thông số quy định lưới chiếu (geography::STPointFromText(‘Point (x y)’, SRID) 8
  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ả: 9
  10. b. Tạo dữ liệu dạng đường insert into [ten_bang] ([ten_cot]) values (geography::STLineFromText(‘linestring_tagged_text’, SRID) 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 insert into [ten_bang] ([ten_cot]) values (geography::STPolyFromText(‘polygon_tagged_text’, SRID) 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. 10
  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: 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 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) 11
  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. 12
  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: STGeomFromText ( 'geography_tagged_text' , SRID ) Ngôn ngữ đánh dấu kiểu văn bản của đối tượng hình học (WKT) 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: STGeomFromWKB ( 'geography_tagged_text' , SRID ) Ngôn ngữ đánh dấu kiểu nhị phân của đối tượng hình học (WKB) 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: 13
  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: [đối tượng].STAsText ( ) 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ý. Cú pháp: [đối tượng].STAsBinary ( ) Ví dụ: Trả về giá trị nhị phân của đối tượng đường được tạo. 14
  15. e. STSrid Trả về số nguyên tương ứng với một hệ quy chiếu đã được định nghĩa (SRID). Cú pháp: [đối tượng].STSrid Ví dụ: Trả về SRID của đường thẳng vừa tạo. f. STGeometrytype 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, và MultiPolygon. Cú pháp [đối tượng].STGeometrytype ( ) Ví dụ: trả về kiểu hình học của đối tượng: 15
  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) a. STDistance Trả về khoảng cách ngắn nhất giữa hai đối tượng không gian. Cú pháp: Đối tượng 1. STDistance(đối tượng 2) Ví dụ: Khoảng cách giữa đường thẳng và điểm là 555.949774272203 mét. b. STLength Trả về chiều dài của một đối tượng không gian. Đối với đối tượng vùng (Polygon) giá trị trả về sẽ là chu vi của đối tượng, đối với đối tượng điểm (Point) giá trị trả về là 0. Cú pháp: Đối tượng. STLength () Ví dụ: Tìm chiều dài đường thẳng 16
  17. c. STArea Trả về diện tích bề mặt của đối tượng không gian (dạng vùng). Đơn vị trả về là đơn vị diện tích (đối với SRID 4326 – WGS84 là mét vuông). Cú pháp: Đối tượng. STArea () Ví dụ: Tính diện tích Polygon. 4.3. Nhóm hàm tạo đối tượng mới a. STBuffer Trả về một đối tượng không gian là đại diện cho tập hợp của tất cả các điểm có khoảng cách nhỏ hơn hoặc bằng khoảng các tính từ một đối tượng cho trước. Đây được gọi là vùng đệm. Cú pháp Đối tượng. STBuffer (khoảng cách) Ví dụ: tạo một vùng đệm cách đối tượng 1m. b. STIntersection Trả về đối tượng không gian là tập hợp của tất cả các điểm thuộc giao giữa đối tượng không gian A và đối tượng không gian B. Nếu không có điểm chung giữa hai đối tượng kết quả trẻ về là rỗng (null). 17
  18. Cú pháp Đối tượng A. STIntersection (đối tượng B) Ví dụ: tìm giao giữa một vùng và đường thẳng c. STUnion Trả về một đối tượng không gian là là tập hợp của đối tượng không gian này và đối tượng không gian khác. Cú pháp Đối tượng A. STUnion (đối tượng B) Ví dụ: tìm đối tượng là hợp của hai Polygon. d. STDiffence Trả về đối tượng hình không gian là một phần của đối tượng A không giao với đối tượng B. Cú pháp Đối tượng A. STDiffence (đối tượng B) Ví dụ: tìm đối tượng không gian thuộc Polygon A không giao nhau với Polygon B 18
  19. 4.4.Nhóm hàm quan hệ Topology a. STEqual So sánh hai đối tượng không gian, kết quả trả về là 1 nếu hai đối tượng giống nhau, 0 nếu hai đối tượng khác nhau. Kết quả trả về rỗng nếu hai đối tượng khác SRID. Cú pháp Đối tượng A. STEqual (đối tượng B) 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 Đối tượng A. STDisjoint (đối tượng B) Ví dụ: xét hai đối tượng điểm là vùng có giao nhau hay không? 19
  20. c. STIntersects Trả về 1 nếu các đối tượng không gian giao nhau, trả về 0 nếu các đối tượng không gian không giao nhau. Kết quả trả về rỗng nếu hai đối tượng khác SRID. Cú pháp Đối tượng A. STIntersects (đối tượng B) Ví dụ: xét hai đối tượng vùng và đường có giao nhau hay không? d. STTouches Trả về giá trị là 1 nếu các đối tượng không gian có ít nhất 1 điểm chung nhưng không giao nhau. Ngược lại, trả về giá trị 0 nếu hai đối tượng không có điểm chung. Cú pháp Đối tượng A. STTouches (đối tượng B) Ví dụ: xét hai đối tượng đường và điểm có điểm chung hay không? e. STCrosses Trả về giá trị 1 nếu hai đối tượng không gian có chung một phần giao nhau ngược lại trả về kết quả 0. Cú pháp Đối tượng A. STCrosses (đối tượng B) Ví dụ: xét hai đối tượng đường có chung một phần giao nhau hay không? 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0