1. Trang chủ
  2. » Luận Văn - Báo Cáo

HỆ THỐNG QUẢN LÝ CÂY XANH SỬ DỤNG WEB GIS VÀ CSDL POSTGRESQL - Full 10 điểm

89 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Quản Lý Cây Xanh Sử Dụng Web Gis Và CSDL PostgreSQL
Trường học Trường Đại Học
Chuyên ngành Quản Lý Cây Xanh
Thể loại Đồ Án Tốt Nghiệp
Định dạng
Số trang 89
Dung lượng 3,36 MB

Cấu trúc

  • Phần 1. MỞ ĐẦU (8)
    • 1.1. Lý do chọn đề tài (8)
    • 1.2. Mục tiêu của đề tài (9)
    • 1.3. Đối tượng và phạm vi nghiên cứu (9)
      • 1.3.1. Đối tượng nghiên cứu (9)
      • 1.3.2. Phạm vi nghiên cứu (9)
    • 1.4. Phương pháp nghiên cứu (9)
    • 1.5. Lịch sử nghiên cứu (10)
    • 1.6. Đóng góp của đề tài (10)
    • 1.7. Cấu trúc của đề tài (10)
  • Phần 2. NỘI DUNG NGHIÊN CỨU (11)
  • Chương 1: CƠ SỞ LÝ THUYẾT (11)
    • 1.1. Giới thiệu mã nguồn mở (11)
      • 1.1.1. Khái niệm mã nguồn mở (11)
      • 1.1.2. Lợi ích của mã nguồn mở (14)
      • 1.1.3. Ứng dụng của mã nguồn mở hiện nay (15)
    • 1.2. Giới thiệu về sơ lược về PostgreSQL (16)
      • 1.2.1. PostgreSQL là gì? (16)
      • 1.2.2. Ưu điểm và nhược điểm của PostgreSQL (18)
    • 1.3. Cấu hình máy và cài đặt PostgreSQL (19)
      • 1.3.1. Cấu hình máy và phầm mềm yêu cầu (19)
      • 1.3.2. Cài đặt PostgreSQL (20)
    • 1.4. Dùng Model tạo Bảng Database trong Python Django (26)
      • 1.4.1. Kết nối Django và Postgresql (26)
      • 1.4.2. Tạo bảng database với Model (27)
    • 1.5. Tổng quan về WebGIS (28)
      • 1.5.1. Khái niệm WebGIS (28)
      • 1.5.2. Nguyên lý hoạt động của WebGIS (29)
    • 1.6. Công cụ hỗ trợ phát triển hệ thống (30)
      • 1.6.1. Visual Studio Code là gì? (30)
      • 1.6.2. Một số tính năng quan trọng của Visual Studio Code (30)
      • 1.6.3. Tổng quan về GitHub (32)
  • Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (37)
    • 2.1. Mô tả hệ thống (37)
      • 2.1.1. Khảo sát hiện trạng (37)
      • 2.1.2. Môi trường hệ thống (37)
    • 2.2. Phân tích yêu cầu (38)
      • 2.2.1. Yêu cầu về chức năng (38)
      • 2.2.2. Yêu cầu phi chức năng (40)
    • 2.3. Mô hình Ri (40)
    • 2.4. Đặc tính từng người dùng (43)
      • 2.4.1. Người quản lý (43)
      • 2.4.2. Nhân viên (44)
    • 2.5. Phân tích thiết kế hệ thống (44)
      • 2.5.1. Xác định Actor và vai trò của Actor (44)
      • 2.5.2. Sơ đồ Use Case (UC) (44)
        • 2.5.2.1. UC_Đăng nhập (45)
        • 2.5.2.2. UC_Chăm sóc cây (46)
        • 2.5.2.3. UC_Thống kê (48)
        • 2.5.2.4. UC_Thiết lập (49)
      • 2.5.3. Sơ đồ UC tổng quát hệ thống quản lý cây canh (53)
      • 2.5.4. Sơ đồ lớp (class) (54)
        • 2.5.4.1. Xác định các Lớp (54)
        • 2.5.4.2. Sơ đồ lớp (55)
        • 2.5.4.4. Sơ đồ mối quan hệ giữa các class (57)
      • 2.5.5. Mô hình hóa hành vi của hệ thống (58)
        • 2.5.5.1. Biểu đồ tuần tự (58)
        • 2.5.5.2. Biểu đồ hoạt động (66)
    • 2.6. Thiết kế cơ sở dữ liệu (69)
      • 2.6.1. Bảng Nhân viên (69)
      • 2.6.2. Bảng Người quản lý (70)
      • 2.6.3. Bảng Ranh giới (71)
      • 2.6.4. Bảng Loại cây (71)
      • 2.6.5. Bảng Đường giao thông (72)
      • 2.6.6. Bảng Cây xanh (73)
      • 2.6.7. Bảng Tình trạng cây (74)
      • 2.6.8. Bảng Chăm sóc cây (74)
      • 2.6.9. Bảng Thư viện (75)
  • Chương 3: TRIỂN KHAI DEMO CHƯƠNG TRÌNH (76)
    • 3.1. Giao diện cơ sở dữ liệu (76)
      • 3.1.1. Giao diện database QLCay (76)
      • 3.1.1. Giao diện bảng cơ sở dữ liệu Chăm sóc cây (76)
      • 3.1.1. Giao diện bảng cơ sở dữ liệu Thư viện (77)
    • 3.2. Giao diện hệ thống (77)
      • 3.2.1. Giao diện đăng nhập (77)
      • 3.2.2. Giao diện trang quản trị (78)
      • 3.2.3. Giao diện đăng xuất (78)
      • 3.2.4. Giao diện chăm sóc cây (79)
        • 3.2.4.1. Giao diện thêm lịch chăm sóc cây (79)
        • 3.2.4.2. Giao diện chỉnh sửa lịch chăm sóc cây (80)
        • 3.2.4.3. Giao diện xóa lịch chăm sóc cây (80)
      • 3.2.5. Giao diện thống kê (81)
      • 3.2.6. Giao diện thiết lập (82)
        • 3.2.6.1. Giao diện quản lý tin hoạt động (82)
        • 3.2.6.2. Giao diện quản lý liên kết website (84)
  • Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ (86)
    • 3.1. Kết luận (86)
      • 3.1.1. Những vấn đề đạt được (86)
      • 3.1.2. Những vấn đề hạn chế (86)
      • 3.1.3. Hướng phát triển của đề tài (86)
    • 3.2. Kiến nghị (87)
  • Phần 4. TÀI LIỆU THAM KHẢO (88)

Nội dung

