Mơ hình dữ liệu vật lý (PDM)

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG WEBGIS PHỤC VỤ TRA CỨU THÔNG TIN NHÀ TRỌ TRỰC TUYẾN THÀNH PHỐ NHA TRANG (Trang 64)

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG

3.2 THIẾT KẾ

3.2.1.2 Mơ hình dữ liệu vật lý (PDM)

3.2.1.3 Từ điển dữ liệu

Bảng 3.2. Dữ liệu tiện nghi

STT Tên thuộc tính Kiểu dữ liệu Mơ tả

1 MaTN Varchar (15) Mã tiện nghi

2 TenTN Nvarchar (200) Tên tiện nghi

Bảng 3.3. Dữ liệu phường xã

STT Tên thuộc tính Kiểu dữ liệu Mô tả

1 MaPX Varchar (15) Mã phường xã

2 MaTP Varchar (15) Mã thành phố

3 ShapePX Varchar (50) Dạng hình học của đối tượng 4 TenPX Nvarchar (200) Tên phường xã

Bảng 3.4. Dữ liệu đường

STT Tên thuộc tính Kiểu dữ liệu Mô tả

1 MaDuong Varchar (15) Mã đường

2 MaLD Varchar (15) Mã loại đường

3 TenDuong Nvarchar (200) Tên đường

4 ShapeD Varchar (50) Dạng hình học của đối tượng

Bảng 3.5. Dữ liệu user (người dùng)

STT Tên thuộc tính Kiểu dữ liệu Mô tả

1 ID Varchar (15) Mã người dùng

2 MaLTK Varchar (50) Mã loại tài khoản 3 TenTK Varchar (200) Tên tài khoản

4 MatKhau Varchar (100) Mật khẩu 5 HoTen Nvarchar (200) Họ và tên người dùng

6 DiaChi Nvarchar (250) Địa chỉ

7 SDT Char (11) Số điện thoại

8 QuyenTK Bit Quyền của tài khoản

9 Avatar Nvarchar (200) Hình đại diện

10 Gtinh Nvarchar (5) Giới tính

Bảng 3.6. Dữ liệu loại tài khoản

STT Tên thuộc tính Kiểu dữ liệu Mơ tả

1 MaLTK Varchar (50) Mã loại tài khoản 2 TenLTK Nvarchar (100) Tên loại tài khoản

Bảng 3.7. Dữ liệu nhà trọ

STT Tên thuộc tính Kiểu dữ liệu Mô tả

1 MaNT Varchar (15) Mã nhà trọ

2 ID Varchar (15) Mã tài khoản người dùng

3 MaDuong Varchar (15) Mã đường

4 MaTN Varchar (15) Mã tiện nghi

7 ShapeNT Varchar (50) Dạng hình học của đối tượng 8 XNT Decimal (12,6) Tọa độ X của nhà trọ 9 YNT Decimal (12,6) Tọa độ Y của nhà trọ

10 DienTich Int Diện tích

11 SoNguoiO Nvarchar (100) Số người ở tối đa 12 NhaVeSinh Nvarchar (100) Nhà vệ sinh

13 GiaPhong Int Giá phòng

14 TienCoc Int Tiền cọc

15 TienDien Int Tiền điện

16 TienNuoc Int Tiền nước

17 GioGiac Nvarchar (200) Giờ giấc

18 SLPhongTrong Int Số lượng phòng trống

Bảng 3.8. Dữ liệu loại nhà trọ

STT Tên thuộc tính Kiểu dữ liệu Mô tả

1 MaLNT Varchar (15) Mã loại nhà trọ 2 TenLNT Nvarchar (200) Tên loại nhà trọ

Bảng 3.9. Dữ liệu trường học

STT Tên thuộc tính Kiểu dữ liệu Mô tả

1 MaTR Varchar (15) Mã trường

2 MaDuong Varchar (15) Mã đường

3 MaPX Varchar (15) Mã phường xã

4 XTR Decimal (12,6) Tọa độ X của trường 5 YTR Decimal (12,6) Tọa độ Y của trường

