quản lý tour du lịch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.35 MB, 84 trang )

PHẦN 1 : TỔNG QUAN
1. GIỚI THIỆU :
Công việc quản lý xảy ra trong mọi lónh vực, mọi lúc, mọi nơi như các bài
toán :quản lý nhân sự ,quản lý vật tư ,quản lý tài chính …Trong lónh vực quản lý
, việc xử lý các thông tin nhận được là một vấn đề hết sức phức tạp vì lượng
thông tin nhận được ngày càng lớn và thường xuyên thay đổi, nó luôn luôn là
một bài toán phức tạp, nhất là trong việc tổ chức ,sắp xếp cơ sở dữ liệu sao cho
phù hợp ,tìm ra những phương pháp tính toán tối ưu ,vấn đề bảo mật dữ liệu …
Tuy nhiên sự ra đời của máy tính, cùng với sự phát triển của công nghệ thông
tin đã đưa ra một giải pháp hoàn toàn mới giúp giải quyết được những rắc rối
ấy một cách nhanh chóng và hiệu quả.
Và nếu như bạn có dòp ngồi tổng kết ,tính toán và in báo cáo cho công ty du
lòch ,khi không có sự trợ giúp của máy tính thì công việc đó không dễ chút
nào .Hàng ngàn những con số ,giấy tờ ,sổ sách …Điều quan trọng là những đối
tượng đó thì luôn luôn lại cập nhật và thay đổi theo từng thời điểm ,mỗi lần
thay đổi thì phải lục lại những giấy tờ liên quan và sửa lại .Cho nên việc quản
lý thông tin như vậy là không khoa học chút nào.
Chính vì lý do đó mà những người làm tin học phải có nhiệm vụ mô hình và tổ
chức những thông tin ở thế giới thực đưa vào máy tính, để có thể thực hiện
việc tính toán dễ dàng ,nhanh chóng và chính xác hơn.
2. MỤC ĐÍCH – Ý NGHĨA ĐỀ TÀI :
Đề tài “Xây dựng chương trình quản lý tour du lòch” đã giải quyết các vấn
đề khó khăn đó .Hệ thống thông tin quản lý tour du lòch này có thể giúp cho
việc quản lý các tour một cách chính xác với các thông tin được dễ dàng cập
nhật thường xuyên về chi phí ,thời gian ,nguồn nhân lực …thông qua một qui
trình đònh sẳn và giúp cho người quản lý có thể nắm bắt được đầy đủ thông tin
để dễ dàng xử lý kòp thời, mọi lúc ,mọi nơi.
Chương trình được xây dựng nhằm giúp cho các nhà quản lý :
– Trong việc ghi nhận dữ liệu : nhập vào một tour mới một cách hệ
thống, có tổ chức đònh sẳn trong chương trình .
– Trong việc tính toán : tính toán được tổng doanh thu của các tour

hằng tháng,hằng năm…
– Trong việc tra cứu : tra cứu tour ,tra cứu đòa điểm …
– Trong việc thống kê : thống kê tour theo loại tour ,thống kê theo
chi phí …
Chương trình được xây dựng nhằm giúp cho các nhà quản lý ,quản lý được các
tour mà mình đang theo dõi nhằm : đánh giá và kết luận về kết quả các quá
trình hoạt động của tour trước và sau khi hoạt động ; thu thập đầy đủ các thông
tin quản trò ,ra quyết đònh quản trò kòp thời ,chính xác ,hợp lý trên cơ sở các
thông tin được xác đònh dù với số lượng thông tin và dữ liệu lớn .
PHAÀN 2 : GIỚI THIỆU ASP.NET
I. ASP.NET – GIỚI THI Ệ U S Ơ L ƯỢC
1. ASP L AØ GÌ ?
ASP.NET là Active Server Pages .NET (.NET ở đây là .NET framework).
Nói đơn giản, ASP.NET là một công nghệ có tính cách mạng dùng để phát
triển các ứng dụng về mạng hiện nay cũng như trong tương lai (ASP.NET is a
revolutionary technology for developing web applications). Bạn lưu ý ở chổ
ASP.NET là một phương pháp tổ chức hay khung tổ chức (framework) để thiết
lập các ứng dụng hết sức hùng mạnh cho mạng dựa trên CLR (Common
Language Runtime) chứ không phải là một ngôn ngữ lập trình.
Tuy mang họ tên gần giống như ASP cổ điển nhưng ASP.NET không phải
là ASP. Tuy nhiên ASP.NET được thiết kế tương thích với các phiên bản ASP
trước đó. Ta chỉ cần thay đổi rất ít khi chuyển ứng dụng sẵn có từ ASP sang
ASP.NET. Và một điều thú vị nửa là ta có thể cài đặt bộ ASP.NET chung với
ASP 3.0 chạy trên máy chủ Windows 2000 hay Windows XP mà không cần
thay đổi cấu hình của ứng dụng ASP cũ. ASP và ASP.NET hoạt động độc lập
với nhau. Vì vậy ta sẽ tận dụng được những ưu điểm mới của ASP.NET mà
không cần phải sửa đổi nhiều. Mặc dù Microsoft chỉ them vào đuôi .NET
nhưng kiến trúc của ASP.NET so với ASP hầu như đổi mới rất nhiều.
2. KHÁC BIỆT GIỮA ASP.NET VÀ ASP:
ASP.NET được phác thảo (re-design) lại từ số không, nó được thay đổi tận

gốc rễ và phát triển (develop) phù hợp với yêu cầu hiện nay cũng như vạch một
hướng đi vững chắc cho tương lai Tin Học. Lý do chính là Microsoft đã quá
chán nãn trong việc thêm thắt và kết hợp các công dụng mới vào các kiểu mẫu
lập trình hay thiết kế mạng theo kiểu cổ điển nên Microsoft nghĩ rằng tốt nhất
là làm lại một kiểu mẫu hoàn toàn mới thay vì vá víu chổ này chổ nọ vào ASP.
Ðó là chưa kể đến nhiều phát minh mới ra đời sau này dựa trên các khái niệm
mới mẽ theo xu hướng phát triển hiện nay của công nghệ Tin Học (Information
Technology) cần được đưa vào kiểu mẫu phát triển mới đó. Nhờ vậy, ta mới có
thể nói ASP.NET không phải là ASP. Thật vậy, ASP.NET cung cấp một
phương pháp hoàn toàn khác biệt với phương pháp của ASP.
3. NHỮNG THAY ÐỔI CƠ BẢN:
ASP đã và đang thi hành sứ mạng được giao cho nó để phát triển mạng
một cách tốt đẹp như vậy thì tại sao ta cần phải đổi mới hoàn toàn? Lý do đơn
giản là ASP không còn đáp ứng đủ nhu cầu hiện nay trong lãnh vực phát triển
mạng của công nghệ Tin Học. ASP được thiết kế riêng biệt và nằm ở tầng phiá
trên hệ điều hành Windows và Internet Information Server, do đó các công
dụng của nó hết sức rời rạt và giới hạn.
Trong khi đó, ASP.NET là một cơ cấu trong các cơ cấu của hệ điều hành
Windows dưới dạng nền hay khung .NET (.NET framework), như vậy
ASP.NET không những có thể dùng các object của các ứng dụng cũ mà còn có
thể sử dụng tất cả mọi tài nguyên mà Windows có.
Ta có thể tóm tắc sự thay đổi như sau:
• Tập tin của ASP.NET (ASP.NET file) có extension là .ASPX, còn
tập tin của ASP là .ASP.
• Tập tin của ASP.NET (ASP.NET file) được phân tích ngữ pháp
(parsed) bởi XSPISAPI.DLL, còn tập tin của ASP được phân tích
bởi ASP.DLL.
• ASP.NET là kiểu mẫu lập trình phát động bằng sự kiện (event
driven), còn các trang ASP được thi hành theo thứ tự tuần tự từ trên
xuống dưới.