1 MỤC LỤC Phần 1 MỞ ĐẦU 8 1 1 Lý do chọn đề tài 8 1 2 Mục tiêu của đề tài 9 1 3 Đối tượng và phạm vi nghiên cứu 9 1 3 1 Đối tượng nghiên cứu: 9 1 3 2 Phạm vi nghiên cứu: 9 1 4 Phương pháp nghiên cứu 9 1 5 Lịch sử nghiên cứu 10 1 6 Đóng góp của đề tài 10 1 7 Cấu trúc của đề tài 10 Phần 2 NỘI DUNG NGHIÊN CỨU 11 Chương 1: CƠ SỞ LÝ THUYẾT 11 1 1 Giới thiệu mã nguồn mở 11 1 1 1 Khái niệm mã nguồn mở 11 1 1 2 Lợi ích của mã nguồn mở 14 1 1 3 Ứng dụng của mã nguồn mở hiện nay 15 1 2 Giới thiệu về sơ lược về PostgreSQL 16 1 2 1 PostgreSQL là gì? 16 1 2 2 Ưu điểm và nhược điểm của PostgreSQL 18 1 3 Cấu hình máy và cài đặt PostgreSQL 19 1 3 1 Cấu hình máy và phầm mềm yêu cầu 19 1 3 2 Cài đặt PostgreSQL 20 1 4 Dùng Model tạo Bảng Database trong Python Django 26 1 4 1 Kết nối Django và Postgresql 26 1 4 2 Tạo bảng database với Model 27 1 5 Tổng quan về WebGIS 28 1 5 1 Khái niệm WebGIS 28 1 5 2 Nguyên lý hoạt động của WebGIS 29 1 6 Công cụ hỗ trợ phát triển hệ thống 30 1 6 1 Visual Studio Code là gì? 30 2 1 6 2 Một số tính năng quan trọng của Visual Studio Code 30 1 6 3 Tổng quan về GitHub 32 Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 37 QUẢN LÝ CÂY XANH 37 2 1 Mô tả hệ thống 37 2 1 1 Khảo sát hiện trạng 37 2 1 2 Môi trường hệ thống 37 2 2 Phân tích yêu cầu 38 2 2 1 Yêu cầu về chức năng 38 2 2 2 Yêu cầu phi chức năng 40 2 3 Mô hình Ri 40 2 4 Đặc tính từng người dùng 43 2 4 1 Người quản lý 43 2 4 2 Nhân viên 44 2 5 Phân tích thiết kế hệ thống 44 2 5 1 Xác định Actor và vai trò của Actor 44 2 5 2 Sơ đồ Use Case (UC) 44 2 5 2 1 UC_Đăng nhập 45 2 5 2 2 UC_Chăm sóc cây 46 2 5 2 3 UC_Thống kê 48 2 5 2 4 UC_Thiết lập 49 2 5 3 Sơ đồ UC tổng quát hệ thống quản lý cây canh 53 2 5 4 Sơ đồ lớp (class) 54 2 5 4 1 Xác định các Lớp 54 2 5 4 2 Sơ đồ lớp 55 2 5 4 4 Sơ đồ mối quan hệ giữa các class 57 2 5 5 Mô hình hóa hành vi của hệ thống 58 2 5 5 1 Biểu đồ tuần tự 58 2 5 5 2 Biểu đồ hoạt động 66 2 6 Thiết kế cơ sở dữ liệu 69 2 6 1 Bảng Nhân viên 69 2 6 2 Bảng Người quản lý 70 3 2 6 3 Bảng Ranh giới 71 2 6 4 Bảng Loại cây 71 2 6 5 Bảng Đường giao thông 72 2 6 6 Bảng Cây xanh 73 2 6 7 Bảng Tình trạng cây 74 2 6 8 Bảng Chăm sóc cây 74 2 6 9 Bảng Thư viện 75 Chương 3: TRIỂN KHAI DEMO CHƯƠNG TRÌNH 76 3 1 Giao diện cơ sở dữ liệu 76 3 1 1 Giao diện database QLCay 76 3 1 1 Giao diện bảng cơ sở dữ liệu Chăm sóc cây 76 3 1 1 Giao diện bảng cơ sở dữ liệu Thư viện 77 3 2 Giao diện hệ thống 77 3 2 1 Giao diện đăng nhập 77 3 2 2 Giao diện trang quản trị 78 3 2 3 Giao diện đăng xuất 78 3 2 4 Giao diện chăm sóc cây 79 3 2 4 1 Giao diện thêm lịch chăm sóc cây 79 3 2 4 2 Giao diện chỉnh sửa lịch chăm sóc cây 80 3 2 4 3 Giao diện xóa lịch chăm sóc cây 80 3 2 5 Giao diện thống kê 81 3 2 6 Giao diện thiết lập 82 3 2 6 1 Giao diện quản lý tin hoạt động 82 3 2 6 2 Giao diện quản lý liên kế t website 84 Phần 3 KẾT LUẬN VÀ KIẾN NGHỊ 86 3 1 Kết luận 86 3 1 1 Những vấn đề đạt được 86 3 1 2 Những vấn đề hạn chế 86 3 1 3 Hướng phát triển của đề tài 86 3 2 Kiến nghị 87 Phần 4 TÀI LIỆU THAM KHẢO 88 4 DANH MỤC BẢNG BIỂU Bảng 1 Thông ti n giới hạn khả năng của PostgreSQL 17 Bảng 2 Một số lệnh trên Git 36 Bảng 3 Xác định các lớp 54 Bảng 4 Bảng Nhân viên 69 Bảng 5 Bảng Người quản lý 70 Bảng 6 Bảng Ranh giới 71 Bảng 7 Bảng Loại cây 71 Bảng 8 Bảng Đường giao thông 72 Bảng 9 Bảng Cây xanh 73 Bảng 10 Bảng Tình trạng cây 74 Bảng 11 Bảng Chăm sóc cây 74 Bảng 12 Bảng Thư viện 75 5 DANH MỤC HÌNH ẢNH Hình 1 1 Giao diện nhập Passwork của PostgreSql 24 Hình 1 2 Giao diện t rang chủ pgAdmin 25 Hình 1 3 Tạo cơ sở dữ liệu 25 Hình 1 4 Giao diện bảng ranh_gioi trên pgAdmin 28 Hình 1 5 Nguyên lý hoạt động của WebGIS 29 Hình 1 6 Mô hình tổ chức dữ liệu phân tán trên Git 32 Hình 2 1 Biểu đồ Use Case Đăng nhập 46 Hình 2 2 Biểu đồ Use Case Chăm sóc cây 48 Hình 2 3 Biểu đồ Use Case Thống kê 49 Hình 2 4 Biểu đồ Use Case quản lý thiết lập 50 Hình 2 5 Biểu đồ Use Case quản lý tin hoạt động 51 Hình 2 6 Biểu đồ Use Case quản liên k ế t website 53 Hình 2 7 Biểu đồ Use Case tổng quát hệ thống quản lý cây xanh 53 Hình 2 8 L ớ p ngư ờ i qu ả n lý 55 Hình 2 9 Lớp nhân viên 55 Hình 2 10 Lớp ranh giới 55 Hình 2 11 Lớp đường giao thông 55 Hình 2 12 Lớp cây xanh 56 Hình 2 13 Lớp loại cây 56 Hình 2 14 Lớp tình trạng 56 Hình 2 15 Lớp chăm sóc cây 56 Hình 2 16 Lớp thư viện 57 Hình 2 17 Sơ đồ mối quan hệ giữa các class 57 Hình 2 18 Biểu đồ tuần tự Đăng nhập 58 Hình 2 19 Biểu đồ tuần tự Chăm sóc cây 59 Hình 2 20 Biểu đồ tuần tự Thống kê 61 Hình 2 21 Biểu đồ tuần tự Quản lý tin hoạt động 62 Hình 2 22 Biểu đồ tuần tự Quản lý liên kết website 64 Hình 2 2 3 Biểu đồ hoạt động Đăng nhập 66 Hình 2 24 Biểu đồ hoạt động Chăm sóc cây 66 Hình 2 25 Biểu đồ hoạt động Thống kê 67 6 Hình 2 26 Biểu đồ hoạt động Quản lý tin hoạt động 68 Hình 2 27 Biểu đồ hoạt động Quản lý tin hoạt động 69 Hình 3 1 Giao diện database QLCay 76 Hình 3 2 Giao diện bảng cơ sở dữ liệu Chăm sóc cây 76 Hình 3 3 Giao diện bảng cơ sở dữ liệu Thư viện 77 Hình 3 4 Giao diện đăng nhập 77 Hình 3 5 Giao diện tran g quản trị 78 Hình 3 6 Giao diện đăng xuất 78 Hình 3 7 Giao diện list danh sách chăm sóc cây 79 Hình 3 8 Giao diện thêm lịch chăm sóc cây 79 Hình 3 9 Giao diện chỉnh sửa chăm sóc cây 80 Hình 3 10 Giao diện popup xóa lịch chăm sóc cây 80 Hình 3 11 Giao diện Thống kê cây xanh 81 Hình 3 12 Giao diện xuất file Excel Thống - kê xls 81 Hình 3 13 Giao diện list danh sách tin hoạt động 82 Hình 3 14 Giao diện thêm tin hoạt động 82 Hình 3 15 Giao diện chỉnh sửa tin hoạt động 83 Hình 3 16 Giao diện popup xóa tin hoạt động 83 Hình 3 17 Giao diện quản lý liên kết website 84 Hình 3 18 Giao diện thêm liên kết website 84 Hình 3 19 Giao diện chỉnh sửa liên kết website 85 Hình 3 20 Giao diện popup xóa liên kết website 85 7 DANH MỤC TỪ VIẾT TẮT STT Chữ viết tắt Chú thích 1 CSDL Cơ sở dữ liệu 2 GIS Ge ographic Information System (Hệ thống thông tin địa lý) 3 UC Use Case (ca sử dụng) 4 GPL GNU General Public Licence (Giấy phép Công cộng GNU) 5 SQL Structured Query Language, nghĩa là ngôn ngữ truy vấn dữ liệu 6 DBMS Database Management System là phần mềm giúp quản lý cơ sở dữ liệ u 8 NỘI DUNG ĐỀ TÀI Phần 1 MỞ ĐẦU 1 1 Lý do chọn đề tài Tỉnh Quảng Nam hiện nay, cùng với sự phát triển mạnh mẽ về mặt kinh tế trong những năm qua là những hệ quả về mặt môi trường như bão lũ gâ y ngập ú ng, ô nhiễm tiếng ồn, diện tích, số lượng cây xanh không được đảm bảo, do đó vấn đề quản lý cây xanh đô thị của tỉnh Quảng Nam đang dần trở nên cấp thiết Trong những năm qua, công tác trồng, chăm sóc cũng như bảo vệ cây xanh khu vực tỉnh Quảng Nam đã được các cấp, các ngàn h quan tâm và đầu tư Tuy nhiên, việc lưu trữ, tra cứu, tìm nguồn thông tin liên quan đến cây xanh khi cần thiết vô cùng khó khăn và phức tạp vì các file này thường ở dạng excel (* xlx, * xlxs) hoặc file word (* doc, *docx) Các thông tin bản đồ dùng để mô tả, hiển thị vị trí của các cây cũng như số liệu kiểm tra, cập nhật, bổ sung số liệu, đồng thời các dữ liệu thông tin địa lý (không gian, thuộc tính, ) và công tác quản lý cây xanh đô thị trên địa bàn tỉnh chưa được thể hiện trực quan trên một hệ thống bản đồ chung để người quản lý có cái nhìn toàn cảnh về công việc quản lý của mình Hiện nay công nghệ thông tin đang phát triển mạnh mẽ và làm thay đổi b ộ mặt của xã hội từng ngày Công nghệ thông tin t rở thành trụ cột của nền kinh tế tri thức và được ứng dựng vào hầu hết mọi lĩnh vực trong đời sống Vì vậy, với việc tìm một công cụ để giải quyết vấn đề như: việc tra cứu, truy xuất, tìm kiếm nhanh, tìm nguồn thông tin liên quan đến câ y xanh, là một vấ n đề cần thiết GIS (Geographi I nformation System) hệ thống thông tin địa lý là một nhánh phát triển công nghệ thông tin có thể giải quyết được phần lớn các vấn đề trên Cùng với sự bùng nổ ứng dụng Internet , công nghệ GIS cho phép chia sẻ thông tin thông qua mạng toàn cầu bằng cách kết hợp GIS và Web hay còn gọi là WebGIS Là mã nguồn mở với nhiều ưu điểm như miễn phí, hổ trợ bởi cộng đồng lớn mạnh, là xu hướng phổ biến thông tin mạnh mẽ trên Internet không chỉ dưới góc độ thông tin thuộc tính thuần túy mà nó kết hợp đượ c v ới thông tin không gian Vì th ế, công nghệ WebGIS mã nguồn mở phù hợp cho việc phát triển ứng dụng quản lý , tra cứu thông tin , của giao thông, du lịch, hành chính, nông nghiệp, môi trường, v v 9 Bắt nguồn với ý tưởng này, em đã chọn đề tài “ N ghiê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” nhằm giải quyết khó khăn và phiền toái trong việc quản lý cây xanh đô thị một cách thủ công, thay vào đó là một hệ thống quản lý trực quan hơn giúp người dùng nắm bắt mọi thông tin và quản lý cây xanh dễ dàng hơn 1 2 Mục tiêu của đề tài Xây dựng phần mềm dựa trên nền GIS kết hợp với hệ quản trị cơ sở dữ liệu PostgreSQL để phục vụ cho công việc quản lý cây xanh đô thị Quảng Nam Tìm hiểu cơ sở dữ liệu PostgreSQL T ương tác với cơ sở dữ liệu: cập nhật, xóa, sửa, bằng cách tạo và lưu tất cả dữ liệu trong một GeoDatabase Lưu trữ thông tin cây xanh: tên cây, vị tr í, chiều cao, Phân tích hệ thống, áp dụng xây dựng công cụ quản lý cây xanh đô thị 1 3 Đ ố i tư ợ ng và ph ạ m vi nghiên c ứ u 1 3 1 Đối tượng nghiên cứu: Hệ thống thông tin địa lý GIS Cơ sở dữ liệu PostgreSQL Cây xanh đô thị tỉnh Quảng Nam 1 3 2 Phạm vi nghiên cứu: Nghiên cứu hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL và ứng dụng WebGIS quản l ý cây xanh đô thị Quảng Nam 1 4 Phương pháp nghiên c ứ u Để đảm bảo tính thực tiễn, sử dụng phương pháp trực quan, phương pháp nghiên cứu thực nghiệm và phương p háp so sánh, tổng hợp qua mạng I nternet Sử dụng phương pháp chuyên gia xin ý kiến từ giảng v iên hướng dẫn, để xác định được hướng xây dựng đề tài, giải quyết các vấn đề khó khăn trong việc thực hiện nội dung khóa luận Cụ thể nội dung nghiên cứu: Cơ sở lý thuyết về hệ thống thông tin địa lý (GIS) Cơ sở lý thuyết về hệ quản trị cơ sở dữ liệu P ostgreSQL Lập trình, xây dựng hệ thống bằng ngôn ngữ Python Nghiên cứu, tìm hiểu các tài liệu, ngôn ngữ và công nghệ liên quan đến đề tài 10 1 5 Lịch sử nghiên cứu Trước khi để thiết kế một web cơ bản ta phải tìm hiểu về một số ngôn ngữ trong thiết k ế web như html,php, bên cạnh đó còn sử dụng ngôn ngữ Python Cùng với công nghệ được sử dụng là WebGIS Sau đó đi phân tích hệ thống web theo hướng cấu trúc và thiết kế cơ sở dữ liệu 1 6 Đóng góp của đề tài Áp dụng lý thuyết hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL Áp dụng lý thuyết GIS Ứng dụng công nghệ WebGIS để quản lý cây xanh đô thị Tìm hiểu thực tế và nghiên cứu công nghệ WebGIS và ứng dụng tạo ra môi trường làm việc mới, hiện đại và quản lý đồng bộ Góp phần vào công tác quản lý cây xanh hợp lý, hiệu quả, tiết kiệm được sức người, sức của Kết quả đề tài giúp cho các nhà quản lý có thêm phương án quản lý cây xanh dễ dàng hơn Giúp cho công tác quy hoạch cảnh quan đô thị thêm một bước tiến vượt bậc 1 7 Cấu trúc của đề tài Nội dung của khóa luận bao gồm: Phần 1: Mở đầu Phần 2: Nội dung nghiên cứu Chương 1: Cơ sở lý thuyết Chương 2: Phân tích và thiết kế hệ thống quản lý cây xanh Chương 3: Triển khai demo chương trình Phần 3: Kết luận và kiến nghị 11 Phần 2 NỘI DUNG NGHIÊN CỨ U Chương 1: CƠ SỞ LÝ THUYẾT 1 1 Gi ớ i thi ệ u mã ngu ồ n m ở 1 1 1 Khái ni ệ m mã ngu ồ n m ở Mã ngu ồ n m ở hi ể u theo nghĩa r ộ ng là khái ni ệ m đư ợ c s ử d ụ ng cho t ấ t c ả các ph ầ n m ề m mà mã ngu ồ n c ủ a nó đư ợ c phân b ố r ộ ng rãi, công khai và cho phép m ọ i ngư ờ i ti ế p t ụ c phát tri ể n ph ầ n m ề m đó Đi ề u này không có nghĩa chúng đư ợ c sao chép, s ử a ch ữ a tho ả i mái hay s ử d ụ ng vào m ụ c đích nào cũng đư ợ c Mã ngu ồ n m ở đư ợ c công b ố dư ớ i r ấ t nhi ề u đi ề u ki ệ n khác nhau, m ộ t trong s ố đó cho phép phát tri ể n, s ử d ụ ng và bán tùy ý mi ễ n là gi ữ n guyên các dòng v ề ngu ồ n g ố c s ả n ph ẩ m, m ộ t s ố b ắ t bu ộ c t ấ t c ả các s ả n ph ẩ m làm ra t ừ đó cũng ph ả i là Open Source, m ộ t s ố khác b ắ t bu ộ c ph ả i công b ố toàn b ộ mã ngu ồ n, m ộ t s ố khác không cho phép s ử d ụ ng vào m ụ c đích thương m ạ i, m ộ t s ố khác l ạ i không có ràng b u ộ c nào đáng k ể Qua đó ta th ấ y khái ni ệ m Open Source không th ể chu ẩ n xác mà mu ố n nói đ ế n tính pháp lý c ủ a vi ệ c s ử d ụ ng các ph ầ n m ề m mã ngu ồ n m ở , chúng ta ph ả i xem xét đ ế n đi ề u ki ệ n s ử d ụ ng c ụ th ể mà dư ớ i đó chúng đư ợ c công b ố M ộ t đi ề u ki ệ n hay đư ợ c áp d ụ ng nh ấ t là GPL: GNU General Public Licence c ủ a t ổ ch ứ c Free Software Foundatiom GPL có hai đ ặ c đi ể m phân bi ệ t đó là: Tác gi ả g ố c gi ữ b ả n quy ề n v ề ph ầ n m ề m nhưng cho phép ngư ờ i dùng có nhi ề u quy ề n, trong đó có quy ề n tìm hi ể u, phát tri ể n, công b ố cũng như quy ề n khai thác thương m ạ i s ả n ph ẩ m Đ ặ c đi ể m th ứ hai thư ờ ng đư ợ c g ọ i là hi ệ u ứ ng virut (Virus E ffect) vì nó bi ế n t ấ t c ả các ph ầ n m ề m có dùng mã ngu ồ n GPL cũng bi ế n thành ph ầ n m ề m GPL Trên th ự c t ế đi ề u này có nghĩa: b ấ t kì tác gi ả nào s ử d ụ ng dù ch ỉ m ộ t ph ầ n r ấ t nh ỏ mã ngu ồ n GPL trong chương trình c ủ a mình, cũng ph ả i công b ố dư ớ i đi ề u ki ệ n GPL Ngu ồ n m ở không ch ỉ có nghĩa là truy c ậ p vào mã ngu ồ n C ác đi ề u kho ả n phân ph ố i c ủ a ph ầ n m ề m mã ngu ồ n m ở ph ả i tuân th ủ các tiêu chu ẩ n sau: T ự do tái phân ph ố i Gi ấ y phép s ẽ không gi ớ i h ạ n b ấ t c ứ ai kh ỏ i vi ệ c bán hay chia s ẻ các ph ầ n m ề m Gi ấ y phép s ẽ không đòi h ỏ i ph ả i tr ả ti ề n b ả n quy ề n hay các l ệ phí khác 12 Mã ngu ồ n Chư ơng trình ph ả i đi kèm mã ngu ồ n và ph ả i cho phép phân ph ố i c ả mã ngu ồ n cũng như d ạ ng đã đư ợ c biên d ị ch Trư ờ ng h ợ p m ộ t s ố d ạ ng s ả n ph ẩ m không đư ợ c phân ph ố i cùng mã ngu ồ n thì ph ả i có cách ph ổ bi ế n r ộ ng rãi nh ằ m l ấ y đư ợ c mã ngu ồ n v ớ i chi phí th ấ p hơn chi phí tái s ả n xu ấ t h ợ p lý, cho phép t ả i v ề mi ễ n phí qua Internet Các ph ầ n m ề m ph ả i có ngu ồ n g ố c B ả n quy ề n ph ả i cho phép s ử a đ ổ i các ph ầ n m ề m g ố c và ph ả i cho phép chúng đư ợ c phân ph ố i dư ớ i cùng các đi ề u kho ả n như gi ấ y phép c ủ a ph ầ n m ề m g ố c Tính toàn v ẹ n c ủ a mã ngu ồ n cung c ấ p b ở i tác gi ả Gi ấ y phép có th ể h ạ n ch ế không cho phép mã ngu ồ n đư ợ c phân ph ố i ở d ạ ng đã đư ợ c s ử a đ ổ i ch ỉ khi gi ấ y phép cho phép phân ph ố i “các t ậ p tin vá” cùng mã ngu ồ n nh ằ m m ụ c đích s ử a đ ổ i ở th ờ i gian xây d ự ng chư ơng trình Gi ấ y phép ph ả i cho phép m ộ t cách rõ ràng v ề vi ệ c phân ph ố i ph ầ n m ề m đư ợ c t ạ o ra t ừ mã ngu ồ n s ử a đ ổ i Gi ấ y phép có th ể yêu c ầ u các s ả n ph ẩ m ph ả i mang m ộ t cái tên hay m ộ t s ố hi ệ u phiên b ả n khác so v ớ i ph ầ n m ề m g ố c Theo đó, gi ấ y phép mã ngu ồ n m ở ph ả i đ ả m b ả o r ằ ng mã ngu ồ n có s ẵ n, như ng có th ể yêu c ầ u nó s ẽ đư ợ c phân ph ố i như nguyên g ố c ban đ ầ u kèm v ớ i các b ả n vá Không có s ự phân bi ệ t gi ữ a cá nhân hay nhóm ngư ờ i Gi ấ y phép không đư ợ c phân bi ệ t v ớ i b ấ t c ứ cá nhân hay nhóm ngư ờ i nào Không phân bi ệ t b ấ t c ứ m ộ t lĩnh v ự c nào B ả n quy ề n ph ả i không đ ư ợ c c ả n tr ở b ấ t c ứ ai kh ỏ i vi ệ c s ử d ụ ng ch ư ơng trình tro ng m ộ t lĩnh v ự c c ụ th ể Vi ệ c phân ph ố i b ả n quy ề n Các quy ề n l ợ i g ắ n li ề n v ớ i ch ư ơng trình ph ả i áp d ụ ng cho t ấ t c ả mà ch ư ơng trình đ ư ợ c phân ph ố i l ạ i mà không c ầ n ph ả i th ự c hi ệ n m ộ t gi ấ y phép b ổ sung b ở i các bên Gi ấ y phép không đư ợ c giành riêng cho m ộ t s ả n ph ẩ m Các quy ề n l ợ i g ắ n li ề n v ớ i ch ư ơng trình ph ả i không ph ụ thu ộ c vào vi ệ c ch ư ơng trình là m ộ t ph ầ n c ủ a m ộ t phân ph ố i ph ầ n m ề m c ụ th ể N ế u ch ư ơng trình đ ư ợ c tách ra t ừ b ả n phân ph ố i đó và đ ư ợ c s ử d ụ ng hay phân ph ố i d ư ớ i các đi ề u kho ả n c ủ a gi ấ y phép k èm theo thì t ấ t c ả các bên mà ch ư ơng trình đ ư ợ c phân ph ố i l ạ i cũng có các 13 quy ề n l ợ i ngang b ằ ng nh ư nh ữ ng quy ề n l ợ i đ ư ợ c đ ư a ra theo b ả n phân ph ố i ph ầ n m ề m g ố c Gi ấ y phép không đư ợ c h ạ n ch ế các ph ầ n m ề m khác Gi ấ y phép ph ả i không đ ư ợ c áp đ ặ t các h ạ n ch ế l ên các ph ầ n m ề m khác đ ư ợ c phân ph ố i cùng v ớ i ph ầ n m ề m đ ư ợ c c ấ p phép Ví d ụ , gi ấ y phép không c ầ n nh ấ n m ạ nh r ằ ng t ấ t c ả các ch ư ơng trình khác đ ư ợ c phân ph ố i trên cùng m ộ t môi tr ư ờ ng c ầ n ph ả i là ph ầ n m ề m mã ngu ồ n m ở Gi ấ y phép ph ả i rõ ràng v ề m ặ t công ngh ệ Không cho phép t ồ n t ạ i các gi ấ y phép có liên quan đ ế n b ấ t c ứ công ngh ệ cá nhân hay m ộ t ki ể u giao ti ế p nào Tóm l ạ i, mã ngu ồ n m ở (Open Source) là thu ậ t ng ữ ch ỉ các s ả n ph ẩ m ph ầ n m ề m có mã ngu ồ n m ở Ph ầ n m ề m ngu ồ n m ở là các ph ầ n m ề m đ ư ợ c cung c ấ p d ư ớ i c ả d ạ ng mã và ngu ồ n, không ch ỉ mi ễ n phí v ề giá mua mà còn mi ễ n phí v ề b ả n quy ề n: ng ư ờ i dùng có quy ề n s ử a đ ổ i, c ả i ti ế n, phát tri ể n, nâng c ấ p theo m ộ t s ố nguyên t ắ c chung quy đ ị nh trong gi ấ y phép ph ầ n m ề m ngu ồ n m ở (ví d ụ General Public Licence - GPL) mà không c ầ n xin phép ai, đi ề u mà h ọ không đ ư ợ c phép làm đ ố i v ớ i các ph ầ n m ề m ngu ồ n đóng (t ứ c là ph ầ n m ề m th ư ơng m ạ i)… Nhìn chung, thu ậ t ng ữ “Open Source” đ ư ợ c dùng đ ể thu hút các nhà kinh doanh, ư u đi ể m chính là mi ễ n phí và cho phép ng ư ờ i dùng có quy ề n “s ở h ữ u h ệ t h ố ng” Nhà cung c ấ p ph ầ n m ề m ngu ồ n m ở có quy ề n yêu c ầ u ng ư ờ i dùng tr ả m ộ t s ố chi phí v ề d ị ch v ụ b ả o hành, đào t ạ o, nâng c ấ p, t ư v ấ n… t ứ c là nh ữ ng d ị ch v ụ ph ụ c v ụ ng ư ờ i dùng, nh ư ng không đ ư ợ c bán các s ả n ph ẩ m ngu ồ n m ở vì nó là tài s ả n c ủ a trí tu ệ chung, kh ông ph ả i là tài s ả n riêng c ủ a m ộ t nhà cung c ấ p nào Ti ệ n ích c ủ a Open Source là quy ề n t ự do s ử d ụ ng ch ư ơng trình cho m ọ i m ụ c đích, quy ề n t ự do đ ể nghiên c ứ u c ấ u trúc c ủ a ch ư ơng trình, ch ỉ nh s ử a phù h ợ p v ớ i yêu c ầ u, truy c ậ p vào mã ngu ồ n, quy ề n t ự do phân ph ố i l ạ i các phiên b ả n cho nhi ề u ng ư ờ i, quy ề n t ự do c ả i ti ế n ch ư ơng trình và phát hành nh ữ ng b ả n c ả i ti ế n vì m ụ c đích công c ộ ng 14 1 1 2 L ợ i ích c ủ a mã ngu ồ n m ở Ph ầ n m ề m có th ể đư ợ c sao chép hoàn toàn mi ễ n phí, ngư ờ i dùng hoàn toàn an tâm khi chia s ẻ m ộ t chương trình t ố t v ớ i b ạ n bè H ầ u h ế t các s ả n ph ẩ m Open Source đ ề u có kh ả năng b ả o m ậ t tuy ệ t v ờ i, khi m ộ t v ế t n ứ t đư ợ c tìm th ấ y, nó thư ờ ng đư ợ c vá nhanh hơn ph ầ n m ề m có b ả n quy ề n Các h ệ th ố ng Open Source, nh ấ t là các h ệ th ố ng d ự a trên UNIX, thư ờ ng r ấ t linh ho ạ t B ở i vì chúng đư ợ c xây d ự ng t ừ nhi ề u kh ố i th ố ng nh ấ t và đư ợ c mô t ả c ặ n k ẽ , r ấ t d ễ đ ể ngư ờ i dùng thay th ế nhi ề u ph ầ n c ủ a h ệ th ố ng v ớ i ph ầ n có giao di ệ n tương t ự Có m ộ t c ộ ng đ ồ ng h ỗ tr ợ l ớ n, không b ị ph ụ thu ộ c vào m ộ t công ty nào Open Source đ ã đư ợ c các công ty l ớ n ch ấ p nh ậ n ch ẳ ng h ạ ng như IBM, Orace và Sun Th ậ m chí Microsoft đã ph ả i lưu tâm đ ế n Open Source như đ ố i th ủ l ớ n V ớ i Open Source, vi ệ c phân ph ố i và phát tri ể n là m ộ t phương pháp lâu dài đ ể t ạ o ra ph ầ n m ề m , n gư ờ i mua đư ợ c cung c ấ p c ả gi ả i pháp ph ầ n m ề m l ẫ n nh ữ ng mã ngu ồ n có gi ấ y phép Open Source Hơn n ử a các doanh nghi ệ p v ừ a nh ỏ s ẽ ưa chu ộ ng ph ầ n m ề m Open Source hơn Hi ệ n nay đã có m ộ t s ố t ổ ch ứ c d ự đ ị nh s ử d ụ ng Open Source đ ể xây d ự ng nhân t ố c ố t lõi c ủ a h ệ th ố ng – t ừ h ệ đi ề u hành, c ơ s ở d ữ li ệ u, ứ ng d ụ ng và Web server đ ế n các h ệ th ố ng qu ả n tr ị n ộ i dung và nhi ề u ph ầ n m ề m kinh doanh thông minh M ặ c dù con đư ờ ng đ ể free software kh ẳ ng đ ị nh v ị trí v ẫ n còn dài, nhưng đáng chú ý là Open Source đã dành đư ợ c 70% ứ ng d ụ ng Web và dư ờ ng nh ư con s ố này v ẫ n ti ế p t ụ c tăng B ằ ng cách này c ả công ty l ẫ n khách hàng đ ề u có l ợ i V ề phía khách hàng, h ọ đư ợ c dùng ph ầ n m ề m ch ấ t lư ợ ng t ố t, h ỗ tr ợ đ ầ y đ ủ v ớ i gi ả r ẻ V ề phía nhà cung c ấ p, d ự a trên Open Source, ti ế t ki ệ m đáng k ể các chi phí phát tri ể n, k i ể m l ỗ i, qu ả n lý d ự án Đ ồ ng th ờ i nhân l ự c c ủ a h ọ l ạ i nhanh chóng nâng cao trình đ ộ , gi ả m b ớ t th ờ i gian làm vi ệ c “chân tay” khi ti ế p nh ậ n mã ngu ồ n có giá tr ị và ch ấ t lư ợ ng t ừ nh ữ ng Open Source đư ợ c xây d ự ng chuyên nghi ệ p, c ấ u trúc ph ầ n m ề m, l ậ p trình , t ố t ngay t ừ đ ầ u 15 1 1 3 Ứ ng d ụ ng c ủ a mã ngu ồ n m ở hi ệ n nay Hi ệ n nay, trên th ế gi ớ i có r ấ t nhi ề u lo ạ i mã ngu ồ n m ở khác nhau , m ỗ i lo ạ i mã ngu ồ n m ở l ạ i có m ộ t ứ ng d ụ ng riêng Dư ớ i đây là m ộ t s ố lo ạ i mã ngu ồ n m ở đư ợ c s ử d ụ ng r ộ ng rãi: Ubuntu là h ệ đi ề u hành mã ngu ồ n m ở dùng cho máy tính xách tay, máy tính đ ể bàn và c ả máy ch ủ , Ubuntu ch ứ a t ấ t c ả các chương trình ứ ng d ụ ng c ầ n thi ế t cho công vi ệ c t ạ i nhà, ở trư ờ ng hay t ạ i văn phòng công ty Vbulletin là mã ngu ồ n m ở dùng đ ể xây d ự ng c ộ ng đ ồ ng tr ự c tuy ế n đư ợ c p h ổ bi ế n nh ấ t hi ệ n nay H ầ u h ế t các di ễ n đàn l ớ n t ạ i Vi ệ t Nam đ ề u đư ợ c xây d ự ng b ằ ng Vbullentin Apache Tomcat là h ệ th ố ng mã ngu ồ n m ở c ủ a hãng Apache Software, k ế th ừ a các tính năng n ổ i b ậ t c ủ a công ngh ệ d ự a trên n ề n t ả ng Java Servlet và JavaServer Pages Ứ ng d ụ ng Apache Tomcat có th ể x ử lý đư ợ c s ố lư ợ ng l ớ n các yêu c ầ u bao g ồ m ứ ng d ụ ng web tr ự c tuy ế n, các gói d ữ li ệ u lưu thông gi ữ a server - client, tùy bi ế n d ễ dàng theo y ê u c ầ u, quy mô c ủ a t ừ ng t ổ ch ứ c, doanh nghi ệ p Linux là m ộ t h ệ đi ề u hành mã ngu ồ n m ở d ạ ng Unix đư ợ c xây d ự ng b ở i Linus Torvalds, Linux có m ọ i đ ặ c tính c ủ a m ộ t h ệ đi ề u hành hi ệ n đ ạ i: h ệ th ố ng đa nhi ệ m, đa tuy ế n đo ạ n, b ộ nh ớ ả o, t ả i theo nhu c ầ u, qu ả n lý b ộ nh ớ , các trình đi ề u khi ể n thi ế t b ị và giao m ạ ng TCP/IP Open office là chương trình m ã ngu ồ n m ở thay th ế cho Microsoft Office, ưu đi ể m c ủ a nó là dung lư ợ ng nh ỏ và có th ể tương thích đư ợ c v ớ i Microsoft Office nhưng chưa th ể thân thi ệ n b ằ ng Microsoft Office NukeViet là m ộ t h ệ qu ả n tr ị n ộ i dung mã ngu ồ n m ở đư ợ c ứ ng d ụ ng đ ể thi ế t k ế các tran g web như các c ổ ng thông tin đi ệ n t ử ho ặ c các website doanh nghi ệ p, báo đi ệ n t ử , t ạ p chí đi ệ n t ử , website c ủ a các doanh nghi ệ p v ừ a và nh ỏ , website c ủ a các cơ quan, t ổ ch ứ c phi chính ph ủ , website các trư ờ ng h ọ c, website c ủ a gia đình hay cá nhân Greenstone là m ộ t b ộ ph ầ n m ề m dùng đ ể xây d ự ng và phân ph ố i các b ộ t ậ p thư vi ệ n s ố Nó cung c ấ p cho ngư ờ i s ử d ụ ng, đ ặ c bi ệ t là các trư ờ ng đ ạ i h ọ c, các thư vi ệ n ho ặ c trong các tr ụ s ở công c ộ ng xây d ự ng các thư vi ệ n riêng c ủ a h ọ 16 PostgreSQL là m ộ t h ệ qu ả n tr ị cơ s ở d ữ li ệ u quan h ệ Ngoài ra còn r ấ t nhi ề u lo ạ i mã ngu ồ n m ở khác nhau như: Eclipse, Webwork, WebGUI, OpenCMS, Fedora 1 2 Giới thiệu về sơ lược về PostgreSQL 1 2 1 PostgreSQL là gì? 1 2 1 1 Khái niệm PostgreSQL là hệ quản trị cơ sở dữ liệu đ ược viết theo hướng mã nguồn mở và rất mạnh mẽ Hệ quản trị cơ sở dữ liệu này đã có hơn 15 năm phát triển, đồng thời cấ u trúc đã được kiểm chứng và tạo được lòng tin với ngườ i sử dụng, độ tin cậy, tính toàn vẹn dữ liệu, tính đúng đắn 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 Có hỗ trợ đầy đủ các foreign keys, joins, views, triggers và stored procedures (trên nhiều ngôn ngữ) Hệ quản trị này bao gồm các kiểu dữ liệu SQL: 2008 như INTEGER, NUMBER, BOOLEAN, CHAR, VARCHAR, DA T A INTERVAL VÀ TIMESTAMPS PostgreSQL cũng hỗ trợ lưu trữ các đối tượng có kiểu dữ liệu nhị phân lớn, bao gồm cả hình ảnh, âm thanh, hoặc video Hệ quản trị cơ sở dữ liệu này được sử dụng thông qua giao diện của các ngôn ngữ C/C++, Java, Net, Perl, Pyth on, Ruby, Tcl, ODBC Là một hệ quản trị cơ sở dữ liệu mạnh; PostgreSQL có 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 (Recov ery), quản lý dung lượng bảng (T ablespaces), sao chép kh ông đồng bộ, giao dịch lồng n hau (S avepoints), sao lưu trực tuyến ho ặc nội bộ, truy vấn phức tạp, 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ố người truy cập đồng thời Đã từng có những hệ thống PostgreSQL hoạt động trong môi trường thực tế thực hiện quản lý vượt quá 4 terabyte dữ liệu 17 Sau đây là một số thông tin giới hạn khả năng của PostgreSQL: Giới hạn Giá trị 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 1 GB 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 vào loại cột Chỉ số tối đa của mỗi tháng Không giới hạn Bảng 1 Thông tin giới hạn khả năng của PostgreSQL 1 2 1 2 Các tính năn g của PostgreSQL PostgreSQL cung cấp nhiều tính năng giúp các n hà phát triển xây dựng ứng dụng, giúp quản trị viên xây dựng môi trường chịu lỗi bằng cách bảo vệ tính toàn vẹn dữ liệu Dưới đây là một số tính năng của PostgreSQL: Tương thích với các nền t ảng khác nhau sử dụng tất cả các ngôn ngữ chính và phần mềm trung gian Hướng đối tượng: trong PostgreSQL mỗi bảng được định nghĩa như một lớp Mã nguồn mở: c ó một lượng lớn người dùng và phát triển PostgreSQL Kiểu dữ liệu: PostgreSQL hỗ trợ nhiều kiểu dữ liệu khác nhau như: string, bolean, text, varchar, number, đặc biệt là kiểu dữ liệu geometry giúp cho việc truy vấn các đối tượng shape file (* shp) được thực hiện dễ dàng và nhanh chóng Ngoài ra, PostgreSQL cũng hỗ trợ nhiều kiểu dữ liệu thông dụng k hác PostgreSQL/ PostGIS được hỗ trợ bởi khá nhiều phần mềm GIS (kể cả phần mềm mở lẫn phần mềm thương mại như ArcGIS) 1 2 1 3 Các công cụ quản trị trong PostgreSQL Công cụ dòng lệnh psql là công cụ lệnh dùng phổ biến trong PostgreSQL Công cụ này cho phép người dùng: Kết nối tới cơ sở dữ liệu Thi hành truy vấn Quản lý cơ sở dữ liệu: tạo cơ sở dữ liệu, thêm bảng, truy cập hay cập nhật dữ liệu sử dụng các lệnh SQL 18 Công cụ đồ họa pgAdmin 4 PgAdmin 4 là một giao diện đồ họa cho cơ sở dữ liệu trong PostgreSQL Đây là công cụ quản lý và phát triển cơ sở dữ liệu PostgreSQL mạnh mẽ, miễn phí và cung cấp nhiều tính năng như : Tạo và xóa tablespaces, database, tabales và schemas Thi hành lệnh SQL với cửa sổ truy vấn Xuất kết quả truy vấn SQL thành cá c tập tin Sao chép, phục hồi database hoặc tables Xem, biên tập và thêm dữ liệu vào table Postgis công cụ mở rộng của PostgresSQL Hỗ trợ các phép truy vấn và phân tích không gian hoàn toàn bằng dòng lệnh SQL Là một module mở rộng bổ sung vào Pos tgreSQL hỗ trợ quản lý dữ liệu không gian Hỗ trợ lưu trữ dữ liệu không gian 1 2 2 Ưu điểm và nhược điểm của PostgreSQL 1 2 2 1 Ưu điểm của PostgreSQL PostgreSQL có thể chạy các trang web và ứng dụng web động với LAMP Ghi nhật ký viết trước của Pos tgreSQL làm cho nó trở thành một cơ sở dữ liệu có khả năng chịu lỗi cao Mã nguồn PostgreSQL có sẵn miễn phí theo giấy phép nguồn mở Điều này cho phép người dùng tự do sử dụng, sửa đổi và triển khai nó theo nhu cầu kinh doanh PostgreSQL hỗ trợ các đối tượng địa lý để người dùng có thể được sử dụng làm kho lưu trữ dữ liệu không gian địa lý cho các dịch vụ dựa trên vị trí và hệ thống thông tin địa lý Hỗ trợ đa người dùng: dữ liệu không gian có xu hướng là các dữ liệu tham chiếu, tức là được chia sẻ bởi nhiều người dùng Lưu t rữ 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 như: 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 hay không được nhìn thấy Dễ sử dụng, dễ cấu hình, thích ứng tốt, độ tin cậy cao 19 Hỗ trợ tốt với PHP và Java Hoạt động được trên nhiều hệ điều hành như : Windows , Linux, UNIX (AIX, BSD, HP - UX, SGI IRIX, Mac OS X, Solaris, Tru64) Tạo chỉ mục giúp quá trình truy vấn đạt hiệu quả cao hơn 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ó thể tạo mới kiểu dữ liệu, các hàm, các thủ tục (procedure)… Hạn chế việc bảo trì hệ thống 1 2 2 2 Nhược điểm của PostgreSQL Bên cạnh những điểm mạnh thì PostgreSQL cũng có những điểm yếu: Postgres không thuộc sở hữu của một tổ chức Vì vậy, nó đ ã gặp khó khăn khi đưa tên của mình ra khỏi đó mặc dù có đầy đủ tính năng và có thể so sánh với các hệ thống DBMS khác Những thay đổi được thực hiện để cải thiện tốc độ đòi hỏi nhiều công việc hơn MySQL vì PostgreSQL tập trung vào khả năng tương thích Nhiều ứng dụng nguồn mở hỗ trợ MySQL, nhưng có thể không hỗ trợ PostgreSQL Về số liệu hiệu suất, nó chậm hơn MySQL 1 3 Cấu hình máy và cài đặt PostgreSQL 1 3 1 Cấu hình máy và phầm mềm yêu cầu 1 3 1 1 Cấu hình máy Hệ điều hành: Chạy trên tất cả các hệ điều hành, bao gồn Windows, Linux, UNIX (AIX, BSD, HP - UX, SGI IRIX, Mac OS X, Solaris, Tru64) CPU: (AIX, BSD, HP - UX, SGI IRIX, Mac OS X, Solaris, Tru64) Ram: 128Mb trở lên Dung lượng ổ cứng tối thiểu 475MB 1 3 1 2 Phần mềm yêu cầu Hệ quản trị c ơ sở dữ liệu PostgreSQL: Postgresql - 12 3 Truy cập https://www postgresql org/download/windows/ để download bản PostgreSQL cho hệ điều hành Windows 20 1 3 2 Cài đặt PostgreSQL 1 3 2 1 Cài đặt Trước khi cài đặt phải download phiên bản cài đặt Lựa chọn version muốn cài đặt, máy người dùng là windows 64 bit nên sẽ cài phiên bản Windows x86 - 64 Click đúp vào file exe vừa tải về 21 Nhập các thông tin cấu hình PostgreSQL theo hướng dẫn khi cài đặt: C họn các component cài đặt (nếu người dùng chỉ cần server để lưu và truy vấn dữ liệu thì chỉ cần chọn PostgreSQL Server) Ở đây người dùng chọn tất cả (pgAdmin 4 tương tự như MySQL Workbench, Stack Builder thì dùng để cài các tools, driver liên quan) 22 Nhập mật khẩu cho user postgres (postgres là user mặc định, có quyền cao nhất – superuser) Chọn cổng port cho PostgreSQL (port mặc định cho postgreSQL là 5432, nếu chưa bị trùng với port nào thì các cứ để mặc định) 23 Tick vào ô cài đặt Stack Builder để download và cấu hình các driver Chọn driver để cài đặt (cho phép kết n ối với Postgre sql qua các ngôn ngữ khác) 24 Để hoàn tất quá trình cài đặt chọn Finish Như vậy là đã cài đặt hệ quản trị cơ sở dữ liệu PostgreSQL thành công 1 3 2 1 Khởi động pgAdmin Nhấp chuột vào Start  All Programs  pgAdmin 4 Click chuột phải vào biểu tượng PostgreSQL, chọn Connect Để vào giao diện chính của pgAdmin trước tiên phải nhập Passwork  OK Hình 1 1 Giao diện nhập Pass work của PostgreSql 25 Ngoài ra người dùng cũng có thể truy cập qua url http://127 0 0 1:57386/browser/ và đăng nhập Password tương tự Hình 1 2 Giao diện trang chủ pgAdmin Để tạo cơ sở dữ liệu click chuột phải vào Databases chọn New Databases như hình: Hình 1 3 Tạo cơ sở dữ liệu 26 Thiết lập thông số cho cơ sở dữ liệu: Database : Nhập tên cho cơ sở dữ liệu là “QLCay” Owner: Chọn nhân viên có quyền thao tác trên cơ sở dữ liệu Nhấp Save để hoàn thành 1 4 Dùng Model tạo Bảng Database trong Python Django 1 4 1 Kết nối Django và Postgresql Sau kh i khởi tạo một project với django, django sẽ tự động tạo ra một cơ sở dữ liệu SQLite, được gọi là db sqlite3 trong thư mục chính của project và kết nối tới app người dùng , code ở trong file setting py: Các trường NAME, USER, PASSW ORD là những trường đã được tạo với Postgres database ở trên HOST sẽ là local host trong quá trình phát triển và Postgres sẽ được chạy mặc định trên PORT 5432 Cụ thể như sau: 27 Như vậy là đã hoàn thành kết nối Django với PostgreSQL 1 4 2 Tạo bảng database với Model Sau khi tạo app “qlcayxanh” thành công, vào file models py để thiết kế bảng dữ liệu ranh_gioi D ựa vào thư viện model hỗ trợ trong Django, thiết kế một class ranh_gioi để truy vấn, quản lý dữ liệu với bảng ranh_gioi như s au: Sau đó trở lại với terminal, cùng ở thư mục WEBGISQN đã tạo và run với câu lệnh như sau: Lệnh makemigrations để tạo các file migration, file migration này nhằm xử lý tác động đến model (thêm hay xóa model, thêm sửa xóa các field trong models, ) mà người dùng muốn tác động đến database để tạo ra bảng ranh_gioi Sau này có chỉnh sửa các file models py thì khi makemigrations sẽ có thêm các file migration, nó như là các file lịch sử người dùng đã tác động gì đến database Lệnh migrate thực hiện chạ y các file migration để lưu các bảng vào cơ sở dữ liệu thành công 28 Vào lại pgAdmin 4 để kiểm tra chắc chắn dữ liệu đã được kết nối: Hình 1 4 Giao diện bảng ranh_gioi trên pgAdmin Như vậy là đã hoàn thành dùng Model để tạo bả ng database trong Python Django 1 5 Tổng quan về WebGIS 1 5 1 Khái niệm WebGIS GIS có nhiều định nghĩa nên WebGIS cũng có nhiều định nghĩa Nói chung, các định nghĩa của WebGIS dựa trên những định nghĩa đa dạng của GIS và có thêm các thành phần của We b Sau đây là một số định nghĩa về WebGIS: WebGIS là một hệ thống phức tạp cung cấp truy cập trên mạng với những chức năng như là bắt giữ hình ảnh, lưu trữ, hợp nhất dữ liệu, thao tác dữ liệu, phân tích và hiển thị dữ liệu không gian WebGIS là hệ thống thông tin địa lý được phân bố thông qua hệ thống mạng máy tính phục vụ cho việc hợp nhất, phân tán, giao tiếp vớ i các thông tin địa lý được hiển thị trên World Wide Web Trong cách thực hiện nhiệm vụ phân tích GIS, dịch vụ này gần giống như kiến trúc Clie nt - Server của Web Xử lý thông tin địa lý được chia thành các nhiệm vụ ở phía server và phía client Điều này cho phép người dùng có thể xuất, thao tác và nhận kết quả từ việc khai thác dữ liệu GIS từ trình duyệt web mà không phải trả tiền cho phần mềm GIS 29 Một client tiêu biểu là trình duyệt web và server - side bao gồm một Webserver có cung cấp một chương trình phần mềm WebGIS Client thường yêu cầu một ảnh bản đồ hay vừa xử lý thông tin địa lý qua Web đến server ở xa Server chuyển đổi yêu cầu thành mã n ội bộ và gọi những chức năng về GIS bằng cách chuyển tiếp yêu cầu tới phần mềm WebGIS Phần mềm này trả về kết quả, sau đó kết quả này được định dạng lại cho việc trình bày bởi trình duyệt hay những hàm từ các plug - in hoặc Java applet Server sau đó trả về kết quả cho client hiển thị, hoặc gửi dữ liệu và các công cụ phân tích đến client để dùng ở phía client Phần lớn sự chú ý gần đây là tập trung vào việc phát triển các chức năng GIS trên Internet WebGIS có tiềm năng lớn trong việc làm cho thông tin địa lý trở nên hữu dụng và sẵn sàng đ ư a tới số l ư ợng lớn ng ư ời dùng trên toàn thế giới Thách thức lớn của WebGIS là việc tạo ra một hệ thống phần mềm không phụ thuộc vào platform và chạy trên chuẩn giao thức mạng TCP/IP, có nghĩa là khả năng WebGIS đ ư ợc chạy trên bất kỳ trình duyệt web củ a bất kỳ máy tính nào nối mạng I nternet Đối với vấn đề này, các phần mềm GIS phải đ ư ợc thiết kết lại để trở thành ứng dụng WebGIS theo các kỹ thuật mạng I nternet 1 5 2 Nguyên lý hoạt động của WebGIS Web Server tiếp nhận c ác yêu cầu từ Client, lấy dữ liệu từ CSDL theo yêu cầu của Client và trả kết quả theo yêu cầu Khi Client gửi yêu cầu đến server, Web Server sẽ phân tích yêu cầu nhận được Nếu yêu cầu đó liên quan đến bản đồ hay dữ liệu địa lý, Web Server sẽ gửi yêu cầu đến Map Server để truy xuất những thông tin liên quan đến dữ liệu bản đồ Khi có được nguồn dữ liệu phù hợp với yêu cầu của Client, Map Server gửi sang Web Server Web Server sẽ trả thông tin về cho người duyệt web theo giao diện web được cài đặt sẵn Hình 1 5 Nguyên lý hoạt động của WebGIS 30 1 6 Công cụ hỗ trợ phát triển hệ thống Chương trình soạn thảo Visual Studio Cod e Link download Visual Studio Code : ( https://code visualstudio com/download ) GitHub 1 6 1 Visual Studio Code là gì? Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS , Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn hảo giữa IDE và Code Editor Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã ng uồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các tùy chọn khác 1 6 2 Một số tính năng quan trọng của Visual Studio Code Hỗ trợ đa nền tảng Nếu như với các công cụ lập trình khác thường chỉ được sử dụng cho một trong 3 hệ điều hành sau: Windows, Linux, Mac Systems thì trái lại, Visual Studio cho phép bạn lập trình dễ dàng trên cả ba nền tảng trên mà không gặp bất cứ trở ngại nào Hỗ trợ nhiều ngôn ngữ lập trình Cũng vậy, Visual Studio ghi điểm t rong mắt người dùng nhờ lợi thế hỗ trợ nhiều ngôn ngữ lập trình cùng lúc từ C/C++, C# cho đến F#, Visual Basic, HTML, CSS, JavaScript… Do đó, nó có thể phát hiện và nhanh chóng đưa ra thông báo ngay khi chương trình có lỗi Biên tập mã Như mọi IDE khác, Visual Studio cũng cung cấp trình soạn thảo mã hỗ trợ hoàn thiện mã và làm rõ cú pháp bằng cách sử dụng IntelliSense IntelliSense là thuật ngữ chung cho một số tính năng: danh sách thành viên, thông tin tham số, thông tin nhanh và toàn bộ từ Công cụ này không chỉ sử dụng cho các hàm, biến và các phương pháp mà còn áp dụng cho các cấu trúc ngôn ngữ bao gồm truy vấn hoặc vòng điều khiển 31 Ngoài ra, những trình biên tập mã của Visual Studio còn hỗ trợ cài đặt dấu trang trong mã giúp người dùng dễ dàng thực h iện các điều hướng thu hẹp khối mã lệnh, tìm kiếm gia tăng… Đặc biệt, Visual Studio còn có chức năng biên dịch mã nền giúp cung cấp thông tin phản hồi về cú pháp hoặc biên dịch lỗi và được đánh dấu bằng những gạch sóng đỏ Thiết kế Windows Forms Designe r Thiết kế này của Visual Studio được dùng với mục tiêu xây dựng GUI cho Windows Forms, nhằm xây dựng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh mẫu Việc điều khiển trình bày dữ liệu có thể sẽ được kết nối với các nguồn cơ sở dữ liệu hoặc truy vấn WPF Designer Cũng giống như trên tính năng thiết kế WDP Designer cho phép người dùng kéo, thả ẩn dụ Chức năng này sử dụng để tương tác giữa người và máy tính nhằm mục tiêu vào Windows Presentation Foundation Web designer/development Visu al Studio cũng cung cấp trình soạn thảo và thiết kế website cho phép xây dựng các trang web qua chức năng kéo thả Điều này giúp người dùng xây dựng website dễ dàng hơn Nhất là với những doanh nghiệp cần xây dựng những website đơn giản như: thiết kế webs ite du lịch, giáo dục… có thể sử dụng cách thức này mà vẫn cho phép bạn sở hữu một website với các chức năng hoàn chỉnh Cung cấp kho tiện ích mở rộng Khi muốn sử dụng một ngôn ngữ lập trình mà Visual Studio không có sẵn? Rất đơn giản, chỉ cần tải xuống kho tiện ích mở rộng của công cụ này là xong Điều đặc biệt là việc tải xuống những chức năng này không làm ảnh hưởng đến hiệu năng của Visual Studio bởi chúng hoạt động hoàn toàn độc lập với nhau Bảo mật kho lưu trữ hiệu quả Nhu cầu lưu trữ an toàn t rong lập trình là rất lớn Với Visual Studio, người dùng có thể yên tâm về vấn đề này Bởi công cụ này dễ dàng kết nối với Git hoặc bất kỳ kho lưu trữ nào hiện có và đảm bảo an toàn cao cho chúng 32 Lưu trữ dữ liệu ở dạng phân cấp Tại Visual Studio hầu hết các tệp lưu trữ đoạn mã code đều được đặt trong các thư mục tương đương nhau Ngoài ra, với những tệp đặc biệt quan trọng, Visual Studio cũng cung cấp các thư mục phân cấp nhằm giúp người dùng dễ dàng lưu trữ và tìm kiếm dữ liệu Hỗ trợ Git Sử dụng V isual Studio, người dùng có thể kéo hoặc copy mã trực tiếp từ GitHub Sau đó, có thể thay đổi các mã này và lưu lại trên phần mềm 1 6 3 Tổng quan về GitHub 1 6 3 1 Tìm hiểu về Git Git là phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus Torvalds vào năm 2005 và hiện được dùng rất phổ biến So với các hệ thống quản lý phiên bản tập trung khi tất cả mã nguồn và lịch sử thay đổi chỉ được lưu một nơi là máy chủ thì trong hệ thống p hân tán, các máy khách không chỉ “check out” phiên bản mới nhất của các tập tin mà là sao chép toàn bộ kho mã nguồn Như vậy, nếu như máy chủ ngừng hoạt động, thì hoàn toàn có thể lấy kho chứa từ bất kỳ máy khách nào để sao chép ngược trở lại máy chủ để kh ôi phục lại toàn bộ hệ thống Mỗi checkout thực sự là một bản sao đầy đủ của tất cả dữ liệu của kho chứa từ máy chủ Hình 1 6 Mô hình tổ chức dữ liệu phân tán trên Git 33 1 6 3 2 GitHub là gì? GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm GitHub cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản Các dự án mã nguồn mở sẽ được cung cấp kho lưu trữ miễn phí Tính đến tháng 4 năm 2016, GitHub có hơn 14 triệu n hân viên với hơn 35 triệu kho mã nguồn, làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới Github đã trở thành một yếu tố có sức ảnh hưởng trong cộng đồng phát triển mã nguồn mở Thậm chí nhiều nhà phát triển đã bắt đầu xem nó là một sự thay th ế cho sơ yếu lý lịch và một số nhà tuyển dụng yêu cầu các ứng viên cung cấp một liên kết đến tài khoản Github để đánh giá ứng viên Sự phát triển của nền tảng GitHub bắt đầu vào ngày 19 tháng 10 năm 2007 Trang web được đưa ra vào tháng 4 năm 2008 do Tom P reston - Werner, Chris Wanstrath, và PJ Hyett thực hiện sau khi nó đã được hoàn thành một vài tháng trước đó, xem như giai đoạn beta Dự án trên Github có thể được truy cập và thao tác sử dụng một giao diện dòng lệnh và làm việc với tất cả các lệnh Git tiêu chuẩn Github cũng cho phép người dùng đăng ký và không đăng ký để duyệt kho công cộng trên trang web Github cũng tạo ra nhiều client và plugin cho máy tính để bàn Trang web cung cấp các chức năng mạng xã hội như feed, theo dõi, wiki (sử dụng phần mềm G ollum Wiki) và đồ thị mạng xã hội để hiển thị cách các nhà phát triển làm việc trên kho lưu trữ Một nhân viên phải tạo ra một tài khoản cá nhân để đóng góp nội dung lên Github, nhưng các kho mã nguồn công cộng có thể được duyệt và tải về với bất cứ ai Vớ i một người dùng đã đăng ký tài khoản, họ có thể thảo luận, quản lý, tạo ra các kho, đóng góp cho kho của người dùng khác, và xem xét thay đổi mã GitHub cũng có một dịch vụ khác: một trang web kiểu pastebin gọi là Gist, dùng để lưu trữ các đoạn mã; trong khi Github sẽ được cho lưu trữ các dự án lớn hơn Một dịch vụ lưu trữ khác được gọi là Speaker Deck Các phần mềm chạy GitHub được viết bằng Ruby on Rails và Erlang 34 1 6 3 2 Ưu, nhược điểm của Github Ưu điểm: Git dễ cài đặt và sử dụng, an toàn và nhanh chóng Có thể giúp quy trình làm việc code theo nhóm đơn giản hơn rất nhiều bằng việc kết hợp các phân nhánh (branch) Giúp cải thiện kỹ năng lập trình bằng cách theo dõi và sửa đổi thường xuyên: có thể làm việc ở bất cứ đâu vì chỉ cần clone mã ngu ồn từ kho chứa hoặc clone một phiên bản thay đổi nào đó từ kho chứa, hoặc một nhánh nào đó từ kho chứa Nhược điểm: Tài khoản github là miễn phí, nhưng kho chứa riêng tư lại bị giới hạn nếu muốn dùng thêm phải trả phí Phát hiện nhiều điểm yếu trên thuật toán SHA1 của Github việc này có thể dẫn đến bị mã hóa dữ liệu Sử dụng github trên window hơi cồng kềnh Hệ thống quản lý phiên bản buộc phải đánh dấu rõ ràng vào tập tin Trong khi điều này đặc biệt phiền toái vì dính líu đến việc phải liên lạc với máy chủ trung tâm 1 6 3 3 Một số lệnh trên Git Câu lệnh Ghi chú $ git init Tạo 1 repository $ git clone : Câu lệnh trên sẽ tạo một thư mục mới sao chép từ repository trên Github về local máy tính $ git add Thêm 1 file vào để Git theo dõi $ git status Kiểm tra trạng thái của tệp tin $ git commit - m “message” Lưu các thay đổi file vào kho cùng với 1 tin nhắn git pull $ git pull Kéo các thay đổi mới nhất từ repository $ git revert Trở lại 1 commit 35 $ git log Gửi lại danh sách lịch sử commits tin nhắn $ git tag Liệt kê các thẻ thao tác Git $ git tag – a - m “message for tag” Thêm một thẻ cho commit mới nhất $ git tag – d Xóa một thẻ $ git push origin Chia sẻ thẻ vào repository $ git checkout – b Tạo ra một nhánh mới ở một thẻ củ thể $ git branch Liệt kê các nhánh có sẵn trong git $ git branch Tạo ra một nhánh mới $ git checkout Chuyển sang 1 nhánh mới $ git merge Hợp nhất nhánh với nh ánh hiện tại $ git clear – f - d Xóa các file trước khi xóa $ git clear – f Xóa folder $ git help clone Xem thông tin hỗ trợ cho 1 câu lệnh git $ git reset Reset lại trước thời điểm 1 commit $ git diff branch - name path/to/file Xem thay đổi trong một file , giữa state hiện tại và một branch $ git fetch orgin Lấy tất cả các branches $ git for - each - ref -- sort= - committerdate refs/heads/ | head Liệt kê các nhánh theo trình tự sử dụng gần nhất $ git remote - v Liệt kê các remote urls $ git diff Xem thay đổi ( chưa được thêm ) của những file hiện tại $ git diff – cached Xem thay đổi (đã được add chưa commit) $ git diff origin/master Xem thay đổi từ tệp xa đến tệp cục bộ 36 $ git diff COMMIT1_ID COMMIT2_ID Xem thay đổi giữa hai commits $ git diff - tree - no - commit - id -- name - only - r COMMIT_ID Xem những files thay đổi giữa hai commits $ git diff - tree - no - commit - id -- name - only - r COMMIT_ID $ git diff -- cached origin/master Xem thay đổi trước khi push $ git commit -- amend - m "New commit mesage" Đổi message của commit cuối $ git push origin master Push local commits sang nhánh remote Bảng 2 Một số lệnh trên Git 37 Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN LÝ CÂY XANH 2 1 Mô tả hệ thống 2 1 1 Khảo sát hiện trạng Trong những năm qua vấn đề cây xanh đô thị tỉnh Quảng Nam đã được cấp trên quan tâm đầu tư trồng chăm sóc cây ở các tuyến đường đô thị, mang lại không gian xanh cho đô thị 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 m2/người; diện tích đất cây xanh trong khu công cộng như công viên, tiểu hoa viên, nghĩa trang là 62,9 ha, đạt trên 7 m2/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, các khu công nghiệp,… là 50,1 ha; ngoài ra còn có một phần lớn diện tích cây xanh trong khu vực bảo tồn sinh thái, khu ven sông vùng ngập nước với các loài cây bản địa 2 1 2 Môi trường hệ thống Hiện nay các trang Web site xuất hiện ngày càng nhiều và phổ biến Do người dân ngày càng tiế p cận nhiều hơn vớ i tin học, chú trọng vào việc tìm kiếm thông tin trên mạng để nắm bắt thông tin một cách nhanh chóng, tiện lợi nhằm phục vụ cho các vấn đề trong đời sống hằng ngày như kinh doanh, giáo dục, giải trí và kể cả một trong những vấn đề đang được quan tâm nhất h iện nay là tình hình giao thông vận tải Sự phát triển mạnh mẽ về mặt kinh tế của tỉnh là những hệ quả về mặt môi trường như ngập úng, ô nhiễm tiếng ồn, diện tích cây xanh ngày càng giảm,… do đó vấn đề quản lý cây xanh đô thị đang dần trở nên cấp thiết Quản lý bằng giấy tờ không giúp cho nhà quản lý có thể quản lý được thông tin của một cây xanh chặt chẽ và nhanh chóng Tuy nhiên, h ệ thống thông tin địa lý (GIS) có thể giải quyết được những điều này GIS ra đời vượt hẳn một số phương pháp quản lý bằng gi ấy tờ và đạt được những kết quả cao, là một công cụ hỗ trợ đắc lực cho nhà quản lý Không những đáp ứng được các nhu cầu trong quản lý về thuộc tính, vị trí, tình trạng sinh trưởng, GIS còn có khả năng mô hình hóa lại thế giới thực, giúp nhà quản lý không mất nhiều thời gian và công sức trong việc giải quyết những vấn đề ngoài thực địa Trên tư tưởng đó em muốn xây dựng một WebSite sử dụng công nghệ 38 WebGIS nhằm làm cho trang Web thêm phần sinh động, cung cấp một số chức năng cần thiết cho người dùng 2 2 P hân tích yêu cầu 2 2 1 Yêu cầu về chức năng Các chức năn g thực tế để hệ thống hoạt động 2 2 1 1 Quản lý nhân viên Người quản lý đưa ra yêu cầu ( thêm, sửa, xóa) cập nhật các danh mục tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả 2 2 1 2 Quản lý dữ liệu Quản lý cây Cập nhật cây Quản lý ranh giới Quản lý đường giao thông Hiển thị thông tin chi tiết về tình trạng cây, các cây cần từ bỏ Nhân viên sẽ có thể cập nhật lại số lượng cây và các cây gặp sự cố Nhân viên đưa ra yêu cầu ( th êm, sửa, xóa) thông tin cây, cập nhật cây cho hệ thống, cập nhật ranh giới và đường giao thông Hệ thống sẽ thực hiện lệnh và đưa ra kết quả 2 2 1 3 Chăm sóc cây Người quản lý đưa ra yêu cầu ( thêm, sửa, xóa) nhân viên chăm sóc cây Hệ thống sẽ thực hiệ n lệnh và đưa ra kết quả 2 2 1 4 Thống kê Thống kê theo loại cây Thống kê theo tình trạng cây Thống kê theo tên cây Thống kê theo tháng trồng Thống kế theo tên đường Người quản lý đưa ra yêu cầu thống kê các danh mục tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả 39 2 2 1 5 Tương tác bản đồ Lớp bản đồ Di chuyển bản đồ Phóng to/ Thu nhỏ bản đồ Tìm kiếm mã số cây Hiển thị thông tin cây Chú dẫn In Danh sách cây Người quản lý s ẽ chọn hiển thị các lớp bản đồ ( lớp cây xanh) Người quản lý có thể tương tác bản đồ bằng cách nhấp giữ và di chuyển chuột lên bản đồ hoặc điều khiển thanh điều hướng Di chuyển bản đồ đến vị trí theo điều khiển chuột Phóng to, thu nhỏ Nhấp đôi chuột lên bản đồ hoặc di chuyển lên xuống thanh điều hướng hoặc rê chuột lên bản đồ Hiển thị vùng không gian bản đồ được phóng to h ay thu nhỏ Hiển thị thông tin click chọn vào các địa điểm trên bản đồ 2 2 1 6 Quản lý tài khoản Người quản lý đưa ra yêu cầu ( thêm, sửa, xóa) cập nhật các danh mục tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả 2 2 1 7 Thiết lập Người quản lý đưa ra yêu cầu (thêm, sửa, xóa) cập nhật các tin tức, liên kết trên trang chủ tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả 2 2 1 8 Đổi mật khẩu Người quản lý đưa ra yêu cầu đổi mật khẩu tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả 40 2 2 2 Yêu cầu phi chức năng Dung lượng bộ nhớ: 2GB Môi trường xây dựng phần mềm J2EE môi trường Java (công cụ Rational Rose) CSDL: PostgreS QL Lập trình: Visual studio code Hệ điều hành: Windows 10 Hệ thống tin cậy và chính xác, giao diện thân thiện, dễ sử dụng Đảm bảo bảo mật cho người điều hành hệ thống Phải có tính linh hoạt cao 2 3 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 R9 Đổi mật khẩu R1 Đăng nhập R1 1 Người quản lý mở của sổ R1 1 1 Nhập user, password R 1 1 2 Đúng => R1 3 Sai => R1 1 1 R1 3 Người quản lý đăng nhập thành công R2 Q uản lí nhân viên R2 1 Người quản lý mở của sổ R1 Đăng nhập R1 1 1 Nhập tên đăng nhập, mật khẩu R1 1 2 Đúng => R2 2 Sai => R1 1 1 41 R2 2 Người quản lý đăng nhập thành công R2 3 Người quản lý và o quản lý nhân viên R2 4 Người quản lý kiểm tra và chỉnh sửa R2 5 Người quản lý lưu lại thông tin của nhân viên R3 Quản lý dữ liệu R3 1 Người quản lý mở của sổ R1 Đăng nhập R1 1 1 Nhập tên đăng nhập, mật khẩu R1 1 2 Đúng => R3 2 Sai => R1 1 1 R3 2 Người quản lý đăng nhập thành công R3 3 Người quản lý vào quản lý cây, cập nhật cây, quản lý ranh giới, quản lý đường giao thông R3 4 Người quản lý kiểm tra và chỉnh sửa R3 5 Người quản lý lưu lại thông tin dữ liệu R4 Chăm sóc câ y R4 1 Người quản lý mở của sổ R1 Đăng nhập R1 1 1 Nhập tên đăng nhập, mật khẩu R1 1 2 Đúng => 4 2 Sai => R1 1 1 R4 2 Người quản lý đăng nhập thành công R4 3 Người quản lý vào quản lý thêm, sửa, xóa R4 4 Người quản lý kiểm tra và ch ỉnh sửa R4 5 Người quản lý lưu lại thông tin chăm sóc cây R4 6 Người quản lý xuất xuất file excel danh sách chăm sóc cây xanh R5 Thống kê R5 1 Người quản lý mở của sổ R1 Đăng nhập R1 1 1 Nhập tên đăng nhập, mật khẩu R 1 1 2 Đúng => 5 2 Sai => R1 1 1 42 R5 2 Người quản lý đăng nhập thành công R5 3 Người quản lý vào thống kê R5 4 Người quản lý thống kê số theo l