6 TenTR Nvarchar (200) Tên trường

7 SoNhaTR Nvarchar (200) Số nhà

8 ShapeTR Varchar (50) Dạng hình học của đối tượng

Bảng 3.10. Dữ liệu loại tiện ích

STT Tên thuộc tính Kiểu dữ liệu Mơ tả

1 MaLTI Varchar (15) Mã tiện ích

2 TenLTI Nvarchar (150) Tên loại tiện ích

Bảng 3.11. Dữ liệu tiện ích

STT Tên thuộc tính Kiểu dữ liệu Mơ tả

1 MaTienIch Varchar (15) Mã tiện ích 2 MaLTI Varchar (15) Mã loại tiện ích

3 MaDuong Varchar (15) Mã đường

4 MaPX Varchar (15) Mã phường xã

5 XTI Decimal (12,6) Tọa độ X của tiện ích 6 YTI Decimal (12,6) Tọa độ Y của tiện ích

9 ShapeTI Varchar (50) Dạng hình học của đối tượng

Bảng 3.12. Dữ liệu loại đường

STT Tên thuộc tính Kiểu dữ liệu Mơ tả

1 MaLD Varchar (15) Mã loại đường

2 TenLD Nvarchar (150) Tên loại đường

Bảng 3.13. Dữ liệu trạm xe buýt

STT Tên thuộc tính Kiểu dữ liệu Mô tả

1 MaBus Varchar (15) Mã trạm Bus

2 MaDuong Varchar (15) Mã đường

3 MaPX Varchar (15) Mã phường xã

4 XBus Decimal (12,6) Tọa độ X của trạm Bus 5 Ybus Decimal (12,6) Tọa độ Y của trạm Bus 6 TenBus Nvarchar (200) Tên trạm Bus

3.2.1.4 Ràng buộc toàn vẹn

R1: Mỗi User (người dùng) trong bảng Nhà trọ phải có giá trị trong bảng User

tNhaTro:t'User ,t . ID=t'. ID

ạ Bối cảnh: NhaTro (Nhà trọ), User (Người dùng) b. Bảng tầm ảnh hưởng

R1 Thêm Xóa Sửa

Nhà trọ + - + (ID)

Người dùng - + + (ID)

R2: Mỗi Loại tài khoản trong bảng User phải có giá trị trong bảng Loại tài

khoản

tUser:∃t'LoaiTK , t . MaLTK=t'. MaLTK

ạ Bối cảnh: User (Người dùng), LoaiTK (Loại tài khoản) b. Bảng tầm ảnh hưởng

R2 Thêm Xóa Sửa

Người dùng + - + (MaLTK)

Loại tài khoản + (TenLTK) + + (MaLTK, TenLTK)

R3: Mỗi Tiện nghi trong bảng Nhà trọ phải có giá trị trong bảng Tiện nghi

tNhaTro:t'∈TienNghi ,t . MaTN=t'. MaTN

ạ Bối cảnh: NhaTro (Nhà trọ), TienNghi (Tiện nghi) b. Bảng tầm ảnh hưởng

Nhà trọ + - + (MaTN)

Tiện nghi - + + (MaTN)

R4: Mỗi Loại nhà trọ trong bảng Nhà trọ phải có giá trị trong bảng Loại nhà trọ

tNhaTro:t'LoaiNhaTro ,t . MaLNT=t'. MaLNT

ạ Bối cảnh: NhaTro (Nhà trọ), LoaiNhaTro (Loại nhà trọ) b. Bảng tầm ảnh hưởng

R4 Thêm Xóa Sửa

Nhà trọ + - + (MaLNT)

Loại nhà trọ - + + (MaLNT)

R5: Mỗi Đường trong bảng Nhà trọ phải có giá trị trong bảng Đường

tNhaTro:t'Duong ,t . MaDuong=t'. MaDuong

ạ Bối cảnh: NhaTro (Nhà trọ), Duong (Đường) b. Bảng tầm ảnh hưởng