• ASP.NET xử dụng trình biên dịch (compiled code) nên rất nhanh,
còn ASP dùng trình thông dịch (interpreted code) do đó hiệu suất và
tốc độ phát triển cũng thua sút hẳn.
• ASP.NET yểm trợ gần 25 ngôn ngữ lập trình mới với .NET và chạy
trong môi trường biên dịch (compiled environment), còn ASP chỉ
chấp nhận VBScript và JavaScript nên ASP chỉ là một scripted
language trong môi trường thông dịch(in the interpreter
environment). Không những vậy, ASP.NET còn kết hợp nhuần
nhuyễn với XML (Extensible Markup Language) để chuyển vận các
thông tin (information) qua mạng.
• ASP.NET yểm trợ tất cả các browser và quan trọng hơn nữa là yểm
trợ các thiết bị lưu động (mobile devices). Chính các thiết bị lưu
động, mà mỗi ngày càng phổ biến, đã khiến việc dùng ASP trong
việc phát triển mạng nhằm vươn tới thị trường mới đó trở nên vô
cùng khó khăn.
II. BỘ DỊCH VỤ WEB THẾ HỆ KẾ TIẾP ( NGWSF) :
Hệ điều hành được Microsoft xem là một tập hợp bao gồm nhiều đối tượng
hoạt động tương tác lẫn nhau. Chương trình của bạn cũng là một đối tượng.
Microsoft gọi mô hình này với tên khá phổ biến là COM (Component Object
Model). Tất cả mọi thứ điều quy về đối tượng với phương thức, thuộc tính và các
dịch vụ mà đối tượng có thể cung cấp. Phát triển hơn nửa Microsoft mở rộng
COM thành COM+ cho phép các đối tượng COM mở rộng giao tiếp với nhau trên
mọi nền Windows98, NT/2000/XP, máy chủ Server và máy khách Client đâu đâu
cũng là đối tượng có thể giao tiếp và triệu gọi nhau một cách xuyên suốt.
Với sự buøng nổ của Internet, Microsoft một lần nửa lại đưa ra kiến trúc
COM+ thành mô hình đối tượng cao hơn ảnh hưởng đến toàn bộ hệ điều hành.
Kiến trúc mới này mang tên khung dịch vụ WEB thế hệ kế tiếp (Next Generation
Web Service Framework hay NGWSG. Tuy mang tên Web nhưng thực chất nó đã
ăn sâu trong hệ điều hành. NGWSG bổ sung các dịch vụ mới cho các đối tượng
ứng dụng phân tán COM+ bao gồm:

• Một tập các thư viện lập trình phong phú và thống nhất
• Bộ thực thi chương trình đa ngôn ngữ (multi-language runtime
engine) và bảo vệ an toàn mã thực thi.
• Đơn giản hoá quá trình tạo lập, phân phối và bảo trì ứng dụng
• Tăng tính mềm dẻo và khả chuyển cho các ứng dụng phân tán.
• Bảo vệ các phần mềm hiện có và giảm đầu tư đào tạo.
III. .NET FRAMEWORK
Sở dĩ có chữ .NET trong ASP.NET là vì mọi chức năng ASP.NET có được
là hoàn toàn dựa vào .NET framework, do đó ta cần phải hiểu thấu đáo kiến trúc
hạ tầng của .NET framework để dùng ASP.NET một cách hiệu quả, trong đó quan
trọng nhất là CLR và .NET Framework Class.
1. CLR (COMMON LANGUAGE RUNTIME):
CLR là môi trường được dùng để quản lý sự thi hành các nguồn mã
(manage the execution of code) mà ta đã soạn ra và biên dịch (write and
compile code) trong các ứng dụng. Tuy nhiên khi biên dịch nguồn mã, ta lại
biên dịch chúng ra thành một ngôn ngữ trung gian gọi là Microsoft
Intermediate Language (MSIL). Chính MSIL trung gian này là ngôn ngữ
chung cho tất cả các ngôn ngữ .NET hiện có, do đó chắc bạn cũng đoán ra là
ASP.NET cũng được biên dịch (compile) ra MSIL như mọi ai khác. Trong khi
biên dịch như vậy, các ứng dụng cũng sản xuất ra những thông tin cần thiết để
tự quảng cáo chính mình, ta gọi những thông tin này là metadata. Ðến khi
ta chạy một ứng dụng, CLR sẽ tiếp quản (take-over) và lại biên dịch (compile)
nguồn mã một lần nữa ra thành ngôn ngữ gốc (native language) của máy vi
tính trước khi thi hành những công tác đã được bố trí trong nguồn mã đó.
2. .NET FRAMEWORK CLASSES
Ðiều quan trọng nhất mà ta cần phải nhớ là mọi thứ trong .NET đều là
object, tỷ như các trang ASP.NET, các hộp thông điệp (message box) hay là
nút bấm (button), tất cả đều là object cả. Các object đó được tổ chức lại thành
từng nhóm riêng biệt như trong một thư viện để ta dễ dàng sữ dụng. Ta gọi các
nhóm như vậy là namespaces, và ta sẽ dùng những namespace này để gọi hay

nhập cảng (import) các class cần thiết cho ứng dụng của mình.
IV. CÁC ĐỐI TƯỢNG TRONG ASP.NET :
1. ĐỐI TƯỢNG RESPONSE :
Là đối tượng liên quan đến công việc thông tin từ Server gửi đến trình
duỵêt Web. Response object cho phép Server đáp ứng, trả lời hay thông tin với
Client.
Phương pháp (Method) Write :
Ví dụ sau đây dùng phương pháp (method) Write của Response object để hiển
thị vài hàng chữ ở Client browser:






Chú thích:
Mỗi khi user yêu cầu hiển thị 1 trang Web, ASP.NET tạo ra 1 đối tượng định
hình (instance) từ đối tượng (Object) HttpResponse có chứa đầy đủ đặc tính và
phương pháp (method) cần thiết để thông tin với Client browser. Tên cố định
của instance đó là Response trong đó có phương pháp (method) Write dùng để
viết và hiển thị 1 hàng chữ ở browser.
Ðể ý ký hiệu \> ở cuối mã sau đây. Nếu ta không dùng ký hiệu \ để phân biệt

100%\> và 100%>, ASP.NET sẽ tưởng ta dùng %> để chấm dứt phần script
block và sẽ tạo lỗi.
Response.Write(“


“)
Ký hiệu \ là 1 character sequence đặc biệt với tên thông dụng escape
character dùng để phân biệt các ký hiệu đặc biệt có thể trùng với các ký hiệu
của ASP.NET hay của VB.NET nhưng nếu muốn hiển thị double quotes, ta
dùng double quotes double quotes.
Response.Write(“
“)
Buffering Pages :
ASP.NET dùng buffer để kiểm soát (control) khi nào gởi sản phẩm (output)
tới browser. Ðây cũng là kiểu mẫu chính (default method) ASP.NET dùng, khi
output được buffered, ASP.NET chờ cho tới khi nào tất cả nguồn mã được thi
hành mới gởi tới browser ‘một lần rồi thôi’. Trong kiểu unbuffered output,
mã sẽ gởi tới browser từng cụm hay từng phần một – ở đây muốn nói tới
‘output of each method’.
Nếu ta muốn tắt buffer (turn buffering off), bố trí mã Buffer = false trước khi
gởi đi browser:
Ðể vận dụng hay sử dụng buffer, ta dùng phương pháp (method):
• Clear
• Flush
• End
Phương pháp (method) Clear dùng để xóa (clear) buffer, Flush dùng để gởi
tức khắc nội dung buffer, còn End dùng để chặn (stop) không cho buffer gởi
sản phẩm mới đi mà chỉ cho phép gởi những gì đang chứa trong buffer mà
thôi .
Redirecting Users:
Phương pháp (method) Redirect dùng để chuyển user qua trang Web khác 1
cách gián tiếp.
2. ĐỐI TƯỢNG REQUEST :
Request object dùng để thông tin giữa Server và Client browser. Browser

dùng Request object để gởi thông tin cần thiết tới Server. Giống như Response,
Request object là instance của HttpRequest. Như vậy, Request object đại diện
cho Client khi yêu cầu trang Web, còn Server sẽ dùng vừa Response vừa
Request để đáp ứng yêu cầu hay đòi hỏi thông tin từ Client.
Đối tượng Request cho phép truy xuất tới bất kỳ thông tin nào do user gởi
tới bằng giao thức HTTP như :
– Các thông tin chuẩn nằm trong biến Server
– Các tham số gởi tới bằng phương thức POST
– Các tham số gởi tới bằng phương thức GET
– Các Cookies
– Các Client Certificates
Nếu phương thức gửi từ Form là GET thì query String chứa toàn bộ thông tin
gởi tới như các tham số đi đằng sau dấu chấm hỏi (?) trong hộp địa chỉ
Nếu phương thức gửi tới là POST thì thông tin gửi đi sẽ dấu đi
Tuy vậy, object này không cần thiết vì ASP.NET đã lo lắng, đãm đương hầu
hết trách nhiệm thông tin giữa Server và Client browser dùm ta.
Một ứng dụng quan trọng của Request object là thu thập thông tin của Client
browser. Thường, thông tin của Client browser được gởi đi dưới dạng form
hay querystring (querystring: thông tin gởi kèm vào phần đuôi của request
URL).
Tóm lại, cả 2 kiểu đều được dùng để thu thập thông tin từ Client browser.
Nhưng, ASP.NET dùng Web Form Framework để chăm nom, sắp đặt mọi
yêu cầu (request) của Client browser cho ta.
Cũng cần nhắc ở đây, ta có thể dùng Request để thu thập thông tin về
ServerVariables và Cookies. ServerVariables chứa thông tin của Server tỷ
như IP address hay HTTP protocol, Cookies (dưới hình thức 1 tập tin)
chứa thông tin cần thiết ở chính máy vi tính của user (Client’s computer).
Dưới đây vài biến số (variables) thông dụng trong bộ ServerVariables
Collection:
Variable Công dụng

URL
Chứa thông tin về URL của trang
Web
PATH_INFO Tương tự như URL
PATH_TRANSLATED
Physical path của ASP.NET ở
Server site
SERVER_NAME Tên Web Server, tỷ như cantho
SERVER_SOFTWARE
Tên nhu liệu sử dụng cho Web
Server, tỷ như Microsft-IIS/5.0
3. ĐỐI TƯỢNG SERVER :
Là đối tượng quan trọng cung cấp cho ta một vài sở hữu cơ bản và phương
pháp và được sử dụng trong tất cả mỗi trang ASP mà chúng ta tạo ra.
• Thuộc tính :
ScriptTimeout : Khoảng thời gian dành cho Scrip chạy. Mặc định là 90 giây
• Các dạng thức :
– CreateObject : Tạo một instance của server component.
– HTMLEncode : Mã hoá một chuỗi theo dạng HTML
– MapPath : Ánh xạ đường dẫn ảo (là đường dẫn tuyệt đối trên Server
hiện hành hoặc đường dẫn tuyệt đối đến trang hiện tại) thành đường
dẫn vật lý (Physical path).
– URLLencode : mã hoá một chuỗi (kể cả kí tự Escape) theo quy tắc
mã hoá URL.
4. ĐỐI TƯỢNG APPLICATION :
Là đối tượng có thể lưu trữ thông tin cho việc sử dụng cho tập tin văn bản
ngay cả đáp lại sự kiện. Thường dùng cho biến toàn cục ví dụ như việc đếm số
người truy cập vào một trang Web.
• Các dạng thức :
– Lock : Phương thức này cấm không cho Client khác thay đổi

property của đối tượng Application.
– Unlock : Phương thức này Client thay đổi property của đối tượng
Application.
– Event : gồm có hai event được khai báo trong file Global.asa. Ngoài
ra chúng ta có thể đặt các biến trong đối tượng Application để lưu
những thông tin toàn cục, hay các cờ báo hiệu.
Application_OnStart : Xảy ra khi khởi động ứng dụng.
Application_OnEnd : Xảy ra khi ưng dụng đóng, hay Server shutdown.
5. ĐỐI TƯỢNG SESSION :
Là một đối tượng có thể sử dụng để lưu trữ cả giá trị dữ liệu đơn giản và cả
kết nối dữ liệu. Mỗi Client khi yêu câu truy xuất trang Web trong ứng dụng của
ta là được phân phát một đối tượng Session.
Ta thường dùng đối tượng Session để xác định quyền có thể truy cập vào
trang Web nào đó. Thường dùng vào những trang Login.
• Các thuộc tính :
– SessionID : Trả về SessionID cho User. Mỗi Session sẽ được server
cho một số định danh duy nhất khi nó được tạo ra.
– Timeout : khoảng thời gian tồn tại của Session, tính bằng phút. Mặc
định 20 phút.
• Các dạng thức :
– Abandon : Xoá bỏ một Session, trả lại tài nguên cho hệ thống.
VI. TRUY XUẤT CƠ SỞ DỮ LIỆU :
1. ADO+ HAY ADO.NET LÀ GÌ ?
Trong ADO (ActiveX Data Object) của VB6 ta dùng Connection để nối
chương trình áp dụng của mình với cơ sở dữ liệu và lấy ra một Recordset. Cái
connection ấy vẫn được giữ nguyên trong khi chương trình ta làm việc với
Recordset. Trong ADO.NET của .NET sau khi thiết lập connection với cơ sở
dữ liệu ta copy một hay nhiều Recordset vào Dataset. Các Recordset nầy có thể
có mối liên hệ Master/Slave Relation với nhau. Thí dụ như
Invoice/InvoiceDetails, trong đó các InvoiceDetails liên hệ với Invoice qua

InvoiceID chẳng hạn, tức là InvoiceID là Primary Key của Invoice và cũng là
Foreign Key của InvoiceDetails. Sau đó ta chỉ làm việc với Dataset mà thôi.
Cái connection coi như đã bị cắt đứt. Do đó Dataset được xem như là
disconnected database nho nhỏ nằm trong bộ nhớ.
Cái hay của ADO.NET là khi ta muốn Update Dataset, connection sẽ được tự
động nối lại và dataset sẽ được reconciled với cơ sỡ dữ liệu. Chữ reconcile là
một từ kỹ thuật trong kế toán mà ta hay dùng để nói đến việc so sánh các chi
tiết tiền ra vô của một trương mục giữa sổ sách chúng ta giữ và bảng báo cáo
của nhà băng để điều chỉnh lại các con số trong sổ sách của chúng ta cho giống
như của nhà băng. Nếu ta giữ sổ sách chính xác thì sự khác biệt chỉ là những
transactions (món tiền ra, vô) nhà băng làm mà ta chưa biết như chi phí dịch vụ
của nhà băng, thuế tài chánh .v.v Bên trong Dataset có chứa các trị số cũ của
datafields để dùng vào việc so sánh khi Reconcile các records.
Dataset của ADO.NET cho ta các lợi ích thực tiển như:
• Hoàn toàn trong bộ nhớ: Một Table trong Dataset là một
Array of Rows, nên ta có thể dùng thẳng (direct access) một
record bằng cách nói đến cái Row chứa nó, chớ không cần
phải dùng MoveNext, MovePrev,.v.v.
• Làm nhẹ công tác của cơ sỡ dữ kiện chính: Vai trò của
Dataset đối với cơ sỡ dữ kiện chính (Oracle, Informix,
SQLServer .v.v.) cũng giống như mười năm trước đây ta bắt
đầu dùng Workstations để làm nhẹ công tác của Mainframe
computer. Chuyện nào Workstation làm được thì ta giao cho
nó, vừa nhanh, vừa linh động, khỏi cần phiền đến Mainframe.
Tất cả mọi công tác sửa đổi dữ kiện đều được thực hiện trong
Dataset.
• Dataset có thể được biểu diển bằng một XML (eXtensible
Marked Language): Ta có thể dùng các công cụ của XML
để làm việc với Dataset, trao đổi Dataset giữa các computers
trên mạng dưới dạng XML, thậm chí có thể chứa một cơ sở

dữ kiện nho nhỏ dưới dạng một XML.
2. SỬ DỤNG ADO.NET :
Khai báo và sử dụng không gian tên (namespace) :
Trong ASP.NET để sử dụng một thư viện hay đối tượng nào đó ta cần khai
báo không gian tên (namespace) bằng chỉ thị Import. Nếu không thì khi sử
dụng đối tượng nào đó ta phải khai báo đầy đủ.
Ví dụ:
Để xử lý dữ liệu trong ASP.NET ta có thể khai báo sử dụng các không gian tên
như sau:
Namespace Mục đích
System.Data Các đối tượng và kiểu cơ bản phục
vụ ADO.NET
System.Data.ADO Quản lý các đối tượng chứa và truy
xuất dữ liệu theo OLE DB
System.Data.SQL Các đối tượng xử lý đặc thù cho
CSDL SQL
System.Data.XML Đối tượng xử lý dữ liệu XML
System.Data.SQLTypes Các kiểu dữ liệu của SQL
3. CÁC ĐỐI TƯỢNG TRONG ADO.NET :
a. Đối tượng Connection :
Dùng đối tượng này để kết nối đến CSDL
Cách khai báo :


myConnection= New SqlConnection
(“server=yoursqlservername;database=Pubs;uid=sa” )
myConnection.Open() %>
b. Đối tượng Command : dùng để định nghĩa một câu lệnh hoặc 1 query
mà ta sẽ thực hiện trên data source .

Cách khai báo
Dim myCommand As SqlDataAdapter
myCommand = new SqlDataAdapter(“SELECT * FROM Authors”,
myConnection)
c. Đối tượng DataSet : dùng để sử lý dữ liệu lấy ra từ các nguồn chứa
(data store), đối tượng này cung cấp cách truy xuất đến danh sách các bảng
cột và dòng dữ liệu thong qua những đối tượng con như DataSet ,
DataRelationship, DataTable, DataColumn, DataRow, Datakey.
Cách khai báo :
Dim ds As DataSet = new DataSet()
myCommand.Fill(ds)
‘ Ví dụ dùng để hiện thị thông tin lên MyDataGrid
MyDataGrid.DataSource = ds
MyDataGrid.DataBind()
d. Đối tượng DataView : cho phép tuỳ biến cách nhìn dữ liệu chứa trong
các bảng DataSet. Mục đích chính của DataView là hộ trợ cơ chế rang buộc
dữ liệu. Ta có thể hình dung DataView tương tự như RecordSet trong mô
hình ADO cũ .
Cách khai báo:
MyDataGrid.DataSource=ds.Table(“Authors”).DefaultView
Lưu Ý : Bạn nên nhớ, DataSet không phải là RecordSet. Khái niệm tương
đương với RecordSet cũ là DataView
e. Đối tượng DataReader :
Đối tượng này được xây dựng cho 2 môi trường. Với môi trường
chuyên dụng SQL Server, ta có thể dùng SQLDataReader. Với môi trường
CSDL tổng quát ta dùng ADODataReader. Đối tượng DataReader cho phép
đọc cụ thể từng dòng và cột dữ liệu trong bảng. Chức năng DataReader
tương tự như RecordSet trong ADO cũ, RecordSet cho phép ta lặp và duyệt
qua tất cả các record trong bảng dữ liệu.
PHẦN 3 : GIỚI THIỆU SQL SERVER

I. TỔNG QUAN :
1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN HỆ (RDBMS):
SQL SERVER là một hệ thống quản lý cơ sở dữ liệu (Relational
Database Management System (RDBMS)) sử dụng Transact-SQL để trao
đổi dữ liệu giữa Client computer và SQL Server computer. Một RDBMS
bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ
liệu và các bộ phận khác nhau trong RDBMS.
SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn
lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL
Server có các chức năng :
 Có tính bảo mật dữ liệu.
 Hỗ trợ đa xử lý.
 Đảm bảo các ràng buộc toàn vẹn.
2. CÁC THÀNH PHẦN QUAN TRỌNG TRONG SQL SERVER :
SQL Server được cấu tạo bởi nhiều thành phần như Relational Database
Engine, Analysis Service và English Query… Các thành phần này khi phối
hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp việc lưu trữ và phân
tích dữ liệu một cách dễ dàng.
3. KIẾN TRÚC CLIENT/SERVER :
 Server chứa dòch vụ cơ sở dữ liệu, bảo mật, quản lý.
 Client thông tin với cơ sở dữ liệu qua giao tiếp lập trình ứng dụng
(API- Application Programming Interface).
4. TẠI SAO PHẢI CHỌN SQL SERVER ?
Để chọn DBMS này chúng ta xét nó có phù hợp với ứng dụng không và
chúng tôi đưa ra các so sánh sau (đối với các DBMSs khác như Access,
Oracle):
Đầu tiên chúng ta xét Access :
Access :
 Không có khả năng truy cập đồng thời.
 Kém bảo mật.

 Hạn chế về kích thước dữ liệu (nhỏ hơn 50 M).
Oracle :
 Chi phí có được hệ quản trò cơ sở dữ liệu Oracle cao hơn SQL
Server rất nhiều.
 Dùng cho những ứng dụng rất lớn.
Những khuyết điểm trên của Access và Oracle chính là ưu điểm của SQL
Server. Ngoài ra SQL Server còn rất phổ biến ở nước ta, chương trình chính
xác và thân thiện với sử dụng.
5. CẤU TRÚC VẬT LÝ CỦA MỘT SQL SERVER DATABASE :
Mỗi một database trong SQL Server đều chứa ít nhất một data file
chính(primary), có thể thêm một hay nhiều data file phụ(Secondary) và một
transaction log file.
• Primary data file (thường có phần mở rộng .mdf): đây là file
chính chứa data và những system table.
• Secondary data file(thường có phần mở rộng .ndf): đây là file
phụ thường chỉ sử dụng khi database được phân chia để chứa
trên nhiều đóa.
• Transaction log file(thường có phần mở rộng .ldf): đây là file
ghi lại tất cả những thay đổi diễn ra trong một database và chứa
đầy đủ thông tin để có thể roll back hay roll forward khi cần .
Data trong SQL Server được chứa thành từng Page 8KB và 8 page liên
tục tạo thành một Extent như:
Trước khi SQL Server muốn lưu data vào một table nó cần phải dành
riêng một khoảng trống trong data file cho table đó. Những khoảng trống đó
chính là các extents. Có 2 loại Extents: Mixed Extents (loại hỗn hợp) dùng
để chứa data của nhiều tables trong cùng một Extent và Uniform Exten (loại
thuần nhất) dùng để chứa data của một table. Đầu tiên SQL Server dành
các Page trong Mixed Extent để chứa data cho một table sau đó khi data
tăng trưởng thì SQL dành hẳn một Uniform Extent cho table đó.
6. NGUYÊN TẮC HOẠT ĐỘNG CỦA TRANSACTION LOG TRONG

SQL SERVER :
Transaction log file trong SQL Server dùng để ghi lại các thay đổi xảy ra
trong database. Quá trình này diễn ra: đầu tiên khi có một sự thay đổi data
như Insert, Update, Delete được yêu cầu từ các ứng dụng, SQL Server sẽ tải
data page tương ứng trên memory (vùng bộ nhớ này gọi là data cache), sau
đó data trong data cache được thay đổi ( những trang bò thay đổi còn gọi là
dirty-pagr).Tiếp theo sự thay đổi đều được ghi vào transaction log file cho
nên gọi là Write-ahead log. Cuối cùng thì một quá trình gọi là Check Point
Process sẽ kiểm tra và viết tất cả những transaction đã được commited
(hoàn tất) vào đóa cứng.

7. CHIẾN LƯC SAO LƯU VÀ PHỤC HỒI DỮ LIỆU :
Có một điều mà chúng ta phải chú ý là hầu như bất kỳ database nào
cũng cần được sao lưu và phục hồi. Là một người Database Administrator
cần phải giảm tối đa số lần phục hồi dữ liệu, luôn theo dõi, và kiểm tra
thường xuyên để phát hiện các trục trặc trước khi xảy ra. Phải dự phòng các
biến cố có thể xảy ra và đảm bảo rằng có thể nhanh chóng phục hồi dữ liệu
trong thời gian sớm nhất có thể được.
Các dạng biến cố hay tai hoạ có thể xảy ra là:
• Đóa chứa data file hay Transaction Log File hay System file bò
mất.
• Server bò hư hỏng.
• Những thảm hoạ tự nhiên như bão lụt, động đất, hỏa hoạn.
• Toàn bộ server bò đánh cắp.
• Những lỗi vô ý của user như lỡ tay delete toàn bộ table chẳng
hạn.
• Bò hacker (nếu server có kết nối với internet).
Cơ chế backup database:
Để có thể hiểu các kiểu phục hồi dữ liệu khác nhau chúng ta phải biết các
loại backup trong SQL Server.

– Full Databse Backups : Copy tất cả data files trong một database.
Tất cả những user data và database objects như tables, indexes,
user-defined table đều được backup.
– Differentinal Database Backups : Copy những thay đổi trong tất
cả data files kể từ lần backup gần nhất.
– File Group backup : Copy một data file đơn hay một file group.
– Transaction Log backup : Ghi nhận một cách thứ tự tất cả các
transactions chứa trong transaction log file kể từ lần transaction
log backup gần nhất. Loại backup này cho phép ta phục hồi dữ
liệu trở ngược lại vào một thời điểm nào đó trong quá khứ mà
vẫn đảm bảo tính đồng nhất.
Cơ chế Restore database:
Trước khi Restore database ta phải xác đònh được thứ tự file cần Restore.
Các thông tin này được SQL Server chứa trong msdb database và sẽ cho ta
biết backup device nào, ai backup vào thời điểm nào. Sau đó tiến hành
Restore. Để Restore ta phải Right-click -> All Tasks -> Restore database…
Nếu Restore từ một instance khác của SQL Server hay từ một server khác
ta chọn From device option và chọn backup device (file backup) tương ứng.
8. QUYỀN TRUY CẬP :
Đây là những lệnh quản lý các quyền truy cập lên từng object (table,
view, stored procedure…). Thường có dạng sau:
♦ Grant
♦ Revoke.
♦ Deny.
II. CÁC LỆNH SQL VÀ TRIGGER:
1. CÁC CÂU LỆNH DÙNG TRONG SQL SERVER :
1) Các câu lệnh DDL (Data Definition Language) :
Những lệnh dùng để quản lý các thuộc tính của một database như
đònh nghóa các hàng hoặc cột của một table, hay vò trí data file của một
database thường có dạng.

