Tài liệu Quản lý tour du lịch: ... Ebook Quản lý tour du lịch
84 trang |
Chia sẻ: huyen82 | Lượt xem: 1717 | Lượt tải: 0
Tóm tắt tài liệu Quản lý tour du lịch, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PHAÀN 1 : TOÅNG QUAN
Giôùi thieäu :
Coâng vieäc quaûn lyù xaûy ra trong moïi lónh vöïc , moïi luùc , moïi nôi nhö caùc baøi toaùn :quaûn lyù nhaân söï ,quaûn lyù vaät tö ,quaûn lyù taøi chính …Trong lónh vöïc quaûn lyù , vieäc xöû lyù caùc thoâng tin nhaän ñöôïc laø moät vaán ñeà heát söùc phöùc taïp vì löôïng thoâng tin nhaän ñöôïc ngaøy caøng lôùn vaø thöôøng xuyeân thay ñoåi , noù luoân luoân laø moät baøi toaùn phöùc taïp , nhaát laø trong vieäc toå chöùc ,saép xeáp cô sôû döõ lieäu sao cho phuø hôïp ,tìm ra nhöõng phöông phaùp tính toaùn toái öu ,vaán ñeà baûo maät döõ lieäu …Tuy nhieân söï ra ñôøi cuûa maùy tính , cuøng vôùi söï phaùt trieån cuûa coâng ngheä thoâng tin ñaõ ñöa ra moät giaûi phaùp hoaøn toaøn môùi giuùp giaûi quyeát ñöôïc nhöõng raéc roái aáy moät caùch nhanh choùng vaø hieäu quaû.
Vaø neáu nhö baïn coù dòp ngoài toång keát ,tính toaùn vaø in baùo caùo cho coâng ty du lòch ,khi khoâng coù söï trôï giuùp cuûa maùy tính thì coâng vieäc ñoù khoâng deã chuùt naøo .Haøng ngaøn nhöõng con soá ,giaáy tôø ,soå saùch …Ñieàu quan troïng laø nhöõng ñoái töôïng ñoù thì luoân luoân laïi caäp nhaät vaø thay ñoåi theo töøng thôøi ñieåm ,moãi laàn thay ñoåi thì phaûi luïc laïi nhöõng giaáy tôø lieân quan vaø söûa laïi .Cho neân vieäc quaûn lyù thoâng tin nhö vaäy laø khoâng khoa hoïc chuùt naøo.
Chính vì lyù do ñoù maø nhöõng ngöôøi laøm tin hoïc phaûi coù nhieäm vuï moâ hình vaø toå chöùc nhöõng thoâng tin ôû theá giôùi thöïc ñöa vaøo maùy tính , ñeå coù theå thöïc hieän vieäc tính toaùn deã daøng ,nhanh choùng vaø chính xaùc hôn.
Muïc ñích – YÙ nghóa ñeà taøi :
Ñeà taøi “Xaây döïng chöông trình quaûn lyù tour du lòch” ñaõ giaûi quyeát caùc vaán ñeà khoù khaên ñoù .Heä thoáng thoâng tin quaûn lyù tour du lòch naøy coù theå giuùp cho vieäc quaûn lyù caùc tour moät caùch chính xaùc vôùi caùc thoâng tin ñöôïc deã daøng caäp nhaät thöôøng xuyeân veà chi phí ,thôøi gian ,nguoàn nhaân löïc …thoâng qua moät qui trình ñònh saún vaø giuùp cho ngöôøi quaûn lyù coù theå naém baét ñöôïc ñaày ñuû thoâng tin ñeå deã daøng xöû lyù kòp thôøi , moïi luùc ,moïi nôi.
Chöông trình ñöôïc xaây döïng nhaèm giuùp cho caùc nhaø quaûn lyù :
- Trong vieäc ghi nhaän döõ lieäu : nhaäp vaøo moät tour môùi moät caùch heä thoáng , coù toå chöùc ñònh saún trong chöông trình .
Trong vieäc tính toaùn : tính toaùn ñöôïc toång doanh thu cuûa caùc tour haèng thaùng,haèng naêm…
Trong vieäc tra cöùu : tra cöùu tour ,tra cöùu ñòa ñieåm …
Trong vieäc thoáng keâ : thoáng keâ tour theo loaïi tour ,thoáng keâ theo chi phí …
Chöông trình ñöôïc xaây döïng nhaèm giuùp cho caùc nhaø quaûn lyù ,quaûn lyù ñöôïc caùc tour maø mình ñang theo doõi nhaèm : ñaùnh giaù vaø keát luaän veà keát quaû caùc quaù trình hoaït ñoäng cuûa tour tröôùc vaø sau khi hoaït ñoäng ; thu thaäp ñaày ñuû caùc thoâng tin quaûn trò ,ra quyeát ñònh quaûn trò kòp thôøi ,chính xaùc ,hôïp lyù treân cô sôû caùc thoâng tin ñöôïc xaùc ñònh duø vôùi soá löôïng thoâng tin vaø döõ lieäu lôùn .
PHAÀN 2 : GIỚI THIỆU ASP.NET
ASP.NET – GIỚI THIỆU SƠ LƯỢC
1. ASP laø 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:
sub Page_Load(obj as object, e as eventargs)dim i as integer'Dùng phương pháp (method) Write để hiển thị vài hàng chữ sau đâyResponse.Write("Using Write method of Response object")Response.Write("")Response.Write("Hello Thanh")end sub
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 :
Đối tượng Connection :
Dùng đối tượng này để kết nối đến CSDL
Cách khai báo :
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.
PHAÀN 3 : GIÔÙI THIEÄU SQL SERVER
Toång quan :
Heä quaûn trò cô sôû döõ lieäu quan heä (RDBMS):
SQL SERVER laø moät heä thoáng quaûn lyù cô sôû döõ lieäu (Relational Database Management System (RDBMS)) söû duïng Transact-SQL ñeå trao ñoåi döõ lieäu giöõa Client computer vaø SQL Server computer. Moät RDBMS bao goàm databases, database engine vaø caùc öùng duïng duøng ñeå quaûn lyù döõ lieäu vaø caùc boä phaän khaùc nhau trong RDBMS.
SQL Server ñöôïc toái öu ñeå coù theå chaïy treân moâi tröôøng cô sôû döõ lieäu raát lôùn leân ñeán Tera-Byte vaø coù theå phuïc vuï cuøng luùc cho haøng ngaøn user. SQL Server coù caùc chöùc naêng :
Coù tính baûo maät döõ lieäu.
Hoã trôï ña xöû lyù.
Ñaûm baûo caùc raøng buoäc toaøn veïn.
Caùc thaønh phaàn quan troïng trong SQL Server :
SQL Server ñöôïc caáu taïo bôûi nhieàu thaønh phaàn nhö Relational Database Engine, Analysis Service vaø English Query… Caùc thaønh phaàn naøy khi phoái hôïp vôùi nhau taïo thaønh moät giaûi phaùp hoaøn chænh giuùp vieäc löu tröõ vaø phaân tích döõ lieäu moät caùch deã daøng.
Kieán truùc client/server:
Server chöùa dòch vuï cô sôû döõ lieäu, baûo maät, quaûn lyù.
Client thoâng tin vôùi cô sôû döõ lieäu qua giao tieáp laäp trình öùng duïng (API- Application Programming Interface).
4. Taïi sao phaûi choïn SQL SERVER ?
Ñeå choïn DBMS naøy chuùng ta xeùt noù coù phuø hôïp vôùi öùng duïng khoâng vaø chuùng toâi ñöa ra caùc so saùnh sau (ñoái vôùi caùc DBMSs khaùc nhö Access, Oracle):
Ñaàu tieân chuùng ta xeùt Access :
Access :
Khoâng coù khaû naêng truy caäp ñoàng thôøi.
Keùm baûo maät.
Haïn cheá veà kích thöôùc döõ lieäu (nhoû hôn 50 M).
Oracle :
Chi phí coù ñöôïc heä quaûn trò cô sôû döõ lieäu Oracle cao hôn SQL Server raát nhieàu.
Duøng cho nhöõng öùng duïng raát lôùn.
Nhöõng khuyeát ñieåm treân cuûa Access vaø Oracle chính laø öu ñieåm cuûa SQL Server. Ngoaøi ra SQL Server coøn raát phoå bieán ôû nöôùc ta, chöông trình chính xaùc vaø thaân thieän vôùi söû duïng.
5. Caáu truùc vaät lyù cuûa moät SQL Server Database :
Moãi moät database trong SQL Server ñeàu chöùa ít nhaát moät data file chính(primary), coù theå theâm moät hay nhieàu data file phuï(Secondary) vaø moät transaction log file.
Primary data file (thöôøng coù phaàn môû roäng .mdf): ñaây laø file chính chöùa data vaø nhöõng system table.
Secondary data file(thöôøng coù phaàn môû roäng .ndf): ñaây laø file phuï thöôøng chæ söû duïng khi database ñöôïc phaân chia ñeå chöùa treân nhieàu ñóa.
Transaction log file(thöôøng coù phaàn môû roäng .ldf): ñaây laø file ghi laïi taát caû nhöõng thay ñoåi dieãn ra trong moät database vaø chöùa ñaày ñuû thoâng tin ñeå coù theå roll back hay roll forward khi caàn .
Data trong SQL Server ñöôïc chöùa thaønh töøng Page 8KB vaø 8 page lieân tuïc taïo thaønh moät Extent nhö:
Tröôùc khi SQL Server muoán löu data vaøo moät table noù caàn phaûi daønh rieâng moät khoaûng troáng trong data file cho table ñoù. Nhöõng khoaûng troáng ñoù chính laø caùc extents. Coù 2 loaïi Extents: Mixed Extents (loaïi hoãn hôïp) duøng ñeå chöùa data cuûa nhieàu tables trong cuøng moät Extent vaø Uniform Exten (loaïi thuaàn nhaát) duøng ñeå chöùa data cuûa moät table. Ñaàu tieân SQL Server daønh caùc Page trong Mixed Extent ñeå chöùa data cho moät table sau ñoù khi data taêng tröôûng thì SQL daønh haún moät Uniform Extent cho table ñoù.
6. Nguyeân Taéc Hoaït Ñoäng Cuûa Transaction Log Trong SQL Server :
Transaction log file trong SQL Server duøng ñeå ghi laïi caùc thay ñoåi xaûy ra trong database. Quaù trình naøy dieãn ra: ñaàu tieân khi coù moät söï thay ñoåi data nhö Insert, Update, Delete ñöôïc yeâu caàu töø caùc öùng duïng, SQL Server seõ taûi data page töông öùng treân memory (vuøng boä nhôù naøy goïi laø data cache), sau ñoù data trong data cache ñöôïc thay ñoåi ( nhöõng trang bò thay ñoåi coøn goïi laø dirty-pagr).Tieáp theo söï thay ñoåi ñeàu ñöôïc ghi vaøo transaction log file cho neân goïi laø Write-ahead log. Cuoái cuøng thì moät quaù trình goïi laø Check Point Process seõ kieåm tra vaø vieát taát caû nhöõng transaction ñaõ ñöôïc commited (hoaøn taát) vaøo ñóa cöùng.
Chieán löôïc sao löu vaø phuïc hoài döõ lieäu:
Coù moät ñieàu maø chuùng ta phaûi chuù yù laø haàu nhö baát kyø database naøo cuõng caàn ñöôïc sao löu vaø phuïc hoài. Laø moät ngöôøi Database Administrator caàn phaûi giaûm toái ña soá laàn phuïc hoài döõ lieäu, luoân theo doõi, vaø kieåm tra thöôøng xuyeân ñeå phaùt hieän caùc truïc traëc tröôùc khi xaûy ra. Phaûi döï phoøng caùc bieán coá coù theå xaûy ra vaø ñaûm baûo raèng coù theå nhanh choùng phuïc hoài döõ lieäu trong thôøi gian sôùm nhaát coù theå ñöôïc.
Caùc daïng bieán coá hay tai hoaï coù theå xaûy ra laø:
Ñóa chöùa data file hay Transaction Log File hay System file bò maát.
Server bò hö hoûng.
Nhöõng thaûm hoaï töï nhieân nhö baõo luït, ñoäng ñaát, hoûa hoaïn.
Toaøn boä server bò ñaùnh caép.
Nhöõng loãi voâ yù cuûa user nhö lôõ tay delete toaøn boä table chaúng haïn.
Bò hacker (neáu server coù keát noái vôùi internet).
Cô cheá backup database:
Ñeå coù theå hieåu caùc kieåu phuïc hoài döõ lieäu khaùc nhau chuùng ta phaûi bieát caùc loaïi backup trong SQL Server.
Full Databse Backups : Copy taát caû data files trong moät database. Taát caû nhöõng user data vaø database objects nhö tables, indexes, user-defined table ñeàu ñöôïc backup.
Differentinal Database Backups : Copy nhöõng thay ñoåi trong taát caû data files keå töø laàn backup gaàn nhaát.
File Group backup : Copy moät data file ñôn hay moät file group.
Transaction Log backup : Ghi nhaän moät caùch thöù töï taát caû caùc transactions chöùa trong transaction log file keå töø laàn transaction log backup gaàn nhaát. Loaïi backup naøy cho pheùp ta phuïc hoài döõ lieäu trôû ngöôïc laïi vaøo moät thôøi ñieåm naøo ñoù trong quaù khöù maø vaãn ñaûm baûo tính ñoàng nhaát.
Cô cheá Restore database:
Tröôùc khi Restore database ta phaûi xaùc ñònh ñöôïc thöù töï file caàn Restore. Caùc thoâng tin naøy ñöôïc SQL Server chöùa trong msdb database vaø seõ cho ta bieát backup device naøo, ai backup vaøo thôøi ñieåm naøo. Sau ñoù tieán haønh Restore. Ñeå Restore ta phaûi Right-click -> All Tasks -> Restore database…
Neáu Restore töø moät instance khaùc cuûa SQL Server hay töø moät server khaùc ta choïn From device option vaø choïn backup device (file backup) töông öùng.
8. Quyeàn truy caäp :
Ñaây laø nhöõng leänh quaûn lyù caùc quyeàn truy caäp leân töøng object (table, view, stored procedure…). Thöôøng coù daïng sau:
Grant
Revoke.
Deny.
Caùc Leänh SQL vaø Trigger:
Caùc caâu leänh duøng trong SQL Server :
Caùc caâu leänh DDL (Data Definition Language) :
Nhöõng leänh duøng ñeå quaûn lyù caùc thuoäc tính cuûa moät database nhö ñònh nghóa caùc haøng hoaëc coät cuûa moät table, hay vò trí data file cuûa moät database thöôøng coù daïng.
Create object_Name
Alter object_Name
Drop object_Name
Trong ñoù :
Object_Name coù theå laø moät table, view, stored procedure, indexes…
Leänh Alter cho pheùp ta thay ñoåi ñònh nghóa cuûa moät table nhö theâm(hay bôùt) moät coät hay moät Constraint…
Leänh Drop xoaù hoaøn toaøn databse, table, view, stored procedure…
Caùc caâu leänh DML (Data Manipulation Language)
Cho pheùp ngöôøi duøng truy vaán vaø thay ñoåi döõ lieäu nhö leänh : SELECT, INSERT, UPDATE, DELETE.
Views.
Ñònh nghóa moät caùch ñôn giaûn thì View trong SQL Server töông töï nhö Query trong Access database. View coù theå xem nhö laø moät table aûo maø data cuûa noù ñöôïc select töø moät stored query. Ñoái vôùi ngöôøi laäp trình thì view khoâng khaùc chi so vôùi table vaø coù theå ñaët ôû vò trí cuûa table trong caùc caâu leänh SQL. Ñaëc ñieåm cuûa View laø ta coù theå keát noái döõ lieäu töø nhieàu table vaø traû veà moät recordset ñôn.
Noùi chung caâu leänh SQL trong View coù theå töø raát ñôn giaûn nhö select toaøn boä data töø moät table cho ñeán raát phöùc taïp vôùi nhieàu tính naêng laäp trình cuûa T-SQL.
Caùc thaønh phaàn khaùc :
Bieán cuïc boä : toàn taïi trong chính ñôn theå chöông trình maø noù khai baùo. Kyù hieäu baèng daáu “@”.
Khai baùo : DECLARE @varname type
Gaùn trò ban ñaàu : SET @varname=expression
Coù theå duøng bieán cuïc boä trong caâu SELECT.
SELECT @varname=fieldvalue FROM table_name
Bieán toaøn cuïc : Kyù hieäu baèng hai daáu “@@”, nhö @@FETCH_STATUS
Triggers :
Khaùi nieäm :
Trigger laø moät loaïi stored procedure ñaëc bieät ñöôïc töï ñoäng thöïc hieän nhö laø thaønh phaàn cuûa caâu leänh thay ñoåi data. Trigger ñöôïc taïo treân moät baûng vaø keát hôïp vôùi caùc haønh ñoäng caäp nhaät data (insert, update, or delete). Khi moät trong nhöõng haønh ñoäng naøy xuaát hieän thì trigger töï ñoäng kích hoaït. Trigger duøng ñeå caøi ñaët cho caùc raøng buoäc toaøn veïn.
Ñaëc ñieåm cuûa Trigger :
Moät trigger coù theå laøm nhieàu coâng vieäc khaùc nhau vaø coù theå ñöôïc kích hoaït bôûi nhieàu hôn moät event naøo nhö Update, Insert hay Delete vaø beân trong trigger ta seõ vieát code ñeå giaûi quyeát cho töøng tröôøng hôïp.
Trigger khoâng theå ñöôïc taïo ra treân temporary hay system table.
Trigger chæ coù theå ñöôïc kích hoaït moät caùch töï ñoäng bôûi moät trong caùc event Insert, Update, Delete maø khoâng theå chaïy manually ñöôïc.
Coù theå aùp duïng trigger cho View.
Khi moät trigger ñöôïc kích hoaït thì data môùi vöøa ñöôïc insert hay vöøa môùi ñöôïc t._.
Các file đính kèm theo tài liệu này:
- baocao.aspx.doc