R5 Thêm Xóa Sửa

Nhà trọ + - + (MaDuong)

Đường - + + (MaDuong)

R6: Mỗi Phường xã trong bảng Nhà trọ phải có giá trị trong bảng Phường xã

tNhaTro:t'PhuongXa, t . MaPX=t'. MaPX

ạ Bối cảnh: NhaTro (Nhà trọ), PhuongXa (Phường xã) b. Bảng tầm ảnh hưởng

R6 Thêm Xóa Sửa

Nhà trọ + - + (MaPX)

R7: Mỗi Nhà trọ chỉ có Nhà vệ sinh là ‘Riêng’ hoặc ‘Chung’

tNhaTro(t . NhaVeSinh{' Riên g','Chun g'

})

ạ Bối cảnh: NhaTro (Nhà trọ) b. Bảng tầm ảnh hưởng

R7 Thêm Xóa Sửa

Nhà trọ + - + (NhaVeSinh)

R8: Mỗi Loại đường trong bảng Đường phải có giá trị trong bảng Loại đường

tDuong:∃t'LoaiDuong , t . MaLD=t'. MaLD

ạ Bối cảnh: Duong (Đường), LoaiDuong (Loại đường) b. Bảng tầm ảnh hưởng

R8 Thêm Xóa Sửa

Đường + - + (MaLD)

Loại đường - + + (MaLD)

R9: Mỗi Phường xã trong bảng Trường phải có giá trị trong bảng Phường xã

tTruong:∃t'PhuongXa, t . MaPX=t'. MaPX

ạ Bối cảnh: Truong (Trường), PhuongXa (Phường xã) b. Bảng tầm ảnh hưởng

R9 Thêm Xóa Sửa

Trường + - + (MaPX)

tTruong:∃t'Duong ,t . MaDuong=t'. MaDuong

ạ Bối cảnh: Truong (Trường), Duong (Đường) b. Bảng tầm ảnh hưởng

R10 Thêm Xóa Sửa

Trường + - + (MaDuong)

Đường - + + (MaDuong)

R11: Mỗi Phường xã trong bảng Trạm bus phải có giá trị trong bảng Phường xã

tTramBus:∃t'PhuongXa ,t . MaPX=t'. MaPX

ạ Bối cảnh: TramBus (Trạm bus), PhuongXa (Phường xã) b. Bảng tầm ảnh hưởng

R11 Thêm Xóa Sửa

Trạm bus + - + (MaPX)

Phường xã - + + (MaPX)

R12: Mỗi Đường trong bảng Trạm bus phải có giá trị trong bảng Đường

tTramBus:∃t'Duong , t . MaDuong=t'. MaDuong

ạ Bối cảnh: TramBus (Trạm bus), Duong (Đường) b. Bảng tầm ảnh hưởng

R12 Thêm Xóa Sửa

Trạm bus + - + (MaDuong)

Đường - + + (MaDuong)

R13: Mỗi Phường xã trong bảng Tiện ích phải có giá trị trong bảng Phường xã

tTienIch:∃t'PhuongXa , t . MaPX=t'. MaPX

ạ Bối cảnh: TienIch (Tiện ích), PhuongXa (Phường xã) b. Bảng tầm ảnh hưởng

R13 Thêm Xóa Sửa

Tiện ích + - + (MaPX)

Phường xã - + + (MaPX)

R14: Mỗi Đường trong bảng Tiện ích phải có giá trị trong bảng Đường

tTienIch:∃t'Duong, t . MaDuong=t'. MaDuong

ạ Bối cảnh: TienIch (Tiện ích), Duong (Đường) b. Bảng tầm ảnh hưởng

R14 Thêm Xóa Sửa

Tiện ích + - + (MaDuong)

Đường - + + (MaDuong)

R15: Mỗi Loại tiện ích trong bảng Tiện ích phải có giá trị trong bảng Loại tiện

ích

tTienIch:∃t'LoaiTienIch ,t . MaLTI=t'. MaLTI

