CHƯƠNG 2. TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU
2.3 Tổng quan về WebGIS
2.3.4 Mô tả phía Database – Hệ quản trị cơ sở dữ liệu PostgreSQL – PostGIS
2.3.4.1 Đặc điểm của PostgreSQL:
PostgreSQL, gọi tắt là Postgres là một hệ quản trị cơ sở dữ liệu hướng đối tượng – quan hệ được viết theo hướng mã nguồn mở rất mạnh mẽ. Hệ quản trị cơ sở dữ liệu này được phát triển bởi khoa Khoa học máy tính, đại học California, Hoa Kỳ. PostgreSQL có nguồn gốc từ các gói Postgres do giáo sư Michael Stonebraker triển khai vào năm 1986. PostgreSQL có thể chạy trên tất cả các hệ điều hành, bao gồm cả Linux, UNIX và Windows. Do nó hoàn toàn tuân thủ ACID(4), có hỗ trợ đầy đủ các foreign keys, joins, views, triggers, và stored procedures trên khá nhiều ngôn ngữ [11].
PostgreSQL là một hệ quản trị cơ sở dữ liệu mạnh với các tính năng phức tạp như kiểm soát truy cập đồng thời nhiều phiên bản (MVCC), khôi phục dữ liệu tại từng thời điểm (Recovery), quản lý dung lượng bảng (tablespaces), sao chép không đồng bộ, giao dịch lồng nhau (savepoints), sao lưu trực tuyến hoặc nội bộ, truy vấn phức tạp và tối ưu hóa, viết trước các khai báo để quản lý và gỡ lỗi. PostgreSQL hỗ trợ bộ ký tự quốc tế, hỗ trợ bảng mã nhiều byte, unicode, và cho phép định dạng, sắp xếp và phân loại ký tự văn bản (chữ hoa, thường). PostgreSQL còn được biết đến với khả năng mở rộng để nâng cao cả về số lượng dữ liệu quản lý và số lượng người dùng truy cập đồng thời [11].
(4)ACID - Atomicity, Consistency, Isolation, Durability bốn thuộc tính biểu thị cho tính toàn vẹn dữ liệu
Trong thuật ngữ cơ sở dữ liệu, PostgreSQL sử dụng mô hình client/server.
Một phiên làm việc của PostgreSQL bao gồm các quá trình sau:
Một tiến trình (process) bên phía server, quản lý các tập tin cơ sở dữ liệu, chấp nhận các kết nối đến cơ sở dữ liệu từ các máy khách (client), thực hiện các hoạt động trên cơ sở dữ liệu thay mặt máy khách. Các chương trình máy chủ cơ sở sữ liệu (database server program) được gọi là postgres.
Các ứng dụng từ phía client muốn tương tác với cơ sở dữ liệu. Ứng dụng phía client có thể rất đa dạng: có thể là một công cụ hướng văn (text-oriented tool), một ứng dụng đồ họa, một webserver có thể truy cập vào cơ sở dữ liệu để hiển thị một trang web nào đó, hoặc một
công cụ chuyên bảo trì cơ sở dữ liệu.
PostgreSQL server có thể xử lý cùng lúc nhiều kết nối từ phía client. Để làm được điều này, PostgreSQL server bắt đầu một tiến trình (process) mới cho mỗi kết nối. Từ thời điểm đó, máy khách và quá trình giao tiếp mới với máy chủ không cần sự can thiệp của quá trình postgres gốc.
Ưu điểm của hệ quản trị cơ sở dữ liệu PostgreSQL [12]:
- Là phần mềm mã nguồn mở, dễ cài đặt cũng như cấu hình, thích ứng tốt, mức độ tin cậy cao, hoạt động trên nhiều hệ điều hành: Window, UNIX, Linux.
- Hỗ trợ tốt cho các ngôn ngữ PHP, Java, C/C++, .Net, Perl, Python, Ruby, Tcl, ODBC.
- Tuân thủ các chuẩn SQL (Structure Query Language).
- Lưu trữ các đối tượng có dữ liệu lớn như hình ảnh, âm thanh hoặc video.
- Hỗ trợ các kiểu dữ liệu như integer, numeric, boolean, char, varchar, date, interval, timestamp…
- Hỗ trợ các chức năng tìm kiếm tổng quát hóa, có thể gán các chỉ mục vào giúp quá trình tìm kiếm được thực hiện trên phạm vi rộng hơn như: compound, unique, partial, and functional indexes.
- Có tính kế thừa trong quá trình phát triển, có khả năng tái sử dụng các thư viện đã có, có thể tạo mới các hàm, các kiểu dữ liệu, các thủ tục (procedure)…
- Chức năng hỗ trợ đa người dùng mạnh mẽ: dữ liệu không gian có xu hướng là các dữ liệu tham chiếu (sử dụng plugin PostGIS), tức là được chia sẻ bởi nhiều người dùng. Lưu trữ dữ liệu trong hệ quản trị cơ sở dữ liệu sẽ cung cấp
những lợi ích như: truy cập từ xa thông qua các chuẩn giao tiếp: JDBC, ODBC, PERL/DBI..., làm tăng tính bảo mật cho dữ liệu như: một số người dùng có toàn quyền tuy nhiên một số người dùng chỉ có thể đọc hoặc không được nhìn thấy.
Nhược điểm:
- Truy xuất chậm hơn so với hệ quản trị cơ sở dữ liệu MySQL (cũng là hệ quản trị cơ sở dữ liệu mã nguồn mở).
- Lượng người sử dụng ít do mới phát triển.
- Không có các tham số mặc định trong PL/PGSQL.
PostgreSQL có thể hỗ trợ quản lý dữ liệu không gian trong điều kiện kết hợp
với phần mềm PostGIS, cho phép nạp dữ liệu không gian từ các phần mềm GIS.
PostGIS được Refraction Research Inc phát triển, là một dự án nghiên cứu công nghệ cơ sở dữ liệu không gian. PostGIS hỗ trợ đối tượng địa lý cho hệ quản
trị cơ sở dữ liệu quan hệ hướng đối tượng PostgreSQL. PostGIS kích hoạt khả năng lưu trữ thông tin không gian cho PostgreSQL, cho phép PostgreSQL sử dụng một cơ sở dữ liệu không gian hỗ trợ cho các hệ thống thông tin địa lý (GIS).
2.3.4.2 Đặc điểm của PostGIS:
- PostGIS có đầy đủ các đặc điểm của cơ sở dữ liệu không gian.
- Hỗ trợ các kiểu dữ hình học như Point, Linestring, Polygon, Multipoint, Multilinestring, Multipolygons và Geometrycollection. Các kiểu dữ liệu hình học này được lưu trữ như những đối tượng hình học.
- Các toán tử không gian cho phép xác định các phép đo không gian như tính diện tích, khoảng cách, độ dài, và chu vi.
- Các toán tử không gian cho phép xác định không gian địa lý. Các thao tác như phép hợp, so sánh sự khác nhau giữa các đối tượng hình học.
- PostGIS cung cấp việc đánh chỉ mục không gian tốc độ cao sử dụng GisT hoặc R-tree. Công cụ đánh chỉ mục không gian mà PostGIS hỗ trợ làm tăng tốc cho truy vấn không gian đặc biệt là trên bảng dữ liệu lớn.
- Chỉ mục hỗ trợ chọn lọc, cung cấp việc thực hiện truy vấn bản đồ pha trộn truy vấn không gian hoặc truy vấn phi không gian.