Một vấn đề khác với SQL là nó chỉ dùng để truy vấn dữ liệu trong các CSDL dạng quan hệ, nếu muốn truycập dữ liệu XML hay dạng khác nh HTML, email…, nhà phát triển lại phải sửdụng cú pháp
Trang 1MỤC LỤC
2.2.2 Phõn tớch hệ thống về mặt dữ liệu 18
LỜI NểI ĐẦU
Ngày nay, cụng nghệ thụng tin đó và đang là một trong những ngành mũinhọn của đất nước Sự phỏt triển của cụng nghệ thụng tin khụng chỉ bú hẹptrong một lĩnh vực cụ thể mà nú đó ứng dụng rộng rói trong tất cả cỏc lĩnh vựccủa xó hội Vấn đề càng phức tạp hơn với sự xuất hiện của XML (eXtensibleMarkup Language – ngôn ngữ đánh dấu mở rộng) Một vấn đề khác với SQL là
nó chỉ dùng để truy vấn dữ liệu trong các CSDL dạng quan hệ, nếu muốn truycập dữ liệu XML hay dạng khác (nh HTML, email…), nhà phát triển lại phải sửdụng cú pháp truy vấn khác (Xpath/ Xquery)
Cú thể núi cụng nghệ thụng tin đó giỳp con người giải quyết được nhiềubài toỏn phức tạp mà trước đõy khi chưa xuất hiện mỏy tớnh con người khú cúthể giải quyết được, nhưng điều quan trọng ở đõy khụng chỉ đơn thuần là giảiquyết bài toỏn mà là cỏch giải quyết bài toỏn đú như thế nào cho cú hiệu quả vànhanh nhất Hầu hết cỏc ứng dụng trong cụng nghệ phần mềm hiện nay đều ứngdụng cụng nghệ LINQ vào quỏ trỡnh xõy dựng Cỏc ứng dụng website cũng
Trang 2không ngoại lệ, việc ứng dụng công nghệ LINQ vào thiết kế website làm choviệc lập trình trở nên đơn giản và hiệu quả hơn.
Do đây là thời gian đầu tìm hiểu công nghệ mới nên chắc chắn không thểtránh khỏi những thiếu sót và hiệu quả đạt được chưa cao Rất mong được sựgóp ý chân thành của các Thầy, Cô, và tất cả các bạn
Em xin chân thành cảm ơn Cô giáo TS Phan Lê Na đã tận tình giúp emhoàn thành đề tài này
Nội dung đề tài gồm có : 3 Chương
Chương 1: Giới thiệu về công nghệ LINQ, hệ quản trị CSDL SQL
2005 và ASP.NET
Chương 2: Phân tích và thiết kế hệ thống.
Chương 3: Giới thiệu WEBSITE SHOP MỸ PHẨM
CHƯƠNG 1: TÌM HIỂU VỀ CÔNG NGHỆ LINQ, HỆ QUẢN TRỊ CSDL SQL 2005 VÀ ASP.NET
1.1 Giới thiệu về công nghệ LINQ
Từ trước tới nay khó khăn lớn nhất cho các nhà phát triển là phải đối mặtvới 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 tại, cách phổ biến nhất để ứng dụng lấy dữ liệu từ các hệ cơ sở dữliệu là sử dụng SQL (Structure Query Language – ngôn ngữ truy vấn cấu trúc).SQL có cú pháp rất khác với những ngôn ngữ lập trình phổ dụng như C# vàVB.NET, do vậy lập trình viên phải “hàn gắn” hai thực thể khác biệt này vớinhau trong mỗi dự án phần mềm
Để giảm gánh nặng thao tác trên nhiều ngôn ngữ khác nhau và cải thiệnnăng suất lập trình, Microsoft đã phát triển giải pháp tích hợp dữ liệu cho NETFramework có tên gọi là LINQ (Language Integrated Query): Ngôn ngữ kết hợpcác câu lệnh truy vấn Ng«n ng÷ LINQ gåm 3 phÇn chÝnh:
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 2
Trang 3- Linq to Object: Là một API nơi mà cung cấp cỏc phương thức chuẩn của
cỏc toỏn tử truy vấn để lấy lại dữ liệu từ bất kỳ đối tượng nào Cỏc cõu truy vấn được thực hiện 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ệ
- 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 phiên bản hiện thực hóa của O/RM (ObjectRelational Mapping) 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 (CSDL) dùng LINQ, cũng nh cập nhật/ thêm/ xóadữ liệu từ đó
Trang 4LINQ 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.
Mụ hỡnh húa CSDL dựng LINQ to SQL
Visual Studio “Orcas” đó tớch hợp thờm một trỡnh thiết kế LINQ to SQLnhư một cụng cụ dễ dàng cho việc mụ hỡnh húa một cỏch trực quan cỏc CSDLdự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 choCSDL mẫu “DataClasses1” giống như sau :
Mụ hỡnh LINQ to SQL ở trờn định nghĩa bốn lớp thực thể: Product, Category, Order và OrderDetail Cỏc thuộc tớnh của mỗi lớp ỏnh xạ vào cỏc cột
của bảng tương ứng trong CSDL Mỗi trường của một lớp biểu diễn một dũngtrong bảng dữ liệu
Cỏc mũi tờn giữa bốn lớp thực thể trờn biểu diễn quan hệ giữa cỏc thực
thể khỏc nhau, chỳng được tạo ra dựa trờn cỏc mối quan hệ Primary-key / Foreign-key trong CSDL Hướng của mũi tờn chỉ ra mối quan hệ là một - một
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 4
Trang 5hay một - nhiều Các thuộc tính tương ứng sẽ được thêm vào các lớp thực thể
trong các trường hợp này
Ví dụ: Lớp Category ở trên có một mối quan hệ một - nhiều với lớp
Product, nghĩa là nó sẽ có một thuộc tính “Categories” là một tập hợp các đối tượng Product trong Category này Lớp Product cũng sẽ có một thuộc tính
“Category” chỉ đến đối tượng “Category” chứa Product này bên trong.
Bảng các phương thức bên tay phải bên trong trình thiết kế LINQ to SQL
ở trên chứa một danh sách các Store Procedure để tương tác với mô hình dữ liệucủa chúng ta
Tìm hiểu lớp DataContext :
Cứ mỗi một file LINQ to SQL thêm vào Solution, một lớp DataContext sẽđược tạo ra, nó sẽ được dùng khi cần truy vấn hay cập nhật lại các thay đổi LớpDataContext được tạo sẽ có các thuộc tính để biểu diễn mỗi bảng được mô hìnhhóa từ CSDL, cũng như các phương thức cho mỗi Store Procedure đã 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:
Trang 6 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
Có thể truy xuất nhiều loại dữ liệu hơn SQL (CSDL trong hệ CSDL, trong
bộ nhớ RAM của máy tính)
Điều quan trọng nhất, LINQ là tất cả về truy vấn, kết quả sau khi truy vấn
có thể là tập hợp các đối tượng cùng loại, có thể là 1 đối tượng đơn, có thể là tậphợp con của các trường từ 1 đối tượng Kết quả trả về của LINQ gọi làPHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 6
Trang 7sequence Hầu hết sequence là IEnumerable<T> với T là kiểu dữ liệu của những
đối tượng trong sequence
LINQ là một giải pháp lập trình dữ liệu tích hợp cho Net framework đểgiảm gánh nặng thao tác trên nhiều ngôn ngữ khác nhau và cung cấp khả năngtruy vấn trực tiếp dữ liệu đối tợng, CSDL và XML LINQ thao tác trên dữ liệu đãtrả về dạng object list với các thuộc tính của đối tợng chứ không phải thao táctrên đối tợng table của CSDL với các cột và hàng DLINQ là tập các lớp đặc biệtcho phép thể hiện các bảng và hàng dữ liệu theo dạng đối tợng, nhờ vậy có thể sửdụng LINQ để truy vấn trực tiếp CSDL
So sánh giữa ADO.NET và LINQ
- ADO.NET là công cụ để kết nối dữ liệu nguồn (giống nhODBC) trong khi đó LINQ là công cụ truy vấn để truy vấn bất kỳ loại dữ liệunào mà không cần dữ liệu từ CSDL
- Khi sử dụng ADO.NET chúng ta phải viết câu lệnh kết nốiCSDL nhng khi dùng LINQ nó sẽ tự sinh ra một câu lệnh kết nối CSDL
- Nó lập trình dễ dàng hơn khi sử dụng các Store Procedure.ADO.NET phải sử dụng các tham số (Parameters) để truyền vào để truyền cáctham số còn LINQ sử dụng luôn Store khi kéo Store vào
1.2 Giới thiệu về hệ quản trị cơ sở dữ liệu SQL 2005
SQL là viết tắt của Structured Query Language – Ngụn ngữ truy vấn cấutrỳc, là một chuẩn của ANSI (American National Standards Institute – Viện tiờuchuẩn quốc gia Hoa Kỳ) về truy xuất cỏc hệ thống CSDL Cỏc cõu lệnh SQLđược sử dụng để truy xuất và cập nhật dữ liệu trong một CSDL SQL hoạt độngvới hầu hết các chơng trình CSDL nh MS Access, DB2, Informix, MS SQLServer …
Một CSDL thường bao gồm một hoặc nhiều bảng (table) Mỗi bảng đượcxỏc định thụng qua một tờn (vớ dụ Products hoặc Categorys) Vớ dụ bảngProducts :
Products ( ProductID, ProductName, CategoryID, Price, CreateDate, UserId)
Trang 8Với SQL ta có thể truy vấn CSDL và nhận lấy kết quả trả về, cập nhật /sửa đổi, chèn thêm và xóa các mẩu tin thông qua các câu truy vấn.
Danh sách các lệnh và truy vấn dạng DML (Data ManipulationLanguage):
o Select : Lấy dữ liệu từ một bảng CSDL
o Update : Cập nhật / sửa đổi dữ liệu trong bảng
o Delete : Xóa dữ liệu trong bảng
o Insert into : Thêm dữ liệu vào bảng
Những tính năng mới của SQL 2005
Khi SQL 2005 ra đời, thì những kiến thức về SQL 2000 thực sự không đủ
để làm chủ được SQL 2005 Khả năng và độ linh hoạt của SQL 2005 được phảnánh rất rõ trong công cụ Management studio mới và BIDS
o Nõng cao bảo mật:
Bảo mật là trọng tâm chính cho những tính năng mới trong SQLServer 2005 Điều này phản ánh sự phản ứng lại của Microsoft với sâu máytính Slammer đã tấn công SQL Server 2000 Nó cũng cho thấy một thế giớingày càng có nhiều dữ liệu kinh doanh có nguy cơ bị lộ ra ngoài Internet.
o Mở rộng T – SQL:
- Transact - SQL là một phiên bản của Structured Query Language(SQL), được dùng bởi SQL Server 2005 Transact - SQL thường được gọi là T-SQL T-SQL có nhiều tính năng do Microsoft phát triển không có trong ANSISQL (SQL chuẩn)
- Việc sử dụng khối Try Catch trong mã T-SQL cho phép chỉ ra điều
gì phải làm khi lỗi xảy ra
o Tăng cường hỗ trợ người phát triển:
- Các kiểu dữ liệu mới
- Truy cập Http
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 8
Trang 9o Tăng cường khả năng quản lý:
Các công cụ quản lý trong SQL Server 2005 có sự thay đổi rất lớn vớiSQL Server 2000 Thay đổi chính đến từ SQL Server management Studio.
- Những công cụ quản lý mới
1.3 Giới thiệu ASP.NET
ASP.NET là phiên bản kế tiếp của Active Server Page (ASP), nó là mộtnền phát triển ứng dụng Web hợp nhất, cung cấp nhiều dịch vụ cần thiết cho lậptrình viên xây dựng các lớp ứng dụng chuyên nghiệp Cú pháp ASP.NET tươngthích với cú pháp ASP, ngoài ra ASP.NET còn cung cấp một mô hình lập trìnhmới, nền tảng an toàn, linh hoạt và ổn định
ASP.NET là biên dịch, dựa trên môi trường NET và có thể xây dựngbằng bất cứ ngôn ngữ nào tương thích NET, bao gồm Visual Basic.NET, C#, vàJScript NET
Lý do chọn ASP.NET :
Ta đã biết NET Framework và các ứng dụng của nó đã và đang tạo mộtcuộc cách mạng kỹ thuật trong công nghệ Tin Học (Information Technology),thay đổi tận gốc rễ các kiểu mẫu lập trình hay phát triển và triển khai mạng trênthế giới và do đó tạo một vận hội mới đáp ứng mọi yêu cầu khẩn thiết cho các
Trang 10ngành nghề kỹ thuật và thương mại hiện nay cũng như vạch một hướng đi vữngchắc và dài lâu cho tương lai Tin Học ASP.NET chính là một trong những ứngdụng quan trọng nhất để phát triển và triển khai mạng một cách dễ dàng chưatừng thấy từ xưa đến nay
Không như ASP kiểu cổ điển chỉ giới hạn với VBScripts và JScripts,ASP NET hỗ trợ trên 25 ngôn ngữ lập trình (ngoài các ngôn ngữ mới thiết lập
đã cài sẵn hỗ trợ NET framework như là VB.NET, C# và JScript.NET )
Mặc dù có thể chỉ cần dùng tới Notepad để triển khai các trang ASP.NETnhưng Visual Studio NET giúp năng suất triển khai mạng thêm phần hiệu quả,
có thể quan sát các kế hoạch của ta dễ dàng hơn khi phác họa (design) các thànhphần của ASP.NET bằng hình ảnh vớti ASP.NET Web Forms hay Services theophương pháp nhấn đúp chuột quen thuộc của nền Windows
ASP.NET không những chạy nhanh hơn ASP cổ điển gấp 5 lần mà cũng
có thể duy trì kiểu mẫu cập nhật gọi là kiểu mẫu “just hit save”, nghĩa làASP.NET tự động dũ tìm mọi sự thay đổi và compile files khi cần thiết cũngnhư lưu trữ kết quả compile đó để cung ứng dịch vụ cho những yờu cầu tiếptheo sau, nhờ vậy ứng dụng luôn luôn cập nhật hóa và chạy nhanh hơn cả
ASP.NET cũng có khả năng tự động dò tìm và phục hồi (detects andrecovers) những trở ngại nghiêm trọng như deadlocks hay bộ nhớ (memory) bị rỉ
để bảo đảm ứng dụng của bạn luôn luôn sẵn sàng khi dùng mà không làm cảntrở việc cung ứng dịch vụ cần thiết thường lệ ASP.NET cho phép ta tự động cậpnhật hóa (update) các thành phần đã compiled (compiled components) mà khôngcần phải khởi động lại (re-start) các Web Server
Một số đối tượng trong ASP.NET :
• Request :
o Trao đổi thông tin giữa Client và Server
o Dạng QueryString: Gửi thông tin kèm vào phần đuôi của URL
• Response :
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 10
Trang 11o Cho phép Server đáp ứng, trả lời hay thông tin với client.
o Phương thức Write, Writeln: Viết dòng chữ
Nhiệm vụ của đề tài:
Các bước tiến hành :
Trang 12o Tìm hiểu cách xây dựng một trang web như thế nào.
o Tìm hiểu việc ứng dụng công nghệ LINQ vào thiết kế website
o Tìm kiếm và tham khảo một số website bán Mỹ phẩm
o Tìm hiểu các hệ cơ sở dữ liệu hiện nay
o Tiến hành phân tích, thiết kế và lập chương trình
Trang 13Tên 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 đổithô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
Tên luồng dữ liệu
Tên kho dữ liệu
Đặt hàng Thêm sửa xóa
tin tức
Cập nhật thông tin người dùng
Trang 14+ 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
Kí hiệu:
• Biểu đồ luồng dữ liệu mức khung cảnh:
• Biểu đồ mức đỉnh:
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH
MỸ PHẨM
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
Liªn hÖGãp ý
Y/c Tìm kiếmĐáp ứng y/c
Y/c TT ph¶n håiĐáp ứng y/c
Đáp ứng y/c
Trang 14
Tên tác nhân ngoài
Trang 15Chó thÝch:
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
12
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
Trang 16Cập nhật sản phẩm
Cập nhật danh mục
Cập nhật tin tức
CËp nhËt
TT người dùng
Trang 16
Trang 17§¸p øng
Trang 18Image, 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,
ShipedDate, Status)
tblOrderDetail (OrderID, ProductsID, UnitPrice, CountProducts, Status)
tblCart(CartID, CustomersID, ProductsID, Count, Type, UpdateDate, Status) tblNews (NewsID, Subject, Body, ShortOrder, Status)
tblReply (ReplyID, FullName, Email, Phone, Type, Command, CreateDate,
Status)
tblBEMenu (MenuID, Name, Link, Status)
tblBEUser (UserID, UserName, Password, Phone, Email, DonVi, Status)
PHẠM THỊ CHI - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 18
Trang 19b 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 CartId
CustomersID UnitPrice CountProduct Status
UserName Password Address Phone Email FullName Gender Status
OrderDetail OrderID
ProductID UnitPrice CountProduct Status
OrderID
CustomerId OrderDate RequiedDate ShipDate ShipAddress Status
Trang 202 ProductsName nvarchar(255) Tên sản phẩm
4 QuantityPerUnit int Số lượng sản phẩm hiện đang có
7 Description nvarchar(MAX) Thông tin chi tiết sản phẩm
Thực thể 2 : tblCustomers
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
7 FullName nvarchar(255) Họ tên đầy đủ khách hàng
Thực thể 3 : tblOrder
4 RequiredDate datetime Ngày yêu cầu giao hàng
5 ShipedDate datetime Ngày giao hàng