Luận văn Chiến lược và giải pháp để xây dựng chính phủ điện tử

Chiến lược và giải pháp để xây dựng chính phủ điện tử Các thành phần của view thường là Một tập con các bảng và cột cảu một bảng nền hợp hai hay nhiều bảng nền Kết hai hay nhiều bảng nền

pdf114 trang | Chia sẻ: baoanh98 | Lượt xem: 723 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Chiến lược và giải pháp để xây dựng chính phủ điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
vaø trình duyeät khaùch(Client browser). Browser duøng Ñoái töôïng Request ñeå gôûi thoâng tin caàn thieát tôùi Server. Gioáng nhö Response, Ñoái töôïng Request laø tröôøng hôïp (instance) cuûa HttpRequest. Nhö vaäy, Ñoái töôïng Request ñaïi dieän cho Client khi yeâu caàu trang Web, coøn Server seõ duøng vöøa Response vöøa Request ñeå ñaùp öùng yeâu caàu hay ñoøi hoûi thoâng tin töø Client. Kieåm tra trình duyeät Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 85 SVTH : Haø Minh Chaùnh Thuoäc tính Browser cuûa ñoái töôïng Request ñem laïi thoâng tin chi tieát veà trình duyeät khaùch(Client Browser) Taäp hôïp Form (Form Collection) Ta coù theå söû duïng taäp hôïp Form cho vieäc thu thaäp taát caû vieäc nhaäp töø moät form HTML. Ñoái töôïng Form thì ñöôïc chæ thò bôûi HTML hoaëc ASP ID cuûa töøng ñoái töôïng. Ví duï, text box sau ñaây, coù theå truy caäp trong ñoái töôïng Form baèng caùch söû duïng moät caâu nhö sau: String strPhoneNumber = Request.Form[“Phone”]; Ñoái töôïg Form laø loaïi NameValueCollection cuûa .NET vaø ñöôïc di truù thöø nhöõng yeâu caàu HTTP POST. Taäp hôïp QueryString(QueryString Collection) Töông töï nhö ñoái töôïng Form, ñoái töôïng QueryString bao goàm moät taäp hôïp cuûa taát caû caù thoâng soá ñöôïc ñöa ra trong moät yeâu caàu HTTP GET. Ví duï chaúng haïn, ta coù theå coù moät lieân keát trong moät trang gioáng nhö sau: file mycompany.aspx coù theå truy caäp nhöõng thoâng soá baèng caùch söû duïng maõ nhö sau: String strUsername = Request.QueryString[“username”]; String strPassword = Request.QueryString[“password”]; Đối tượng QueryString cũng laø một dạng NameValueCollection của .NET Cuõng caàn nhaéc ôû ñaây, ta coù theå duøng Request ñeå thu thaäp thoâng tin veà ServerVariables vaø Cookies. ServerVariables chöùa thoâng tin cuûa Server tyû nhö IP address hay HTTP protocol, ... Cookies (döôùi hình thöùc moät taäp tin) chöùa thoâng tin caàn thieát ôû chính maùy vi tính cuûa user (Client's computer). Döôùi ñaây vaøi bieán soá (variables) thoâng duïng trong boä ServerVariables Collection: Variable Coâng duïng URL chöùa thoâng tin veà URL cuûa trang Web PATH_INFO töông töï nhö URL PATH_TRANSLATED Ñöôøng daãn vaät lyù cuûa ASP.NET ôû Server site SERVER_NAME teân Web Server SERVER_SOFTWARE teân nhu lieäu söû duïng cho Web Server, tyû nhö Microsft-IIS/5.0 Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 86 SVTH : Haø Minh Chaùnh 3. Ñoái töôïng Page Ñoái töôïng Page goàm taát caû ñaëc tính (properties), phöông phaùp (method) duøng cho caùc trang ASP.NET vaø xuaát xöù töø Page class ôû .NET framework. Ta thaáy, caùc trang ASP.NET laø nhöõng ñoái töôïng con(child objects) cuûa ñoái tuôïng Page . Moïi ñaëc tính (properties) vaø phöông phaùp (method) ta ñònh nghóa trong trang ASP.NET trôû thaønh thaønh vieân trang Web, nhö vaäy khi ta taïo ra moät trang Web khaùc töø trang Web thöù nhaát, noù seõ thöøa keá moïi ñaëc tính (properties) vaø phöông phaùp (method) theo kieåu ... 'cha truyeàn con noái'. Page object gồm vài thành viên cơ bản, như: • Load • IsPostBack • Databind Load duøng ñeå khôûi ñoäng (fire, start or activate) khi trang Web baét ñaàu hieån thò ôû browser. IsPostBack cho ta bieát form ôû trang Web ñaõ ñöôïc gôûi ñi tôùi cuøng trang Web hay khoâng? Databind noái keát moïi döõ kieän (data) töø cô sôû döõ lieäu (database) vôùi coâng cuï (controls) ôû trang Web. Ta seõ tham khaûo Databind ôû baøi noùi veà Database. Caùc phöông phaùp: - MapPath Phöông phaùp MapPath bieán ñoåi nhöõng filename töø moät thö muïc aûo, nhö Web server nhaän ra chuùng, trong nhöõng ñöôøng daãn vaät lyù. Chaúng haïn, ví duï 3.1 sau ñaây söû duïng Response.WriteFile vaø nhöõng phöông phaùp MapPath cho vieäc xuaát nhöõng noäi dung cuûa moät file text tôùi moät trình duyeät Web. Veà coâng vieäc cuûa ví duï naøy, myfile.txt phaûi truù nguï treân thö muïc vaät lyù töông öùng vôùi thö muïc aûo coù teân beginasp. Ví duï 3.1: WriteFile.aspx: Xuaát file myfile.txt vaøo trong trình duyeät Web Đây là một file text Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 87 SVTH : Haø Minh Chaùnh - ResolveUrl Ta coù theå söû duïng phöông phaùp ResolveUrl cho vieäc aùnh xaï teân thö muïc aûo hieän taïi treân moät trang HTML. Chaúng haïn, ResolveUrl(“login.aspx”) seõ traû veà “\beginasp\login.aspx” cho döï aùn(project), nhö ví duï 7.2 nhö sau. Ví dụ 3.2: Resolve.aspx: Giải quyết đường dẫn của người sử dụng tới trang Login runat=“server” void ResolveClicked(Object sender, EventArgs e) { Response.Write(ResolveUrl(“login.aspx”)); } <asp:Button text=“ResolveLoginPage” onclick=“ResolveClicked” runat=“server” /> • Thuoäc tính User(User Property) Ta coù theå söû duïng thuoäc tính User cuûa ñoái töôïng Page cho vieäc xaùc ñònh nhaän daïng an ninh baûo maät cuûa ngöôøi söû duïng töø xa. 4. Đối tượng Session Ñoái töôïng Session cho pheùp ta löu giöõ thoâng tin veà ... 'moät ngöôøi' döôùi caùc daïng nhö bieán soá (variables), objects, strings hay ... baát cöù loaïi thoâng tin naøo coù dính daùng tôùi hoï taïi moät choå naøo ñoù ôû Server trong luùc hoï 'rong chôi' trong site cuûa ta. Chæ khi naøo ngöôøi löôùt maïng boû ta 'sang ... ngang' hay nhaûy qua moät site khaùc, baáy giôø Session môùi keát thuùc, moïi thoâng tin veà ... 'ngöôøi aáy' ñeàu ñöôïc xoaù saïch vaø ngöôøi aáy trôû thaønh 'ngöôøi döng'. • Caùc thuoäc tính Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 88 SVTH : Haø Minh Chaùnh - SessionID: Traû veà SessionID cho user. Moãi session seõ ñöôïc server cho moät soá ñònh danh duy nhaát khi noù ñöôïc taïo ra. - Timeout: Khoaûng thôøi gian toàn taïi cuûa session, tính baèng phuùt. Maëc ñònh 20 phuùt • Caùc daïng thöùc - Abandon: Xoaù boû moät ñoái töôïng session, traû laïi taøi nguyeân cho heä thoáng 5. Ñoái töôïng HttpCookie (HttpCookie Object) Cookie: Cookie chæ laø moät taäp tin nhoû ôû maùy vi tính cuûa user trong ñoù chöùa moïi thoâng tin ñaëc tröng cho moät maïng naøo ñoù, tyû nhö teân ngöôøi söû duïng vaø maät maõ (username and password) nhaèm löu tröõ thoâng tin caù bieät lieân quan ñeán töøng user moät khi user löôùt treân maïng (customize a user's visit to a site). Ñoái töôïng HttpCookie cung caáp caùc phöông phaùp (method) ñeå taïo ra vaø vaän duïng nhöõng cookies ñoù. Ta coù theå duøng HttpCookie Object ñeå kieåm tra caùc ñaëc tính (properties) cuûa töøng cookie. Tuy nhieân, phöông phaùp (method) duøng Request vaø Response Objects laø caùc phöông phaùp (method) thoâng duïng nhaát ñeå vaän duïng cookie, caû hai ñeàu coù ñaëc tính (properties) Cookies maø giaù trò cuûa noù lieân quan (it returns a reference to) ñeán HttpCookie Object. Taïo ra Cookies Ta duøng Response Object ñeå taïo ra Cookies vôùi 2 caùch sau: • Taïo nhieàu Cookies, moãi cookie keøm vôùi moät giaù trò (goïi laø Cookies ña daïng, ñôn giaù trò - multiple Cookies, each with a single value) • Taïo moät Cookie vôùi nhieàu caëp key/value (goïi laø Cookie ñôn daïng, ña giaù trò) Ñaùo haïn (Expires) Cookies Ta duøng thuoäc tính Expires ñeå thieát laäp thôøi gian keát thuùc cho moät Cookie ™ Ví dụ: Thieát laäp cho cookie keát thuùc trong 1 phuùt DateTime dtNow = DateTime.Now; TimeSpan tsMinute = new TimeSpan(0, 0, 1, 0); Cookie.Expires = dtNow + tsMinute; Nhöõng ñaëc tính (properties) cao caáp cuûa ñoái töôïng HttpCookie Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 89 SVTH : Haø Minh Chaùnh Ñaëc tính Mieâu taû Domain Duøng ñeå giôùi haïn vieäc söû duïng cookies ôû moät domain ta chæ ñònh, tyû nhö www.myserver.com Path Duøng töông töï nhö Domain, nhöng giôùi haïn vieäc söû duïng cookies ôû path chæ ñònh naøo ñoù trong Server cuùa ta. Secure Baùo cho ASP.NET bieát neân chuyeån cookie 1 caùch an toaøn hay khoâng vaø thöôøng chæ xaûy ra ở treân HTTPS protocol. Giaù trò maëc ñònh (default) cuûa Secure laø False. HasKeys Baùo cho ta bieát Cookie duøng kieåu 'đña daïng, ñôn giaù trò ' vôùi caùc caëp key/value. 6. Ñoái töôïng HttpApplication( Application Object) Ta coù theå söû duïng Application Object ñeå cho pheùp nhieàu ngöôøi cuøng söû duïng moät öùng duïng chia seû thoâng tin thoâng tin vôùi nhau. Bôûi vì ñoái töôïng Application ñöôïc duøng chung bôûi nhieàu ngöôøi söû duïng, do ñoù ñoái töôïng coù 2 daïng Lock vaø Unlock ñeå caám khoâng cho nhieàu user ñoàng thôøi thay ñoåi thuoäc tính cuûa ñoái töôïng naøy, caùc bieán application laø toaøn cuïc, coù taùc duïng treân toaøn öùng duïng. ™ Ví dụ: HitCounter.aspx: Đếm số lần một Web site được viếng thăm <% if (null = = Application[“Hits”]) { Application.Lock(); Application[“Hits”] = 0; Application.UnLock(); } int nHits = (int) Application[“Hits”]; nHits = nHits + 1; Application.Lock(); Application[“Hits”] = nHits; Application.UnLock(); %> Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 90 SVTH : Haø Minh Chaùnh Site này đã được viếng thăm time 7. Ñoái töôïng HttpServerUtility(HttpServerUtility Object) • HttpServerUtility Object ñöôïc duøng ñeå cung caáp nhieàu 'helper methods' (Caùc phöông phaùp giuùp ñôõ) giuùp giaûi quyeát tieán trình yeâu caàu (used in processing requests) cuûa user. Ta coù theå duøng object naøy döôùi teân goïi laø Server ñeå lieân heä caùc thaønh vieân cuûa HttpServerUtility Object. Caùc 'helper methods' coù theå keå ra nhö sau: • Redirecting Users • Formatting Strings • Controlling Scripts • Creating Objects Redirecting Users Ta ñaõ laøm quen vôùi caùch chuyeån user qua moät trang Web khaùc vôùi phöông phaùp (method) Response.Redirect, phöông phaùp (method) naøy gôûi keøm vôùi moät daïng thoâng tin HTTP tôùi browser chæ thò cho bieát vieäc chuyeån nhö theá naøo. Vieäc chuyeån naøy ñoøi hoûi moät ñöôøng voøng (round trip) khoâng caàn thieát vì user phaûi thaêm trang Web cuûa ta tröôùc ñöôïc chuyeån ñi. ASP.NET coù theå chuyeån user tröïc trieáp qua trang Web khaùc vôùi phöông phaùp (method) Execute vaø Transfer thuoäc HttpServerUtility Object. Thaät vaäy, Server.Transfer thi haønh vieäc chuyeån qua trang Web khaùc moät caùch ñôn giaûn maø khoâng ñoøi hoûi baát cöù thoâng tin phaûi gôûi tôùi browser, coâng vieäc naøy tieán haønh sau haäu tröôøng vaø user khoâng heà hay bieát. Thí dụ sau ñaây cho thấy nguồn maõ kiểm tra mật maõ của user vaø chuyển user qua 1 trang Web khaùc 1 caùch trực tiếp (vaø ngay tức khắc): If(strPassword = = “MyPassword”) { Response.Transfer(“products.aspx”); } Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 91 SVTH : Haø Minh Chaùnh Formatting Strings Coù 4 phöông phaùp (method) cô baûn caàn ñeå yù ñeå caáu taïo hay hình thaønh moät haøng chöõ (format a string): • Server.HTMLEncode • Server.URLEncode • Server.HTMLDecode • Server.URLDecode • Server.MapPath III. THAØNH PHAÀN TRUY XUAÁT DÖÕ LIEÄU 1. Giới thiệu ADO.NET Tröôùc khi caùc ñoái töôïng truy caäp döõ lieäu ra ñôøi, coâng ngheä DAO (Data Access Objects) cuøng vôùi Visual Basic 3.0, cho pheùp nhaø laäp trình truy caäp cô sôû döõ lieäu cuïc boä treân ñònh daïng JDE (Jet Database Engine). Vôùi DAO (Data Access Objects), chuùng ta coù theå truy caäp döõ lieäu treân trình chuû (Server), nhöng khoâng toái öu vaø toác ñoä chaäm, vì DAO vaãn söû duïng ñeå truy caäp cô sôû döõ lieäu cuïc boä. Tieáp theo sau DAO, coâng ngheä truy caäp cô sôû döõ lieäu baèng ñoái töôïng RDO vaø ADO ra ñôøi. Nhö trình baøy ôû treân, coâng ngheä naøy söû duïng ñeå truy xuaát cô sôû döõ lieäu Client/Server, cho pheùp truy caäp döõ lieäu vôùi moâ hình ña lôùp (n-Tier). Thaønh phaàn ADO.NET, ñöôïc thieát keá nhaèm taêng toác ñoä truy caäp vaø thao taùc treân moâi tröôøng ña lôùp (n-Tier) . Hai thaønh phaàn chính cuûa ADO.NET laù ñoái töôïng DataSet vaø .NET Provider. .NET Provider laø moät taäp caùc ñoái töôïng trong thaønh phaàn .NET bao goàm Connection (Keát noái cô sôû döõ lieäu), Command (Leänh thi haønh), DataReader (Boä ñoïc döõ lieäu) 2. Caùc ñối tượng ADO.NET 2.1 Đối tượng DataSet Ñoái töôïng DataSet laø moät ñoái töôïng cuûa ADO.NET, cung caáp caùch thoâng thöôøng nhaát ñeå trình baøy vaø thao taùc döõ kieäu. Ñieàu quan troïng ôû ñaây laø chuùng Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 92 SVTH : Haø Minh Chaùnh ta khoâng neân nghó ñoái töôïng naøy nhö moät cô sôû döõ lieäu maø chuùng ta laø moät ñoái töôïng naém baét döõ lieäu töø baát kyø nguoàn döõ lieäu khaùc. Chuùng ta khoâng chæ söû duïng ñoái töôïng DataSet ñeå truy xuaát döõ lieäu maø coøn di chuyeån döõ lieäu baát kyø thôøi ñieåm naøo, sau ñoù gôûi döõ lieäu thoâng qua XML. Taäp döõ lieäu ñöôïc ñònh daïng XML, vaø cuõng coù theå laø moät ñoái töôïng nhò phaân, vaø coù theå ñoïc hay ghi XML, trong thöïc teá laø XML. Trong tröôøng hôïp phaân phoái döõ lieäu treân maïng, vì ta coù khaùi nieäm trình baøy döõ lieäu baèng XML, module Target seõ nhaän XML vaø söû duïng chuùng nhö caùch toát nhaát ñeå bieåu dieãn khoái döõ lieäu, tham khaûo hình sau ñaây, deã daøng nhaän thaáy söï keát hôïp giöõa ADO.NET vaø XML treân .NET Framework. Hình 2.4: ADO.NET và XML trong .NET Framework Ñoái töôïng DataSet trong ADO.NET, ñöôïc ñònh nghóa trong khoâng gian teân System.Data, khoâng gian teân naøy chöùa ñöïng caùc lôùp vaø phöông thöùc vôùi muïc ñích thao taùc döõ lieäu trong ñoái töôïng DataSet, trong khoâng gian teân System.Data bao goàm caùc ñoái töôïng: Bảng ñối tượng của khoâng gian teân System.Data Microsoft .Net Framework Wen Service User Interface Data và XML ADO.NET XML .. .. Case Classes Common Language runtime Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 93 SVTH : Haø Minh Chaùnh Ñoái töôïng Dieãn giaûi DataSet Boä nhôù chöùa ñöïng döõ lieäu DataTable Duøng ñeå truy vaán döõ lieäu töø ñoái töôïng TableCollection cuøng vôùi ñoái töôïng DataTable vaø DataSet DataRow Duøng ñeå truy vaán maãu tin töø ñoái töôïng RowsCollection cuøng vôùi ñoái töôïng DataRow vaø Datatable. 2.2 Đối tượng DataTable Ñeå ADO.NET laøm vieäc treân cô sôû döõ lieäu, ta caàn phaûi söû duïng moät soá ñoái töôïng khaùc, trong ñoù coù Datatable, ñeå theâm moät ñoái töôïng DataTable töø nguoàn döõ lieäu nhö MS SQL Server 2000 chaúng haïn, hay taïo moät DataTable trong ñoái töôïng DataSet, ta caàn tham khaûo moät soá thoâng tin cuûa ñoái töôïng naøy trong baûng: Thuộc tính Diễn giải Columns Truy caäp döõ lieäu töø coät nhö taäp hôïp döõ lieäu, traû veà DataColumnCollection. Rows Truy maãu tin trong ñoái töôïng DataTable traû veà DataRowCollection cuûa ñoái töôïng DataRow. ParentRelation Traû veà DataRowRelationcollection cuûa taát caû caùc quan heä giöõa caùc baûng. Constraints Traû veà DataSet cuûa DataTable tröïc thuoäc. PrimaryKey Gaùn hay laáy khoùa chính cuûa baûng döõ lieäu trong maûng coät cuûa baûng. 2.3 Đối tượng DataSet vaø XML Ñoái töôïng DataSet coù theå söû duïng baát kyø loaïi döõ lieäu, cheá ñoä môû cuûa chuùng thoâng qua ñònh daïng XML. Nhö ñaõ trình baøy ôû treân, DataSet coù khaû naêng ñoïc vaø ghi döõ lieäu treân chính chuùng vaø löôïc ñoà nhö XML. Tuy nhieân, khaû naêng naøy cho pheùp ta taïo hay caäp nhaät döõ lieäu treân taäp döõ lieäu söû duïng XML, hay giaûi phaùp XML nhö trong SQL Server 2000. XML laø khaùi nieäm cô baûn ñeå trình baøy döõ lieäu vaên baûn, ñieàu naøy cuõng coù nghóa ta ñaõ truy caäp thoâng qua Firewall, khoâng gioáng nhö caùc döõ lieäu nhò phaân khaùc (nhö ñoái töôïng COM, COM+), Firewall (böùc töôøng löûa trong heä thoáng maïng Internet) coù theå xem xeùt döõ lieäu XML vaø nhaän daïng chuùng nhö vaên baûn. Chính xuaát phaùt töø khaùi nieäm naøy, döõ Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 94 SVTH : Haø Minh Chaùnh lieäu daïng XML coù theå truyeàn vaø ñi ra ngoaøi Thoâng qua Firewall baèng port 80 (port chuaån cuûa Internet HTML). Trong thöïc teá, ta coù theå keát hôïp giöõa XML vaø HTML, ñeå coù theå chuyeån ñoåi thoâng qua heä thoáng Internet. Ñaây laø moät cô cheá ñöôïc bieát döôùi teân SOAP (Simple object Access Protocol). Bảng phương thức của ñối tượng DataSet Phöông thöùc Dieãn giaûi ReadXML Ñoïc löôïc ñoà XML vaø döõ lieäu vaøo DataSet. ReadXMLSchema Ñoïc löôïc ñoà XML vaøo DataSet. WriteXML Ghi taäp tin XML töø DataSet. WriteXMLSchema Ghi löôïc ñoà XML töø DataSet. 2.4 Đối tượng DataView Söû duïng ñoái töôïng DataView, ta coù theå taïo ra nhieàu view töø caùc baûng döõ lieäu cho tröôùc. Chaúng haïn ta coù baûng Employers vôùi hai coät department vaø skills. Ñeå taïo hai view khaùc nhau, moät laø department view vaø skills view (yù töôûng töông töï nhö view cuûa SQl Server). Ñoái töôïng DataView ñöôïc thieát keá cho Windows Forms vaø caû Web Form nhö trong baûng: Baûng thoâng tin của ñối töôïng DataView Thuoäc tính Dieãn giaûi Table Gaùn hay laáy nguoàn döõ lieäu töø Table cho View. Sort Nhaän hay thieát laäp saép xeáp döõ lieäu taêng hay giaûm daàn. RowFilter Gaùn hay thieát laäp bieåu thöùc ñieàu kieän loïc döõ lieäu. RowStateFilter Gaùn hay nhaän traïng thaùi cuûa boä loïc bao goàm caùc giaù trò enumerration nhö CurrentRows, Deleted, ModifiedCurrent, None, ModifiedOriginal, New, OriginalRows, Unchanged. 3. Quaûn lyù caùc Provider trong ADO.NET Ñeå laáy döõ lieäu töø nguoàn döõ lieäu (döõ lieäu quan heä, taäp tin vaên baûn, thoâng tin trong email, ), ta caàn phaûi quaûn lyù vaø söû duïng provider. Ñeå quaûn lyù caùc provider cho nhieàu loaïi döõ lieäu, ta phaûi bao goàm taäp hôïp cuûa lôùp cho pheùp truy caäp nhieàu loaïi döõ lieäu. Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 95 SVTH : Haø Minh Chaùnh Provider cuûa .NET Framework nhö moät caàu noái giöõa öùng duïng vôùi cô sôû döõ lieäu, chuùng duøng ñeå keát noái nguoàn döõ lieäu, thöïc hieän caâu leänh vaø nhaän döõ lieäu traû veà, nhöõng döõ lieäu naøy coù theå ñöôïc xöû lyù tröïc tieáp, hay löu tröõ treân ñoái töôïng DataSet cuûa ADO.NET. Khi döõ lieäu löu tröõ treân DataSet, chuùng ta coù theå trình baøy cho ngöôøi duøng vôùi nhieàu theå loaïi, nhö keát hôïp döõ lieäu töø nhieàu baûng hay döõ lieäu truy xuaát töø nhieàu taàng. Provider cuõng keát hôïp söï thay ñoåi cuûa döõ lieäu trôû lai nguoàn döõ lieäu. ADO.NET bao goàm Provider nhö sau: • SQL Server.NET data provider: Söû duïng cho SQL Server 7.0 vaø caùc phieân baûn sau naøy. • OLE DB.NET data provider: Söû duïng cho döõ lieäu keát noái döõ lieäu thoâng qua OLE DB nhö SQL Server 6.5 hay caùc phieân baûng SQL Server tröôùc ñaây vaø Oracle, öùng duïng ñôn taàng cho Microsoft Access, cho caùc OLE DB.NET Provider cho Microsoft Access. Hai provider naøy cung caáp caùc chöùc naêng töông töï nhau nhö trong baûng sau: Bảng .NET Data Provider SQL Server .NET Data Provider OLE DB .NET Data Provider SqlCommand OleDbCommand SqlConnection OleDbConnection SqlDataAdapter OleDbDataAdapter SqlDataReader OleDbDataReader SqlParameter OleDbParameter Caùc ñoái töôïng Provider naøy, chöùa ñöïng ñoái töôïng hieän thöïc cho caùc nguyeân toá .NET Provider bao goàm: Connection, Command, DataReader, DataAdapter nhö baûng sau Bảng danh saùch ñối tượng của .Net Data Provider Ñoái töôïng Dieãn giaûi Connection Thieát laäp keát noái cô sôû döõ lieäu vôùi nguoàn döõ lieäu. Command Thöïc hieän leänh treân nguoàn döõ lieäu, ñaëc vaøo caùc tham soá vaø thu nhaän caùc chuyeån taùc töø keát noái connection. Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 96 SVTH : Haø Minh Chaùnh DataReader Ñoïc luoàng döõ lieäu töø nguoàn döõ lieäu theo thuoäc tính Forward-only (moät chieàu). DataAdapter Ñieàu phoái moät DataSet vaø giaûi quyeát vaán ñeà caäp nhaät döõ lieäu vôùi nguoàn döõ lieäu. Chuùng ta coù theå tham khaûo hình döôùi ñaây, ñoái töôïng DataSetCommand cuûa Provider laáy döõ lieäu töø nguoàn döõ lieäu vaø truyeàn ñeán moät taäp döõ lieäu, töông töï nhö vaäy, khi taäp döõ lieäu naøy coù söûa ñoåi, ngöôøi duøng muoán caäp nhaät trôû laïi nguoàn döõ lieäu goác vôùi döõ lieäu vöøa thay ñoåi, ñoái töôïng DataSetCommand seõ thöïc hieän quùa trình naøy. Hình 2.5 DataSetCommand laø caàu noái DataSet vaø nguoàn döõ lieäu DataSetCommand cung caáp moät coâng cuï quan troïng cho giaûi phaùp naøy trong ADO.NET, DataSetCommand naïp ñoái töôïng DataSet, ñöa ra caàu noái giöõa ñoái töôïng naøy vôùi nguoàn döõ lieäu, vôùi muïc ñích truy vaán vaø caäp nhaät döõ lieäu. 3.1 Ñoái töôïng Connection Ñeå duy chuyeån döõ lieäu giöõa nguoàn döõ lieäu vaø öùng duïng, tröôùc tieân ta keát noái vôùi nguoàn döõ lieäu ñoù. Trong ADO.NET, ta coù theå quaûn lyù keát noái baèng hai ñoái töôïng: SqlConnection, ñoái töôïng söû duïng cho SQL Server.NET Data Provider, OleDBConnection söû duïng cho OLE DB.NET, vaø caû hai keát noái ñeàu cuøng muïc ñích nhö nhau. Tuy nhieân ñoái vôùi OleDbConnection phuï thuoäc vaøo nguoàn döõ lieäu keát noái, bôûi leõ ñoái töôïng naøy cho pheùp keát noái nhieàu loaïi döõ lieäu. - Thuoäc tình ConnectionString, thuoäc tính naøy bao goàm chuoãi keát noái nhö cuù phaùp sau: + Ñoái vôùiđñoái töôïng SqlConnection: Khi keát noái vôùi SQL Server: SqlConnection Conn = new SqlConnection(“server=localhost;database=mydatabase; uid=hmc;pwd=hmc”); DataStore DataSetCommand DataSet Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 97 SVTH : Haø Minh Chaùnh + Ñoái vôùi ñoái töôïng OleDbConnection: OleDbConnection Conn = new OleDbConnection(“Provider=sqloledb;database=mydatabase;uid= hmc;pwd=hmc”); Khi keát noái vôùi Microsoft Access: OleDbConnection Conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0; Data Source = ñöôøng daãn tôùi database”); Haàu heát caùc giaù trò trong thuoäc tính naøy ñeàu thuoäc veà trình chuû, nhö uid: taøi khoaûn, hay coøn goïi userid ñeå truy caäp vaøo cô sôû döõ lieäu, pwd: maät khaåu hay password, ngoaøi ra coøn cung caáp teân cô sôû döõ lieäu. - Thuoäc tính Open, thuoäc tính naøy duøng ñể môû keát noái . - Thuoäc tính Close, thuoäc tính naøy duøng ñeå ñoùng keát noái . 3.2 Ñoái töôïng Command Ñeå thöïc hieän thao taùc hay truy vaán treân nguoàn döõ lieäu vôùi muïc dích naøo ñoù baèng caùch khai baùo ñoái töôïng Command. Ñoái töôïng Command coù theå taïo constructor Command hay goïi phöông thöùc Create command cuûa ñoái töôïng keát noái. Khi taïo ñoái töôïng Command, baèng caùch söû duïng constructor Command, hai tham soá caàn cung caáp cho ñoái töôïng naøy laø phaùt bieåu SQL caàn thöïc thi (tham soá thöù nhaát) vaø ñoái töôïng keát (tham soá thöù hai). Keá tieáp xaây döïng moät chuoãi keát noái öùng vôùi döõ lieäu nguoàn vaø cuøng caùc thao taùc treân döõ lieäu cho pheùp truy vaán döõ lieäu baèng phöông thöùc Open vôùi ñoái töôïng keát noái 3.3. Ñoái töôïng DataReader Ñoái töôïng DataReader thöïc hieän vieäc löu tröõ döõ lieäu. Sau khi taïo ñoái töôïng keát noái cuûa ñoái töôïng Command , ta caàn taïo DataReader baèng caùch goïi phöông thöùc ExecuteReader, phöông thöùc naøy laáy maãu tin töø nguoàn döõ lieäu sau khi thieát laäp ñoái töôïng Command vaø löu tröõ vaøo DataReader nhö sau: Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 98 SVTH : Haø Minh Chaùnh - Ñeå coù tính thöïc thi cao, trong khi laáy döõ lieäu treân töøng coät, neáu coät ñoù coù kieåu döõ lieäu Int, hay Bolean, DateTime, , ta söû duïng phöông thöùc phuø hôïp vôùi kieåu muoán laáy ra nhö GetDateTime, getDouble, GetInt). - Phöông thöùc GetString ñeå hieån thò döõ lieäu. - Phöông thöùc DataReader.Read, phöông thöùc naøy duøng ñeå ñoïc döõ lieäu, khi ñoïc döõ lieäu noù töï ñoäng ñoïc ñeán maãu tin keá tieáp cho ñeán heát thì thoâi, chính vì vaäy neân ta ñaëc trong voøng laëp While ñeå ñoïc maãu tin, moãi maãu tin moät laàn. 3.4. Ñoái töôïng DataAdapter Ñoái töôïng DataAdapter, duøng ñeå keát noái vaøo cô sôû döõ lieäu, sau ñoù ñieàn döõ lieäu vaøo boä nhôù thöôøng truù DataSet, keá ñeán DataAdapter keát noái trôû laïi cô sôû döõ lieäu vaø caäp nhaät döõ lieäu döïa treân moät hoaït ñoäng ñöôïc thöïc trong khi DataSet naém baét döõ lieäu. Trung taâm chính cuûa giaûi phaùp naøy laø DataAdapter, ñöôïc söû duïng nhö moät lieân keát giöõa DataSet vaø nguoàn döõ lieäu ñöôïc duøng ñeå truy vaán hay caäp nhaät cuøng vôùi söï coù maëc cuûa kyõ thuaät SQL treân nguoàn döõ lieäu vaø ñöôïc moâ phoûng nhö sau: DataSet SqlDataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand SQL Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 99 SVTH : Haø Minh Chaùnh B. GIÔÙI THIEÄU SÔ LÖÔÏC VEÀ SQL SERVER I. GIÔÙI THIEÄU VEÀ SQL SERVER SQL Server laø moät coâng cuï giuùp phaùt trieån Cô sôû döõ lieäu (CSDL) ñöôïc xaây doing bôûi haõng IBM vaøo nhöõng naêm cuoái thaäp kyû 70 chaïy treân HDH OS/2 cuûa haõng IBM coù teân laø Sequel. Sau ñoù Microsoft vaø Sysbase hôïp taùc vieát laïi SQL Server chaïy treân heä ñieàu haønh Windows. Coâng cuï SQL Server giuùp nhöõng nhaø thieát keá heä thoáng CSDL, nhöõng nhaøquaûn trò CSDL, vaø baûo maät CSDL. I.1 Nhöõng ñaëc ñieåm chính cuûa SQL Server: 1.Hoä trôï cho moâ hình Client Server Microsoft SQL Server ñöôïc thieát keá cho moâ hình Client – Server. Trong moâ hình khi maùy Client yeâu caàu truy xuaát döï lieäu thì SQL seõ thöïc thi ñoaïn maõ trong chöông trình öùng duïng (Application) vaø chæ göûi traû laïi nhöõng döï lieäu caàn thieát. Vì theá khoái löôïng coâng vieäc phaûi laøm (workload) ñöôïc chia ra giöõa Client vaø Server. Coâng vieäc cuûa Client laø yeâu caàu döõ lieäu thoâng qua nhöõng caâu leänh Coøn coâng vieäc cuûa Server laø söû lyù döï lieäu vaø traû keát quaû veà cho Client. 2. Khaû naêng töông thích vôùi ña nghi thöùc Moät nghi thöùc (Protocol) laø moät quy taéc chuaån ñöôïc thöïc hieän cho nhieàu heä ñieàu haønh khaùc nhau. Chaúng haïn nhö nghi thöùc TCP/IP cho pheùp quaûn lyù vieäcx truyeàn nhaän döï lieäu treân maïng. 3. Khaû naêng töông thích vôùi heä ñieàu haønh Ñaây laø moät saûn phaûm do Microsoft xaây döïng neân noù hoaøn toaøn töông thích vôùi heä ñieàu haønh Windows 9x, Windows NT, Windows 2000 vaø Windows XP. Vaø töông thích vôùi nhieàu boä vi xöû lyù nhö Nwlink, TCP, IP, Net BUEI, Apple talk, ViNES 4. Khaû naêng ña xöû lyù ñoái xöùng Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 100 SVTH : Haø Minh Chaùnh SQL Server coù theå hoä trôï cho heä thoáng maùy tính vôùi nhieàu vi xöû lyù ñöôïc ñaët ñoái xöùng giöõa chuùng vôùi nhau. Neáu maùy tính cuûa chuùng ta coù 4 CPU thì coâng vieäc xöû lyù ñöôïc chia ra vaø moãi moät CPU seõ tham gia thöïc thi moät phaàn cuûa chöông trình ñôn. Ñieàu naøy seõ laøm cho coâng vieäc ñöôïc giaûi quyeát nhanh gaép 4 laàn so vôùi heä thoáng chæ coù moät boä vi xöû lyù. 5.Hoå trôï baûn sau döõ lieäu SQL Server hoå trôï baûn sao döï lieäu. Ñieàu naøy coù nghóa laø döõ lieäu töï ñoâng ñöôïc sao cheùp, hoaëc nhaân ñoâi ñeán moät SQL Server khaùc. Baûn sao (Replication) ñöôïc sao laïi gioáng hoaøn toaøn nhö baûn goác vôùi nhöõng baûng döï lieäu, döï lieäu vaø raøng buoäc döï lieäu. I.2 CÔ SÔÛ DÖÏ LIEÄU CUÛA SQL SERVER Moät cô sôû döï lieäu laø moät taäp hôïp caùc döï lieäu Logic chöùa trong 1 file ñóa. Moät cô sôû döï lieäu vaät lyù laø taäp hôïp caùc taäp tin vaät lyù phaùt sinh cô sôû döï lieäu, cô sôû döï lieäu vaät lyù coù moät taäp tin döï lieäu ñeå quaûn lyù döï lieäu thöïc vaø 1 log file ñeå phuïc hoài döõ lieäu trong tröôøng hôïp CSDL coù vaán ñeå. Taäp tin naøy seõ löu giöõ thoâng tin caùc traïng thaùi giao dòch cuûa Server vaø Client, ngöôøi söû duïng khoâng caàn nhìn thaáy taäp tin vaät lyù naøy. 1. Caùc thaønh phaàn cô baûn trong SQL Server: * Table : Taäp hôïp döõ lieäu chöùa trong haøng vaø coat * Column : 1 phaàn töû döõ lieäu ñöôïc goïi laø 1 field * Row : Taäp hôïp caùc coät coù lieân quan ñöôïc goïi laø 1 Record * View : 1 taäp hôïp con cuûa 1 hay nhieàu baûng, user coù theå xem, nhìn chæ moät vaøi coät töø 1 baûng thay vì nhieàu baûng. * Datatype : Xaùc ñònh kieåu döï lieäu chöùa trong moät coät * Rule : Quy taéc döï lieäu nhaäp vaøo moät coät * Store Procedures : Moät caâu leänh ñöôïc dòch bean trong T_SQL * Trigger : Chöùa caùc procedure ñeå thöïc thi, khi coù moät bieán coá xuaát hieän nhö xoùa caäp nhaät * Default : Taäp caùc giaù trò ñöôïc ñònh nghóa beân trong moät coät * Index : Laø moät phöông thöùc truy xuaát data nhanh choùng baèng caùch duøng moät field khoùa Query coù theå ruùt trích döõ lieäu döïa treân 1 field khoùa thay vì phaûi tuaàn töï Coù 2 kieåu Index : Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 101 SVTH : Haø Minh Chaùnh + Clustered: Saép xeáp doøng trong moät baûng + Non Clustered : saép xeáp caùc con troû chæ ñeán data thay vì caùc doøng 2. Caùc coâng cuï quaûn trò SQL Server : • SQL Server Agent : cho pheùp ta laäp thôøi gian bieåu vaø thoâng baùo baùo ñoäng • SQL Server Profile : Cho pheùp ta giaùm saùt SQL Server giao tieáp maïng giöõa Server – Client • SQL Server Performance Monitor : cho pheùp ta giaùm saùt caùc hoaït ñoäng cuûa SQL Server daïng ñoà hoïa • SQL Enterprise Manager : Coâng cuï chính ñeå quaûn trò SQL Server • Caùc Winzard : Nhöõng wizard cho pheùp ta thöï hieän caùc taùc vuï moät caùch deã daøng nhö Database , taïo Index. Coù caùc wizard sau : + Create login wizard : duøng ñeå taïo account login vaøo SQL Server + Create index wizard : taïo full text Index + Store procedures : duøng ñeå taïo query thöïc thi nhieàu laàn II. TAÏO VAØ QUAÛN LYÙ CAÙC TAÄP TIN CÔ SÔÛ DÖÕ LIEÄU Microsoft SQL Server cung caáp 2 giao dieän chính: • Quaûn trò cô sôû döõ lieäu • Xö lyù cô sôû döõ lieäu Coâng cuï chính laø SQL Enterprise Manager 1. Taäp tin SQL Server Trong SQL Server cô sôû döõ lieäu coù theå ñöôïc xaây döïng 3 loaïi file • Taäp tin döõ lieäu chính(primary data file): Taäp tin naøy khôûi ñoäng cô sôû döõ lieäu vaø chöùa con troû (pointer) chæ ñeán taát caû caùc file khaùc trong cô sôû döõ lieäu. Moãi cô sôû döõ lieäu coù duy nhaát moät taäp tin döõ lieäu chính. Taäp tin naøy coù phaàn môû roäng laø .mdf. • Taäp tin döõ lieäu phuï(secondary data file): Nhöõng taäp tin naøy laø tuøy choïn vaø coù theå giöõ taát caû döõ lieäu, ñoái töôïng khoâng coù trong taäp tin döõ lieäu chính. Moät CSDL coù theå khoâng coù hoaëc coù nhieàu taäp tin döõ lieäu phuï. Taäp tin kieàu naøy coù phaàn môû roäng laø .ndf. • Logfilr: Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 102 SVTH : Haø Minh Chaùnh Nhöõng taäp tin naøy giöõ toaøn boä thoâng tin transaction log ñeå khoâi phuïc CSDL. Moãi CSDL coù ít nhaát moät log file. Teân cuûa log file luoân coù phaàn môû roäng laø .ldf. 2. Quaûn trò cô sôû döõ lieäu SQL Server SQL Server döõ lieäu vaø log file coù theå töï ñoäng taêng kích côû cuûa file. Söï gia taêng ñöôïc ñònh nghóa ngay luùc taïo ra taäp tin CSDL. Khi ta taïo moät taäp tin CSDL, moät baûn sao cuûa taäp tin CSDL model (bao goàm caùc baûng heä thoáng) ñaõ ñöôïc cheùp vao trong CSDL. Do ñoù kích thöôùc toái thieåu cuûa CSDL phaûi lôùn hôn hoaëc baèng kích thöôùc CSDL model. Döõ lieäu ñöôïc löu tröõ trong caùc trang 8 KB lieâ tieáp trong khoâng gian ñóa goïi laø extent (chính laø noäi dung cuûa 8 trang). Vôùi söï taêng kích côõ trang seõ taïo ra moät tieàm naêng gia taêng nhöõng khoâng gian laõng phí. SQL Server ñaõ hoå trôï theâm mixed extents. Ñieàu naøy coù nghóa laø môû roäng cho pheùp nhaân ñoâi baûng ñeán chia khoâng gian. Taäp tin transaction log giöõ toaøn boä thoâng tin ñeå khoâi phuïc CSDL trong tröôøng hôïp heä thoáng coù söï coá. 2.1 Taïo moät cô sôû döõ lieäu duøng Transact-SQL vaø SQL Enterprise Manager Duøng Transact-SQL Cuù phaùp: CREATE DATABASE tên_CSDL [ ON {[ PRIMARY] (NAME = tên file logic, FILENAME = ‘OS_file_name’ [, SIZE = size] [, MAXSIZE = maxsize] [, FILEGROWTH = growth_increment] ) }[,n] ] [LOG ON {(NAME = logical_file_name,FILENAME = ‘OS_file_name’) [, SIZE = size] }[,n] ] [FOR RESTORE] Trong ñoù, Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 103 SVTH : Haø Minh Chaùnh PRIMARY: Tuøy choïn naøy chæ ñònh nhöõng taäp tin trong nhoùm taäp tin chính. Nhoùm taäp tin chính chöùa taát caû caùc baûng heä thoáng CSDL vaø taát caû caùc ñoái töôïng khoâng ñöôïc gaùn trong caùc nhoùm taäp tin ngöôøi duøng. Neáu töø khoùa PRIMARY khoâng ñöôïc chæ ñònh thì taäp tin ñaàu tieân ñöôïc lieät keâ trong caâu leänh trôû thaønh taäp tin döõ lieäu chính. FILENAME: Tuøy choïn naøy chæ ñònh teân taäp tin heä ñieàu haønh vaø ñöôøng daãn cho taäp tin. Ñöôøng daãn trong OS_file_name caàn chæ ñònh thì maëc ñònh nhö sau: Kích côõ cuûa taäp tin döõ lieäu chính baèng kích côõ cuûa CSDL model. Kích côõ cuûa taäp tin döõ lieäu phuï laø 1 MB. Kích côõ cuûa log file baèng 25% kích côõ cuûa taäp tin döõ lieäu vöøa taïo (taäp tin döõ lieäu goàm taäp tin döõ lieäu chính vaø phuï) Coù theå môû roäng kích côõ cuûa taäp tin nhöng khoâng theå co laïi nhoû hôn kích côõ naøy. MAXSIZE: Tuøy choïn naøy chæ ñònh kích côõ toái ña maø moät taäp tin coù theå phaùt trieån ñeán. Neáu khoâng chæ ñònh thì taäp tin coù theå gia taêng cho ñeán khi ñóa bò ñaày. FILEGROWTH: Chæ möùc ñoä gia taêng cuûa taäp tin. Coù theå xaùc ñònh baèng MB, KB hoaëc %. Neáu baèng 0 thì khoâng ñöôïc gia taêng. Neáu khoâng chæ ñònh thì maëc ñònh laø 10 % vaø giaù trò toái thieåu laø 64 KB. Duøng Enterprise Manager: Vaøo SQL Server Enterprise Manager vaø thöïc hieän theo caùc böôùc sau: (1) Nhaép ñuùp vaøo nhoùm heä phuïc vuï cuûa baïn roài nhaép ñuùp vaøo heä phuïc vuï cuûa baïn. (2) Nhaép phaûi vaøo thö muïc Database roài choïn New Database. (3) Nhaäp teân cho CSDL môùi. (4) Ñieàn caùc tuøy choïn: initial size, maxsize, filegrowth cho taäp tin döõ lieäu chính vaø transactionlog. (5) Nhaép OK ñeå taïo CSDL môùi. (6) Muoán thay ñoåi thuoäc tình cuûa CSDL ñaõ taïo thì nhaép ñuùp vaøo thö muïc Database, nhaép phaûi vaøo CSDL cuûa baïn vaø choïn Properties roài thay ñoåi caùc tuøy choïn. 2.2 Huøy moät Cô sôû döõ lieäu a. Duøng Transact – SQL: Cuù phaùp: Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 104 SVTH : Haø Minh Chaùnh DROP DATABASE teân_CSDL[, n] Ví duï: DROP DATABASE mydb1,mydb2 b. Duøng Entrprise Manager Vaøo SQL Server Enterprise Manager vaø thöïc hieän theo caùc böôùc sau: (1) Nhaép ñuùp vaøo nhoùm heä phuïc vuï roài nhaép ñuùp vaøo heä phuïc vuï. (2) Nhaép ñuùp vaøo thö muïc Databases. (3) Nhaép ñuùp vaøo CSDL maø baïn muoán huûy vaø choïn delete töø shortcut menu. 4.3. Xem thoâng tin Cô sôû döõ lieäu a) Duøng Transact – SQL: (1) Môû SQL Query Analyser. (2) Thöïc thi moät stored procedure heä thoáng ñeå lieät keâ moät danh saùch taát caû caùc CSDL: EXEC sp_helpdb (3) Thöïc thi moät stored procedure heä thoáng ñeå hieån thò thoâng tin veà moät CSDL: EXEC sp_helpdb teân_CSDL (4) Thöïc thi moät stored procedure heä thoáng ñeå hieån thò thoâng tin veà khoâng gian söû duïng cho moät CSDL: USE teân_CSDL EXEC sp_spaceused b)Duøng Enterprise Manager: Vaøo SQL Server Enterprise Manager vaø thöïc hieän theo caùc böôùc sau: (1)Nhaép ñuùp vaøo nhoùm heä phuïc vuï roài nhaép ñuùp vaøo heä phuïc vuï. (2)Nhaép ñuùp vaøo thö muïc Databases vaø nhaép phaûi CSDL maø ta muoán xem thoâng tin. (3)Choïn Space Allocated heading ñeå xem thoâng tin taäp tin döõ lieäu vaø log. 5. Raøng buoäc döõ lieäu 5.1 Caùc loaïi raøng buoäc: bao goàm Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 105 SVTH : Haø Minh Chaùnh • Mieàn giaù trò • Thöïc theå • Tham chieáu • Ngöôøi duøng ñóa (a) Mieán gía trò: Chæ ra taäp giaù trò hôïp leä cho moät coät Ví duï: 0 <= ñieåm <= 10 Phaùi = (Nam,Nöõ) (b) Raøng buoäc tham chieáu: Laøm chaéc chaén moái quan heä giöõa khoùa chính vaø khoaù ngoaïi Theå hieän treân 3 thao taùc : Theâm, Xoùa, Söûa Ví duï :Hoùa ñôn (MSHD, MSKH, TIEN) Khaùch haøng (MSKH,TEN,DIACHI) (c) Raøng buoäc thöïc theå: Taát caû caùc doøng treân baûng coù 1 khoùa chính ñeå phaân bieät vôùi caùc baûng khaùc 5.2 Söû duïng raøng buoäc * Chuù yù: • Teân raøng buoäc phaûi löu vaøo söu lieäu • Maëc ñònh SQL Server kieåm tra döõ lieäu toàn taïi khi theâm raøng buoäc • Neân xaây döïng chöông trình treân Chrint ñeå phaùt hieän caùc vi phaïm khi boå sung treân server • Neân chuû ñoäng ñaët teân caùc raøng buoäc • Coù theå xem raøng buoäc trong caùc table: Sys contain, Sys refirence, Sys comment • Trong thoâng tin cuûa caùc raøng buoäc coù theå thaáy baèng: Exec – sp- helpconstrain, Exec – sp – help (a) Raøng buoäc default: Khi insert 1 doøng maø khoâng chæ ra giaù trò SQL – server seõ laáy giaù trò Default Ví duï: ALTER TABLE HOADON Add constraint Loaïi HD – CH default for Loai HD Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 106 SVTH : Haø Minh Chaùnh (b) Raøng buoäc Check: Duøng giôùi haïn giaù trò löu tröõ treân 1 hay nhieàu coät Ví duï: ALTER Table KHACHHANG Add constraint CH-SDT Check ( SDT like[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]) (c) Raøng buoäc khoùa ngoaïi: Ñònh nghóa 1 tham chieáu tôùi coät khoùa chính Ví duï: ALTER Table HOADON Add constraint FK MKH foreignkey (MSKH) refrences KHACHHANG (MSKH) (d) Laøm maát tính hieäu löïc kieåm tra döõ lieäu khi theâm 1 raøng buoäc Khi Table coù döõ lieäu, neáu theâm raøng buoäc, SQL töï ñoäng kieåm tra döõ lieäu. Tuy nhieân coù theå laøm maát taïm thôøi tính kieåm tra naøy. * Chuù yù: • Chæ coù theå laøm maát raøng buoäc check foregnkey • Duøng with nocheck (khoâng kieåm tra töø ñaây trôû veà tröôùc) • Döõ lieäu sau ñoù vaãn ñöôïc kieåm tra III. SỬ DUÏNG TABLE, VIEW, TRIGGER, RULE, STORE PROCEDURES TRONG SQL SERVER 1. Table 1.1 Taïo Table Trong cô sôû döõ lieäu SQl Server coù theå caùch taïo baûng Taïo table coù theå coù 1024 coät Moät haøng coù theå coù toái ña 8060 byte Leänh taïo table Caùch moät: Cuù phaùp taïo Table Create table ( teân coät kieåu döõ lieäu [NULL | NOT NULL] [, n] Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 107 SVTH : Haø Minh Chaùnh ) ex:create table member ( member_no int NOTNULL, lastname char NOTNULL, firstname char NOTNULL, photo image NULL ) Caùch hai: Duøng wizard Môû database muoán chöùa table Choïn table, click phaûi choïn new table -> goõ teân table vaøo textbox Khai baùo caùc coät trong table Chuù yù: Coät naøo laøm khoùa thì khoâng ñöôïc choïn NULL 1.2 Xoùa baûng Table Caùch moät: • Choïn table caán xoùa • Nhaán delete Caùch hai: • Duøng leänh Drop • Cuù phaùp Drop table teân table 1.3 Kieåu döõ lieäu Coù 2 kieåu döõ lieäu • Do heä thoáng cung caáp • Do user ñònh nghóa 1.3.1 Kieåu döõ lieäu do heä thoáng cung caáp: Kieåu döõ lieäu Dieãn giaûi Giaù trò theo Byte Binary Döõ lieäu daïng nhò phaân coù ñoä daøi coá ñònh 1 – 8000 VarBinary Döõ lieäu daïng nhò phaân 1 - 8000 Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 108 SVTH : Haø Minh Chaùnh coù ñoä daøi thay ñoåi Bit Döõ lieäu coù giaù trò 0-1 1 Char Döõ lieäu kyù töï 1-8000 VarChar Döõ lieäu kyù töï thay ñoåi 1-5000 Datetime Kieåu ngaøy thaùng 3 Decimal Soá thaäp phaân 5-17 Numberic Soá ñeám 5-17 Real Soá thöïc 4 Float Soá thöïc 4-8 Uniqueidentifier Kieåu ñònh nghóa 10 Image Hình aûnh 0-2GB SmallInt Soá nguyeân 2 Int Soá nguyeân 4 Text Kieåu chöõ 0-2GB Money Tieàn teä 8 Smalldatetime Ngaøy thaùng 4 1.3.2 Kieåu döõ lieäu do ngöôøi söû duïng ñònh nghóa Ñeå taïo ra moät loaït döõ lieäu môùi do user ñònh nghóa ta coù hai löïa choïn • Söû duïng thuû tuïc löu tröõ: sp_addtype Ví duï: sp_addtype ma TK, ‘integer’, ‘not null’ • Söû duïng hoäp thoaïi SQL Enterprise Manager Neáu muoán keát hôïp 1 quy taéc vôùi 1 loaïi döõ lieäu môùi ta taïo phaûi duøng raøng buoäc vôùi coät ñöôïc khai baùo coù döõ lieäu môùi Ví duï: Daïng khai baùo kieåu döõ lieäu user ñònh nghóa EXEC sp_addtype phone_number, 'varchar(20)', 'not null' go CREATE TABLE customer ( cust_id smallint NOT NULL, cust_name varchar(50) NOT NULL, cust_addr1 varchar(50) NOT NULL, cust_addr2 varchar(50) NOT NULL, cust_city varchar(50) NOT NULL, cust_state char(2) NOT NULL, cust_zip varchar(10) NOT NULL, cust_phone phone_number, Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 109 SVTH : Haø Minh Chaùnh cust_fax varchar(20) NOT NULL, cust_email varchar(30) NOT NULL, cust_web_url varchar(20) NOT NULL ) Cuù phaùp Create table ( {!,..n} alter TABLE table_name add {}[,..n] { | [Constraint constraint_name] Default constraint_expression for column } [,..n] ) Söû duïng constraunt laø 1 caùch giuùp SQL Server töï ñoäng kieåm tra raøng buoäc toaøn veïn trong CSDL Constraint xaùc ñònh giaù trò cho pheùp trong 1 coät (field) vaø laø 1 caùch ñöôïc öa thích cho vieäc kieåm tra raøng buoäc toaøn veïn constraint söû duïng hieäu quûa hôn trigger 2. Store Procedure 2.1 Giôùi thieäu Store procedure (sp) Coù theå hieåu 1 caùch ñôn giaûn store procedure laø 1 caâu leänh SQL ñôn hay 1 chuoãi caùc caâu leänh sql ñöôïc taïo saún vaø saún saøng thöïc hieän khi bò kích hoaït -> coù theå coi sp nhö laø 1 batch file. 2.2 Phaân loaïi coù 2 loaïi Store Procedure cuûûa heää thoááng Store Procedure cuûa user 2.3 Muïc ñích söû duïng store procedure Tieát kieäm ñöôïc chi phí veà thôøi gian phaùt trieån trình öùng duïng noù ñöôïc kieåm tra cuù phaùp trong khi taïo do ñoù noù traùnh ñöôïc loãi khi thöïc hieän maø khoâng caàn bieân dòch laïi, taêng cöôøng tính baûo maät database Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 110 SVTH : Haø Minh Chaùnh 2.4 Thöïc hieän Store Procedure 2.4.1 Taïo Store Procedure Quy taéc: - Vieát caùc phaùt bieåu kieåm tra keát quûa ñuùng thì seõ taïo Store Procedure - Kích thöôùc max_128M - Phaûi laø thaønh vieân db_owmer, db_and, db_dlladmin hoaëc ñöôïc caáp quyeàn. - Leänh create procedure khoâng ñöôïc keát hôïp vôùi SQL khaùc trong 1 batch. - Khoâng theå coù create default View 2.4.2 Thöïc thi Store Procedure Tröôùc khi thöïc thi phaûi ñeå gaàn quyeàn. Caùc thuû tuïc heä thoáng coù theå thöïc hieän taïi baát kyø ñaâu. - Cuù phaùp: execute Teân thuû tuïc Thöïc thi môû roäng laø caùc DLL laøm taêng chöùc naêng cho SQL Server Ñöôïc thöïc hieän cuøng con ñöôøng nhö Store Procedure. 2.4.3 Thay ñoåi Store Procedure - Cuù phaùp: Drop procedure Ten thö muïc. Tröôùc khi xoùa 1 thö muïc coøn xem caùc ñoái töôïng phuï thuoäc vaø ñoái töôïng baèng. Exec sp_depents Ten procedure. 3. Default vaø Rule * Nhaän xeùt: Neáu thaáy nhieàu coät treân Table coù chung Default hay Rule thì ta neân taïo moät Default hay Rule rieâng. * Chuù yù: - Chæ coù theå keát noái 1 Default tôùi moät coät - Giaù trò Default seõ kieåm ñònh vôùi baát kyø raøng buoäc Check * Cuù phaùp: (Taïo Default) Create Default Ten As bieåu thöùc. 4. Views: Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 111 SVTH : Haø Minh Chaùnh View xem nhö laø moät ñoái töôïng CSDL ñeå löu tröõ moät query ñaõ ñòng nghóa tröôùc. Caùc baûng ñöôïc truy vaán trong view goïi laø baûng neàn. Ngoaïi tröø moät soá ít, haàu heát caâu leänh SELECT naøo cuõng coù theå ñöôïc ñaët teân vaø löu tröõ nhö moät view. Caùc thaønh phaàn cuûa view thöôøng laø: • Moät taäp con caùc haøng vaø coät cuûa moät baûng neàn. • Hôïp hai hay nhieàu baûng neàn. • Keát hai hay nhieàu baûng neàn. • Toång keát thoáng keâ cuûa moät baûng. • Moät taäp con caùc view khaùc hoaëc toå hôïp caùc view vaø baûng neàn. 4.1 TaïÏo View: View chæ coù theå ñöôïc taïo trong CSDL hieän haønh baèng caùc caùch: - Duøng Create View Wirzard. - Duøng SQL Server Enterprise Manager. - Duøng Transact SQL. 4.1.1 Taïo view baèng SQL Server Enterprise Manager: Vaøo SQL Server Enterprise Manager vaø thöïc hieän caùc böôùc sau: (1) Môû roäng CSDL cuûa baïn vaø click phaûi vaøo views. (2) Treân shorcut menu, click New View. (3) Taïo view baèng caâu leänh select. (4) Xaùc nhaän truy vaán thöïc thi thaønh coâng tröôùc khi baïn löu noù ñeå taïo view. (5) Ñaët teân view. (6) Truy vaán view trong SQl Server Query Analyser ñeå chaéc chaén view ñaõ toàn taïi. 4.2 Thay ñoåi vaø Xoùa View Baïn coù theå thay ñoåi view baèng caùch xoùa vaø taïo laïi noù hoaëc thöïc thi caâu leänh ALTER VIEW 4.2.1 Thay ñoåi view baèng leänh ALTER VIEW Leänh ALTER VIEW thay ñoåi ñònh nghóa view nhöng vaãn cho pheùp baïn duøng quyeàn ñoái vôùi view. Neáu xoùa roài taùi taïo thì baïn phaûi gaùn laïi quyeàn cho noù. Cuù phaùp: ALTER VIEW viewname [(column[, ])] Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 112 SVTH : Haø Minh Chaùnh [WITH ENCRYPTION] AS Select_statement [WITH CHECK OPTION] • Neáu duøng meänh ñeà WITH ENCRYPTION hoaëc WITH CHECK OPTION khi taïo view thì baïn phaûi chöùa noù trong caâu leänh CREATE VIEW neáu baïn muoán giöõ laïi chöùc naêng maø tuøy choïn cung caáp. • Khi taïo moät view, danh saùch coät ñöôïc löu tröõ trong baûng heä thoáng coät. Neáu baïn ñònh nghóa moät coät view vôùi caâu leänh SELECT * vaø sau ñoù thay ñoåi caáu truùc cuûa baûng neàn baèng caùch theâm coät thì coät môùi ñoù vaãn khoâng xuaát hieän trong view. • Khi moät coät ñöôïc choïn trong caâu leänh CREATE VIEW, danh saùch taát caû caùc coät chæ ñöôïc theå hieän khi baïn taïo view tröôùc. Ñeå thaáy coät môùi trong view, baïn phaûi alter view. Ví duï: Thay ñoåi view TitleView ñeå theâm coät synopsis ALTER VIEW dbo.TitleView AS SELECT title, auther, synopsis FROM title 4.2.2 Xoùa View • Neáu baïn khoâng caàn duøng laâu daøi moät view, baïn coù theå huûy ñònh nghóa cuûa noù töø CSDL baèng caùch thöïc thi caâu leänh DROP VIEW. Khi huûy moät view thì phaûi huûy caû ñònh nghóa vaø moïi quyeàn gaùn cho noù. Hôn nöõa, neáu ngöôøi duøng truy vaán baát kyø view naøo maø view ñoù ñaü bò xoùa thì hoï seõ nhaän ñöôïc moät thoâng baùo loãi. Huûy moät baûng ñöôïc tham khaûo bôûi moät view thì view khoâng töï ñoäng xoùa, baïn phaûi xoùa tröïc tieáp view ñoù. • Quyeàn ñöôïc xoùa view maëc ñònh laø chuû sôû höõu cuûa view vaø khoâng theå chuyeån nhöôïng quyeàn naøy ñöôïc. Do ñoù caùc thaønh vieân cuûa sysadmin hoaëc vai troø db_owner coù theå xoùa baát kyø ñoái töôïng naøo baèng caùch chæ ñònh teân chuû sôû höõu trong caâu leänh DROP VIEW. 5. Trigger 5.1 Taïo Trigger * Cuù phaùp : Create Trigger Teân Trigger On table For insert as phaân bieåu SQL Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 113 SVTH : Haø Minh Chaùnh Ví duï: Create Trigger Xoa On Hoadon for delete Declare @ins int Select @ins = select mon from (laø baûng heä thoáng muoán xoùa) Delete from CTHD where MShd = @ins Khi ta xoùa daõy naøo thì baûng naøy seõ ghi laïi 5.2 Xoùa Trigger: Trigger xoùa: - Drop - Baûng lieàn raát bò xoùa * Cuù phaùp: Drop Trigger Teân Trigger Coù theå laøm maát hieäu löïc cuûa Trigger Alter table Teân table { Enable/Disable} Trigger Teân Trigger Luaän vaên toát nghieäp “Chieán löôïc vaø Giaûi phaùp ñeå xaây döïng Chính phuû ñieän töû” GVHD : ThS Buøi Ñình Tieàn Trang 114 SVTH : Haø Minh Chaùnh Taøi lieäu Tham khaûo ----θ---- 1. Philip Syme – Peter Aitken, Teach Yourself C# Web Programming in 21 Days NXB SAMS,2002 2. Kalen Delaney, Inside Microsoft SQL Server 2000 NXB Microsoft, 2001 3. Moät soá taøi lieäu thuoäc Ñeà aùn 112. 4. Moät soá taøi lieäu töø World Bank vaø Ñaïi hoïc Manchester Vöông Quoác Anh.

Các file đính kèm theo tài liệu này:

  • pdfBAOCAOII.pdf
  • rarLUANAN.rar