Tải bản đầy đủ (.pdf) (89 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.36 MB, 89 trang )

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


1


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
2


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

3


DANH MỤC BẢNG BIỂU
Bảng 1. Thông tin 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

4



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 trang 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. Ngun 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. 23. 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
5


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 trang 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

6



DANH MỤC TỪ VIẾT TẮT
Chữ viết tắt

STT
1
2

CSDL
GIS

Chú thích
Cơ sở dữ liệu
Geographic 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

7


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ành 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 tồ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 trở 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
Information 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 tồ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.
8


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ị
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 tố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 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 đượ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 PostgreSQL .
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.
9


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ị

10


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ữ 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ố tồ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.
11


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 tồ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

12


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.

13


1.1.2. Lợi ích của mã nguồn mở
Phần mềm có thể được sao chép hồn tồn miễn phí, người dùng hồn tồ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, ngườ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, kiể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.

14


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 phổ
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 trang 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ọ.

15


PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ.
Ngồ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 tồ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 số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.

16


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ă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 tồ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. Ngồ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.
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.

17


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 hồn tồ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
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 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ó tồ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.
18


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 qt 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 />PostgreSQL cho hệ điều hành Windows.

19

để download bản


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ề.


20



×