TÌM HIỂU VỀ CÔNG NGHỆ LINQ, HỆ QUẢN TRỊ CSDL
Giới thiệu về công nghệ LINQ
Một trong những thách thức lớn nhất mà các nhà phát triển phải đối mặt là sự khác biệt giữa ngôn ngữ lập trình hướng đối tượng và ngôn ngữ truy vấn dữ liệu Hiện nay, SQL (Structured Query Language) là cách phổ biến nhất để truy xuất dữ liệu từ cơ sở dữ liệu, nhưng cú pháp của nó rất khác biệt so với các ngôn ngữ lập trình như C# và VB.NET Điều này buộc lập trình viên phải kết hợp hai thực thể này trong mỗi dự án phần mềm Để giảm thiểu khó khăn khi làm việc với nhiều ngôn ngữ và nâng cao năng suất lập trình, Microsoft đã phát triển LINQ (Language Integrated Query), một giải pháp tích hợp dữ liệu cho NET Framework, bao gồm ba phần chính.
Linq to Object là một API cung cấp các phương thức chuẩn cho các toán tử truy vấn, cho phép lấy dữ liệu từ bất kỳ đối tượng nào Các truy vấn này được thực hiện trực tiếp trong bộ nhớ.
- Linq to ADO.NET: Bổ sung các toán tử truy vấn để làm việc với quan hệ dữ liệu Nó gồm 3 phần :
+ Linq to Sql: Sử dụng các câu lệnh truy vấn cơ sở dữ liệu như
+ Linq to DataSet: Hỗ trợ các câu lệnh truy vấn bằng cách sử dụng tập hợp dữ liệu và các bảng dữ liệu
+ Linq to Entities: Là một giải pháp quan hệ ánh xạ (ORM) của
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 4
- Linq to XML: Nó không chỉ các toán tử truy vấn nhưng bao gồm tất cả chủ thể các đặc trưng rõ ràng của tài liệu XML
LINQ to SQL là một công nghệ O/RM (Object Relational Mapping) tích hợp trong NET Framework phiên bản 3.5, cho phép lập trình viên mô hình hóa cơ sở dữ liệu bằng các lớp NET Với LINQ, bạn có thể dễ dàng truy vấn, cập nhật, thêm và xóa dữ liệu từ cơ sở dữ liệu một cách hiệu quả.
LINQ to SQL cung cấp hỗ trợ toàn diện cho giao dịch, view và stored procedure Ngoài ra, nó cũng cho phép dễ dàng thêm các khả năng kiểm tra tính hợp lệ của dữ liệu và quy tắc vào mô hình dữ liệu của bạn.
Mô hình hóa CSDL dùng LINQ to SQL
Visual Studio “Orcas” đã bổ sung một công cụ thiết kế LINQ to SQL, giúp người dùng dễ dàng mô hình hóa trực quan các cơ sở dữ liệu sử dụng LINQ to SQL.
Bằng cách dùng trình thiết kế LINQ to SQL, có thể tạo một mô hình cho CSDL mẫu “DataClasses1” giống như sau :
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 5
Mô hình LINQ to SQL định nghĩa bốn lớp thực thể chính: Product, Category, Order và OrderDetail, với các thuộc tính của mỗi lớp được ánh xạ vào các cột tương ứng trong cơ sở dữ liệu Mỗi trường trong một lớp biểu thị một dòng trong bảng dữ liệu, giúp quản lý và truy xuất thông tin một cách hiệu quả.
Các mũi tên giữa bốn lớp thực thể biểu thị mối quan hệ giữa các thực thể, được xây dựng dựa trên các mối quan hệ Primary-key / Foreign-key trong cơ sở dữ liệu Hướng mũi tên cho biết mối quan hệ là một - một hoặc một - nhiều, và các thuộc tính tương ứng sẽ được bổ sung vào các lớp thực thể trong những trường hợp này.
Lớp Category có mối quan hệ một - nhiều với lớp Product, với thuộc tính “Categories” chứa tập hợp các đối tượng Product thuộc về Category đó Đồng thời, lớp Product cũng sẽ có một thuộc tính liên quan.
“Category” chỉ đến đối tượng “Category” chứa Product này bên trong
Trong trình thiết kế LINQ to SQL, bảng bên tay phải hiển thị danh sách các Store Procedure, cho phép chúng ta tương tác hiệu quả với mô hình dữ liệu của mình.
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 6
Mỗi khi một file LINQ to SQL được thêm vào Solution, một lớp DataContext sẽ được tạo ra để thực hiện các truy vấn và cập nhật dữ liệu Lớp DataContext này sẽ bao gồm các thuộc tính đại diện cho từng bảng được mô hình hóa từ cơ sở dữ liệu, cùng với các phương thức cho mỗi Store Procedure đã được thêm vào.
Dưới đây là lớp DataClasses1 được sinh ra dựa trên mô hình tạo ra ở trên:
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 7
Một số tính năng nổi bật của LINQ
Chạy cùng mã Code của chương trình -> Lỗi được phát hiện sớm không phải chờ hệ quản trị CSDL phản hồi
LINQ cho phép truy xuất nhiều loại dữ liệu hơn so với SQL, bao gồm cả dữ liệu trong cơ sở dữ liệu và bộ nhớ RAM của máy tính Điểm quan trọng nhất của LINQ là khả năng truy vấn, với kết quả có thể là tập hợp các đối tượng cùng loại, một đối tượng đơn lẻ, hoặc tập hợp con của các trường từ một đối tượng Kết quả của truy vấn LINQ được gọi là sequence, chủ yếu là IEnumerable, trong đó T đại diện cho kiểu dữ liệu của các đối tượng trong sequence.
LINQ là giải pháp lập trình dữ liệu tích hợp cho Net framework, giúp giảm bớt sự phức tạp khi thao tác với nhiều ngôn ngữ khác nhau và cho phép truy vấn dữ liệu từ các đối tượng, cơ sở dữ liệu (CSDL) và XML Thay vì làm việc với các bảng và hàng trong CSDL, LINQ thao tác trên danh sách đối tượng với các thuộc tính cụ thể DLINQ cung cấp các lớp đặc biệt để biểu diễn bảng và hàng dữ liệu dưới dạng đối tượng, cho phép sử dụng LINQ để thực hiện truy vấn trực tiếp trên CSDL.
So sánh giữa ADO.NET và LINQ
ADO.NET là một công cụ kết nối dữ liệu nguồn tương tự như ODBC, trong khi LINQ là công cụ cho phép thực hiện truy vấn trên mọi loại dữ liệu mà không cần phải lấy dữ liệu từ cơ sở dữ liệu.
Khi sử dụng ADO.NET, người dùng cần phải viết câu lệnh kết nối cơ sở dữ liệu, trong khi với LINQ, câu lệnh kết nối sẽ được tự động sinh ra.
Sử dụng Store Procedure giúp lập trình trở nên dễ dàng hơn Trong ADO.NET, việc truyền tham số (Parameters) là cần thiết, trong khi đó LINQ có thể trực tiếp sử dụng Store khi kéo chúng vào.
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 8
1.2 Giới thiệu về hệ quản trị cơ sở dữ liệu SQL 2005
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Tổng quan về bài toán
Trong thời đại công nghệ thông tin phát triển mạnh mẽ, các công nghệ mới như LINQ đang giúp người dùng làm việc hiệu quả hơn Công nghệ này nhanh chóng được đón nhận và đáp ứng nhu cầu của người sử dụng WEBSITE SHOP MỸ PHẨM là một ví dụ tiêu biểu cho việc áp dụng công nghệ mới này.
Nhiệm vụ của đề tài:
Để xây dựng một trang web hiệu quả, trước tiên bạn cần tìm hiểu quy trình thiết kế website và ứng dụng công nghệ LINQ vào dự án của mình Tiếp theo, hãy tham khảo một số website bán mỹ phẩm để lấy ý tưởng và cảm hứng Đồng thời, việc nắm vững các hệ cơ sở dữ liệu hiện nay cũng rất quan trọng Cuối cùng, bạn sẽ tiến hành phân tích, thiết kế và lập trình để hoàn thiện trang web.
Phân tích và thiết kế
2.2.1 Phân tích hệ thống về mặt chức năng
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 13
Biểu đồ phân cấp chức năng:
Biểu đồ luồng dữ liệu:
Biểu đồ luồng dữ liệu là phương tiện diễn tả chức năng xử lý và việc trao đổi thông tin giữa các chức năng
Các ký hiệu được dùng trong biểu đồ
+ Luồng dữ liệu: Là một tuyến truyền dẫn thông tin vào hay ra một chức năng nào đó
Ký hiệu: Tên luồng dữ liệu
Hỗ trợ đặt hàng Cập nhật thông tin
Quản lý đặt hàng Quản lý phản hồi
Thêm sửa xóa sản phẩm
Xem đơn hàng Xem phản hồi
Thêm vào giỏ hàng Đặt hàng
Thêm sửa xóa danh mục
Thêm sửa xóa tin tức
Xử lý đơn hàng Xử lý phản hồi
Cập nhật thông tin người dùng
Hỗ trợ đặt hàng Cập nhật thông tin
Quản lý đặt hàng Quản lý phản hồi
Thêm sửa xóa sản phẩm
Xem đơn hàng Xem phản hồi
Thêm vào giỏ hàng Đặt hàng
Thêm sửa xóa danh mục
Thêm sửa xóa tin tức
Xử lý đơn hàng Xử lý phản hồi
Cập nhật thông tin người dùng
Hỗ trợ đặt hàng Cập nhật thông tin
Quản lý đặt hàng Quản lý phản hồi
Thêm sửa xóa sản phẩm
Xem đơn hàng Xem phản hồi
Thêm vào giỏ hàng Đặt hàng
Thêm sửa xóa danh mục
Thêm sửa xóa tin tức
Xử lý đơn hàng Xử lý phản hồi
Cập nhật thông tin người dùng
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 14
+ Chức năng: Là một quá trình biến đổi dữ liệu
+ Các kho dữ liệu: Là một dữ liệu được lưu lại, để có thể được truy cập nhiều lần về sau
+ Tác nhân ngoài: Một tác nhân ngoài là một thực thể ngoài hệ thống, có trao đổi thông tin với hệ thống
Biểu đồ luồng dữ liệu mức khung cảnh:
NGƯỜI DÙNG Website NGƯỜI QUẢN LÝ
Y/c thông tin sp, tin tức, ng-ời dùng
Thông tin yêu cầu Đáp ứng yêu cầu
Thông tin ng-ời dùng
Y/c TT phản hồi Đáp ứng y/c Đáp ứng y/c Tên tác nhân ngoài
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 15
1) Y/c thông tin sản phẩm, thêm vào giỏ hàng, y/c đặt hàng
2) Cập nhật thông tin sản phẩm,tin tức
3) Xem và xử lý đơn hàng
4) Xem và xử lý phản hồi
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 16
Biểu đồ mức dưới đỉnh:
- Chức năng cập nhật thông tin
2) Thông tin ng-ời dùng
3) Quản lý thông tin sản phẩm
4) Đáp ứng thụng tin yêu cầu của ng-ời dùng
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 17
- Chức năng quản lý sản phẩm, khách hàng
1) Yêu cầu xem, sửa, xóa sản phẩm, tin tức, khách hàng
Yêu cầu tìm kiếm Đáp ứng
Thêm,sửa, xóa thông tin
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 18
2.2.2 Phân tích hệ thống về mặt dữ liệu a Thực thể liên kết
Dựa vào thông tin cần lưu trữ, sau khi chuẩn hóa để đảm bảo tính chính xác và không dư thừa, chúng ta có các thực thể sau: tblProduct (ProductsID, ProductsName, CategoryID, QuantityPerUnit, UnitPrice), trong đó các thuộc tính in đậm và gạch chân là thuộc tính khóa chính.
Image, Description, AddDate, Status, [View]) tblCategory (CategoryID, CategoryName, Description, Image, Status) tblCustomers (CustomersID, UserName, Password, Address, Phone, Email, FullName, Gender, Birthday, Status) tblOrder(OrderID,CustomsID,OrderDate,RequiredDate,ShipAddress,
The database structure includes several tables: tblOrder (containing OrderID, ShipedDate, and Status), tblOrderDetail (with OrderID, ProductsID, UnitPrice, CountProducts, and Status), tblCart (featuring CartID, CustomersID, ProductsID, Count, Type, UpdateDate, and Status), tblNews (encompassing NewsID, Subject, Body, ShortOrder, and Status), tblReply (which includes ReplyID, FullName, Email, Phone, Type, Command, CreateDate, and Status), tblBEMenu (listing MenuID, Name, Link, and Status), and tblBEUser (comprising UserID, UserName, Password, Phone, Email, DonVi, and Status).
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 19 b Mô hình thực thể liên kết
Từ các thực thể trên và các quan hệ giữa chúng, ta có mô hình quan hệ các bảng như sau: tblCart
UserName Password Address Phone Email FullName Gender Status
CustomerId OrderDate RequiedDate ShipDate ShipAddress Status tblOrder tblProduct
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 20
2.2.3.Thiết kế các bảng dữ liệu
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 ProductsID int Mã sản phẩm
2 ProductsName nvarchar(255) Tên sản phẩm
3 CategoryID int Mã danh mục
4 QuantityPerUnit int Số lượng sản phẩm hiện đang có
5 UnitPrice Money Giá tiền trên một sản phẩm
6 Image nvarchar(255) Hình ảnh sản phẩm
7 Description nvarchar(MAX) Thông tin chi tiết sản phẩm
8 AddDate datetime Ngày thêm sản phẩm
9 [View] int Tổng số lượt khách xem chi tiết sản phẩm
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 CustomersID int Mã khách hàng
2 UserName nvarchar(255) Tên đăng nhập khách hàng
3 Password nvarchar(255) Mật khẩu đăng nhập
4 Address nvarchar(255) Địa chỉ khách hàng
5 Phone nvarchar(50) Điện thoại khách hàng
6 Email nvarchar(255) Email khách hàng
7 FullName nvarchar(255) Họ tên đầy đủ khách hàng
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 21
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 OrderID int Mã đặt hàng
2 CustomsID int Mã khách hàng đặt hàng
3 OrderDate datetime Ngày đặt hàng
4 RequiredDate datetime Ngày yêu cầu giao hàng
5 ShipedDate datetime Ngày giao hàng
6 ShipAddress nvarchar(400) Địa chỉ giao hàng
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 OrderID int Mã đặt hàng
2 ProductsID int Mã sản phẩm
3 UnitPrice money Đơn giá sản phẩm
4 CountProducts int Số sản phẩm đặt hàng
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 CartID int Mã giỏ hàng
2 CustomersID int Mã khách hàng
3 ProductsID int Mã sản phẩm
4 Count int Số lượng nhặt vào giỏ hàng
6 UpdateDate datetime Ngày nhặt sản phẩm vào giỏ hàng
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 22
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 NewsID int Mã tin tức
3 Body nvarchar(MAX) Nội dung
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 ReplyID int Mã Phản hồi
2 FullName nvarchar(200) Tên người phản hồi
3 Email nvarchar(200) Địa chỉ thư điện tử
4 Phone nvarchar(50) Điện thoại người gửi phản hồi
6 Command nvarchar(MAX) Nội dung phản hồi
7 CreateDate datetime Ngày phản hồi
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 CategoryID int Mã danh mục sản phẩm
2 CategoryName nvarchar(100) Tên danh mục sản phẩm
3 Description ntext Miêu tả chức năng của Category
4 Status int Trạng thái danh mục
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 23
STT Tên thuộc tính Kiểu dữ liệu Mô tả
1 UserID int Mã người quản lý
2 UserName nvarchar(200) Tên người quản lý
3 Password nvarchar(255) Mật khẩu đăng nhập
4 Phone nvarchar(50) Điện thoại người quản lý
5 Email nvarchar(50) Email người quản lý
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 24
GIỚI THIỆU WEBSITE SHOP MỸ PHẨM
Giao diện người sử dụng
Khi bắt đầu vào website, trang Defaut.aspx sẽ được gọi Tại đây người dùng có thể chọn các loại mỹ phẩm mà mình ưa thích
Khi người dùng nhấp vào một sản phẩm mà họ quan tâm, thông tin chi tiết và giá cả của sản phẩm sẽ được hiển thị Nếu họ quyết định mua sản phẩm này, chỉ cần điền số lượng cần thiết và nhấn nút "Thêm vào giỏ hàng".
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 25
Khi người dùng nhấn "Thêm vào giỏ hàng", thông tin chi tiết sản phẩm sẽ được thêm vào giỏ hàng của họ Nếu người dùng chưa đăng nhập, hệ thống sẽ tự động chuyển họ đến trang đăng nhập frmLogin.aspx.
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 26
Nếu chưa có tài khoản, người dùng có thể đăng kí bằng cách nhấp vào Đăng ký và điền các thông tin bắt buộc để là thành viên:
Khi trở thành thành viên, khách hàng có thể mua sản phẩm bằng cách nhấn vào "Xem tất cả" trong giỏ hàng Tại mục địa chỉ giao hàng, hệ thống sẽ yêu cầu nhập địa chỉ để người quản lý nắm bắt thông tin cần thiết.
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 27
Người ghé thăm Website cũng có thể tìm kiếm sản phẩm theo từ khóa mình muốn:
Giao diện của người quản trị
Phần đăng nhập cho phép ban quản trị quản lý thông tin website, bao gồm việc chỉnh sửa, thêm hoặc bớt các chức năng, bài viết và sản phẩm.
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 28
Nếu người dùng đăng nhập sai thì sẽ hiển thị
Khi người dùng đăng nhập thành công thì xuất hiện giao diện :
Khi người quản trị truy cập vào phần Quản lý sản phẩm và nhấp vào một danh mục, hệ thống sẽ hiển thị các sản phẩm trong danh mục đó, cho phép người quản trị chỉnh sửa hoặc xóa thông tin của các sản phẩm này.
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 29
Khi người quản lý click vào Quản lý đặt hàng và chọn tên một khách hàng giao diện như sau hiện ra:
Khi người quản lý nhấp vào Quản lý thông tin sẽ xuất hiện giao diện:
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 30
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 31
Nhấn nút sửa khi muốn sửa thông tin
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 32
Khi người dùng click vào Quản lý danh mục sản phẩm
Nhấn vào Xóa sẽ đổi trạng thái danh mục và không hiển thị trên giao diện người dùng và không xóa hẳn khỏi database
Nhấn vào Sửa có thể sửa tên danh mục và cho phép hiển thị hay không
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 33
Dự án xây dựng website cho shop mỹ phẩm đã đạt được những kết quả quan trọng, bao gồm việc tìm hiểu công nghệ Linq, hệ quản trị cơ sở dữ liệu SQL 2005 và ASP.Net để áp dụng vào việc phát triển trang web Chúng tôi đã tổ chức và bắt đầu xây dựng website, hoàn thành các chức năng cơ bản như tìm kiếm sản phẩm, thêm, xóa, sửa sản phẩm, quản lý danh mục sản phẩm và cập nhật tin tức Giao diện của website được thiết kế đơn giản, dễ sử dụng cho người dùng.
Để phát triển một WEBSITE SHOP MỸ PHẨM hoàn thiện, cần tích hợp chức năng mua bán sản phẩm trực tuyến và kiểm tra tính chính xác của thông tin người dùng.
Em xin chân thành cảm ơn các Thầy, Cô và tất cả các bạn, đặc biệt là cô giáo T.S Phan Lê Na, người đã trực tiếp hướng dẫn em trong quá trình hoàn thành đề tài này.
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 34