Trong đó việc xây dựngcác Stored Procedure và lớp Data Access Layer đều thực hiện các chức năng cơbản như: cập nhập, thêm, xóa, chọn tất cả, chọn một bản ghi có điều kiện.Những chức năng
Trang 1MỤC LỤC
MỤC LỤC 1
LỜI NÓI ĐẦU 4
CHƯƠNG 1: MỘT SỐ CÔNG NGHỆ ĐỂ TRIỂN KHAI PHẦN MỀM VÀ WEBSITE 7
1.1 Tổng quan về Microsoft.NET 7
1.2 Ngôn ngữ lập trình C# 8
1.2.1 Giới thiệu chung về ngôn ngữ lập trình C# 8
1.2.2 Lớp, đối tượng và kiểu 9
1.2.3 Các tính chất của lập trình hướng đối tượng 11
1.3 ASP.NET và NET FRAMEWORK 13
1.3.1 Khái niệm ASP.NET và NET FRAMEWORK 13
1.3.2 Framwork Class Library 13
1.3.3 Commom Language Runtime (CLR) 15
1.3.4 Các điều khiển trên Asp.net 15
1.3.5 Điều khiển sự kiện trên Server 16
1.3.6 Trang asp.net 16
1.3.7 Điều khiển sự kiện của trang asp.net 16
CHƯƠNG 2: MÔ HÌNH 3 LỚP 18
2.1 Khái niệm 18
2.2 Các thành phần của mô hình 3 lớp 19
2.2.1 Presentation Layer (Lớp giao diện) 19
2.2.2 Business Logic Layer (Lớp xử lý nghiệp vụ) 19
2.2.3 Data Access Layer (Lớp truy xuất dữ liệu) 20
Trang 22.3 Ví dụ một ứng dụng với mô hình 3 lớp 21
2.4 Lợi ích của mô hình 3 lớp 23
CHƯƠNG 3: HỆ QUẢN TRỊ CSDL SQL SEVER 2005 24
3.1 Khái niệm SQL Server 24
3.2 Các phiên bản của SQL Server 24
3.3 Cấu trúc cơ sở dữ liệu trong SQL Server 2005 25
CHƯƠNG 4: PHẦN MỀM ỨNG DỤNG “AUTO GENERATE CODE” 28
4.1 Đặt vấn đề 28
4.2 Cấu trúc của chương trình 29
4.3 Quy trình hoạt động của hệ thống 29
4.3.1 Thông tin đầu vào đầu ra của hệ thống 29
4.3.2 Hoạt động của hệ thống 29
4.4 Các Form giao diện của chương trình 35
4.4.1 Giao diện đăng nhập, kết nối vào CSDL 35
4.4.2 Giao diện chính của chương trình 36
4.4.3 Giao diện form hướng dẫn 40
4.4.4 Giao diện form giới thiệu 40
CHƯƠNG 5: ỨNG DỤNG CỦA PHẦN MỀM VÀO WEBSITE TIN TỨC 41
5.1 Thiết kế cơ sở dữ liệu cho website 41
5.1.1 Danh sách các bảng cơ sở dữ liệu 41
5.1.2 Mô hình thực thể liên kết 42
5.2 Ứng dụng của phần mềm vào website 43
5.3 Giao diện của website tin tức 45
Trang 35.3.2 Giao diện trang phân loại tin 46
5.3.3 Giao diện trang chi tiết tin tức 47
5.3.4 Giao diện trang đăng nhập 48
5.3.5 Giao diện trang chủ trang quản trị 48
5.3.6 Giao diện menu quản trị 49
5.3.7 Giao diện trang quản lý thông tin Bài viết 49
5.3.8 Giao trang sửa (cập nhật) Bài viết 50
5.3.9 Giao diện trang thêm Bài viết 50
KẾT LUẬN 51
TÀI LIỆU THAM KHẢO 52
Trang 4LỜI NÓI ĐẦU
Ngày nay, trong lĩnh vực công nghệ thông tin có nhiều sự thay đổi, và pháttriển lớn trên nhiều mặt Và các phần mềm ứng dụng ngày càng phát triển lớnmạnh và đa dạng thì vấn đề thiết kế kiến trúc cho phần mềm cũng ngày càng trởnên phức tạp Những ứng dụng web giờ đây cũng đã phát triển đến một tầm caomới, chúng không còn là những ứng dụng web thông thường với chức năng hiểnthị thông tin mà là những hệ thống thông tin hỗ trợ những trang web tương tácvới người dùng Nhiều giải pháp thiết kế kiến trúc hệ thống được đưa ra với mụcđích làm cho hệ thống linh hoạt, mềm dẻo, dễ phát triển và khoa học trong đó cógiải pháp thiết kế theo mô hình 3 lớp là giải pháp được sử dụng phổ biến nhấthiện nay
Qua việc tìm hiểu cũng như đi vào thực tiễn làm một số dự án (Web) có sửdụng mô hình 3 lớp thì tôi thấy rằng việc xây dựng một website luôn đi theotrình tự đó là thiết kế cơ sở dữ liệu, xây dựng các Stored Procedure (thủ tục lưutrữ) làm trung gian để tương tác giữa Database và lớp Data Access Layer (Lớptruy xuất dữ liệu), xây dựng lớp Business Logic Layer (Lớp xử lý nghiệp vụ) vàcuối cùng là lớp Presentation Layer (Lớp giao diện) Trong đó việc xây dựngcác Stored Procedure và lớp Data Access Layer đều thực hiện các chức năng cơbản như: cập nhập, thêm, xóa, chọn tất cả, chọn một bản ghi có điều kiện.Những chức năng trên đối với các cơ sở dữ liệu khác nhau thì đều có cú phápgiống nhau, do đó sẽ có sự lặp đi lặp lại các chức năng đó đối với mỗi cơ sở dữliệu và sẽ mất thời gian đối với công việc bắt buộc và nhàm chán này
Với hi vọng giúp người lập trình giảm được những công việc trên bằngcách tự động tạo ra các tệp Stored Procedure, các tập tin trong lớp Data AccessLayer giúp lập trình viên làm việc nhanh hơn và tiến độ công việc được đẩynhanh hơn, tôi tìm hiểu về cách tạo tệp Stored Procedure và các tệp trong lớp
Trang 5Data Access Layer trong C# và cách thức lấy các bảng hệ thống trong CSDLSQL Server 2005 nhằm tạo ra được các tệp đó.
Chương trình được xây dựng bằng ngôn ngữ lập trình C# sử dụng hệ quảntrị SQL sever 2005 và website ứng dụng chương trình được xây dựng bằng côngnghệ website mới ASP.NET
Đồ án bao gồm 5 chương:
- Chương I: Một số công nghệ để triển khai phần mềm và website
(Giới thiệu các công nghệ sử dụng để xây dựng phần mềm và website demo)
- Chương II: Mô hình 3 lớp
(Giới thiêu về mô hình 3 lớp)
- Chương III: Hệ quản trị cơ sở dữ liệu SQL sever 2005
(Giới thiệu về hệ quản trị CSDL SQL sever 2005 và đưa ra các kiến thức về các bảng của hệ thống có sử dụng trong phần mềm)
- Chương IV: Phần mềm ứng dụng Auto Generate Code
(Giới thiệu về phần mềm và nêu lên các điểm nổi bật trong phần mềm)
- Chương V: Ứng dụng của phần mềm vào website tin tức
(Giới thiệu trang web và mô tả quan hệ giữa phần mềm và trang web)
Đề tài này được hoàn thành nhờ sự quan tâm, động viên của gia đình, cácbạn trong lớp và đặc biệt là sự giúp đỡ tận tình, chu đáo của thầy giáo hướngdẫn - TS Nguyễn Trung Hòa Tôi xin bày tỏ lòng biết ơn sâu sắc tới thầyNguyễn Trung Hòa cùng các thầy cô trong tổ Khoa học máy tính đã góp ý giúptôi thực hiện đề tài này
Trang 6Do nhiều yếu tố khách quan và do tầm hiểu biết chưa sâu sắc, đề tài chắcchắn còn nhiều sai sót, hạn chế Tôi mong được sự góp ý chân thành của thầy cô
và các bạn để kịp thời sửa chữa và hoàn thiện tốt hơn
Tôi xin chân thành cảm ơn !
Sinh viên thực hiện Trịnh Văn Ngọc
Trang 7CHƯƠNG 1: MỘT SỐ CÔNG NGHỆ ĐỂ TRIỂN KHAI PHẦN
MỀM VÀ WEBSITE1.1 Tổng quan về Microsoft.NET
Microsoft.NET gồm 2 phần chính: Framework và Integrated DevelopmentEnvironment (IDE) Framework cung cấp những gì cần thiết và căn bản, chữFramework có nghĩa là khung hay khung cảnh trong đó ta dùng những hạ tầng
cơ sở theo một qui ước nhất định để công việc được trôi chảy IDE thì cung cấpmột môi trường giúp chúng ta triển khai dễ dàng, nhanh chóng các ứng dụngdựa trên nền tảng NET
Nếu không có IDE chúng ta cũng có thể dùng một trình soạn thảo ví nhưNotepad hay bất cứ trình soạn thảo văn bản nào và sử dụng command line đểbiên dịch và thực thi, tuy nhiên việc này mất nhiều thời gian Tốt nhất là chúng
ta dùng IDE phát triển các ứng dụng, cũng là cách dễ sử dụng nhất Thành phầnFramework là quan trọng nhất, NET là cốt lõi và tinh hoa của môi trường, cònIDE chỉ là công cụ để phát triển dựa trên nền tảng đó thôi Trong NET toàn bộcác ngôn ngữ C#, Visual C++ hay Visual Basic.NET đều dùng cùng một IDE.Tóm lại Microsoft NET là nền tảng cho việc xây dựng và thực thi các ứngdụng phân tán thế hệ kế tiếp Bao gồm các ứng dụng từ client đến server và cácdịch vụ khác Một số tính năng của Microsoft NET cho phép những nhà pháttriển sử dụng như sau:
- Một mô hình lập trình cho phép nhà phát triển xây dựng các ứng dụngdịch vụ web và ứng dụng client với Extensible Markup Language(XML)
- Tập hợp dịch vụ XML Web, như Microsoft NET My Services cho phépnhà phát triển đơn giản và tích hợp người dùng kinh nghiệm
Trang 8- Cung cấp các server phục vụ bao gồm: Windows 2000, SQL Server,BizTalk Server, tất cả điều tích hợp, hoạt động, quản lý các dịch vụXML Web và các ứng dụng.
- Các phần mềm client như Windows XP và Windows CE giúp ngườiphát triển phân phối sâu và thuyết phục người dùng kinh nghiệm thôngqua các dòng thiết bị
- Nhiều công cụ hỗ trợ như Visual Studio NET, để phát triển các dịch vụWeb XML, ứng dụng trên nền Windows hay nền web một cách dể dàng
và hiệu quả
1.2 Ngôn ngữ lập trình C#
1.2.1 Giới thiệu chung về ngôn ngữ lập trình C#
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu
dữ liệu được xây dựng sẵn Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thựcthi những khái niệm lập trình hiện đại C# bao gồm tất cả những hỗ trợ cho cấutrúc, thành phần component, lập trình hướng đối tượng Những tính chất đó hiệndiện trong một ngôn ngữ lập trình hiện đại
Ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó được xây dựngtrên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java
Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đóngười dẫn đầu là Anders Hejlsberg và Scott Wiltamuth Cả hai người này điều lànhững người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giả củaTurbo Pascal, một ngôn ngữ lập trình PC phổ biến Ông đứng đầu nhóm thiết kếBorland Delphi, một trong những thành công đầu tiên của việc xây dựng môitrường phát triển tích hợp (IDE) cho lập trình client/server Phần cốt lõi hay còngọi là trái tim của bất cứ ngôn ngữ lập trình hướng đối tượng là sự hỗ trợ của nócho việc định nghĩa và làm việc với những lớp Những lớp thì định nghĩa những
Trang 9kiểu dữ liệu mới, cho phép người phát triển mở rộng ngôn ngữ để tạo mô hìnhtốt hơn để giải quyết vấn đề.
Những ưu điểm của ngôn ngữ C#:
- C# là ngôn ngữ đơn giản
- C# là ngôn ngữ hiện đại
- C# là ngôn ngữ hướng đối tượng
- C# là ngôn ngữ mạnh mẽ
- C# là ngôn ngữ ít từ khóa
- C# là ngôn ngữ module hóa
- C# sẽ là ngôn ngữ phổ biến
1.2.2 Lớp, đối tượng và kiểu
Bản chất của lập trình hướng đối tượng là tạo ra các kiểu mới Một kiểubiểu diễn một vật gì đó Giống với các ngôn ngữ lập trình hướng đối tượng khác,một kiểu trong C# cũng định nghĩa bằng từ khóa class (và được gọi là lớp) cònthể hiện của lớp được gọi là đối tượng
a Định nghĩa lớp
Để định nghĩa một kiểu dữ liệu mới hay một lớp đầu tiên phải khai báo rồisau đó mới định nghĩa các thuộc tính và phương thức của kiểu dữ liệu đó Khaibáo một lớp bằng cách sử dụng từ khoá class Cú pháp đầy đủ của khai báo mộtlớp như sau:
[Thuộc tính] [Bổ sung truy cập] class <Định danh lớp> [: Lớp cơ sở]
{
<Phần thân của lớp: bao gồm định nghĩa các thuộc tính và
Trang 10Thuộc tính truy cập:
Thuộc tính truy cập quyết định khả năng các phương thức của lớp bao gồmviệc các phương thức của lớp khác có thể nhìn thấy và sử dụng các biến thànhviên hay những phương thức bên trong lớp
public Không hạn chế Những thành viên được đánh dấu public có
thể được dùng bởi bất kì các phương thức của lớp bao gồmnhững lớp khác
private Thành viên trong một lớp A được đánh dấu là private thì chỉ
được truy cập bởi các phương thức của lớp A
protected Thành viên trong lớp A được đánh dấu là protected thì chỉ
được các phương thức bên trong lớp A và những phương thứcdẫn xuất từ lớp A truy cập
internal Thành viên trong lớp A được đánh dấu là internal thì được truy
cập bởi những phương thức của bất cứ lớp nào trong cùngkhối hợp ngữ với A
protected
internal
Thành viên trong lớp A được đánh dấu là protected internalđược truy cập bởi các phương thức của lớp A, các phương thứccủa lớp dẫn xuất của A, và bất cứ lớp nào trong cùng khối hợpngữ của A
b Đối tượng (Object)
Các dữ liệu và chỉ thị được kết hợp vào một đơn vị đầy đủ tạo nên một đốitượng Đơn vị này tương đương với một chương trình con và vì thế các đốitượng sẽ được chia thành hai bộ phận chính: phần các phương thức (method) vàphần các thuộc tính (attribute) Trong thực tế, các phương thức của đối tượng là
Trang 11các hàm và các thuộc tính của nó là các biến, các tham số hay hằng nội tại củamột đối tượng (hay nói cách khác tập hợp các dữ liệu nội tại tạo thành thuộc tínhcủa đối tượng) Các phương thức là phương tiện để sử dụng một đối tượng trongkhi các thuộc tính sẽ mô tả đối tượng có những tính chất gì.
Các phương thức và các thuộc tính thường gắn chặt với thực tế các đặc tính
và sử dụng của một đối tượng Trong thực tế, các đối tượng thường được trừutượng hóa qua việc định nghĩa của các lớp (class)
Tập hợp các giá trị hiện có của các thuộc tính tạo nên trạng thái của mộtđối tượng Mỗi phương thức hay mỗi dữ liệu nội tại cùng với các tính chất đượcđịnh nghĩa (bởi người lập trình) được xem là một đặc tính riêng của đối tượng
1.2.3 Các tính chất của lập trình hướng đối tượng
Lập trình hướng đối tượng là một phương pháp lập trình có các tính chấtchính sau:
Tính trừu tượng (abstraction):
Đây là khả năng của chương trình bỏ qua hay không chú ý đến một số khíacạnh của thông tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có khả năngtập trung vào những cốt lõi cần thiết Mỗi đối tượng phục vụ như là một "độngtử" có thể hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng tháicủa nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nàođối tượng tiến hành được các thao tác Tính chất này thường được gọi là sự trừutượng của dữ liệu
Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một
số đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưngbản thân đối tượng ban đầu này có thể không có các biện pháp thi hành Tínhtrừu tượng này thường được xác định trong khái niệm gọi là lớp trừu tượng hay
Trang 12Tính đóng gói (encapsulation) và che giấu thông tin (information hiding):
Tính chất này không cho phép người sử dụng các đối tượng thay đổi trạngthái nội tại của một đối tượng Chỉ có các phương thức nội tại của đối tượng chophép thay đổi trạng thái của nó Việc cho phép môi trường bên ngoài tác độnglên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộcvào người viết mã Đây là tính chất đảm bảo sự toàn vẹn của đối tượng
Tính đa hình (polymorphism):
Thể hiện thông qua việc gửi các thông điệp (message) Việc gửi các thôngđiệp này có thể so sánh như việc gọi các hàm bên trong của một đối tượng Cácphương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thôngđiệp đó được gửi tới sẽ có phản ứng khác nhau Người lập trình có thể địnhnghĩa một đặc tính (chẳng hạn thông qua tên của các phương thức) cho một loạtcác đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thihành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đốitượng mà không bị nhầm lẫn
Thí dụ khi định nghĩa hai đối tượng "hinh_vuong" và "hinh_tron" thì cómột phương thức chung là "chu_vi" Khi gọi phương thức này thì nếu đối tượng
là "hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là
"hinh_tron"
Tính kế thừa (inheritance):
Đặc tính này cho phép một đối tượng có thể có sẵn các đặc tính mà đốitượng khác đã có thông qua kế thừa Điều này cho phép các đối tượng chia sẻhay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại
Trang 131.3 ASP.NET và NET FRAMEWORK
1.3.1 Khái niệm ASP.NET và NET FRAMEWORK
ASP.Net là một phần của NET Framework để xây dựng trang asp.net thìcần phải thêm vào các đặc tình của net framework chứa đựng trong hai phần làFramework Class Library và Commom Language Runtime
1.3.2 Framwork Class Library
Framework chứa hàng nghìn lớp mà chúng ta có thể sử dụng trong các ứngdựng của mình, các lớp đó nằm trong các Assembly (file dll) khác nhau vàtrong các Namespace kháu nhau
Ví dụ một vài lớp của Net Framwork:
- Lớp File: cho phép chúng ta tạo, sửa, xóa hay kiểm tra sự tồn tại của filetrên ổ cứng…
- Lớp Graphics: cho phép làm việc với nhiều kiểu hình ảnh, bạn cũng cóthể tạo ra các ảnh từ trên các phương thức trên lớp này
- Lớp SmtpClient: là lớp cho phép gửi thư
a Namespaces:
Hơn 13 nghìn lớp trong Netframework Đây là một con số rấ lớn, Microsoft
đã chia các lớp cùng xử lý về một vấn đề gì đó vào các không gian tên chunghay Namespaces
Một Namespace đơn giản là một danh mục, ví dụ tất cả các lớp thao tác vớiFile và thư mục được đưa vào một Namespace chung gọi là System.IO, hay tất
cả các lớp làm việc với SqlServer có thể được đưa vào NamespaceSystem.Data.SqlClient
Các Namespaces chung nhất trong Net:
Trang 14Trước khi sử dụng các lớp trong dll ta cần tạo một tham chiếu đến file dllnày.
1.3.3 Commom Language Runtime (CLR)
Phần thứ hai của NetFramework là CLR chịu trách nhiệm về mã ứng dụngcủa chương trình
Trang 15Khi ta viết ứng dụng bằng ngôn ngữ C#, VB.net hay bằng ngôn ngữ bất kỳtrên nền NetFramework mã của ta sẽ không bao giờ được biên dịch trực tiếpthành mã máy, thay vào đó chúng được biên dịch sang ngôn ngữ đặc tảMSIL(Microsoft Intermediate Language).
MSIL nhìn rất giống với ngôn ngữ hướng đối tượng Assembly, nhưngkhông giống kiểu ngôn ngữ Assembly MSIL là ngôn ngữ bậc thấp phụ thuộcvào Platform
Khi ứng dụng của ta thực thi, mã MSIL là “Just in time” biên dịch sang mãmáy bởi JITTER(Just In Time Complier)
Vì vậy khi ta viết các lớp trên Net bằng bất kỳ ngôn ngữ nào khi ta biêndịch sang Assembly ta đều có thể sử dụng Assembly đó cho các ngôn ngữ khác
1.3.4 Các điều khiển trên Asp.net
Các điều khiển asp.net là phần quan trọng nhất trong ASP.NETFramework Một control ASP.net là một lớp mà thực thi trên Server và đưa ranội dụng trên trình duyệt ASP.net có hơn 70 control mà ta có thể sử dụng trongxây dựng ứng dựng Web của mình và cơ bản nó chia thành các nhóm sau:
- Standard control: bao gồm các điều khiển đưa ra các thành phần chuẩncủa form như: Label, Button, TextBox, …
- Validator control: là các contro cho phép kiểm tra tính hợp lệ của cáccontrol cho phép nhập giá trị trên form
- Rich control: là những điều khiển như FileUpload, Calendar,…
- Data control: là các control cho phép thao tác với dữ liệu
- Navigation control: là những điều khiển giúp ta dễ dàng di chuyển giữacác trang trong website
Trang 16- Login control : Là điều khiển về bảo mật của ứng dụng cho phép đưa racác form đăng nhập, thay đổi mật khẩu
- HTML control : Cho phép chuyển các điều khiển các điều khiển củaHTML thành các điều khiển có thể làm việc trên Server
1.3.5 Điều khiển sự kiện trên Server
Phần lớn các điều khiển của Asp.net hổ trợ 1 hoặc nhiều sự kiện, ví dụ điềukhiển ASP.net Button hỗ trợ sự kiện Click, khi người sử dụng nhấn chuột vàoButton một sự kiện sẽ được đưa ra và công việc này được xử lý trên Server
1.3.6 Trang asp.net
Sử dụng code-behind thay vì sử dụng <script runat= “server”></script>
ngay trên trang asp.net người ta đưa ra thêm một trang gọi là Code-behind chứacác mã lệnh thực thi tren trang asp.net
Ví dụ: khi tạo một website mới từ Visual 2008 thì mặc định sẽ tạo ra một
lớp Default.aspx và nó sẽ kèm theo một trang Default.aspx.cs.
1.3.7 Điều khiển sự kiện của trang asp.net
Khi chạy trang asp.net thì vòng đời của trang asp.net gồm các sự kiện sau:
Trang 18CHƯƠNG 2: MÔ HÌNH 3 LỚP2.1 Khái niệm
Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống,cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thànhphần có cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm
để công việc không bị chồng chéo và ảnh hưởng lẫn nhau Trong phát triển phầnmềm, người ta cũng áp dụng cách phân chia chức năng này, với việc dùng kiếntrúc đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một chức năng nào đó, trong đó môhình 3 lớp là phổ biến nhất
Các lớp này bao gồm Presentation Layer (Lớp giao diện), Business LogicLayer (Lớp xử lý nghiệp vụ) và Data Access Layer (Lớp truy xuất dữ liệu) Cáclớp này sẽ giao tiếp với nhau thông qua các dịch vụ (services) mà mỗi lớp cungcấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì
mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi
Hình 2.1 Tổng quan mô hình 3 lớp
Trang 192.2 Các thành phần của mô hình 3 lớp
2.2.1 Presentation Layer (Lớp giao diện)
Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu vàhiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng.Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp Trong NET thìbạn có thể dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớpnày
Trong lớp này có 2 thành phần chính là User Interface Components (UIComponent) và User Interface Process Components (UI Process Components)
UI Components: là những phần tử chịu trách nhiệm thu thập và hiển thịthông tin cho người dùng cuối Trong ASP.NET thì những thành phần này cóthể là các TextBox, các Button, DataGrid
UI Process Components: là thành phần chịu trách nhiệm quản lý các quitrình chuyển đổi giữa các UI Components Ví dụ chịu trách nhiệm quản lý cácmàn hình nhập dữ liệu trong một loạt các thao tác định trước như các bước trongmột Wizard
2.2.2 Business Logic Layer (Lớp xử lý nghiệp vụ)
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ
do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation Lớpnày cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) đểthực hiện công việc của mình (ví dụ như sử dụng dịch vụ của các cổng thanhtóan trực tuyến như VeriSign, Paypal…)
Trong lớp này có các thành phần chính là Business Components, BusinessEntities và Service Interface
Trang 20Service Interface là giao diện lập trình mà lớp này cung cấp cho lớpPresentation sử dụng Lớp Presentation chỉ cần biết các dịch vụ thông qua giaodiện này mà không cần phải quan tâm đến bên trong lớp này được hiện thực nhưthế nào.
Business Entities là những thực thể mô tả những đối tượng thông tin mà hệthống xử lý Các business entities này cũng được dùng để trao đổi thông tin giữalớp Presentation và lớp Data Access
Business Components là những thành phần chính thực hiện các dịch vụ màService Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc logic(constraints), các qui tắc nghiệp vụ (business rules), sử dụng các dịch vụ bênngoài khác để thực hiện các yêu cầu của ứng dụng
2.2.3 Data Access Layer (Lớp truy xuất dữ liệu)
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệucủa ứng dụng Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở
dữ liệu như SQL Server, Oracle,… để thực hiện nhiệm vụ của mình Trong lớpnày có các thành phần chính là Data Access Logic, Servive Agents dùng đểtương tác với các Data Sources
Data Access Logic components (DALC) là thành phần chính chịu tráchnhiệm lưu trữ vào và truy xuất dữ liệu từ các nguồn dữ liệu – Data Sources nhưRDMBS (Relation Database Management System), XML, File systems….Trong NET Các DALC này thường được hiện thực bằng cách sử dụng thư việnADO.NET để giao tiếp với các hệ cơ sở dữ liệu hoặc sử dụng các O/R MappingFrameworks để thực hiện việc ánh xạ các đối tượng trong bộ nhớ thành dữ liệulưu trữ trong CSDL
Service Agents là những thành phần trợ giúp việc truy xuất các dịch vụ bênngòai một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại
Trang 212.3 Ví dụ một ứng dụng với mô hình 3 lớp
Hình 2.2 Mô hình 3 lớp trong một website
Phân tích qui trình “tạo một chuyên mục mới” trong ứng dụng web thì cáclớp sẽ tương tác với nhau như sau:
Trang 22// kiểm tra xem tên khóa của chuyên mục đã tồn tại chưa?…
// kiểm tra tên khóa của chuyên mục có hợp lệ không?…
// sử dụng DV của lớp Data Access để lưu chuyên mục mới này // vào CSDL
categoryDAO categoryDAO = new CategoryDAO();
public void CreateCategory(Category category)
// lưu dữ liệu
command.ExecuteNonQuery();
}
Trang 232.4 Lợi ích của mô hình 3 lớp
Việc áp dụng mô hình 3 lớp có những ích lợi sau:
- Mã nguồn sáng sủa, mạch lạc, rõ ràng Điều này tạo thuận lợi cho việctiếp cậnvà kiểm soát mã nguồn chương trình
- Dễ bảo trì, nâng cấp, mở rộng về sau
- Sử dụng lại mã nguồn đối với các dự án có cùng mục đích
- Dễ kiểm lỗi chương trình
Trang 24CHƯƠNG 3: HỆ QUẢN TRỊ CSDL SQL SEVER 2005
3.1 Khái niệm SQL Server
SQL Server là một hệ thống quản lý cơ sở dữ liệu quan hệ (RelationalDatabase Management System (RDBMS)) sử dụng Transact-SQL tương tácvới cơ sở dữ liệu (Database) quan hệ Một RDBMS bao gồm các database,database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khácnhau trong RDBMS
SQL Server 2005 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệurất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụcùng lúc cho hàng ngàn user
3.2 Các phiên bản của SQL Server
- Enterprise: Hỗ trợ không giới hạn số lượng CPU và kích thướcDatabase Hỗ trợ không giới hạn RAM (nhưng tùy thuộc vào kích thướcRAM tối đa mà HĐH hỗ trợ) và các hệ thống 64bit
- Standard: Tương tự như bản Enterprise nhưng chỉ hỗ trợ 4 CPU Ngoài
ra phiên bản này cũng không được trang bị một số tính năng cao cấpkhác
- Workgroup: Tương tự bản Standard nhưng chỉ hỗ trợ 2 CPU và tối đa3GB RAM
- Express: Bản miễn phí, hỗ trợ tối đa 1CPU, 1GB RAM và kích thướcDatabase giới hạn trong 4GB
Trang 253.3 Cấu trúc cơ sở dữ liệu trong SQL Server 2005
Như đã phân tích ở trên, SQL Server 2005 dùng để quản lý các cơ sở dữliệu quan hệ Các cơ sở dữ liệu (database) trong SQL Server 2005 bao gồm 2loại:
- Các database hệ thống: master, msdb, model, tempdb
- Các database do người dùng xây dựng
Các database hệ thống dùng để lưu trữ các thông tin về hệ thống như danhsách các database, thông tin đăng nhập của người dùng…
Các database do người dùng xây dựng có các thành phần:
- Tài khoản sử dụng database (user)
- Các Scheme
- Các Table (các bảng database)
- Các bảng hệ thống
- Các bảng do người dùng tạo ra
- Các Column (các trường trong bảng của database)
- Các Data Type (các kiểu dữ liệu sử dụng trong database)
- Các Diagram
Mỗi khi cơ sở dữ liệu được tạo ra, bảng sysdatabases trong cơ sở dữ liệumaster sẽ chứa thông tin về cơ sở dữ liệu mới tạo ra đó Do vậy chúng ta có thểliệt kê tất cả các cơ sở dữ liệu trong một máy chủ bằng cách liệt kê các bản ghitrong bảng sysdatabases:
Select * from master.dbo.sysdatabases
Trang 26Ở đây, nếu chúng ta chỉ cần lấy tên các cơ sở dữ liệu thì chúng ta chỉ cầnthực hiện:
Select dbid,name from master.dbo.sysdatabases
Hình 3.1: Danh sách các cơ sở dữ liệu
Tương tự, khi mỗi bảng được tạo trong một cơ sở dữ liệu thông tin về bảng
đó sẽ được chứa trong bảng sysobjects của chính cơ sở dữ liệu chứa bảng vừatạo Vì vậy chúng ta có thể xem danh sách các bảng trong cơ sở dữ liệu bằngcách truy vấn bảng sysobjects Các bảng do người dùng tạo có kiểu là ‘U’:
Select id,name from News.dbo.sysobjects
Where xtype=’u’