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
MỤC LỤC Phần MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục tiêu đề tài 1.3 Đối tượng phạm vi nghiên cứu 1.3.1 Đối tượng nghiên cứu: 1.3.2 Phạm vi nghiên cứu: 1.4 Phương pháp nghiên cứu 1.5 Lịch sử nghiên cứu 10 1.6 Đóng góp đề tài 10 1.7 Cấu trúc đề tài 10 Phần 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 mã nguồn mở 14 1.1.3 Ứng dụng mã nguồn mở 15 1.2 Giới thiệu sơ lược PostgreSQL 16 1.2.1 PostgreSQL gì? 16 1.2.2 Ưu điểm nhược điểm PostgreSQL 18 1.3 Cấu hình máy cài đặt PostgreSQL 19 1.3.1 Cấu hình máy 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 Python Django 26 1.4.1 Kết nối Django Postgresql 26 1.4.2 Tạo bảng database với Model 27 1.5 Tổng quan WebGIS 28 1.5.1 Khái niệm WebGIS 28 1.5.2 Nguyên lý hoạt động WebGIS 29 1.6 Công cụ hỗ trợ phát triển hệ thống 30 1.6.1 Visual Studio Code gì? 30 1.6.2 Một số tính quan trọng Visual Studio Code 30 1.6.3 Tổng quan 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 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 chức 38 2.2.2 Yêu cầu phi chức 40 2.3 Mơ hình Ri 40 2.4 Đặc tính 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 vai trò 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 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ý canh 53 2.5.4 Sơ đồ lớp (class) 54 2.5.4.1 Xác định Lớp 54 2.5.4.2 Sơ đồ lớp 55 2.5.4.4 Sơ đồ mối quan hệ class 57 2.5.5 Mơ hình hóa hành vi hệ thống 58 2.5.5.1 Biểu đồ 58 2.5.5.2 Biểu đồ hoạt động 66 2.6 Thiết kế sở 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 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 74 2.6.8 Bảng Chăm sóc 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 sở liệu 76 3.1.1 Giao diện database QLCay 76 3.1.1 Giao diện bảng sở liệu Chăm sóc 76 3.1.1 Giao diện bảng sở 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 79 3.2.4.1 Giao diện thêm lịch chăm sóc 79 3.2.4.2 Giao diện chỉnh sửa lịch chăm sóc 80 3.2.4.3 Giao diện xóa lịch chăm sóc 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 KẾT LUẬN VÀ KIẾN NGHỊ .86 3.1 Kết luận 86 3.1.1 Những vấn đề đạt 86 3.1.2 Những vấn đề hạn chế 86 3.1.3 Hướng phát triển đề tài 86 3.2 Kiến nghị 87 Phần TÀI LIỆU THAM KHẢO 88 DANH MỤC BẢNG BIỂU Bảng Thông tin giới hạn khả PostgreSQL 17 Bảng Một số lệnh Git .36 Bảng Xác định lớp 54 Bảng Bảng Nhân viên 69 Bảng Bảng Người quản lý .70 Bảng Bảng Ranh giới 71 Bảng Bảng Loại 71 Bảng Bảng Đường giao thông 72 Bảng Bảng Cây xanh .73 Bảng 10 Bảng Tình trạng 74 Bảng 11 Bảng Chăm sóc 74 Bảng 12 Bảng Thư viện 75 DANH MỤC HÌNH ẢNH Hình 1 Giao diện nhập Passwork PostgreSql .24 Hình Giao diện trang chủ pgAdmin 25 Hình Tạo sở liệu 25 Hình Giao diện bảng ranh_gioi pgAdmin 28 Hình Nguyên lý hoạt động WebGIS 29 Hình Mơ hình tổ chức liệu phân tán Git 32 Hình Biểu đồ Use Case Đăng nhập 46 Hình 2 Biểu đồ Use Case Chăm sóc 48 Hình Biểu đồ Use Case Thống kê .49 Hình Biểu đồ Use Case quản lý thiết lập 50 Hình Biểu đồ Use Case quản lý tin hoạt động 51 Hình Biểu đồ Use Case quản liên kết website 53 Hình Biểu đồ Use Case tổng quát hệ thống quản lý xanh 53 Hình Lớp người quản lý 55 Hình Lớp nhân viên 55 Hình 10 Lớp ranh giới 55 Hình 11 Lớp đường giao thông 55 Hình 12 Lớp xanh 56 Hình 13 Lớp loại 56 Hình 14 Lớp tình trạng 56 Hình 15 Lớp chăm sóc 56 Hình 16 Lớp thư viện 57 Hình 17 Sơ đồ mối quan hệ class 57 Hình 18 Biểu đồ Đăng nhập 58 Hình 19 Biểu đồ Chăm sóc 59 Hình 20 Biểu đồ Thống kê .61 Hình 21 Biểu đồ Quản lý tin hoạt động 62 Hình 22 Biểu đồ Quản lý liên kết website .64 Hình 23 Biểu đồ hoạt động Đăng nhập .66 Hình 24 Biểu đồ hoạt động Chăm sóc 66 Hình 25 Biểu đồ hoạt động Thống kê 67 Hình 26 Biểu đồ hoạt động Quản lý tin hoạt động 68 Hình 27 Biểu đồ hoạt động Quản lý tin hoạt động 69 Hình Giao diện database QLCay 76 Hình Giao diện bảng sở liệu Chăm sóc 76 Hình 3 Giao diện bảng sở liệu Thư viện 77 Hình Giao diện đăng nhập 77 Hình Giao diện trang quản trị 78 Hình Giao diện đăng xuất 78 Hình Giao diện list danh sách chăm sóc 79 Hình Giao diện thêm lịch chăm sóc 79 Hình Giao diện chỉnh sửa chăm sóc 80 Hình 10 Giao diện popup xóa lịch chăm sóc 80 Hình 11 Giao diện Thống kê xanh 81 Hình 12 Giao diện xuất file Excel Thống-kê.xls 81 Hình 13 Giao diện list danh sách tin hoạt động 82 Hình 14 Giao diện thêm tin hoạt động 82 Hình 15 Giao diện chỉnh sửa tin hoạt động 83 Hình 16 Giao diện popup xóa tin hoạt động 83 Hình 17 Giao diện quản lý liên kết website 84 Hình 18 Giao diện thêm liên kết website .84 Hình 19 Giao diện chỉnh sửa liên kết website .85 Hình 20 Giao diện popup xóa liên kết website 85 DANH MỤC TỪ VIẾT TẮT Chữ viết tắt STT CSDL GIS Chú thích Cơ sở liệu Geographic Information System (Hệ thống thông tin địa lý) UC Use Case (ca sử dụng) GPL GNU General Public Licence (Giấy phép Công cộng GNU) SQL Structured Query Language, nghĩa ngôn ngữ truy vấn liệu DBMS Database Management System phần mềm giúp quản lý sở liệu NỘI DUNG ĐỀ TÀI Phần MỞ ĐẦU 1.1 Lý chọn đề tài Tỉnh Quảng Nam nay, với phát triển mạnh mẽ mặt kinh tế năm qua hệ mặt môi trường bão lũ gây ngập úng, nhiễm tiếng ồn, diện tích, số lượng xanh khơng đảm bảo, vấn đề quản lý xanh đô thị tỉnh Quảng Nam dần trở nên cấp thiết Trong năm qua, cơng tác trồng, chăm sóc bảo vệ xanh khu vực tỉnh Quảng Nam cấp, ngành quan tâm đầu tư Tuy nhiên, việc lưu trữ, tra cứu, tìm nguồn thơng tin liên quan đến xanh cần thiết vô khó khăn phức tạp file thường dạng excel (*.xlx, *.xlxs) file word (*.doc, *docx) Các thông tin đồ dùng để mô tả, hiển thị vị trí số liệu kiểm tra, cập nhật, bổ sung số liệu, đồng thời liệu thông tin địa lý (không gian, thuộc tính, ) cơng tác quản lý xanh thị địa bàn tỉnh chưa thể trực quan hệ thống đồ chung để người quản lý có nhìn tồn cảnh cơng việc quản lý Hiện cơng nghệ thơng tin phát triển mạnh mẽ làm thay đổi mặt xã hội ngày Công nghệ thông tin trở thành trụ cột kinh tế tri thức ứng dựng vào hầu hết lĩnh vực đời sống Vì vậy, với việc tìm cơng cụ để giải 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 xanh, vấn đề cần thiết GIS (Geographi Information System) hệ thống thông tin địa lý nhánh phát triển công nghệ thông tin giải phần lớn vấn đề Cùng với 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 cách kết hợp GIS Web hay gọi WebGIS Là mã nguồn mở với nhiều ưu điểm miễn phí, hổ trợ cộng đồng lớn mạnh, xu hướng phổ biến thông tin mạnh mẽ Internet khơng góc độ thơng tin thuộc tính túy mà kết hợp 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, giao thơng, du lịch, hành chính, nơng nghiệp, mơi trường, v.v Bắt nguồn với ý tưởng này, em chọn đề tài “Nghiên cứu, tìm hiểu hệ quản trị sở liệu mã nguồn mở PostgreSQL ứng dụng WebGIS quản lý xanh đô thị Quảng Nam” nhằm giải khó khăn phiền tối việc quản lý xanh đô thị cách thủ cơng, thay vào hệ thống quản lý trực quan giúp người dùng nắm bắt thông tin quản lý xanh dễ dàng 1.2 Mục tiêu đề tài Xây dựng phần mềm dựa GIS kết hợp với hệ quản trị sở liệu PostgreSQL để phục vụ cho công việc quản lý xanh thị Quảng Nam Tìm hiểu sở liệu PostgreSQL Tương tác với sở liệu: cập nhật, xóa, sửa, cách tạo lưu tất liệu GeoDatabase Lưu trữ thơng tin 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ý xanh đô thị 1.3 Đối tượng 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ở 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ị sở liệu mã nguồn mở PostgreSQL ứng dụng WebGIS quản lý 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 phương pháp so sánh, tổng hợp qua mạng Internet Sử dụng phương pháp chuyên gia xin ý kiến từ giảng viên hướng dẫn, để xác định hướng xây dựng đề tài, giải vấn đề khó khăn việc thực nội dung khóa luận Cụ thể nội dung nghiên cứu: Cơ sở lý thuyết hệ thống thông tin địa lý (GIS) Cơ sở lý thuyết hệ quản trị sở liệu PostgreSQL Lập trình, xây dựng hệ thống ngơn ngữ Python Nghiên cứu, tìm hiểu tài liệu, ngôn ngữ công nghệ liên quan đến đề tài 1.5 Lịch sử nghiên cứu Trước để thiết kế web ta phải tìm hiểu số ngôn ngữ thiết kế web html,php, bên cạnh cịn sử dụng ngơn ngữ Python Cùng với cơng nghệ sử dụng WebGIS Sau phân tích hệ thống web theo hướng cấu trúc thiết kế sở liệu 1.6 Đóng góp đề tài Áp dụng lý thuyết hệ quản trị sở liệu mã nguồn mở PostgreSQL Áp dụng lý thuyết GIS Ứng dụng công nghệ WebGIS để quản lý xanh thị Tìm hiểu thực tế nghiên cứu công nghệ WebGIS ứng dụng tạo môi trường làm việc mới, đại quản lý đồng Góp phần vào cơng tác quản lý xanh hợp lý, hiệu quả, tiết kiệm sức người, sức Kết đề tài giúp cho nhà quản lý có thêm phương án quản lý xanh dễ dàng Giúp cho công tác quy hoạch cảnh quan đô thị thêm bước tiến vượt bậc 1.7 Cấu trúc đề tài Nội dung 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 thiết kế hệ thống quản lý xanh Chương 3: Triển khai demo chương trình Phần 3: Kết luận kiến nghị 10