NỘI DUNG NGHIÊN CỨU

1.1.1 Khái niệm mã nguồn mở

Mã nguồn mở hiểu theo nghĩa rộng là khái niệm được sử dụng cho tất cả các phần mềm mà mã nguồn của nó được phân bố rộng rãi, công khai và cho phép mọi người tiếp tục phát triển phần mềm đó Điều này không có nghĩa chúng được sao chép, sửa chữa thoải mái hay sử dụng vào mục đích nào cũng được Mã nguồn mở được công bố dưới rất nhiều điều kiện khác nhau, một trong số đó cho phép phát triển, sử dụng và bán tùy ý miễn là giữ nguyên các dòng về nguồn gốc sản phẩm, một số bắt buộc tất cả các sản phẩm làm ra từ đó cũng phải là Open Source, một số khác bắt buộc phải công bố toàn bộ mã nguồn, một số khác không cho phép sử dụng vào mục đích thương mại, một số khác lại không có ràng buộc nào đáng kể Qua đó ta thấy khái niệm Open Source không thể chuẩn xác mà muốn nói đến tính pháp lý của việc sử dụng các phần mềm mã nguồn mở, chúng ta phải xem xét đến điều kiện sử dụng cụ thể mà dưới đó chúng được công bố Một điều kiện hay được áp dụng nhất là GPL: GNU General Public Licence của tổ chức Free Software Foundatiom