ạ Bối cảnh: LoaiTienIch (Loại tiện ích), TienIch (Tiện ích) b. Bảng tầm ảnh hưởng

R15 Thêm Xóa Sửa

Loại tiện ích - + + (MaLTI)

Tiện ích + - + (MaLTI)

R16: Mỗi User (người dùng) chỉ có Giới tính là ‘Nam’ hoặc ‘Nữ’

t∈User¿

ạ Bối cảnh: User (Người dùng) b. Bảng tầm ảnh hưởng

R17: Mỗi User (người dùng) chỉ có Quyền tài khoản là ‘0’ hoặc ‘1’

t∈User(t .QuyenTK[0,1])

ạ Bối cảnh: User (Người dùng) b. Bảng tầm ảnh hưởng

R17 Thêm Xóa Sửa

Người dùng + - + (QuyenTK)

R18: Mỗi User (người dùng) là chủ trọ chỉ được hiệu chỉnh thông tin Nhà trọ

do chủ trọ đó đăng ký

USTK ← UserMaLTK=MaLTKLoaiTK tNhaTro¿))

ạ Bối cảnh: User (Người dùng), NhaTro (Nhà trọ), LoaiTK (Loại tài khoản)

b. Bảng tầm ảnh hưởng

R18 Thêm Xóa Sửa

Người dùng - + + (ID, MaLTK)

Nhà trọ + - + (ID)

Loại tài khoản + (TenLTK) + + (MaLTK, TenLTK)

R19: Loại tài khoản chỉ có thể là ‘User’ hoặc ‘Admin’

tLoaiTK(t . TenLTK{' User ' ,' Admin'})

ạ Bối cảnh: LoaiTK (Loại tài khoản) b. Bảng tầm ảnh hưởng

R19 Thêm Xóa Sửa

Loại tài khoản + (TenLTK) + + (TenLTK)

t1,t2LoaiTK(t1≠ t2∧t1.TenLTK ≠ t2.TenLTK)

ạ Bối cảnh: LoaiTK (Loại tài khoản) b. Bảng tầm ảnh hưởng

R20 Thêm Xóa Sửa

Loại tài khoản + (TenLTK) + + (TenLTK)

R21: Mỗi User (người dùng) là chủ trọ chỉ được hiệu chỉnh thông tin Hồ sơ do

chủ trọ đó đăng ký

USLTK ←UserMaLTK=MaLTKLoaiTK tUser¿))

ạ Bối cảnh: User (Người dùng), LoaiTK (Loại tài khoản) b. Bảng tầm ảnh hưởng

R21 Thêm Xóa Sửa

Người dùng + - + (ID)

3.2.2 Thiết kế giao diện

3.2.2.1 Sơ đồ màn hình

3.2.2.2 Mơ tả chi tiết một số màn hình tiêu biểu Màn hình chung của trang Web:

Hình 3.11. Màn hình chung của trang Web

Màn hình của chủ trọ:

Màn hình của quản trị viên:

Hình 3.13. Màn hình của Admin

Màn hình đăng nhập:

Hình 3.14. Màn hình đăng nhập

Hình 3.16. Màn hình chỉnh sửa hồ sơ

Màn hình đổi mật khẩu:

Hình 3.17. Màn hình đổi mật khẩu

3.2.3 Thiết kế xử lý

Đăng ký tài khoản

Hình 3.19. Sơ đồ giải thuật đăng ký

Đăng nhập

Đổi mật khẩu

Hình 3.21. Sơ đồ giải thuật đổi mật khẩu

Thêm nhà trọ

Tìm kiếm thuộc tính

Hình 3.23. Sơ đồ giải thuật tìm kiếm thuộc tính

Tìm kiếm khơng gian

Chương 4. CÀI ĐẶT CHƯƠNG TRÌNH4.1 THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU 4.1 THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU

Phần mềm ArcMap: Cắt lấy dữ liệu đường của thành phố Nha Trang, thêm dữ liệu nhà trọ đã thu thập được thông qua khảo sát thực tế và bổ sung thêm đối tượng còn thiếu cho các lớp dữ liệu tiện ích (ATM, y tế, chợ,...)

