Đồ án Xây dựng Phân Hệ Tra Tìm Căn Cước Theo Vân Tay Trên Mạng

Các kết quả thực hiện trong luận văn: Để thực hiện đề tài này, Em đã tìm hiểu những vấn đề: - Internet Information Server (IIS). - Hệ quản trị cơ sở dữ liệu SQL Server version 7.0. - Mô hình Client / Server. - Ngôn ngữ HTML,JavaScript,C#. - Công nghệ ASP.NET - Phương thức kết nối CSDL, sử dụng ADO.NET - Các trình bày trang Web. Các vấn đề đã được thực hiện trong đề tài: Sau một thời gian nổ lực tìm kiếm thông tin, nghiên cứu sách vở, Em đã đưa ứng dụng chương trình: “Xây dựng phân hệ tra tìm đối tượng theo vân tay trên mạng Intranet ứng dụng công nghệ ASP.NET và SQLServer”. - Mô phỏng hệ nhận dạng vân tay tự động - Cài đặt cơ sở dữ liệu trên SQL Server (database, table). - Xây dựng hệ thống trang web phục vụ tra tìm đối tượng trên mạng - Kiểm tra thử nghiệm. - Ứng dụng chạy tốt trên trình duyệt Internet Explorer 6.0. Một số vấn đề còn hạn chế: Mặc dù đã nổ lực rất nhiều nhưng do thời gian có hạn, kiến thức Em còn hạn chế và các điều kiện khách quan khác nên đề tài vẫn chưa đáp ứng được toàn bộ các chức năng mà yêu cấu thực tế đưa ra. Vì thế chương trình Em thực hiện còn có một số vấn đề còn hạn chế: - Chưa sử dụng hết khả năng bảo mật của SQL Server, ASP.NET. - Chưa sử dụng hết khả năng của công nghệ mới ASP.NET của Microsoft - Chưa làm được dịch vụ tra tịm thông qua điện thoại di động.