• Create object_Name
• Alter object_Name
• Drop object_Name
Trong đó :
Object_Name có thể là một table, view, stored procedure, indexes…
Lệnh Alter cho phép ta thay đổi đònh nghóa của một table như thêm(hay
bớt) một cột hay một Constraint…
Lệnh Drop xoá hoàn toàn databse, table, view, stored procedure…
2) Các câu lệnh DML (Data Manipulation Language)
Cho phép người dùng truy vấn và thay đổi dữ liệu như lệnh :
SELECT, INSERT, UPDATE, DELETE.
3) Views.
Đònh nghóa một cách đơn giản thì View trong SQL Server tương tự
như Query trong Access database. View có thể xem như là một table ảo
mà data của nó được select từ một stored query. Đối với người lập trình
thì view không khác chi so với table và có thể đặt ở vò trí của table trong
các câu lệnh SQL. Đặc điểm của View là ta có thể kết nối dữ liệu từ
nhiều table và trả về một recordset đơn.
Nói chung câu lệnh SQL trong View có thể từ rất đơn giản như select
toàn bộ data từ một table cho đến rất phức tạp với nhiều tính năng lập
trình của T-SQL.
4) Các thành phần khác :
 Biến cục bộ : tồn tại trong chính đơn thể chương trình mà nó khai
