Bối cảnh và vấn đề nghiên cứu
Tại tỉnh Quảng Nam, song hành cùng tốc độ tăng trưởng kinh tế là các áp lực và hệ quả về mặt môi trường như tình trạng bão lũ gây ngập úng, ô nhiễm tiếng ồn, cùng yêu cầu cấp thiết về việc duy trì diện tích và số lượng cây xanh đô thị. Theo số liệu khảo sát hiện trạng:
- Tổng diện tích đất cây xanh toàn đô thị Quảng Nam đạt 113 ha, chiếm tỷ lệ 10,8% quỹ đất xây dựng đô thị, tương ứng định mức 12,5 m²/người.
- Diện tích cây xanh tại các khu vực công cộng (công viên, tiểu hoa viên, nghĩa trang) đạt 62,9 ha, tương ứng trên 7 m²/người.
- Diện tích cây xanh trong các khu dân cư, công sở, trường học, bệnh viện và khu công nghiệp đạt 50,1 ha.
- Ngoài ra, địa phương còn có diện tích cây xanh phân bố tại các khu vực bảo tồn sinh thái và vùng đất ngập nước ven sông với nhiều loài cây bản địa.
Mặc dù công tác trồng, chăm sóc và bảo vệ cây xanh đã nhận được sự quan tâm đầu tư, phương thức quản lý thực tế tại địa phương vẫn bộc lộ nhiều điểm hạn chế. Hồ sơ dữ liệu chủ yếu được lưu trữ dưới dạng các tập tin văn bản và bảng tính rời rạc như Microsoft Excel (*.xlsx) hoặc Microsoft Word (*.doc, *.docx). Cách thức quản lý này khiến việc tra cứu, cập nhật và truy xuất thông tin trở nên phức tạp; thiếu tính đồng bộ và chưa thể hiện được dữ liệu không gian, vị trí thực địa của từng cây xanh trên một nền tảng bản đồ trực quan chung.
Nhằm giải quyết bất cập trên, đề tài "Nghiên cứu, tìm hiểu hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL và ứng dụng WebGIS trong quản lý cây xanh đô thị Quảng Nam" được thực hiện với các mục tiêu cụ thể:
- Xây dựng phần mềm dựa trên nền tảng hệ thống thông tin địa lý (GIS) kết hợp hệ quản trị cơ sở dữ liệu PostgreSQL để phục vụ công tác quản lý cây xanh đô thị tại tỉnh Quảng Nam.
- Tìm hiểu, làm chủ các tính năng của hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL.
- Tương tác với cơ sở dữ liệu (thêm, cập nhật, xóa, sửa) thông qua việc tạo lập và lưu trữ dữ liệu không gian, dữ liệu thuộc tính trong một GeoDatabase.
- Lưu trữ có hệ thống các thông tin cây xanh như tên cây, vị trí tọa độ, chiều cao, tình trạng sinh trưởng.
- Phân tích thiết kế hệ thống và xây dựng công cụ phần mềm quản lý cây xanh đô thị hoàn chỉnh.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống thông tin địa lý (GIS), hệ quản trị cơ sở dữ liệu PostgreSQL và cây xanh đô thị tại tỉnh Quảng Nam.
- Phạm vi nghiên cứu: Tập trung nghiên cứu hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL và ứng dụng công nghệ WebGIS trong việc quản lý cây xanh đô thị trên địa bàn tỉnh Quảng Nam.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên các khối kiến thức lý thuyết chuyên ngành về phần mềm mã nguồn mở, hệ quản trị cơ sở dữ liệu quan hệ hướng đối tượng và công nghệ thông tin địa lý phân tán:
- Phần mềm mã nguồn mở và Giấy phép GNU GPL: Khái niệm mã nguồn mở (Open Source), quyền tự do tái phân phối, tiếp cận mã nguồn, tính toàn vẹn phần mềm và cơ chế cấp phép Giấy phép Công cộng GNU (GNU General Public Licence - GPL) với đặc tính "Virus Effect".
- Hệ quản trị cơ sở dữ liệu PostgreSQL: Cấu trúc và tính năng của hệ quản trị cơ sở dữ liệu quan hệ hướng đối tượng với hơn 15 năm phát triển; hỗ trợ kiểm soát truy cập đồng thời nhiều phiên bản (MVCC), ghi nhật ký trước (Write-Ahead Logging), khôi phục dữ liệu theo thời điểm (Point-in-Time Recovery), quản lý không gian bảng (Tablespaces), hỗ trợ chuẩn dữ liệu SQL:2008 và các kiểu dữ liệu hình học (Geometry) thông qua module mở rộng PostGIS.
- Công nghệ WebGIS: Kiến trúc Client-Server phân tán trên môi trường Internet; nguyên lý tiếp nhận yêu cầu từ máy khách (Web Client), phân tích dữ liệu qua Web Server, điều hướng truy vấn dữ liệu địa lý qua Map Server và trả về kết quả hiển thị trên trình duyệt thông qua giao thức TCP/IP.
Phương pháp nghiên cứu:
- Phương pháp trực quan: Quan sát, kiểm tra và biểu diễn thông tin thuộc tính kết hợp thông tin không gian trên nền bản đồ số.
- Phương pháp nghiên cứu thực nghiệm: Tiến hành cài đặt, cấu hình hệ quản trị PostgreSQL 12.3, công cụ pgAdmin 4; thiết lập mô hình đối tượng (Model) trong Django; lập trình xây dựng các mô-đun chức năng và kiểm thử trên dữ liệu thực tế.
- Phương pháp so sánh, tổng hợp: Thu thập, phân tích tài liệu kỹ thuật từ Internet về công nghệ mã nguồn mở, các dòng lệnh quản lý mã nguồn Git, đánh giá ưu nhược điểm giữa PostgreSQL và MySQL.
- Phương pháp chuyên gia: Tham vấn ý kiến chuyên môn từ giảng viên hướng dẫn để định hình cấu trúc đề tài và giải quyết các vướng mắc kỹ thuật trong quá trình xây dựng hệ thống.
Nguồn dữ liệu:
Số liệu thống kê diện tích, phân loại không gian xanh đô thị tỉnh Quảng Nam; tài liệu đặc tả chuẩn kỹ thuật của PostgreSQL, framework Python Django, công cụ Visual Studio Code và hệ thống quản lý phiên bản Git/GitHub.
Thiết kế và triển khai hệ thống
Hệ thống quản lý cây xanh đô thị được xây dựng theo kiến trúc phân tầng WebGIS Client-Server:
- Kiến trúc vận hành: Trình duyệt Web phía Client gửi yêu cầu thao tác; Web Server tiếp nhận, phân tích yêu cầu; nếu yêu cầu liên quan đến bản đồ và dữ liệu địa lý, Web Server chuyển tiếp đến Map Server và hệ quản trị PostgreSQL/PostGIS để truy xuất bảng dữ liệu không gian, sau đó kết xuất kết quả về giao diện người dùng.
- Công nghệ phát triển:
- Ngôn ngữ lập trình: Python.
- Framework: Django (sử dụng ORM Django Model để ánh xạ cấu trúc bảng dữ liệu, đồng bộ cơ sở dữ liệu bằng các lệnh
makemigrations và migrate).
- Hệ quản trị cơ sở dữ liệu: PostgreSQL 12.3 (tên database:
QLCay), công cụ quản trị giao diện pgAdmin 4, cổng dịch vụ 5432, tích hợp PostGIS để lưu trữ và truy vấn đối tượng hình học (*.shp).
- Công cụ lập trình và quản lý mã nguồn: Visual Studio Code, Git và dịch vụ lưu trữ GitHub.
- Công cụ phân tích mô hình hóa: Rational Rose (môi trường J2EE).
- Yêu cầu môi trường hệ thống:
- Hệ điều hành: Windows 10 (tương thích đa nền tảng Linux, UNIX).
- Phần cứng: RAM tối thiểu 128 MB (cấu hình cài đặt PostgreSQL) / 2 GB (vận hành hệ thống), dung lượng đĩa cứng trống tối thiểu 475 MB.
- Thiết kế cơ sở dữ liệu: Hệ thống thiết kế cơ sở dữ liệu
QLCay gồm 9 bảng dữ liệu:
Bảng Nhân viên
Bảng Người quản lý
Bảng Ranh giới (ranh_gioi)
Bảng Loại cây
Bảng Đường giao thông
Bảng Cây xanh
Bảng Tình trạng cây
Bảng Chăm sóc cây
Bảng Thư viện
| Giới hạn kỹ thuật của PostgreSQL |
Giá trị quy định |
| Dung lượng tối đa của cơ sở dữ liệu |
Không giới hạn |
| Dung lượng bảng tối đa |
32 TB |
| Dung lượng tối đa của cột |
1,6 TB |
| Dung lượng tối đa của trường dữ liệu |
1 GB |
| Số hàng tối đa mỗi bảng |
Không giới hạn |
| Số cột tối đa của mỗi bảng |
250 – 1600 (tùy thuộc loại cột) |
| Chỉ số (Index) tối đa mỗi bảng |
Không giới hạn |
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Nội dung chương 1 hệ thống hóa toàn bộ các nền tảng lý thuyết và công nghệ sử dụng trong đề tài:
- Trình bày tổng quan về mã nguồn mở, định nghĩa theo tiêu chuẩn quốc tế và phân tích nội dung Giấy phép Công cộng GNU (GPL). Nêu bật các lợi ích về chi phí, tính độc lập công nghệ, bảo mật và khả năng tùy biến của phần mềm nguồn mở.
- Phân tích chi tiết hệ quản trị cơ sở dữ liệu PostgreSQL: khái niệm, các tính năng nổi bật (hướng đối tượng, hỗ trợ kiểm soát đa phiên bản MVCC, giao dịch lồng nhau Savepoints, lưu trữ kiểu dữ liệu nhị phân lớn, kiểu dữ liệu hình học geometry), các công cụ quản trị (dòng lệnh
psql, giao diện đồ họa pgAdmin 4, module không gian PostGIS). Đánh giá ưu điểm về khả năng chịu lỗi nhờ cơ chế ghi nhật ký trước (Write-Ahead Logging), khả năng xử lý trên 4 Terabyte dữ liệu và phân tích nhược điểm về hiệu suất tốc độ so với MySQL.
- Hướng dẫn chi tiết quy trình cài đặt PostgreSQL 12.3 trên môi trường Windows x86-64, cấu hình mật khẩu người dùng
postgres, mở cổng 5432, cài đặt tiện ích Stack Builder và tạo cơ sở dữ liệu QLCay qua pgAdmin 4.
- Trình bày phương pháp kết nối Python Django với PostgreSQL thông qua tệp cấu hình
settings.py và quy trình tạo bảng dữ liệu ranh_gioi trong models.py bằng các lệnh makemigrations và migrate.
- Khái quát nguyên lý vận hành của WebGIS trong mô hình Client-Server. Giới thiệu môi trường phát triển Visual Studio Code (tính năng IntelliSense, gỡ lỗi, hỗ trợ đa nền tảng) và công cụ quản lý mã nguồn phân tán Git/GitHub kèm bảng tổng hợp 28 câu lệnh thao tác Git cơ bản.
Chương 2: Phân tích và thiết kế hệ thống quản lý cây xanh
Chương 2 tập trung vào quy trình phân tích nghiệp vụ và thiết kế chi tiết kiến trúc phần mềm:
- Khảo sát hiện trạng cây xanh đô thị Quảng Nam (tổng diện tích 113 ha; 62,9 ha khu công cộng; 50,1 ha khu chức năng khác).
- Xác định yêu cầu phi chức năng (bộ nhớ 2 GB, Windows 10, công cụ Rational Rose) và phân rã các yêu cầu chức năng theo mô hình Ri gồm 9 nhóm:
- R1: Đăng nhập (nhập user/password, xác thực người quản lý).
- R2: Quản lý nhân viên (thêm, sửa, xóa, lưu trữ hồ sơ nhân viên).
- R3: Quản lý dữ liệu (quản lý và cập nhật thông tin cây, ranh giới, đường giao thông).
- R4: Chăm sóc cây xanh (lập lịch, thêm, sửa, xóa lịch chăm sóc, xuất file Excel).
- R5: Thống kê (thống kê cây theo loại, tình trạng, tên cây, tháng trồng, tên đường; xuất file Excel).
- R6: Tương tác bản đồ (hiển thị lớp bản đồ, di chuyển, phóng to/thu nhỏ, tìm kiếm mã số, hiển thị thông tin thuộc tính, in bản đồ, xuất danh sách cây).
- R7: Quản lý tài khoản (thêm mới, chỉnh sửa thông tin tài khoản người dùng).
- R8: Thiết lập (quản lý danh mục tin hoạt động và liên kết website).
- R9: Đổi mật khẩu (cập nhật mật khẩu quản trị).
- Xác định 2 tác nhân chính (Actor):
Người quản lý (toàn quyền quản trị, điều hành, tra cứu, thống kê) và Nhân viên (nộp hồ sơ, tiếp nhận công việc).
- Xây dựng các biểu đồ ca sử dụng (Use Case Diagram): Biểu đồ Use Case tổng quát, Use Case Đăng nhập, Use Case Chăm sóc cây (với các luồng mở rộng Thêm, Sửa, Xóa lịch chăm sóc), Use Case Thống kê (bao gồm các luồng thống kê theo loại cây, tình trạng, tên đường, tháng trồng, tên cây), Use Case Thiết lập (quản lý tin hoạt động và liên kết website).
- Xây dựng mô hình hóa hành vi hệ thống thông qua hệ thống biểu đồ tuần tự (Sequence Diagram) và biểu đồ hoạt động (Activity Diagram) cho từng tác vụ: Đăng nhập, Chăm sóc cây, Thống kê, Quản lý tin hoạt động, Quản lý liên kết website.
- Thiết lập sơ đồ mối quan hệ giữa các lớp (Class Diagram) và mô hình hóa chi tiết 9 bảng trong cơ sở dữ liệu quan hệ.
Chương 3: Triển khai demo chương trình
Chương 3 trình bày các kết quả hiện thực hóa giao diện và chức năng của phần mềm trên thực tế:
- Giao diện cơ sở dữ liệu trên pgAdmin 4: Minh họa giao diện quản trị cơ sở dữ liệu
QLCay, bảng dữ liệu không gian ranh_gioi, bảng Chăm sóc cây và bảng Thư viện.
- Giao diện các phân hệ chức năng:
- Phân hệ xác thực: Giao diện đăng nhập hệ thống, giao diện trang quản trị trung tâm và chức năng đăng xuất an toàn.
- Phân hệ quản lý chăm sóc cây: Màn hình danh sách lịch chăm sóc cây; biểu mẫu thêm mới lịch chăm sóc (với các trường bắt buộc: họ tên nhân viên, ngày chăm sóc, đường có cây cần chăm sóc, công việc cần chăm sóc); màn hình chỉnh sửa thông tin; cửa sổ popup xác nhận xóa lịch; chức năng xuất danh sách chăm sóc ra file Excel.
- Phân hệ thống kê báo cáo: Giao diện lọc dữ liệu thống kê cây xanh đa tiêu chí và tính năng kết xuất báo cáo thống kê ra tệp tin Excel (
Thống-kê.xlsx).
- Phân hệ quản lý thiết lập: Giao diện danh sách tin hoạt động (thêm tin, tải ảnh hoạt động, chỉnh sửa, xóa tin); giao diện quản lý liên kết website (thêm mới, cập nhật URL, xóa liên kết).
- Phân hệ bản đồ WebGIS: Tích hợp bản đồ trực quan, cho phép bật tắt các lớp đối tượng, tương tác di chuyển, phóng to, thu nhỏ và tra cứu nhanh vị trí cùng thông tin thuộc tính cây xanh.
Kết quả và đóng góp
Khóa luận đạt được các kết quả kỹ thuật và đóng góp thực tiễn cụ thể:
- Kết quả đạt được:
- Xây dựng hoàn chỉnh cơ sở dữ liệu
QLCay trên nền hệ quản trị mã nguồn mở PostgreSQL 12.3 tích hợp PostGIS, lưu trữ đồng bộ 9 bảng dữ liệu phục vụ quản lý cây xanh đô thị.
- Thiết lập thành công kết nối giữa framework Python Django và PostgreSQL, ứng dụng cơ chế ORM Model để tự động hóa quá trình di trú và quản lý lược đồ dữ liệu.
- Phát triển ứng dụng WebGIS đáp ứng 9 nhóm yêu cầu chức năng (R1 đến R9), cho phép hiển thị trực quan dữ liệu không gian của cây xanh trên bản đồ, hỗ trợ các thao tác nghiệp vụ như lập lịch chăm sóc, lọc thống kê đa tiêu chí và xuất dữ liệu ra file Excel.
- Đóng góp của đề tài:
- Khai thác hiệu quả hệ sinh thái phần mềm mã nguồn mở (PostgreSQL, Django, WebGIS, Git/GitHub), giúp giảm thiểu chi phí đầu tư bản quyền phần mềm cho cơ quan quản lý nhà nước.
- Thay thế phương thức quản lý thủ công truyền thống (sử dụng sổ sách, tệp tin Word và Excel rời rạc) bằng một hệ thống số hóa tập trung, liên kết chặt chẽ giữa thông tin thuộc tính và vị trí địa lý.
- Cung cấp công cụ hỗ trợ các nhà quản lý đô thị tại Quảng Nam theo dõi toàn cảnh hiện trạng cây xanh, tối ưu hóa công tác lập kế hoạch chăm sóc và nâng cao hiệu quả quy hoạch cảnh quan đô thị.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Hệ thống mới dừng lại ở quy mô thử nghiệm (demo) với các tập dữ liệu mẫu.
- Các công cụ phân tích không gian trên nền WebGIS còn ở mức cơ bản (chủ yếu tập trung vào hiển thị lớp bản đồ, phóng to, thu nhỏ và tra cứu thuộc tính), chưa tích hợp các thuật toán phân tích mạng lưới hay mô phỏng phức tạp.
- Hiệu suất xử lý không gian khi mở rộng quy mô dữ liệu toàn tỉnh chưa được đánh giá chuyên sâu.
- Hướng nghiên cứu và phát triển tiếp:
- Nâng cấp và tích hợp các công cụ phân tích không gian chuyên sâu trên WebGIS (như phân tích mật độ che phủ, tính toán bán kính phục vụ công viên cây xanh, cảnh báo nguy cơ cây ngã đổ trong mùa mưa bão).
- Mở rộng quy mô thu thập, chuẩn hóa và số hóa toàn bộ dữ liệu cây xanh trên địa bàn các huyện, thị xã, thành phố thuộc tỉnh Quảng Nam.
- Xây dựng ứng dụng di động (Mobile App) tích hợp hệ thống định vị toàn cầu (GPS) để hỗ trợ nhân viên cập nhật thông tin tình trạng cây trực tiếp từ hiện trường.
- Tối ưu hóa tính năng bảo mật, phân quyền chi tiết cho nhiều cấp quản lý và nâng cao hiệu năng truy vấn dữ liệu lớn.
Giá trị tham khảo
Đề tài là tài liệu tham khảo hữu ích cho:
- Sinh viên và học viên: Các ngành Hệ thống thông tin địa lý (GIS), Công nghệ thông tin, Quản lý đô thị, Khoa học môi trường; đặc biệt là những người thực hiện đề tài về xây dựng ứng dụng WebGIS, lập trình Python Django kết hợp cơ sở dữ liệu PostgreSQL/PostGIS.
- Phần nội dung có giá trị tham khảo cao:
- Tài liệu phân tích và thiết kế hệ thống hướng đối tượng: Hệ thống biểu đồ Use Case, biểu đồ tuần tự, biểu đồ hoạt động và sơ đồ lớp cho bài toán quản lý hạ tầng đô thị.
- Quy trình kỹ thuật kết nối Django với PostgreSQL qua ORM Model, tạo migration và tổ chức 9 bảng dữ liệu quan hệ/không gian.
- Cán bộ quản lý đô thị và môi trường: Tham khảo cấu trúc cơ sở dữ liệu và mô hình phân rã chức năng để ứng dụng vào công tác số hóa quản lý cây xanh tại các địa phương khác.
Câu hỏi thường gặp
1. Hiện trạng cây xanh đô thị tại tỉnh Quảng Nam được ghi nhận trong khóa luận như thế nào?
Theo số liệu khảo sát trong văn bản, tổng diện tích cây xanh toàn đô thị là 113 ha (chiếm 10,8% đất xây dựng đô thị, đạt 12,5 m²/người). Trong đó, đất cây xanh khu công cộng (công viên, tiểu hoa viên, nghĩa trang) là 62,9 ha (trên 7 m²/người); đất cây xanh khu dân cư, công sở, trường học, bệnh viện, khu công nghiệp là 50,1 ha; cùng diện tích cây bản địa tại các khu bảo tồn sinh thái và vùng ngập nước ven sông.
2. Cơ sở dữ liệu của hệ thống có tên là gì và bao gồm những bảng dữ liệu nào?
Cơ sở dữ liệu của hệ thống được đặt tên là QLCay, chạy trên PostgreSQL 12.3 và pgAdmin 4. Cơ sở dữ liệu gồm 9 bảng: Bảng Nhân viên, Bảng Người quản lý, Bảng Ranh giới (ranh_gioi), Bảng Loại cây, Bảng Đường giao thông, Bảng Cây xanh, Bảng Tình trạng cây, Bảng Chăm sóc cây, và Bảng Thư viện.
3. Quy trình kết nối và tạo bảng cơ sở dữ liệu giữa Python Django và PostgreSQL được thực hiện như thế nào?
Nhà phát triển thiết lập các thông số kết nối (NAME, USER, PASSWORD, HOST, PORT 5432) trong tệp settings.py. Sau đó, thiết kế cấu trúc bảng thông qua các class trong tệp models.py (ví dụ class ranh_gioi). Cuối cùng, thực thi lệnh makemigrations trong terminal để tạo tệp ghi nhận lịch sử thay đổi cấu trúc và chạy lệnh migrate để lưu bảng vào cơ sở dữ liệu PostgreSQL.
4. Hệ thống WebGIS cung cấp những tiêu chí thống kê nào và hỗ trợ xuất dữ liệu ra định dạng gì?
Hệ thống hỗ trợ 5 tiêu chí thống kê gồm: thống kê theo loại cây, theo tình trạng cây, theo tên cây, theo tháng trồng và theo tên đường. Kết quả thống kê và danh sách lịch chăm sóc cây xanh có thể kết xuất trực tiếp ra tệp tin định dạng Microsoft Excel (Thống-kê.xlsx).
5. Hệ thống xác định những tác nhân nào và bao gồm những nhóm chức năng chính nào theo mô hình phân tích?
Hệ thống xác định 2 tác nhân (Actor) là Người quản lý và Nhân viên. Các yêu cầu chức năng được phân rã thành 9 nhóm theo mô hình Ri: R1 (Đăng nhập), R2 (Quản lý nhân viên), R3 (Quản lý dữ liệu), R4 (Chăm sóc cây xanh), R5 (Thống kê), R6 (Tương tác bản đồ), R7 (Quản lý tài khoản), R8 (Thiết lập tin hoạt động và liên kết website), và R9 (Đổi mật khẩu).
Kết luận
Khóa luận đã nghiên cứu và ứng dụng thành công hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL/PostGIS kết hợp framework Python Django để xây dựng hệ thống WebGIS quản lý cây xanh đô thị tỉnh Quảng Nam. Đề tài giải quyết hiệu quả các bất cập của phương thức quản lý thủ công truyền thống bằng việc số hóa, tích hợp đồng bộ dữ liệu thuộc tính và dữ liệu không gian trên nền bản đồ số. Kết quả nghiên cứu cung cấp một giải pháp công nghệ tiết kiệm chi phí bản quyền, hỗ trợ đắc lực cho công tác quản trị, theo dõi lịch chăm sóc cây và phục vụ quy hoạch cảnh quan đô thị bền vững.