Nếu xét dưới góc độ hệ thống, thì GIS có thể được hiểu như một hệ thống gồm các thành phần: con người, phần cứng, phần mềm, cơ sở dữ liệu và các quy trình-kiến thức chuyên gia, nơi tập h
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 3MỤC LỤC
MỤC LỤC 1
BẢNG CÁC TỪ VIẾT TẮT 3
BẢNG CÁC HÌNH MINH HỌA 4
MỞ ĐẦU 5
Chương 1 - HỆ THÔNG TIN ĐỊA LÝ VÀ DỮ LIỆU ĐA PHƯƠNG TIỆN 9
1.1 GIS đa phương tiện 9
1.1.1 Hai cách tiếp cận xây dựng hệ thông tin địa lý đa phương tiện 9
1.1.2 Cách tiếp cận” Multimedia in GIS” 9
1.2 Cách tiếp cận” GIS in Multimedia” 11
1.3 Tổ chức dữ liệu đa phương tiện trong hệ thông tin địa lý 12
1.3.1 Tổ chức dữ liệu trong các hệ thông tin địa lý 12
1.3.2 Tổ chức dữ liệu trong Map Info 12
1.3.3 Tổ chức dữ liệu trong ArcGIS của ESRI 13
1.3.4 Tổ chức dữ liệu trong Grass 14
1.3.5 Đưa dữ liệu đa phương tiện vào hệ thông tin địa lý 15
Chương 2 - XÂY DỰNG WEBGIS GIẦU DỮ LIỆU ĐA PHƯƠNG TIỆN BẰNG CÁC CÔNG CỤ MÃ NGUỒN MỞ 17
2.1 Công nghệ WebGis mã nguồn mở 17
2.1.1 Đặt vấn đề 17
2.1.2 Hệ thống WebGIS với mô hình khách-chủ 17
2.2 Kiến trúc hệ thống theo mô hình mở và phù hợp chuẩn 18
2.3 Mô hình dịch vụ web mở (OWS - Open Web Service) 20
2.3.1 Mô hình dịch vụ web cho hệ thống WebGIS 20
2.3.2 Dịch vụ web bản đồ (WMS - Web Mapping Service) 20
2.3.3 Dịch vụ web các đối tượng hình học cơ sở (WFS-Web Feature Service) 20
2.3.4 Dịch vụ web lớp phủ (WCS - Web Coverage Service) 21
2.3.5 So sánh một số dịch vụ web bản đồ 21
2.4 Dữ liệu đa phương tiện trong PostgreSQL 24
2.4.1 Kiểu dữ liệu nhị phân trong PostgreSQL 24
Trang 42.4.2 Kiểu mã định danh đối tượng 25
2.4.3 PostgreSQL quản lí dữ liệu” đối tượng lớn” như thế nào 27
2.4.4 Thiết kế bảng chứa dữ liệu đa phương tiện 27
Chương 3 - WEBGIS GIỚI THIỆU DANH LAM THẮNG CẢNH HÀ NỘI 29
3.1 Mô tả yêu cầu 29
3.1.1 Yêu cầu đối với người sử dụng 29
3.1.2 Yêu cầu quản trị 29
3.2 Kiến trúc hệ thống và các công cụ nguồn mở 30
3.2.1 Hệ thống cơ sở 30
3.2.2 Một cách đơn giản kết nối và trình diễn dữ liệu đa phương tiện 31
3.3 Xây dựng dữ liệu 31
3.3.1 Cấu trúc các lớp bản đồ 32
3.3.2 Chuyển đổi dữ liệu 35
3.3.3 Thiết kế trường lưu dữ liệu đa phương tiện 35
3.4 Quản trị dữ liệu đa phương tiện 36
3.4.1 Dữ liệu hình ảnh 36
3.4.2 Dữ liệu video 37
3.5 Xây dựng ứng dụng 38
3.5.1 Hệ thống nền 38
3.5.2 Thiết kế chứ c năng 39
3.5.3 Các chức năng phía người dùng 39
3.5.4 Các chức năng kế thừa 41
3.5.5 Chức năng hiển thị/ẩn các lớp 45
3.5.6 Chức năng truy vấn dữ liệu thuộc tính 45
3.5.7 Chức năng truy vấn dữ liệu bản đồ 48
3.5.8 Chức năng quản trị hệ thống 49
KẾT LUẬN 52
TÀI LIỆU THAM KHẢO 54
Trang 5Language) Ngôn ngữ đă ̣c tả về dữ liê ̣u đi ̣a lý Chuẩn của OGC
OGC (Open Geospatial
Consortium)
Tổ chức phi lợi nhuâ ̣n đưa ra các chuẩn về dữ liê ̣u đi ̣a lý và các dịch vụ
UMN MapServer Phần mềm mã nguồn mở của
trường đa ̣i ho ̣c Minnesota
WFS (Web Feature Service) Dịch vụ cung cấp dữ liệu theo
đi ̣nh da ̣ng thống nhất GML Chuẩn của OGC
WMS (Web Map Service) Dịch vụ cung cấp bản đồ dưới
dạng ảnh Chuẩn của OGC ESRI (Economic and Social
Trang 6DANH MỤC CÁC HÌNH MINH HOẠ
Hình 1: Cửa sổ ArcView kèm trình diễn video 11
Hình 2: Nhu cầu tích hợp dữ liệu đa phương tiện với GIS 17
Hình 3: Mô hình khách-chủ cho hệ thống WebGIS 18
Hình 4: Các đối tượng hình học cơ sở theo đặc tả OGC 19
Hình 5: Một bảng có thể tham chiếu đến nhiều bảng dữ liệu đa phương tiện khác nhau 28
Hình 6: Các thành phần của hệ thống WebGIS với MapServer 30
Hình 7: Truy vấn đối tượng trên bản đồ 47
Hình 8: Chi tiết đối tượng truy vấn 48
Hình 9: Giao diện danh sách các di tích lịch sử 49
Hình 10: Giao diện chi tiết di tích lịch sử khi kích chọn vị trí đối tượng trên bản đồ 49
Hình 11:Cửa sổ đăng nhập quản trị hệ thống 50
Hình 12: Danh sách các di tích lịch sử 50
Hình 13: Cửa sổ cập nhật di tích lịch sử 51
Trang 7MỞ ĐẦU
Khái quát về hệ thông tin địa lý và hướng phát triển
GIS (Geography Information System - Hệ thống thông tin địa lý) là công nghệ đang rất được chú ý phát triển tại Việt Nam trong thời gian gần đây GIS có rất nhiều ứng dụng trong phát triển kinh tế xã hội, quản lý tài nguyên môi trường, phục vụ đời sống, dịch vụ công ích và nhiều lĩnh vực khác
Về lịch sử, hệ thống thông tin địa lý là một nhánh của công nghệ thông tin được hình thành vào những năm 1960 và phát triển rất mạnh thành một lĩnh vực riêng Ngày 17/11 đã được lấy làm ngày GIS, một sự kiện hàng năm do Hội địa lý quốc gia Mỹ cùng với một số nhà bảo trợ khác như ESRI (http://www.esri.com), Microsystems đứng ra tổ chức, nhằm mục đích phổ biến các kiến thức và quảng bá cho hệ thống thông tin địa lý
Có nhiều cách tiệm cận khác nhau khi định nghĩa GIS Nếu xét dưới góc độ hệ thống, thì GIS có thể được hiểu như một hệ thống gồm các thành phần: con người, phần cứng, phần mềm, cơ sở dữ liệu và các quy trình-kiến thức chuyên gia, nơi tập hợp các quy định, quy phạm, tiêu chuẩn, định hướng, chủ trương ứng dụng của nhà quản lý, các kiến thức chuyên ngành và các kiến thức về công nghệ thông tin
Theo cách tiếp cận truyền thống, GIS là một công cụ máy tính để lập bản đồ và phân tích các sự vật, hiện tượng thực trên trái đất Công nghệ GIS kết hợp các thao tác
cơ sở dữ liệu thông thường (như cấu trúc hỏi đáp) và các phép phân tích thống kê, phân tích không gian Những khả năng này phân biệt GIS với các hệ thống thông tin khác và khiến cho GIS có phạm vi ứng dụng rộng trong nhiều lĩnh vực khác nhau (phân tích các sự kiện, dự đoán tác động và hoạch định chiến lược)
Việc áp dụng công nghệ thông tin trong lĩnh vực dữ liệu không gian đã tiến những bước dài: từ hỗ trợ lập bản đồ (CAD mapping) sang hệ thống thông tin địa lý (GIS) Cho đến nay cùng với việc tích hợp các khái niệm của công nghệ thông tin như
hướng đối tượng, GIS đang có bước chuyển từ cách tiếp cận cơ sở dữ liệu (database
aproach) sang hướng tri thức (knowledge aproach)
Hệ thống thông tin địa lý là hệ thống quản lý, phân tích và hiển thị tri thức địa
lý, tri thức này được thể hiện qua các tập thông tin:
- Các bản đồ: giao diện trực tuyến với dữ liệu địa lý để tra cứu, trình bày kết quả và sử dụng như là một nền thao tác với thế giới thực
- Các thông tin địa lý: chứa trong các tệp tin và trong các cơ sở dữ liệu gồm các yếu tố cơ bản, mạng lưới, topology, địa hình, thuộc tính
Trang 8- Các mô hình xử lý: tập hợp các quy trình xử lý để phân tích tự động
- Các mô hình dữ liệu: GIS cung cấp công cụ mạnh hơn là một cơ sở dữ liệu thông thường bao gồm quy tắc và sự toàn vẹn giống như các hệ thông tin khác Lược
đồ, quy tắc và sự toàn vẹn của dữ liệu địa lý đóng vai trò quan trọng
- Siêu dữ liệu (metadata) hay tài liệu mô tả dữ liệu, cho phép người sử dụng tổ chức, tìm hiểu và truy nhập được tới tri thức địa lý
GIS có thể tiếp cận dưới các góc độ khác nhau:
- Cơ sở dữ liệu địa lý (Geodatabase - theo cách gọi của ESRI): GIS là một cơ sở
dữ liệu không gian chuyển tải thông tin địa lý theo quan điểm gốc của mô hình dữ liệu GIS (yếu tố, topology, mạng lưới, raster, )
- Hiển thị trực quan (GeoVisualization): GIS là tập các bản đồ thông minh thể hiện các yếu tố và quan hệ giữa các yếu tố trên mặt đất Dựa trên thông tin địa lý có thể tạo nhiều loại bản đồ và sử dụng chúng như là một cửa sổ truy cập cơ sở dữ liệu để
hỗ trợ tra cứu, phân tích và biên tập thông tin
- Xử lý (Geoprocessing): GIS là các công cụ xử lý thông tin cho phép tạo ra các thông tin mới từ thông tin đã có Các chức năng xử lý thông tin địa lý lấy thông tin từ các tập dữ liệu đã có, áp dụng các chức năng phân tích và ghi kết quả vào một tập mới
Hiện nay đã có nhiều sản phẩm GIS thương mại cũng như các công cụ GIS nguồn mở với các chức năng đáp ứng những yêu cầu cơ bản của người dùng chuyên nghiệp
Hệ thông tin địa lý với dữ liệu đa phương tiện
Trong xã hội bùng nổ thông tin hiện nay, dữ liệu đa phương tiện rất phổ biến nhờ có Internet, được tạo ra lưu trữ và phân phối rất tiện lợi Điều này có ảnh hưởng trực tiếp đến công nghệ GIS Ngoài dữ liệu GIS điển hình là dữ liệu không gian và dữ liệu thuộc tính, người ta muốn đưa vào hệ thông tin địa lý các dữ liệu đa phương tiện khác nhau Ví dụ, cần gắn kèm với các địa điểm, công trình, khu vực địa lý … nhiều thông tin liên quan dưới các khuôn dạng dữ liệu khác nhau:
- Văn bản: mô tả, giải thích, lịch sử
- Đồ họa, hình ảnh: hình vẽ, sơ đồ, biểu đồ, đồ thị, ảnh chụp …
- Đoạn phim video, đoạn âm thanh: diễn biến một sự kiện, một quy trình,
- Hoạt hình máy tính: sự thay đổi theo không gian - thời gian
- Thậm chí các mô hình 3 chiều: tệp CAD, VRML, …
Vấn đề tích hợp dữ liệu đa phương tiện và GIS đặt ra là khá tự nhiên và cũng là một lĩnh vực không mới Tuy nhiên, nó vẫn là một thách thức không nhỏ đối với
Trang 9những người phát triển ứng dụng Việc tìm hiểu toàn diện vấn đề và xem xét các giải pháp từ lựa chọn công nghệ, thiết kế ứng dụng đến triển khai cài đặt là cần thiết
Nội dung và ý nghĩa của đề tài
Xuất phát từ các lý do trên, chúng tôi đã chọn đề tài” Quản trị dữ liệu Multimedia trong hệ thông tin địa lý” Mục đích của đề tài là tìm hiểu về tích hợp dữ liệu đa phương tiện như hình ảnh, âm thanh, video, hoạt hình, … vào hệ thông tin địa
lý, làm cho hệ thống trở nên hấp dẫn hơn, hữu dụng hơn với đông đảo người dùng Việc xử lí dữ liệu đa phương tiện đính kèm các đối tượng trong hệ thông tin địa lí sẽ được tìm hiểu trên cơ sở xem xét công nghệ tổ chức dữ liệu và cơ sở dữ liệu địa lý của các hệ thống GIS phổ biến, thương mại cũng như mã nguồn mở
Đề tài sẽ tập trung tìm hiểu sâu hơn về các cơ sở công nghệ hiện đại để xây dựng một ứng dụng WebGIS mã nguồn mở, hỗ trợ nhiều chức năng xử lí các dữ liệu
đa phương tiện, hỗ trợ chia sẻ thông tin trên mạng Internet
Một ứng dụng minh họa được xây dựng bằng Mapserver và hệ quản trị CSDL PosgreSQL, giới thiệu danh lam thắng cảnh Hà Nội Ý nghĩa thực tiễn là ở chỗ có thể
sử dụng ứng dụng minh họa đã xây dựng như một bản thử nghiệm để hoàn thiện thành ứng dụng hoàn chỉnh Cũng có thể theo mô hình này để phát triển các ứng dụng WebGIS trong nhiều lĩnh vực khác như quản lí hành chính, tài nguyên môi trường, hướng dẫn du lịch, v.v
Các nội dung nghiên cứu
Để đạt được mục đích trên, cần thực hiện các nhiệm vụ cụ thể sau:
- Tìm hiểu một số hệ thông tin địa lí phổ biến như MapInfo, ArcGIS, Grass chú trọng đến các mô hình dữ liệu địa lý, tổ chức cơ sở dữ liệu địa lý và khả năng lưu trữ
và hiển thị dữ liệu đa phương tiện
- Tìm hiểu các kết quả đã có về vấn đề tích hợp dữ liệu đa phương tiện với hệ thông tin địa lý và phát triển GIS đa phương tiện
- Tìm hiểu mô hình phát triển hệ thống WebGIS, chú trọng các công nghệ theo chuẩn mở và các công cụ mã nguồn mở như MapServer, PostgreSQL, PostGIS…
- Xây dựng một ứng dụng minh họa WebGIS bằng Mapserver và PostgreSQL, cho phép hiển thị dữ liệu đa phương tiện đính kèm các đối tượng trên bản đồ Cần nghiên cứu nắm vững quá trình tương tác giữa hệ thông tin địa lý với hệ quản trị cơ sở
dữ liệu, cụ thể là khả năng lưu trữ và hiển thị các dữ liệu đa phương tiện của hệ quản trị dữ liệu PostgreSQL kết hợp với Mapserver
Bố cục của luận văn
Bố cục của luận văn gồm có các phần như sau:
Trang 10Mở đầu: Đặt vấn đề về tính cần thiết của đề tài, cũng như nhiệm vụ, mục đích
của đề tài, nêu ý nghĩa khoa học và thực tiễn của đề tài
Chương 1: Giới thiệu về GIS đa phương tiện, dữ liệu và quản trị dữ liệu nói
chung trong một số hệ thông tin địa lý điển hình (dữ liệu không gian, dữ liệu thuộc tính) Các cách lưu trữ và quản lý dữ liệu khác nhau trong các hệ thống trên
Đặc biệt chú trọng khả năng quản trị dữ liệu đa phưong tiện trong các hệ GIS này để hiểu nền tảng lý thuyết của các giải pháp tổ chức dữ liệu đa phương tiện
Chương 2: Trình bày về WebGis và mục tiêu ứng dụng Các mô hình mở và các
đặc tả chuẩn mở để phát triển hệ thống GIS nói chung và WebGIS nói riêng Đặc biệt chú trọng các công cụ mã nguồn mở như MapServer, PostgreSQL, PostGIS…
Chương 3: Xây dựng ứng dụng minh họa, trong đó phân tích các bước tạo dữ
liệu, cách quản trị dữ liệu đa phương tiện trong ứng dụng và triển khai cụ thể
Kết luận: Đánh giá kết quả đã đạt được, xác định những ưu nhược điểm và
hướng phát triển trong tương lai
Trang 11Chương 1- HỆ THÔNG TIN ĐỊA LÝ VÀ DỮ LIỆU ĐA PHƯƠNG TIỆN
Trở lại với bài toán tích hợp vào hệ thông tin địa lý các dữ liệu đa phương tiện khác nhau như văn bản, đồ họa, hình ảnh, clip video, băng âm thanh, clip hoạt hình máy tính và thậm chí các mô hình 3 chiều như tệp CAD, VRML, … Giải quyết bài toán này dẫn đến sự ra đời của một khái niệm mới là hệ thông tin địa lý đa phương tiện
- multimedia GIS
1.1.1 Hai cách tiếp cận xây dựng hệ thông tin địa lý đa phương tiện
Về nguyên lý, có hai cách xem xét vấn đề
1 -” Multimedia in GIS”: tăng cường thêm các chức năng của GIS truyền
thống, làm cho GIS truyền thống có khả năng thao tác với dữ liệu multimedia Cách tiếp cận này đưa đến việc tích hợp các công cụ trình diễn, quản trị và xử lý các kiểu dữ liệu đa phương tiện vào các phần mềm GIS thương mại Những nghiên cứu đầu tiên theo hướng này là [7, 8]
2 -” GIS in Multimedia”: tăng cường thêm các chức năng GIS cần thiết cho
ứng dụng đa phương tiện Nói ngắn gọn là tích hợp các chức năng phân tích dữ liệu không gian của GIS truyền thống với các ứng dụng thao tác dữ liệu đa phương tiện Những nghiên cứu đầu tiên theo hướng này nhằm phát triển các tập bản đồ đa phương
tiện (multimedia atlas information systems) [14]
Một xu hướng phát triển mạnh nhất trong thời gian gần đây của cách tiếp cận” GIS in Multimedia” là các ứng dụng trên nền Web với phần mở rộng GIS thường hay viết tắt là WebGIS Môi trường ứng dụng Web rất thuận lợi để tích hợp các công cụ xử
lý dữ liệu đa phương tiện Công nghệ Java, các ngôn ngữ kịch bản (script) khác nhau cho phép triển khai những chức năng GIS mong muốn
1.1.2 Cách tiếp cận” Multimedia in GIS”
Các phần mềm GIS thương mại nổi tiếng như MapInfo, ArcGIS hay phần mềm GIS nguồn mở như GRASS đều có một môi trường lập trình sử dụng các giao diện lập trình ứng dụng (API) cho phép gọi các thư viện liên kết động hay kết nối với CSDL Điều này cho phép phát triển các ứng dụng GIS tăng cường thêm một số chức năng xử
lý dữ liệu đa phương tiện như hiển thị hình ảnh, trình diễn video, âm thanh, hoạt hình, v.v… Dữ liệu đa phương tiện được liên kết với các đối tượng trên bản đồ nhờ mã định danh và khi cần thiết có thể truy xuất từ CSDL nội tại hay CSDL bên ngoài
MapInfor
Trang 12MapBasic là ngôn ngữ lập trình trong môi trường MapInfo cho phép chúng ta phát triển các ứng dụng GIS Nó tạo ra các hệ thống giao diện người dùng thuận lợi và nhanh chóng như tạo thanh menu mới, hộp thoại điều khiển theo ý muốn Điều này cho phép tiết kiệm thời gian, tiện lợi cho triển khai ứng dụng
MapBasic cung cấp công cụ xử lý dữ liệu, đáp ứng các yêu cầu đa dạng về dữ liệu Nó cho phép truy vấn CSDL, lựa chọn và cập nhật dữ liệu bằng các câu lệnh theo
cú pháp SQL Hiển thị kết quả vấn tin theo khuôn dạng mong muốn
MapBasic cho phép xây dựng chương trình có cấu trúc mở vì nó có khả năng liên kết với các ứng dụng khác Chương trình MapBasic có thể gọi các thủ tục trong các thư viện các tệp liên kết động của Windows DLL (Windows Dynamic Link Labary) hoặc sử dụng dữ liệu chuyển đổi động DDE (Dynamic Data Exchange) để liên kết với các phần mềm khác
ArcVỉew
ArcView cung cấp ngôn ngữ script riêng của mình
Có các kho tài nguyên scripts mẫu do ESRI cung cấp kèm với ArcView Nhiều scripts có thể tải về miễn phí từ trang web ArcScripts của ESRI và đưa vào chương trình
Hình dưới đây minh họa một ứng dụng GIS sử dụng ArcView có kèm trình diễn nhiều kiểu dữ liệu đa phương tiện như hình ảnh, video, hoạt hình và thậm chí cả mô hình địa hình 3 chiều [15]
Trang 13Hình 1: Cửa sổ ArcView kèm trình diễn video
Có thể phân loại các chức năng trong GIS thành 4 nhóm như sau
- Thu thập dữ liệu (e.g số hóa bản đồ, quét chụp, …)
- Thao tác dữ liệu (e.g biên sửa, chuyển đổi (raster-vector), tích hợp dữ liệu, phổ quát (generalizing)
- Phân tích dữ liệu (rất nhiều phép toán)
- Trình diễn và xuất ra (e.g hiển thị bản đồ chuyên đề, in ra )
Tuy nhiên, không phải mọi chức năng kể trên đều cần thiết tích hợp vào hệ thống tập bản đồ đa phương tiện Mục đích chủ yếu của hệ thống thông tin bản đồ đa phương tiện là trình diễn và phục vụ tìm kiếm thông tin chứ không phải thao tác phân tích thông tin Người dùng cuối của các hệ thống thông tin bản đồ đa phương tiện không phải là các nhà chuyên môn mà là quần chúng đông đảo Để có khả năng tích hợp vào hệ thống thông tin bản đồ đa phương tiện các chức năng GIS phải đáp ứng một số đòi hỏi như sau đây [13 ]
- Thứ nhất, phải dễ hiểu, dễ dùng, có giao diện thân thiện người sử dụng
Trang 14- Thứ hai, nó phải có khả năng hiển thị bản đồ với chất lượng cao vì nhu cầu tìm kiếm trực quan là chủ yếu đối với người sử dụng
- Thứ ba, thời gian xử lý phải ngắn vì người sử dụng sẽ từ bỏ nếu phải đợi quá lâu
- Thứ tư, có tính tương tác cao, được hướng dẫn và kiểm soát bởi phần mềm, để tránh cho người dùng các thao tác dẫn đến các kết quả không hợp lý hoặc sai sót
1.3.1 Tổ chức dữ liệu trong các hệ thông tin địa lý
Trong hệ thông tin địa lý, dữ liệu được chia làm hai loại: dữ liệu không gian và
dữ liệu phi không gian Dữ liệu không gian là dữ liệu về vị trí địa lý của các đối tượng theo một hệ toạ độ hay hệ quy chiếu nào đó Dữ liệu phi không gian hay dữ liệu thuộc tính là những đặc tính, số lượng, mối quan hệ kết nối lôgic với các dữ liệu không gian
Dữ liệu không gian có thể biểu diễn bằng mô hình dữ liệu raster hay mô hình
dữ liệu vectơ Dữ liệu thuộc tính nói chung thuộc kiểu số, hoặc chữ-số numeric) và chúng được tổ chức lưu trữ thành trong các bảng dữ liệu trong CSDL theo
(anpha-mô hình quan hệ
Dưới đây ta điểm qua cách tổ chức dữ liệu trong một số thống GIS thông dụng
1.3.2 Tổ chức dữ liệu trong Map Info
Dữ liệu trong MapInfo được tổ chức theo khuôn dạng TAB và MIF/MID để tiện trao đổi Khuôn dạng TAB là mặc định Thông thường thuật ngữ” TAB file” bao gồm một tập hợp các tệp cân thiết để mởi một table trong MapInfo Nó gồm các tệp với phần mở rộng.TAB,.DAT,.MAP,.ID,.IND)
.TAB: tệp văn bản ASCII, chưa thông tin để kết nối tất các tệp khác trong ứng dụng MapInfo, thông tin về các kiểu tệp dữ liệu
.DAT (hoặc.DBF): tệp chứa dữ liệu thuộc tính, có cấu trúc tương tự như tệp CSDL dBase III
.ID: lưu trữ thông tin để liên kết dữ liệu địa lý với dữ liệu thuộc tính trong CSDL Nó chứa các mã định danh ID là số nguyên 4-byte của mỗi đối tượng (feature) trong tệp MAP
.MAP: các thông tin về các đối tượng địa lý dưới dạng mã nhị phân, cho phép hiển thị một bản đồ lên màn hình
.IND: tệp chỉ mục (tùy chọn) Tệp này chỉ xuất hiện nếu có áp dụng chỉ mục CSDL theo một trường nào đó
Dữ liệu thuộc tính trong MapInfo
Trang 15Không có hạn chế về tên trường thuộc tính trong MapInfo Bảng dưới đây là các kiểu dữ liệu thuộc tính được hỗ trợ
char(<width>) Xâu ký tự với đôi dài tối đa là <width> Không cần dùng các ký
tự lấp chỗ trống (padding) nếu ngắn hơn
Date Ngày tháng, dạng xâu ký tự Mặc định là YYYYMMDD
Datetime Ngày giờ, dạng xâu ký tự, dạng YYYYMMDDHHMMSS.FFF decimal(<width>,
<decimals>)
Kiểu số thập phân, nhưng dấu chấm động <width> là độ dài tổng cộng của trường, kể cả dấu chấm thập phân <decimals> là
số ký số bên phải dấu chấm
Float Kiểu số float
integer Số nguyên 32 bit, có dấu
logical true or false
smallint Số nguyên nhỏ (small integer), 16 bit, có dấu Phạm vi từ
-32767 đến +32767
Time Thời gian, dạng xâu ký tự, HHMMSS.FFF
Như vậy không có trường kiểu nhị phân
1.3.3 Tổ chức dữ liệu trong ArcGIS của ESRI
Khuôn dạng shapefile được đưa vào sử dụng trong ArcGIS phiên bản 2 từ đầu những năm 90 Thuật ngữ” shapefile” thường được dùng để chỉ một tập hợp nhiều tệp
có chung tên nhưng với phần mở rộng khác nhau, cung trong một thư mục Có 3 kiểu tệp bắt buộc phải có và 8 kiểu khác là tùy chọn
Ba tệp bắt buộc phải có là:
.shp: chứa các feature geometry: điểm, đường, vùng, …
.shx: chứa các chỉ mục theo vị trí của các feature geometry để hỗ trợ tìm kiếm nhanh
.dbf: chứa các dữ liệu thuộc tính, tổ chức thành bảng trong CSDL quan hệ giống như dBase IV Mỗi thuộc tính ứng với một cột, mỗi shape là một dòng
Các tệp tùy chọn khác chứa các thông tin phụ trợ như phép chiếu địa lý được sử dụng, các chỉ mục theo features, theo thuộc tính, siêu dữ liệu dạng XML, v.v…
Trong ArcGIS dữ liệu thuộc tính có thể là 7 kiểu sau: short integer, long integer, float, double, text, date, và BLOB
Trang 16Bảng dưới đây trình bày các kiểu trường dữ liệu trong ArcCatalog (thành phần của ArcInfo) và kiểu tương đương trong một số hệ quản trị CSDL thông dụng khác
Float vbSingle Number (Single) Float NUMBER
Double vbDouble Number (Double) Float NUMBER
Text vbString Text Varchar VARCHAR2
Date vbDate Date/Time Datetime DATE
Object ID vbLong AutoNumber (Long
Integer) Int NUMBER(38)
Geometry vbDataObject OLE Object Int
NUMBER(38) or SDO_GEOMET
RY
Blob vbObject OLE Object Image
NUMBER(38) or SDO_GEOMET
RY
Raster vbDataObject Number (Long
Integer) Int NUMBER
GUID vbString Number
(Replication ID) uniqueidentifier CHAR
GlobalID vbString Number
(Replication ID) uniqueidentifier CHAR
1.3.4 Tổ chức dữ liệu trong Grass
Tập bản đồ chuyên đề trong GRASS được tổ chức theo các mapset Các mapset
sẽ chứa các tệp và các thư mục con, gọi là các phần tử (thành phần) cơ sở dữ liệu
Bản đồ Vector trong GRASS được lưu trữ theo các biểu diễn cung-nút (arc –
node), bao gồm các đường cong gọi là cung Một cung được lưu trữ như một danh
Trang 17sách các cặp toạ độ x, y Điểm đầu, điểm cuối của một cung được gọi là nút (node)
Hai cặp toạ độ x, y liên tiếp nhau xác định một đoạn (segment) của cung Các cung
đơn lẻ hay kết hợp với các cung khác tạo ra các đối tượng bản đồ ở mức cao hơn Các
đường (ví dụ: các con đường, các con suối hoặc các vùng (ví dụ cánh đồng hay rừng)
Các cung tạo nên các đối tượng tuyến tính (linear) đôi khi còn được gọi là lines, và các cung bao quanh một vùng gọi là area edges hay area lines
Mỗi đối tượng bản đồ được gán một giá trị thuộc tính là một số nguyên gọi là
số category Các tệp của cùng một lớp bản đồ vector có cùng một tên, nhưng mỗi tệp nằm trong một thư mục CSDL khác nhau trong mapset Các thư mục CSDL này là:
1.3.5 Đưa dữ liệu đa phương tiện vào hệ thông tin địa lý
Dữ liệu đa phương tiện là các khối mã nhị phân lớn, gọi là kiểu đối tượng nhị phân lớn (binary large object) hay BLOB Trong bản CSDL cột BLOB được coi như là xâu nhị phân (byte strings) Một số hệ CSDL phân chia vài kiểu BLOB khác nhau tùy theo kích thước, ví dụ trong MySQL có các kiểu TINYBLOB, BLOB, MEDIUMBLOB, và LONGBLOB
Nếu cơ sở dữ liệu địa lý của hệ thống GIS có hỗ trợ trường dữ liệu kiểu BLOB thì có thể trực tiếp chứa dữ liệu đa phương tiện trong cột thuộc tính kiểu này
Ví dụ, trong ArcGIS có thể lưu trữ các giá trị thuộc tính thuộc 7 kiểu sau: short integer, long integer, float, double, text, date, và BLOB Bảng CSDL có sẵn một số trường được định nghĩa trước chứa dữ liệu không gian (geometry) và mã định danh đối tượng Vì ArcGIS có hỗ trợ kiểu BLOB, nên các tệp hình ảnh, video, âm thanh, … có thể lưu trữ trong CSDL địa lý nội tại của ArcGIS Tuy nhiên, cần phải dùng đến công
cụ riêng hay ứng dụng bên ngoài để nạp lên, tải về và hiển thị nội dung của trường BLOB và kích thước của trường cũng bị hạn chế
Dig Tệp arc dạng nhị phân
dig_ascii Tệp arc dạng ascii
dig_att Tệp thuộc tính category Vector
dig_cats Các nhãn của category Vector
dig_plus Tệp index/pointer dạng Vector
Reg Các điểm mốc số hóa (digitizer registration points)
Trang 18Trong trường hợp CSDL địa lý của hệ thống GIS đang xét không hỗ trợ kiểu BLOB có thể sử dụng một CSDL đa năng khác bên ngoài và tổ chức liên kết các dữ liệu đa phương tiện với các đối tượng địa lý thông qua mã định danh đối tượng Ví dụ, ArcGIS duy trì một trường ObjectID, đảm bảo mã định danh duy nhất cho mỗi dòng trong bảng CSDL Trong phần sau sẽ trình bày chi tiết hơn về tổ chức lưu trữ kiểu BLOB trong hệ quản trị CSDL PostgreSQL và liên kết với ứng dụng WebGIS
CSDL ngoài là một CSDL đa năng nên có ưu điểm là có các công cụ mạnh phục vụ lưu trữ dữ liệu tìm kiếm thông tin với hiệu quả cao và kích thước khối dữ liệu
ít bị hạn chế hơn
Trang 19Chương 2- XÂY DỰNG WEBGIS GIẦU DỮ LIỆU ĐA PHƯƠNG TIỆN BẰNG
Hình dưới đây khái quát yêu cầu tích hợp vào CSDL của hệ thống GIS nhiều nguồn dữ liệu đa phương tiện khác nhau
Hình 2: Nhu cầu tích hợp dữ liệu đa phương tiện với GIS
2.1.2 Hệ thống WebGIS với mô hình khách-chủ
Một giải pháp cho vấn đề nêu trên là hệ thống WebGIS
WebGIS là hệ thông tin địa lý phân tán trên mạng máy tính để thu thập, phân phát, truyền tải các thông tin địa lý dựa trên nền công nghệ Web Hệ thống WebGIS sử dụng mô hình kiến trúc khách – chủ Mô hình khách chủ có thể triển khai theo 2 cách tiếp cận” nhẹ khách” (thin client) hoặc” nặng khách” (thick client)
Mô hình” nhẹ khách” có nghĩa là hầu hết công việc xử lý ở phía chủ dịch vụ (tức là nặng chủ), phía khách không làm gì nhiều hơn là hiển thị kết quả Ưu điểm của
Trang 20mô hình này là người dùng không cần cài đặt thêm các công cụ Máy khách nhẹ tải nên không cần cấu hình cao Tuy nhiên để giảm tải cho phía chủ cung cấp dịch vụ, các máy chủ Web, máy chủ CSDL và WebGIS có thể không tập trung trên một máy nền duy nhất mà phân tán trên các máy khác nhau và liên kết qua mạng Nhược điểm của
mô hình này là nếu người sử dụng cần thao tác với dữ liệu không gian, ví dụ cập nhật một đối tượng, một khu vực địa lý trên bản đồ thì sẽ khó thực hiện Như vậy, mô hình” nhẹ khách” là giải pháp đơn giản để xây dựng tập bản đồ chủ yếu phục vụ tra cứu, tìm kiếm thông tin, chỉ sử dụng bộ duyệt web
Hình 3: Mô hình khách-chủ cho hệ thống WebGIS
Mô hình ”nặng khách” là đối lập với ”nhẹ khách” Phía khách đảm nhiệm thêm một số chức năng xử lý, cần cài đặt thêm các tiện ích ví dụ các trình cắm thêm (plug-ins), ActiveX hay Java-applets Các tiện ích GIS cắm thêm mở rộng khả năng của bộ duyệt web, làm cho nó có khả năng xử lý các khuôn dạng dữ liệu GIS Một số chức năng GIS đơn giản có thể do các trình cắm thêm hay các applet thực hiện tại phía khách, không cần gửi về máy chủ dịch vụ Điều này giảm bớt việc truyền dữ liệu trên mạng Ưu điểm của giải pháp” nặng khách” là khả năng tương tác cao hơn, người sử dụng có thể thực hiện nhiều phép phân tích dữ liệu địa lý hơn, giao diện người sử dụng được hoàn thiện hơn Nhược điểm của giải pháp” nặng khách” chủ yếu là ở khâu phân phát công cụ phần mềm và dữ liệu Như đã biết, không có phần mềm nào chạy trên mọi máy tính
Trong lĩnh vực GIS, tổ chức Open GIS Consortium (OGC) chịu trách nhiệm thiết lập các chuẩn để có các hệ thống mở Trước đây người sử dụng hệ thông tin địa
lý phải lệ thuộc vào nhà cung cấp Mỗi nhà cung cấp sử dụng những công nghệ độc quyền, dữ liệu địa lý có các khuôn dạng riêng Sự trao đổi chia sẻ dùng chung giữa các
hệ thống khác nhau là rất khó khăn Yêu cầu khắc phục các nhược điểm trên dẫn đến
sự ra đời của OGC và việc đề xuất nhiều chuẩn công nghệ mở cho GIS
Có thể tham khảo các đặc tả chuẩn của OGC tại địa chỉ
Trang 21Để minh họa, dưới đây sẽ trình bày sơ lược về đặc tả chuẩn các đối tượng hình học đơn giản (simple features) cho GIS mà OGC đưa ra Đây chính là các đối tượng hình học cơ sở, là các thành phần đồ họa vector làm nên một bản đồ số hóa Ví dụ này cũng giúp hiểu rõ hơn thuật ngữ” features” và đặc tả dịch vụ WFS - Web Feature Server sẽ trình bày trong phần sau
Theo đặc tả này các đối tượng hình học cơ sở gồm có: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION
Sơ đồ UML thể hiện quan hệ giữa các đối tượng
Hình 4: Các đối tượng hình học cơ sở theo đặc tả OGC
Dưới đây là các ví dụ minh hoạ biểu diễn dạng text của các đối tượng nói trên POINT(0 0 0)
LINESTRING(0 0,1 1,1 2)
POLYGON ((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0),(1 1 0, 2 1 0, 2 2 0, 1 2 0, 1 1 0)) MULTIPOINT(0 0 0, 1 2 1)
MULTILINESTRING((0 0 0, 1 1 0, 1 2 1)(2 3 1,3 2 1,5 4 1))
Trang 22MULTIPOLYGON(((0 0 0,4 0 0, 4 4 0, 0 4 0,0 0 0), (1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0, -2 -2 0,-2 -1 0,-1 -1 0)))
GEOMETRYCOLLECTION(POINT(2 3 9),LINESTRING((2 3 4,3 4 5)))
Dưới đây xem xét những mô hình và đặc tả chuẩn liên quan đến mục tiêu xây dựng hệ thống WebGIS mã nguồn mở
2.3.1 Mô hình dịch vụ web cho hệ thống WebGIS
Mô hình hệ thống kiểu dịch vụ web mới được đề xuất trong thời gian gần đây Theo mô hình này, một dịch vụ web là một chương trình thực hiện một dịch vụ cụ thể khi nhận được yêu cầu dưới dạng thông điệp XML thông qua Internet Một hệ thống sẽ gồm nhiều dịch vụ web tương tác với nhau qua trao đổi thông điệp để đáp ứng yêu cầu của người dùng
Xử lý thông tin địa lý là tác vụ yêu cầu những phần mềm (và đôi khi cả phần cứng) chuyên dụng Một giải pháp được đề xuất là tách riêng dữ liệu và việc xử lý thành 2 dịch vụ khác nhau, triển khai phân tán theo mô hình dịch vụ web
OGC xem xét OWS như là một hệ thống mà người sử dụng có thể truy cập dữ liệu không gian (geospatial data) thông qua môt giao diện thống nhất không phụ thuộc vào hệ thống nền Bộ OWS bao gồm 3 loại dịch vụ thông tin tham chiếu địa lý chính
Đó là Dịch vụ web bản đồ (WMS - Web Map Server), Dịch vụ web (WCS - Web Coverage Server) và Dịch vụ web các đối tượng địa lý cơ sở (WFS - Web Feature Server - thuật ngữ feature ở đây hiểu là geographic features)
2.3.2 Dịch vụ web bản đồ (WMS - Web Mapping Service)
WMS có khả năng sinh ra bản đồ như một tệp ảnh (thông thường là JPEG, PNG hay GIF) hoặc thậm chí các phần tử đồ họa kiểu vector theo khuôn dạng đồ họa vector định cỡ (co giãn) được (SVG - Scalable Vector Graphics) của các dữ liệu có tham chiếu địa lý Điều này tương phản với Web Feature Service (WFS) trả về dữ liệu địa lý thô Hãy xem máy chủ WMS như là một kho lưu trữ các kiểu bản đồ cụ thể Các bản
đồ này sẽ được sinh ra động (on the fly) tùy theo yêu cầu của NSD dựa theo các mô tả trong tệp mô tả kiểu phân tầng (SLD- Styled Layered Description) SLD được dùng để định nghĩa các quy tắc theo một ngôn ngữ định kiểu mà cả phía khách lần phía chủ đều hiểu
2.3.3 Dịch vụ web các đối tượng hình học cơ sở (WFS-Web Feature Service)
Theo OGC, Web Feature Service (WFS) quy định các giao diện để thao tác dữ liệu trong các giao dịch thông tin địa lý Các phép toán của WFS gồm: chèn thêm, sửa đổi, hủy, vấn tin (insert, update, delete, query, discovery) trên các đối tượng địa lý cơ
Trang 23sở (geographic features) Một WFS có khả năng thực hiện những công việc của WMS
và hơn thế nữa Khi WMS trả về một hình ảnh, WFS sẽ trả về dữ liệu dưới dạng GML (Geographic Markup Language) là ngôn ngữ chuẩn cho các ứng dụng không gian Nó cho phép lập trình viên phát triển các ứng dụng thực hiện vấn tin không gian trên Internet hay thông qua các giao thức SOAP
2.3.4 Dịch vụ web lớp phủ (WCS - Web Coverage Service)
Thuật ngữ” coverages” nghĩa là lớp phủ bề mặt Trong GIS nó được dùng để chỉ một phạm trù rộng lớn các dữ liệu địa không gian, một tập hợp các khu vực địa lý xem xét theo một thuộc tính nào đó Ví dụ, có thể là một bản đồ chất đất, một ảnh vệ tinh, một mô hình độ cao địa hình…
WCS hỗ trợ trao đổi qua mạng các dữ liệu địa không gian là các lớp phủ, tức là các giá trị thuộc tính của khu vực đang xét Đối lập với dịch vụ web bản đồ, xử lý dữ liệu không gian để trả về kết quả là một bản đồ tĩnh, hiển thị lên màn hình, dịch vụ web lớp phủ cho phép truy cập đến thông tin địa không gian nguyên dạng (unrendered), mà khi cần phía khách có thể rendering, hoặc truy cập lớp phủ đa trị, hoặc dùng làm đầu vào cho một mô hình tính toán khác Nói nôm na, dịch vụ web lớp phủ cung cấp truy cập đến dữ liệu” thô” nguyên chất chưa xử lý, trong khi đó dịch vụ web bản đồ cung cấp một tệp hình ảnh (là bản đồ chuyên đề) sẵn sàng đưa ra màn hình
Các phép toán then chốt của dịch vụ web lớp phủ sẽ làm việc với lưới phủ bề mặt Đó có thể là hình ảnh, lưới tam giác không đều (TINS) hay các dữ liệu theo mô hình lưới hoặc phi-lưới
2.3.5 So sánh một số dịch vụ web bản đồ
Một nghiên cứu so sánh các dịch vụ web bản đồ đã được thực hiện trong [9] Ba dịch vụ bản đồ trên Internet được xem xét và so sánh các kết quả cho phép rút ra một
số khuyến cáo sẽ trình bày dưới đây
MapInfo MapXtreme Java Edition
MapInfo MapXtreme Java Edition là dịch vụ bản đồ 100% thuần Java, được thiết kế với mục tiêu chạy được trên mọi nền (theo lý thuyết !) vì dựa trên nền máy ảo Java MapXtreme cung cấp dịch vụ bản đồ qua JavaBeans với môi trường phát triển tích hợp (IDE) trực quan, hỗ trợ kéo thả, rất dễ dùng ngay cả với người mới lập trình Với nhà lập trình Java có kinh nghiệm, bộ giao diện lập trình ứng dụng MapJ API sẽ cho phép xây dựng chương trình chuyên nghiệp hơn MapJ API là giao diện lập trình ứng dụng phía khách, sẽ giao tiếp với MapXtremeServlet là máy sinh bản đồ phía chủ dịch vụ MapXtremeServlet là thành phần chủ chốt, nhận các yêu cầu dịch vụ gồm bản
Trang 24đồ, hình ảnh (GIF, JPEG), dữ liệu vector và siêu dữ liệu Nó tương thích với mọi máy chủ Web/bộ duyệt Web của J2EE
MapXtreme gồm 4 thành phần: MapJ, map Renderers (để hiển thị bản đồ), Data Providers (để truy cập các nguồn dữ liệu) và MapXtremeServlet Kiến trúc theo thành phần làm cho MapXtreme rất linh hoạt, có thể triển khai trên bất cứ hệ thống web nào
Nó phù hợp chuẩn với các máy chủ web hỗ trợ ISAPI (Internet Server Application Programming Interface), NSAPI (Netscape Internet Server Application Programming Interface), CGI gateways, ví dụ như Netscape, Apache, hay IIE của Microsoft
Có một số yêu cầu khi cài đặt ứng dụng dịch vụ bản đồ với MapXtreme
- Máy chủ web phải hỗ trợ servlets/Java Server Pages hoặc có tích hợp trình cắm thêm hỗ trợ servlets/JSP hợp chuẩn J2EE ví dụ như TomCat, IBM WebSphere, iPlanet, …
- Với mô hình” nặng khách” đặt MapJ ở phía khách để nhận dữ liệu bản đồ vector và hiển thị bản đồ thì phải có máy ảo Java trong bộ duyệt
ArcView Internet Map Server
ESRI (Environmental Systems Research Institute Inc) đã tạo ra một số sản phẩm dịch vụ web bản đồ trên Internet ArcView Internet Map Server (AVIMS) được coi như phần mở rộng cho bản phần mềm ArcView GIS để bàn Các chức năng hiển thị trực quan bản đồ do ArcView GIS đảm nhiệm Có 3 thành phần trong AVIMS:
- Phần mở rộng dịch vụ bản đồ Internet, cho phép phiên làm việc ArcView truyền thông với internet qua máy chủ web
- ESRIMap web server để máy chủ web có thể truyền thông với ArcView ESRIMap web server phù hợp chuẩn với ISAPI (Internet Server Application Programming Interface) và NSAPI (Netscape Internet Server Application Programming Interface)
- Cuối cùng thành phần thứ 3 là một Java applet - MapCafe cung cấp các công
cụ cơ bản để duyệt, khám phá và truy vấn bản đồ
Để khắc phụ rào cản giữa hai kiểu dữ liệu vector-raster giữa GIS - Web, ESRI dùng giải pháp sau trên máy chủ Xử lý dữ liêu địa lý cả vector và raster, nhưng dùng ảnh raster (GIF, JPEG) để hiển thị Theo mặc định, AVIMS sử dụng khuôn dạng ảnh JPEG, nhưng cũng có hỗ trợ GIF
Có thể tùy biến trang web bản đồ kết quả của AVIMS Phưong pháp cơ bản là dùng ngôn ngữ script Avenue, là ngôn ngữ hướng đối tượng trong môi trường phát triển chung của ArcView Các scripts cho phép kiểm soát cách AVIMS tạo lập bản đồ
MapServer
Trang 25MapServer là môi trường phát triển nguồn mở để xây dựng các ứng dụng Web
có chức năng GIS Ứng dụng MapServer có thể chạy trên hầu hết các hệ thống UNIX, trên Windows và nhất là trên Linux/Apache Ứng dụng MapServer thường chạy như một ứng dụng CGI trên máy chủ http, trừ phi ta xây dựng một ứng dụng phức tạp hơn với MapScript, có trực tiếp gọi các MapServer API
Cơ chế hoạt động của một ứng dụng MapServer gồm 3 thành phần: Mapfile, tệp khuôn mẫu (template) và tập dữ liệu GIS Tệp Mapfile định nghĩa các dữ liệu sẽ dùng, các tham số vấn tin và hiển thị, giống như tệp cấu hình của ứng dụng Nó cũng chứa thông tin về cách vẽ bản đồ, các chú giải, và bản đồ kết quả vấn tin Tệp khuôn mẫu (template) kiểm soát cách MapServer xuất ra trang web với bố cục như thế nào Nó là một trang web, với một số trường mà MapServer CGI sẽ sửa đổi MapServer sử dụng khuôn dạng dữ liệu vector mặc định là shapefile của ESRI Dữ liệu Raster có thể có các khuôn dạng khác nhau, tùy thuộc vào lựa chọn khi biên dịch Mặc định, MapServer hỗ trợ định dạng Tiff và geoTiff
Netscape or Internet Explorer
Trang 264.x or greater 3.x or greater versions 4.x or
greater
Raster/Vector Display
Supported Y/Y Y/N Y/Y
Programming
language Java Avenue/Java any CGI
Technical level Java Servlet/Applet
skill Basic Html/Avenue Basic Html/CGI
ArcView 3.x Program on Server N
PostgreSQL là hệ quản trị CSDL đa năng mã nguồn mở được sử dụng nhiều trong phát triển các hệ thống GIS mã nguồn mở hiện nay Phần mở rộng PostGIS hỗ trợ các kiểu đối tượng hình học cơ bản (simple features) theo định nghĩa của tổ chức OGC - OpenGIS Consortium PostGIS làm cầu nối giữa PostgreSQL và các hệ GIS PostGIS làm cho PosgreSQL, một hệ quản trị CSDL đa năng có thể dùng như server CSDL mặt sau cho các GIS Nó tương tự như SDE của ESRI hay phần mở rộng không gian của Oracle
Dưới đây trình bày việc quản lý kiểu BLOB hay là kiểu dữ liệu” Đối tượng lớn” trong hệ quản trị CSDL Postgresql
2.4.1 Kiểu dữ liệu nhị phân trong PostgreSQL
Hiện nay có hai cách khác nhau để lưu trữ dữ liệu nhị phân trong PostgreSQL
- Kiểu dữ liệ” bytea”: thích hợp cho khối nhị phân kích thước nhỏ
- Kiểu dữ liệu” đối tượng lớn”: Lưu trữ dữ liệu nhị phân như một tệp riêng biệt trong một bảng riêng, có khuôn dạng được định nghĩa sẵn sẽ trình bày dưới đây
Phiên bản 7.2 là lần đầu tiên có JDBC driver hỗ trợ kiểu” bytea”
Trong những phiên bản Postgresql trước 7.1, kích thước của bất kỳ một dòng nào trong cơ sở dữ liệu không thể vượt hơn kích thước của một trang dữ liệu (data page) Vì kích thước của một trang dữ liệu là 8192 bytes (theo mặc định, có thể được nâng lên tới 32768 byte), giới hạn trên về kích thước của một giá trị dữ liệu sẽ hạn chế
Trang 27một cách đáng kể Để hỗ trợ lưu trữ các kiểu đối tượng nhị phân lớn, Postgresql đã cung cấp một giao diện cho phép truy nhập tới dữ liệu người dùng như một tệp, bằng cách khai báo kiểu đối tượng lớn
Phiên bản Postgre 4.2, tiền thân của Postgresql, hỗ trợ ba phương thức chuẩn xử
lí những đối tượng lớn: coi như những tệp ngoài máy phục vụ PostgreSQL, coi như tệp ngoài nhưng quản lý bởi máy phục vụ Postgre, và coi như tệp dữ liệu được cất giữ bên trong CSDL Postgre Điều này gây ra sự lẫn lộn đáng kể đối với những người dùng Vì thế, Postgresql chỉ giữ lại sự hỗ trợ cho những đối tượng lớn như dữ liệu cất giữ bên trong cơ sở dữ liệu Postgresql Mặc dù truy nhập chậm hơn, phương thức này đảm bảo
sự toàn vẹn dữ liệu chính xác hơn Vì những lý do lịch sử, sơ đồ lưu trữ này được gọi
là inversion large object Ta sẽ thấy thuật ngữ inversion large object thỉnh thoảng cũng
có nghĩa cùng như large object Kể từ Postgresql 7.1, tất cả các đối tượng lớn được đặt trong một bảng hệ thống gọi là pg_largeobject
Postgresql 7.1 đưa vào một cơ chế (gọi vui là” toast - Bánh mì nướng” ), cho phép một dòng dữ liệu lớn hơn nhiều so với trang dữ liệu riêng lẻ Điều này làm cho giao diện đối tượng lớn một phần bị lỗi thời Tuy nhiên, còn lại một lợi thế của giao diện đối tượng lớn là nó cho phép cho sự truy nhập ngẫu nhiên tới dữ liệu, tức là khả năng đọc hoặc viết một chunk dữ liệu của một giá trị lớn Trong tương lai, đã có kế hoạch để trang bị cho tính năng này cho” toast”
2.4.2 Kiểu mã định danh đối tượng
Các mã định danh đối tượng (OID – object identifier) được sử dụng nội tại trong PostgreSQL như khoá chính trong các bảng khác nhau của hệ thống Hơn nữa, các bảng do người sử dụng tạo ra cũng được hệ thống cộng thêm một cột OID (nếu không chỉ định WITHOUT OID khi tạo bảng) Kiểu OID để biểu diễn một mã định danh cho đối tượng Cũng có một vài kiểu thay thế khác cho OID, ví dụ regproc, regprocedure, regoper, regoperator, regclass, và regtype
Kiểu OID được xem như là một kiểu số nguyên 4 byte không dấu (unsigned integer) Vì vậy, nó không đủ lớn để đảm bảo tính duy nhất trên diện rộng toàn bộ CSDL trong những CSDL lớn, hoặc thậm chí ngay cả trong một bảng riêng lẻ, nếu rất lớn Vì vậy, việc sử dụng cột OID thuộc bảng do người sử dụng định nghĩa như khoá chính là không thích hợp OID chỉ sử dụng tốt nhất cho việc tham chiếu tới những bảng hệ thống
Ngoài các phép so sánh (như so sánh số nguyên không dấu), kiểu OID không có các phép toán khác Tuy nhiên, có thể ép kiểu, coi OID là số nguyên không dấu và dùng các phép toán chuẩn đối với số nguyên không dấu Tuy nhiên, hãy thận trọng nếu thực hiện các phép toán trên, tránh nhầm lẫn
Trang 28Các kiểu OID khác không có phép toán nào khác ngoại trừ những thường trình (routine) xuất/nhập chuyên dụng Những thường trình này có thể nhận và hiển thị các tên tượng trưng của các đối tượng hệ thống, thay cho những giá trị số nguyên mà kiểu OID sử dụng Các kiểu OID thay thế cho phép đơn giản hoá việc tìm kiếm các giá trị OID của các đối tượng, ví dụ có thể viết „mytable‟::regclass để nhận giá trị OID của bảng „mytable‟, không cần thực hiện câu lệnh SQL, SELECT oid FROM pg_class WHERE relname = ‟mytable‟ (Trong thực tế, nhiều lệnh SELECT phức tạp hơn cần được thực hiện để chọn giá trị OID chính xác khi có nhiều bảng có tên mytable trong lược đồ khác nhau)
Bảng: Các kiểu mã định danh đối tượng
Type name References Description Value example Oid Any numeric object identifier 564182
Regproc Pg_proc function name Sum
regprocedure Pg_proc function with argument
types
sum(int4)
Regoper Pg_operator operator name +
regoperator Pg_operator operator with argument
types
*(integer,integer) or (NONE,integer)
-Regclass Pg_class relation name pg_type
Regtype Pg_type type name Integer
Tất cả các kiểu OID thay thế đều chấp nhận các tên đầy đủ (schema-qualified)
và sẽ hiển thị tên schema-qualified này khi không tìm thấy các đối tượng trong đường dẫn tìm kiếm hiện thời Các kiểu OID thay thế như regproc và regoper sẽ chỉ chấp nhận tên nhập duy nhất, không over-loaded, vì vậy sử dụng chúng bi hạn chế; Đối với nhiểu ứng dụng kiêu regprocedure hoặc regoperator sẽ thích hợp hơn Đối với kiểu regoperator đơn nguyên (một toán hạng), cần viết NONE vào chỗ của toán hạng không
sử dụng
OID là một số 32-bit và được gán từ bộ đếm trên phạm vi cluster Trong CSDL lớn hoặc đã tồn tại một thời gian dài, có thể chấp nhận đếm quay vòng tròn Vì thế, không nên giả định các OID là duy nhất, trừ phi chúng ta thực hiện các bước để đảm bảo rằng chúng là duy nhất Nếu sử dụng các OID để định danh các dòng, cần chỉ định ràng buộc duy nhất UNIQUE khi tạo cột của bảng Không bao giờ nên cho rằng các OID là duy nhất trong phạm vi bao trùm nhiều bảng Phải sử dụng sự kết nối của tableoid và OID dòng nếu chúng ta cần mã định danh duy nhất trên diện rộng toàn bộ CSDL (Trong tương lai, PostgreSQL có khả năng sử dụng bộ đếm riêng biệt cho mỗi