Báo cáo Nghiên cứu phần mềm bãi giữ xe thông minh

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.

pdf37 trang | Chia sẻ: Trịnh Thiết | Ngày: 05/04/2024 | Lượt xem: 82 | Lượt tải: 0download
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