Dữ liệu đường được tiến hành xử lý như sau:

Bước 1: Tải dữ liệu đường của Việt Nam với định dạng shapefile (.shp) theo

đường link và tiến hành giải nén: http://download.geofabrik.de/asiạhtml

Bước 2: Đưa dữ liệu shapefile đường vào ArcMap

Bước 3: Dùng công cụ Geoprocessing → Clip tiến hành cắt dữ liệu đường

thành phố Nha Trang.

Hình 4.26. Cắt dữ liệu đường thành phố Nha Trang

Sau khi cắt thành công chúng ta thu thập được dữ liệu đường của TP. Nha Trang

Hình 4.27. Dữ liệu đường sau khi cắt

Bước 4: Mở công cụ Editor → Start Editing → Nhấp chuột phải vào lớp đường

vừa xử lý được → Chọn Open Attribute Table để mở bảng thuộc tính → Chọn các dịng thuộc tính trùng tên đường → Mở cơng cụ Editor → Chọn Merge → OK để hợp nhất các đoạn đường thành một đường duy nhất.

Hình 4.28. Hợp nhất các đoạn đường

Bước 5: Tiếp tục chọn các dịng thuộc tính trùng tên đường → Mở công cụ

Editor → Chọn Merge → OK để hợp nhất các đoạn đường còn lại thành một đường duy nhất. Sau khi hồn thành mở cơng cụ Editor → Save Edits để lưu trữ các dữ liệu vừa hợp nhất.

Quá trình thu thập và xử lý dữ liệu còn lại được tiến hành như sau:

Bước 1: Tạo các bảng excel *.xlsx dữ liệu nhà trọ, trường học, trạm chờ xe buýt,

đã được phân tích thiết kế ở chương 3 và dữ liệu thu thập được thông qua khảo sát, trên Google Map.

Bước 2: Sử dụng Google Map, nhập địa chỉ để thu thập tọa độ của các địa

điểm.

Hình 4.29. Dữ liệu tọa độ nhà trọ

Bước 3: Tại cửa sổ phần mềm ArcMap → Chọn File → Ađ Data → Ađ XY

Data → Chọn file Excel → OK.

Bước 4: Nhấp chuột phải lớp dữ liệu vừa Ađ → Chọn Data → Export Data

thành lớp dữ liệu shapefile, định dạng *.shp. Dữ liệu này có hệ tọa độ WGS84 (Ellipsoid WGS84 tồn cầu).

Hình 4.31. Các lớp dữ liệu đã xử lý được

4.2 BIÊN TẬP BẢN ĐỒ

Phần mềm mã nguồn mở QGIS: Biên tập bản đồ, thiết kế kiểu ký hiệu (đường nét, màu sắc, hình dạng ký hiệu, độ đậm nhạt của màu sắc,...) cho các lớp dữ liệu đã thu thập được.

Sử dụng phần mềm QGIS để biên tập màu sắc, hình dáng, kiểu ký hiệu và lưu style dưới dạng file SLD. Vì ArcMap khơng hỗ trợ lưu file SLD nên sử dụng QGIS để biên tập. QGIS, tên đầy đủ là Quantum GIS, là một phần mềm hệ thống thông tin địa lý mã nguồn mở và miễn phí. QGIS có thể đọc được nhiều dạng dữ liệu như các bản đồ từ ArcView, MapInfo, các bảng thông tin tạo bởi PostgreSQL (thông qua PostGIS). Cũng như ArcMap, QGIS cũng cung cấp các công cụ số hóa, biên tập bản đồ.

Q trình biên tập bản đồ được tiến hành như sau:

Sau khi có dữ liệu shapefile các lớp dữ liệu cần thiết đã được xử lý từ ArcMap, ta tiến hành đưa các lớp dữ liệu vào phần mềm QGIS. Tại cửa sổ Layers Properties, chọn cơng cụ Symbologỵ Tại đây, ta có thể lựa chọn kiểu thể hiện ký hiệu (single symbol, categorized, graduated,…).

