Việc ứng dụng công nghệ thông tin trong các lĩnh vực của đời sống ngày càng được quan tâm và sử dụng hiệu quả, mang lại lợi ích to lớn về mọi mặt.. @ Games - Dé phat trién trò chơi, chún
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
OF TRANSPORT HOCHIMINH CITY
LUAN VAN TOT NGHIEP XAY DUNG WEBSITE DAT TOUR DU LICH SU DUNG ASP.NET CORE MVC
Khoa: Công nghệ thông tin
Chuyên ngành: Mạng máy tính và truyền thông dữ liệu
Giảng viên hướng dẫn: Th§.Vũ Đình Long
Sinh viên thực hiện: Đặng Ngọc Dũng
TP Hỗ Chí Minh, 2023
Trang 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT -.s- se s£ s 2seSsevseexsevssevserssersersersesse 3
2.1.1 Nền tảng NET là gì 2 c2 HH HH ngu ue 3 2.1.2 _ Lịch sử phát triển NET 5c 2E 1E 1151211 11 ch He rat 5 2.2 Tìm hiểu mô hình ASP.NET IMVC 2 sscscesssresseserseeersersereersee 6 2.2.1 Mô hình MVC S1 2S 2 122112112212 12 211g tre rưêy 6 2.2.2 Mô hình MVC trong ASP.NET 5c 2s 2 221121102122 eeerrse 9
3.4.2 Cấu trúc của SQL SerVeF 5 S1 ST 2E 1121211212121 re 13
3.5.3 Lợi ích của Entity FrameWOFK 1 222v 2v S2 HT 511 1xx rrkeg 17
3.6 Mã hoá MDẤ oscce+sevsE t4 ETxE113E238115 1380113 2730113022929 1e xe 19 3.6.1 Mã hoá MD§ là gì 5s nh T121 121 nga 19 3.6.2 Mã hoá MD5 thường dùng để làm gì 2 - ST TH Hye 20 CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THÓNG - 5-5-5 < 21
3.1.1 Đặc tả yêu cầu bài toán 5s c2 tt 2 21 nga 21
Trang 3
3.1.3 Sơ đồ phân cấp chức năng 5 c1 E211 1121211 1E tt tre 22 3.2 Phân tích hệ thống thông tỉn o2 << se +se£Sss£EsExExsEsexeesseeerrsee 22 3.2.1 Các tác nhân của hệ thống - 5c TT 1211 1121211 1 12211 1 ghe re 22 3.2.2 Các chức năng của hệ thống - 5c 1T E1 112121111 122 tt Ha 23
3.2.3.5 Biéu dé use case tim kiếm 2 T9 HT n1 n5 n1 11111111111 1111 1111251118 ru 27 3.2.3.6 Biểu đồ use case đặt tOUT sàn TT 2n TH n1 1n 1n n2 ra ga 27
3.2.3.9 Biểu đồ use case quản lý tài khoản 5 SE nEE2212212212121120 2 12g 29
3.2.3.11 Biểu đồ use case quán lý khách hàng 2-2222 212 1212112112122 c1 tre 31 3.2.3.12 _ Biểu đồ use case quản lý bài viẾt - nnn2221122 212122222122 yu 32
3.2.3.13 _ Biểu đồ use case quản lý hướng dẫn viên 22 St 292211212211212121212 1.2 xe 32
3.3 Thiết kế bảng cơ sở dữ liệu se secseerxevxeerxerxerrserserrsrrsrssree 33 3.3.1 Thiết kế các bảng 2c t T T1 E1E12121 1 21t Hee 33 3.3.2 Sơ đồ thực thể kết hợp ERD - 1 SE 111212122121 12 1 tre 38 3.3.3 Chuyến mô hình ERD thành mô hình quan hệ - 52 2 2c Sz‡x‡zzzczxez 38
3.4 Mã hoá mật khẩu khách hàng 2© £Ex£+xs£+xxezxseessexserxee 40 CHUONG 4: PHAT TRIEN ỨNG DỤNG o5-s<csccsecssereeesereesserserseerre 42
ALL Giao diện chính - L LH S9 9 9u ng nh ng 42
4.13 Giao diện đăng nhập 10 1221221112115 15 1195115210115 ru 45
Trang 442.4 Quán ly tour da dat cecccssessesssessesssessessressessressessressessreaesessesesseseeess 54 4.2.5 _ Quản lý bài viẾt S21 TT E1 1 n1 1 tt HH ng Hye 55 CHUONG 5: KET LUAN VÀ HƯỚNG PHÁT TRIÉN 55c 55 c<es 58
¬ 58 5.2 Hướng phát triễn s se essEEesEEsEEEsEEEEEEExEErserxerrsereersererssrx 58
Trang 5Hình 1 Hình ảnh về NET
Hinh 2 M6 hinh MVC
Hình 3 Cầu trúc của SQL Server
Hình 4 M6 hinh Entity DataFirst
Hinh 5 M6 hinh Entity CodeFirst
Hinh 6 M6 hinh Entity ModelFirst
Hình 7 Sơ đồ phân cấp chức năng
Hinh 8 M6 hinh ERD
Hình 9 Mô hình Diagram
Hình 10 Mã hoá mật khẩu khách hàng
Hình II Giao diện trang chủ
Hình 12 Giao diện danh sách tour
Hình 13 Giao diện trang chủ
Hình 14 Giao diện trang chủ
Hình 15 Giao diện trang chủ
Hình 16 Giao diện đăng ký
Hình 17 Giao diện đăng nhập
Hình 18 Giao diện tài khoản khách hàng
Hình 19 Giao diện đổi mật khâu
Hình 20 Giao diện thông tin tour da dat
Hình 21 Giao diện chỉ tiết bài viết
Hình 22 Giao diện chi tiết tour
12
12
12
12 l6
Trang 6Hình 24 Ciao diện đăng nhập trang quản trị
Hình 25 Cao diện trang chủ trang quản trị
Hình 26 Giao điện quản lý tour
Hinh 27 Giao diện lọc tour theo danh mục
Hình 28 Giao diện tìm kiếm tour theo từ khoá
Hình 29 Giao diện thêm mới
Hinh 30 G1ao diện chỉnh sửa tour
Hình 31 Giao diện danh sách tour đã đặt
Hình 32 Giao diện chỉ tiết tour đã đặt
Hình 33 Giao diện cập nhập trạng thái tour
Hình 34 Giao điện quản lý bài viết
Hình 35 Giao diện danh sách tài khoản quản trị
Hinh 36 G1ao diện tạo mới tài khoản
38
39
40
40 4] 4]
Trang 7Bang | Lich sử phát triển NET
Bảng 2 Bảng đữ liệu Tour
Bang 3 Bảng dữ liệu Danh mục
Bảng 4 Bảng đữ liệu Hướng dẫn viên
Bảng 5 Bảng đữ liệu Chí tiết đặt tour
Bảng 6 Bảng đữ liệu Đặt tour
Bảng 7 Bảng dữ liệu Trạng thái
Bảng 8 Bảng dữ liệu Khách hàng
Bang 9 Bang dir liéu Vai tro
Bang 10 Bảng dữ liệu Tài khoản
Bảng 11 Bảng dữ liệu Bài viết
Bang 12 Bang đỡ liệu Page
Trang 10LỚI NOI ĐẦU
Với sự phát triển mạnh mẽ của công nghệ thông tin và sự phát triển bùng nỗ của mạng máy tính Internet Việc ứng dụng công nghệ thông tin trong các lĩnh vực của đời sống ngày càng được quan tâm và sử dụng hiệu quả, mang lại lợi ích to lớn về mọi mặt Internet đã trở thành nơi mọi người chia sẻ, giao tiếp và kết nồi
Ở Việt Nam ngày nay, nhu cầu giải trí rất cao, đặc biệt là lĩnh vực du lịch Trong
số đó, du lịch ở các tỉnh ven biển miền Trung là một trong những lĩnh vực có tiềm năng lớn và nhu cầu cao Vì vậy, em đã thiết kế trang web du lịch Phú Yên đề giúp những người có nhu cầu về các chuyên du lịch
Trong thời gian thiết kế website, dưới sự hướng dẫn và giúp đỡ của thầy Vũ Đình Long, em đã tìm hiểu về công nghệ NET 6 và xây dựng website đặt tour du lịch Thông qua việc thực hiện đồ án Thực tập tốt nghiệp sẽ giúp em có thêm nhiều kiến thức để chuẩn bị cho đỗ án Luận văn tốt nghiệp sắp tới
Mặc dù trong quá trình làm đồ án đã rất cô gắng nhưng do hạn chế về kiến thức
và thời gian nên đồ án này vẫn còn nhiều thiếu sót, em rất mong được sự giúp đỡ, phê bình và chính sửa của tât cả các thây cô
Trang 11CHƯƠNG 1: TỎNG QUAN
1.1 Ly do chon dé tai
Sinh ra và lớn lên tại vùng đất miền Trung Phú Yên Ngày nay, dịch vụ du lịch của nước ta nói chung và tỉnh Phú Yên nói riêng đã và đang thay đôi, dần dân tiến tới chuyên môn hóa Xu hướng này là sự tự đổi mới của ngành đề đáp ứng nhu cầu phát triển Nếu không đổi mới và tự hoàn thiện, ngành dịch vụ du lịch không thể cạnh tranh với du lịch các tỉnh khác và nước ngoài về giá cả và chất lượng dịch vụ Tuy nhiên, vẫn còn một số bất cập mà chúng ta thường gặp khi đi du lịch: giá cả không hợp lý, chất lượng đồ ăn không dam bao Dé tránh tình trạng này, chúng ta thường chọn đi theo đoàn, theo tour Chính vì vậy em đã chọn thực hiện nghiên cứu ASP.NET với đề tài xây dựng website du lịch Được xây đựng bằng C#, website giúp giảm thời gian tìm kiếm các tour du lịch và giúp giảm chi phí đi lại
1.2Phương pháp nghiên cứu
- Khao sat thong tin về thực trạng các tour du lịch của tính Phú Yên
- _ Tìm hiểu và thu thập ý kiến các yêu cầu từ phía khách hàng
- _ Tìm hiểu và nghiên cứu về nền táng NET 6, ASP.NET MVC
1.3 Đối tượng và công cụ
2022, SQL Server 2019, ASP.NET MVC 6
1.4 Kết quả dự kiến
nghiệm về các địa điểm du lịch và đặt tour cùng với một số chức năng khác giúp cho khách hàng dễ dàng tương tác với website
Trang 12Cloud Mobile Gaming
Hình 1 Hinh anh vé NET
@ Cloud Apps - NET là một lựa chọn tuyệt vời để xây đựng các ứng dụng đám mây hiện đại, nhanh chóng và có thể mở rộng Các ứng dụng này có thê triển khai cho bất kỳ nên tảng đảm mây nào Tuy nhiên, NET và Visual Studio cung cấp một số tích hợp với các địch vụ Azure giúp đễ dàng phát triển các ứng dụng gốc đám mây
Trang 13® 1c? 4pps - NET là một nền tảng tuyệt vời để xây dựng ứng dụng web, API, ứng dụng thời gian thực và microservices ASP.NET mở rộng NET với các công cụ và thư viện bô sung cân thiết để phát triển các ứng dụng web Trên hết, chúng ta có thê sử dụng Blazor đề xây dựng giao điện người dùng web tương tác với C #
@ Mobile Apps - NET Multi-platform App UI (MAUD) hỗ trợ xây dựng các ứng dụng dành cho máy tính đề bàn và thiết bị di động đa nền tảng có thê triển khai đến các hệ điều hành khác nhau như iOS, Android, macOS, Windows
@ Desktop Apps - Dé phat triển ứng dụng dành cho may tinh dé ban, ngoai MAUI, chúng ta có thê sử dụng Blazor Hybrid hoặc Windows App SDK
@ Games - Dé phat trién trò chơi, chúng ta có thê sử dụng Unity, một nền tảng phát trién 3D thời gian thực đề xây dựng trò chơi và mô phỏng
® 1⁄4chine Learning & AI - Với NET, rat dé dàng đề xây dựng các ứng dụng thông minh có thể phát hiện cảm xúc, nhận dạng giọng nói và thị giác, hiểu ngôn ngữ, khả năng tìm kiếm sử dụng các dịch vụ như ML.NET, Cognitive Services
@ Internet of Things (IoT) - NET cung cap hé trợ rất tốt cho việc xây dựng các ứng dụng IoT cho các thiết bi va cam bién nhu Raspberry Pi, HummingBoard
.NET được thiết kê để đơn giản hóa sự phát triển phần mềm bằng cách cung cấp một
mô hình lập trình nhất quán và một bộ API chung có thể được sử dụng trên các hệ điều hành và thiết bị khác nhau Điều này cho phép các nhà phát triển viết code và triên khai ứng lên các nền tảng khác nhau, bao gồm Windows, MacOS và Linux
Hiện tại NET 7 là phiên bản mới nhất của nền tảng NET Nó bao gồm một số tính
năng và cải tiễn mới so với phiên bản trước là NET 6
Chúng ta có thể xây dựng ứng dụng NET sử dụng C#, F#, Visual Basic
C# là ngôn ngữ đơn giản, hiện đại, hướng đối tượng và an toản
Trang 14F# là ngôn ngữ lập trình giúp dễ đàng viết mã cô đọng, mạnh mẽ
Visual Basic là một ngôn ngữ dễ tiếp cận với củ pháp đơn giản đề xây dựng các ứng dụng hướng đối tượng, an toàn
Trang 15Bang I Lịch sử phái triển NET 2.2 Tim hiéu m6 hinh ASP.NET MVC
2.2.1 M6 hinh MVC
MVC là một mô hình giúp phân tách ứng dụng thành 3 thành phần được kết nối với nhau: Model, View, Controller Mục tiêu của mô hình MVC là mỗi phần có thể được phát triển, được thử nghiệm độc lập với nhau và cũng kết hợp để tạo ra một ứng dụng rất mạnh mẽ
Việc phân định trách nhiệm này giúp bạn mở rộng ứng dụng về độ phức tạp vì dễ dàng mã hóa, gỡ lỗi và kiểm tra một cái gì đó (Model, View hoặc Controller) Một số mẫu thiết kế khác dựa trên MVC, chăng hạn như MVVM (Model-View-View- Model), MVP (Model-View-Presenter) va MVW (Model-View-Whatever)
Trang 16Ba thành phần của MVC có thể được mô tá như sau:
có nhiệm vụ thao tác với cơ sở đữ liệu, tức là nó sẽ chứa tất cả các hàm, các phương thức truy vấn trực tiếp với đữ liệu Sau do, controller sé théng qua cac
hàm, phương thức đó đề lây đữ liệu rồi gửi qua View Vì thé, đây là bộ phận cầu
nối giữa 2 thành phần View và Controller
View: Xu ly bé cuc giao dién va hiển thị dữ liệu, View có nhiệm vụ tiếp nhận dữ liệu từ Controller (nơi chứa những giao điện như: khung nhập, nút bấm, mem, ) và đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống
Controller: Xử lý tương tác người dùng, làm việc với Model và View đề hiển thị hiển thị UI Trong ứng dụng NET MVC, View chỉ hiển thị thông tin, Controller quản lý và phản hồi với đầu vào và tương tác của người dùng bằng các action trong MVC
Luong xtr ly trong MVC
Trang 17- Controller nhận yêu cầu được gửi từ client đến server
- Controller lay đỡ liệu từ model, hoặc cập nhật dữ liệu của model
- Controller lva chọn view phù hợp cho việc hiển thị dữ liệu và chuyên đữ liệu của model sang cho view
- _ View sử dụng dữ liệu của model dé sinh ra giao điện
Với cách mô tả MVC như trên, controller đảm nhiệm vai trò điểm tiếp nhận của tương tác Người dùng trao đổi với controller đê bắt đầu một tương tác
Trong ứng dụng web, tương tác này chính là truy vấn HTTP Như vậy khi một truy vấn ITTP tới ứng dụng, controller sẽ xử lý truy vấn Tùy thuộc vào truy vấn, controller có thể thực hiện nhiều hoạt động khác nhau Tuy nhiên các hoạt động này hầu như đều thực hiện trong sự kết hợp với model
Sự độc lập giữa model và view giúp đơn giản hóa việc test Thông thường rất khó đề test giao điện Khi không liên quan đến giao diện, thành phần model còn lại sẽ dễ dang hon dé test
Sự độc lập này cũng cho phép controller lựa chọn view cho phù hợp với yêu cầu Tức
là, với cùng một đữ liệu (model), controller có thể lựa chọn những cách hiển thị (view) khác nhau Ví dụ, trong một ứng dụng web thông thường, controller sẽ lựa chọn HTML view Nếu truy vẫn đến từ một ứng dụng khác, controller có thê lựa chọn loại view đặc biệt ở dạng JSON hoặc XML
4% Ưu điểm
Kiểm tra dễ dàng: Nhờ vào các thành phần độc lập giúp người lập trình dễ kiểm
soát, kiếm tra và khắc phục các vân đề, các lõi phát sinh trước khi hoàn thiện sản phâm và đưa đến tay người dùng
Trang 18Tối ưu lượng băng thông: Việc không sử dụng viewstate của mô hình MVC sẽ giúp tiết kiệm băng thông và giúp website hoạt động ôn định hơn
Chức năng control: Mô hình MVC đóng vai trò tối wu bd control trên nền tảng ngôn ngữ lập trình khi mà kết hợp các loại ngôn ngữ lập trình như CSS, HTML, Javascript View va size: MVC giúp tối ưu băng thông khi có nhiều yêu cầu được thực hiện cùng lúc sẽ ảnh hưởng đến đường truyền mạng
Chức năng Separafion of Concern: Chức năng này cho phép phân loại Model, View, Database, dé dé quan lý và kiểm soát
Tính kết hợp: Việc mô hình MVC có thê kết hợp trên nhiều nền tảng website và ứng dụng khác nhau giúp người lập trình tiện hơn khi viết code
Kết cấu tương đối đơn giản: Ưu điểm nay phù hợp cho đối tượng sử dụng khi có nhu cầu lập trình website hoặc các ứng dụng
¢ Nhược điểm
Đối với một mô hình có tính phân tách cao như MVC thì phù hợp để ứng dụng trong các dự án lớn Việc ứng dụng mô hình MVC trong các dự án nhỏ sẽ dễ bị cồng kẻnh, tốn kém nguồn lực khi phát triển dự án
2.2.2 Mô hình MVC trong ASP.NET
ASP.NET MVC là một khung phát triển web nguồn mở từ Microsoft cung cấp kiến trúc Model-View-Controller ASP.NET MVC cung cấp một giải pháp thay thế cho các ASP.NET web form đề xây dựng các ứng dụng web Đây là một phần của nền tảng NET để xây dựng, triển khai và chạy các ứng dụng web Chung ta co thé phat
Trang 19triển các ứng dụng web và trang web với sự trợ giúp của HTML, CSS, JQuery, JavaScript, v.v
Uu diém:
Cho phép thay thế bất kỳ thành phần nào của ứng dụng
Hỗ trợ tốt hơn cho Test Driven Development
Cac img dung phire tap rat dé quan ly boi Model, View, Controller
Cung cấp cơ chế định tuyến mạnh mé voi Controller
Các ứng dụng NET MVC được hỗ trợ bởi các nhóm phát triển và thiết kế web lớn
Sử dụng băng thông được tối ưu hóa cho các yêu cầu được thực hiện cho máy chủ
Nhược điểm:
Không thê xem trước bản thiết kế như trang aspx
Cần chạy chương trình mỗi lần muốn xem bản thiết kẻ
Khá phức tạp đề thực hiện, không phù hợp với các ứng dụng nhỏ
@ Lotich khi st dụng ASP.NET Core MVC
Xdy dung web UI va web API voi ASP.NET Core MVC
® Người dùng có thê tạo ra những ứng dụng web có thẻ thực hiện testing theo mô hinh MVC
® Xây dựng HITTP services hỗ trợ nhiều định đạng và đầy đủ những hỗ trợ cho nội dung của đữ liệu trả về
e Razor cung cập ngôn ngữ tạo Views hiệu quả
@ Tag Helper cho phép code server side tham gia vào quá trình tạo và render phần tử HTML
Trang 20@ Model Binding co thé tu động ánh xạ dir liéu tir HTTP request téi nhimg tham số của method action
œ® Model validation thực hiện validate client và server một cách tự động
Phat trién client-side
ASP.NET Core được thiết kế tích hợp với nhiéu client side frameworks mét cach liên tục bao gồm AngularJS, Bootstrap va KnockoutJS
Những lợi ích khác
Ngoài ra, ASP.NET Core còn được đánh giá cao khi mang trong mình nhiều lợi ích khác như:
® Là khung mẫu và gọn gàng hơn kiến trúc nhiều tầng
® Là một khung công tác với mã nguồn mở
® Dễ dàng tạo ứng dụng ASP.NET đa nền tảng trên Windows, Mac và Linux
® Cấu hình là môi trường sẵn sàng cho đám mây
e Khả năng lưu trữ trên: IIS, HTTP.sys, Kestrel, Nginx, Apache va Docker
3.3 Giới thiệu về HTMI, CSS, Javascript
HTML, (viết tắt của từ 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 trên World Wide Web Nó có thê được trợ giúp bởi các công nghệ như CSS và các ngôn ngữ kịch bản giống như JavaScript
Các trình duyệt web nhận tài liệu HTML từ một web server hoặc một kho lưu trữ cục
bộ và render tài liệu đó thành các trang web đa phương tiện HTML mô tả cầu trúc
Trang 21của một trang web về mặt ngữ nghĩa và các dấu hiệu ban đầu được bao gồm cho sự xuất hiện của tài liệu
HTML documents là toàn bộ tệp được kết thúc với đuôi ".html" hay "htm", ban co thể xem chủng thông qua bat ky trình duyệt nào hiện nay nhu Safari, Google Chrome
Cascading Style Sheets (CSS) — duoc ding dé miéu ta cach trinh bay cac tài liệu
viết bằng ngôn ngữ HTML và XHTML Ngoài ra ngôn ngữ định kiểu theo tầng cũng
cé thé ding cho XML, SVG, XUL Cac dac điểm kỹ thuật của CSS được duy trì
bởi World Wide Web Consortium (W3C) Thay vi dat cac thẻ quy định kiểu dang cho văn bản HTML (hoặc XHTML) ngay trong nội dung của nó, bạn nên st dung CSS
JavaScript là một ngôn ngữ lập trình thông dịch được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ này được dùng rộng rãi cho các trang web (phía người dùng) cũng như phía máy chủ (với Nodejs) Nó vốn được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java .js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript Những lợi ích mà JavaScript mang lại như: Dễ dang hoc và sử dụng, giảm tải máy chủ, cải thiện giao diện người dùng
Cả ba ngôn ngữ cùng nhau tạo ra trải nghiệm người dùng tích cực trên bất kỳ trang web nào Trong khi HTML và CSS chủ yếu có thê điều chinh nội dung nh, chúng có thê tích hợp với mã JavaScript phía máy khách để cập nhật nội dung một cách linh hoạt
Ví dụ: khối mã tập lệnh trên trang HTML có thể chứa JavaScript bên trong Sau
đó, trình duyệt có thể xử lý cả HTML và mã JavaScript nội bộ khi trang HTML tải trong trinh duyệt
3.4 Giới thiệu vé SQL Server
Trang 22SQL Server là một hệ thống quản lý cơ sở đữ liệu quan hệ (RDBMS) được phát triên bởi Microsoft Nó chủ yếu được thiết kế và phát triển dé cạnh tranh với cơ sở dữ liệu MySQL và Oracle Sản phẩm này được xây dựng dựa trên chức năng cơ bản là lưu trữ và truy xuất dữ liệu theo yêu cầu của các ứng dụng khác SQL Server hỗ trợ ANSI SQL, là ngôn ngữ SQL (Ngôn ngữ truy vấn có cấu trúc) tiêu chuẩn Tuy nhiên, SQL Server đi kèm với việc trién khai ng6n ngit SQL, T-SQL (Transact-SQL) T-SQL là một ngôn ngữ độc quyền của Microsoft duoc goi la Transact-SQL No cung cấp thêm khả năng khai báo biến, xử lý ngoại lệ, thủ tục được lưu trữ, v.v
SQL Server Management Studio (SSMS) là công cụ g1ao điện chính cho SQL Server
và nó hỗ trợ cá môi trường 32 bít và 64 bịt
3.4.2 Cầu trúc của SQL Server
Sơ đồ cầu trúc của SQL Server
Trang 23Hinh 3 Cau tric ctia SOL Server
SQL Server bao gồm 2 thanh phan chinh: Database Engine va SQLOS
Database Engine
Thanh phan cét 16i cua SQL Server la Database Engine No bao gém Relation Engine giúp xử lý các truy vấn và Storage Engine giúp quản lý các tệp cơ sở đữ liệu, các trang, chỉ mục,
SQLOS
Trang 24Dưới Database Engine là hệ điều hành SQL Server hay SQLOS (SQL Server Operating System) SQLOS giup quan lý bộ nhớ và I/O, lên lịch nhiệm vụ và khóa
dữ liệu đề tránh các xung đột xảy ra khi update
Microsoft cung cấp công cụ, địch vụ quản lý đữ liệu (đata management) và BI
® Với quản lý đữ liệu SQL Server cung cấp các dịch vụ như: SQL Server Integration Services (SSIS), SQL Server Data Quality Services va SQL Server Master Data Services Dé phat trién co sé dir liéu, ta co thé str dyng céng cu SQL Server Data Dé quan lý, triển khai và giám sát cơ sở đữ liệu ta có SQL Server Management Studio (SSMS)
® Với việc phân tích dữ liệu, SQL Server cung cap SQL Server Analysis Services (SSAS), SQL Server Reporting Services (SSRS) va The Machine Learning Services (R Services)
3.4.3 Các phiên ban cua SQL Server
SQL Server 2012
SQL Server 2012 cung cấp thêm những tính năng mới như chỉ mục cột lưu trữ, có thé được sử dụng để lưu trữ dữ liệu theo định đạng cột cho các ứng dụng Mặt khác, phiên bản này có tính khả dụng cao và được trang bị công nghệ khắc phục sau thảm họa
SQL Server 2014
SQL Server 2014 da thém OLTP trong bộ nhớ, từ đó cho phép người dùng chạy các ứng dụng xử lý giao dịch trực tuyến Một tính năng mới khác trong SQL 2014 đó là phần mở rộng vùng đệm bằng cách tích hợp bộ nhớ đệm và ô đĩa — đây là cách thiết
kế đề tăng thông lượng I/O thông qua việc giảm đữ liệu từ các đĩa cứng thông thường
Trang 25SQL Server 2016
Trong bối cảnh chiến lược công nghé “mobile first, cloud first”, SQL Server 2016 được phát triển như một phần trong chiến lược này với những tính năng mới như: điều chỉnh hiệu suất, phân tích hoạt động thời gian thực, trực quan hóa đữ liệu và báo cáo trên thiết bị di động và sự hỗ trợ của hybrid cloud SQL Server 2016 còn tăng cường
hỗ trợ cho việc phân tích dữ liệu lớn và các ứng dụng phân tích nâng cao
SQL Server 2017
SQL Server 2017 hỗ trợ chạy trên Linux, điều này làm SQL Server chuyên từ nền tảng cơ sở đữ liệu sang một hệ điều hành mã nguồn mở thường thấy trong các doanh nghiệp Thêm vào đó, ở phiên bản này còn hỗ trợ ngôn ngữ lập trình Python, một ngôn ngữ mã nguồn mở được sử dụng rộng rãi trong các ứng dụng phân tích
SQL Server 2019
Ở bản 2019, SQL Server cho phép người dùng kết hợp các vùng chứa SQL Server, HDFS và Spark với nhau bằng cách sử dụng tính năng Big Data Cluster mới Thêm vào đó, một tính năng mới khác là khả năng phục hồi dữ liệu được tăng tốc nhanh hơn
3.5 Giới thiệu Entity Framework Core
3.5.1 Entity Framework là gì ?
Entity Framework Core (EF Core) là một thư viện ORM được phát trién tir nam 2016 bởi Microsoft Framework này tra đời nhằm hỗ trợ sự tương tác giữa các ứng dụng trên nên táng NET Core với các CSDL quan hệ
ORM la một tập hợp công nghệ có thể làm việc với các hệ quản trị CSDL quan hệ từ các ngôn ngữ lập trình hướng đối tượng mà không phải trực tiếp để xử lý truy vấn SQL
Trang 26Entity Framework Core sẽ giúp các nhà phát triển web tương tác với CSDL theo phương pháp hướng đối tượng với ít code hơn so với các ứng dụng truyền thống Ưu điểm nỗi bật nhất của ứng dụng này là giúp lập trình viên giảm thiều việc lập trình mã nguồn đề thực hiện truy cập và tương tác với CSDL
Entity Framework Core la phiên bản mới cua Entity Framework sau EF 6.x No la ma nguồn mở, nhẹ, có thể mở rộng và là phiên bản đa nền tảng của công nghệ truy cập đữ liệu Entity Framework
Entity Framework la m6t framework Object/Relational Mapping (O/RM - ánh xạ quan hé/d6i tuong) Day 1a mét cai tién cha ADO.NET, cung cấp cho các nhà phát trién mét co chế tự động đề truy cập và lưu trữ đữ liệu trong cơ sở đữ liệu
EE Core được dự định sẽ sử dụng với các ứng dụng NET Core Tuy nhiên, nó cũng
có thê được sử dụng với các ứng dụng dựa trên NET Framework 4.5+ tiêu chuẩn
3.5.2 Cấu trúc cua Entity Framework
EDM (Entity Data Model)
LINQ to Entities va Entity SQL
Đây ngôn ngữ truy vấn được sử dụng đề viết các truy vấn tới Object Model và trả về các Entity được định nghĩa bén trong Conceptual Model
Trang 27Entity SQL cũng là một ngôn ngữ truy vấn khác gần giống với LINQ to Entities Object Service
Object Service co trach nhiém trong viéc cụ thé hoa qua trinh chuyén đôi dữ liệu trả
về từ một Entity Client Data Provider dén mét Entity Object Structure
Entity Client Data Provider
Thành phần này chịu trách nhiệm tương tác với Data Provider của ADO.NET Entity Client Data Provider sẽ chuyên đôi truy van LINQ to Entities hay la Entity SQL vé dé truy van SQL
Ngoài ra, Entity Client Data Provider còn thực hiện chuyên kết quả thu được từ truy vấn SQL về đạng trung gian sau đó chuyên cho Object Services xử lý
3.5.3 Lợi ích của Entity Framework
Tăng năng suất: Entity famework giúp giảm lượng code và các công việc dư thừa Từ
đó, người dùng sẽ tăng năng suất làm việc, tiết kiệm thời gian, chất xám
Đơn giản hoá bảo trì phần mềm: Với lượng code ít, việc bảo trì và kiêm tra phần mềm
sẽ đơn giản hơn nhiều
Không cần viết code SQL: Lập trình viên có thể sử đụng LINQ to Entities khi thực hiện các truy vấn dữ liệu để thao tác với các Object được ra đời từ Entity Framework Tiết kiệm thời gian viết code: Entity Framework giúp tiết kiệm được thời gian viết
code khá lớn đề thao tác với CSDL
Tự động hóa: Entity Framework tự động tạo ra các Commands, Class tương ứng cho viéc insert, select, update, delete, dtr ligu từ CSDL quan hệ
3.5.4 Truong hop dung Entity Framework
@ Databasc First: Đầu tiên là nếu bạn đã có một CSDL hoặc muốn thiết kế CSDL trước khi làm các phần khác của ứng dụng
Trang 28
Hinh 4 M6 hinh Entity DataFirst
® Codc First: Khi bạn muốn tập trung vào các Domain Class rồi mới tạo CSDL
từ các Domain Class đó
Hinh 5 M6 hinh Entity CodeFirst
@ Model First: Khi bạn muốn thiết kế Schema cta CSDL trén Visual Designer rồi mới tạo CSDL và các Class
Trang 29
Hình 6 Mô hình Emtity ModelFirst 3.6 Ma hoa MD5
3.6.1 Mã hoá MDS là gì
MD5 là viết tắt của thuật toán băm Message-Digest 5, đây là một thuật toán băm phổ biến
co d6 dai bam 128-bit
Khi sử dụng MD5 đề mã hóa, kết quả luôn là một chuỗi có độ dài có định là 32 ký tự, bất
kế đầu vào là gì Kết quả này không thể được giải mã lại (địch ngược)
Theo lý thuyết, mỗi đầu vào của thuật toán mã hóa MD5 sẽ tương ứng với một đầu ra duy nhất Tuy nhiên, trong thực tế, đã được tìm thấy một số lỗ hồng cho thấy mặc du hai dau vào khác nhau, nhưng sau khi mã hóa, kết quả lại giống nhau Tuy nhiên, sự "đụng độ" (collision) trong kết quả mã hóa MD5 chỉ xảy ra trong một số trường hợp đặc biệt và không đủ đề ngăn ngừa việc sử dụng thuật toán này Đề giảm khả năng xảy ra đụng độ, bạn có thê sử dụng kỹ thuật "muối" (salt)
Trang 303.6.2 Mã hoá MDS thường dùng đề làm gì ?
@ Mã hóa mật khẩu
Mã hóa MD5 được sử dụng trong quá trình lưu trữ và xác thực mật khâu trong hệ thống Thay vì lưu trữ mật khẩu gốc của người dùng, hệ thống sẽ mã hóa mật khâu đó bằng thuật toán MD5 và lưu trữ chuỗi hash MD5 thay thế Khi người dùng đăng nhập, hệ thong sẽ mã hóa mật khâu nhập vào bằng cùng một thuật toán MDS và so sánh chuỗi hash kết quả với chuỗi hash đã lưu trữ Quá trình này giúp bảo mật mật khẩu người dùng bằng cách không lưu trữ mật khẩu gốc, ngăn chặn việc truy cập trái phép vào thông tin ca nhân
@ Kiếm tra tính toàn vẹn của dữ liệu
MDS cũng được sử dụng để kiểm tra tính toàn vẹn của dữ liệu Khi một tệp tin hoặc
đữ liệu được truyền đi hoặc lưu trữ, một chuỗi hash MD5 của đữ liệu đó có thê được tạo
ra Khi dữ liệu được truyền đi hoặc truy cập lại, hệ thông có thể tính toán lại chuỗi hash MD5 từ dữ liệu và so sánh với chuỗi hash ban đầu đã được tạo ra Nếu hai chuỗi hash khớp nhau, điều đó cho thấy dữ liệu không bị thay đôi trong quá trình truyền hoặc lưu
trữ Nếu chuỗi hash khác nhau, điều đó cho thấy đữ liệu đã bị sửa đối hoặc bị hỏng
Tuy nhiên, cần lưu ý rằng việc sử dụng MD5 cho mục đích kiểm tra tính toàn vẹn đã
bị phát hiện có các vẫn đề bảo mật Các phương pháp tấn công đã được phát triển dé tim
ra cac dung d6 (collision) trong chudi hash MDS, lam cho nó không còn an toản trong một số trường hợp Do đó, các thuật toán băm khác như SHA-256 và SHA-3 được khuyến nghị cho các mục đích kiểm tra tính toàn vẹn dữ liệu hiện đại
Trang 323.1 Giới thiệu bai toán và các yêu cầu chức năng
3.1.1 Dac ta yéu cau bai toan
Công ty lữ hành thiết kế các tour, lịch trình cho từng tour cụ thé, sau đó cập nhật thông tin về các tour này trên website bao gồm thông tin đầy đủ về giá tour, lịch trình, điểm đến và hình ảnh minh họa Khách hàng truy cập vào website có thể xem và tìm kiếm thông tin các tour đang, sau đó khách hàng có thể tiễn hành đặt tour Khách hàng có thê đặt tour trực tuyến, website sẽ cập nhật thông tin đặt tour này và lưu trực tiếp vào cơ sở dữ liệu, cho phép người quản trị được phân quyền thực hiện các công viéc sau:
- _ Thêm mới, chỉnh sửa, xoá thông tin hình ảnh về các địa điểm du lịch
3.1.2 Yêu cầu chức năng
@ Chức năng của khách hàng
- _ Đăng nhập, đăng ký
- _ Tìm kiếm các tour, bài viết
- Dat tour
® Chức năng của Admin quản lý hệ thống
- _ Đăng nhập với tài khoản Admin
@ Chức năng của nhân viên
- - Tạo mới, chỉnh sửa, xoá tour
- _ xem đanh sách tour đã đặt
Trang 33- _ Cập nhập trạng thái tour đã đặt
- _ Quản lý một số chức năng khách của website
Yêu cầu hệ thong:
@ Cho phép cac tai khoản có thê truy cập vào hệ thống với vai trò khác nhau
@ Phân quyền người dùng truy cập vào tài nguyên hệ thống
Yêu cầu phi chức năng
@ Dung lượng website không quá lớn, tốc độ xử lý nhanh
@® Giao diện người dùng thân thiện để nhìn
@ Sử dụng mã hoá thông tin khách hàng
@ Kết nỗi CSDL chính xác và toàn vẹn dữ liệu
3.1.3 Sơ đồ phân cấp chức năng
Trang 34
3.2 Phân tích hệ thống thông tin
3.2.1 Các tác nhân của hệ thông
trong hệ thông website, chịu trách nhiệm điều hành, quản lý và giảm sát mọi hoạt động của hệ thống
Admm có thể thực hiện tất cả các chức năng trong hệ thống quản lý như đăng nhập, quản lý bài viết, quản lý cộng tác viên viết bài, quản lý tour,
quản lý danh mục, quản lý khách hàng, tìm kiếm
thống gần giống như Admin nhưng không có quyền quản lý các tài khoản quản trị hệ thống
Cộng tác viên Tác nhân Cộng tác viên đóng vai trò trong việc
chia sẻ các bài viết, kinh nghiệm du lịch Mỗi
Cộng tác viên chỉ có thể quản lý các bài viết của
họ
Khách hàng Khách hàng có thê vào website đề xem nội dung
của website Du khách có thẻ tìm kiếm, xem tour, chỉ tiết tour, đặt tour, đăng nhập, đăng ký, quản lý tài khoản Xem các bài viết về địa điểm, ăn uống, tour du lịch
Trang 35
3.2.2 Các chức năng của hệ thống
truy cập vào hệ thống website đề thực hiện chức năng của mình
2 Cập nhập thôngtin | Cho phép Admin, Khách hàng cập nhập, thay đổi
thông tin cá nhân, mật khẩu
tin về tour, bài viết một cách nhanh chóng
4 Xem chi tiết tour Cho phép hiến thị thông tin, lịch trình chỉ tiết của
tour
tin chí tiết của từng tour
thống đề thực hiện các chức năng quản lý bài viết
Trang 36
truy cập vào hệ thong quan tri website
3.2.3 Biéu do usecase
3.2.3.1Use case chinh
Người quán trị(NQT) bao gồm: Admin, Nhân viên, Cộng tác viên