BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUỐC TẾ SÀI GÒN
NGUYỄN MỸ DUYÊN
BÁO CÁO NGHIÊN CỨU KHOA HỌC
NGHIÊN CỨU PHẦN MỀM BÃI GIỮ XE THÔNG
MINH
CHUYÊN NGÀNH: KỸ THUẬT PHẦN MỀM
TPHCM – 2021
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUỐC TẾ SÀI GÒN
BÁO CÁO NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
NGHIÊN CỨU PHẦN MỀM BÃI GIỮ XE THÔNG
MINH
Chuyên ngành: KỸ THUẬT PHẦN MỀM
Mã số: 17DPM
GIẢNG VIÊN HƯỚNG DẪN:
ThS.Võ Anh Tiến
ThS.Huỳnh Nguyễn Mộng Thu
SINH VIÊN THỰC HIỆN:
Họ và tên: Nguy
37 trang |
Chia sẻ: huong20 | Ngày: 04/01/2022 | Lượt xem: 400 | Lượt tải: 0
Tóm tắt tài liệu Báo cáo Nghiên cứu khoa học - Nghiên cứu phần mềm bãi giữ xe thông minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
yễn Mỹ Duyên
Mã số sinh viên: 81011701402
TPHCM – 2021
i
LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả trình bày trong báo cáo nghiên cứu khoa học
là công trình nghiên cứu của tôi dưới sự hướng dẫn của giảng viên hướng dẫn.
Các số liệu, các kết quả trình bày trong báo cáo hoàn toàn trung thực và được
thực hiện bởi chính tôi. Các dữ liệu tham khảo được trích dẫn đầy đủ.
Tp. Hồ Chí Minh, ngày 08 tháng 05 năm 2021
Nguyễn Mỹ Duyên
ii
LỜI CẢM ƠN
Để hoàn thành báo cáo nghiên cứu khoa học trên lập trình Windows với đề
tài "bãi giữ xe thông minh", trước tiên cho phép em xin gửi lời cảm ơn đến cô
Huỳnh Nguyễn Mộng Thu và thầy Võ Anh Tiến đã giúp đỡ em rất nhiệt tình
trong suốt thời gian qua. Hơn nữa, đồ án của em sẽ không thể hoàn thành tốt
nếu không có sự hướng dẫn tận tình của quý thầy, cô giảng viên khoa Công
nghệ thông tin - Trường Đại học Quốc tế Sài Gòn.
Thời gian thực hiện báo cáo nghiên cứu khoa học tuy ngắn, nhưng nhờ sự
hướng dẫn của cô và thầy đã tạo cơ hội cho em áp dụng nền tảng môn học lập
trình Windows vào công tác nghiên cứu. Trong suốt thời gian hoàn thành khóa
luận, em đã có cơ hội rèn luyện được các kỹ năng làm việc và nâng cao hiểu
biết của mình trong việc thực hiện viết báo cáo và xây dựng chương trình, từ
đó nhận thức rõ hơn về tầm quan trọng của kiến thức cũng như kỹ năng thực
hiệnbáo cáo nghiên cứu khoa học.
Một lần nữa cho phép em xin chân thành cảm ơn cô Huỳnh Nguyễn Mộng
Thu và thầy Võ Anh Tiến cùng quý thầy, cô giảng viên khoa Công nghệ thông
tin - Trường Đại học Quốc tế Sài Gòn đã tạo điều kiện cho sinh viên chúng em
có cơ hội được phát triển ý tưởng sáng tạo, tìm tòi, học hỏi và biết cách áp dụng
những kiến thức đã học để xây dựng ứng dụng thực tế, đó chính là kết quả của
quá trình truyền đạt kiến thức của quý thầy, cô và sự trao dồi kiến thức của
bản thân em.
Em xin cảm ơn quý thầy, cô giảng viên trong Khoa đã giúp đỡ em hoàn thành
báo cáo nghiên cứu khoa học này.
iii
MỤC LỤC
LỜI CẢM ƠN ................................ ii
MỤC LỤC .................................. iii
DANH MỤC CÁC HÌNH VẼ ..................... iv
DANH MỤC CÁC BẢNG BIỂU ................... v
CHƯƠNG 1. TỔNG QUAN 1
1.1 Thực trạng hiện nay . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Nhiệm vụ đồ án . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Phạm vi ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Đối tượng sử dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5 Mục tiêu của ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.6 Các bước xây dựng đồ án . . . . . . . . . . . . . . . . . . . . . . . 3
1.7 Phương án lưu trữ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 4
2.1 C Sharp (C#) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Tổng quan về C# . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Môi trường lập trình C# . . . . . . . . . . . . . . . . . . . . 7
2.2 Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 SQL Server là gì? . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Đặc điểm của SQL Server . . . . . . . . . . . . . . . . . . . 9
2.3 Linq to SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Linq to SQL là gì? . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 Kiến trúc và các thành phần của Linq . . . . . . . . . . . . 11
2.3.3 Cách thức vận hành . . . . . . . . . . . . . . . . . . . . . . 11
2.3.4 Sự khác nhau giữa Linq to SQL và Entity Framework . . . 12
2.3.5 Ưu điểm của Linq to SQL . . . . . . . . . . . . . . . . . . . 13
iv
CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ 15
3.1 Xác định yêu cầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 Yêu cầu chức năng . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.2 Phân quyền người dùng . . . . . . . . . . . . . . . . . . . . 15
3.1.3 Danh sách Use Case . . . . . . . . . . . . . . . . . . . . . . 16
3.1.4 Sơ đồ Use Case . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.5 Mô hình hóa các yêu cầu . . . . . . . . . . . . . . . . . . . . 17
3.2 Mô hình cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Mô hình cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . 21
3.2.2 Chi tiết các thực thể . . . . . . . . . . . . . . . . . . . . . . 22
CHƯƠNG 4. KẾT QUẢ THỰC NGHIỆM 24
4.1 Thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1 Giao diện chương trình . . . . . . . . . . . . . . . . . . . . . 24
4.1.2 Giao diện làm việc của Quản trị viên - Gia hạn thẻ . . . . 25
4.1.3 Giao diện làm việc của Quản trị viên - Thống kê . . . . . . 25
4.1.4 Giao diện làm việc của Quản trị viên - Báo cáo . . . . . . 26
4.2 Các thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.1 Biểu mẫu Đăng nhập . . . . . . . . . . . . . . . . . . . . . . 26
CHƯƠNG 5. KẾT LUẬN 28
5.1 Kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.1.1 Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.1.2 Nhược điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.1.3 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . 28
TÀI LIỆU THAM KHẢO 29
v
DANH MỤC CÁC HÌNH VẼ
Hình 2.1 Quá trình chuyển đổi MSIL code thành Native code . . . . . 5
Hình 2.2 Ứng dụng đa nền tảng . . . . . . . . . . . . . . . . . . . . . . 7
Hình 2.3 Kiến trúc và các thành phần của Linq . . . . . . . . . . . . . 12
Hình 3.1 Sơ đồ Use Case. . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Hình 3.2 Biểu đồ luồng dữ liệu mức 0 . . . . . . . . . . . . . . . . . . . 17
Hình 3.3 Biểu đồ tiến trình "1.0 xe vào" . . . . . . . . . . . . . . . . . 18
Hình 3.4 Biểu đồ tiến trình "2.0 xe ra" . . . . . . . . . . . . . . . . . . 19
Hình 3.5 Biểu đồ tiến trình "3.0 giải quyết sự cố" . . . . . . . . . . . . 20
Hình 3.6 Mô hình cơ sở dữ liệu. . . . . . . . . . . . . . . . . . . . . . . 21
Hình 4.1 Giao diện chương trình. . . . . . . . . . . . . . . . . . . . . . 24
Hình 4.2 Giao diện gia hạn thẻ tháng. . . . . . . . . . . . . . . . . . . 25
Hình 4.3 Giao diện thống kê doanh thu. . . . . . . . . . . . . . . . . . 25
Hình 4.4 Giao diện báo cáo doanh thu. . . . . . . . . . . . . . . . . . . 26
Hình 4.5 Biểu mẫu Đăng nhập. . . . . . . . . . . . . . . . . . . . . . . 27
vi
DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1 Bảng so sánh sự khác nhau giữa Linq to SQL và Entity
Framework.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Bảng 3.1 Bảng chi tiết phân quyền người dùng . . . . . . . . . . . . . 15
Bảng 3.2 Bảng danh sách Use Case . . . . . . . . . . . . . . . . . . . . 16
Bảng 3.3 Bảng chi tiết mô hình mô tả hoạt động xe. . . . . . . . . . . 17
Bảng 3.4 Bảng mô tả thuật toán mô hình hoạt động bãi giữ xe. . . . 18
Bảng 3.5 Bảng mô tả thuật toán mô hình hoạt động bxe vào. . . . . . 19
Bảng 3.6 Bảng mô tả thuật toán mô hình hoạt động xe ra. . . . . . . 20
Bảng 3.7 Bảng mô tả thuật toán mô hình hoạt giải quyết vấn đề. . . 21
Bảng 3.8 Bảng chi tiết thực thể tài khoản. . . . . . . . . . . . . . . . . 22
Bảng 3.9 Bảng chi tiết thực thể bãi xe. . . . . . . . . . . . . . . . . . . 22
Bảng 3.10 Bảng chi tiết thực thể bãi xe. . . . . . . . . . . . . . . . . . . 23
Bảng 4.1 Bảng chi tiết biểu mẫu đăng nhập. . . . . . . . . . . . . . . . 26
1
CHƯƠNG 1. TỔNG QUAN
1.1. Thực trạng hiện nay
Quản lý nhà xe là một công việc quan trọng trong bất cứ trường học hay công
ty nào, nó ảnh hưởng mạnh mẽ đến sự phát triển của một tổ chức. Vì vậy, việc
quản lý bãi xe đòi hỏi phải có sự chính xác và tối ưu để tạo ra một môi trường
làm việc hiệu quả nhất. Hiện nay, nhiều trường đã xây dựng hệ thống quản lý
nhà xe và đã thu được nhiều kết quả khả quan đáp ứng nhu cầu đa dạng của
mọi người và xây dựng mục tiêu của tổ chức.
Hệ thống quản lý nơi đỗ xe là một hệ thống dùng để quản lý, xử lý, lưu trữ,
truyền đạt, phân phối các thông tin có liên quan đến hình ảnh biển số, giảng
viên trong trường để hỗ trợ cho việc ra quyết định. Hệ thống có vai trò quan
trọng trong hoạt động của cơ quan, các chức năng do hệ thống mang lại có vai
trò tối ưu trong việc ra kiểm soát thông tin xe tại cơ quan.
Hệ thống quản lý bãi gửi xe thông minh sử dụng công nghệ kiểm soát ra vào
bằng thẻ từ dành cho hệ thống các phương tiện vận tải, xe ô tô, xe máy, sử dụng
các thiết bị công nghệ thay thế sức con người. Mang đến sự nhanh gọn và chính
xác trong quản lý an ninh bãi xe.
Hệ thống cho phép ghi vé xe và kiểm soát ra vào một cách tự động, thông
minh và nhanh chóng hơn. Các thông tin được ghi lại như biển số xe, số thẻ xe,
vé xe, ảnh xe, ảnh người gửi xe. . . Đồng thời sử dụng hệ thống phần mềm giúp
người quản lý dễ dàng điều hành bãi đỗ xe hơn. Thực hiện được các báo cáo về
số lượng xe ra vào, kiểm soát doanh thu cho bãi xe và nhiều tiện ích khác.
2
1.2. Nhiệm vụ đồ án
Từ những vấn đề trên, em quyết định xây dựng một phần mềm phục vụ nhu
cầu quản lý bãi giữ xe cho một trường đại học hay một nhà xe vừa và nhỏ, giúp
tăng năng suất công việc, giảm thiểu tối đa sai sót có thể xảy ra và ứng dụng
tin học hóa, tự động hóa vào công tác quản lý hiệu quả nhất.
1.3. Phạm vi ứng dụng
• Đơn vị sử dụng: Trường Đại học Quốc tế Sài Gòn.
• Tên dự án: Xây dựng hệ thống bãi giữ xe thông minh.
1.4. Đối tượng sử dụng
Sản phẩm được thiết kế để phục vụ cho các đối tượng:
Cán bộ nhà trường
Sinh viên
Giảng viên
1.5. Mục tiêu của ứng dụng
Ứng dụng được thiết kế để thực hiện:
Không phải quản lý thủ công (giấy, tờ, sổ sách..). Không cần quá nhiều người.
Một lượng lớn sinh viên thì quản lý thủ công rất khó khăn. Do vậy phần mềm
này với mục đích nâng cao hiệu quả trong quá trình lưu trữ thông tin của xe.
Bảo mật về phần thẻ giả.
Tiết kiệm được thời gian trong quản lý so với quản lý thủ công, tiết kiệm
nhân lực và không va quẹt hay quá tải.
3
1.6. Các bước xây dựng đồ án
Lập kế hoạch phát triển hệ thống.
Phân tích hệ thống.
Thiết kế .
Cài đặt .
Kiểm tra .
Biên soạn tài liệu và hướng dẫn.
1.7. Phương án lưu trữ
Ở ứng dụng này, em sử dụng hệ quản trị cơ sở dữ liệu MSSQL Server với
những lí do sau:
Cho phép tạo nhiều cơ sở dữ liệu.
Duy trì lưu trữ bền vững.
Bảo mật cao.
Phân tích dữ liệu bằng SSAS - SQL Server Analysis Services.
Tạo được báo cáo bằng SSRS - SQL Server Reporting Services.
Thực hiện quá trình ETL (Extract-Transform-Load) bằng SSIS - SQL Server
Integration Services.
Kết hợp hoàn hảo với WinForm trên C sharp và bunifu ui.
4
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. C Sharp (C#)
2.1.1. Tổng quan về C#
2.1.1.1. C# là gì?
C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi
đội ngũ kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders
Hejlsberg và Scott Wiltamuth.
C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng
trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Ex-
ecutable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn
ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau.
Cùng với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng
dụng Windows Forms hay WPF (Windows Presentation Foundation), . . . trở
nên rất dễ dàng.
Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được
biên dịch trực tiếp thành mã thực thi của hệ điều hành.
Trong các ứng dụng sử dụng .NET Framework, mã nguồn chương trình (,
VB.NET) được biên dịch thành mã ngôn ngữ trung gian MSIL (Microsoft in-
termediate language).
Sau đó mã này được biên dịch bởi Common Language Runtime (CLR) để trở
thành mã thực thi của hệ điều hành. Hình bên dưới thể hiện quá trình chuyển
đổi MSIL code thành native code.
5
Hình 2.1: Quá trình chuyển đổi MSIL code thành Native code
2.1.1.2. Đặc trưng của C#
Các đặc điểm để làm cho C# là ngôn ngữ lập trình chuyên nghiệp được sử
dụng rộng rãi:
• Như chúng ta biết C# là ngôn ngữ đơn giản được dựng trên nền tảng C++
và Java nên ngôn ngữ C# khá đơn giản. Nếu chúng ta thân thiện với C và
C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo,
cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ
ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn
giản hơn. Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm
vào những cú pháp thay đổi.
• C# là ngôn ngữ hiện đại : xử lý ngoại lệ, những kiểu dữ liệu mở rộng, bảo
mật mã nguồn..v..v.... Đây là những đặc tính được cho là của một ngôn ngữ
6
hiện đại cần có. Và C# chứa tất cả các đặt tính vừa nêu trên.
• Nó còn là một ngôn ngữ lập trình thuần hướng đối tượng. Là một ngôn ngữ
ít từ khóa.
Ưu điểm nổi bật của C#:
• C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên
cũng khá dể dàng tiếp cận và học nhanh với C#.
• C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau.
• C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng
những ưu điểm của ngôn ngữ đó.
• C# là một phần của .NET Framework nên được sự chống lưng khá lớn đến
từ bộ phận này.
• C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ.
Version của C#:
• .NET Framework được Microsoft đưa ra chính thức từ năm 2002. .NET
Framework chỉ hoạt động trên Windows. Những nền tảng ứng dụng như
WPF, Winforms, ASP.NET(1-4) hoạt động dựa trên .NET Framework.
• Mono là phiên bản cộng đồng nhằm mang .NET đến những nền tảng ngoài
Windows. Mono được phát triển chủ yếu nhằm xây dựng những ứng dụng
với giao diện người dùng và được sử dụng rất rộng rãi: Unity Game, Xam-
ari...
• Cho đến năm 2013, Microsoft định hướng đi đa nền tảng và phát triển .NET
core. .NET core hiện được sử dụng trong các ứng dụng Universal Windows
platform và ASP.NET Core. Từ đây, C# có thể được sử dụng để phát triển
các loại ứng dụng đa nền tảng trên các hệ điều hành khác nhau (Windows,
Linux, MacOS,. . . )
7
Nền tảng .NET:
• Từ version C# 1.0#: Visual Studio .NET 2002,..., cho đến hiện nay version
C#8: Visual Studio .Net 2019.
Chuong2/Images/.NetFram.png
Hình 2.2: Ứng dụng đa nền tảng
2.1.2. Môi trường lập trình C#
Microsoft Visual Studio 2019 là một môi trường phát triển tích hợp (IDE) từ
Microsoft. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft
Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual
Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows
API, Windows Forms, Windows Presentation Foundation, Windows Store và
Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý.
Visual Studio 2019 bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng
8
như cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức
độ mã nguồn và gỡ lỗi mức độ máy. Công cụ tích hợp khác bao gồm một mẫu
thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp
và thiết kế giản đồ cơ sở dữ liệu. Nó chấp nhận các plug-in nâng cao các chức
năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên
bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết
kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía
cạnh khác trong quy trình phát triển phần mềm.
Nó hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập
mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình.
Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual C++),
VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F#
(như của Visual Studio 2010). Hỗ trợ cho các ngôn ngữ khác như J++/J#,
Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ trợ XML/XSLT,
HTML/XHTML, JavaScript và CSS.
2.2. Microsoft SQL Server
2.2.1. SQL Server là gì?
SQL Server là phần mềm được Microsoft phát triển dựa trên RDBMS.
Cũng là một ORDBMS (Hệ quản trị cơ sở dữ liệu quan hệ đối tượng) . Một
nền tảng độc lập.
Phần mềm sử dụng cả giao diện dòng lệnh và giao diện GUI.
Hỗ trợ ngôn ngữ SQL (trước đây là SEQUEL - ngôn ngữ truy vấn tiếng Anh
có cấu trúc) - vốn là sản phẩm của IBM.
9
2.2.2. Đặc điểm của SQL Server
SQL là ngôn ngữ phi thủ tục, không yêu cầu cách thức truy cập cơ sở dữ liệu
như thế nào. Tất cả các thông báo của SQL rất dễ dàng sử dụng và ít mắc lỗi.
SQL cung cấp các tập lệnh phong phú cho các công việc hỏi đáp dữ liệu như:
Chèn, xóa và cập nhật các hàng trong 1 quan hệ.
Tạo, thêm, xóa và sửa đổi các đối tượng trong của cơ sở dữ liệu.
Điều khiển việc truy cấp tới cơ sở dữ liệu và các đối tượng của cơ sở dữ liệu
để đảm bảo tính bảo mật, tính nhất quán và sự ràng buộc của cơ sở dữ liệu.
Đối tượng của SQL server là các bảng dữ liệu với các cột và các hàng. Cột
được gọi là trường dữ liệu và hàng là bản ghi của bảng. Cột dữ liệu và kiểu dữ
liệu xác định tạo nên cấu trúc của bảng.
Khi bảng được tổ chức thành một hệ thống cho một mục đích sử dụng cụ thể
vào công việc nào đó sẽ trở thành một cơ sở dữ liệu.
2.3. Linq to SQL
Một truy vấn là một diễn tả để lấy dữ liệu từ 1 nguồn dữ liệu nào đó. Các
truy vấn thường được dùng trong các ngôn ngữ truy vấn đặc trưng. Các ngôn
ngữ truy vấn khác nhau được phát triển khác nhau để áp dụng cho các nguồn
dữ liệu khác nhau, ví dụ SQL dùng cho cơ sở dữ liệu quan hệ và XQuery dùng
cho XML. Vì vậy, các nhà phát triển phải học các ngôn ngữ truy vấn cho mỗi
dạng nguồn dữ liệu hoặc định dạng dữ liệu. Do đó, Microsoft mới nghĩ ra việc
xây dựng 1 ngôn ngữ truy vấn nào đó mà có thể dùng cho tất cả nguồn dữ liệu,
tất cả các định dạng dữ liệu khác nhau. Ngôn ngữ truy vấn đó là LINQ.
Mục đích ra đời của LINQ hay LINQ to SQL là để phục vụ cho hệ quản trị
cơ sở dữ liệu SQL Server và nền tảng .NET nói chung hay ngôn ngữ lập trình
C#/VB.NET nói riêng chứ không phải mục đích đại trà cho các ngôn ngữ lập
trình hay các hệ quản trị cơ sở dữ liệu khác. Ta biết rằng:
10
C# là một ngôn ngữ lập trình hướng đối tượng hoàn toàn.
SQL Server là một hệ quản trị cơ sở dữ liệu (DBMS) theo mô hình quan hệ,
mô hình CSDL quan hệ ghi các dữ liệu theo dòng trong các bảng dữ liệu.
Muốn dùng ngôn ngữ C# viết mã để lấy dữ liệu từ SQL Server nhưng tổ chức
mô hình dữ liệu của C# và SQL Server là khác nhau. Để giải quyết tình trạng
trên, một kỹ thuật gọi là ORM (Object Relational Mapping) ra đời nhằm mục
đích chuyển đổi dữ liệu giữa các hệ thống khác (không phải là mô hình hướng
đối tượng) sang các đối tượng trong ngôn ngữ lập trình hướng đối tượng. Tiếp
đó LINQ to SQL ra đời dựa trên kỹ thuật ORM xóa bỏ khoảng cách giữa mô
hình lập trình hướng đối tượng C#/VB.NET với hệ quản trị cơ sở dữ liệu SQL
Server khi đã mô hình hóa theo hướng đối tượng các bảng trong Database thành
các lớp tương ứng khi lập trình.
Sự ra đời của LINQ to SQL giúp các lập trình viên .NET bớt đi gánh nặng
phụ thuộc bên thứ 3 (dùng SQL để truy vấn). LINQ to SQL đồng thời đồng
bộ hóa dữ liệu lấy ra và trả về khi truy xuất dữ liệu bằng việc các Data Model
hứng dữ liệu trả về được tạo tự động sao cho tương thích với kiểu dữ liệu tương
ứng của chúng khi ánh xạ vào cơ sở dữ liệu. Điều này làm tránh tình trạng mất
hoặc sai lệch dữ liệu khi truy xuất và thao tác với Database. Trên hết, một công
cụ được phát hành cho nền tảng duy nhất là .NET với những thành viên trong
.NET sử dụng thì hiệu suất của LINQ to SQL sẽ tốt hơn so với những công cụ
bên thứ 3.
2.3.1. Linq to SQL là gì?
LINQ (Language Integrated Query, tạm dịch là ngôn ngữ truy vấn tích hợp)
đưa ra 1 mô hình bền vững để hoạt động với các dạng nguồn dữ liệu và định
dạng dữ liệu khác nhau. Trong LINQ, bạn phải làm quen với chuyện làm việc
với các đối tượng (objects). LINQ cho phép dùng các đoạn code đơn giản để
truy vấn và chuyển đổi dữ liệu trong các tài liệu XML, cơ sở dữ liệu SQL, tập dữ
liệu ADO.NET, các tập hợp .NET, và bất kỳ định dạng nào mà LINQ provider
11
hỗ trợ.
LINQ to SQL là một phiên bản hiện thực hóa của O/RM có bên trong .NET
Framework bản “Orcas” (nay là .NET 3.5), nó cho phép bạn mô hình hóa một
cơ sở dữ liệu dùng các lóp .NET. Sau đó bạn có thế truy vấn cơ sở dữ liệu dùng
LINQ, cũng như cập nhật/thêm/xóa dữ liệu từ đó. LINQ to SQL hồ trợ đầy đủ
transaction, view và các stored procedure. Nó cũng cung cấp một cách dề dàng
để thêm khả năng kiếm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô
hình dữ liệu của bạn.
2.3.2. Kiến trúc và các thành phần của Linq
SQL Sever Databases: LinQ to SQL: Cho phép truy vấn các cơ sở dữ liệu
quan hệ.
XML documents: LinQ to XML: Sử dụng LinQ to XML với mục đích truy
vấn file XML Documents.
ADO.NET datasets: LINQ to Dataset: Cho phép truy vấn các Dataset hoặc
DataTable.
.NET Collections, Strings, Files, . . . : LinQ to Objects: Cho phép truy vấn các
đối tượng trong một tập các phần tử nguồn, các kiểu đối tượng này phải thực
thi giao diện Ienumrable.
Entity Framework: LinQ to Entities: Cho phép truy vấn các thực thể bên
trong Entity Framework.
2.3.3. Cách thức vận hành
Tất cả các hoạt động truy vấn LINQ đều bao gồm 3 tác vụ:
Kết nối với nguồn dữ liệu (data source).
Tạo truy vấn.
Thực thi truy vấn.
12
Hình 2.3: Kiến trúc và các thành phần của Linq
2.3.4. Sự khác nhau giữa Linq to SQL và Entity Framework
Linq to SQL cho phép ta truy vấn và chỉnh sửa dữ liệu của SQL Server sử
dụng cú pháp của Linq. Entity framework là một ORM, cho phép chúng ta truy
vấn và chỉnh sửa RDBMS như SQL Server, Oracle, DB2, MySQL... cũng bằng
cách sử dụng cú pháp Linq. Bây giờ, EF được sử dụng thường xuyên trong ứng
dụng .NET để truy vấn tới cơ sở dữ liệu.Và sau đây là một số điểm khác nhau
giữa Linq to SQL và Entity Framework:
13
Bảng 2.1: Bảng so sánh sự khác nhau giữa Linq to SQL và Entity Framework..
USE CASE Ý NGHĨA
Có thể works trên nhưng db khác
Chỉ làm việc được với SQL
nhau như Oracle, DB2, MYSQL,
Server Database.
SQL Server etc.
Nó tạo ra một file .dbml để duy Các mối quan hệ được duy trì sử
trì mối quan hệ Nó tạo ra một dụng 3 file khác nhau .csdl, .msl và
file .edmx lúc đầu. .ssdl.
Không hỗ trợ cho kiểu phức
Hỗ trợ các kiểu phức tạp.
tạp.
Không thể tạo db từ model Có thể tạo db từ model.
Chỉ cho phép 1-1 ánh xạ giữa Cho phép một-một, một-nhiều và;
các lớp thực thể và quan hệ các nhiều-nhiều ánh xạ giữa các lớp thực
tables / views. thể và các quan hệ tables / views.
USE CASE Ý NGHĨA
Cho phép bạn truy vấn dữ liệu sử
Cho phép bạn truy vấn dữ liệu
dụng Entity SQL, ObjectContext,
bằng DbContext.
DbContext.
Nó cung cấp một phương pháp Code first cho phép sử dụng Depen-
tiếp cận kết chặt chẽ. dency Injection pattern
Có thể được sử dụng để phát triển
Có thể được sử dụng để phát
ứng dụng nhanh chóng với RDBMS
triển ứng dụng nhanh chóng
như SQL Server, Oracle, DB2 và
chỉ với SQL Server.
MySQL vv.
2.3.5. Ưu điểm của Linq to SQL
Một công cụ hỗ trợ đắc lực: Khi sử dụng LINQ to SQL với hệ quản trị cơ sở
dữ liệu SQL Server, người dùng không phải tạo các lớp Data Model để hứng dữ
liệu trả về khi truy vấn dữ liệu vì LINQ to SQL đã tạo sẵn những lớp này với
đầy đủ các thuộc tính và kiểu dữ liệu phù hợp với kiểu dữ liệu các cột bạn qui
định trong Database .
14
Giao diện trực quan và tự động: LINQ to SQL cung cấp giao diện trực quan về
mối quan hệ các bảng dữ liệu sau khi được mô hình hóa. Các lớp DataContext
sẽ được tạo ra tự động khi Import file LINQ to SQL vào Project. Các lớp
DataContext nhận nhiệm vụ mở kết nối đến cơ sở dữ liệu, thực hiện truy vấn
hay thay đổi dữ liệu. Các lớp thuộc tính được mô hình hóa từ các bảng dữ liệu
trong hệ quản trị cơ sở dữ liệu được truy cập thông qua các lớp DataContext.
Lớp DataContext này gần như là một lớp bao (Wrapper Class), những thay đổi
từ các bảng dữ liệu trong cơ sở dữ liệu thì lớp này sẽ cập nhật và thay đổi tương
ứng (chúng cũng sẽ cập nhật vào các lớp Data Modal được tạo tự động). Điều
này khiến cho việc thay đổi thuộc tính dữ liệu trong database diễn ra dễ dàng
và người lập trình không mất quá nhiều công sức để chỉnh sửa lại code.
LINQ nhưng bản chất vẫn là SQL: Các câu truy vấn LINQ sẽ được chuyển
sang câu truy vấn SQL trước khi đưa vào SQL Server để truy vấn dữ liệu (LINQ
to SQL giống như việc mang SQL vào và viết bằng C#, tuy vậy bản chất vẫn
là SQL).
LINQ to SQL là một công cụ tốt đối với những lập trình viên .NET. Cấu
trúc, câu lệnh của nó dễ học và quen thuộc (C#/VB.NET). LINQ to SQL rút
ngắn thời gian phát triển phần mềm trên nền tảng .NET khi muốn thao tác và
truy xuất dữ liệu từ cơ sở dữ liệu, hệ thống tạo vào hỗ trợ tất cả những thứ cơ
bản như lớp DataContext, các lớp Data Model để hứng dữ liệu, lập trình viên
chỉ cần truy xuất và thao tác với dữ liệu.
15
CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ
3.1. Xác định yêu cầu
3.1.1. Yêu cầu chức năng
Mỗi nhân viên và quản trị viên đều có một tài khoản riêng.
Hiển thị nhập xuất thông tin, báo cáo, đổi mật khẩu, đăng kí thẻ tháng,
hưỡng dẫn chỗ trống giữ xe....
Quản lý thông tin xe ra vào, quản lý báo cáo, tính tiền vé vãng lai.
Báo cáo doanh thu theo tháng, thông tin vé tháng.
3.1.2. Phân quyền người dùng
Bảng 3.1: Bảng chi tiết phân quyền người dùng
STT TÊN CHỦ ĐỀ NỘI DUNG CHỦ ĐỀ
Xem thông tin báo cáo. Gia hạn thông tin vé
1 Quản trị viên
tháng, thống,....
2 Nhân viên viên Xem thông tin xe ra vào và tính tiền.
16
3.1.3. Danh sách Use Case
Bảng danh sách Use Case
Bảng 3.2: Bảng danh sách Use Case
STT USE CASE Ý NGHĨA
Quản trị viên và nhân viên buộc phải đăng
1 Login
nhập trước khi vào giao diện chính.
Quản trị viên và nhân viênsẽ thấy được hoạt
động quét thẻ. Nếu xảy ra lỗi nhân viên hoặc
2 Manhinhhienthiquetthe
quản trị viên báo cáo triển khai khắc phục sự
cố kịp thời.
Quản trị viên sẽ gia hạn thẻ tháng cho người
3 Giahanthethang
dugnf muốn đăng kí tháng,...
Quản trị viên sẽ báo cáo về các nội dung tổng
4 BaoCao hợp như doanh thu xe tháng, gia hạn xe tháng,
doanh thu vãng lai theo tháng,...
3.1.4. Sơ đồ Use Case
Hình 3.1: Sơ đồ Use Case.
17
3.1.5. Mô hình hóa các yêu cầu
3.1.5.1. Biểu đồ luồng dữ liệu mức 0
Mô hình mô tả hoạt động bãi giữ xe
Hình 3.2: Biểu đồ luồng dữ liệu mức 0
Mô tả ký hiệu
Bảng 3.3: Bảng chi tiết mô hình mô tả hoạt động xe.
STT USE CASE Ý NGHĨA
Phân loại xe (xe số, xe tay ga, xe hơ,...). Thẻ
1 D1, D2
xe (vé tháng, vé khách vãng lai).
Số xe vào (ghi sô xe đầu vào). Số xe ra (hiện
2 D3, D4
số xe khi ra đúng với số xe khi vào không).
Biên bản (Sai sót hệ thống ảnh hưởng khách
3 D5, D6
hàng).Trả về thông tin sau khi lưu thành công.
Thanh toán sau khi kiểm tra đúng mã số và
4 D7
không phải thẻ giả.
18
Mô tả thuật toán
Bảng 3.4: Bảng mô tả thuật toán mô hình hoạt động bãi giữ xe.
STT USE CASE Ý NGHĨA
1 1.0 Nhận dữ liệu từ D1. Xuất dữ liệu D2.
2 2.0 Nhận thẻ xe từ khách. Xuất dữ liệu D4 và D6.
Nhận dữ liệu từ khác và trả về cách giải quyết
3 3.0
vấn đề. Xuất dữ liệu D5
Nhận dữ liệu D3, D4, D6. Xuất dữ liệu D7. Trả
4 4.0
về báo cáo lãnh đạo khi được yêu cầu.
3.1.5.2. Tiến trình xe vào
Mô hình mô tả hoạt động quét thẻ vào
Hình 3.3: Biểu đồ tiến trình "1.0 xe vào"
19
Mô tả thuật toán
Bảng 3.5: Bảng mô tả thuật toán mô hình hoạt động bxe vào.
STT USE CASE Ý NGHĨA
Nhận dữ liệu từ khách và D1. Truyền dữ liệu
1 1.1
sang 1.2.
2 1.2 Nhận dữ liệu từ D1, D3, D4, 1.1 và 1.3..
Nhận lại dữ liệu từ 1.2 khi kiểm tra hoàn tất
3 1.3
và xuất dữ liệu ra thẻ và 4.1.
4 1.4 Nhận dữ liệu 3.1 và xuất dữ liệu ra D3.
3.1.5.3. Tiến trình xe ra
Mô hình mô tả hoạt động quét thẻ xe ra
Hình 3.4: Biểu đồ tiến trình "2.0 xe ra"
20
Mô tả thuật toán
Bảng 3.6: Bảng mô tả thuật toán mô hình hoạt động xe ra.
STT USE CASE Ý NGHĨA
Nhận dữ thẻ từ khách. Truyền dữ liệu kiểm tra
1 2.1
sang 2.2.
Nhận dữ liệu kiểm tra từ 2.1 và D5. Xuất dữ
2 2.2
liệu 2.3.
Nhận lại dữ liệu từ 2.2 và xuất dữ liệu D5 và
3 2.3
truyền sang 2.4 xử lý..
Nhận dữ liệu từ 2.3 và xuất dữ liệu ra D3 và
4 2.4
xác nhận thanh toán cho xe ra.
3.1.5.4. Tiến trình giải quyết sự cố
Mô hình mô tả hoạt động giải quyết sự cố
Hình 3.5: Biểu đồ tiến trình "3.0 giải quyết sự cố"
21
Mô tả thuật toán
Bảng 3.7: Bảng mô tả thuật toán mô hình hoạt giải quyết vấn đề.
STT USE CASE Ý NGHĨA
1 3.1 Nhận dữ liệu từ d3 và D4.
Nhận dữ liệu kiểm tra từ 3.1 và xuất cho khách
2 3.2
hàng nếu sai.
Nhận lại dữ liệu từ 3.2 xử lý và truyền sang
3 3.3
D6 và 3.4
Nhận dữ liệu từ 3.3 và xác nhận thanh toán
4 3.4
cho khách hàng.
3.2. Mô hình cơ sở dữ liệu
3.2.1. Mô hình cơ sở dữ liệu
Mô hình cơ sở dữ liệu
Hình 3.6: Mô hình cơ sở dữ liệu.
22
3.2.2. Chi tiết các thực thể
3.2.2.1. Thực thể tài khoản
Bảng 3.8: Bảng chi tiết thực thể tài khoản.
THUỘC KIỂU CHO
STT MÔ TẢ
TÍNH DỮ LIỆU PHÉP RỖNG
1 Username varchar(100) Không rỗng Tên đăng nhập
2 Displayname nvarchar(600) rỗng Tên hiển thị
3 Password nvarchar(700) rỗng Mật khẩu
Quyền hạn (loại tài
4 Type int Rỗng khoản: user or ad-
min...)
3.2.2.2. Thực thể bãi xe
Bảng 3.9: Bảng chi tiết thực thể bãi xe.
THUỘC KIỂU CHO
STT MÔ TẢ
TÍNH DỮ LIỆU PHÉP RỖNG
1 CardID varchar(50) Không rỗng Mã thẻ
2 Time datetime rỗng Thời gian
3 Status nvarchar(100) rỗng Trạng thái
Loại thẻ (thẻ tháng,
4 Type nvarchar(100) rỗng
khách vãng lai...)
5 Image varchar(50) rỗng Hình ảnh
23
3.2.2.3. Thực thể thống kê
Bảng 3.10: Bảng chi tiết thực thể bãi xe.
THUỘC KIỂU CHO
STT MÔ TẢ
TÍNH DỮ LIỆU PHÉP RỖNG
1 CardID varchar(50) Không rỗng Mã thẻ
2 TimeIn datetime rỗng Thời gian xe vào
3 TimeOut datetime rỗng Thời gian xe ra
Loại thẻ (thẻ tháng,
4 Type nvarchar(100) rỗng
khách vãng lai...)
5 Money int rỗng Tính tiền
24
CHƯƠNG 4. KẾT QUẢ THỰC NGHIỆM
4.1. Thực nghiệm
4.1.1. Giao diện chương trình
Hình 4.1: Giao diện chương trình.
Đây là giao diện chương trình sau
Các file đính kèm theo tài liệu này:
- bao_cao_nghien_cuu_khoa_hoc_nghien_cuu_phan_mem_bai_giu_xe_t.pdf