GPL có hai đặc điểm phân biệt đó là:

Tác giả gốc giữ bản quyền về phần mềm nhưng cho phép người dùng có nhiều quyền, trong đó có quyền tìm hiểu, phát triển, công bố cũng như quyền khai thác thương mại sản phẩm Đặc điểm thứ hai thường được gọi là hiệu ứng virut (Virus Effect) vì nó biến tất cả các phần mềm có dùng mã nguồn GPL cũng biến thành phần mềm GPL Trên thực tế điều này có nghĩa: bất kì tác giả nào sử dụng dù chỉ một phần rất nhỏ mã nguồn GPL trong chương trình của mình, cũng phải công bố dưới điều kiện GPL

Nguồn mở không chỉ có nghĩa là truy cập vào mã nguồn Các điều khoản phân phối của phần mềm mã nguồn mở phải tuân thủ các tiêu chuẩn sau:

Tự do tái phân phối

Giấy phép sẽ không giới hạn bất cứ ai khỏi việc bán hay chia sẻ các phần mềm Giấy phép sẽ không đòi hỏi phải trả tiền bản quyền hay các lệ phí khác.

CƠ SỞ LÝ THUYẾT

Giới thiệu mã nguồn mở

1.1.1 Khái niệm mã nguồn mở

Mã nguồn mở hiểu theo nghĩa rộng là khái niệm được sử dụng cho tất cả các phần mềm mà mã nguồn của nó được phân bố rộng rãi, công khai và cho phép mọi người tiếp tục phát triển phần mềm đó Điều này không có nghĩa chúng được sao chép, sửa chữa thoải mái hay sử dụng vào mục đích nào cũng được Mã nguồn mở được công bố dưới rất nhiều điều kiện khác nhau, một trong số đó cho phép phát triển, sử dụng và bán tùy ý miễn là giữ nguyên các dòng về nguồn gốc sản phẩm, một số bắt buộc tất cả các sản phẩm làm ra từ đó cũng phải là Open Source, một số khác bắt buộc phải công bố toàn bộ mã nguồn, một số khác không cho phép sử dụng vào mục đích thương mại, một số khác lại không có ràng buộc nào đáng kể Qua đó ta thấy khái niệm Open Source không thể chuẩn xác mà muốn nói đến tính pháp lý của việc sử dụng các phần mềm mã nguồn mở, chúng ta phải xem xét đến điều kiện sử dụng cụ thể mà dưới đó chúng được công bố Một điều kiện hay được áp dụng nhất là GPL: GNU General Public Licence của tổ chức Free Software Foundatiom