doc62 trang | Chia sẻ: oanh_nt | Lượt xem: 1139 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng Phân Hệ Tra Tìm Căn Cước Theo Vân Tay Trên Mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Win95/NT, Macintosh, Unixh… Nhöng ruûi thay, html laïi khoâng theå cung caáp baát kyø 1 noäi dung web ñoäng naøo. Vaø vôùi ngaøy caøng nhieàu ngöôøi duøng leân web thì ñieàu naøy ñaõ khieán cho html coù nhieàu haïn cheá. Vaø vôùi söï ra ñôøi cuûa Javascript ñaõ phaàn naøo haïn cheá ñöôïc ñieàu naøy. Ngoaøi ra Javascript cuõng coøn hoã trôï ñöôïc 1 soá tính naêng sau : Truy caäp taát caû caùc thaønh phaàn cuûa 1 trang web thoâng qua laäp trình. Khai baùo caùc bieán coá ngöôøi duøng Gaùn caùc thuû tuïc ñeå xöû lyù caùc thaønh phaàn web Coù khaû naêng taïo vaø xöû lyù caùc thaønh phaàn web Coù khaû naêng taïo 1 caùch hoaøn chænh caùc web ñoäng. Theâm vaøo ñoù Javascript cuõng töông taùc ñöôïc vôùi CGI Caùch thöùc laøm vieäc cuûa Javascript : Khi Browser ñoïc vaø thoâng dòch 1 taøi lieäu html thì noù cuõng laøm töông töï nhö vaäy ñoái vôùi 1 ñoïan code Javascript. Noùi caùch khaùc, Browser seõ thöïc hieän caùc haønh ñoäng ñöôïc chæ ñònh trong ñoaïn code Javascript khi naøo noù load vaø hieån thò taøi lieäu html. Javascript laø 1 ngoân ngöõ ñoäc laäp. Noù ñang ngaøy caøng trôû neân thoâng duïng vaø do ñoù moïi trình duyeät hieän nay ñeàu coù hoã trôï Javascript. 1 soá ñoái töôïng trong Javascript : Array object : cho pheùp taïo maûng baèng bieán vaø giaù trò index. Cuù phaùp : New Array() New Array(size) New Array(element0, element1,..,elementn) Caùc thaønh phaàn cuûa maûng : Size : kích thöôùc cuûa maûng. Khi maûng coù kích thöôùc = 0 thì chæ soá seõ baét ñaàu töø 0 ñeán –1 Element0,..,elementn : caùc chæ soá cuûa maûng. Maûng ñöôïc taïo ra coù n+1 chæ soá vaø ñoä roäng laø n Ví duï minh hoïa : Var myArray = New Array() for(var i=0;i<10;i++) myArray[i]=I; x = myArray[4]; String object : Xaây döïng String : String(arg) Bieán ñoåi maûng thaønh chuoãi String(arg) Taïo ñoái töôïng string vôùi giaù trò maûng ñöôïc bieán ñoåi thaønh chuoãi String.fromCharCode(c1,…,cn) Taïo 1 chuoãi môùi döïa treân ñoái soá String.printf (fmt [, ...]) Taïo chuoãi môùi ñöôïc nhaän daïng nhö goïi haøm printf 1 soá phöông thöùc : chatAt ([index]) Chæ soá kyù töï cuûa chuoãi charCodeAt ([index]) Goïi kyù töï cho chæ soá concat(string) Taïo 1 string môùi ñöôïc raøng buoäc 2 string indexOf (match [, index]) Chæ soá ñaàu tieân cuûa match trong chuoãi.Baét ñaàu tìm kieám chæ soá neáu cho lastIndexOf (match [, index]) Chæ soá cuoá cuûa match trong chuoãi.baét ñaàu tìm kieám chæ soá ñaõ cho match (regexp) Ñoá ngöôïc bieåu thöùc Replace (regexp, replacement) Thay theá choå laïi . search (regexp) Goïi chæ soá keá tieáp slice (begin [, end]) Trôû laïi töø ñaàu cho ñeán cuoá Split ([separator [, limit]]) Substr (begin [, length]) Goïi chuoãi ban ñaàu vaø cho chieàu daøi. Substring (indexA [, indexB]) Goïi chuoãi ban ñaàu töø chæ soá A ñeán chæ soá B ToLowerCase() Ñoåi caùc kyù töï thaønh chöõ hoa. ToUpperCase() Ñoåi caùc kyù töï thaønh chöõ thöôøng Date object : cung caáp caùch thöùc laøm vieäc vôùi ngaøy giôø beân trong heä thoáng. Date() Goïi ñoái töôïng date ñeå xaùx ñònh ngaøy thaùng hieän taïi Date(ms) Goïi ñoái töôïng date ñöôïc hieän dieän bôûi con soá baèng ms(milligiaây), January 1, 1970 12:00 GMT. Date(year,month,day,hour,minutes,second,ms) Goïi ñoái töôïng thôøi gian trong khu vöïc, Date.UTC() Goïi thôøi gian hieän thôøi baèng ms töø GMT nhö 1 con soá Date.UTC(ms) Töông töï Phöông thöùc : GetTime() Goïi thôøi gian ms GMT GetYear Goïi naêm GetMonth() Goïi thaùng GetDay() Goïi ngaøy cuûa thaùng trong khu vöïc GetHour() Goïi giôø GetMinute() Goïi phuùt trong khu vöïc GetSecond() Goïi giaây(0….59) GetYear() Goïi naêm GetMonth() Goïi thaùng SetDay(day) Ñaët ngaøy(1…31) SetHours(hours,minutes,seconds,ms) Ñaët giôø ,phuùt, giaây vaø ms(0…59) SetMinutes(minutes,seconds,ms) Ñaët phuùt, giaây vaø ms SetSeconds(seconds, ms) Ñaët giaây vaø ms SetMillisecond() Ñaët ms Document object : ñaïi dieän cho 1 taøi lieäu html 1 soá thuoäc tính : Alinkcolor Maøu hyperlink khi hoaït ñoäng Anchors Maûng ñoái töïng neo trong document Bgcolor Maøu neàn cuûa document Cookie Göûi caùc leänh cookie töø browser Fgcolor Maøu chöõ Forms Maûng ñoái töôïng Form trong document Location Ñòa chæ URL cuûa document Referrer Ñòa chæ URL cuûa document tham chieáu ñeán 1 document khaùc Ví duï minh hoaï : window.document.linkcolor=red; window.document.bgcolor=while window.document.fgcolor=blue; History object : Chöùa thoâng tin veà ñòa chæ URL ñaõ ñöôïc user vieáng thaêm. Vì lyù do an toaøn neân History object khoâng ñöa ra 1 ñòa chæ URL thöïc söï. Noù cho pheùp di chuyeån qua laïi caùc trang baèng caùc method Back, Forward, Go. Caùc method : Back : load ñòa chæ URL töø danh saùch History Forward : load ñòa chæ URL keá tieáp trong danh saùch History Go : cuõng töông töï nhö Back Length : ñoä roäng Ví duï : Trôû veà trang Product ! Window object : ñaïi dieän cho cöûa soå trình duyeät 1 soá thuoäc tính : Frames Maûng ñoái töôïng frames ñöôïc taïo ra bôûi frameset Length Ñoä roäng cuûa maûng frame Name Teân cuûa ñoái töôïng window ñöôïc ñònh trong method Open() Parent Keá thöøa töø cöûa soå tröôùc Self Tham chieáu ñeán cöûa soå hieän haønh Top Cöûa soå Browser chính Status Thanh status bar treân cöûa soå trình duyeät 1 soá phöông thöùc : alert(): hieån thò hoäp thoaïi thoâng baùo window.alert(“Soá löôïng phaûi laø soá nguyeân döông”); close() : ñoùng cöûa soå ñöôïc chæ ñònh window.close(); confirm() : hieån thò hoäp hoaïi yeâu caàu xaùc nhaän window.confirm(“Are you sure ?”); open() : môû cöûa soå trình duyeät môùi window.open(Home.htm, “Home”); prompt() : hieån thò hoäp thoaïi nhaéc nhôû window.prompt("Welcome?","Enter your name here."); Toaùn töû, töø khoaù vaø haøm trong Javascript : Toaùn töû : Toaùn Töû Vi duï YÙ Nghóa = x =y X baèng y += X +=y x=x+y -= x -=y x=x-y *= x*=y X=x*y /= X/=y X=x/y %= X%=y X=x mod y Toaùn töû gaùn : Toaùn töû YÙ Nghiaõ == Baèng != Khaùc > Lôùn hôn >= Lôùn hôn hoaëc baèng < Nhoû hôn <= Nhoû hôn hoaëc baèng Töø khoaù : Abstract Boolean Break Byte Case Char Continue Default Do While For If Else Extends False True Float Void Goto Static New Null Private Protected Return Try Var With Switch int Haøm : Caùch taïo haøm : function TenHam([ñoái soá 1,..,ñoá soá n]) { // noäi dung } ADO.NET 1. ADO.NET hay ADO++ laø gì. -ADO.NET hay coøn ñöôïc goïi laø ADO+ laø moät coâng ngheä truy xuaát cô sôû döõ lieäu môùi cuûa Microsoft. ADO.NET Vaãn giöõ laïi caùc ñaëc ñieåm deã duøng cuûa ADO nhöng kieán truùc cuûa ADO.NET döôïc thay ñoåi raát nhieàu theo höôùng phuïc vuï caùc öùng duïng WEB. -Caùc ñaëc ñieåm trong moâ hình truy xuaát döõ lieäu môùi moät maët raát ñôn giaûn vaø deã söû duïng maët khaùc khaû naêng öùng duïng vaø xöû lyù cuõng trôû leân raát maïnh meõ vaø ñaùng tin caäy hôn. Ñieåm noåi baät cuûa ADO.NET laø cô cheá raøng buoäc döõ lieäu (Data Binding ) cho pheùp vieát maõ öùng duïng ñôn giaûn , taùch rôøi giöõa noäi dung taøi lieäu caàn theå hieän vaø maõ chöông trình. -Cô cheá raøng buoäc döõ lieäu khoâng nhöõng laøm vieäc treân caùc heä cô sôû döõ lieäu maø coøn laøm vieäc treân caùc ñoái töôïng COM/COM+ . Khoâng chæ treân caùc thaønh phaàn ñoái töôïng OLE DB maø coøn coù theå aùp duïng treân moïi ñoái töôïng. 2.Moâ hình ñoái töôïng cuûa ADO.NET -Nhö ñaõ neâu ôû treân ADO.NET laø moâ hình truy xuaát döõ lieäu môùi. Caùc ñoái töôïng maø ADO.NET cung caáp moät soá seõ raát gioáng vôùi moâ hình ñoái töôïng ADO. Nhöng noùi chung haàu heát ñeàu ñaõ thay ñoåi vaø theâm vaøo nhöõng tính naêng toái öu hôn. Döôùi ñaây laø moâ hình töông taùc cuûa caùc ñoái töôïng ADO.NET 3.Caùc ñoái töôïng cuûa ADO.NET (Chæ xem xet caùc ñoái töôïng duøng cho SQLSERVER) - Doái töôïng Connection : Trong ADO.NET vôùi moãi loaïi cô sô döõ lieäu ñöôïc cung caáp moät ñoái töoïng Connection rieâng ÔÛ ñaây chæ trình baøy ñoái töôïng SqlConnection laø ñoái töôïng duùng ñeå keát noái vôùi cô sôû döõ lieäu SqlServer döôùi ñaây laø moät soá thuoäc tính, Phöông thöùc quan troïng SqlConnection Constructor Khôûi taïo moät ñoái töoïng SQLConnection ConnectionString Thieát laäp, traû laïi xaâu duøng ñeå keát noái vôùi cô sôû döõ lieäu SqlServer ConnectionTimeout Traû laïi khoaûng thôøi gian ñoái töoïng coá gaéng keát noái vôùi CSDL tröôùc khi baùo loãi Database Traû laïi teân cuûa CSDL sau khi ñaõ keát noái DataSource Traû laïi teân SQLSERVER maø doái töôïng keát noái tôùi PacketSize Traû laïi Kích thöôùc cuûa goùi tin maïng duøng ñeå trao ñoåi döõ lieäu vôùi SQLSERVER ServerVersion Traû laïi xaâu theå hieän Phieân baûn cuûa SQLSERVER maø ñoái töôïng ñang keát noái State Traû laïi traïng thaùi hieän taïi cuûa keát noái vôùi CSDL. ChangeDatabase Thay ñoåi CSDL cuûa ñoái töoïng Khi ñang môû Close Ñoùng keát noái vôùi CSDL CreateCommand Taïo ra vaø traû laïi moät ñoái töôïng SqlCommand Open Opens Môû moät keát noái vôùi CSDL theo ConnectionString. +Caùch keát noái vôùi CSDL cuûa SQLConnection töông töï nhö ñoái töôïng Connection cuûa ADO. -Ñoái Töôïng SqlCommand moät soá thuoäc tính vaø phöông thöùc quan troïng cuûa ñoái töôïng: SqlCommand Constructor Khôûi taïo moät ñoái töôïng CommandText Thieát laäp, traû laïi caâu leänh SQL duøng ñeå töông taùc vôùi CSDL CommandTimeout Thieát laäp vaø traû laïi Khoaûng thôøi gian ñoái töôïng coá gaéng thöùc hieän caâu leänh tröôùc khi thoâng baùo loãi CommandType Thieát laäp vaø traû laïi kieåu maø Commandtext seõ ñöôïc thöï hieän Connection Thieát laäp vaø traû laïi ñoái töôïng SqlConnection maø ñoái töôïng SqlCommand söû duïng. Parameters Traû laïi SqlParameterCollection. Cancel Coá gaèng huyû boû vieäc thöïc hieân caâu leänh SQL ExecuteNonQuery Thöïc hieän moät caâu leänh SQL vaø traû laïi soá löôïng thay ñoåi thöïc hieân ñöôïc ExecuteScalar Thöïc hieän moät Querry vaø traû laïi coät ñaàu tieân cuûa doøng ñaàu tieân trong keát quaû Ñoái töôïng DataSet, DataView - DataSet laø ñoái töôïng duøng ñeå xöû lyù döõ lieäu laáy ra töø caùc ngupoàng chöùa (Data Store) Ñoái töôïng naøy cung caáp caùch truy xuaát ñeán danh saùch caùc baûng, coät vaø doøng döõ lieäu thoâng qua nhöõng ñoái töôïn con trong hình döôùi -Moãi ñoái töôïng DataSet bao goàm nhieàu baûng DataTable, caùc baûng trong DataSet quan heï vôùi nhau thoâng qua ñoái töôïng DataRelationShip. DataSet cung caáp cho ta caùch laøm vieäc vôùi taäp hôïp caùc baûng ngaét keát noái töông töï nhö ñang laøm vieäc vôùi caùc baûng trong CSDL thaät Ñoái töôïng DataView cho pheùp tuyø bieán caùch nhìn döõ lieäu chöùa trong caùc baûng cuûa DataSet. Muïc ñích cuûa DataView laø hoã trôï cô cheá raøng buoäc döõ lieäu. DataView theå hieän döõ lieäu duy nhaát cuûa moät baûng trong DataSet. Khaùi quaùt coâng ngheä ASP.NET 1.ASP.NET Khôûi ñaàu. Maëc duø ASP phieân baûn 3.0 ra ñôøi chöa laâu, Microsoft ñaõ vaø ñang noã löïc cho moät coâng ngheä web söû lyù phía maùy chuû hoaøn toaøn môùi ñoù laø ASP.NET (Coøn ñöôïc bieát ñeán vôùi caùi teân ASP+ ôû baûn beta). Trong chöông naøy chuùng ta seõ xem xeùt qua caùc ñaëc tính môùi trong ASP.NET. Microsoft coøn goïi coâng ngheä naøy vôùi caùi teân nghe haáp daãn hôn ñoù laø ’Dòch vuï Web theá heä keá tieáp’ (Next Generation Web Service). Chuùng ta seõ tìm hieåu xem taïi sao chuùng ta caàn ñeán ASP.NET trong töông lai. Chuùng ta seõ tìm hieåu caùch ASP.NET ñöôïc thieát keá vaø caøi ñaët. Chuùng ta seõ xem seùt caùc ñieåm noåi baät cuûa APS.NET. 2.Boä khung dòch vuï web theá heä keá tieáp (NGWSF) Heä ñieàu haønh ñöôïc Microsoft xem laø moät taäp hôïp goàm nhieàu ñoái töôïng töông taùc laân nhau. Chöông trình cuûa baïn cuõng laø moät ñoái töôïng.Microsoft goïi moâ hình naøy vôùi caùi teân khaù phoå bieán laø COM (Compnent Object Mode). Taát caû moïi thöù ñeàu ñöôïc quy veà ñoái töôïng vôùi phöông thöùc, thuoäc tính vaø caùc dòch vuï maø ñoái töôïng ñoù coù theå cung caáp. Phaùt trieån hôn nöõa Microsoft môû roäng COM thaønh COM+ cho pheùp caùc ñoái töôïng COM môû roäng giao tieáp vôùi nhau treân moïi neàn Windows Vôùi söï buøng noå cuûa INTERNET Microsoft laïi môû roäng COM+ thaønh moâ hình ñoái töôïng cao hôn aûnh höôûng ñeán toaøn boä heä ñieàu haønh. Kieán truùc môùi naøy mang teân Khung Dòch Vuï Web theá heä keá tieáp – Next Generation Web Service Framework- hay NGWSF. Tuy mang teân Web nhöng kieán truùc nay thöïc söï aên saâu vaøo heä ñieàu haønh. NGWSF boå sung caùc dòch vò môùi cho caùc ñoái töôïng phaân taùn COM+ bao goàm: +Taäp hôïp caùc thö vieän laäp trình phong phuù vaø thoáng nhaát. +Boä thöïc thi chöông trình ña ngoân ngöõ vaø baûo veä an toaøn maõ thöïc thi. +Ñôn giaûn hoaù quaù trình taïo laäp, phaân phoái vaø baûo trì öùng duïng. +Taêng tính meàm deûo vaø khaû chuyeån cho caùc öùng duïng phaân taùn. +baûo veä caùc phaàn meàm hieän coù vaø giaûm chi phí ñaøo taïo.` 2.1 Tìm hieåu veà khung neàn NGWSF Vieäc tích hôïp ASP vaøo heä ñieàu haønh ôû ASP.NET laø ñieåm khaùc bieät raát quan troïng so vôùi caùc phieân baûn ASP tröôùc ñoù. Caùc phieân baûn ASP tröôùc chæ ñöôïc duøng vaø gaén vaøo heä thoáng nhö thaønh phaàn hoã trôï (Add On). Tuy nhieân ñieàu quan troïng ø baïn caàn neân nhôù ñoù laø boä khung NGWSF khoâng ñôn thuaàn chæ daønh rieân cho ASP.NET. Noù seõ aûnh höôûng ñeán toaøn boä caùc öùng duïng chaïy treân Windows trong töông lai. Döôùi ñaây laø moâ hình cuûa boä khung thöïc thi (Runtime Framework) ñöôïc Windows kieåm soat treân toaøn heä ñieàu haønh ñoái vôùi moïi öùng duïng maø trong ñoù ASP.NET chæ laø moät phaàn. Trang ASP.NET ASP.NET Web service Caùc chöông trình Window truyeàn thoáng Window vaø caùc dòch vuï cuûa heä ñieàu haønh Thaønh phaàn hoã trôï ASP.NET Boä khuøng vaø moâi tröôøng thöïc thi NGWSF Haït nhaân cuûa heä ñieàu haønh 2.2 Ngoân ngöõ trung gian phoå duïng (Common intermediate language) Tuy nhieân moät trong nhöõng öu ñieåm noåi baät nhaát cuûa boä khung thöïc thi cung caáp cho baïn ñoù laø moâi tröôøng thöïc thi trung laäp veà ngoân ngöõ. Taát caû maõ leänh duø ñöôïc vieát baéng ngoân ngöõ naøo ñeàu ñöôïc bieân dòch thanh ngoân ngöõ trung gian goïi laø IL (Intermediate language). Boä khung thöïc thi seõ taïo ra maõ nhò phaân cuoái cuøng hình thaønh neân öùng duïngvaø ñieàu khieån maõ. Ñoái vôùi caùc trng ASP.NET maõ nguoàn seõ ñöôïc dòch ra maõ IL vaø chæ coù maõ IL ñöôïc goïi thöïc thi. Khi maõ nguoàn thay ñoåi maõ IL seõ ñöôïc bieân dich laïi. Caùc trang ASP.NET coøn göõ trong vuùng ñeäm cuõ seõ bò huyû boû vaø thay baèng caùc trang ASP môùi bieân dòch. Moät öu ñieåm nöa laø baïn coù theå goïi maõ leänh cuûa noät ngoâ ngöõ laäp trình hoaøn toaøn khaùc vôùi ngoân ngöõ ñang duøng ñeå vieát öùng duïng. Töùc laø baïn coù theå taïo ra moät ñoái töôïng töø moät ngoân ngöõ, sau ñoù trieäu goïi , thay ñoåi ñoái töoïng töø moät ngoân ngöõ khaùc. Coù theå noùi ñaây laø moät ñieàu tuyeät dieäu vôùi haàu heát caùc nhaø phat trieån vaø phaân phoái öùng duïng treân INTERNET. 3. Cô sôû haï taàng cuûa caùc öùng duïng web. Haï taàng cuûa caùc öùng duïng Web naèm trong moät phaàn cuûa kieán truùc .NET NGWSF . Chuùng bao goàm caùc dòch vuï WEB, caùc trang ASP,ASP.NET Cuøng vôùi boä khung môùi cuûa moâi tröôøng thöïc thi öùng duïng .NET , Caùc ÖÙng duïng vaø dòch vuï Web ñöa ra nhöõng ñaëc ñieåm noåi baät sau ñaây. Hoã trôï giao dieän ngöôøi duøng Caùc thaønh phaàn ñieàu khieån ña naêng laø moät phaàn trong caøi ñaët cuûa ASP.NET. Chuùng giuùp vieäc taïo giao dieän nhanh choùng vaø ñôn giaûn. Chuùng thích hôïp vôùi haàu heát caùc trình duyeät cuõ. Ta cuõng coù theå keá thöøa hay taïo ra caùc ñieàu khieån môùi töø thö vieän cuûa ASP.NET. Hoã trôï truy xuaát döõ lieäu. Moâi tröôøng NGWSF cung caáp phieân baûn môùi cuûa ADO laø ADO+. Phieân baûn ADO+ cho pheùp truy xuaát döõ lieäu baát keå khuaân daïng vaø vò trí cuûa döõ lieäu. ADO+ Thieát keá theo moâ hình höôùng ñoái töoïng treân cô sôû döõ lieäu quan heä. Cho pheùp caùc nhaø phaùt trieån trích ruùt döõ lieäu töø caùc nguoàn phaân taùn khaùc nhau. Töông thích vôùi caùc phaàn meàm hieän coù vaø giaûm chi phí ñaàu tö. Maëc duø coù söï thay ñoåi lôùn trong heä ñieàu haønh nhöng caùc öùng duïng tröôùc ñaây vaãn chay trông tru treân moâi tröôøng môùi naøy. 4. Nhöõng ñieåm khaùc bieät cuûa ASP so vôùi ASP.NET - ASP chæ laø ngoân ngöõ kòch baûn phi ñònh kieåu (None Type) döïa treân VBScript hoaëc JavaScipt. ASP khoâng taän duïng ñöôïc caùc ngoân ngöõ raøng buoäc kieåu maïnh nhö C++ hay Víual Basic. ASP.NET cho pheùp söû duïng ngoân ngöõ trung laäp. Trang ASP.NET coù theå vieát baèng raát nhieàu ngoân ngöõ nhö : VBScript, JavaScript, VíualBasic, C++, C#,Perl… -Moät baát tieän khaùc cuûa ASP laø maõ leänh vaø giao dieän cuûa trang ASP (Ñònh daïng baèng caùc theû HTML ) Troän laãn vaøo nhau. Khi phaùt trieån öùng duïng Web lôùn thöôøng caùc duï aùn caàn taùch ra hai nhoùm. Moät nhoùm thieát keá giao dieän vaø moät nhoùm vieát leänh laäp trình. Keát quaû cuoái cuøng thöôøng laø troän laãn giöõa phaàn thieát keá giao dieän vaø phaàn laäp trình ñeå taïo ra moät file chöông trình duy nhaát. Caùc trang ASP cuûa öùng duïng do ñoùá raát khoù baûo trì khi baïn muoán theâm vaøo caùc maõ leänh laäp trình môùi hay thay ñoåi laïi giao dieän. ASP cho pheùp taùch rôøi giöõa maõ laäp trình vaø noä dung taøi lieäu. -Trong caùc pheân baûn ASP tröôùc baïn haàu nhö phaûi vieát maõ leänh ñeå quaûn lyù moïi chueän. ASP.NET thöïc söï laø moâ hình ñoái töôïng thaønh phaàn loaïi boû raát nhieàu coâng ñoaïn vieát maõ maø laäp trình vieân phaûi laøm. ASP.NET cung caáp caùc thaønh phaàn ñieàu khieån phía trinh chuû (Server side control) hoaït ñoäng theo höôùng xöû lyù söï kieän (Töông töï nhö caùc ñieàu khieå treân FORM cuûa Visual Basic). Moïi vieäc kieåm soaùt traïng thaùi vaø töông taùc vôùi caùc thaønh phaàn ñieàu khieån ñöôïc Web Server vôùi kieán truùc ASP.NET lo lieäu. -Trong ASP vieäc taïo ra caùc trang WML phuïc vuï cho ñieän thoaïi di ñoäng, xöû lyù vaø trao ñoåi döõ lieäu XML caàn phaûi theâm caùc thö vieän phuï vaø ñoøi hoûi quaù trình vieát maõ raát coâng phu. Trong khi ñoù ASP.NET coù saün nhöõng dòch vuï naøy ñeå baïn söû duïng. 5. Caùc ñieåm môùi trong ASP.NET - Pages (Trang öùng duïng) söû duïng caùc thaønh phaàn ñieàu khieån coù khaû naêng hoaït ñoäng vaø töông taùc vôùi nhau ngay treân trình chuû web server. Ñaëc ñieåm naøy giaûm thieåu vieäc vieát maõ töông taùc giöõa caùc trang. Laäp trình trong moâi tröôøng ASP.NET töông töï nhö laäp trình theát keá VB Form vaø do ñoù öùng duïng ASP.NET coøn goïi laø Web Form. -HTML Server Side controls : Caùc thaønh phaàn ñieàu khieån coù theå xöû lyù ngay treân trình chuû döïa vaøo caùc thuoäc tính vaø phöông thöùc töông töï nhö hoaït ñoäng cuûa chuùng phía trình khaùch. Nhöõng thaønh phaàn naøy coøn coù khaû naêng keát hôïp maõ xöû lyù cuûa trang ASP.NET vôùi moät söï kieän naøo ñoù phaùt sinh phía trình khaùch ñöôïc xem nhö ñang dieãn ra treân trình chuû. -Rich controls : Taäp caùc thaønh phaàn ñieàu khieån ña naêng. Caùc ñieàu khieån Rich Control chaïy treân Server vaø coù theå taïo ra caùc phaàn töû cuõng nhö ñoái töôïng HTML phöùc hôïp cho trình khaùch nhö grid, calendar… Rich control cho pheùp baïn raøng buoäc döõ lieäu vaø xöû lyù döõ lieäu nhö treân öùng duïng Desktop thaät söï xoaù ñi bieân giôùi cuûa moâ hình Client/Server. -Web Services: Caùc dòch vuï Web. Trang ASP.NET cuûa baïn co theå khoâng caàn hieån thò keát xuaát cho trình khaùch. Chuùng hoaït ñoäng nhö nhöõng chöông trình xöõ lyù yeâu caàu ôû haäu caûnh. -Caáu hình vaø phaân phoái ñôn giaûn vaø ñeã hieåu vôí caùc file ñònh daïng vaên baûn XML caùc thaønh phaàn ñoái töôïng khoâng coøn phaûi ñaêng kyù vôùi heä thoáng tröôùc khi xöû duïng nöõa. -Töï ñoäng quaûn lyù traïng thaùi cuûa ñoái töôïng Session vaø Application -Quaûn lyù vaø baûo maät. Baïnc coù theå taän duïng caùc dòch vuï daêng nhaäp tuyø bieán cho trang taøi lieäu theo phong caùch web hay cô cheá daêng nhaäp cuûa heä ñieàu haønh. 6.Yeâu caàu phaàn cöùng, Phaàn meàm APS.NET 3.1 Yeâu caàu phaàn cöùng : - Yeâu caàu phaàn cöùng cho NETFRAMEWORK Heä thoáng Processor toái thieåu Processor Khuyeán caùo Ram Toái thieåu Ram khuyeán caùo Client Pentium 90 MHz Pentium 90 Mhz hoaëc nhanh hôn 32 MB 96MB Server Pentium 133 Pentium 133 MHZ hoaëc nhanh hôn 128MB 256MB 3.2 Yeâu caàu phaàn meàm cho ASP.NET -Windows 2000 m Server hoaëc Advance Server cuøng vôùi Service Pack 2, Windows XP Professional hoaëc Phieân baûn 64-bit, Hoaëc Windows Server 2003 family. -MDAC 2.7 (Microsoft Data Acess Component) -IIS 5.0 (Internet informatio service) Quaûn Trò Cô Sôû Döõ Lieäu Treân Web Toång Quan Heä quaûn trò cô sôû döõ lieäu quan heä (RDBMS) SQL SERVER laø moät heä quaûn trò cô sôû döõ lieäu quan heä cho nhieàu ngöôøi duøng (nhôø cô cheá phaân quyeàn). Noù coù caùc chöùc naêng : Löu tröõ data treân caùc baûng. Duy trì caùc moäi quan heä giöõa caùc baûng. Ñaûm baûo caùc raøng buoäc toaøn veïn. Khoâi phuïc data khi coù söï coá. Kieán truùc client/server Heä thoáng cô sôû döõ lieäu coù theå söû duïng caùc moâ hình sau : File base system : trình öùng duïng ñoùng caû vai troø client + server. Host base system : Haàu heát caùc dòch vuï, chöùc naêng naèm taïi maùy trung taâm. Maùy trung taâm ñoùng vai troø client + server. Ngöôøi duøng töông taùc qua thieát bò ñaàu cuoái (terminal). Client/server system : 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). 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 moät saûn phaåm cuøng haõng vôùi SQL Server nhö sau : Access : Coù moâ hình file base system, neân 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 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, soá ngöôøi duøng noù nhieàu nhaát trong caùc DBMS. Triggers Vaø Caùc Leänh SQL Caùc caâu leänh SQL Caùc caâu leänh DDL (Data Definition Language) Cho pheùp taïo ra, quaûn lyù cô sôû döõ lieäu vaø ñoái töôïng trong cô sôû döõ lieäu nhö table, trigger,… Haàu heát caùc caâu leänh DDL ñeàu coù daïng sau : CREATE object_name ALTER object_name DROP object_name Ví duï : CREATE TABLE SUPPLIERS ( SUP_NAME VARCHAR(32) NOT NULL, SUP_ID INTEGER NOT NULL, STREET VARCHAR(25) NOT NULL, CITY_DISTRICT VARCHAR(20) NOT NULL, COUNTRY VARCHAR(20) NOT NULL, CONSTRAINT PK_SUPPLIERS PRIMARY KEY (SUP_ID) ) ALTER TABLE SUPPLIERS ADD PHONE VARCHAR(20) NULL DROP TABLE SUPPLIERS 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 goàm boán caâu leänh : SELECT, INSERT, UPDATE, DELETE. Ví duï : SELECT * FROM SUPPLIERS INSERT INTO SUPPLIERS VALUES( "Buon Me, Inc.", 112, "191 Nguyen Thong Street", "Muon Me Thuoc City", "Viet Nam") UPDATE SUPPLIERS SET SUP_NAME=” Buon Me Thuoc, Inc.” WHERE SUP_ID=112 DELETE FROM SUPPLIERS WHERE SUP_ID=112 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ët 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. Taïo trigger : Ñeå taïo trigger treân baûng, chuùng ta baûo ñaûm raèng baûng ñoù ñaõ toàn taïi. Ñaây laø cuù phaùp caâu leänh taïo trigger : CREATE TRIGGER trigger_name ON table_name FOR {INSERT | UPDATE | DELETE [, ...]} AS Caùc caâu leänh sql [RETURN] Baûng inserted vaø deleted Baûng inserted vaø deleted thaät söï laø hai vuøng nhìn (view) cuûa moät nhaät kyù giao taùc (transaction log) maø coù caáu truùc gioáng nhö baûng maø trigger ñöôïc taïo. Haõy xeùt caâu leänh sau : UPDATE titles SET price=15.5 WHERE type like “%cook” Khi caâu leänh naøy thöïc hieän thì moät baûo sao cuûa caùc doøng ñaõ ñöôïc söûa ñoåi ñöôïc löu vaøo trong nhaät kyù cuøng vôùi moät baûn sao caùc doøng sau khi thay ñoåi. Nhöõng baûn sao naøy luoân coù saün cho moät trigger döôùi daïng baûng deleted vaø inserted. Haøm update() Haøm naøy chæ coù trong trigger vôùi haønh ñoäng insert hoaëc delete. Noù cho pheùp moät trigger xaùc ñònh lieäu moät coät ñaõ coù thay ñoåi bôûi caâu leänh insert hoaëc update hay chöa. Baèng caùch kieåm tra nhö theá naøy maø trigger traùnh ñöôïc vieäc thöïc hieän taùc vuï khoâng caàn thieát. Ví duï : CREATE TRIGGER tgr_titles AS If update(price) INSERT INTO audit_table VALUES(getdate(), “price update”, user_name()) RETURN Xoaù, thay theá trigger Trigger khoâng cho söõa ñoåi vì theá chuùng ta phaûi xoaù moät ñoái töôïng tröôùc khi taïo ra moät trigger khaùc coù cuøng teân, ñeå xoaù trigger chuùng ta söû duïng caâu leänh : DROP TRIGGER trigger_name Trigger seõ ñöôïc xoaù töï ñoäng khi baûng maø noù tham chieáu bò xoaù. Chuùng ta khoâng caàn phaûi xoaù trigger ñeå thay theá noù, ñeå thay theá moät trigger cho moät taùc ñoäng treân baûng thì caàn phaûi taïo môùi trigger vôùi moät teân khaùc. Trigger cuû seõ bò thay theá bôûi trigger môùi vaø neáu noù khoâng coøn coù traùch nhieäm cho baát kyø taùc ñoäng naøo nöõa treân baûng thì noù seõ töï ñoäng xoaù. Stored Procedures Ñònh nghóa Stored procedure laø moät ñoái töôïng cô sôû döõ lieäu coù khaû naêng thöïc thi, noù toàn taïi ñoäc laäp vôùi caùc baûng. Stored proedure coù theå ñöôïc goïi töø Client, töø stored procedure khaùc hoaëc töø Trigger. Taïi sao phaûi duøng Stored Procedure? Stored procedure cung caáp cho caùc öùng duïng cô sôû döõ lieäu nhieàu ñieåm thuaän lôïi qua vieäc thöïc thi caùc xöû lyù boù (batch) vôùi caùc caâu leänh SQL lôùn vaø phöùc taïp ngay taïi Database Server: Thöïc thi nhanh. Sau laàn chaïy ñaàu tieân, Stored procedures ñöôïc löu trong boä nhôù do ñoù chuùng khoâng caàn phaûi ñöôïc phaân tích laïi, toái öu hoùa laïi vaø bieân dòch cho caùc laàn goïi chuùng sau ñoù. Giaûm thoâng xuaát löu thoâng treân maïng. Stored procedures coù theå bao goàm haøng traêm caùc caâu leänh SQL khaùc nhau, nhöng coù theå thöïc thi chæ vôùi moät caâu leänh duy nhaát. Ñieàu naøy cho pheùp giaûm kích thöôùc caùc lôøi goïi töø Client ñeán Server. Laäp trình module. Procedures cung caáp moät phöông phaùp ñeå caét caùc ñoaïn maõ SQL daøi doøng thaønh nhöõng ñoaïn maõ ngaén goïn ñeå deã quaûn lyù hôn. …. Cô cheá thöïc thi Stored Procedures Stored Procedures laøm cho toaøn boä heä thoáng öùng duïng coù hieäu suaát cao vì caùc caâu leänh trong Stored Procedures chæ ñöôïc bieân dòch vaø toái öu moät laàn vaø ñöôïc löu tröõ trong Database Server neân söï löu thoâng treân maïng giaûm. Khi Stored Procedures ñöôïc thi haønh laàn ñaàu tieân thì Server phaûi coù nhieäm vuï toái öu vaø bieân dòch noù. Sô ñoà toái öu vaø bieân dòch ñoù thì ñöôïc löu trong boä nhôù cache vaø do ñoù noù luoân luoân ôû traïng thaùi saün saøng khi coù moät lôøi goïi ñeán noù vaøo nhöõng laàn sau. Thöïc thi laàn ñaàu Thöïc thi laàn sau 1. Ñònh vò Stored Procedures treân ñóa vaø naïp vaøo boä nhôù cache 1. Ñònh vò Stored Procedures trong cache 2. Thay theá caùc giaù trò cho tham soá 2. Thay theá caùc giaù trò cho tham soá 3. Phaùt trieån sô ñoà toái öu 4. Bieân dòch sô ñoà toái öu 5. Thi haønh töø cache 3. Thi haønh töø cache Taïo Stored Procedures : Ñeå vieát moät Stored Procedures, ta caàn phaûi cung caâùp moät Stored Procedures vôùi teân duy nhaát vaø sau ñoù laø caùc caâu leänh SQL. Cuù phaùp toång quaùt: CREATE PROC[EDURE]procedure_name [(parameter1,parameter2,…)] AS Caùc caâu leänh SQL [return[maõ traïng thaùi]] Caùc maõ leänh trong caëp daáu [] laø tuøy choïn (option). Tuy nhieân ñeå coù phong caùch laäp trình toát ta neân coù caâu leänh return keát thuùc Stored Procedures. Ví duï (caùc ví duï sau öùng duïng cho CSDL SINH VIEÂN): CREATE PROC getsinhvien As Select * from sinhvien Return Thi haønh procedure treân: exec getsinhvien Cuù phaùp toång quaùt ñeå thi haønh procedure: [EXEC[UTE]] Procedure_name[@param1=expression][,…] Xoùa moät Stored procedure: DROP PROC[EDURE]procedure_name Ví duï: Drop proc getsinhvien Ví duï Stored procedure coù tham soá ( xuaát ra phieáu ñieåm cuûa sinh vieân vôùi maõ soá sinh vieân): create procedure printgradetable(@mssv char(10)) as select s.masv, s.hoten, m.tenmh, k.diem trom sinhvien s, ketqua k, monhoc m where s.masv =@mssv and s.masv =k.masv and k.mamh=m.mamh and not exists (select * trom ketqua k2 whee k.masv =k2.masv and k.mamh=k2.mamh and k2.lanthi>k.lanthi return Goïi procedure ñeå thi haønh exec printgradetable @mssv = ‘ 039700505’ Hoaëc exec printgradetable ‘039700505’ Ví duï vôùi tham soá maëc ñònh (default) --Liet ke danh sach sinh vien theo nam nhap vao create proc Seaticudentlist(@namsinh int =1979) as if Year(GetDate())-@namsinh<18 begin print‘The Student is not less than 18’ return end select * trom sinhvien where namsinh =@namsinh return Thöïc thi: exec Studentlist or exec studentlist @namsinh=1979 Söû duïng maõ traû veà (return code) vaø tham soá xuaát (output parameter) trong Stored procedure. Giaù trò traû veà chæ laø caùc soá nguyeân – integer vaø tham soá xuaát vôùi töø khoùa output (töø khoùa naøy cuõng phaûi ñöôïc söû duïng trong caâu leänh exec) seõ ñöôïc traû veà trong doøng leänh return. Trong moät stored procedure neáu coù caû giaù trò traû veà vaø tham soá xuaát thì tham soá xuaát ñöôïc öu tieân traû veà tröôùc vaø phaûi hoaøn taát thì môùi tôùi giaù trò maõ ñöôïc traû veà. Ví duï: --Giaù trò ñöa vaøo laø teân khoa vaø tham soá xuaát laø teân caùc sinh vieân thuoäc khoa ñoù create procedure getstudentfromdeparment (@tenkhoa varchar(30))=null, @tensv varchar(30) output) as if @tenkhoa is null return 99 –-chæ laø maõ do ta qui ñònh, khoâng truyeàn tham soá else select @tensv= s.hoen trom sinhvien s, khoa k where s.makhoa = k.makhoa and k.tenkhoa = @tenkhoa return 0 --thuc thi --ta phai khai bao mot bieân de nhan tham so xuat declare @tensinhvien varchar(30) exec getstudentfromdeparment @tenkhoa =’cong nghe thong tin’, @tensinhvien output --tiep theo ta select bieáân @tensinhvien ra man hinh select @tensinhvien Maõ traïng thaùi (status code). SQL Server cung caáp baûng maõ traïng thaùi sao cho ngöôøi duøng xöû lyù loãi trong stong ored procedure Maõ traïng thaùi YÙ nghóa 0 Thaønh coâng -1 Thieáu ñoái töôïng tham chieáu -2 Loãi do sai phaïm kieåu döõ lieäu -3 Xöû lyù bò deadlock -4 Loãi khoâng ñöôïc cho pheùp truy caäp do baûo maät hoaëc khoâng coù quyeàn. -5 Loãi cuù phaùp -6 Loãi do ngöôøi duøng pha taïp (töï cheá ra nhö user-defined datatype) -7 Loãi taøi nguyeân nhö heát boä nhôù -8 Caùc roái raém beân trong heä thoáng nhöng chöa coù nguy hieåm (bug) -9 Heä thoáng haïn cheá truy caäp tôùi -10 Loãi beân trong heä thoáng, nguy hieåm (bug) -11 Loãi beân trong heä thoáng, nguy hieåm (bug) -12 Baûng hoaëc chæ muïc (index) bò hö hoûng -13 Cô sôû döõ lieäu bò hö -14 Loãi phaàn cöùng Cursors trong Stored Procedure : Ta coù theå khai baùo cursors trong Stored Procedures (caùc cursors naøy ñöôïc goïi laø server cursor). Khi moät Stored Procedures traû giaù trò veà (keát thuùc) thì cursor töï ñoäng bò huyû. Trong hình minh hoïa, neáu Stored Procedures ñöôïc loàng nhau thì chuùng coù theå truy caäp caùc cursors ñöôïc khai baùo trong Stored Procedures ôû caáp cao hôn. proc 1 declare curs-1 cursor as …. open curs-1 …. proc 2 exec proc2 …. return ferch curs-1 …. declare curs-2 cursor as …. open curs-2 …. proc 3 exec proc3 …. return ferch curs-1 …. ferch curs-2 …. return Taïi sao laïi duøng cursor ? Phaàn lôùn caùc öùng duïng cô sôû döõ lieäu, caùc leänh SQL khaû thi haønh thöôøng traû veà nhieàu hôn moät doøng (record) cho neân caùc öùng duïng caàn cursor. Caùch duøng caùc caâu leänh thao taùc cursor. Khai baùo cursor : Declare teân_cursor CURSOR FOR caâu_leänh_select [For Update[Delete] OF teân_field ] Môû cursor : OPEN teân_cursor Di chuyeån con troû tôùi maãu tin (record) keá tieáp vaø ñoïc giaù trò hieän haønh cuûa noù: FETCH [NEXT] FROM teân_cursor INTO danh_saùch_bieán open Fetch Teân cursor Data11 Data12 Data21 Data22 Database Data31 Data32 Caäp nhaät baûng vôùi cursor : UPDATE teân_baûng SET field1 = value1, field2 = value 2, … WHERE CURRENT OF teân_cursor Xoùa caùc tröôøng hôïp trong cursor hieän haønh : DELETE [FROM] teân_baûng WHERE CURRENT OF teân_cursor Ñoùng cursor : CLOSE teân_cursor Huûy cursor : DEALLOCATE teân_cursor Moät vaøi ví duï duøng cursor trong Stored Procedures : --Tinh diem trung binh create procedure computeaveragegrade as declare cur_xeploai cursor for select masv, count (*), sum(diem) from ketqua k1 where not exists (select * from ketqua k2 where k1.masv = k2.masv and k1.mamh = k2.mamh and k2.lanthi > k1.lanthi) group bay masv having count(*) = (select count(*) from giangkhoa gk, sinhvien sv where gk.khoa = sv.khoa and gk.mact = sv.mact and sv.masv =k1.masv ) declare @dtb float, @status int, @msv varchar(10), @row int, @tong int open cur_xeploai select @status =0 while (@status =0) begin fetch next trom cur_xeploai into @msv, @row, @tong select @status = @@FETCH_STATUS if @status =0 begin select @dtb = @tong/@row insert into xeploai(masv, diemtb) values (@msv, @dtb) end end close cur_xeploai deallocate cur_xeploai return Chuù thích : @@FETCH_STATUS laø moät bieán toaøn cuïc cuûa SQL Server coù caùc giaù trò sau : Giaù trò Moâ taû Leänh FETCH ñaõ thaønh coâng -1 Leänh FETCH thöïc hieän thaát baïi -2 Haøng ñöôïc FETCH coù loãi Ñöa öùng duïng leân Web : Taïi sao laïi ñöa caùc öùng duïng databases leân web ? Vôùi söï buøng noå cuûa internet laøm cho löôïng thoâng tin doài giaøu hôn, qua ñoù chuùng ta coù theå trao ñoåi, hoïc taäp linh hoaït hôn. Hieän nay moïi ngaønh, lónh vöïc ñeàu muoán ñöa thoâng tin cuûa hoï leân web töø quaûng caùo, rao vaët, chính trò, cho deán nhöõng toå chöùc thöông maïi, phi thöông maïi (phi lôïi nhuaän). Toác ñoä phaùt trieån nhö theá, Tim Berner Lee moät trong nhöõng nhaø saùng laäp ra web ñaõ vaø ñang tìm caùch ngaên chaën söï phaùt trieån traøn lan vuôït taàm kieåm soaùt baèng caùch vieát ra moät chöông trình ñeå giaûi quyeát vaán ñeà treân. Caùc heä thoáng thöông maïi, ngaân haøng, … laø caùc öùng duïng caàn coù söï baûo maät cao ñeå ngaên chaën söï xaâm nhaäp baát hôïp phaùp. Ñeå giaûi quyeát vaán ñeà baûo maät chuùng ta duøng kyû thuaät töôøng löûa-Firewall. Database gaén lieàn vôùi moâ hình client/server (SQL Server, Oracle, …), cô sôû döõ lieäu phaûi laø cô sôû döõ lieäu quan heä. Tuy nhieân cuõng coù caùc heä thoáng söû duïng cô sôû döõ lieäu phaân taùn (ngaân haøng, …) nhöng noù ñoøi hoûi kyû naêng cao vaø chi phí lôùn. Hieän nay ngöôøi ta ñaõ ñöa ra khaùi nieäm cô sôû döõ lieäu ñoái töôïng nhöng noù vaãn chöa ñöôïc phoå bieán nhö caùc heä quaûn trò höôùng ñoái töôïng sau Chrystal Astoria 3.0, DataChannel Rio 3.2, Vignette StoryServer. Ñoái vôùi client/server coù caùc moâ hình sau : Moâ hình truyeàn thoáng client/server hai lôùp Client Browser Web server HTTP Moâ hình client/server ña lôùp : Client Browser Web server Database Server HTTP Queries Coù theå noùi caøng nhieàu lôùp thì heä thoáng xöû lyù caøng chaäm. Taát nhieân noù caùc öu ñieåm rieâng nhö chia coâng vieäc xöû lyù ra cho caùc lôùp ñeå traùnh tình traïng laøm trì treä taïi moät lôùp. Vôùi caùc moâ hình nhö theá chuùng ta thaáy caùc xöû lyù vaãn taäp trung ôû moät trong caùc lôùp. Neáu chuùng ta duøng caùc kyû thuaät Xöû lyù phaân taùn nhö CORBA, DCOM thì heä thoáng seõ hieäu quaû hôn. Söû duïng CGI trong web databases CGI laø moät phöông phaùp maø web seerver coù theå laáy/gôûi data töø databases, documents vaø caùc chöông trình khaùc vaø trình baøy döõ lieäu cho ngöôøi xem qua web. Laø moät giao tieáp coå truyeàn coù caû öu vaø khuyeát ñieåm : Laø moät giao tieáp ñöôïc söû duïng phoå bieán vaø haàu nhö moïi web server ñeàu hoå trôï giao tieáp CGI. Coù theå söû duïng baát cöù ngoân ngöõ laäp trình naøo ñeå vieát CGI : C/C++, java, perl, … do ñoù noù deå hoïc. Coù theå chaïy treân baát cöù heä ñieàu haønh naøo maø web server coù hoå trôï. Khuyeát ñieåm laø xöû lyù caùc request chaäm hôn caùc laäp trình giao tieáp API nhö ASP, Servlet/JSP, PHP. Taïo web baèng HTML : HTML thì quaù phoå bieán vaø deå daøng ñeán noãi moïi ngöôøi ñeàu bieát vaø coù theå taïo ra caùc trang web. Nhöng ñoái vôùi caùc nhaø thieát keá web chuyeân nghieäp thì HTML khoâng ñuû taïo ra caùc trang web maïnh. Noù chæ laø taäp caùc Tags coá ñònh do ñoù chuùng ta caàn caùc coâng ngheä môùi hôn hoaëc thay theá hoaëc keát hôïp vôùi noù ñeå taïo ra caùc trang web sinh ñoäng nhö XML, XHTML. Xöû lyù treân server Ñeå giaûm löu löôïng caùc xöû lyù taïi web server vaø client chuùng ta duøng triggers vaø stored procedures xöû lyù taïi database server. Treân web server ngöôøi ta cuûng ñöa ra moät kyû thuaät laø java server-servlet. Taïi sao phaûi söû duïng servlet ? Vieát caùc xöû lyù treân server baèng java thì nhanh hôn, chuùng ta coù theå noái keát caùc thö vieän ñöôïc vieát baèng C/C++ trong chöông trình java. Java laø moät ngoân ngöõ ñoäp laäp neàn. Cô cheá baûo maät trong java cao hôn caùc ngoân ngöõ khaùc. Tuy nhieân hieän nay coù coâng ngheä treân server maø deå vieát hôn nöõa laø JSP. Vaán ñeà baûo maät Ñieàu toái quang troïng ñoái vôùi caùc heä thoáng thöông maïi laø phaûi coù cô cheá baûo maät cao. Baûo maät qua firewall laø moät toå hôïp giöõa phaàn cöùng vôùi phaàn meàm ñeå taïo ra moät haøng raøo nhaèm ngaên caûn söï xaâm nhaäp baát hôïp phaùp töø beân ngoaøi vaøo maïng noäi boä-LAN. Firewall kieåm soaùt taát caû caùc packet vaøo ra khoûi maïng. Coù caùc moâ hình firewall sau (chæ lieät keâ teân moâ hình): Dual-homed host Sreend host Sreend subnet Moät heä thoáng coù nhieàu lôùp baûo maät : Baûo maät topology : ngaên chaën ôû möùc vaät lyù coù noán loaïi topology Orphan : ñaët web server vaø database treân cuøng moät maùy nhöng laïi khoâng keát noái tröïc tieáp vôùi LAN. Firewall LAN Web Server Database Internet backbone Sacrificial lamb : ñaët web server vaø database treân cuøng moät maùy keát noái vôùi LAN thoâng qua moät firewall. Firewall LAN Web Server Database Internet Firefence : ñaët web server vaø database treân cuøng maùy coù firewall. Inaccessible : ñaët web server vaø database treân cuøng moät maùy noái keát vôùi LAN beân trong moät firewall. Firewall LAN Web Server Database Internet Baûo maät heä ñieàu haønh Khoâng neân xaùc ñònh (taïo) caùc user khoâng caàn thieát. Thay ñoåi password thöôøng xuyeân. Giaùm saùt caùc files nhaät kyù (log files). … + Baûo maät taïi database Haàu heát caùc heä quaûn trò cô sôû döõ lieäu ñeàu cung caáp caùc cô cheá baûo maät cho ngöôøi duøng. + Baûo maät taïi web seerver Xoùa caùc chöông trình chöa duøng/khoâng coøn duøng nöõa. Löu giöû taát caû caùc chöông trình CGI trong cuøng thö muïc. Khoâng cho pheùp cô cheá Server-side includes. Chaïy web server trong moâi tröôøng chroot (chæ coù trong Unix system). Chöông 3 PHAÂN TÍCH YEÂU CAÀU VAØ THIEÁT KEÁ HEÄ THOÁNG Sô löôïc veà nhaän daïng vaân tay. 1.Phaân loaïi vaân tay-Caùc daïng vaân cô baûn. -Trong nhaän daïng vaân tay vaân tay ñöôïc chia thaønh caùc daïng cô baûn sau: -Vaân cung (Arch) cung thöôøng -Cung troài -Vaân quai -Vaân soaùy thöôøng -Vaân xoaùy baát thöôøng -Vaân Xoaùy moùc -Vaân xoaùy ñoâi quai 2. Caùc khaùi nieäm cô baûn -Khu vaân tay : Laø phaàn truøng taâm vaân tay maø chuùng ta taäp chung löu yù ñeå phaân loaïi -Ñöôøng tôùi haïn: Laø hai ñöôøng song song taùch ra bao laáy khu vaân tay -Tam phaân ñieåm: Laø giao ñieåm cuûa 3 doøng vaân (laø giao cuûa hai ñöôøng tôùi haïn) -Taâm ñieåm : Laø ñieåm taïi ñoù doøng vaân trung taâm chuyeån höôùng -Tieâu ñieåm: Laø nôi ñaùnh daáu caùc ñieåm ñaëc bieät 3. Caùc phöông phaùp phaân loaïi vaân tay chæ baûn -Phöông phaùp Paris +Ñöôïc aùp duïng töø ñaàu theá kyû 20 +Mieàn baéc VN duøng ñeán naêm 1957 +Mieàn nam VN duøng ñeán naêm 1975 +Phöông phaùp phaân loaïi Vaân cung : giaù trò = 1 Vaân quai : R giaù trò =2 Vaân quai V giaù trò = 3 Vaân xoaùy W giaù trò = 4 Vaân xoaùy baát thöôøng giaù trò = 5 Coâng thöùc =Giaù trò caùc ngoùn traùi/giaù trò caùc ngoùn phaûi VD : 11123/34521 -Phöôøn phaùp Galto_Henry +Ñöôïc söû duïng töøg naêm 1975 ñeán nay. +Phaân loaïi baèng 6 coâng thöùc: Coâng thöùc 1 : Tính giaù trò cuûa caùc vaân xoaùy Coâng thöùc 2 : Phaân loaïi hai ngoùn troû Coâng thöùc 3 : Phaân loaïi 3 ngoùn troû, giöõa, nhaãn Coâng thöùc 4 :Phaân loaïi theo soá ñeám ñöôøng vaân ngoùn uùt Coâng thöùc 5 : Phaân loaïi theo soá ñeám vaân cuûa vaân quai xuaát hieän Ñaàu tieân ôû 8 ngoùn (Tröø 2 ngoùn uùt) 4.Quy trình giaùm ñònh vaân tay treân heä AFIS Nhaäp aûnh daáu vaân tay Ñaët laïi tyû leä veà 1:1 Tìm ñieåm ñaëc tröng Ñoái saùnh Thaåm ñònh keát quaû Ñöa ra keát luaän Phaân tích yeâu caàu Caùc tröôøng hôïp coù yeâu caàu tra tìm caên cöôùc -Trong caùc coâng taùc cuûa nghaønh ta co raât nhieàu caùc coâng taùc phaûi yeâu caàu tra cöùu caên cöôùc döôùi ñaây laø moät soá tröôøng hôïp chính. -Tröôøng hôïp baét ñöôïc toäi phaïm. Sau khi laáy chæ baûn cuûa ñoái töôïng caàn phaûi tra cöùu xem chæ baûn nay ñaõ coù trong taøng thö caên cöôùc chöa. -Khi khaùm nghieäm hieän tröôøng thu giöõ ñöôïc caùc daáu vaân tay raát caàn thieát phaûi tra tìm xem vaân tay ñoù co trong taøng thö caên cöôùc khoâng. Caùc yeâu caàu cuûa heä thoáng tra tim caên cöôùc theo vaân tay treân maïng -Yeâu caàu tra tìm theo vaân tay : + Maùy traïm queùt vaø göûi aûnh vaân tay caàn tra tìm qua Browser leân may chuû +Maùy chuû nhaän aûnh vaân tay phaân tích vaø tra tìm trong taøng thö vaø traû lôøi laïi maùy traïm döôùi daïng moät trang HTML thoâng qua Browser cuûa maùy traïm -Yeâu caàu tra tìm theo chæ baûn. +Laäp chæ baûn cuûa ñoái töôïng, Xaùc ñònh coâng thöùc cuûa chæ baûn +Göûi yeâu caàu tìm kieám chæ baûn leân maùy chuû thoâng qua Browser +Maùy chuû nhaän yeâu caàu vaø tìm kieám trong taøng thö sau ñoù traû lôøi laïi maùy traïm -Yeâu caàu baûo maät cuûa heä thoáng +Do thoâng tin caên cöôùc laø thoâng tin coù tính baûo maät cao neân moät yeâu caàu taát yeáu cuûa heï thoáng laø phaûi ñaûm baûo an toaøn thoâng tin +Heä thoâng phaûi kieåm xoaùt ñöôïc caùc User truy caäp heä thoáng +Heä thoáng phaûi kieåm xoaùt ñöôïc quaù trình khai thaùc thoâng tin cuûa caùc User -Yeâu caàu veà giao dieän. +Thaân thieän deã söû duïng +Giao dieän ñaùp öùng ñöôïc yeâu caàu ñaëc thuø cuûa coâng taùc tra tìm vaø giaùm ñònh Cô sôû döõ lieäu - Ñeå ñaùp öùng caùc yeâu caàu cuûa heä thoáng cô söû döõ lieäu ñöôïc thieát keá nhö sau: Moät soá baûng chính trong cô sôû döõ lieäu Baûng Persons chöùa caùc thoâng tin lieân quan ñeán ñoái töôïng Teân tröôøng Kieåu döõ lieäu Ñoä daøi PersonID Int 4 Name nvarchar 50 FirstName nvarchar 200 Address nvarchar 3000 Address_Ward nvarchar 200 Address_District nvarchar 200 Address_City nvarchar 200 Offencetype nvarchar 3000 BirthPlace nvarchar 3000 BirthDate DateTime 8 Baûng ChiBan chöùa caùc thoâng tin veà chæ baûn ñoái töôïng ChiBanID Int 4 PersonID Int 4 CPID Int 4 TPID Int 4 GPID Int 4 NPID Int 4 UPID Int 4 CTID Int 4 TTID Int 4 GTID Int 4 NTID Int 4 UTID Int 4 CT1 Char 10 CT2 Char 10 CT3 Char 10 CT4 Char 10 CT5 Char 10 CT6 Char 10 Baûng Fingers Chöùa caùc thoâng tin veà vaân tay FingerID Int 4 PersonID Int 4 FingerType Int 4 BaseType Int 4 LeftRideCount Int 4 RightRideCount Int 4 FingerImage Image 16 Minutiate Image 16 Baûng User Chöùa thoâng tin ngöôøi duøng UerID Int 4 UserName Char 30 Password Char 30 Address Char 300 Company Char 50 Email Int 4 Permistion Int 4 Baûng Historys ghi laò quaù trình ñaêng nhaäp heä thoáng cuûa Ngöôøi duøng HistoryID Int 4 LoginTime DateTime 8 LogoutTime DateTime 8 UserID Int 4 Baûng ShearchHtr chöùa thoâng tin veà quaù trình khai thaùc cuûa caùc User SearchHtrID Int 4 HistoryID int 4 SearchStr char 300 SearchFileName char 100 SearchTime DateTme 8 SearchType Int 4 Heä thoáng web site 1. Sô ñoà heä thoáng web site Main.aspx TimTheoChiBan.aspx TimTheoVanTay.aspx Login.aspx Logout.aspx KetQuaTimkiemTheoChiban.aspx KetQuaTimkiemTheovantay.aspx ChitietKetQuaTimkiem.aspx 2.Caøi ñaët heä thoáng Yeâu caàu heä thoáng : +Heä ñieàu haønh: - Treân maùy chuû caùc baïn coù theå caøi ñaët moät trong caùc heä ñieàu haønh sau: +Window 2000 server + Service Pack 2 trôû leân +IE 6.0. +Window XP Pro +Window 2003 family -Treân maùy traïm caùc baïn coù theå caøi caùc heä ñieàu haønh töø Window 9x ,2K + IE 6.0 trôû leân +Heä quaûn trò CSDL vaø caùc phaàn lieân quan -SqlServer 7.0 trôû leân -NetFrameWork1..1 -IIS 5.0 trôû leân Höôùng daãn caøi daët treân Server. +Caøi daët heä ñieàu haønh +Caøi daët IIS +Caøi daët NetFrameWork +Caøi daët SQLServer +Coppy thö muïc AISNET vaøo oå cöùng +Thieát laäp VitualDirectory cho thö muïc AISNET +Trong SQLServer chaïy file Script ñeå taïo cô sôû döõ lieäu KEÁT LUAÄN Caùc keát quaû thöïc hieän trong luaän vaên: Ñeå thöïc hieän ñeà taøi naøy, Em ñaõ tìm hieåu nhöõng vaán ñeà: Internet Information Server (IIS). Heä quaûn trò cô sôû döõ lieäu SQL Server version 7.0. Moâ hình Client / Server. Ngoân ngöõ HTML,JavaScript,C#. Coâng ngheä ASP.NET Phöông thöùc keát noái CSDL, söû duïng ADO.NET Caùc trình baøy trang Web. Caùc vaán ñeà ñaõ ñöôïc thöïc hieän trong ñeà taøi: Sau moät thôøi gian noå löïc tìm kieám thoâng tin, nghieân cöùu saùch vôû, Em ñaõ ñöa öùng duïng chöông trình: “Xaây döïng phaân heä tra tìm ñoái töôïng theo vaân tay treân maïng Intranet öùng duïng coâng ngheä ASP.NET vaø SQLServer”. Moâ phoûng heä nhaän daïng vaân tay töï ñoäng Caøi ñaët cô sôû döõ lieäu treân SQL Server (database, table). Xaây döïng heä thoáng trang web phuïc vuï tra tìm ñoái töôïng treân maïng Kieåm tra thöû nghieäm. ÖÙng duïng chaïy toát treân trình duyeät Internet Explorer 6.0. Moät soá vaán ñeà coøn haïn cheá: Maëc duø ñaõ noå löïc raát nhieàu nhöng do thôøi gian coù haïn, kieán thöùc Em coøn haïn cheá vaø caùc ñieàu kieän khaùch quan khaùc neân ñeà taøi vaãn chöa ñaùp öùng ñöôïc toaøn boä caùc chöùc naêng maø yeâu caáu thöïc teá ñöa ra. Vì theá chöông trình Em thöïc hieän coøn coù moät soá vaán ñeà coøn haïn cheá: Chöa söû duïng heát khaû naêng baûo maät cuûa SQL Server, ASP.NET. Chöa söû duïng heát khaû naêng cuûa coâng ngheä môùi ASP.NET cuûa Microsoft Chöa laøm ñöôïc dòch vuï tra tòm thoâng qua ñieän thoaïi di ñoäng. Chöa vieát ñöôïc Store Procedure. Trigger, Index ñeå coù theå raøng buoäc cô sôû döõ lieäu moät caùch hieäu quaû, tìm kieám nhanh choùng döõ lieäu caàn thieát. Höôùng phaùt trieån vaø môû roäng cuûa ñeà taøi : Caûi tieán moät soá chöùc naêng chöa hoaøn chænh trong chöông trình. Thieát keá vaø caøi ñaët cô sôû döõ lieäu treân SQL Server thaønh heä phaân taùn, ñeå söû duïng nhieàu server khi soá löôïng ngöôøi duøng tham gia vaøo heä thoáng quaù ñoâng vaø cô sôû döõ lieäu quaù lôùn. Phaùt trieån chöông trình ñeå coù theå phuïc vuï cho heä thoáng maïng ñieän thoaïi di ñoäng Keát luaän : Vôùi kieán thöùc neàn taûng ñaõ hoïc ôû tröôøng vaø baèng söï noå löïc cuûa mình, Em ñaõ hoaøn thaønh ñeà taøi “Xaây döïng phaân heä tra tìm ñoái töôïng theo vaân tay treân maïng Intranet öùng duïng coâng ngheä ASP.NET vaø SQLServer” Thoâng qua ñeà taøi naøy, Em ñaõ böôùc ñaàu ñi saâu vaøo tìm hieåu heä quaûn trò cô sôû döõ lieäu SQL cuõng nhö tìm hieåu veà ASP.NET vaø öùng duïng vaøo ñeà taøi. Tuy chöa hoaøn toaøn taän duïng heát nhöõng öu ñieåm cuûa heä quaûn trò cô sôû döõ lieäu SQL Server vaø ASP.NET, nhöng nhöõng gì ñaõ tìm hieåu vaø ñaõ ñöôïc öùng duïng vaøo ñeà taøi cuõng ñaõ cho Em moät soá hieåu bieát veà heä quaûn trò cô sôû döõ lieäu SQL Server vaø ASP.NET nhaèm ñi saâu hôn nöõa trong vieäc trong töông lai cuûa Em. Maëc duø ñaõ coá gaéng vaø ñaàu tö raát nhieàu nhöng do thôøi gian coù haïn vaø khoâng ñöôïc thöïc hieän treân Internet neân ñeà taøi coøn nhieàu haïn cheá vaø chöông trình coù theå chöa toái öu, ñoàng thôøi do kinh nghieäm laäp trình treân moâi tröôøng laäp trình Web chöa toát neân giao dieän coù nhieàu ñieåm chöa phuø hôïp veà caùch phaân boá maøu saéc, hình aûnh … Em xin nhaän ñöôïc söï ñoùng goùp quí baùu cuûa quyù thaày coâ vaø caùc baïn ñeå chöông trình ngaøy caøng hoaøn thieän hôn. MUÏC LUÏC ---&--- Lôøi môû ñaàu 1 Chöông I Toång quan Yeâu caàu cuûa ñeà taøi 2 Noäi dung nghieân cöùu 2 Chöông II cô soû lyù thuyeát Coâng ngheä Internet 5 Ngoân ngöõ HTML 9 Ngoân ngöõ JAVASCRIPT 21 Coâng ngheä ADO.NET 28 Coâng ngheä ASP.NET 32 Heä quaûn trò CADL treân Web SQLSERVER 36 Chöông III Phaân tích yeâu caàu vaø thieát keá heä thoáng Sô löôïc veà nhaän daïng vaân tay 51 Phaân tich yeâu caàu 55 Cô sôû döõ lieäu 56 Heä thoáng WEB Site 58 Chöông VI Keát luaän 60

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

  • docP0064.doc