3.3. Thiết kế cơ sở dữ liệu
Quá trình thiết kế cơ sở dữ liệu theo 3 bước như sau:
3.3.1 Thiết kế mơ hình cơ sở dữ liệu
Mơ hình liên kết thực thể (ER) được dùng để xây dựng mơ hình dữ liệu ở mức ý niệm. Mơ hình ER được mơ tả theo các thực thể có các thuộc tính và mối liên kết giữa các thực thể trong một môi trường. Thực thể là những đối tượng chính mà ta thu thập thông tin xoay quanh chúng. Thực thể thường chỉ người, một nơi chốn, một biến cố và một khái niệm nào đó. Thuộc tính là đặc tính của thực thể. Mối liên kết diễn tả sự kết hợp giữa một hay nhiều thực thể với nhau.
21
Trong đề tài này, thực thể là các đối tượng về khu vực nghiên cứu và có mối quan hệ với bài báo như năm, tác giả, chủ đề, các đối tượng phương pháp nghiên cứu như kỹ thuật, công cụ, phần mền…
Các đối tượng quản lý bao gồm:
Thông tin về khu vực nghiên cứu: mã tỉnh thành phố, tên quận huyện.
Thông tin về bài báo: mã bài báo, năm, tên bài báo, tác giả , đơn vị công tác, trang bắt đầu, trang kết thúc.
Thông tin về các đối tượng phương pháp nghiên cứu: mã đối tượng, tên công cụ, kỹ thuật, phần mềm.
Mối quan hệ giữa các thực thể:
Một khu vực có thể có một hoặc nhiều bài báo.
Một bài báo có thể nghiên cứu một hoặc nhiều khu vực.
Một bài báo có thể có một hoặc nhiều phương pháp .
Một đối tượng là phương pháp có thể có ở nhiều bài báo khác nhau. Sau khi phân tích các mối quan hệ, ta có lược đồ liên kết thực thể như hình:
22
23
3.2.2. Thiết kế mơ hình cơ sở dữ liệu luận lý
Sau khi phân tích và có mơ hình liên kết thực thể ER, ta có mơ hình dữ liệu quan hệ như sau:
Thực thể KHUVUC: khóa chính là code_tinh. KHUVUC(code_tinh, name_tinhname_vung, geom).
Thực thể BAIBAO: khóa chính là baibao_id, khóa ngoại là mabaibao.
BAIBAO( baibao_id, mabaibao, nam, tacgia, donvi, tenbai, nhom, trangbatdau, trangketthuc).
Thực thể liên kết DONVIHANHCHINH(dvhc_id, code_tinh, mabaibao, code_huyen, code_xa). Mối liên kết DONVIHANHCHINH sẽ liên kết thực thể KHUVUC và thực thể BAIBAO với nhau.
Thực thể CONGCU: khóa chính là tools_id CONGCU(tools_id, makythuat1, tenkythuat, nhomkythuat, phanloai).
CHITIETKYTHUAT (kythuat_id, mabaibao, kythuatchinh,kythuatchitiet, makythuat, kythuatthucap).
Thực thể liên kết CHITIETKYTHUAT: với khóa chính là kythuat_id và mabaibao dùng để liên kết thực thể BAIBAO và thực thể CONGCU với nhau.
3.2.3. Thiết kế mô hình cơ sở dữ liệu mức vật lý
Thuộc tính của các thực thể được mô tả kèm theo kiểu dữ liệu được mô tả ở các bảng dưới đây:
Bảng thông tin tỉnh/thành phố (KHUVUC) gồm có các thuộc tính gid, code_tinh, name_tinh, name_vung, geomtry.
24
Bảng 3.1 Kiểu dữ liệu thuộc tính thực thể KHU VUC
Thuộc tính Kiểu dữ liệu Mơ tả
gid serial
code_tinh varchar(254) Mã tỉnh
name_tinh varchar(75) Tên tỉnh
name_vung varchar(75) Tên vùng
geom geometry
Bảng thông tin bài báo (BAIBAO) gồm các thuộc tính baibao_id, mabaibao, nam, tacgia, donvi, tenbai, nhom, trangbatdau, trangketthuc.
Bảng 3.2 Kiểu dữ liệu thuộc tính thực thể BAIBAO
Thuộc tính Kiểu dữ liệu Mơ tả
baibao_id integer Mã đối tượng
mabaibao text Mã bài báo
nam integer Năm
tacgia text Tác giả
donvi text Đơn vị công tác
tenbai text Tên bài
nhom text Nhóm bài
trangbatdau integer Trang bắt đầu trangketthuc integer Trang kết thúc
25
Bảng thông tin về các đối tượng tiện ích (CONGCU) gồm các thuộc tính tools_id, makythuat1, tenkythuat, nhomkythuat, phanloai.
Bảng 3.3 Kiểu dữ liệu thuộc tính thực thể CONGCU
Thuộc tính Kiểu dữ liệu Mô tả
tool_id integer Mã đối tượng
makythuat1 text
Mã kỹ thuạt
tenkythuat text Tên kỹ thuật
nhomkythuat text Nhóm kỹ thuật
26
3.3. Xây dựng Cơ Sở Dữ Liệu 3.3.1. Xây dựng CSDL 3.3.1. Xây dựng CSDL
Sau khi hồn thành các bước thu thập, phân tích, thiết kế CSDL và xử lý dữ liệu ta tiến xây dựng CSDL sử dựng hệ quản trị CSDL PostgreSQL/PostGIS.
Quy trình thực hiện:
Sau khi cài PostgreSQL và PostGIS, mở chương trình pgAdmin.
Nhấp đúp chuột vào PostgreSQL để Connect sẽ hiện ra 1 form để điền username và password. Điền các thông tin rồi nhấn OK để connect.
Tạo database: Chuột phải vào Database, chọn New Database
Đặt tên cho Database. Trong tab Definition, mục Template chọn postgis_23_sample > OK. Database mới đã được tạo.
Hình 3.4 Tạo database mới
Để Import dữ liệu shapefile vào database, ta sử dụng công cụ PostGIS Shapefile Import/Export Manager. Công cụ này được cài đặt sẵn khi cài PostGIS. Chọn View Connection Details để nhập thông tin đăng nhập vào PostGIS, đăng nhập Username là postgres, Password là pasword lúc cài đặt phần mềm, Server Host là Localhost 5432, Database là tên database mới tạo trong PostgresSQL.
27
Hình 3.5 Kết nối cơ sở dữ liệu
Tiếp theo, để đưa dữ liệu vào database, chọn Add File sau đó tìm đường dẫn đến shapefile cần thêm rồi click OK để thêm shapefile vào danh sách. Cuối cùng nhấp Import để đưa shapefile được chọn vào CSDL.
28
Hình 3.6 Import dữ liệu vào
Sau khi import xong, cơ sở dữ liệu đã được tạo.
29
3.4. Xây dựng hệ thống WebGIS
Sau khi xây dựng xong CSDL, tiến hành đưa CSDL lên Geoserver và quá trình thực hiện như sau:
Quy trình thực hiện được mơ tả cụ thể ở Phụ lục 3.
3.4.1. Thiết kế hệ thống
Hệ thống WebGIS của đề tài xác định có 3 nhóm người trong hệ thống: người quản trị (Admin), người dùng không đăng nhập (chỉ xem và tìm kiếm thơng tin) và người dùng đăng nhập (được phép đăng tải bài).
Người quản trị (Admin) là người được truy cập toàn bộ hệ thống thông qua chức năng đăng nhập, quản lý thông tin và quản lý đối tượng người dùng.
Khách (người dùng không đăng nhập) là những người truy cập vào hệ thống mà khơng cần đăng nhập, có thể xem bản đồ và tìm kiếm thơng tin.
Người dùng đăng nhập có thể là tác giả hoặc người có thơng tin về bài báo thông qua chức năng đăng nhập, có thể xem bản đồ, tìm kiếm thơng tin và đăng thơng tin, chỉnh sửa, xóa thơng tin về bài báo.
30
Hình 3.8 Sơ đồ chức năng hệ thống WebGIS 3.4.2. Thiết kế giao diện trang web 3.4.2. Thiết kế giao diện trang web
Sitemap (sơ đồ của một trang web) là tập tin văn bản có chứa tất cả các đường dẫn của một trang web, hướng dẫn cho các cơng cụ tìm kiếm thu thập thông tin của trang web một cách hiệu quả và cập nhật những thay đổi trên trang web, như là thêm một trang mới hoặc thay đổi trang web hiện tại.
Sitemap của trang web dự kiến của đề tài có 2 phần: Phần trang web hiển thị tìm kiếm
31
Hình 3.9 Mơ tả Sitemap của trang web
Ngơn ngữ mơ hình hóa thống nhất (Unified Modeling Language UML) là một ngơn ngữ mơ hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thơng tin một cách nhanh chóng.
Đối với người dùng khơng đăng nhập, họ có thể tìm kiếm, xem bản đồ. Đối với người dùng đăng nhập, ngoài việc xem bản đồ, tìm kiếm thì cịn có thể đăng các bài báo. Khi người dùng tìm kiếm, sẽ truy cập đến CSDL để cho ra kết quả các thơng tin thuộc tính và thơng tin khơng gian hiển thị lên bản đồ về vị trí của bài báo.
32
Hình 3.10 Mơ tả mơ hình UML
Hiện nay, việc tạo ra một website để đáp ứng nhu cầu của người sử dụng rất phổ biến với sự hỗ trợ của các ngơn ngữ lập trình web như HTML, CSS, JavaScript. HTML (HyperText Markup Language, hay là "Ngôn ngữ Đánh dấu Siêu văn bản") là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web với các mẩu thơng tin được trình bày trên World Wide Web. Cùng với CSS và JavaScript, HTML tạo ra bộ ba nền tảng kỹ thuật cho World Wide Web. CSS ( Cascading Style Sheets), là một ngơn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngơn ngữ đánh dấu. HTML đóng vai trị định dạng các phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng,… CSS sẽ giúp đổi màu sắc trang, đổi màu chữ, thay đổi cấu trúc để tạo website đẹp mắt. Javascript là một ngơn ngữ lập trình được tạo ra để nâng cao khả năng tương tác của trang web với người sử dụng. Thông thường mã javascript (gọi tắt là js) được nhúng vào trong trang web và được thực thi bởi trình duyệt.
33
Dựa trên các phân tích, giao diện của trang web được thiết kế như sau:
Giao diện trang tìm kiếm: gồm các tiêu chí để tìm kiếm như tỉnh/thành phố, bài báo, phương pháp, phần mềm và các tiện ích cơng cụ; kết quả tìm kiếm được và bản đồ hiển thị thơng tin khơng gian của bài báo.
Hình 3.11 Mơ tả giao diện trang
Giao diện trang đăng nhập: gồm thông tin tên đăng nhập và mật khẩu mà người dùng đã đăng ký.
34
Hình 3.13 Mơ tả giao diện trang tìm kiếm 3.5. Thiết kế chức năng của trang web 3.5. Thiết kế chức năng của trang web
Hiển thị bản đồ
Để hiển thị bản đồ, ta cần thêm thư viện javascript Leaflet cho trang web, có thể lấy thư viện này tại địa chỉ: http://leafletjs.com/download.html.
35
Trong thẻ <body> ta khai báo vùng chứa bản đồ.
Để tạo bản đồ cho trang web, ta sử dụng lệnh L.map trong Leaflet.
Trong đó, map là giá trị id của thẻ <div> đã được khai báo. setView hiển thị bản đồ ở vĩ độ 8.48817348480225 và kinh độ 102.078514099121, với mức zoom là 5. Để khai báo các layer cho bản đồ ta thực hiện như sau:
Trong đó, đường dẫn http://localhost:8080/geoserver/gisparpers/wms để liên kết đến Geoserver. gis_papers là tên Workspace đã được tạo trên Geoserver như phụ lục 3 đã trình bày. Tên của layer là ‘gis_papers’.
36
Tương tác với bản đồ: tham chiếu đến vị trí khơng gian trên bản đồ của đối tượng được chọn.
Xây dựng chức năng tìm kiếm: Quá trình xây dựng chức năng tìm kiếm được trình bày ở Phụ lục 4 bằng ngơn ngữ lập trình Python.
37
CHƯƠNG 4. KẾT QUẢ NGHIÊN CỨU
Sau quá trình nghiên cứu và thực hiện đã xây dựng được một WebGIS hỗ trợ tìm kiếm thơng tin bài báo. Chương này sẽ trình bày các kết quả đạt được tương ứng với các chức năng.
4.1. Giao diện trang web
Phần giới thiệu là thời gian và địa điểm tổ chức các hội thảo.
Hình 4.1 Giao diện Timeline 4.1.1. Giao diện tìm kiếm 4.1.1. Giao diện tìm kiếm
Giao diện tìm kiếm gồm 2 phần:
Bên trái màn hình là cơng cụ hỗ trợ tìm kiếm theo các tiêu chí và hiển thị kết quả.
Bên phải màn hình là bản đồ hỗ trợ việc hiển thị vị trí của đối tượng bài báo.
38
Hình 4.2 Giao diện trang tìm kiếm 4.1.2. Giao diện đăng nhập 4.1.2. Giao diện đăng nhập
39
4.1.3. Giao diện đăng kí
Hình 4.4 Giao diện đăng ký 4.2. Kết quả của các chức năng tìm kiếm 4.2. Kết quả của các chức năng tìm kiếm
Với sự hỗ trợ của các chức năng, người dùng có thể tìm kiếm thơng tin bài báo theo các tiêu chí đã được đề ra.
Tìm kiếm theo 1 tiêu chí.
4.2.1.Tìm kiếm theo tinh thành phố
Người dùng nhấp vào ô “Tỉnh – Thành phố” và chọn chủ đề muốn tìm kiếm ví dụ như “Bình Định”, sau đó nhấp vào ơ “Tìm kiếm”.
40
Hình 4.5 Tìm kiếm theo Tỉnh thành phố
Kết quả tìm kiếm được sau: Bảng kết quả về bài báo: thông tin về tên bài báo, năm, tác giả, chủ đề.
41
4.2.2.Tìm kiếm theo chủ đề:
Người dùng nhấp vào ô “Chủ đề” và chọn cơng cụ muốn tìm kiếm, sau đó nhấp vào ơ “Tìm kiếm”.
Hình 4.7 Tìm kiếm theo chủ đề
Kết quả tìm kiếm: Bảng kết quả về bài báo: thơng tin về tên bài báo, năm, tác giả, năm, tỉnh/ thành phố.
42
4.2.3. Tìm kiếm theo phần mềm:
Người dùng nhấp vào ô “Phần mền” và chọn cơng cụ muốn tìm kiếm, sau đó nhấp vào ơ “Tìm kiếm”.
Hình 4.9 Tìm kiếm theo phần mềm
Kết quả tìm kiếm: Bảng kết quả về bài báo: thông tin về tên bài báo, năm, tác giả, chủ đề, tỉnh/ thành phố.
43
4.2.4. Kết luận
Sau quá trình thực hiện đề tài, sản phẩm cuối cùng là trang web có chức năng tìm kiếm để hỗ trợ cho người dùng tìm kiếm các bài báo nghiên cứu về GIS theo các tiêu chí như về vị trí là khu vực (tỉnh, huyện), năm, chủ đề, phần mềm, công cụ, kỹ thuật, thông số. Người dùng có thể tìm kiếm theo 1 tiêu chí hoặc nhiều tiêu chí. Sau khi tìm kiếm kết quả hiện ra là thông tin về các bài báo và vị trí nghiên cứu trên bản đồ. Tuy nhiên, trang web còn nhiều hạn chế về chức năng, giao diện chưa được đẹp khoa học và mức độ tối ưu chưa được tốt.
44
CHƯƠNG 5. KẾT LUẬN VÀ KIẾN NGHỊ 5.1. Kết quả 5.1. Kết quả
Sau khi nghiên cứu và thực hiện, đề tài đã đạt được những kết quả cụ thể sau đây: Về phía bản thân:
Củng cố lại các kiến thức đã được học và tìm hiểu.
Hiểu biết hơn các kiến thức về công nghệ WebGIS, các ngôn ngữ lập trình web như JavaScript, HTML, CSS, Python.
Nâng cao khả năng tìm kiếm tài liệu, thơng tin. Về phía đề tài:
Xây dựng được hệ thống CSDL về bài báo.
Xây dựng được giao diện cho trang WebGIS.
Xây dựng thành công các chức năng cơ bản như: chức năng hiển thị bản đồ, tương tác với bản đồ, chức năng tìm kiếm thơng tin của bài báo theo mục đích cụ thể.
Tuy nhiên, đề tài vẫn còn một số mặt hạn chế như:
Trình độ kiến thức về lập trình của cá nhân còn nhiều hạn chế nên xây dựng giao diện và chức năng của website còn sơ sài, thiếu sót nhiều về mặt nội dung và thiết kế chưa thật sự tối ưu nhất.
Trang Web chỉ mới hoạt động trên máy ảo localhost, chưa có điều kiện để đưa lên Domain nên cịn có thể cịn các lỗi phát sinh về sau.
Dữ liệu cịn khá ít, có nhiều hạn chế và thiếu sót trong q trình phân loại và thiết kế dữ liệu.
Video demo sản phẩm: https://www.youtube.com/watch?v=K0g5EkAdFYw Link code: https://github.com/sasakido58/webgis
5.2. Kiến nghị
Để đề tài hoàn thiện và ứng dụng vào thực tế hỗ trợ việc tìm kiếm cho hội thảo GIS, cần nghiên cứu và phát triển thêm các nội dung sau:
45
Nghiên cứu xây dựng hệ thống quản lý CSDL hoàn thiện hơn.
Xây dựng thêm các chức năng hỗ trợ cho việc tìm kiếm hiệu quả .
Xây dựng giao diện và các chức năng trang web chuyên nghiệp hơn: xây dựng chức năng đăng nhập bằng tài khoản mạng xã hội, xây dựng giao diện phù hợp với các thiết bị sử dụng.
Thử nghiệm trang WebGIS vào thực tế để kiểm tra đánh giá tính hiệu quả, rà sóat và hồn thiện các lỗi.
46
PHỤ LỤC 1: QUY TRÌNH ĐƯA DỮ LIỆU VÀO POSTGRESQL POSTGRESQL
Phụ lục 1 sẽ trình bày các bước thực hiện tương ứng khi chuyển dữ liệu từ file Excel *.xlsx sang các bảng trong cơ sở dữ liệu PostgreSQL.
Sau khi phân chia dữ liệu theo các bảng đối tượng bằng phần mềm Microsoft Excel, ta tiến hành import dữ liệu vào PostgreSQL :
Dữ liệu mở bằng phần mềm Microsoft Excel, dùng lệnh INSERT INTO trong SQL vào bảng như hình 1.
Lần lượt thực hiện theo thứ tự 1, 2, 3:
1. Nhập câu lệnh vào Excel như hình
2. Sao chép đoạn kết quả từ câu lệnh trên vào Notepad và Replace " thành '.
Hình 1 Câu lệnh trong Excel
Mở phần mềm PostgreSQL và chọn database là gis_papers đã tạo bảng nhom_bai_bao sau đó đưa đoạn kết quả đã Replace vào trong bảng nhom_bai_bao và chạy, nhận thông báo Successfully là đã đưa dữ liệu vào thành công.
47