GPL có hai đặc điểm phân biệt đó là:

Tác giả gốc giữ bản quyền về phần mềm nhưng cho phép người dùng có nhiều quyền, trong đó có quyền tìm hiểu, phát triển, công bố cũng như quyền khai thác thương mại sản phẩm Đặc điểm thứ hai thường được gọi là hiệu ứng virut (Virus Effect) vì nó biến tất cả các phần mềm có dùng mã nguồn GPL cũng biến thành phần mềm GPL Trên thực tế điều này có nghĩa: bất kì tác giả nào sử dụng dù chỉ một phần rất nhỏ mã nguồn GPL trong chương trình của mình, cũng phải công bố dưới điều kiện GPL

Nguồn mở không chỉ có nghĩa là truy cập vào mã nguồn Các điều khoản phân phối của phần mềm mã nguồn mở phải tuân thủ các tiêu chuẩn sau:

Tự do tái phân phối

Giấy phép sẽ không giới hạn bất cứ ai khỏi việc bán hay chia sẻ các phần mềm Giấy phép sẽ không đòi hỏi phải trả tiền bản quyền hay các lệ phí khác

Chương trình phải đi kèm mã nguồn và phải cho phép phân phối cả mã nguồn cũng như dạng đã được biên dịch Trường hợp một số dạng sản phẩm không được phân phối cùng mã nguồn thì phải có cách phổ biến rộng rãi nhằm lấy được mã nguồn với chi phí thấp hơn chi phí tái sản xuất hợp lý, cho phép tải về miễn phí qua Internet

Các phần mềm phải có nguồn gốc

Bản quyền phải cho phép sửa đổi các phần mềm gốc và phải cho phép chúng được phân phối dưới cùng các điều khoản như giấy phép của phần mềm gốc

Tính toàn vẹn của mã nguồn cung cấp bởi tác giả

Giấy phép có thể hạn chế không cho phép mã nguồn được phân phối ở dạng đã được sửa đổi chỉ khi giấy phép cho phép phân phối “các tập tin vá” cùng mã nguồn nhằm mục đích sửa đổi ở thời gian xây dựng chương trình Giấy phép phải cho phép một cách rõ ràng về việc phân phối phần mềm được tạo ra từ mã nguồn sửa đổi Giấy phép có thể yêu cầu các sản phẩm phải mang một cái tên hay một số hiệu phiên bản khác so với phần mềm gốc Theo đó, giấy phép mã nguồn mở phải đảm bảo rằng mã nguồn có sẵn, nhưng có thể yêu cầu nó sẽ được phân phối như nguyên gốc ban đầu kèm với các bản vá

Không có sự phân biệt giữa cá nhân hay nhóm người

Giấy phép không được phân biệt với bất cứ cá nhân hay nhóm người nào

Không phân biệt bất cứ một lĩnh vực nào

Bản quyền phải không được cản trở bất cứ ai khỏi việc sử dụng chương trình trong một lĩnh vực cụ thể

Việc phân phối bản quyền

Các quyền lợi gắn liền với chương trình phải áp dụng cho tất cả mà chương trình được phân phối lại mà không cần phải thực hiện một giấy phép bổ sung bởi các bên

Giấy phép không được giành riêng cho một sản phẩm

Các quyền lợi gắn liền với chương trình phải không phụ thuộc vào việc chương trình là một phần của một phân phối phần mềm cụ thể Nếu chương trình được tách ra từ bản phân phối đó và được sử dụng hay phân phối dưới các điều khoản của giấy phép kèm theo thì tất cả các bên mà chương trình được phân phối lại cũng có các

13 quyền lợi ngang bằng như những quyền lợi được đưa ra theo bản phân phối phần mềm gốc

Giấy phép không được hạn chế các phần mềm khác

Giấy phép phải không được áp đặt các hạn chế lên các phần mềm khác được phân phối cùng với phần mềm được cấp phép Ví dụ, giấy phép không cần nhấn mạnh rằng tất cả các chương trình khác được phân phối trên cùng một môi trường cần phải là phần mềm mã nguồn mở

Giấy phép phải rõ ràng về mặt công nghệ

Không cho phép tồn tại các giấy phép có liên quan đến bất cứ công nghệ cá nhân hay một kiểu giao tiếp nào

Tóm lại, mã nguồn mở (Open Source) là thuật ngữ chỉ các sản phẩm phần mềm có mã nguồn mở Phần mềm nguồn mở là các phần mềm được cung cấp dưới cả dạng mã và nguồn, không chỉ miễn phí về giá mua mà còn miễn phí về bản quyền: người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung quy định trong giấy phép phần mềm nguồn mở (ví dụ General Public Licence

- GPL) mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng (tức là phần mềm thương mại)… Nhìn chung, thuật ngữ

“Open Source” được dùng để thu hút các nhà kinh doanh, ưu điểm chính là miễn phí và cho phép người dùng có quyền “sở hữu hệ thống”

Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng trả một số chi phí về dịch vụ bảo hành, đào tạo, nâng cấp, tư vấn… tức là những dịch vụ phục vụ người dùng, nhưng không được bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào

Tiện ích của Open Source là quyền tự do sử dụng chương trình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình, chỉnh sửa phù hợp với yêu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên bản cho nhiều người, quyền tự do cải tiến chương trình và phát hành những bản cải tiến vì mục đích công cộng

1.1.2 Lợi ích của mã nguồn mở

Phần mềm có thể được sao chép hoàn toàn miễn phí, người dùng hoàn toàn an tâm khi chia sẻ một chương trình tốt với bạn bè

Hầu hết các sản phẩm Open Source đều có khả năng bảo mật tuyệt vời, khi một vết nứt được tìm thấy, nó thường được vá nhanh hơn phần mềm có bản quyền Các hệ thống Open Source, nhất là các hệ thống dựa trên UNIX, thường rất linh hoạt Bởi vì chúng được xây dựng từ nhiều khối thống nhất và được mô tả cặn kẽ, rất dễ để người dùng thay thế nhiều phần của hệ thống với phần có giao diện tương tự

Có một cộng đồng hỗ trợ lớn, không bị phụ thuộc vào một công ty nào

Giới thiệu về sơ lược về PostgreSQL

PostgreSQL là hệ quản trị cơ sở dữ liệu được viết theo hướng mã nguồn mở và rất mạnh mẽ Hệ quản trị cơ sở dữ liệu này đã có hơn 15 năm phát triển, đồng thời cấu trúc đã được kiểm chứng và tạo được lòng tin với người sử dụng, độ tin cậy, tính toàn vẹn dữ liệu, tính đúng đắn 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 Có hỗ trợ đầy đủ các foreign keys, joins, views, triggers và stored procedures (trên nhiều ngôn ngữ) Hệ quản trị này bao gồm các kiểu dữ liệu SQL: 2008 như INTEGER, NUMBER, BOOLEAN, CHAR, VARCHAR, DATA INTERVAL VÀ TIMESTAMPS PostgreSQL cũng hỗ trợ lưu trữ các đối tượng có kiểu dữ liệu nhị phân lớn, bao gồm cả hình ảnh, âm thanh, hoặc video Hệ quản trị cơ sở dữ liệu này được sử dụng thông qua giao diện của các ngôn ngữ C/C++, Java, Net, Perl, Python, Ruby, Tcl, ODBC

Là một hệ quản trị cơ sở dữ liệu mạnh; PostgreSQL có 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, 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ố người truy cập đồng thời Đã từng có những hệ thống PostgreSQL hoạt động trong môi trường thực tế thực hiện quản lý vượt quá 4 terabyte dữ liệu

Sau đây là một số thông tin giới hạn khả năng của PostgreSQL:

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 1 GB

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 vào loại cột

Chỉ số tối đa của mỗi tháng Không giới hạn

Bảng 1 Thông tin giới hạn khả năng của PostgreSQL 1.2.1.2 Các tính năng của PostgreSQL

PostgreSQL cung cấp nhiều tính năng giúp các nhà phát triển xây dựng ứng dụng, giúp quản trị viên xây dựng môi trường chịu lỗi bằng cách bảo vệ tính toàn vẹn dữ liệu Dưới đây là một số tính năng của PostgreSQL:

Tương thích với các nền tảng khác nhau sử dụng tất cả các ngôn ngữ chính và phần mềm trung gian

Hướng đối tượng: trong PostgreSQL mỗi bảng được định nghĩa như một lớp

Mã nguồn mở: có một lượng lớn người dùng và phát triển PostgreSQL

Kiểu dữ liệu: PostgreSQL hỗ trợ nhiều kiểu dữ liệu khác nhau như: string, bolean, text, varchar, number, đặc biệt là kiểu dữ liệu geometry giúp cho việc truy vấn các đối tượng shape file (*.shp) được thực hiện dễ dàng và nhanh chóng Ngoài ra, PostgreSQL cũng hỗ trợ nhiều kiểu dữ liệu thông dụng khác

PostgreSQL/ PostGIS được hỗ trợ bởi khá nhiều phần mềm GIS (kể cả phần mềm mở lẫn phần mềm thương mại như ArcGIS)

1.2.1.3 Các công cụ quản trị trong PostgreSQL

Công cụ dòng lệnh psql là công cụ lệnh dùng phổ biến trong PostgreSQL Công cụ này cho phép người dùng:

Kết nối tới cơ sở dữ liệu

Quản lý cơ sở dữ liệu: tạo cơ sở dữ liệu, thêm bảng, truy cập hay cập nhật dữ liệu sử dụng các lệnh SQL

Công cụ đồ họa pgAdmin 4

PgAdmin 4 là một giao diện đồ họa cho cơ sở dữ liệu trong PostgreSQL Đây là công cụ quản lý và phát triển cơ sở dữ liệu PostgreSQL mạnh mẽ, miễn phí và cung cấp nhiều tính năng như:

Tạo và xóa tablespaces, database, tabales và schemas

Thi hành lệnh SQL với cửa sổ truy vấn

Xuất kết quả truy vấn SQL thành các tập tin

Sao chép, phục hồi database hoặc tables

Xem, biên tập và thêm dữ liệu vào table

Postgis công cụ mở rộng của PostgresSQL

Hỗ trợ các phép truy vấn và phân tích không gian hoàn toàn bằng dòng lệnh SQL

Là một module mở rộng bổ sung vào PostgreSQL hỗ trợ quản lý dữ liệu không gian

Hỗ trợ lưu trữ dữ liệu không gian

1.2.2 Ưu điểm và nhược điểm của PostgreSQL

PostgreSQL có thể chạy các trang web và ứng dụng web động với LAMP Ghi nhật ký viết trước của PostgreSQL làm cho nó trở thành một cơ sở dữ liệu có khả năng chịu lỗi cao

Mã nguồn PostgreSQL có sẵn miễn phí theo giấy phép nguồn mở Điều này cho phép người dùng tự do sử dụng, sửa đổi và triển khai nó theo nhu cầu kinh doanh PostgreSQL hỗ trợ các đối tượng địa lý để người dùng có thể được sử dụng làm kho lưu trữ dữ liệu không gian địa lý cho các dịch vụ dựa trên vị trí và hệ thống thông tin địa lý

Hỗ trợ đa người dùng: dữ liệu không gian có xu hướng là các dữ liệu tham chiếu, 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 như: 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 hay không được nhìn thấy

Dễ sử dụng, dễ cấu hình, thích ứng tốt, độ tin cậy cao

Hỗ trợ tốt với PHP và Java

Hoạt động được trên nhiều hệ điều hành như: Windows , Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)

Tạo chỉ mục giúp quá trình truy vấn đạt hiệu quả cao hơn

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ó thể tạo mới kiểu dữ liệu, các hàm, các thủ tục (procedure)…

Hạn chế việc bảo trì hệ thống

Bên cạnh những điểm mạnh thì PostgreSQL cũng có những điểm yếu:

Postgres không thuộc sở hữu của một tổ chức Vì vậy, nó đã gặp khó khăn khi đưa tên của mình ra khỏi đó mặc dù có đầy đủ tính năng và có thể so sánh với các hệ thống DBMS khác

Những thay đổi được thực hiện để cải thiện tốc độ đòi hỏi nhiều công việc hơn MySQL vì PostgreSQL tập trung vào khả năng tương thích

Nhiều ứng dụng nguồn mở hỗ trợ MySQL, nhưng có thể không hỗ trợ PostgreSQL

Về số liệu hiệu suất, nó chậm hơn MySQL.

Cấu hình máy và cài đặt PostgreSQL

1.3.1 Cấu hình máy và phầm mềm yêu cầu

Hệ điều hành: Chạy trên tất cả các hệ điều hành, bao gồn Windows, Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)

CPU: (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)

Dung lượng ổ cứng tối thiểu 475MB

Hệ quản trị cơ sở dữ liệu PostgreSQL: Postgresql-12.3

Truy cập https://www.postgresql.org/download/windows/ để download bản PostgreSQL cho hệ điều hành Windows

Trước khi cài đặt phải download phiên bản cài đặt Lựa chọn version muốn cài đặt, máy người dùng là windows 64 bit nên sẽ cài phiên bản Windows x86-64

Click đúp vào file exe vừa tải về

Nhập các thông tin cấu hình PostgreSQL theo hướng dẫn khi cài đặt:

Chọn các component cài đặt (nếu người dùng chỉ cần server để lưu và truy vấn dữ liệu thì chỉ cần chọn PostgreSQL Server) Ở đây người dùng chọn tất cả (pgAdmin 4 tương tự như MySQL Workbench, Stack Builder thì dùng để cài các tools, driver liên quan)

Nhập mật khẩu cho user postgres

(postgres là user mặc định, có quyền cao nhất – superuser)

Chọn cổng port cho PostgreSQL (port mặc định cho postgreSQL là 5432, nếu chưa bị trùng với port nào thì các cứ để mặc định)

23 Tick vào ô cài đặt Stack Builder để download và cấu hình các driver

Chọn driver để cài đặt (cho phép kết nối với Postgresql qua các ngôn ngữ khác)

24 Để hoàn tất quá trình cài đặt chọn Finish

Như vậy là đã cài đặt hệ quản trị cơ sở dữ liệu PostgreSQL thành công

Nhấp chuột vào Start  All Programs  pgAdmin 4

Click chuột phải vào biểu tượng PostgreSQL, chọn Connect Để vào giao diện chính của pgAdmin trước tiên phải nhập Passwork  OK

Hình 1 1 Giao diện nhập Passwork của PostgreSql

Ngoài ra người dùng cũng có thể truy cập qua url http://127.0.0.1:57386/browser/ và đăng nhập Password tương tự

Hình 1 2 Giao diện trang chủ pgAdmin Để tạo cơ sở dữ liệu click chuột phải vào Databases chọn New Databases như hình:

Hình 1 3 Tạo cơ sở dữ liệu

Thiết lập thông số cho cơ sở dữ liệu:

Database: Nhập tên cho cơ sở dữ liệu là “QLCay”

Owner: Chọn nhân viên có quyền thao tác trên cơ sở dữ liệu

Nhấp Save để hoàn thành.

Dùng Model tạo Bảng Database trong Python Django

1.4.1 Kết nối Django và Postgresql

Sau khi khởi tạo một project với django, django sẽ tự động tạo ra một cơ sở dữ liệu SQLite, được gọi là db.sqlite3 trong thư mục chính của project và kết nối tới app người dùng, code ở trong file setting.py:

Các trường NAME, USER, PASSWORD là những trường đã được tạo với Postgres database ở trên HOST sẽ là localhost trong quá trình phát triển và Postgres sẽ được chạy mặc định trên PORT 5432 Cụ thể như sau:

Như vậy là đã hoàn thành kết nối Django với PostgreSQL

1.4.2 Tạo bảng database với Model

Sau khi tạo app “qlcayxanh” thành công, vào file models.py để thiết kế bảng dữ liệu ranh_gioi

Dựa vào thư viện model hỗ trợ trong Django, thiết kế một class ranh_gioi để truy vấn, quản lý dữ liệu với bảng ranh_gioi như sau:

Sau đó trở lại với terminal, cùng ở thư mục WEBGISQN đã tạo và run với câu lệnh như sau:

Lệnh makemigrations để tạo các file migration, file migration này nhằm xử lý tác động đến model (thêm hay xóa model, thêm sửa xóa các field trong models, ) mà người dùng muốn tác động đến database để tạo ra bảng ranh_gioi Sau này có chỉnh sửa các file models.py thì khi makemigrations sẽ có thêm các file migration, nó như là các file lịch sử người dùng đã tác động gì đến database

Lệnh migrate thực hiện chạy các file migration để lưu các bảng vào cơ sở dữ liệu thành công

Vào lại pgAdmin 4 để kiểm tra chắc chắn dữ liệu đã được kết nối:

Hình 1 4 Giao diện bảng ranh_gioi trên pgAdmin

Như vậy là đã hoàn thành dùng Model để tạo bảng database trong Python Django.

Tổng quan về WebGIS

GIS có nhiều định nghĩa nên WebGIS cũng có nhiều định nghĩa Nói chung, các định nghĩa của WebGIS dựa trên những định nghĩa đa dạng của GIS và có thêm các thành phần của Web Sau đây là một số định nghĩa về WebGIS:

WebGIS là một hệ thống phức tạp cung cấp truy cập trên mạng với những chức năng như là bắt giữ hình ảnh, lưu trữ, hợp nhất dữ liệu, thao tác dữ liệu, phân tích và hiển thị dữ liệu không gian

WebGIS là hệ thống thông tin địa lý được phân bố thông qua hệ thống mạng máy tính phục vụ cho việc hợp nhất, phân tán, giao tiếp với các thông tin địa lý được hiển thị trên World Wide Web Trong cách thực hiện nhiệm vụ phân tích GIS, dịch vụ này gần giống như kiến trúc Client-Server của Web Xử lý thông tin địa lý được chia thành các nhiệm vụ ở phía server và phía client Điều này cho phép người dùng có thể xuất, thao tác và nhận kết quả từ việc khai thác dữ liệu GIS từ trình duyệt web mà không phải trả tiền cho phần mềm GIS

