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.
37 trang |
Chia sẻ: Trịnh Thiết | Ngày: 05/04/2024 | Lượt xem: 778 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Báo cáo 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
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ễn Mỹ Duyên
Mã số sinh viên: 81011701402
TPHCM – 2021
iLỜ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
vDANH 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
1CHƯƠ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.
21.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.
31.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.
4CHƯƠ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.
5Hì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ữ
6hiệ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,. . . )
7Nề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
8như 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.
92.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 In