báo. Ký hiệu bằng dấu “@”.
 Khai báo : DECLARE @varname type
 Gán trò ban đầu : SET @varname=expression
 Có thể dùng biến cục bộ trong câu SELECT.
SELECT @varname=fieldvalue FROM table_name
 Biến toàn cục : Ký hiệu bằng hai dấu “@@”, như
@@FETCH_STATUS

2. TRIGGERS :
1) Khái niệm :
Trigger là một loại stored procedure đặc biệt được tự động thực hiện
như là thành phần của câu lệnh thay đổi data. Trigger được tạo trên một
bảng và kết hợp với các hành động cập nhật data (insert, update, or
delete). Khi một trong những hành động này xuất hiện thì trigger tự
động kích hoạt. Trigger dùng để cài đặt cho các ràng buộc toàn vẹn.
2) Đặc điểm của Trigger :
• Một trigger có thể làm nhiều công việc khác nhau và có thể
được kích hoạt bởi nhiều hơn một event nào như Update, Insert
hay Delete và bên trong trigger ta sẽ viết code để giải quyết
cho từng trường hợp.
• Trigger không thể được tạo ra trên temporary hay system
table.
• Trigger chỉ có thể được kích hoạt một cách tự động bởi một
trong các event Insert, Update, Delete mà không thể chạy
manually được.
• Có thể áp dụng trigger cho View.
• Khi một trigger được kích hoạt thì data mới vừa được insert
hay vừa mới được thay đổi sẽ được chứa trong Inserted table
còn data mới vừa được delete được chứa trong Deleted table.
Đây là 2 table tạm chỉ chứa trên memory và chỉ có giá trò bên
trong trigger mà thôi ( nghóa là chỉ nhìn thấy và được query
trong trigger mà thôi). Ta có thể dùng thông tin trong 2 table
này để so sánh data cũ và mới hoặc kiểm tra xem data mới
vừa thay đổi có hợp lê trước khi commit hay roll back.
3) Tạo trigger :
 Để tạo trigger trên bảng, chúng ta bảo đảm rằng bảng đó đã
tồn tại. Đây là cú pháp câu lệnh tạo trigger :
CREATE TRIGGER trigger_name

ON table_name or view_name
FOR {INSERT | UPDATE | DELETE [, ]}
AS Các câu lệnh sql[RETURN]Như vậy khi ta tạo ra một trigger ta phải chỉ rõ là tạo ra trigger
trên table nào và được trigger khi nào Insert, Update hay Delete.
Sau chử AS là các câu lệnh SQL xử lý công việc.
 Bảng Inserted và Deleted:
Bảng Inserted và Deleted thật sự là hai vùng nhìn (view) của
một nhật ký giao tác (transaction log) mà có cấu trúc giống như
bảng mà trigger được tạo.
Khi câu lệnh này thực hiện thì một bản sao của các dòng đã
được sửa đổi được lưu vào trong nhật ký cùng với một bản sao các
dòng sau khi thay đổi. Những bản sao này luôn có sẵn cho một
trigger dưới dạng bảng deleted và inserted.
 Hàm Update():
Hàm này chỉ có trong trigger với hành động insert hoặc delete.
Nó cho phép một trigger xác đònh liệu một cột đã có thay đổi bởi
câu lệnh insert hoặc update hay chưa. Bằng cách kiểm tra như thế
này mà trigger tránh được việc thực hiện tác vụ không cần thiết.
4) Xoá, thay thế trigger
 Trigger không cho sữa đổi vì thế chúng ta phải xoá một đối tượng
trước khi tạo ra một trigger khác có cùng tên, để xoá trigger
chúng ta sử dụng câu lệnh :
DROP TRIGGER trigger_name
Trigger sẽ được xoá tự động khi bảng mà nó tham chiếu bò xoá.
 Chúng ta không cần phải xóa trigger để thay thế nó, để thay thế
một trigger cho một tác động trên bảng thì cần phải tạo mới
trigger với một tên khác. Trigger củ sẽ bò thay thế bởi trigger mới
và nếu nó không còn có trách nhiệm cho bất kỳ tác động nào nữa

trên bảng thì nó sẽ tự động xoá.
III. STORED PROCEDURES :
1. ĐỊNH NGHĨA :
Stored Procedure là một nhóm câu lệnh Transact-SQL đã được biên dòch
và chứa trong SQL Server dưới một tên nào đó và được xử lý như một đơn
vò (chứ không phải nhiều câu SQL riêng lẻ). Stored proedure có thể được
gọi từ Client, từ stored procedure khác hoặc từ Trigger.
2. TẠI SAO PHẢI DÙNG STORED PROCEDURE? :
Stored procedure cung cấp cho các ứng dụng cơ sở dữ liệu nhiều điểm
thuận lợi qua việc thực thi các xử lý bó (batch) với các câu lệnh SQL lớn và
phức tạp ngay tại Database Server:
 Thực thi nhanh. Sau lần chạy đầu tiên, Stored procedures được lưu
trong bộ nhớ do đó chúng không cần phải được phân tích lại, tối
ưu hóa lại và biên dòch cho các lần gọi chúng sau đó.
 Giảm thông xuất lưu thông trên mạng. Stored procedures có thể
bao gồm hàng trăm các câu lệnh SQL khác nhau, nhưng có thể
thực thi chỉ với một câu lệnh duy nhất. Điều này cho phép giảm
kích thước các lời gọi từ Client đến Server.
 Lập trình module. Procedures cung cấp một phương pháp để cắt