Hình 4.32. Biên tập lớp dữ liệu nhà trọ

Kết quả sau khi biên tập các lớp dữ liệu:

Xuất file SLD: Sau khi biên tập hoàn chỉnh, tại nút Style ở cửa sổ Layer Properties của mỗi lớp, chọn Save Style để xuất ra file SLD để “lưu trữ” kiểu ký hiệụ File SLD sẽ giúp lưu lại hình dạng, màu sắc của ký hiệụ

Hình 4.34. Xuất file SLD

Kết quả xuất file SLD:

4.3 XÂY DỰNG HỆ THỐNG WEBGIS

Công cụ sử dụng

- XAMPP: Giả lập môi trường server hosting, tạo và điều hành máy chủ nội bộ (localhost)

- Hệ quản trị cơ sở dữ liệu PostgreSQL: Quản trị cơ sở dữ liệu khơng gian và thuộc tính.

- Phần mềm hỗ trợ mã nguồn mở PostGIS: Import các lớp dữ liệu không gian đã được xử lý trên ArcMap vào PostgreSQL, hỗ trợ lưu trữ dữ liệu dạng Geodatabase và truy vấn không gian trên cơ sở dữ liệụ

- Máy chủ mã nguồn mở GeoServer: Máy chủ mã nguồn mở để chia sẻ dữ liệu không gian địa lý. Được thiết kế cho khả năng tương tác, nó xuất bản dữ liệu từ bất kỳ nguồn dữ liệu không gian lớn nào bằng cách sử dụng các tiêu chuẩn mở.

- Thư viện JavaScript mã nguồn mở OpenLayer: Cung cấp API Javascript GIS để xây dựng ứng dụng Web về địa lý.

- Ngơn ngữ lập trình: PHP, HTML (ngơn ngữ đánh dấu siêu văn bản), CSS, JavaScript: Kết nối cơ sở dữ liệu, xây dựng giao diện cùng các chức năng của WebGIS.

Xem chi tiết cách cài đặt các cơng cụ và xây dựng chương trình tại phần phụ lục.

Link GitHub chứa các tệp cần thiết để cài đặt và file source code hệ thống WebGIS tra cứu nhà trọ: https://github.com/quangloc47

Chương 5. HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG CHƯƠNG TRÌNH5.1 HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG 5.1 HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG

Hướng dẫn chi tiết cách cài đặt và sử dụng chương trình được tải lên Youtube ở link sau đây: https://youtụbe/n_1g5KZQRn4

5.2 KẾT QUẢ THỰC HIỆN ĐỀ TÀI 5.2.1 Xây dựng giao diện

5.2.1.1 Giao diện chung của trang Web (sinh viên, khách vãng lai)

Giao diện trang chủ

Sau khi cài đặt XAMPP và GeoServer trên localhost, người dùng có thể vào trang WebGIS bằng cách truy cập vào đường link:

http://localhost:3128/WebGisNT_DauQuangLoc_59131309/index.php.

Giao diện trang đăng ký

Giao diện trang đăng nhập

Giao diện trang liên hệ

5.2.1.2 Giao diện của người dùng (chủ trọ)

Sau khi đăng nhập thành công với tài khoản đã được đăng ký trước đó, giao diện của chủ trọ có thêm các chức năng như: đổi mật khẩu, xem hồ sơ, chỉnh sửa, xóa tài khoản người dùng, hiệu chỉnh nhà trọ.

5.2.1.3 Giao diện của quản trị viên

Đối với quản trị viên sau khi đăng nhập sẽ có các chức năng bao gồm: đăng ký thành viên/quản trị viên mới, đổi mật khẩu cho tất cả các thành viên, xem thông tin chi

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG WEBGIS PHỤC VỤ TRA CỨU THÔNG TIN NHÀ TRỌ TRỰC TUYẾN THÀNH PHỐ NHA TRANG (Trang 64)

Tải bản đầy đủ (PDF)

(166 trang)