Đồ Án Mở rộng truy vấn không gian POSTGRESQL

Thảo luận trong 'Chưa Phân Loại' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    173
    Điểm thành tích:
    0
    Xu:
    0Xu
    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
     

    Các file đính kèm:

Đang tải...