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

Mô phỏng mô hình quản lý hoạt động của hệ thống xe bus ở khu vực trung tâm thành phố Hồ Chí Minh

11 1,2K 1

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô phỏng mô hình quản lý hoạt động của hệ thống xe bus ở khu vực trung tâm thành phố Hồ Chí Minh
Tác giả Phạm Thế Hùng
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Cơ sở dữ liệu không gian
Thể loại Bài tập lớn
Thành phố Hồ Chí Minh
Định dạng
Số trang 11
Dung lượng 629,66 KB

Nội dung

Cơ sở dữ liệu quan hệ truyền thống không thể mô tả được đầy đủ các thuộc tính của các đối tượng không gian, người nghiên cứu về GIS phải nghiên cứu các mô hình cơ sở dữ liệu quan hệ mở r

Trang 1

1 ĐẶT VẤN ĐỀ

Vấn đề tổ chức, xây dựng và quản lý dữ liệu là một trong những vấn đề cơ bản, đóng vai trò cực kỳ quan trọng trong các ứng dụng GIS Dữ liệu được mô tả đầy đủ, quản lý chặt chẽ, trong sáng sẽ giúp cho các ứng dụng được vận hành trơn tru

Cơ sở dữ liệu quan hệ truyền thống không thể mô tả được đầy đủ các thuộc tính của các đối tượng không gian, người nghiên cứu về GIS phải nghiên cứu các mô hình

cơ sở dữ liệu quan hệ mở rộng Việc giải quyết các bài tập trong môn học “Cơ sở dữ liệu không gian” là một trong những phương pháp nghiên cứu và tiếp cận với các mô hình dữ liệu không gian

Tên đề tài: “Mô phỏng mô hình quản lý hoạt động của hệ thống xe bus ở khu vực trung tâm thành phố Hồ Chí Minh”

2 NỘI DUNG

2.1 Mô tả các thực thể

Trong mô hình có các thực thể chính sau đây:

 bus_station (Trạm xe bus): là đối tượng không gian dạng điểm:

 gid Tự sinh ra khi chuyển từ shape file sang

 id: Mã trạm, kiểu varchar(10)

 name: Tên trạm, kiểu varchar(50)

 the_geom: POINT()

 bus_route (Tuyến xe bus): là đối tượng không gian dạng đường:

 gid Tự sinh ra khi chuyển từ shape file sang

 id: Mã trạm, kiểu varchar(10)

 name: Tên trạm, kiểu varchar(50)

 the_geom: MULTILINESTRING()

 administrative (Đơn vị hành chính): là đối tượng không gian dạng vùng

 gid Tự sinh ra khi chuyển từ shape file sang

 name: Tên trạm, kiểu varchar(50)

 the_geom: MULTIPOLYGON()

 bus_cooperative (Hợp tác xã xe bus): là một kiểu dữ liệu thông thường

 id Mã Hợp tác xã, kiểu varchar(10)

 name: Tên hợp tác xã, công ty vận tải, kiểu varchar(50)

 quantity_of_bus: số lượng xe bus, kiểu interger

 addres: Địa chỉ, kiểu varchar(50) Ngoài ra còn có 2 bảng geometry_columns và spatial_ref_sys dùng để mô tả các kiểu dữ liệu không gian và tham chiếu không gian Một cơ sở dữ liệu thông thường trong PostgeSQL muốn tạo được các đối tượng không gian cần phải nạp 2 bảng này

Trang 2

vào cơ sở dữ liệu của mình được thông qua hai file: lwpostgis.sql và spatial_ref_sys.sql

Đồng thời một số mối quan hệ nhiều nhiều giữa các đối tượng cũng sinh ra các

bảng dữ liệu thuộc tính (mô tả chi tiết bên dưới)

2.2 Mô tả các quan hệ giữa các thực thể:

- bus_station và bus_route: Quan hệ nhiều – nhiều (kí hiệu M – N) (Quan hệ không gian)

