Đề tài Mở rộng truy vấn không gian Postgresql

LỜI NÓI ĐẦU Ngày nay, cùng với sự phát triển của xã hội, ngành CNTT cũng có nhiều bước phát triển đáng kể và đã dần đi vào cuộc sống của mọi người và được sử dụng hầu hết trong tất cả các ngành nghề trong xã hội. Với số lượng tài liệu trong các cơ quan, tổ chức tăng theo cấp số nhân theo từng năm, từng thời kỳ, thì việc lưu trữ số lượng tài liệu đó trở nên vô cùng khó khăn, đặc biệt khi nó là những tài liệu quan trọng mà lại được lưu trữ trên các thiết bị cứng. Yếu tố thời gian, các tác động bên ngoài có thể làm cho những tài liệu đó bị hỏng hóc, khó bảo quản. Do đó, nhu cầu sử dụng các phần mềm hỗ trợ khả năng lưu trữ các dữ liệu đảm bảo các yếu tố an toàn và tiện lợi trong thao tác với dữ liệu đó là vô cùng cần thiết. Và nhu cầu đó sẽ trở nên dễ dàng khi có sự vào cuộc của CNTT, đặc biệt là các hệ quản trị cơ sở dữ liệu (CSDL). Nói đến CNTT thì không thể không nói đến các hệ quản trị cơ sở dữ liệu. Đó là phần mềm hay hệ thống được thiết kế để quản trị một CSDL, nó hỗ trợ khả năng lưu trữ, sửa chữa, xóa và tìm kiếm trong tin trong một CSDL. Và có rất nhiều loại hệ quản trị CSDL khác nhau : từ phần mềm nhỏ chạy trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính. Chúng ta có thể kể tới các hệ quản trị CSDL như: MySQL, Oracle, SQL Server, PostgreSQL và mỗi loại trên có những tính năng, lợi ích riêng. Đặc biệt, hệ quản trị CSDL postgreSQL có những tính năng và lợi thế hơn hẳn các hệ quản trị CSDL khác. PostgreSQL là sự lựa chọn sử dụng của nhiều người vì nó có nhiều ưu điểm nổi trội so với các hệ quản trị CSDL khác. Thứ nhất, PostgreSQL là phần mềm mã nguồn mở, miễn phí hoàn toàn trong sử dụng. Thứ hai, hiệu suất làm việc của PostgreSQL chênh lệch so với các hệ quản trị khác trong sai số +/-10%. Thứ ba, đây là hệ quản trị có độ tin cậy cao, bằng chứng là quá trình phát triển của nó. Thứ tư, PostgreSQL còn có thể chạy được trên rất nhiều hệ điều hành khác nhau như Window, Linux, Unix, MacOSX Và cuối cùng, một tính năng nổi trội của PostgreSQL là khả năng mở rộng hàm, kiểu dữ liệu, toán tử người sử dụng có thể tự định nghĩa hàm, kiểu dữ liệu, kiểu toán tử và có thể thêm những kiểu dữ liệu, toán tử vào hệ quản trị CSDL PostgreSQL. Ngoài ra, do ngoài nhu cầu 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, người sử dụng còn có thêm nhu cầu lưu trữ các kiểu dữ liệu không gian để lưu trữ các đối tượng như Point, Line, Polygon. Do đó, PostgreSQL còn hỗ trợ kiểu dữ liệu hình học (geometry) như Point, Line, Polygon Và PostGIS chính là công cụ được bổ sung cho PostgreSQL để hỗ trợ hiện thị đối tượng địa lý. Nhờ PostGIS, khả năng không gian trong PostgreSQL được kích hoạt, nó cho phép PostgreSQL sử dụng như một CSDL không gian phụ trợ cho các hệ thống thông tin địa lý. PostGIS là một mã nguồn mở, mở rộng không gian cho PostgreSQL. CSDL không gian trong PostGIS được sử dụng cho hiệu suất sử dụng cao đa người dùng truy cần đến tập dữ liệu có tính liền mạch. Nếu bạn quản lý số lượng lớn đọc/ghi dữ liệu không gian, thì việc sử dụng CSDL không gian có thể cải thiện được tốc độ truy cập, dễ dàng quản lý và đảm bảo tính toàn vẹn dữ liệu. Được xây dựng như phẩn mở rộng đối tượng cho PostgreSQL, PostGIS đã được chứng nhận là “Simple Features for SQL”, tuân thủ theo Open Geospatial Consortium. PostGIS được phát hành lần đầu tiên vào năm 2001, và hiện đang được sử dụng trên khắp thế giới như một máy chủ hoạt động với hiệu suất cao cho các đối tượng không gian. PostGIS cung cấp việc tạo và thao tác trên CSDL không gian. CSDL không gian cũng là CSDL thông thường, nhưng nó bổ sung thêm các kiểu dữ liệu không gian và các mối quan hệ giữa các kiểu dữ liệu đó. Một CSDL không gian bao gồm rất nhiều bảng dữ liệu không gian, ngoài các thuộc tính có kiểu dữ liệu thông thường thì bảng không gian còn chứa một thuộc tính có kiểu dữ liệu không gian mô tả về một đối tượng thực trong thực tế. Truy vấn không gian là gì? Là các câu lệnh truy vấn được thực hiện trên bảng không gian trong CSDL để tìm ra mối quan hệ giữa các đối tượng trong không gian, mối quan hệ đó có thể là sự giao nhau, tính khoảng cách, tính diện tích, tính chu vi, tính chiều dài và các câu lệnh truy vấn được viết ra dễ dàng hơn nhờ các hàm hỗ trợ sẵn của PostGIS. PostGIS cung cấp các nhóm hàm để hỗ trợ việc truy vấn như nhóm hàm xác định mối quan hệ không gian, nhóm hàm trả về đối đối tượng mới nhờ đó, việc thực hiện truy vấn trong không gian sẽ trở nên dễ dàng và dễ thao tác hơn. Với những ưu điểm nội trổi đó, hệ quản trị CSDL PostgreSQL xứng đáng là lựa chọn của nhiều người sử dụng, đặc biệt với sự hỗ trợ của công cụ mở rộng PostGIS, việc lưu trữ các đối tượng không gian không còn khó khăn nữa. Trong phạm vi nghiên cứu của đề tài, chúng em tập trung vào việc nghiên cứu các vấn đề sau : Thứ nhất, nghiên cứu về CSDL không gian, qua đó, giúp chúng ta có cái nhìn tổng quan về CSDL không gian, Thứ hai, tìm hiểu tổng quan về hệ quản trị PostgreSQL, qua đó, chúng ta có thể biết được ưu, nhược điểm của hệ quản trị này so với các hệ quản trị CSDL khác. Ngoài ra, phần giới thiệu về giao diện tương tác giúp ích cho việc thao tác với hệ quản trị PostgreSQL được dễ dàng Thứ ba, PostGIS là công cụ mở rộng cho PostgreSQL, nó giúp PostgreSQL lưu trữ, thao tác được với CSDL không gian. Chúng tôi có giới thiệu về cách tạo CSDL không gian, cách load dữ liệu không gian có sẵn vào CSDL. Ngoài ra, chúng tôi còn cung cấp danh sách các nhóm hàm mà PostGIS hỗ trợ sẵn, làm công cụ cho việc thực hiện truy vấn trong không gian. Và cuối cùng, chúng tôi có đưa ra nội dung về cách tạo mở rộng hàm, mở rộng kiểu dữ liêu, mở rộng kiểu toán tử và mở rộng hàm tập hợp cho hệ quản trị CSDL PostgreSQL. Từ đó người dùng biết cách tạo phần mở rộng cho PostgreSQL cho mục đích sử dụng của mình. MỤC LỤC Chương 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU KHÔNG GIAN .7 1.1. Tổng quan về cơ sở dữ liệu không gian .7 1.1.1. CSDL không gian .7 1.1.2. Đặc trưng của CSDL không gian .7 1.2. Mô hình 8 1.2.1. POINT 8 1.2.2. LINE .8 1.2.3. POLYGON .9 1.3. Mối quan hệ không gian là gì? 9 1.3.1. Phân loại .9 1.3.2. Kết hợp hình học vào mô hình dữ liệu DBMS .10 Chương 2. POSTGRESQL VÀ POSTGIS 12 2.1. PostgreSQL 12 2.1.1. Định nghĩa 12 2.1.2. So sánh PostgreSQL với một số hệ cơ sở quản trị dữ liệu khác 12 2.1.3. Quản trị cơ sở dữ liệu qua giao diện 15 2.2. PostGIS 23 2.2.1. Giới thiệu về PostGIS .23 2.2.2. Công cụ shp2pgsql .24 2.2.3. Công cụ psql .25 2.2.4. Phương pháp load dữ liệu định dạng file .sql .25 2.2.5. Phương pháp load dữ liệu dạng shape file vào CSDL 26 2.2.6. OpenGIS Well-Know Text .27 2.2.7. Bảng siêu dữ liệu 28 2.2.8. Bảng không gian .30 2.3. Hàm trong PostGIS .32 2.3.1. Nhóm hàm điều khiển .32 2.3.2. Nhóm hàm khởi tạo hình học 33 2.3.3. Hàm trả về kiểu hình học ở đầu ra. .34 2.3.4. Hàm xác định mối quan hệ không gian .34 2.3.5. Nhóm hàm đưa ra đối tượng hình mới .40 2.3.6. Nhóm hàm thay đổi hình học 42 2.3.7. Nhóm hàm accessor .44 2.4. Chỉ mục 45 2.4.1. Chỉ mục GiST .45 2.4.2. Sử dụng chỉ mục .45 2.5. Truy vấn trong cơ sở dữ liệu không gian .47 2.5.1. Mô tả về cơ sở dữ liệu không gian .47 2.5.2. Truy vấn .49 Chương 3. MỞ RỘNG TRUY VẤN KHÔNG GIAN POSTGRESQL 54 3.1. Các kiểu dữ liệu trong PostgreSQL .54 3.1.1. Kiểu dữ liệu cơ bản 54 3.1.2. Kiểu dữ liệu hỗn hợp 55 3.2. Mở rộng PostgreSQL với hàm tùy chọn 55 3.2.1. Hàm ngôn ngữ truy vấn (SQL) 55 3.2.2. Hàm sử dụng ngôn ngữ lập trình C 59 3.2.3. Kiểu dữ liệu do người dùng định nghĩa 67 3.2.4. Toán tử do người dùng định nghĩa. 71 3.2.5. Hàm tập hợp cho người dùng định nghĩa .73 3.3. Viết hàm mở rộng cho PostgreSQL .74 TỔNG KẾT .82 DANH SÁCH CÁC BẢNG Bảng 2-1: So sánh về hệ điều hành hỗ trợ .14 Bảng 2-2: So sánh về các tính năng cơ bản .14 Bảng 2-3: So sánh về sự hỗ trợ bảng tạm và khung nhìn 14 Bảng 2-4: So sánh về chức năng đánh chỉ mục .15 Bảng 2-5: So sánh về các đối tượng khác .15 Bảng 2-6: Danh sách các tùy chọn của psql 16 Bảng 2-7: Nhóm lệnh chung của psql .18 Bảng 2-8: Nhóm lệnh truy vấn bộ đệm của psql .18 Bảng 2-9: Nhóm lệnh vào / ra của lệnh psql .18 Bảng 2-10: Nhóm lệnh trả về thông tin .18 Bảng 2-11: Nhóm lệnh định dạng của psql .19 Bảng 2-12: Danh sách lệnh \h .20 Bảng 2-13: Danh sách các tùy chọn của sph2pgsql 23 Bảng 2-14: Các ví dụ minh họa cho hàm ST_Buffer() .42 Bảng 3-1: Danh sách kiểu dữ liệu trong SQL và trong C .58 DANH SÁCH CÁC HÌNH Hình 1-1: Mô hình đối tượng LINE 11 Hình 1-2: Mô hình đối tượng POLYGON 11 Hình 2-1: Minh họa hàm ST_Touches() .35 Hình 2-2: Minh họa hàm ST_Within() 36 Hình 2-3: Minh họa hàm ST_Contains() .37 Hình 2-4: Minh họa hàm ST_Difference() 39 Hình 2-5: Minh họa hàm ST_Union() .40 DANH SÁCH CÁC TỪ VIẾT TẮT CSDL : Cơ sở dữ liệu

TÀI LIỆU LUẬN VĂN CÙNG DANH MỤC

TIN KHUYẾN MÃI

  • Thư viện tài liệu Phong Phú

    Hỗ trợ download nhiều Website

  • Nạp thẻ & Download nhanh

    Hỗ trợ nạp thẻ qua Momo & Zalo Pay

  • Nhận nhiều khuyến mãi

    Khi đăng ký & nạp thẻ ngay Hôm Nay

NẠP THẺ NGAY