Với những mục đích nêu trên, để có thể xây dựng hệ thống hoàn chỉnh em đặt ra những phương pháp cụ thể như sau: - Sử dụng kiến thức đã học về website, cơ sở dữ liệu để phân tích thiết kế
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
BÁO CÁO
KHÓA LUẬN TỐT NGHIỆP
TÊN ĐỀ TÀI XÂY DỰNG WEBSITE ĐẶT VÉ DU LỊCH
GVHD : TS Trần Văn Hưng Sinh Viên : Lý Văn Trà
ĐÀ NẴNG, 07/2020
Trang 2Hiện nay việc ứng dụng công nghệ thông tin được xem là một trong những yếu tố quyết định trong hoạt động kinh doanh của các cá nhân, công ty và doanh nghiệp nó đóng vai trò quan trọng để tạo ra đột phá mạnh mẽ Cùng với
đó là sự phát triển của mạng Internet Trong sản xuất, kinh doanh giờ đây đã được thúc đẩy mạnh mẽ thông qua thương mại điện tử Đối với một cửa hàng hay shop việc tiếp cận, quảng bá, giới thiệu, tạo nhiều điều kiện thuận lợi thỏa mãn nhu cầu của khách hàng Vậy nên, em đã thực hiện đồ án “Xây dựng website đặt vé du lịch” để tạo nhiều điều kiện thuận lợi cho khách hàng và quảng bá du lịch Việt Nam
Em cũng xin chân thành cảm ơn TS Trần Văn Hưng đã trực tiếp chỉ bảo và hưỡng dẫn em suốt quá trình hoàn thành khóa luận này Và em cũng xin cảm
ơn tất cả các thầy cô Khoa Tin học đã nhiệt tình giúp đỡ và đào tạo em trong thời gian vừa qua
Em xin trân trọng cảm ơn!
Đà Nẵng, ngày tháng năm 2020
Sinh viên thực hiện
Lý Văn Trà
Trang 3
Đà Nẵng, ngày tháng năm 2020
Cán bộ hướng dẫn
Trang 4MỞ ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Tổng quan về thương mại điện tử và website bán hàng 3
1.1.1 Thương mại điện tử là gì? 3
1.1.2 Lợi ích thương mại điện tử 3
1.1.3 Các mô hình trong thương mại điện tử 3
1.2 Giới thiệu về Python 5
1.2.1 Python là gì? 5
1.2.2 Tại sao phải sử dụng Python? 6
1.3 Gới thiệu về Django 6
1.3.1 Django là gì? 6
1.3.2 Tại sao sử dụng Django Framework? 6
1.3.3 MVT Patten của Django 7
1.4 Gới thiệu về hệ quản trị cơ sở dữ liệu Mysql 8
1.4.1 Khái niệm 8
1.4.2 Tại sao lại sử dụng hệ quản trị cơ sở dữ liệu Mysql ? 9
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ WEBSITE 13
2.1 Phân tích yêu cầu hệ thống 13
2.1.1 Mô tả hệ thống 13
2.1.2 Yêu cầu chức năng của hệ thống 13
2.1.3 Yêu cầu phi chức năng 13
2.2 Phân tích thiết kế hệ thống 13
2.2.1 Sơ đồ BFD 14
2.2.2 Sơ đồ DFD 15
2.2.3 Sơ đồ ERD 28
2.2.4 Mô hình dữ liệu quan hệ 29
CHƯƠNG 3: TRIỂN KHAI VÀ KẾT QUẢ ĐẠT ĐƯỢC 35
3.1 Triển khai môi trường làm việc 35
3.1.1 Yêu cầu 35
3.1.2 Thực hiện 35
Trang 5TÀI LIỆU THAM KHẢO 48 PHỤ LỤC MÃ NGUỒN 49
Trang 6Hình 2 Sơ đồ BFD 14
Hình 3 Sơ đồ ngữ cảnh 16
Hình 4 DFD 0 Chức năng và luồng của hệ thống 17
Hình 5 DFD 1 Đăng kí tài khoản 18
Hình 6 DFD 1 Xem thông tin tour 19
Hình 7 DFD 1 Đăng nhập 19
Hình 8 DFD 1 Thay đổi thông tin cá nhân 20
Hình 9 DFD 1 Đặt vé 20
Hình 10 DFD 1 Bình luận 21
Hình 11 DFD 1 Đăng blog 21
Hình 12 DFD 1 Quản lý thông tin tài khoản 22
Hình 13 DFD 1 Reset mật khẩu 23
Hình 14 DFD 1 Quản lý tour 24
Hình 15 DFD 1 Quản lý điểm đến 25
Hình 16 DFD 1 Quản lý comment 26
Hình 17 DFD 1 Quản lý đặt vé 26
Hình 18 DFD 1 Quản lý blog 27
Hình 19 DFD 1 Đặt vé,thanh toán 27
Hình 20 Sơ đồ ERD 29
Hình 21 Sơ đồ dữ liệu quan hệ 34
Trang 7Bảng 1 User 30
Bảng 2 Blog 30
Bảng 3 Comment 31
Bảng 4 Booking 31
Bảng 5 Role 31
Bảng 6 Photo 31
Bảng 7 Tour 32
Bảng 8 Destination 32
Bảng 9 Area 32
Trang 8MỞ ĐẦU
Lí do chọn đề tài
Sự phát triển công nghệ thông tin ở nước ta đang bước vào thời kì mới với việc ứng dụng rộng rải công nghệ thông tin trong tổ chức và xã hội, trong kinh doanh,… Công nghệ thông tin đang từng bước đi vào cuộc sống của chúng ta và có vai trò rất lớn phát triển đất nước Do đó việc áp dụng công nghệ thông tin vào nhiều ngành, nhiềulĩnh vực rất quan trọng,trong đó có ngành du lịch Ngành có đóng góp GDP 10% cả nước và là ngành thu nhiều ngoại tệ
Nhận thấy trong những dịp lễ việc mua vé của khách du lịch rất khó khăn,việc mua vé phải di chuyển đến địa điểm bán vé, phải xếp hàng đợi, hết
vé phải mua vé qua tay với giá cao,…Vì vậy, website đặt vé du lịch được ra đời
Mục tiêu đề tài
Xây dựng một hệ thống đặt vé cho khách du lịch và những người muốn tìm hiểu du lịch một cách thuận tiện nhất với thiết kế hết sức đa dạng, dễ mở rộng Các tour du lịch phải thể hiện đầy đủ các thông tin cần thiết cho người dung Ngoài ra hệ thống phải hướng đến việc mở rộng đặt vé du lịch ngoài nước
Đối tượng nghiên cứu
Website xây dựng hướng đến người dùng là các khách du lịch và các những người muốn tìm hiểu du lịch
Phương pháp nghiên cứu
Với những mục đích nêu trên, để có thể xây dựng hệ thống hoàn chỉnh
em đặt ra những phương pháp cụ thể như sau:
- Sử dụng kiến thức đã học về website, cơ sở dữ liệu để phân tích thiết
kế hệ thống một các tối ưu
Trang 9- Khảo sát người dùng để thu thập yêu cầu từ người dùng về một hệ thống mà người dùng đang mong muốn
Trang 10CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về thương mại điện tử và website bán hàng
1.1.1 Thương mại điện tử là gì?
Thương mại điện tử (còn gọi là E-commerce hay E-bussines) là quy trình mua bán dịch vụ thông qua thương mại điện tử và mạng viễn thông, đặc biệt
là qua máy tính và mạng Internet
Ngày nay người ta hiểu khái niện Thương mại điện tử thông thường là tất cả phương pháp tiến hành kinh doanh và các quy trình quản trị thông qua các kênh điện tử trong đó Internet đóng vai trò cơ bản và công nghệ thông tin
là điều kiện tiên quyết
1.1.2 Lợi ích thương mại điện tử
Lợi ích lớn nhất mà Thương mại điện tà mang lại đó chính là tiết kiệm được chi phí, tạo thuận lợi cho các bên giao dịch Giao dịch bằng phương tiện điện tử nhanh hơn là giao dịch bằng truyền thông, ví dụ như gửi fax hay thư điện tử thì nội dung thông tin sẽ đến người nhận nhanh hơn là gửi thư Giao dịch qua Internet có chi phí rất rẻ, một doanh nghiệp có thể gửi thư tiếp thị, chào hàng đến hàng loạt khách hàng chỉ với chi phi giống như gửi cho một khách hàng
Với thương mại điện tử, các bên có thể tiến hành giao khi ở các xa nhau, giữa thành phố với nông thôn, từ nước này sang nước khác hay nói cách khác
là không bị giói hạn bởi không gian địa lý Điều này cho phép các doanh nghiệp tiết kiệm chi phí đi lại, thời gian gặp mặt trong khi mua bán
Với người tiêu dùng họ có thể ngồi tại nhà để đặt hàng, mua sắm nhiều loại hàng hóa dịch yụ thật nhanh chóng
1.1.3 Các mô hình trong thương mại điện tử
Trang 11Thương mại điện tử có thể hoạt động như cánh tay đắc lực của một nhà bán lẻ Nó cũng có thể là hình thức duy nhất đưa sản phẩm của họ ra thị trường
Tuy nhiên, các mô hình thương mại điện tử rất khác nhau và được chia
ra như sau:
- Business-to-business (B2B)
Thương mại điện tử B2B là gì? Là khi một công ty mua hàng hóa hoặc dịch vụ trực tuyến từ một doanh nghiệp khác Ví dụ như: một nhà hàng mua một máy làm đá hoặc một công ty luật mua phần mềm kế toán Các phần mềm kinh doanh như quản lý quan hệ khách hàng (CRM) và các công ty cung cấp dịch vụ thanh toán cũng được coi là B2B Bán hàng trực tuyến B2B có xu hướng phức tạp hơn các hình thức thương mại điện tử khác vì nó có một danh mục lớn các sản phẩm phức tạp
- Business-to-consumer (B2C)
Bán lẻ trực tuyến B2C là khi người tiêu dùng mua một mặt hàng qua internet để sử dụng riêng Mặc dù thương mại điện tử B2C có vẻ nổi bật hơn, nhưng nó chỉ bằng một nửa kích thước của thị trường thương mại điện tử B2B trên toàn thế giới
Trang 12còn là các doanh nghiệp bán hàng secondhand đôi khi mua hàng hóa từ những người dùng internet bình thường
- Business-to-government (B2G)
Hình thức này đôi khi được gọi là business-to-administration (B2A) Là khi một công ty tư nhân trao đổi hàng hóa hoặc dịch vụ với một cơ quan công cộng Thông thường dưới dạng một hợp đồng kinh doanh với một tổ chức công cộng để thực hiện một dịch vụ được ủy quyền Chẳng hạn, một công ty giám sát có thể đấu thầu trực tuyến một hợp đồng để làm sạch tòa án quận hoặc một công ty CNTT có thể đáp ứng đề xuất quản lý phần cứng máy tính của thành phố
- Consumer-to-government (C2G)
Bạn có bao giờ thực hiện trả phí cho chỗ đậu xe hơi bằng ứng dụng trên điện thoại chưa? Nếu rồi thì bạn đã có kinh nghiệm về C2G rồi đấy! Mô hình này cũng bao gồm nộp thuế trực tuyến và mua hàng hóa của cơ quan chính phủ được đấu giá online Bất cứ khi nào bạn chuyển tiền cho một cơ quan công cộng qua internet, là bạn đang tham gia vào thương mại điện tử C2G đấy!
1.2 Giới thiệu về Python
1.2.1 Python là gì?
Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991
Python có thể được chạy trên mọi hệ điều hành từ MS-DOC đến Mac
OS, OS/2, WinDows, Linux và các hệ điều hành khác thuộc họ Unix.Python
là một trong những ngôn ngữ được sử dụng nhiều nhất hiện nay
Python đáp ứng phần lớn các yêu cầu của lập trình viên:lập trình Web,có thể được sử dụng để phát triển các ứng dụng destop, AI, Machine Learning, [5]
Trang 131.2.2.Tại sao phải sử dụng Python?
Python có các đặc điểm sau: đẹp đẽ tốt hơn xấu xí, minh bạch tốt hơn che đậy, đơn giản tốt hơn phức tạp, phức tạp tốt hơn rắc rối, dễ đọc
Python có thể được mở rộng: nếu ta biết sử dụng C, ta có thể dễ dàng viết và tích hợp vào Python nhiều hàm tùy theo nhu cầu Các hàm này sẽ trở thành hàm xây dựng sẵn (built-in) của Python Ta cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp) Hơn thế nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử dụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó
1.3 Gới thiệu về Django
1.3.1 Django là gì?
Django là 1 web framework khá nổi tiếng được viết hoàn toàn bằng ngôn ngữ Python Nó là 1 framework với đầu đủ các thư viện, module hỗ trợ các web-developer
Django tập trung vào tính năng “có thể tái sử dụng” và “có thể tự chạy” của các component, tính năng phát triển nhanh, không làm lại những gì đã làm Một số website phổ biến được xây dựng từ Django là Pinterest, Instagram, Mozilla, và Bitbucket
Django sử dụng mô hình MVT(Model-View-Template) và được phát triển bởi Django Software Foundation (DSF một tổ chức phi lợi nhuận độc lập) Mục tiêu chính của Django là đơn giản hóa việc tạo các website phức tạp
có sử dụng cơ sở dữ liệu [6]
1.3.2 Tại sao sử dụng Django Framework?
Nó nhanh và đơn giản, Django giúp bạn có thể lập trình web trong thời gian ngắn
Trang 14Hơn nữa, Django có tài liệu rất tốt và tuân theo nguyên tắc DRY (Đừng lặp lại chính mình) trong khi những Framework khác không quan tâm nhiều
về điều này Django cũng hỗ trợ ORM (Object Relistic Mapping)
Một cơ sở dữ liệu có thể được cập nhật thông qua command line chỉ bằng cách sử dụng lệnh sau đây
`python manage.py migrate`
Và migrations có thể được tạo ra bằng cách sử dụng:
`python manage.py makemigrations`
1.3.3 MVT Patten của Django
Django sử dụng mô hình MVT (Model-View-Template) thay vì sử dụng
Mọi sự khó hiểu cũng diễn ra ở đây khi View của Django đang đảm nhận vai trò tương tự Controller trong MVC khi mà nó có khá nhiều logic Sự khó hiểu nhẹ này chỉ là thoáng qua khi chúng ta đã quen với những
Trang 15framework khác Rồi mọi chuyện sẽ trở nên bình thường khi chúng ta lại quen với Django
Hình 1 Cấu trúc tập tin mô hình MVT
1.4 Gới thiệu về hệ quản trị cơ sở dữ liệu Mysql
1.4.1 Khái niệm
Trang 16MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server RDBMS là một phần mềm hay dịch
vụ dùng để tạo và quản lý các cơ sở dữ liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng
MySQL là một trong số các phần mềm RDBMS RDBMS và MySQL thường được cho là một vì độ phổ biến quá lớn của MySQL Các ứng dụng web lớn nhất như Facebook, Twitter, YouTube, Google,
và Yahoo! đều dùng MySQL cho mục đích lưu trữ dữ liệu Kể cả khi ban đầu nó chỉ được dùng rất hạn chế nhưng giờ nó đã tương thích với nhiều hạ tầng máy tính quan trọng như Linux, macOS, Microsoft Windows, và Ubuntu [7]
1.4.2 Tại sao lại sử dụng hệ quản trị cơ sở dữ liệu Mysql ?
- Tính linh hoạt
Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ lên đến hàng terabytes thông tin Sự linh hoạt
về flatform là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux, Unix, và Windows đang được hỗ trợ Và dĩ nhiên, tính chất mã nguồn mở của MySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào các yêu cầu thích hợp cho database server
Trang 17các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh nghiệp khó tính ngày nay
- Có thể sử dụng ngay
Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu chuẩn đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL
- Hỗ trợ giao dịch mạnh
MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu mạnh nhất trên thị trường Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại Tính toàn vẹn của
dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức
- Nơi lưu trữ Web và Data đáng tin cậy
MySQL là nhà máy chuẩn cho các web sites phải trao đổi thường xuyên vì nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh ghê gớm, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm kiếm văn bản nhanh Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Các tính năng khác như bảng nhớ chính, cây B và chỉ số băm,
và bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm
Trang 18cho MySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụng doanh nghiệp
- Chế độ bảo mật dữ liệu mạnh
Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhận truy cập
cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ
sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách
là điều có thể làm được SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó
- Sự phát triển ứng dụng hỗn hợp
Một trong số các lý do khiến cho MySQL là cơ sở dữ liệu mã nguồn
mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhiều nữa Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ trong bất kì ứng dụng nào MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên
- Dễ dàng quản lý
Trang 19MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút Điều này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL
từ một máy trạm đơn Nhiều công cụ của các hãng phần mềm thứ 3 cũng
có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra
- Mã nguồn mở tự do và hỗ trợ 24/7
Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho phần mềm
mã nguồn mở vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn diện cho các ứng dụng chủ chốt của họ Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lưới MySQL
- Tổng chi phí thấp nhất
Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công ty đang thấy rõ việc tiết kiệm chi phí Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý Thêm vào đó, tính tin cậy và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết
Trang 20CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ WEBSITE
2.1 Phân tích yêu cầu hệ thống
2.1.2 Yêu cầu chức năng của hệ thống
Hệ thống được chia với ba loại đối tượng sử dụng hệ thống, chức năng quyền hạn củ thể ứng với từng loại đối tượng:
- Admin: là người quản lý tour du lịch,quản lý người dùng, quản lý thông
tin người dùng, quản lý slider, quản lý đặt vé, quản lý hình ảnh,… là người có quyền cao nhất trong hệ thống
- User: là người dùng sau khi đăng nhập có các quyền xem tour, đặt
vé,quản lý thông tin cá nhân, đăng blog,…
- Guest: là đối tượng không đăng nhập chỉ có quyền cơ bản là xem
thông tin tour, các thông tin trên web
2.1.3 Yêu cầu phi chức năng
- Phân quyền chặt chẽ:Quản lý người dùng thông qua các chức năng và
dữ liệu.Các chức năng được thiết kế độc lập giúp linh hoạt hơn trong việc tổ chức
- Ổn định,xử lý nhanh:Các thao tác được quản lý chặt chẽ.Các số liệu đã
nhập được ràng buộc trên nên tảng hệ thống quản lý tổng thể.Các thủ tục xử
lý được phân chia tối ưu, do đó tốc độ tính toán và xử lý rất nhanh
- Hỗ trợ cùng nhiều người dùng:Giải pháp được thiết kế, nhằm hỗ trợ
nhiều người dùng cùng lúc
2.2 Phân tích thiết kế hệ thống
Trang 21Mục đích của phân tích chức năng là xác định một cách chính xác và cụ thể các chức năng chính của hệ thống thông tin Trong giai đoạn phân tích chức năng, người ra phải xác định một cách rõ ràng những gì mà hệ thống sẽ phải thực hiện mà chưa quan tâm tới phương pháp thực hiện các chức năng
ấy
Như vậy, việc phân tích phải đề cập đến những mô tả cơ sở ban đầu Các
mô tả này sẽ được trình bày rõ ràng trong một tài liệu gửi cho người sử dụng phê chuẩn trước khi tiến hành những công việc tiếp theo [1]
Hình 2 Sơ đồ BFD
Trang 222.2.2 Sơ đồ DFD
DFD (Data Flow Diagram) là sơ đồ luồng đi dữ liệu trong hệ thống sơ đồ DFD được vẽ khi có phân rã chức nắng BFD và các yêu cầu từ thu thập yêu cần trong hệ thống để biết được người dùng thao tác trên hệ thống và luồng đi
dữ liệu sẽ được xử lý như thế nào
Sơ đồ luồng dữ liệu trong tiếng Anh là Data Flow Diagram, viết tắt là DFD
Sơ đồ luồng dữ liệu (DFD) là một mô hình hệ thống cân xứng cả dữ liệu
và tiến trình (progress) Nó chỉ ra cách thông tin chuyển vận từ một tiến trình hoặc từ chức năng này trong hệ thống sang một tiến trình hoăc chức năng khác
Với sơ đồ BFD, chúng ta đã xem xét hệ thống thông tin theo quan điểm
"chức năng" thuần túy Bước tiếp theo trong quá trình phân tích là xem xét chi tiết hơn về các thông tin cần cho việc thực hiện các chức năng đã được nêu và những thông tin cần cung cấp để hoàn thiện chúng Công cụ mô hình được sử dụng cho mục đích này là sơ đồ luồng dữ liệu DFD
DFD là công cụ dùng để trợ giúp cho bốn hoạt động chính sau đây của các phân tích viên hệ thống trong quá trình phân tích thông tin:
- Phân tích: DFD được dùng để xác định yêu cầu của người sử dụng
- Thiết kế: DFD dùng để vạch kế hoạch và minh họa các phương án cho phân tích viên hệ thống và người dùng khi thiết kế hệ thống mới
- Biểu đạt: DFD là công cụ đơn giản, dễ hiểu đối với phân tích viên hệ
Trang 23- Sơ đồ ngữ cảnh:
Sơ đồ ngữ cảnh (Context diagram): đầy là sơ đồ mức cao nhất Nó cho ra một cái nhìn tổng quát về hệ thống trong môi trường nó đang tồn tại Ở mức này, sơ đồ ngữ cảnh chỉ có một tiến trình duy nhất, các tác nhân và các luồng
dữ liệu (không có kho dữ liệu)
Sơ đồ mức 0 là sơ đồ phân rã từ sơ đồ ngữ cảnh Với mục đích mô tả hệ thống chi tiết hơn, sơ đồ mức 0 được phân rã từ sơ đồ ngữ cảnh với các tiến trình được trình bày chính là các mục chức năng chính của hệ thống
Sơ đồ mức i (i >= 1) là sơ đồ được phân rã từ sơ đồ mức i-1 Mỗi sơ đồ phân rã mức sua chính là sự chi tiết hóa một tiến trình mức trước Quá trình phân rã sẽ dừng khi đạt được sơ đồ luồng dữ liệu sơ cấp (khi một tiến trình là một tính toán hay thao tác dữ liệu đơn giản, khi mỗi luồng dữ liệu không cần chia nhỏ hơn nữa
Để dễ dàng cho việc xây dựng sơ đồ luồn dữ liệu người ta phải dựa vào
sơ đồ chức năng kinh doanh BFD trên nguyên tắc mỗi chức năng tương ứng
Thể hiện cái nhìn tổng quan của hệ thống
Hình 3 Sơ đồ ngữ cảnh
Trang 24- Sơ đồ DFD 0
Sơ đồ phân rã từ sơ đồ ngữ cảnh, thể hiện chức năng và luồng dữ liệu của hệ thống
Hình 4 DFD 0 Chức năng và luồng của hệ thống
- Sơ đồ DFD 1 của đăng kí tài khoản
Trang 25Thể hiện luồng dữ liệu đăng ký tài khoản của một Guest lên hệ thống Khi Guest đăng ký dữ liệu sẽ được kiểm tra theo đúng định dạng hay không hay có tồn tại trong hệ thống hay chưa Nếu tất cả điều thỏa mãn sẽ cho phép một đăng ký một tài khoản mới
Hình 5 DFD 1 Đăng kí tài khoản
- Sơ đồ DFD 1 của xem thông tin tour
Sơ đồ này thể hiện luồng đi của dữ liệu đối với cả ba đối tượng User,Guest,Admin
Trang 26Hình 6 DFD 1 Xem thông tin tour
- Sơ đồ DFD 1 của đăng nhập
Sơ đồ thể hiện luồng dữ của một đối tượng khi đăng nhập vào
Hình 7 DFD 1 Đăng nhập
- Sơ đồ DFD 1 của thay đổi thông tin cá nhân
Sơ đồ thể hiện luồng dữ liệu của một đối tượng đã đăng nhập vào hệ thống và sửa đổi thông tin cá nhân
Trang 27Hình 8 DFD 1 Thay đổi thông tin cá nhân
- Sơ đồ DFD 1 của đặt vé
Sơ đồ này thể hiện luồng dữ liệu đặt vé của một người đăng nhập vào hệ thống
Hình 9 DFD 1 Đặt vé
Trang 28- Sơ đồ DFD 1 của bình luận
Sơ đồ này thể hiện luồng dữ liệu của người dùng bình luận hay trả lời bình luận đó trong một tour
Hình 10 DFD 1 Bình luận
- Sơ đồ DFD 1 của đăng blog
Sơ đồ biểu diễn luồng đi của người dùng muốn đăng một blog
Hình 11 DFD 1 Đăng blog
Trang 29- Sơ đồ DFD 1 quản lý thông tin tài khoản
Sơ đồ biểu diễn luồng đi của quản trị viên muốn thay đổi,xem hoặc thông tin của người dùng
Hình 12 DFD 1 Quản lý thông tin tài khoản
- Sơ đồ DFD 1 reset mật khẩu
Sơ đồ biểu diễn luồng đi của dữ liệu với việc lấy lại mật khẩu Việc lấy lại mật khẩu sẽ được liên kết với mail người dùng
Trang 30Hình 13 DFD 1 Reset mật khẩu
- Sơ đồ DFD 1 quản lý tour
Sơ đồ thể hiện luồng dữ liệu của admin quản lý các tour trong đang có trong hệ thống
Trang 31Hình 14 DFD 1 Quản lý tour
- Sơ đồ DFD 1 quản lý điểm đến
Sơ đồ thể hiện luồng dữ liệu của admin quản lý các điểm đến của tour du lịch
Trang 32Hình 15 DFD 1 Quản lý điểm đến
- Sơ đồ DFD 1 quản lý đặt vé
Sơ đồ thể hiện luồng dữ liệu của admin quản lý các comment không phù hợp
Trang 34- Sơ đồ DFD 1 quản lý blog
Sơ đồ thể hiện luồng dữ liệu của admin quản lý các blog
Hình 18 DFD 1 Quản lý blog
- Sơ đồ DFD 1 đặt vé và thanh toán
Sơ đồ thể hiện luồng dữ liệu của người dùng khi đặt vé
Hình 19 DFD 1 Đặt vé,thanh toán
Trang 352.2.3 Sơ đồ ERD
ERD (Entity Relationship Diagram) là một sơ đồ thực thể kế hợp thể hiện các mối quan hệ giữa các thực thể
Mô hình erd được viết tắt bởi từ Entity Relationship Diagram được hiểu
là mô hình thực thể kết hợp hay còn gọi là thực thể liên kết Mô hình này còn được biết tới với các gọi khác là erd (viết tắt của từ Entity Relationship model) Vậy mô hình er là gì? Mô hình erd hay er bao gồm các thực thể, những mối kết hợp và đặc biệt là danh sách thuộc tính.Trong đó:
Thực thể được hiểu là các danh sách cần được quản lý và có những đặctrưng riêng biệt như tên và các thuộc tính
Mối kết hợp là mối quan hệ và liên quan giữa hai hay nhiều thực thể Mối kết hợp lại được chia thành 3 loại một – một (1-1), một – nhiều (1-N) và nhiều nhiều (N-N)
Cụ thể: Hai thực thể A – B có mối quan hệ 1 – 1 nếu thực thể A chỉ tương ứng với một thực thể kiểu B và ngược lại Hai thực thể này có mối quan hệ 1 – N nếu một thực thể A có thể tương ứng với nhiều thực thể kiểu B, nhưng với 1 thực thể B thì chỉ có thể tương ứng với duy nhất một thực thể kiểu A Và cuối cùng, hai thực thể A – B có mối quan hệ N – N nếu một thực thể kiểu A có thể tương ứng với nhiều thực thể B và ngược lại [3]
Từ các sơ đồ trên xác định dần các mỗi quan hệ trong hệ thống từ đó ta
vẽ được sơ đồ ERD đối với hệ thống