+ Một trạm xe bus có thể có nhiều tuyến đi qua

+ Một tuyến xe bus có thể đi qua nhiều trạm khác nhau

- bus_route và administrative: Quan hệ nhiều – nhiều (kí hiệu M – N) (Quan hệ không gian)

+ Trên một đơn vị hành chính (quận, huyện) sẽ có nhiều tuyến xe bus đi qua

+ Một tuyến xe bus có thể chạy qua nhiều đơn vị hành chính (quận, huyện) khác nhau

- Bus_Station và Administrative: Quan hệ một – nhiều (kí hiệu 1 – M)

+ Một trạm xe bus chỉ thuộc một đơn vị hành chính (quận, huyện) nhất định

+ Trên một đơn vị hành chính (quận, huyện) người ta có thể đặt nhiều trạm xe bus khác nhau

- Bus_Route và Bus_Cooperative: Quan hệ nhiều – nhiều (kí hiệu M – N)

+ Một tuyến xe bus bất kỳ có thể được đăng ký tham gia bời nhiều hợp tác xã xe bus khác nhau

+ Một hợp tác xã xe bus có thể đăng ký hoạt động trên nhiều tuyến xe bus

Trang 3

2.3 ER diagram with pictogram:

2.4 ER schema:

bus_station

gid

(serial)

id

(varchar)

name (varchar)

the_geom

(point)

1 HB.001 Hong Bang POINT

2 BTH.001 Ba Thang Hai POINT

3 LDH.001 Le Dai Hanh POINT

bus_route

gid

(integer)

id

(varchar)

name (varchar)

the_geom

(mutilinestring)

1 R.001 Hong Bang – Cong vien Dam Sen MULTILINESTRING

2 R.002 Ben xe Cho Lon – Thao Cam Vien MULTILINESTRING

3 R.003 Ben Thanh – Ben xe mien Dong MULTILINESTRING

Trang 4

Bus_Cooperative

id

(varchar)

name

(varchar)

quantity_of_bus

(interger)

address

(varchar)

CPML Cong ty co phan van

tai Mai Linh

30 400A, Le Hong Phong, Quan

10 HTXQT Hop tac xa van tai xe

buyt Quyet Thang

15 78, An Duong Vuong, Quan 5

XKCL Cong ty xe khach Cho

Lon

15 205, Phu Huu, Quan 5

administrative

gid

(serial)

name

(varchar)

Shape

(Polygon)

1 Quan 1 MULTIPOLYGON

2 Quan 10 MULTIPOLYGON

3 Quan Tan Binh MULTIPOLYGON

route_crosses_station

id

(serial)

route_id

(varchar)

station_name (varchar)

1 R.001 Hong Bang

2 R.002 Dai hoc Su Pham

3 R.003 Ben xe mien Dong

route_crosses_station

id

(serial)

coop_id

(varchar)

route_name (varchar)

1 CPML Hong Bang – Cong vien Dam Sen

2 HTX195 Cho Lon – Cho Go Vap

3 HTXBM Ben Thanh – San bay Tan Son Nhat

Trang 5

2.5 Danh sách một số câu hỏi truy vấn gợi ý:

 Liệt kê tất cả các trạm mà tuyến ‘Ben xe Cho Lon – Thao Cam Vien’ đi qua?

SELECT c.station_name, r.name AS Route_Name

FROM route_crosses_station c, bus_route r

WHERE (r.name = 'Ben xe Cho Lon - Thao Cam Vien')

AND (c.route_id=r.id);

station_name | route_name

-+ -

An Dong Plaza | Ben xe Cho Lon - Thao Cam Vien

Dai hoc Su Pham | Ben xe Cho Lon - Thao Cam Vien

Cong vien Tao Dan | Ben xe Cho Lon - Thao Cam Vien

An Duong Vuong | Ben xe Cho Lon - Thao Cam Vien

Ben xe Cho Lon | Ben xe Cho Lon - Thao Cam Vien

Hung Vuong Plaza | Ben xe Cho Lon - Thao Cam Vien

Dinh Thong Nhat | Ben xe Cho Lon - Thao Cam Vien

Dai truyen hinh Tp.HCM | Ben xe Cho Lon - Thao Cam Vien

Nga Sau Cong Hoa | Ben xe Cho Lon - Thao Cam Vien

Thao Cam Vien | Ben xe Cho Lon - Thao Cam Vien

Chau Van Liem | Ben xe Cho Lon - Thao Cam Vien

Nguyen Trai | Ben xe Cho Lon - Thao Cam Vien

(12 rows)

 Liệt kê tất cả các trạm xe bus nằm ở Quận 1?

SELECT s.name

FROM bus_station s

WHERE ST_Contains(

(SELECT the_geom FROM administrative WHERE name = 'Quan 1') ,s.the_geom);

name

-

Cong vien Tao Dan

Dinh Thong Nhat

Dai truyen hinh Tp.HCM

Thao Cam Vien

Cho Ben Thanh

Nguyen Thi Minh Khai

Cong vien Le Van Tam

(7 rows)

 Liệt kê tất cả các tuyến xe bus đi qua Quận 5?

SELECT r name

FROM bus_route r

WHERE ST_Crosses(r.the_geom,

(SELECT the_geom FROM administrative WHERE name = 'Quan 5') );

name

-

Ben xe Cho Lon - Thao Cam Vien

Cho Lon - Cho Go Vap

(2 rows)

Trang 6

 Tính tổng chiều dài tất cả các tuyến xe bus?

SELECT sum(ST_Length(the_geom)) AS km_bus

FROM bus_route;

km_bus

-

53.7695054045018

(1 row)

 Quận nào có nhiều trạm xe bus nhất?

SELECT a.name AS District_Name

FROM administrative a, bus_station s

WHERE ST_Contains(a.the_geom,s.the_geom)

ORDER BY District_Name

DESC LIMIT 1;

district_name

-

Quan Tan Binh

(1 row)

 Quận nào có nhiều tuyến xe bus đi qua nhất?

SELECT a.name AS District_Name

FROM administrative a, bus_route r

WHERE ST_Crosses(r.the_geom,a.the_geom)

ORDER BY District_Name

DESC LIMIT 1;

district_name

-

Quan Tan Binh

(1 row)

 Tuyến xe bus nào có lộ trình dài nhất?

SELECT name, ST_length(the_geom) AS Length_Km

FROM bus_route

ORDER BY Length_Km

DESC LIMIT 1;

name | length_km

-+ -

Cho Lon - Cho Go Vap | 11.9828896181423

(1 row)

 Hợp tác xã nào có nhiều xe nhất?

SELECT name, quantity_of_bus

FROM bus_cooperative

ORDER BY quantity_of_bus

DESC LIMIT 1;

name | quantity_of_bus

-+ -

Cong ty co phan van tai Mai Linh | 30

(1 row)

Trang 7

 Hai tuyến xe bus ‘Cho Lon – Cho Go Vap’ và ‘Ben Thanh – San bay Tan Son Nhat’ có cắt nhau không?

SELECT ST_intersects(

(SELECT the_geom FROM bus_route WHERE name ='Cho Lon - Cho Go Vap'), (SELECT the_geom

FROM bus_route WHERE name ='Ben Thanh - San bay Tan Son Nhat') );

st_intersects

-

t

(1 row)

 Liệt kê tất cả những tuyến xe bus giao cắt với tuyến ‘Ben Thanh – San bay Tan Son Nhat’?

SELECT name

FROM bus_route r

WHERE ST_intersects(the_geom,

(SELECT the_geom FROM bus_route

WHERE name ='Ben Thanh - San bay Tan Son Nhat'))

AND (name !='Ben Thanh - San bay Tan Son Nhat');

name

-

Ben xe Cho Lon - Thao Cam Vien

Ben Thanh - Ben xe mien Dong

Cho Lon - Cho Go Vap

(3 rows)

 Tìm tuyến xe bus đi qua nhiều quận nhất?

SELECT r.name, COUNT(distinct a.name) AS district

FROM administrative a, bus_route r

WHERE st_crosses(r.the_geom,a.the_geom)

GROUP BY r.name

ORDER BY district DESC LIMIT 1;

name | district

-+ -

Cho Lon - Cho Go Vap | 6

(1 row)

 Tìm tuyến xe bus đi qua nhiều trạm nhất?

SELECT r.name AS Route_Name,

COUNT(c.station_name) AS Number_Station

FROM route_crosses_station c, bus_route r

WHERE c.route_id=r.id

GROUP BY r.name

ORDER BY Number_Station DESC LIMIT 1;

route_name | number_station

-+ -

Ben xe Cho Lon - Thao Cam Vien | 12

(1 row)

Trang 8

 Tính khoảng cách giữa hai trạm ‘Dai hoc Bach Khoa’ va ‘Dai hoc Su Pham’?

SELECT ST_distance(

(SELECT the_geom FROM bus_station WHERE name = 'Dai hoc Bach Khoa'), (SELECT the_geom

FROM bus_station WHERE name ='Dai hoc Su Pham'))

AS Distance_Km;

distance_km

-

3.00883091654776

(1 row)

 Tính từ trạm ‘Dai hoc Bach Khoa’, liệt kê tất cả các trạm trong bán kính 2 km? Tính khoảng cách đến mỗi trạm đó và sắp xếp theo thứ tự từ gần đến xa?

SELECT id,name,ST_distance(

(SELECT the_geom FROM bus_station WHERE name ='Dai hoc Bach Khoa'),the_geom)

AS Distance_Km from bus_station WHERE (ST_DWithin(

(SELECT the_geom FROM bus_station WHERE NAME ='Dai hoc Bach Khoa'), the_geom,2)) AND (name !='Dai hoc Bach Khoa')

ORDER BY Distance_Km;

id | name | distance_km

-+ -+ -

LDH.001 | Le Dai Hanh | 0.677032874539835

LTK.001 | Ly Thuong Kiet | 1.03114751093211

LLQ.002 | Lac Long Quan | 1.09247080604834

BTH.002 | Ba Thang Hai | 1.15923686339518

BT.001 | Binh Thoi | 1.42901293042356

OIK.001 | Cong vien Dam Sen | 1.78699808208386

CMT8.003 | Cach Mang Thang Tam | 1.8696803311251

BTH.001 | Ba Thang Hai | 1.90253048453201

HV.001 | Hung Vuong | 1.94893975059578

HV.002 | Hung Vuong Plaza | 1.95264094065191

(10 rows)

 Tính chiều dài trung bình của các tuyến xe bus?

SELECT AVG(ST_length(the_geom))

AS Distance_Average_Km

FROM bus_route;

distance_average_km

-

8.96158423408364

(1 row)

Trang 9

 Tìm trên quận 5 tuyến và xe của ‘Cong ty co phan van tai Mai Linh’ có ID là

‘CPML’?

SELECT distinct r.name

FROM bus_route r, bus_cooperative c, route_of_cooperative rc WHERE ST_Crosses(r.the_geom,

(SELECT the_geom FROM administrative WHERE name ='Quan 5')) AND (c.id='CPML')

AND (c.id=rc.coop_id);

name

-

Ben xe Cho Lon - Thao Cam Vien

Cho Lon - Cho Go Vap

(2 rows)

2.6 Sử dụng Quantum GIS để hiển thị dữ liệu không gian

2.6.1 Giới thiệu

Quantum GIS hay còn gọi là Qgis là phần mềm GIS mã nguồn mở với các tính năng thao tác trên các lớp bản đồ chủ yếu dưới dạng vector

Dự án Qgis được khởi đầu vào tháng 5 năm 2002 Ý tưởng được hình thành vào tháng 2 năm đó khi Gary Sherman nỗ lực để tạo ra một phần mềm hiển thị các file dữ liệu GIS chạy trên hệ điều hành mã nguồn mở Linux và phần mềm đã được xây dựng trên cơ sở ngôn ngữ lập trình C++ Đến tháng 6 năm 2002, được đăng ký tại SourceForge