Một client tiêu biểu là trình duyệt web và server-side bao gồm một Webserver có cung cấp một chương trình phần mềm WebGIS Client thường yêu cầu một ảnh bản đồ hay vừa xử lý thông tin địa lý qua Web đến server ở xa Server chuyển đổi yêu cầu thành mã nội bộ và gọi những chức năng về GIS bằng cách chuyển tiếp yêu cầu tới phần mềm WebGIS Phần mềm này trả về kết quả, sau đó kết quả này được định dạng lại cho việc trình bày bởi trình duyệt hay những hàm từ các plug-in hoặc Java applet Server sau đó trả về kết quả cho client hiển thị, hoặc gửi dữ liệu và các công cụ phân tích đến client để dùng ở phía client

Phần lớn sự chú ý gần đây là tập trung vào việc phát triển các chức năng GIS trên Internet WebGIS có tiềm năng lớn trong việc làm cho thông tin địa lý trở nên hữu dụng và sẵn sàng đưa tới số lượng lớn người dùng trên toàn thế giới Thách thức lớn của WebGIS là việc tạo ra một hệ thống phần mềm không phụ thuộc vào platform và chạy trên chuẩn giao thức mạng TCP/IP, có nghĩa là khả năng WebGIS được chạy trên bất kỳ trình duyệt web của bất kỳ máy tính nào nối mạng Internet Đối với vấn đề này, các phần mềm GIS phải được thiết kết lại để trở thành ứng dụng WebGIS theo các kỹ thuật mạng Internet

1.5.2 Nguyên lý hoạt động của WebGIS

Web Server tiếp nhận các yêu cầu từ Client, lấy dữ liệu từ CSDL theo yêu cầu của Client và trả kết quả theo yêu cầu

Khi Client gửi yêu cầu đến server, Web Server sẽ phân tích yêu cầu nhận được Nếu yêu cầu đó liên quan đến bản đồ hay dữ liệu địa lý, Web Server sẽ gửi yêu cầu đến Map Server để truy xuất những thông tin liên quan đến dữ liệu bản đồ Khi có được nguồn dữ liệu phù hợp với yêu cầu của Client, Map Server gửi sang Web Server Web Server sẽ trả thông tin về cho người duyệt web theo giao diện web được cài đặt sẵn

Hình 1 5 Nguyên lý hoạt động của WebGIS

Công cụ hỗ trợ phát triển hệ thống

Chương trình soạn thảo Visual Studio Code