các đoạn mã SQL dài dòng thành những đoạn mã ngắn gọn để dễ
quản lý hơn.
3. CƠ CHẾ THỰC THI STORED PROCEDURES :
Stored Procedures làm cho toàn bộ hệ thống ứng dụng có hiệu suất cao
vì các câu lệnh trong Stored Procedures chỉ được biên dòch và tối ưu một lần
và được lưu trữ trong Database Server nên sự lưu thông trên mạng giảm.
Khi Stored Procedures được thi hành lần đầu tiên thì Server phải có nhiệm
vụ tối ưu và biên dòch nó. Sơ đồ tối ưu và biên dòch đó thì được lưu trong bộ
nhớ cache và do đó nó luôn luôn ở trạng thái sẵn sàng khi có một lời gọi
đến nó vào những lần sau.
Thực thi lần đầu Thực thi lần sau

1. Đònh vò Stored Procedures trên đóa
và nạp vào bộ nhớ cache
1. Đònh vò Stored Procedures trong
cache
2. Thay thế các giá trò cho tham số 2. Thay thế các giá trò cho tham số
3. Phát triển sơ đồ tối ưu
4. Biên dòch sơ đồ tối ưu
5. Thi hành từ cache 3. Thi hành từ cache
4. TẠO STORED PROCEDURES :
Để viết một Stored Procedures, ta cần phải cung cấp một Stored
Procedures với tên duy nhất và sau đó là các câu lệnh SQL.
Cú pháp tổng quát:
CREATE PROC[EDURE]procedure_name [(parameter1,parameter2,…)] hằng tháng, hằng năm … – Trong việc tra cứu : tra cứu tour, tra cứu đòa điểm … – Trong việc thống kê : thống kê tour theo loại tour, thống kê theochi phí … Chương trình được thiết kế xây dựng nhằm mục đích giúp cho những nhà quản lý, quản lý được cáctour mà mình đang theo dõi nhằm mục đích : nhìn nhận và Tóm lại về tác dụng những quátrình hoạt động giải trí của tour trước và sau khi hoạt động giải trí ; tích lũy không thiếu những thôngtin quản trò, ra quyết đònh quản trò kòp thời, đúng chuẩn, hài hòa và hợp lý trên cơ sở cácthông tin được xác đònh dù với số lượng thông tin và tài liệu lớn. PHAÀN 2 : GIỚI THIỆU ASP.NETI. ASP.NET – GIỚI THI Ệ U S Ơ L ƯỢC1. ASP L AØ GÌ ? ASP.NET là Active Server Pages. NET (. NET ở đây là. NET framework ). Nói đơn thuần, ASP.NET là một công nghệ tiên tiến có tính cách mạng dùng để pháttriển những ứng dụng về mạng lúc bấy giờ cũng như trong tương lai ( ASP.NET is arevolutionary technology for developing web applications ). Bạn chú ý quan tâm ở chổASP. NET là một giải pháp tổ chức triển khai hay khung tổ chức triển khai ( framework ) để thiếtlập những ứng dụng rất là hùng mạnh cho mạng dựa trên CLR ( CommonLanguage Runtime ) chứ không phải là một ngôn từ lập trình. Tuy mang họ tên gần giống như ASP cổ xưa nhưng ASP.NET không phảilà ASP. Tuy nhiên ASP.NET được phong cách thiết kế thích hợp với những phiên bản ASPtrước đó. Ta chỉ cần đổi khác rất ít khi chuyển ứng dụng sẵn có từ ASP sangASP. NET. Và một điều mê hoặc nửa là ta hoàn toàn có thể thiết lập bộ ASP.NET chung vớiASP 3.0 chạy trên sever Windows 2000 hay Windows XP mà không cầnthay đổi thông số kỹ thuật của ứng dụng ASP cũ. ASP và ASP.NET hoạt động giải trí độc lậpvới nhau. Vì vậy ta sẽ tận dụng được những ưu điểm mới của ASP.NET màkhông cần phải sửa đổi nhiều. Mặc dù Microsoft chỉ them vào đuôi. NETnhưng kiến trúc của ASP.NET so với ASP phần nhiều thay đổi rất nhiều. 2. KHÁC BIỆT GIỮA ASP.NET VÀ ASP : ASP.NET được phác thảo ( re-design ) lại từ số không, nó được đổi khác tậngốc rễ và tăng trưởng ( develop ) tương thích với nhu yếu lúc bấy giờ cũng như vạch mộthướng đi vững chãi cho tương lai Tin Học. Lý do chính là Microsoft đã quáchán nãn trong việc thêm thắt và tích hợp những tác dụng mới vào những kiểu mẫulập trình hay phong cách thiết kế mạng theo kiểu cổ xưa nên Microsoft nghĩ rằng tốt nhấtlà làm lại một kiểu mẫu trọn vẹn mới thay vì vá víu chổ này chổ nọ vào ASP. Ðó là chưa kể đến nhiều ý tưởng mới sinh ra sau này dựa trên những khái niệmmới mẽ theo khuynh hướng tăng trưởng lúc bấy giờ của công nghệ tiên tiến Tin Học ( InformationTechnology ) cần được đưa vào kiểu mẫu tăng trưởng mới đó. Nhờ vậy, ta mới cóthể nói ASP.NET không phải là ASP. Thật vậy, ASP.NET cung ứng mộtphương pháp trọn vẹn độc lạ với chiêu thức của ASP. 3. NHỮNG THAY ÐỔI CƠ BẢN : ASP đã và đang thi hành sứ mạng được giao cho nó để tăng trưởng mạngmột cách tốt đẹp như vậy thì tại sao ta cần phải thay đổi trọn vẹn ? Lý do đơngiản là ASP không còn phân phối đủ nhu yếu lúc bấy giờ trong lãnh vực phát triểnmạng của công nghệ tiên tiến Tin Học. ASP được phong cách thiết kế riêng không liên quan gì đến nhau và nằm ở tầng phiátrên hệ quản lý Windows và Internet Information Server, do đó những côngdụng của nó rất là rời rạt và số lượng giới hạn. Trong khi đó, ASP.NET là một cơ cấu tổ chức trong những cơ cấu tổ chức của hệ điều hànhWindows dưới dạng nền hay khung. NET (. NET framework ), như vậyASP. NET không những hoàn toàn có thể dùng những object của những ứng dụng cũ mà còn cóthể sử dụng tổng thể mọi tài nguyên mà Windows có. Ta hoàn toàn có thể tóm tắc sự biến hóa như sau : • Tập tin của ASP.NET ( ASP.NET file ) có extension là. ASPX, còntập tin của ASP là. ASP. • Tập tin của ASP.NET ( ASP.NET file ) được nghiên cứu và phân tích ngữ pháp ( parsed ) bởi XSPISAPI.DLL, còn tập tin của ASP được phân tíchbởi ASP.DLL. • ASP.NET là kiểu mẫu lập trình phát động bằng sự kiện ( eventdriven ), còn những trang ASP được thi hành theo thứ tự tuần tự từ trênxuống dưới. • ASP.NET xử dụng trình biên dịch ( compiled code ) nên rất nhanh, còn ASP dùng trình thông dịch ( interpreted code ) do đó hiệu suất vàtốc độ tăng trưởng cũng thua sút hẳn. • ASP.NET yểm trợ gần 25 ngôn từ lập trình mới với. NET và chạytrong môi trường tự nhiên biên dịch ( compiled environment ), còn ASP chỉchấp nhận VBScript và JavaScript nên ASP chỉ là một scriptedlanguage trong môi trường tự nhiên thông dịch ( in the interpreterenvironment ). Không những vậy, ASP.NET còn phối hợp nhuầnnhuyễn với XML ( Extensible Markup Language ) để chuyển vận cácthông tin ( information ) qua mạng. • ASP.NET yểm trợ toàn bộ những browser và quan trọng hơn nữa là yểmtrợ những thiết bị lưu động ( mobile devices ). Chính những thiết bị lưuđộng, mà mỗi ngày càng phổ cập, đã khiến việc dùng ASP trongviệc tăng trưởng mạng nhằm mục đích vươn tới thị trường mới đó trở nên vôcùng khó khăn vất vả. II. BỘ DỊCH VỤ WEB THẾ HỆ KẾ TIẾP ( NGWSF ) : Hệ quản lý và điều hành được Microsoft xem là một tập hợp gồm có nhiều đối tượnghoạt động tương tác lẫn nhau. Chương trình của bạn cũng là một đối tượng người tiêu dùng. Microsoft gọi quy mô này với tên khá phổ cập là COM ( Component ObjectModel ). Tất cả mọi thứ điều quy về đối tượng người tiêu dùng với phương pháp, thuộc tính và cácdịch vụ mà đối tượng người dùng hoàn toàn có thể phân phối. Phát triển hơn nửa Microsoft mở rộngCOM thành COM + được cho phép những đối tượng người dùng COM lan rộng ra tiếp xúc với nhau trênmọi nền Windows98, NT / 2000 / XP, sever Server và máy khách Client đâu đâucũng là đối tượng người dùng hoàn toàn có thể tiếp xúc và triệu gọi nhau một cách xuyên suốt. Với sự buøng nổ của Internet, Microsoft một lần nửa lại đưa ra kiến trúcCOM + thành quy mô đối tượng người tiêu dùng cao hơn tác động ảnh hưởng đến hàng loạt hệ quản lý. Kiến trúc mới này mang tên khung dịch vụ WEB thế hệ tiếp nối ( Next GenerationWeb Service Framework hay NGWSG. Tuy mang tên Web nhưng thực ra nó đãăn sâu trong hệ điều hành quản lý. NGWSG bổ trợ những dịch vụ mới cho những đối tượngứng dụng phân tán COM + gồm có : • Một tập những thư viện lập trình nhiều mẫu mã và thống nhất • Bộ thực thi chương trình đa ngôn ngữ ( multi-language runtimeengine ) và bảo vệ bảo đảm an toàn mã thực thi. • Đơn giản hoá quy trình tạo lập, phân phối và bảo dưỡng ứng dụng • Tăng tính mềm dẻo và khả chuyển cho những ứng dụng phân tán. • Bảo vệ những ứng dụng hiện có và giảm góp vốn đầu tư giảng dạy. III.. NET FRAMEWORKSở dĩ có chữ. NET trong ASP.NET là vì mọi tính năng ASP.NET có đượclà trọn vẹn dựa vào. NET framework, do đó ta cần phải hiểu thấu đáo kiến trúchạ tầng của. NET framework để dùng ASP.NET một cách hiệu suất cao, trong đó quantrọng nhất là CLR và. NET Framework Class. 1. CLR ( COMMON LANGUAGE RUNTIME ) : CLR là thiên nhiên và môi trường được dùng để quản lý sự thi hành những nguồn mã ( manage the execution of code ) mà ta đã soạn ra và biên dịch ( write andcompile code ) trong những ứng dụng. Tuy nhiên khi biên dịch nguồn mã, ta lạibiên dịch chúng ra thành một ngôn từ trung gian gọi là MicrosoftIntermediate Language ( MSIL ). Chính MSIL trung gian này là ngôn ngữchung cho tổng thể những ngôn từ. NET hiện có, do đó chắc bạn cũng đoán ra làASP. NET cũng được biên dịch ( compile ) ra MSIL như mọi ai khác. Trong khibiên dịch như vậy, những ứng dụng cũng sản xuất ra những thông tin thiết yếu đểtự quảng cáo chính mình, ta gọi những thông tin này là metadata. Ðến khita chạy một ứng dụng, CLR sẽ tiếp quản ( take-over ) và lại biên dịch ( compile ) nguồn mã một lần nữa ra thành ngôn từ gốc ( native language ) của máy vitính trước khi thi hành những công tác làm việc đã được sắp xếp trong nguồn mã đó. 2. . NET FRAMEWORK CLASSESÐiều quan trọng nhất mà ta cần phải nhớ là mọi thứ trong. NET đều làobject, tỷ như những trang ASP.NET, những hộp thông điệp ( message box ) hay lànút bấm ( button ), tổng thể đều là object cả. Các object đó được tổ chức triển khai lại thànhtừng nhóm riêng không liên quan gì đến nhau như trong một thư viện để ta thuận tiện sữ dụng. Ta gọi cácnhóm như vậy là namespaces, và ta sẽ dùng những namespace này để gọi haynhập cảng ( import ) những class thiết yếu cho ứng dụng của mình. IV. CÁC ĐỐI TƯỢNG TRONG ASP.NET : 1. ĐỐI TƯỢNG RESPONSE : Là đối tượng người tiêu dùng tương quan đến việc làm thông tin từ Server gửi đến trìnhduỵêt Web. Response object được cho phép Server cung ứng, vấn đáp hay thông tin vớiClient. Phương pháp ( Method ) Write : Ví dụ sau đây dùng chiêu thức ( method ) Write của Response object để hiểnthị vài hàng chữ ở Client browser :Chú thích:Mỗi khi user yêu cầu hiển thị 1 trang Web, ASP.NET tạo ra 1 đối tượng địnhhình (instance) từ đối tượng (Object) HttpResponse có chứa đầy đủ đặc tính vàphương pháp (method) cần thiết để thông tin với Client browser. Tên cố địnhcủa instance đó là Response trong đó có phương pháp (method) Write dùng đểviết và hiển thị 1 hàng chữ ở browser.Ðể ý ký hiệu \> ở cuối mã sau đây. Nếu ta không dùng ký hiệu \ để phân biệt100%\> và 100%>, ASP.NET sẽ tưởng ta dùng %> để chấm dứt phần scriptblock và sẽ tạo lỗi.Response.Write(“”)Ký hiệu \ là 1 character sequence đặc biệt với tên thông dụng escapecharacter dùng để phân biệt các ký hiệu đặc biệt có thể trùng với các ký hiệucủa ASP.NET hay của VB.NET nhưng nếu muốn hiển thị double quotes, tadùng double quotes double quotes.Response.Write(“”)Buffering Pages :ASP.NET dùng buffer để kiểm soát (control) khi nào gởi sản phẩm (output)tới browser. Ðây cũng là kiểu mẫu chính (default method) ASP.NET dùng, khioutput được buffered, ASP.NET chờ cho tới khi nào tất cả nguồn mã được thihành mới gởi tới browser ‘một lần rồi thôi’. Trong kiểu unbuffered output,mã sẽ gởi tới browser từng cụm hay từng phần một – ở đây muốn nói tới’output of each method’.Nếu ta muốn tắt buffer (turn buffering off), bố trí mã Buffer = false trước khigởi đi browser:Ðể vận dụng hay sử dụng buffer, ta dùng phương pháp (method):• Clear• Flush• EndPhương pháp (method) Clear dùng để xóa (clear) buffer, Flush dùng để gởitức khắc nội dung buffer, còn End dùng để chặn (stop) không cho buffer gởisản phẩm mới đi mà chỉ cho phép gởi những gì đang chứa trong buffer màthôi .Redirecting Users:Phương pháp (method) Redirect dùng để chuyển user qua trang Web khác 1cách gián tiếp.2. ĐỐI TƯỢNG REQUEST :Request object dùng để thông tin giữa Server và Client browser. Browserdùng Request object để gởi thông tin cần thiết tới Server. Giống như Response,Request object là instance của HttpRequest. Như vậy, Request object đại diệncho Client khi yêu cầu trang Web, còn Server sẽ dùng vừa Response vừaRequest để đáp ứng yêu cầu hay đòi hỏi thông tin từ Client.Đối tượng Request cho phép truy xuất tới bất kỳ thông tin nào do user gởitới bằng giao thức HTTP như :- Các thông tin chuẩn nằm trong biến Server- Các tham số gởi tới bằng phương thức POST- Các tham số gởi tới bằng phương thức GET- Các Cookies- Các Client CertificatesNếu phương thức gửi từ Form là GET thì query String chứa toàn bộ thông tingởi tới như các tham số đi đằng sau dấu chấm hỏi (?) trong hộp địa chỉNếu phương thức gửi tới là POST thì thông tin gửi đi sẽ dấu điTuy vậy, object này không cần thiết vì ASP.NET đã lo lắng, đãm đương hầuhết trách nhiệm thông tin giữa Server và Client browser dùm ta.Một ứng dụng quan trọng của Request object là thu thập thông tin của Clientbrowser. Thường, thông tin của Client browser được gởi đi dưới dạng formhay querystring (querystring: thông tin gởi kèm vào phần đuôi của requestURL).Tóm lại, cả 2 kiểu đều được dùng để thu thập thông tin từ Client browser.Nhưng, ASP.NET dùng Web Form Framework để chăm nom, sắp đặt mọiyêu cầu (request) của Client browser cho ta.Cũng cần nhắc ở đây, ta có thể dùng Request để thu thập thông tin vềServerVariables và Cookies. ServerVariables chứa thông tin của Server tỷnhư IP address hay HTTP protocol, Cookies (dưới hình thức 1 tập tin)chứa thông tin cần thiết ở chính máy vi tính của user (Client’s computer).Dưới đây vài biến số (variables) thông dụng trong bộ ServerVariablesCollection:Variable Công dụngURLChứa thông tin về URL của trangWebPATH_INFO Tương tự như URLPATH_TRANSLATEDPhysical path của ASP.NET ởServer siteSERVER_NAME Tên Web Server, tỷ như canthoSERVER_SOFTWARETên nhu liệu sử dụng cho WebServer, tỷ như Microsft-IIS/5.03. ĐỐI TƯỢNG SERVER :Là đối tượng quan trọng cung cấp cho ta một vài sở hữu cơ bản và phươngpháp và được sử dụng trong tất cả mỗi trang ASP mà chúng ta tạo ra.• Thuộc tính :ScriptTimeout : Khoảng thời gian dành cho Scrip chạy. Mặc định là 90 giây• Các dạng thức :- CreateObject : Tạo một instance của server component.- HTMLEncode : Mã hoá một chuỗi theo dạng HTML- MapPath : Ánh xạ đường dẫn ảo (là đường dẫn tuyệt đối trên Serverhiện hành hoặc đường dẫn tuyệt đối đến trang hiện tại) thành đườngdẫn vật lý (Physical path).- URLLencode : mã hoá một chuỗi (kể cả kí tự Escape) theo quy tắcmã hoá URL.4. ĐỐI TƯỢNG APPLICATION :Là đối tượng có thể lưu trữ thông tin cho việc sử dụng cho tập tin văn bảnngay cả đáp lại sự kiện. Thường dùng cho biến toàn cục ví dụ như việc đếm sốngười truy cập vào một trang Web.• Các dạng thức :- Lock : Phương thức này cấm không cho Client khác thay đổiproperty của đối tượng Application .- Unlock : Phương thức này Client thay đổi property của đối tượngApplication.- Event : gồm có hai event được khai báo trong file Global.asa. Ngoàira chúng ta có thể đặt các biến trong đối tượng Application để lưunhững thông tin toàn cục, hay các cờ báo hiệu.Application_OnStart : Xảy ra khi khởi động ứng dụng.Application_OnEnd : Xảy ra khi ưng dụng đóng, hay Server shutdown.5. ĐỐI TƯỢNG SESSION :Là một đối tượng có thể sử dụng để lưu trữ cả giá trị dữ liệu đơn giản và cảkết nối dữ liệu. Mỗi Client khi yêu câu truy xuất trang Web trong ứng dụng củata là được phân phát một đối tượng Session .Ta thường dùng đối tượng Session để xác định quyền có thể truy cập vàotrang Web nào đó. Thường dùng vào những trang Login.• Các thuộc tính :- SessionID : Trả về SessionID cho User. Mỗi Session sẽ được servercho một số định danh duy nhất khi nó được tạo ra.- Timeout : khoảng thời gian tồn tại của Session, tính bằng phút. Mặcđịnh 20 phút.• Các dạng thức :- Abandon : Xoá bỏ một Session, trả lại tài nguên cho hệ thống.VI. TRUY XUẤT CƠ SỞ DỮ LIỆU :1. ADO+ HAY ADO.NET LÀ GÌ ?Trong ADO (ActiveX Data Object) của VB6 ta dùng Connection để nốichương trình áp dụng của mình với cơ sở dữ liệu và lấy ra một Recordset. Cáiconnection ấy vẫn được giữ nguyên trong khi chương trình ta làm việc vớiRecordset. Trong ADO.NET của .NET sau khi thiết lập connection với cơ sởdữ liệu ta copy một hay nhiều Recordset vào Dataset. Các Recordset nầy có thểcó mối liên hệ Master/Slave Relation với nhau. Thí dụ nhưInvoice/InvoiceDetails, trong đó các InvoiceDetails liên hệ với Invoice quaInvoiceID chẳng hạn, tức là InvoiceID là Primary Key của Invoice và cũng làForeign Key của InvoiceDetails. Sau đó ta chỉ làm việc với Dataset mà thôi.Cái connection coi như đã bị cắt đứt. Do đó Dataset được xem như làdisconnected database nho nhỏ nằm trong bộ nhớ.Cái hay của ADO.NET là khi ta muốn Update Dataset, connection sẽ được tựđộng nối lại và dataset sẽ được reconciled với cơ sỡ dữ liệu. Chữ reconcile làmột từ kỹ thuật trong kế toán mà ta hay dùng để nói đến việc so sánh các chitiết tiền ra vô của một trương mục giữa sổ sách chúng ta giữ và bảng báo cáocủa nhà băng để điều chỉnh lại các con số trong sổ sách của chúng ta cho giốngnhư của nhà băng. Nếu ta giữ sổ sách chính xác thì sự khác biệt chỉ là nhữngtransactions (món tiền ra, vô) nhà băng làm mà ta chưa biết như chi phí dịch vụcủa nhà băng, thuế tài chánh .v.v Bên trong Dataset có chứa các trị số cũ củadatafields để dùng vào việc so sánh khi Reconcile các records.Dataset của ADO.NET cho ta các lợi ích thực tiển như:• Hoàn toàn trong bộ nhớ: Một Table trong Dataset là mộtArray of Rows, nên ta có thể dùng thẳng (direct access) mộtrecord bằng cách nói đến cái Row chứa nó, chớ không cầnphải dùng MoveNext, MovePrev,.v.v.• Làm nhẹ công tác của cơ sỡ dữ kiện chính: Vai trò củaDataset đối với cơ sỡ dữ kiện chính (Oracle, Informix,SQLServer .v.v.) cũng giống như mười năm trước đây ta bắtđầu dùng Workstations để làm nhẹ công tác của Mainframecomputer. Chuyện nào Workstation làm được thì ta giao chonó, vừa nhanh, vừa linh động, khỏi cần phiền đến Mainframe.Tất cả mọi công tác sửa đổi dữ kiện đều được thực hiện trongDataset.• Dataset có thể được biểu diển bằng một XML (eXtensibleMarked Language): Ta có thể dùng các công cụ của XMLđể làm việc với Dataset, trao đổi Dataset giữa các computerstrên mạng dưới dạng XML, thậm chí có thể chứa một cơ sởdữ kiện nho nhỏ dưới dạng một XML.2. SỬ DỤNG ADO.NET :Khai báo và sử dụng không gian tên (namespace) :Trong ASP.NET để sử dụng một thư viện hay đối tượng nào đó ta cần khaibáo không gian tên (namespace) bằng chỉ thị Import. Nếu không thì khi sửdụng đối tượng nào đó ta phải khai báo đầy đủ.Ví dụ: Để xử lý dữ liệu trong ASP.NET ta có thể khai báo sử dụng các không gian tênnhư sau:Namespace Mục đíchSystem.Data Các đối tượng và kiểu cơ bản phụcvụ ADO.NETSystem.Data.ADO Quản lý các đối tượng chứa và truyxuất dữ liệu theo OLE DBSystem.Data.SQL Các đối tượng xử lý đặc thù choCSDL SQLSystem.Data.XML Đối tượng xử lý dữ liệu XMLSystem.Data.SQLTypes Các kiểu dữ liệu của SQL3. CÁC ĐỐI TƯỢNG TRONG ADO.NET :a. Đối tượng Connection :Dùng đối tượng này để kết nối đến CSDLCách khai báo :b. Đối tượng Command : dùng để định nghĩa một câu lệnh hoặc 1 querymà ta sẽ thực hiện trên data source .Cách khai báoDim myCommand As SqlDataAdaptermyCommand = new SqlDataAdapter(“SELECT * FROM Authors”,myConnection)c. Đối tượng DataSet : dùng để sử lý dữ liệu lấy ra từ các nguồn chứa(data store), đối tượng này cung cấp cách truy xuất đến danh sách các bảngcột và dòng dữ liệu thong qua những đối tượng con như DataSet ,DataRelationship, DataTable, DataColumn, DataRow, Datakey.Cách khai báo :Dim ds As DataSet = new DataSet()myCommand.Fill(ds)‘ Ví dụ dùng để hiện thị thông tin lên MyDataGridMyDataGrid.DataSource = dsMyDataGrid.DataBind()d. Đối tượng DataView : cho phép tuỳ biến cách nhìn dữ liệu chứa trongcác bảng DataSet. Mục đích chính của DataView là hộ trợ cơ chế rang buộcdữ liệu. Ta có thể hình dung DataView tương tự như RecordSet trong môhình ADO cũ .Cách khai báo:MyDataGrid.DataSource=ds.Table(“Authors”).DefaultViewLưu Ý : Bạn nên nhớ, DataSet không phải là RecordSet. Khái niệm tươngđương với RecordSet cũ là DataViewe. Đối tượng DataReader :Đối tượng này được xây dựng cho 2 môi trường. Với môi trườngchuyên dụng SQL Server, ta có thể dùng SQLDataReader. Với môi trườngCSDL tổng quát ta dùng ADODataReader. Đối tượng DataReader cho phépđọc cụ thể từng dòng và cột dữ liệu trong bảng. Chức năng DataReadertương tự như RecordSet trong ADO cũ, RecordSet cho phép ta lặp và duyệtqua tất cả các record trong bảng dữ liệu.PHẦN 3 : GIỚI THIỆU SQL SERVERI. TỔNG QUAN :1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN HỆ (RDBMS):SQL SERVER là một hệ thống quản lý cơ sở dữ liệu (RelationalDatabase Management System (RDBMS)) sử dụng Transact-SQL để traođổi dữ liệu giữa Client computer và SQL Server computer. Một RDBMSbao gồm databases, database engine và các ứng dụng dùng để quản lý dữliệu và các bộ phận khác nhau trong RDBMS.SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớnlên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQLServer có các chức năng : Có tính bảo mật dữ liệu. Hỗ trợ đa xử lý. Đảm bảo các ràng buộc toàn vẹn.2. CÁC THÀNH PHẦN QUAN TRỌNG TRONG SQL SERVER :SQL Server được cấu tạo bởi nhiều thành phần như Relational DatabaseEngine, Analysis Service và English Query… Các thành phần này khi phốihợp với nhau tạo thành một giải pháp hoàn chỉnh giúp việc lưu trữ và phântích dữ liệu một cách dễ dàng.3. KIẾN TRÚC CLIENT/SERVER : Server chứa dòch vụ cơ sở dữ liệu, bảo mật, quản lý. Client thông tin với cơ sở dữ liệu qua giao tiếp lập trình ứng dụng(API- Application Programming Interface).4. TẠI SAO PHẢI CHỌN SQL SERVER ?Để chọn DBMS này chúng ta xét nó có phù hợp với ứng dụng không vàchúng tôi đưa ra các so sánh sau (đối với các DBMSs khác như Access,Oracle):Đầu tiên chúng ta xét Access :Access : Không có khả năng truy cập đồng thời. Kém bảo mật. Hạn chế về kích thước dữ liệu (nhỏ hơn 50 M).Oracle : Chi phí có được hệ quản trò cơ sở dữ liệu Oracle cao hơn SQLServer rất nhiều. Dùng cho những ứng dụng rất lớn.Những khuyết điểm trên của Access và Oracle chính là ưu điểm của SQLServer. Ngoài ra SQL Server còn rất phổ biến ở nước ta, chương trình chínhxác và thân thiện với sử dụng.5. CẤU TRÚC VẬT LÝ CỦA MỘT SQL SERVER DATABASE :Mỗi một database trong SQL Server đều chứa ít nhất một data filechính(primary), có thể thêm một hay nhiều data file phụ(Secondary) và mộttransaction log file.• Primary data file (thường có phần mở rộng .mdf): đây là filechính chứa data và những system table.• Secondary data file(thường có phần mở rộng .ndf): đây là filephụ thường chỉ sử dụng khi database được phân chia để chứatrên nhiều đóa.• Transaction log file(thường có phần mở rộng .ldf): đây là fileghi lại tất cả những thay đổi diễn ra trong một database và chứađầy đủ thông tin để có thể roll back hay roll forward khi cần .Data trong SQL Server được chứa thành từng Page 8KB và 8 page liêntục tạo thành một Extent như:Trước khi SQL Server muốn lưu data vào một table nó cần phải dànhriêng một khoảng trống trong data file cho table đó. Những khoảng trống đóchính là các extents. Có 2 loại Extents: Mixed Extents (loại hỗn hợp) dùngđể chứa data của nhiều tables trong cùng một Extent và Uniform Exten (loạithuần nhất) dùng để chứa data của một table. Đầu tiên SQL Server dànhcác Page trong Mixed Extent để chứa data cho một table sau đó khi datatăng trưởng thì SQL dành hẳn một Uniform Extent cho table đó.6. NGUYÊN TẮC HOẠT ĐỘNG CỦA TRANSACTION LOG TRONGSQL SERVER :Transaction log file trong SQL Server dùng để ghi lại các thay đổi xảy ratrong database. Quá trình này diễn ra: đầu tiên khi có một sự thay đổi datanhư Insert, Update, Delete được yêu cầu từ các ứng dụng, SQL Server sẽ tảidata page tương ứng trên memory (vùng bộ nhớ này gọi là data cache), sauđó data trong data cache được thay đổi ( những trang bò thay đổi còn gọi làdirty-pagr).Tiếp theo sự thay đổi đều được ghi vào transaction log file chonên gọi là Write-ahead log. Cuối cùng thì một quá trình gọi là Check PointProcess sẽ kiểm tra và viết tất cả những transaction đã được commited(hoàn tất) vào đóa cứng.7. CHIẾN LƯC SAO LƯU VÀ PHỤC HỒI DỮ LIỆU :Có một điều mà chúng ta phải chú ý là hầu như bất kỳ database nàocũng cần được sao lưu và phục hồi. Là một người Database Administratorcần phải giảm tối đa số lần phục hồi dữ liệu, luôn theo dõi, và kiểm trathường xuyên để phát hiện các trục trặc trước khi xảy ra. Phải dự phòng cácbiến cố có thể xảy ra và đảm bảo rằng có thể nhanh chóng phục hồi dữ liệutrong thời gian sớm nhất có thể được.Các dạng biến cố hay tai hoạ có thể xảy ra là:• Đóa chứa data file hay Transaction Log File hay System file bòmất.• Server bò hư hỏng.• Những thảm hoạ tự nhiên như bão lụt, động đất, hỏa hoạn.• Toàn bộ server bò đánh cắp.• Những lỗi vô ý của user như lỡ tay delete toàn bộ table chẳnghạn.• Bò hacker (nếu server có kết nối với internet).Cơ chế backup database:Để có thể hiểu các kiểu phục hồi dữ liệu khác nhau chúng ta phải biết cácloại backup trong SQL Server.- Full Databse Backups : Copy tất cả data files trong một database.Tất cả những user data và database objects như tables, indexes,user-defined table đều được backup.- Differentinal Database Backups : Copy những thay đổi trong tấtcả data files kể từ lần backup gần nhất.- File Group backup : Copy một data file đơn hay một file group.- Transaction Log backup : Ghi nhận một cách thứ tự tất cả cáctransactions chứa trong transaction log file kể từ lần transactionlog backup gần nhất. Loại backup này cho phép ta phục hồi dữliệu trở ngược lại vào một thời điểm nào đó trong quá khứ màvẫn đảm bảo tính đồng nhất.Cơ chế Restore database:Trước khi Restore database ta phải xác đònh được thứ tự file cần Restore.Các thông tin này được SQL Server chứa trong msdb database và sẽ cho tabiết backup device nào, ai backup vào thời điểm nào. Sau đó tiến hànhRestore. Để Restore ta phải Right-click -> All Tasks -> Restore database…Nếu Restore từ một instance khác của SQL Server hay từ một server khácta chọn From device option và chọn backup device (file backup) tương ứng.8. QUYỀN TRUY CẬP :Đây là những lệnh quản lý các quyền truy cập lên từng object (table,view, stored procedure…). Thường có dạng sau:♦ Grant♦ Revoke.♦ Deny.II. CÁC LỆNH SQL VÀ TRIGGER:1. CÁC CÂU LỆNH DÙNG TRONG SQL SERVER :1) Các câu lệnh DDL (Data Definition Language) :Những lệnh dùng để quản lý các thuộc tính của một database nhưđònh nghóa các hàng hoặc cột của một table, hay vò trí data file của mộtdatabase thường có dạng.• Create object_Name• Alter object_Name• Drop object_NameTrong đó :Object_Name có thể là một table, view, stored procedure, indexes…Lệnh Alter cho phép ta thay đổi đònh nghóa của một table như thêm(haybớt) một cột hay một Constraint…Lệnh Drop xoá hoàn toàn databse, table, view, stored procedure…2) Các câu lệnh DML (Data Manipulation Language)Cho phép người dùng truy vấn và thay đổi dữ liệu như lệnh :SELECT, INSERT, UPDATE, DELETE.3) Views.Đònh nghóa một cách đơn giản thì View trong SQL Server tương tựnhư Query trong Access database. View có thể xem như là một table ảomà data của nó được select từ một stored query. Đối với người lập trìnhthì view không khác chi so với table và có thể đặt ở vò trí của table trongcác câu lệnh SQL. Đặc điểm của View là ta có thể kết nối dữ liệu từnhiều table và trả về một recordset đơn.Nói chung câu lệnh SQL trong View có thể từ rất đơn giản như selecttoàn bộ data từ một table cho đến rất phức tạp với nhiều tính năng lậptrình của T-SQL.4) Các thành phần khác : Biến cục bộ : tồn tại trong chính đơn thể chương trình mà nó khaibáo. Ký hiệu bằng dấu “@”. Khai báo : DECLARE @varname type Gán trò ban đầu : SET @varname=expression Có thể dùng biến cục bộ trong câu SELECT.SELECT @varname=fieldvalue FROM table_name Biến toàn cục : Ký hiệu bằng hai dấu “@@”, như@@FETCH_STATUS2. TRIGGERS :1) Khái niệm :Trigger là một loại stored procedure đặc biệt được tự động thực hiệnnhư là thành phần của câu lệnh thay đổi data. Trigger được tạo trên mộtbảng và kết hợp với các hành động cập nhật data (insert, update, ordelete). Khi một trong những hành động này xuất hiện thì trigger tựđộng kích hoạt. Trigger dùng để cài đặt cho các ràng buộc toàn vẹn.2) Đặc điểm của Trigger :• Một trigger có thể làm nhiều công việc khác nhau và có thểđược kích hoạt bởi nhiều hơn một event nào như Update, Inserthay Delete và bên trong trigger ta sẽ viết code để giải quyếtcho từng trường hợp.• Trigger không thể được tạo ra trên temporary hay systemtable.• Trigger chỉ có thể được kích hoạt một cách tự động bởi mộttrong các event Insert, Update, Delete mà không thể chạymanually được.• Có thể áp dụng trigger cho View.• Khi một trigger được kích hoạt thì data mới vừa được inserthay vừa mới được thay đổi sẽ được chứa trong Inserted tablecòn data mới vừa được delete được chứa trong Deleted table.Đây là 2 table tạm chỉ chứa trên memory và chỉ có giá trò bêntrong trigger mà thôi ( nghóa là chỉ nhìn thấy và được querytrong trigger mà thôi). Ta có thể dùng thông tin trong 2 tablenày để so sánh data cũ và mới hoặc kiểm tra xem data mớivừa thay đổi có hợp lê trước khi commit hay roll back.3) Tạo trigger : Để tạo trigger trên bảng, chúng ta bảo đảm rằng bảng đó đãtồn tại. Đây là cú pháp câu lệnh tạo trigger :CREATE TRIGGER trigger_nameON table_name or view_nameFOR {INSERT | UPDATE | DELETE [, ]}AS Các câu lệnh sql[RETURN]Như vậy khi ta tạo ra một trigger ta phải chỉ rõ là tạo ra triggertrên table nào và được trigger khi nào Insert, Update hay Delete.Sau chử AS là các câu lệnh SQL xử lý công việc. Bảng Inserted và Deleted:Bảng Inserted và Deleted thật sự là hai vùng nhìn (view) củamột nhật ký giao tác (transaction log) mà có cấu trúc giống nhưbảng mà trigger được tạo.Khi câu lệnh này thực hiện thì một bản sao của các dòng đãđược sửa đổi được lưu vào trong nhật ký cùng với một bản sao cácdòng sau khi thay đổi. Những bản sao này luôn có sẵn cho mộttrigger dưới dạng bảng deleted và inserted. Hàm Update():Hàm này chỉ có trong trigger với hành động insert hoặc delete.Nó cho phép một trigger xác đònh liệu một cột đã có thay đổi bởicâu lệnh insert hoặc update hay chưa. Bằng cách kiểm tra như thếnày mà trigger tránh được việc thực hiện tác vụ không cần thiết.4) Xoá, thay thế trigger Trigger không cho sữa đổi vì thế chúng ta phải xoá một đối tượngtrước khi tạo ra một trigger khác có cùng tên, để xoá triggerchúng ta sử dụng câu lệnh :DROP TRIGGER trigger_nameTrigger sẽ được xoá tự động khi bảng mà nó tham chiếu bò xoá. Chúng ta không cần phải xóa trigger để thay thế nó, để thay thếmột trigger cho một tác động trên bảng thì cần phải tạo mớitrigger với một tên khác. Trigger củ sẽ bò thay thế bởi trigger mớivà nếu nó không còn có trách nhiệm cho bất kỳ tác động nào nữatrên bảng thì nó sẽ tự động xoá.III. STORED PROCEDURES :1. ĐỊNH NGHĨA :Stored Procedure là một nhóm câu lệnh Transact-SQL đã được biên dòchvà chứa trong SQL Server dưới một tên nào đó và được xử lý như một đơnvò (chứ không phải nhiều câu SQL riêng lẻ). Stored proedure có thể đượcgọi từ Client, từ stored procedure khác hoặc từ Trigger.2. TẠI SAO PHẢI DÙNG STORED PROCEDURE? :Stored procedure cung cấp cho các ứng dụng cơ sở dữ liệu nhiều điểmthuận lợi qua việc thực thi các xử lý bó (batch) với các câu lệnh SQL lớn vàphức tạp ngay tại Database Server: Thực thi nhanh. Sau lần chạy đầu tiên, Stored procedures được lưutrong bộ nhớ do đó chúng không cần phải được phân tích lại, tốiưu hóa lại và biên dòch cho các lần gọi chúng sau đó. Giảm thông xuất lưu thông trên mạng. Stored procedures có thểbao gồm hàng trăm các câu lệnh SQL khác nhau, nhưng có thểthực thi chỉ với một câu lệnh duy nhất. Điều này cho phép giảmkích thước các lời gọi từ Client đến Server. Lập trình module. Procedures cung cấp một phương pháp để cắtcác đoạn mã SQL dài dòng thành những đoạn mã ngắn gọn để dễquản lý hơn.3. CƠ CHẾ THỰC THI STORED PROCEDURES :Stored Procedures làm cho toàn bộ hệ thống ứng dụng có hiệu suất caovì các câu lệnh trong Stored Procedures chỉ được biên dòch và tối ưu một lầnvà được lưu trữ trong Database Server nên sự lưu thông trên mạng giảm.Khi Stored Procedures được thi hành lần đầu tiên thì Server phải có nhiệmvụ tối ưu và biên dòch nó. Sơ đồ tối ưu và biên dòch đó thì được lưu trong bộnhớ cache và do đó nó luôn luôn ở trạng thái sẵn sàng khi có một lời gọiđến nó vào những lần sau.Thực thi lần đầu Thực thi lần sau1. Đònh vò Stored Procedures trên đóavà nạp vào bộ nhớ cache1. Đònh vò Stored Procedures trongcache2. Thay thế các giá trò cho tham số 2. Thay thế các giá trò cho tham số3. Phát triển sơ đồ tối ưu4. Biên dòch sơ đồ tối ưu5. Thi hành từ cache 3. Thi hành từ cache4. TẠO STORED PROCEDURES :Để viết một Stored Procedures, ta cần phải cung cấp một StoredProcedures với tên duy nhất và sau đó là các câu lệnh SQL.Cú pháp tổng quát:CREATE PROC[EDURE]procedure_name [(parameter1,parameter2,…)]

Trả lời

Email của bạn sẽ không được hiển thị công khai.