Giao diện chính của Quantum GIS

2.6.2 Tính năng của Quantum GIS

Trang 10

Qgis có thể đọc được nhiều dạng dữ liệu: các lớp bản đồ tạo bởi ArcView, MapInfo và GRASS, các bảng thông tin tạo bởi PostgreSQL (thông qua PostGIS)

Số hóa bản đồ và các công cụ kết nối với GPS

Các tính năng biên tập bản đồ, tạo lưới kinh vĩ độ, chèn thang tỉ lệ, mũi tên chỉ hướng bắc

Phân tích không gian nhờ PostGIS hoặc kết nối với GRASS GIS

Thay đổi các tính năng thông qua cơ chế plug-in

2.6.3 Các thao tác kết nối với cơ sở dữ liệu PostGIS

- Chọn Layer\ Add PostGIS Layer

- Tại cửa sổ Add PossGIS Table, chọn New để tạo kết nối mới, điền đầy đủ các thông số vào và sau đó thực hiện kết nối

Ví dụ:

Name: Ket noi voi PostGIS <tên phiên làm việc, tự đặt>

Host: localhost <địa chỉ lưu trữ CSDL để kết nối>

Database baitap <tên cơ sở dữ liệu>

Port 5432 <cổng để truy cập>

Username: postgres <tên người sử dụng>

Password: ********* <mật khẩu>

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

Trang 11

- Sau đó chọn đối tượng không gian để hiện thị

- Ta có thể thực hiện các câu truy vấn đơn giản khi hiển thị dữ liệu

- Quantum GIS hỗ trợ một số chức năng cơ bản của các phần mềm GIS: Zoom, Pan, Phân loại đối tượng dựa trên thuộc tính,…

Hiển thị dữ liệu không gian

TÀI LIỆU THAM KHẢO

[1] Đỗ Trung Tuấn (2004) Cơ sở dữ liệu Nhà xuất bản Đại học quốc gia thành

phố Hồ Chí Minh, thành phố Hồ Chí Minh

[2] Ralf Hartmut Guting Tutorial Spatial Database System Germany

[3] PostGIS 1.3.5 Manual

[4] Quantum GIS Documentation Version 1.01

[5] Website Bách khoa toàn thư: http://en.wikipedia.org/

[6] Website SQL Tutorial: http://www.w3schools.com/SQL/

Ngày đăng: 12/04/2015, 14:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Đỗ Trung Tuấn (2004). Cơ sở dữ liệu. Nhà xuất bản Đại học quốc gia thành phố Hồ Chí Minh, thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu
Tác giả: Đỗ Trung Tuấn
Nhà XB: Nhà xuất bản Đại học quốc gia thành phố Hồ Chí Minh
Năm: 2004
[2]. Ralf Hartmut Guting. Tutorial Spatial Database System. Germany Sách, tạp chí
Tiêu đề: Tutorial Spatial Database System
[5]. Website Bách khoa toàn thư: http://en.wikipedia.org/ Sách, tạp chí
Tiêu đề: Bách khoa toàn thư
[6]. Website SQL Tutorial: http://www.w3schools.com/SQL/ Link
[4] Quantum GIS Documentation Version 1.01 Khác

HÌNH ẢNH LIÊN QUAN

Ngoài  ra  còn  có  2  bảng  geometry_columns  và  spatial_ref_sys  dùng  để  mô  tả  các kiểu dữ liệu không gian và tham chiếu không gian - Mô phỏng mô hình quản lý hoạt động của hệ thống xe bus ở khu vực trung tâm thành phố Hồ Chí Minh
go ài ra còn có 2 bảng geometry_columns và spatial_ref_sys dùng để mô tả các kiểu dữ liệu không gian và tham chiếu không gian (Trang 1)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w