Link download Visual Studio Code : ( https://code.visualstudio.com/download ) GitHub

1.6.1 Visual Studio Code là gì?

Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS, Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn hảo giữa IDE và Code Editor

Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các tùy chọn khác

1.6.2 Một số tính năng quan trọng của Visual Studio Code

Hỗ trợ đa nền tảng

Nếu như với các công cụ lập trình khác thường chỉ được sử dụng cho một trong

3 hệ điều hành sau: Windows, Linux, Mac Systems thì trái lại, Visual Studio cho phép bạn lập trình dễ dàng trên cả ba nền tảng trên mà không gặp bất cứ trở ngại nào

Hỗ trợ nhiều ngôn ngữ lập trình

Cũng vậy, Visual Studio ghi điểm trong mắt người dùng nhờ lợi thế hỗ trợ nhiều ngôn ngữ lập trình cùng lúc từ C/C++, C# cho đến F#, Visual Basic, HTML, CSS, JavaScript… Do đó, nó có thể phát hiện và nhanh chóng đưa ra thông báo ngay khi chương trình có lỗi

Như mọi IDE khác, Visual Studio cũng cung cấp trình soạn thảo mã hỗ trợ hoàn thiện mã và làm rõ cú pháp bằng cách sử dụng IntelliSense IntelliSense là thuật ngữ chung cho một số tính năng: danh sách thành viên, thông tin tham số, thông tin nhanh và toàn bộ từ Công cụ này không chỉ sử dụng cho các hàm, biến và các phương pháp mà còn áp dụng cho các cấu trúc ngôn ngữ bao gồm truy vấn hoặc vòng điều khiển

Ngoài ra, những trình biên tập mã của Visual Studio còn hỗ trợ cài đặt dấu trang trong mã giúp người dùng dễ dàng thực hiện các điều hướng thu hẹp khối mã lệnh, tìm kiếm gia tăng… Đặc biệt, Visual Studio còn có chức năng biên dịch mã nền giúp cung cấp thông tin phản hồi về cú pháp hoặc biên dịch lỗi và được đánh dấu bằng những gạch sóng đỏ

Thiết kế này của Visual Studio được dùng với mục tiêu xây dựng GUI cho Windows Forms, nhằm xây dựng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh mẫu Việc điều khiển trình bày dữ liệu có thể sẽ được kết nối với các nguồn cơ sở dữ liệu hoặc truy vấn

Cũng giống như trên tính năng thiết kế WDP Designer cho phép người dùng kéo, thả ẩn dụ Chức năng này sử dụng để tương tác giữa người và máy tính nhằm mục tiêu vào Windows Presentation Foundation

Visual Studio cũng cung cấp trình soạn thảo và thiết kế website cho phép xây dựng các trang web qua chức năng kéo thả Điều này giúp người dùng xây dựng website dễ dàng hơn Nhất là với những doanh nghiệp cần xây dựng những website đơn giản như: thiết kế website du lịch, giáo dục… có thể sử dụng cách thức này mà vẫn cho phép bạn sở hữu một website với các chức năng hoàn chỉnh

Cung cấp kho tiện ích mở rộng

Khi muốn sử dụng một ngôn ngữ lập trình mà Visual Studio không có sẵn? Rất đơn giản, chỉ cần tải xuống kho tiện ích mở rộng của công cụ này là xong Điều đặc biệt là việc tải xuống những chức năng này không làm ảnh hưởng đến hiệu năng của Visual Studio bởi chúng hoạt động hoàn toàn độc lập với nhau

Bảo mật kho lưu trữ hiệu quả

Nhu cầu lưu trữ an toàn trong lập trình là rất lớn Với Visual Studio, người dùng có thể yên tâm về vấn đề này Bởi công cụ này dễ dàng kết nối với Git hoặc bất kỳ kho lưu trữ nào hiện có và đảm bảo an toàn cao cho chúng

Lưu trữ dữ liệu ở dạng phân cấp

Tại Visual Studio hầu hết các tệp lưu trữ đoạn mã code đều được đặt trong các thư mục tương đương nhau Ngoài ra, với những tệp đặc biệt quan trọng, Visual Studio cũng cung cấp các thư mục phân cấp nhằm giúp người dùng dễ dàng lưu trữ và tìm kiếm dữ liệu

Sử dụng Visual Studio, người dùng có thể kéo hoặc copy mã trực tiếp từ GitHub Sau đó, có thể thay đổi các mã này và lưu lại trên phần mềm

Git là phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus

Torvalds vào năm 2005 và hiện được dùng rất phổ biến So với các hệ thống quản lý phiên bản tập trung khi tất cả mã nguồn và lịch sử thay đổi chỉ được lưu một nơi là máy chủ thì trong hệ thống phân tán, các máy khách không chỉ “check out” phiên bản mới nhất của các tập tin mà là sao chép toàn bộ kho mã nguồn Như vậy, nếu như máy chủ ngừng hoạt động, thì hoàn toàn có thể lấy kho chứa từ bất kỳ máy khách nào để sao chép ngược trở lại máy chủ để khôi phục lại toàn bộ hệ thống Mỗi checkout thực sự là một bản sao đầy đủ của tất cả dữ liệu của kho chứa từ máy chủ

Hình 1 6 Mô hình tổ chức dữ liệu phân tán trên Git

GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm GitHub cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản Các dự án mã nguồn mở sẽ được cung cấp kho lưu trữ miễn phí Tính đến tháng 4 năm 2016, GitHub có hơn 14 triệu nhân viên với hơn 35 triệu kho mã nguồn, làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới Github đã trở thành một yếu tố có sức ảnh hưởng trong cộng đồng phát triển mã nguồn mở Thậm chí nhiều nhà phát triển đã bắt đầu xem nó là một sự thay thế cho sơ yếu lý lịch và một số nhà tuyển dụng yêu cầu các ứng viên cung cấp một liên kết đến tài khoản Github để đánh giá ứng viên Sự phát triển của nền tảng GitHub bắt đầu vào ngày 19 tháng 10 năm 2007 Trang web được đưa ra vào tháng 4 năm 2008 do Tom Preston-Werner, Chris Wanstrath, và PJ Hyett thực hiện sau khi nó đã được hoàn thành một vài tháng trước đó, xem như giai đoạn beta

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Mô tả hệ thống

Trong những năm qua vấn đề cây xanh đô thị tỉnh Quảng Nam đã được cấp trên quan tâm đầu tư trồng chăm sóc cây ở các tuyến đường đô thị, mang lại không gian xanh cho đô thị

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 m2/người; diện tích đất cây xanh trong khu công cộng như công viên, tiểu hoa viên, nghĩa trang là 62,9 ha, đạt trên 7 m2/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, các khu công nghiệp,… là 50,1 ha; ngoài ra còn có một phần lớn diện tích cây xanh trong khu vực bảo tồn sinh thái, khu ven sông vùng ngập nước với các loài cây bản địa

Hiện nay các trang Web site xuất hiện ngày càng nhiều và phổ biến Do người dân ngày càng tiếp cận nhiều hơn với tin học, chú trọng vào việc tìm kiếm thông tin trên mạng để nắm bắt thông tin một cách nhanh chóng, tiện lợi nhằm phục vụ cho các vấn đề trong đời sống hằng ngày như kinh doanh, giáo dục, giải trí và kể cả một trong những vấn đề đang được quan tâm nhất hiện nay là tình hình giao thông vận tải

Sự phát triển mạnh mẽ về mặt kinh tế của tỉnh là những hệ quả về mặt môi trường như ngập úng, ô nhiễm tiếng ồn, diện tích cây xanh ngày càng giảm,… do đó vấn đề quản lý cây xanh đô thị đang dần trở nên cấp thiết Quản lý bằng giấy tờ không giúp cho nhà quản lý có thể quản lý được thông tin của một cây xanh chặt chẽ và nhanh chóng Tuy nhiên, hệ thống thông tin địa lý (GIS) có thể giải quyết được những điều này GIS ra đời vượt hẳn một số phương pháp quản lý bằng giấy tờ và đạt được những kết quả cao, là một công cụ hỗ trợ đắc lực cho nhà quản lý Không những đáp ứng được các nhu cầu trong quản lý về thuộc tính, vị trí, tình trạng sinh trưởng, GIS còn có khả năng mô hình hóa lại thế giới thực, giúp nhà quản lý không mất nhiều thời gian và công sức trong việc giải quyết những vấn đề ngoài thực địa Trên tư tưởng đó em muốn xây dựng một WebSite sử dụng công nghệ

WebGIS nhằm làm cho trang Web thêm phần sinh động, cung cấp một số chức năng cần thiết cho người dùng.

Phân tích yêu cầu

2.2.1 Yêu cầu về chức năng

Các chức năng thực tế để hệ thống hoạt động

Người quản lý đưa ra yêu cầu (thêm, sửa, xóa) cập nhật các danh mục tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả

Quản lý đường giao thông

Hiển thị thông tin chi tiết về tình trạng cây, các cây cần từ bỏ Nhân viên sẽ có thể cập nhật lại số lượng cây và các cây gặp sự cố Nhân viên đưa ra yêu cầu (thêm, sửa, xóa) thông tin cây, cập nhật cây cho hệ thống, cập nhật ranh giới và đường giao thông Hệ thống sẽ thực hiện lệnh và đưa ra kết quả

Người quản lý đưa ra yêu cầu (thêm, sửa, xóa) nhân viên chăm sóc cây Hệ thống sẽ thực hiện lệnh và đưa ra kết quả

Thống kê theo loại cây

Thống kê theo tình trạng cây

Thống kê theo tên cây

Thống kê theo tháng trồng

Thống kế theo tên đường

Người quản lý đưa ra yêu cầu thống kê các danh mục tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả

Phóng to/ Thu nhỏ bản đồ

Tìm kiếm mã số cây

Hiển thị thông tin cây

Người quản lý sẽ chọn hiển thị các lớp bản đồ (lớp cây xanh)

Người quản lý có thể tương tác bản đồ bằng cách nhấp giữ và di chuyển chuột lên bản đồ hoặc điều khiển thanh điều hướng Di chuyển bản đồ đến vị trí theo điều khiển chuột Phóng to, thu nhỏ Nhấp đôi chuột lên bản đồ hoặc di chuyển lên xuống thanh điều hướng hoặc rê chuột lên bản đồ Hiển thị vùng không gian bản đồ được phóng to hay thu nhỏ Hiển thị thông tin click chọn vào các địa điểm trên bản đồ

Người quản lý đưa ra yêu cầu (thêm, sửa, xóa) cập nhật các danh mục tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả

Người quản lý đưa ra yêu cầu (thêm, sửa, xóa) cập nhật các tin tức, liên kết trên trang chủ tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả

Người quản lý đưa ra yêu cầu đổi mật khẩu tới hệ thống Hệ thống sẽ thực hiện lệnh và đưa ra kết quả

2.2.2 Yêu cầu phi chức năng

Dung lượng bộ nhớ: 2GB

Môi trường xây dựng phần mềm

J2EE môi trường Java (công cụ Rational Rose)

Lập trình: Visual studio code

Hệ thống tin cậy và chính xác, giao diện thân thiện, dễ sử dụng Đảm bảo bảo mật cho người điều hành hệ thống

Phải có tính linh hoạt cao.

Mô hình Ri

R1.1 Người quản lý mở của sổ

R1.3 Người quản lý đăng nhập thành công

R2.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R2.2 Người quản lý đăng nhập thành công

R2.3 Người quản lý vào quản lý nhân viên

R2.4 Người quản lý kiểm tra và chỉnh sửa

R2.5 Người quản lý lưu lại thông tin của nhân viên

R3.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R3.2 Người quản lý đăng nhập thành công

R3.3 Người quản lý vào quản lý cây, cập nhật cây, quản lý ranh giới, quản lý đường giao thông

R3.4 Người quản lý kiểm tra và chỉnh sửa

R3.5 Người quản lý lưu lại thông tin dữ liệu

R4.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R4.2 Người quản lý đăng nhập thành công

R4.3 Người quản lý vào quản lý thêm, sửa, xóa

R4.4 Người quản lý kiểm tra và chỉnh sửa

R4.5 Người quản lý lưu lại thông tin chăm sóc cây

R4.6 Người quản lý xuất xuất file excel danh sách chăm sóc cây xanh

R5.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R5.2 Người quản lý đăng nhập thành công

R5.3 Người quản lý vào thống kê

R5.4 Người quản lý thống kê số theo loại cây

R5.5 Người quản lý thống kê theo tình trạng cây

R5.6 Người quản lý thống kê theo tên cây

R5.7 Người quản lý thống kê theo tháng trồng

R5.8 Người quản lý thống kê theo tên đường

R5.8 Người quản lý xuất file excel thống kê

R6.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R6.2 Người quản lý đăng nhập thành công

R6.3 Người quản lý vào bản đồ

R6.4 Người quản lý di chuyển bản đồ

R6.5 Người quản lý phóng to/ thu nhỏ bản đồ

R6.6 Người quản lý tìm kiếm

R6.7 Người quản lý hiển thị thông tin cây

R6.8 Người quản lý in bản đồ

R6.9 Người quản lý xem bảng thuộc tính cây xanh có trên bản đồ R6.10 Người quản lý xuất danh sách cây xanh

R7.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R7.2 Người quản lý đăng nhập thành công

R7.3 Người quản lý vào quản lý tài khoản hệ thống

R7.4 Người quản lý thêm mới, kiểm tra và chỉnh sửa

R7.5 Người quản lý lưu lại thông tin tài khoản

R8.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R8.2 Người quản lý đăng nhập thành công

R8.3 Người quản lý vào thiết lập

R8.4 Người quản lý thêm mới, kiểm tra và chỉnh sửa (tin tức, liên kết)

R8.5 Người quản lý lưu lại thông tin

R9.1 Người quản lý mở của sổ

R1.1.1 Nhập tên đăng nhập, mật khẩu

R9.2 Người quản lý đăng nhập thành công

R9.3 Người quản lý vào đổi mật khẩu

R9.4 Người quản lý lưu lại thông tin

Đặc tính từng người dùng

2.4.1 Người quản lý Đăng nhập

Giao diện đăng nhập vào hệ thống quản lý cơ sở dữ liệu Sau khi đăng nhập sẽ đến các trang quản lý: thêm, sửa, xóa thông tin

Người quản lý kiểm soát toàn bộ hoạt động của trang Web

Cập nhật thông tin cây xanh hoặc thêm mới cây xanh

Người quản lý tra cứu, xem thông tin cây xanh trên bản đồ Tìm kiếm tên cây và tên đường Thêm mới lớp bản đồ và di chuyển bản đồ, phóng to/thu nhỏ bản đồ, tìm kiếm mã số cây, in bản đồ, xuất các file excel cần thiết

Nhân viên nộp hồ sơ cho người quản lý Người quản lý sẽ tiếp nhận hồ sơ và lưu thông tin của nhân viên vào hệ thống.

Phân tích thiết kế hệ thống

2.5.1 Xác định Actor và vai trò của Actor

Hiển thị thông tin chi tiết nhân viên, thống kê báo cáo, quản lý nhân viên, quản lý tài khoản, quản lý dữ liệu, quản lý chăm sóc cây, đăng nhập, thêm, sửa, xóa hồ sơ

Nhân viên phải điền thông tin đầy đủ vào hồ sơ để nộp cho người quản lý

2.5.2 Sơ đồ Use Case (UC)

Tên ca sử dụng: Đăng nhập

Các tác nhân: Người quản lý Điều kiện: Phải đăng nhập vào hệ thống trước

Mô tả: Người quản lý nhập tên đăng nhập và mật khẩu để đăng nhập vào hệ thống nếu tên đăng nhập và mật khẩu đúng thì sẽ đăng nhập vào hệ thống ngược lại hệ thống yêu cầu nhập lại

Các luồng sự kiện chính trong UC_Đăng nhập:

1 Use Case bắt đầu khi có người truy cập vào

2 Use Case ở trạng thái sẵn sàng dữ liệu trong cơ sở dữ liệu để đối chiếu

3 Use Case sẽ yêu cầu người quản lý nhập thông tin (tên đăng nhập và mật khẩu) khi cần đăng nhập để phản hồi thông tin

Các luồng sự kiện phụ trong UC_ Đăng nhập:

Use Case hiển thị giao diện quản lý

Hệ thống hiển thị thông báo lỗi

Hình 2 1 Biểu đồ Use Case Đăng nhập 2.5.2.2 UC_Chăm sóc cây

Tên ca sử dụng: Chăm sóc cây Điều kiện: Người quản lý phải đăng nhập vào hệ thống trước khi Use case này bắt đầu

Tác nhân: Người quản lý

Mô tả: Người quản lý truy cập vào hệ thống, Use case này cho phép người quản lý duy trì thông tin lịch chăm sóc cây trong hệ thống Bao gồm các thao tác: thêm mới, chỉnh sửa thông tin, xóa thông tin ra khỏi hệ thống, xuất file excel

Các sự kiện chính trong UC_ Chăm sóc cây:

1 Use Case bắt đầu khi người quản lý truy cập vào

2 Use Case ở trạng thái sẵn sàng hiển thị nội dung theo yêu cầu của người quản lý

3 Use Case yêu cầu người quản lý chọn chức năng muốn thực hiện

Sau khi người quản lý chọn chức năng, một trong các luồng phụ tương ứng sau được thực hiện:

Nếu người quản lý chọn “Chăm sóc cây”: luồng phụ chăm sóc cây được thực hiện

Tác nhân: Người quản lý

Mô tả: Hệ thống yêu cầu người quản lý chọn chức năng muốn thực hiện: thêm , chỉnh sửa , xóa

Sau khi người quản lý chọn chức năng, một trong các luồng phụ tương ứng sau được thực hiện:

Nếu người quản lý chọn “Thêm lịch chăm sóc cây”: luồng phụ thêm lịch chăm sóc cây được thực hiện

Nếu người quản lý chọn “Sửa lịch chăm sóc cây”: luồng phụ sửa lịch chăm sóc cây được thực hiện

Nếu người quản lý chọn “Xóa lịch chăm sóc cây”: luồng phụ xóa lịch chăm sóc cây được thực hiện

❖ UC_Thêm lịch chăm sóc cây

Tác nhân: Người quản lý

Mô tả: Hệ thống yêu cầu người quản lý nhập thông tin về lịch chăm sóc cây, gồm: 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(*)

Lưu ý: Các thông tin có dấu sao (*) là các thông tin bắt buộc phải có

Thông tin đầu vào bao gồm: họ tên nhân viên, ngày chăm sóc, cây cần chăm sóc, công việc cần chăm sóc

Thông tin đầu ra bao gồm: là một bản ghi mới bao gồm các thông tin trên

❖ UC_ Sửa lịch chăm sóc

Tác nhân: Người quản lý

Mô tả: Hệ thống truy xuất và hiển thị thông tin lịch chăm sóc cây đã được người quản lý hệ thống chọn từ danh sách lịch chăm sóc cây

Người quản lý hệ thống thay đổi một số thông tin lịch chăm sóc cây Bao gồm: 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

Sau khi sửa đổi các thông tin, người quản lý hệ thống chọn chức năng cập nhật

Hệ thống kiểm tra tính hợp lệ của các thông tin

Thông tin đầu vào bao gồm: các thông tin trên

Thông tin đầu ra: thông tin về lịch chăm sóc được cập nhật lại vào hệ thống và đưa trở ra lại màn hình

❖ UC_ Xóa lịch chăm sóc cây

Tác nhân: Người quản lý

Mô tả: Hệ thống nhắc người quản lý xác nhận xóa thông tin lịch chăm sóc cây Người quản lý chấp nhận xóa

Thông tin về nhân viên được xóa hoàn toàn ra khỏi hệ thống

Chinh sua lich cham soc

Hình 2 2 Biểu đồ Use Case Chăm sóc cây 2.5.2.3 UC_Thống kê

Tên ca sử dụng: Thống kê

Tác nhân: Người quản lý Điều kiện: Người quản lý phải đăng nhập vào hệ thống trước khi Use case này bắt đầu

Mô tả: Use case này cho phép người quản lý thống kê theo loại cây, tình trạng, tên đường, tháng trồng, tên cây, xuất file excel

Các luồng sự kiện chính trong UC_Thống kê:

1 Use Case bắt đầu khi người quản lý truy cập vào

2 Use Case ở trạng thái sẵn sàng hiển thị nội dung theo yêu cầu của người sử dụng

3 Use Case yêu cầu người quản lý chọn chức năng muốn thực hiện

4 Người quản lý chọn thống kê theo yêu cầu

5 Hệ thống sẽ thống kê và in ra file excel

Thong ke theo loai cay

Thong ke theo tinh trang

Thong ke theo ten duong

Thong ke theo thang trong

Thong ke theo ten cay

Hình 2 3 Biểu đồ Use Case Thống kê 2.5.2.4 UC_Thiết lập

Tên ca sử dụng: Thiết lập

Tác nhân: Người quản lý Điều kiện: Người quản lý phải đăng nhập vào hệ thống trước khi Use case này bắt đầu

Người quản lý truy cập vào hệ thống, Use case này cho phép người quản lý quản lý thiết lập thư viện Bao gồm các thao tác: chọn tab tin hoạt động hoặc liên kết website, hiển thị thông tin chi tiết, thêm, sửa, xóa

Các luồng sự kiện chính trong UC_Thiết lập:

1 Use Case bắt đầu khi người quản lý truy cập vào

2 Use Case ở trạng thái sẵn sàng hiển thị nội dung theo yêu cầu của người quản lý

3 Use Case yêu cầu người quản lý chọn chức năng muốn thực hiện

Sau khi người quản lý chọn chức năng, một trong các luồng phụ tương ứng sau được thực hiện:

Nếu người quản lý chọn tab “ Tin hoạt động ”: luồng phụ quản lý tin hoạt động được thực hiện

Nếu người quản lý chọn tab “ Liên kết website”: luồng phụ quản lý liên kết website được thực hiện

Quan ly tin hoat dong

Quan ly lien ket website

Hình 2 4 Biểu đồ Use Case quản lý thiết lập

❖UC_ Quản lý tin hoạt động

Tác nhân: Người quản lý

Mô tả: Hệ thống yêu cầu người quản lý chọn chức năng muốn thực hiện: thêm tin hoạt động, chỉnh sửa tin hoạt động, xóa tin hoạt động

Sau khi người quản lý chọn chức năng, một trong các luồng phụ tương ứng sau được thực hiện:

Nếu người quản lý chọn “Thêm tin hoạt động”: luồng phụ thêm tin hoạt động được thực hiện

Nếu người quản lý chọn “Chỉnh sửa tin hoạt động”: luồng phụ chỉnh sửa tin hoạt động được thực hiện

Nếu người quản lý chọn “Xóa tin hoạt động”: luồng phụ xóa tin hoạt động được thực hiện

❖ UC_ Thêm tin hoạt động

Tác nhân: Người quản lý

Mô tả: Hệ thống yêu cầu người quản lý nhập thông tin về tin hoạt động, gồm: tin hoạt động, hình ảnh hoạt động

Thông tin đầu vào bao gồm: tin hoạt động, hình ảnh hoạt động

Thông tin đầu ra bao gồm: là một bản ghi mới bao gồm các thông tin trên

❖ UC_Chỉnh sửa tin hoạt động

Tác nhân: Người quản lý

Mô tả: Hệ thống truy xuất và hiển thị thông tin của tin hoạt động đã được người quản lý hệ thống chọn từ danh tin hoạt động

Người sử dụng hệ thống thay đổi một số thông tin của tin hoạt động này Bao gồm: tin hoạt động và hình ảnh hoạt động

Sau khi sửa đổi các thông tin, người quản lý hệ thống chọn chức năng cập nhật

Hệ thống kiểm tra tính hợp lệ của các thông tin

Thông tin đầu vào bao gồm: các thông tin trên

Thông tin đầu ra: thông tin về tin hoạt động được cập nhật lại vào hệ thống và đưa trở ra lại màn hình

❖ UC_ Xóa tin hoạt động

Tác nhân: Người quản lý

Mô tả: Hệ thống nhắc người quản lý xác nhận xóa tin hoạt động (tin hoạt động này đã được người quản lý hệ thống chọn từ danh sách tin hoạt doạt động)

Người quản lý chấp nhận xóa

Thông tin về tin hoạt động được xóa hoàn toàn ra khỏi hệ thống

Quan ly tin hoat dong

Hình 2 5 Biểu đồ Use Case quản lý tin hoạt động

❖UC_ Quản lý liên kết website

Tác nhân: Người quản lý

Mô tả: Hệ thống yêu cầu người quản lý chọn chức năng muốn thực hiện: thêm liên kết website, chỉnh sửa liên kết website, xóa liên kết website

Sau khi người quản lý chọn chức năng, một trong các luồng phụ tương ứng sau được thực hiện:

Nếu người quản lý chọn “Thêm liên kết website”: luồng phụ thêm liên kết website được thực hiện

Nếu người quản lý chọn “Chỉnh sửa liên kết website”: luồng phụ chỉnh sửa liên kết website được thực hiện

Nếu người quản lý chọn “Xóa liên kết website”: luồng phụ xóa liên kết website được thực hiện

❖ UC_ Thêm tin liên kết website

Tác nhân: Người quản lý

Mô tả: Hệ thống yêu cầu người quản lý nhập thông tin về liên kết website, gồm: đường dẫn website và hình ảnh

Thông tin đầu vào bao gồm: đường dẫn website và hình ảnh

Thông tin đầu ra bao gồm: là một bản ghi mới bao gồm các thông tin trên

❖ UC_Chỉnh sửa liên kết website

Tác nhân: Người quản lý

Mô tả: Hệ thống truy xuất và hiển thị thông tin của liên kết website đã được người quản lý hệ thống chọn từ danh sách liên kết website

Người sử dụng hệ thống thay đổi một số thông tin của liên kết website này Bao gồm: đường dẫn website và hình ảnh

Sau khi sửa đổi các thông tin, người quản lý hệ thống chọn chức năng cập nhật

Hệ thống sẽ kiểm tra tính hợp lệ của các thông tin

Thông tin đầu vào bao gồm: các thông tin trên

Thông tin đầu ra: thông tin về liên kết website được cập nhật lại vào hệ thống và đưa trở ra lại màn hình

❖ UC_ Xóa liên kết website

Tác nhân: Người quản lý

Mô tả: Hệ thống nhắc người quản lý xác nhận xóa liên kết website (liên kết website này đã được người quản lý hệ thống chọn từ danh sách liên kết website) Người quản lý chấp nhận xóa

Thông tin về liên kết website được xóa hoàn toàn ra khỏi hệ thống

Quan ly lien ket website

Hình 2 6 Biểu đồ Use Case quản liên kết website 2.5.3 Sơ đồ UC tổng quát hệ thống quản lý cây canh

Hình 2 7 Biểu đồ Use Case tổng quát hệ thống quản lý cây xanh

STT Lớp Thuộc tính Thuộc tính khóa

1 Người quản lý id, họ, tên, tên đăng nhập, mật khẩu, email, is_superuser, is_staff, is_active id

2 Nhân viên Mã nhân viên, họ và tên, giới tính, địa chỉ, điện thoại

3 Ranh giới Mã ranh giới, tên ranh giới, type ranh giới, geom, ghi chú

Mã đường, tên đường, geom, ghi chú, mã ranh giới

5 Cây xanh Mã cây, tên cây xanh, chiều cao, hình ảnh, vị trí, ngày trồng, tình trạng, đặc điểm, geom, mã đường, mã loại cây

6 Loại cây Mã loại cây, tên loại cây Mã loại cây

7 Tình trạng id, tên tình trạng id

8 Chăm sóc cây id, ngày chăm sóc, mã nhân viên, tên đường, công việc

9 Thư viện id, hình ảnh hoạt động, tin hoạt động, liên kết, hình ảnh liên kết id

Bảng 3 Xác định các lớp

Hình 2 8 Lớp người quản lý

Hình 2 11 Lớp đường giao thông

Hình 2 15 Lớp chăm sóc cây

Hình 2 16 Lớp thư viện 2.5.4.4 Sơ đồ mối quan hệ giữa các class

Hình 2 17 Sơ đồ mối quan hệ giữa các class

2.5.5 Mô hình hóa hành vi của hệ thống

2.5.5.1.1 Biểu đồ tuần tự Đăng nhập

Giao dien chuong trinh Giao dien dang nhap

Giao dien dang nhap Xu ly dang nhap

Xu ly dang nhap CSDL CSDL

11: True: Thuc hien dang nhap 8: False : Thong bao loi

7: Goi kiem tra thong tin dang nhap

2: Goi giao dien dang nhap 3: Hien thi giao dien dang nhap 4: Giao dien dang nhap

5: Nhap ten dang nhap, mat

9: Hien thi thong bao loi

12: Hien thi thong bao dang nhap thanh cong

Hình 2 18 Biểu đồ tuần tự Đăng nhập Đặc tả hành vi Đăng nhập

1 Người sử dụng mở cửa sổ trong hệ thống

2 Người sử dụng đăng nhập

3 Nhập tên đăng nhập và mật khẩu

4 Nếu như sai sẽ quay lại bước 5

5 Đúng chương trình sẽ mở

2.5.5.1.2 Biểu đồ tuần tự Chăm sóc cây

: Nguoiquanly Giao dien chuong trinh

Giao dien cham soc cay

Giao dien cham soc cay Xu ly Xu ly CSDL CSDL

1: Yeu cau cham soc cay

2: Goi giao dien cham soc cay 3: Hien thi giao dien cham soc cay

4: Giao dien cham soc cay

6 : Chon chuc nang them lich cham soc

6.1 : Hien thi giao dien them lich cham soc

6.2 Nhap thong tin can them

7: Chon chuc nang sua lich cham soc cay

7.1 Chon lich cham soc cay can sua

8: Chon chuc nang xoa lich cham soc cay

8.1 Chon lich cham soc cay can xoa 8.2 Thao tac xoa

5: Hien thi cac chuc nang

6.6: Quay lai buoc 6.2 6.4 Thong tin khong hop le

7.5: Quay lai buoc 7.1 7.3 Thong tin khong hop le

8.3 Xoa lich cham soc cay

6.9 Thong tin phan hoi 6.10 Hien thi thong bao

6.8: Luu thong tin vao co so du lieu

7.7: Cap nhat thong tin vao co so du lieu

8.4 Xoa lich cham soc cay 8.5 Ket qua 8.6 Ket qua

Hình 2 19 Biểu đồ tuần tự Chăm sóc cây

60 Đặc tả hành vi Chăm sóc cây

1 Người quản lý đăng nhập hệ thống

2 Người quản lý chọn menu Chăm sóc cây

3 Người quản lý chọn Chăm sóc cây

4 Người quản lý chọn chức năng cần dùng: thêm, chỉnh sửa , xóa lịch chăm sóc cây

5 Người quản lý chọn chức năng thêm lịch chăm sóc cây

5.1 Giao diện thêm lịch chăm sóc cây hiển thị

5.2 Người quản lý nhập lịch chăm sóc cây cần thêm

5.3 Hệ thống kiểm tra thông tin

Thông tin không hợp lệ: thông báo lỗi

Thông tin hợp lệ: lưu vào cơ sở dữ liệu

6 Người quản lý chọn chức năng sửa lịch chăm sóc cây

6.1 Người quản lý chọn lịch chăm sóc câycần sửa

6.3: Hệ thống lấy lịch chăm sóc cây cần sửa hiển thị giao diện sửa lịch chăm sóc cây

6.2 Người quản lý nhập lịch chăm sóc cây cần sửa

6.3 Hệ thống kiểm tra thông tin sửa

Thông tin không hợp lệ: thông báo lỗi

Thông tin hợp lệ: lưu vào cơ sở dữ liệu

7 Người quản lý chọn chức năng xóa lịch chăm sóc cây

7.1 Người quản lý chọn lịch chăm sóc cây cần xóa

7.2 Người quản lý chọn thao tác xóa

7.3 Hệ thống xóa lịch chăm sóc cây ra khỏi cơ sở dữ liệu

2.5.5.1.3 Biểu đồ tuần tự Thống kê

: Nguoiquanly Giao dien chuong trinh

Giao dien chuong trinh Giao dien thong ke

Giao dien thong ke 1: Yeu cau thong ke

2: Goi giao dien thong ke

5: Chon chuc nang thong ke

6: Thong ke theo loai cay

8: Thong ke theo ten duong

3: Hien thi giao dien thong ke 4: Giao dien thong ke

7 Hien thi danh danh sach thong ke theo loai cay

9: Hien thi giao dien thong ke theo ten duong

10: Thong ke theo thang trong

11 Hien thi danh danh sach thong ke theo thang trong

12: Thong ke theo ten cay

13: Hien thi giao dien thong ke theo ten cay

14: Thong ke theo tinh trang 15: Hien thi giao dien thong ke theo hien trang

Hình 2 20 Biểu đồ tuần tự Thống kê Đặc tả hành vi Thống kê

1 Người quản lý đăng nhập vào hệ thống

2 Người quản lý chọn chức năng thống kê

3 Người quản lý chọn thống kê theo loại cây, tên đường, tình trạng, tháng trồng, tên cây

4 Người quản lý nhập yêu cầu của thống kê theo loại cây,tên đường, tình trạng, tháng trồng, tên cây

5 Hiển thị danh sách thống kê theo loại cây, tên đường, tình trạng, tháng trồng, tên cây

6 Quá trình lập thống kê thành công và sẵn sàng in ra

2.5.5.1.5 Biểu đồ tuần tự Thiết lập

2.5.5.1.5.1 Biểu đồ tuần tự Quản lý tin hoạt động

: Nguoiquanly Giao dien chuong trinh

4: Chon chuc nang them tin hoat dong

5: Chon chuc nang sua thong tin tin hoat dong

4.1: Hien thi giao dien them tin hoat dong

4.2: Nhap thong tin tin hoat dong can them

5.1: Chon tin hoat dong can chinh sua

5.6: Hien thi giao dien thong tin tin hoat dong can chinh sua

5.7: Nhap thong tin tin hoat dong can sua

6: Chon chuc nang xoa tin hoat dong 6.1: Chon tin hoat dong can xoa

6.7: Hien thi thong bao 6.2: Thao tac xoa

3: Hien thi cac chuc nang 2: Hien thi giao dien tin hoat dong

4.3: Kiem tra thong tin 4.4: Thong tin khong hop le

4.6: Quay lai buoc 4.2 4.6: Thong tin hop le

4.7: Luu thong tin vao CSDL 4.8: Thong bao phan hoi 4.9: Hien thi thong bao

5.2: Lay thong tin tin hoat dong

5.11: Quay lai buoc 5.7 5.12: Thong tin hop le

5.13: Cap nhat thong tin vao CSDL 5.14: Thong bao phan hoi 5.15: Hien thi thong bao

5.9: Thong tin khong hop le

5.3: Lay thong tin tin hoat dong 5.4: ket qua

6.4: Xoa tin hoat dong 6.5: Ket qua

Hình 2 21 Biểu đồ tuần tự Quản lý tin hoạt động

63 Đặc tả hành vi Quản lý tin hoạt động

1 Người quản lý đăng nhập hệ thống

2 Người quản lý chọn menu thiết lập

3 Người quản lý chọn tab tin hoạt động

4 Người quản lý chọn chức năng cần dùng: thêm tin hoạt động, chỉnh sửa tin hoạt động, xóa tin hoạt động

5 Người quản lý chọn chức năng thêm tin hoạt động

5.1 Giao diện thêm tin hoạt động hiển thị

5.2 Người quản lý nhập thông tin ranh giới cần thêm

5.3 Hệ thống kiểm tra thông tin

Thông tin không hợp lệ: thông báo lỗi

Thông tin hợp lệ: lưu vào cơ sở dữ liệu

6 Người quản lý chọn chức năng tin hoạt động

6.1 Người quản lý chọn tin hoạt động cần sửa

6.2 Hệ thống lấy thông tin tin hoạt động cần sửa hiển thị giao diện sửa tin hoạt động

6.3 Người quản lý nhập thông tin tin hoạt độngcần sửa

6.4 Hệ thống kiểm tra thông tin sửa

Thông tin không hợp lệ: thông báo lỗi

Thông tin hợp lệ: lưu vào cơ sở dữ liệu

7 Người quản lý chọn chức năng xóa tin hoạt động

7.1 Người quản lý chọn tin hoạt động cần xóa

7.2 Người quản lý chọn thao tác xóa

7.3 Hệ thống xóa tin hoạt động ra khỏi cơ sở dữ liệu

2.5.5.1.5.2 Biểu đồ tuần tự Quản lý liên kết website

4: Chon chuc nang them lien ket website

4.1: Hien thi giao dien them lien ket website

4.2: Nhap thong tin lien ket website can them

4.3: Kiem tra thong tin 4.4: Thong tin khong hop le

4.6: Quay lai buoc 4.2 4.6: Thong tin hop le

4.7: Luu thong tin vao CSDL 4.8: Thong bao phan hoi 4.9: Hien thi thong bao

5: Chon chuc nang sua thong tin lien ket website

5.1: Chon lien ket website can chinh sua

5.6: Hien thi giao dien thong tin lien ket website can chinh sua

5.2: Lay thong tin lien ket website

5.3: Lay thong tin tin hoat dong 5.4: ket qua

5.7: Nhap thong tin lien ket website can sua

5.11: Quay lai buoc 5.7 5.12: Thong tin hop le

5.13: Cap nhat thong tin vao CSDL 5.14: Thong bao phan hoi 5.15: Hien thi thong bao

5.9: Thong tin khong hop le

6: Chon chuc nang xoa lien ket website

6.1: Chon lien ket website can xoa

6.4: Xoa tin hoat dong 6.5: Ket qua

3: Hien thi cac chuc nang 2: Hien thi giao dien lien ket website

Hình 2 22 Biểu đồ tuần tự Quản lý liên kết website

65 Đặc tả hành vi Quản lý liên kết website

1 Người quản lý đăng nhập hệ thống

2 Người quản lý chọn menu thiết lập

3 Người quản lý chọn tab liên kết website

4 Người quản lý chọn chức năng cần dùng: thêm liên kết website, chỉnh sửa tin liên kết website, xóa liên kết website

5 Người quản lý chọn chức năng thêm liên kết website

5.1 Giao diện thêm liên kết website hiển thị

5.2 Người quản lý nhập thông tin liên kết website cần thêm

5.3 Hệ thống kiểm tra thông tin

Thông tin không hợp lệ: thông báo lỗi

Thông tin hợp lệ: lưu vào cơ sở dữ liệu

6 Người quản lý chọn chức năng liên kết website

6.1 Người quản lý chọn liên kết website cần sửa

6.2 Hệ thống lấy thông tin liên kết website cần sửa hiển thị giao diện sửa liên kết website

6.3 Người quản lý nhập thông tin liên kết website cần sửa

6.4 Hệ thống kiểm tra thông tin sửa

Thông tin không hợp lệ: thông báo lỗi

Thông tin hợp lệ: lưu vào cơ sở dữ liệu

7 Người quản lý chọn chức năng xóa liên kết website

7.1 Người quản lý chọn liên kết website cần xóa

7.2 Người quản lý chọn thao tác xóa

7.3 Hệ thống xóa liên kết website ra khỏi cơ sở dữ liệu

2.5.5.2.1 Biểu đồ hoạt động Đăng nhập

Yeu cau dang nhap he thong

Nhap ten dang nhap, mat khau

Kiem tra thong tin dang nhap

Hien thi thong bao loi False

Hien thi giao dien chuong trinh

Hình 2 23 Biểu đồ hoạt động Đăng nhập

2.5.5.2.2 Biểu đồ hoạt động Chăm sóc cây

Truy cap trang Dang nhap

Giao dien trang quan ly

Chon menu Cham soc cay

Hien thi giao dien Cham soc cay

Chon them lich cham soc cay

Chon sua lich cham soc cay

Nhap thong tin can thiet cua lich cham soc cay

Luu thong tin vao CSDL

Hien thi thong bao loi

Chon lich cham soc cay can sua

Hien thi chi tiet lich cham soc cay can sua

Kiem tra thong tin them

Kiem tra thong tin sua

Cap nhat thong tin moi vao CSDL

Chon xoa lich cham soc cay

Chon lich cham soc cay can xoa

Cap nhat lai lich cham soc cay

Hien thi lich cham soc cay

Thong tin hop le thong tin khong hop le

Nhap thong tin can sua

Hình 2 24 Biểu đồ hoạt động Chăm sóc cây

2.5.5.2.3 Biểu đồ hoạt động Thống kê

Truy cap trang dang nhap

Chon menu thong ke Sai

Chon chuc nang thong ke

Giao dien trang quan ly Dung

Hien thi giao dien thong ke

Thong ke theo loai cay

Thong ke theo ten cay

Thong ke theo tinh trang cay

Thong ke theo ten duong

Hien thi thong tin thong ke vua cap nhat

Luu file thong ke Thoat

Hình 2 25 Biểu đồ hoạt động Thống kê

2.5.5.2.4 Biểu đồ hoạt động Thiết lập

2.5.5.2.4.1 Biểu đồ hoạt động Quản lý tin hoạt động

Nhap thong tin can thiet cua tin hoat dong

Truy cap trang Dang nhap

Giao dien trang quan ly

Hien thi giao dien tin hoat dong

Chon them tin hoat dong

Chon sua tin hoat dong

Luu thong tin vao CSDL

Hien thi thong bao loi

Chon tin hoat dong can sua

Hien thi chi tiet tin hoat dong can sua

Kiem tra thong tin them

Kiem tra thong tin sua

Cap nhat thong tin moi vao CSDL

Chon xoa tin hoat dong

Chon tin hoat dong can xoa

Cap nhat lai tin hoat dong

Hien thi danh sach tin hoat dong

Nhap thong tin can sua

Thong tin hop le thong tin khong hop le Nhap lai

Hình 2 26 Biểu đồ hoạt động Quản lý tin hoạt động

2.5.5.2.4.2 Biểu đồ hoạt động Quản lý liên kết website

Nhap thong tin can thiet cua lien ket website

Truy cap trang Dang nhap

Giao dien trang quan ly

Hien thi giao dien tlien ket website

Chon them lien ket website

Chon sua lien ket website

Luu thong tin vao CSDL

Hien thi thong bao loi

Chon lien ket website can sua

Hien thi chi tiet lien ket website can sua

Kiem tra thong tin them

Kiem tra thong tin sua

Cap nhat thong tin moi vao CSDL

Chon xoa lien ket website

Chon lien ket website can xoa

Cap nhat lai lien ket website

Hien thi danh sach lien ket website

Nhap thong tin can sua

Thong tin hop le thong tin khong hop le Nhap lai

Hình 2 27 Biểu đồ hoạt động Quản lý tin hoạt động

Thiết kế cơ sở dữ liệu

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại ma_nv character varying(100) Yes Khóa chính ho_ten character varying(100) Yes Họ và tên người sử dụng gioi_tinh character varying(3) Yes Giới tính dien_thoai integer No Điện thoại dia_chi character varying(255) No Địa chỉ

Bảng nhân viên dùng để lưu trữ thông tin của nhân viên , mỗi nhân viên sẽ được quản lý bởi một mã nhân viên, thông tin nhân viên bao gồm họ tên, giới tính, điện thoại và địa chỉ

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại id integer Yes Khóa chính, tự động tăng first_name character varying(150) Yes Tên last_name character varying(150) Yes Họ username character varying(150) Yes Tên đăng nhập email character varying(254) Yes Địa chỉ email password character varying(128) Yes Mật khẩu is_superuser boolean No Kích hoạt tài khoản superuser is_staff boolean No Kích hoạt tài khoản người dùng is_active boolean No Kích hoạt tài khoản

Bảng 5 Bảng Người quản lý

Bảng Tài khoản dùng để lưu trữ thông tin tài khoản hệ thống, mỗi tài khoản sẽ được quản lý bởi một id, thông tin tài khoản người quản lý bao gồm first_name, last_name, username, email, password, is_superuser, is_staff, is_active

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại ma_ranh _gioi character varying(100) Yes Khóa chính ten_ranh_gioi character varying(100) Yes Tên ranh giới type_ranh_gioi character varying(6) Yes Kiểu ranh giới geom geometry(MultiPolygon,

Mỗi ranh giới sẽ được quản lý bởi một ma_ranh _gioi (mã ranh giới) Thuộc tính của mỗi ranh giới sẽ gồm tên ranh giới, kiểu ranh giới, geom ranh giới được thể hiện bằng tọa độ dùng để xác định vị trí của ranh giới trên bản đồ, ghi chú

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại ma_loai_cay character varying(50) Yes Khóa chính ten_loai_cay character varying(100) Yes Tên loại cây

Loại cây được thể hiện là họ, chi của cây xanh, mỗi họ, chi sẽ bao gồm nhiều cây thuộc vào nhóm đó, việc định danh bảng loại cây sẽ giúp cho việc thống kê theo họ, chi của toàn bộ cây xanh được dễ dàng, khi biết được mỗi cây xanh thuộc họ nào người quản lý sẽ biết được những đặt điểm sinh thái cũng như chế độ chăm sóc của cây đó vì thế việc nhập thông tin cây cần phải có thông tin về loại cây

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại ma_duong character varying(100) Yes Khóa chính ten_duong character varying(100) Yes Tên đường geom geometry(Line, 4326) Yes Vị trí tọa độ trên bản đồ ghi_chu character varying(150) No Ghi chú ranh_gioi_id character varying(100) Yes

Khóa ngoại liên kết bảng Ranh giới ranh_gioi ma_ranh_gioi

Bảng 8 Bảng Đường giao thông

Mỗi đường sẽ được quản lý bởi một ma_duong (mã đường) Thuộc tính của mỗi đường sẽ gồm tên đường, geom đường được thể hiện bằng tọa độ dùng để xác định vị trí của đường trên bản đồ, ghi chú, ranh_gioi_id sẽ có mối quan hệ với bảng Ranh giới để xác định đường giao thông thuộc ranh giới nào

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại ma_cay character varying(100)

Yes Khóa chính ten_cay_xanh character varying(100)

Yes Tên cây xanh chieu_cao integer Yes Chiều cao cây hinhanh character varying(100)

Yes Hình ảnh cây vi_tri character varying(100)

Yes Vị trí cây ngay_trong Date Yes Ngày trồng tinh_trang_id character varying(50)

Yes Khóa ngoại liên kết bảng Tình trạng cây

Tinhtrangcay id dac_diem character varying(200)

No Đặc điểm cây geom geometry(Point,

Yes Vị trí tọa độ trên bản đồ loai_cay_id character varying(50)

Yes Khóa ngoại liên kết bảng Loại cây loaicay ma_loai_cay duong_id character varying(100)

Yes Khóa ngoại liên kết bảng Đường giao thông duonggiaothong ma_duong

Mỗi cây xanh sẽ được quản lý bởi một ma_cay (mã cây xanh), mỗi mã cây sẽ được sử dụng cho các công việc như lịch chăm sóc Thuộc tính của mỗi cây xanh sẽ gồm tên cây là tên thông thường hoặc tên khoa học, chiều cao, vị trí cây, ngày

74 trồng, tình trạng cây sẽ gồm( đã tưới, chưa tưới, đã chặt, chưa chặt, ), geom cây được thể hiện bằng tọa độ để xác định vị trí của cây trên bản đồ, đặc điểm, loai_cay_id sẽ có mối quan hệ với bảng loại cây để xác định nhóm loại của mỗi cây, duong_id sẽ có mối quan hệ với bảng đường giao thông để xác định vị trí đường của mỗi cây

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại id integer Yes Khóa chính, tự động tăng ten_tinh_trang character varying(100) Yes Tên tình trạng cây

Bảng 10 Bảng Tình trạng cây

Tình trạng cây có thể là tốt, bình thường, đã tỉa, chưa tỉa, đã tưới, chưa tưới,…việc định danh bảng tình trạng cây sẽ giúp cho việc theo dõi thông tin cây xanh được dễ dàng, khi biết được mỗi cây xanh thuộc tình trạng nào người quản lý sẽ biết được những công việc cần phân công cho mỗi nhân viên, vì thế việc nhập thông tin cây cần phải có thông tin về tình trạng cây

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại id integer Yes Khóa chính, tự động tăng ngay_cham_soc Date Yes Ngày chăm sóc cây nhan_vien_id character varying(100) Yes

Khóa ngoại liên kết bảng Nhân viên nhanvien ma_nhan_vien duong_id character varying(100) Yes

Khóa ngoại liên kết bảng Đường giao thông duonggiaothong ma_duong cong_viec character varying(100) Yes Công việc cần làm

Bảng 11 Bảng Chăm sóc cây

Mỗi đường chứa các cây được chăm sóc sẽ được lên một lịch chăm sóc với mã đường cần chăm sóc, công việc sẽ được thực hiện trong quá trình chăm sóc cây, sẽ có nhân viên đảm nhận công việc định danh trong bảng nhân viên

Tên Kiểu dữ liệu Yêu cầu Mô tả Khóa ngoại id integer Yes Khóa chính, tự động tăng tin_hd character varying(500)

No Tin hoạt động image_hd character varying(100)

No Hình ảnh hoạt động link_website character varying(250)

No Liên kết Website icon character varying(100)

Việc định danh bảng thư viện sẽ giúp cho việc cập nhật thông tin lên trang chủ được dễ dàng

TRIỂN KHAI DEMO CHƯƠNG TRÌNH

Giao diện cơ sở dữ liệu

Hình 3 1 Giao diện database QLCay

Giao diện database QLCay chứa các bảng như: bảng cây xanh, bảng chăm sóc cây, bảng đường giao thông, bảng ranh giới, bảng thư viện, bảng loại cây, bảng nhân viên, bảng tình trạng cây Tất cả mọi cơ sở dữ liệu khi nhập vào hệ thống sẽ được lưu trữ tại đây

3.1.1 Giao diện bảng cơ sở dữ liệu Chăm sóc cây

Hình 3 2 Giao diện bảng cơ sở dữ liệu Chăm sóc cây

Trong bảng cơ sở dữ liệu Chăm sóc cây sẽ bao gồm các trường: id, cong_viec, ngày_cham_soc, duong_id_id, nhanvien_id_id

3.1.1 Giao diện bảng cơ sở dữ liệu Thư viện

Hình 3 3 Giao diện bảng cơ sở dữ liệu Thư viện

Trong bảng cơ sở dữ liệu Thư viện sẽ bao gồm các trường: id, image_hd, tin_hd, link_website, icon.

Giao diện hệ thống

Hình 3 4 Giao diện đăng nhập

Trang đăng nhập người quản trị: khi người dùng muốn vào trang quản lý thì cần phải đăng nhập thì mới quản lý được

3.2.2 Giao diện trang quản trị

Hình 3 5 Giao diện trang quản trị

Giao diện trang quản lý chứa các chức năng quản trị như: tương tác bản đồ, quản lý nhân viên, quản lý dữ liệu, chăm sóc cây, thống kê

Hình 3 6 Giao diện đăng xuất Để kết thúc phiên làm việc và đăng xuất khỏi hệ thống thì tại biểu tượng tài khoản của hệ thống, người dùng click chọn đăng xuất

3.2.4 Giao diện chăm sóc cây

Giao diện danh sách chăm sóc cây cho phép người dùng thao tác quản lý thông tin công việc, thời gian chăm sóc bao gồm các quyền: thêm, sửa, xóa, tìm kiếm Để thao tác với phân hệ danh sách chăm sóc cây thì tại giao diện menu quản lý, người dùng click chọn chăm sóc cây Giao diện chăm sóc cây được hiển thị như sau:

Hình 3 7 Giao diện list danh sách chăm sóc cây

3.2.4.1 Giao diện thêm lịch chăm sóc cây

Hình 3 8 Giao diện thêm lịch chăm sóc cây

80 Để hiển thị giao diện thêm thông tin chăm sóc cây thì người dùng click chọn biểu tượng thêm thông tin Sau khi hiển thị giao diện thêm, người dùng thao tác thêm thông tin chung và chọn nút thêm để lưu thông tin hoặc click chọn quay lại danh sách để quay lại trang trước

3.2.4.2 Giao diện chỉnh sửa lịch chăm sóc cây

Hình 3 9 Giao diện chỉnh sửa chăm sóc cây Để hiển thị giao diện sửa thông tin chăm sóc cây thì người dùng click chọn biểu tượng sửa thông tin Sau khi hiển thị giao diện sửa, người dùng thao tác chỉnh sửa thông tin chung và click chọn nút cập nhật để lưu thông tin hoặc click quay lại danh sách để quay lại trang trước mà không lưu lại thông tin chỉnh sửa

3.2.4.3 Giao diện xóa lịch chăm sóc cây

Hình 3 10 Giao diện popup xóa lịch chăm sóc cây Để xóa thông tin chăm sóc cây, người dùng click vào biểu tượng xóa Giao diện popup hiển thị mã chăm sóc cây cần xóa Người dùng click chọn xóa hoặc hủy để hoàn tất thao tác

Giao diện thống kê cho phép người dùng thao tác thống kê theo loại cây, tình trạng, tên đường, tháng trồng, tên cây Để thao tác với phân hệ thống kê thì tại giao diện menu quản lý, người dùng click chọn thống kê Giao diện thống kê được hiển thị như sau:

Hình 3 11 Giao diện Thống kê cây xanh

Hình 3 12 Giao diện xuất file Excel Thống-kê.xls

Chức năng tạo báo cáo thông tin cây xanh theo biểu mẫu Trên giao diện cây xanh click chọn nút xuất file Excel Thống-kê.xls , Web sẽ hiển thị giao diện lưu file

3.2.6.1 Giao diện quản lý tin hoạt động

Giao diện quản lý tin hoạt động cho phép người dùng thao tác quản lý thông tin ranh giới bao gồm các quyền: thêm, sửa, xóa, tìm kiếm Để thao tác với giao diện danh sách tin hoạt động thì tại giao diện menu quản lý, người dùng click chọn quản lý thiết lập - tab quản lý tin hoạt động Giao diện danh sách tin hoạt động được hiển thị như sau:

Hình 3 13 Giao diện list danh sách tin hoạt động

3.2.6.1.1 Giao diện thêm tin hoạt động Để hiển thị giao diện thêm thông tin hoạt động thì người dùng click chọn biểu tượng thêm thông tin Sau khi hiển thị giao diện thêm, người dùng thao tác thêm tin hoạt động, hình ảnh hoạt động và chọn nút thêm để lưu thông tin hoặc chọn quay lại danh sách để quay lại trang trước

Hình 3 14 Giao diện thêm tin hoạt động

3.2.6.1.2 Giao diện chỉnh sửa tin hoạt động Để hiển thị giao diện sửa tin hoạt động thì người dùng click chọn biểu tượng sửa thông tin Sau khi hiển thị giao diện sửa, người dùng thao tác chỉnh sửa thông tin chung và click chọn nút cập nhật để lưu thông tin hoặc click quay lại danh sách để quay lại trang trước mà không lưu lại thông tin chỉnh sửa

Hình 3 15 Giao diện chỉnh sửa tin hoạt động

3.2.6.1.3 Giao diện xóa tin hoạt động Để xóa tin hoạt động, người dùng click vào biểu tượng xóa Giao diện popup hiển thị mã của tin hoạt động cần xóa Người dùng click xóa hoặc hủy để hoàn tất thao tác

Hình 3 16 Giao diện popup xóa tin hoạt động

3.2.6.2 Giao diện quản lý liên kết website

Giao diện quản lý liên kết website cho phép người dùng thao tác quản lý thông tin ranh giới bao gồm các quyền: thêm, sửa, xóa, tìm kiếm Để thao tác với giao diện danh sách liên kết website thì tại giao diện menu quản lý, người dùng click chọn quản lý thiết lập - tab quản lý liên kết website Giao diện danh sách liên kết website được hiển thị như sau:

Hình 3 17 Giao diện quản lý liên kết website

3.2.6.2.1 Giao diện thêm liên kết website Để hiển thị giao diện thêm liên kết website thì người dùng click chọn biểu tượng thêm thông tin Sau khi hiển thị giao diện thêm, người dùng thao tác thêm liên kết website, hình ảnh hoạt động và chọn nút thêm để lưu thông tin hoặc chọn quay lại danh sách để quay lại trang trước

Hình 3 18 Giao diện thêm liên kết website

3.2.6.2.2 Giao diện chỉnh sửa liên kết website Để hiển thị giao diện sửa liên kết website thì người dùng click chọn biểu tượng sửa thông tin Sau khi hiển thị giao diện sửa, người dùng thao tác chỉnh sửa thông tin chung và click chọn nút cập nhật để lưu thông tin hoặc click quay lại danh sách để quay lại trang trước mà không lưu lại thông tin chỉnh sửa

Hình 3 19 Giao diện chỉnh sửa liên kết website

3.2.6.2.3 Giao diện xóa liên kết website Để xóa liên kết website, người dùng click vào biểu tượng xóa Giao diện popup hiển thị mã của liên kết website cần xóa Người dùng click xóa hoặc hủy để 0hoàn tất thao tác

Hình 3 20 Giao diện popup xóa liên kết website

Ngày đăng: 26/02/2024, 06:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN