Luận văn tốt nghiệp phân tích đề tài

Chia sẻ: Thái | Ngày: | Loại File: DOC | Số trang:26

0
346
lượt xem
88
download

Luận văn tốt nghiệp phân tích đề tài

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đây là đề tài viết chương trình cho giáo viên dựa trên mô hình Client-Server gồm các modul: soạn câu hỏi trắc nghiệm, quản lý hệ thống ngân hàng đề thi trắc nghiệm và soạn đề thi, trắc nghiệm và quản lý thông tin của người thi.

Chủ đề:
Lưu

Nội dung Text: Luận văn tốt nghiệp phân tích đề tài

  1. Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 53 Phaàn 2 : Phaân Tích Ñeà Taøi I. Noäi dung ñeà taøi Vieát chöông trình cho giaùo vieân döïa treân moâ hình Client – Server goàm caùc modul • Soaïn caâu hoûi traéc nghieäm • Quaûn lyù ngaân haøng ñeà vaø soaïn ñeà thi • Traéc nghieäm vaø quaûn lí thoâng tin cuûa ngöôøi thi II. Yeâu caàu cuûa ñeà taøi Döïa vaøo noäi dung cuûa ñeà taøi ñaët ra ,chuùng ta caàn xaây döïng moät chöông trình öùng duïng döïa treân caùc yeâu caàu sau : Xaây döïng moät chöông trình theo moâ hình Client – Server, toaøn boä döõ lieäu lieân quan ñeán heä thoáng ñöôïc löu tröõ treân Server, vieäc truy caäp vaø truyeàn döõ lieäu ñöôïc thöïc hieän thoâng qua maïng nhaèm phuïc vuï cho vieäc kieåm tra traéc nghieäm, caäp nhaät cô sôû döõ lieäu Heä thoáng ngaân haøng ñeà thi traéc nghieäm quaûn lí, löu tröõ taát caû caùc caâu thi, ñeà thi cuûa giaùo vieân ñeå kieåm tra traéc nghieäm, ñoàng thôøi heä thoáng cuõng quaûn lí, löu tröõ caùc nhoùm ngöôøi söû duïng vaø keát quaû thi cuûa sinh vieân . Moãi ñeà thi coù moät möùc kieåm tra khaùc nhau, phuø hôïp vôùi trình ñoä cuûa ngöôøi söû duïng, noäi dung muoán kieåm tra vaø hình thöùc ra ñeà. Thoâng qua trình duyeät Web, ngöôøi söû duïng heä thoáng ngaân haøng ñeà thi traéc nghieäm coù theå thöïc hieän caùc thao taùc phuø hôïp vôùi caùc chöùc naêng maø heä th oáng ngaân haøng ñeà thi traéc nghieäm cho pheùp. Ngöôøi söû duïng, tuøy theo möùc ñoä cho pheùp cuûa heä thoáng ngaân haøng ñeà thi traéc nghieäm maø coù caùc quyeàn thao taùc treân heä thoáng khaùc nhau . Ñoái töôïng söû duïng heä thoáng ngaân haøng ñeà thi traéc nghieäm naøy goàm : Ngöôøi quaûn trò chung , Giaùo vieân , Sinh vieân . III. Giaûi quyeát caùc yeâu caàu cuûa ñeà taøi Vì chöông trình xaây döïng theo moâ hình Client – Server ,vieäc truy xuaát, truyeàn döõ lieäu qua maïng thoâng trình duyeät web .Do ñoù chöông trình cuûa ta coù lieân quan ñeán caùc vaán ñeà sau 1. Networking
  2. Maïng maùy tính laø moät taäp hôïp caùc maùy tính ñöôïc noái vôùi nhau bôûi caùc ñöôøng truyeàn vaät lyù theo moät kieán truùc naøo ñoù . Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 54 Trong thöïc teá laø caùc maùy tính trong maïng coù theå chaïy caùc heä ñieàu haønh khaùc nhau treân caùc neàn phaàn cöùng khaùc nhau . Do ñoù ñeå coù theå noùi chuyeän ñöôïc vôùi nhau, caùc quaù trình caàn phaûi duøng chung moät phöông thöùc giao tieáp (protocol) naøo ñoù . Toå chöùc ISO (International Standards Organization) ñaõ ñöa ra moâ hình tham khaûo OSI ( Open Systems Interconnection) duøng ñeå phaân lôùp kieán truùc maïng . Theo moâ hình OSI, thoâng tin muoán göûi hay nhaän qua maïng phaûi ñi qua 7 lôùp . Moãi lôùp coù moät chöùc naêng khaùc nhau vaø cung caáp caùc interface ñeå caùc lôùp phía treân coù theå söû duïng caùc dòch vuï maø lôùp naøy cung caáp . 1.1.Moâ hình maïng OSI Hình II.1.1 Application layer : chöùa caùc dòch vuï phuïc vuï cho ngöôøi duøng nhö truyeàn nhaän file hay email … Presentation layer : chöùa caùc dòch vuï veà thao taùc döõ lieäu nhö neùn, giaûi neùn … Caáp naøy khoâng coù caùc dòch vuï thoâng tin cuûa rieâng noù. APPLICATION LAYER PRESENTATION LAYER SESSION LAYER TRANSPORT LAYER NETWORK LAYER DATALINK LAYER PHYSICAL LAYER Sending Application Receiver Application SESSION LAYER PRESENTATION LAYER APPLICATION LAYER TRANSPORT LAYER NETWORK LAYER DATALINK LAYER PHYSICAL LAYER
  3. Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 55 Session layer : chöùa caùc dòch vuï cho pheùp trao ñoåi thoâng tin giöõa caùc quaù trình, taïo vaø keát thuùc keát noái cuûa caùc quaù trình treân caùc maùy khaùc nhau . Transport layer : chöùa caùc dòch vuï tìm vaø söûa loãi nhaèm baûo ñaûm tính ñuùng ñaén cuûa döõ lieäu nhaän . Network layer : quaûn lyù vieäc keát noái trong maïng lieân quan ñeán ñòa chæ cuûa maùy tính göûi vaø maùy tính nhaän cuõng nhö söï taéc ngeõn giao thoâng cuûa maïng . Datalink layer : baûo ñaûm caùc goùi döõ lieäu ñöôïc göûi ñi thoâng qua maïng vaät lyù . Physical layer : phuïc vuï cho vieäc göûi caùc döõ lieäu laø caùc bit thoâ thoâng qua keânh truyeàn . Do ñaëc tính cuûa moâ hình OSI, döõ lieäu göûi phaûi ñi qua taát caû 14 caáp ñeå ñeán ñöôïc chöông trình nhaän . ÔÛ moãi caáp, döõ lieäu seõ bò treã moät khoaûng thôøi gian. Ñieàu naøy laøm giaûm hieäu suaát cuûa maïng . Moâ hình TPC/IP coù öu ñieåm hôn vaø hieän ñang ñöôïc söû duïng roäng raõi. 1.2.Moâ hình maïng TCP/IP Hình II.1.2 Ñeå ñaûm baûo vieäc truy caäp, truyeàn döõ lieäu treân maïng laø khoâng maát maùt, caùc goùi döõ lieäu ñeán ñích phaûi theo ñuùng thöù töï ñaõ ñöôïc gôûi vaø caùc maùy tính chaïy treân maïng Internet truyeàn thoâng vôùi nhau duøng caùc protocol TCP, UDP . Do ñoù ta söû duïng moâ hình maïng TCP/IP goàm boán lôùp ñöôïc moâ taû baèng hình II.1.2 Application layer : chöùa caùc öùng duïng coù söû duïng maïng . Lôùp naøy töông öùng vôùi hai lôùp treân cuøng (application vaø presentation layer) cuûa moâ hình OSI . Application Layer HTTP,FTP,Telnet, SMTP Transport Layer TCP/IP,UDP Physical Layer EthernetX.25, Token Ring Network Layer IP Receiving Data Sending Data Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 56
  4. Transport layer : cung caáp caùc dòch vuï truyeàn nhaän döõ lieäu giöõa caùc quaù trình vôùi nhau . Caùc quaù trình naøy coù theå trao ñoåi thoâng tin vôùi nhau thoâng qua ñòa chæ cuûa maùy tính göûi/ nhaän vaø coång thoâng tin . Caáp naøy töông öùng vôùi 2 caáp keá tieáp (session vaø transport layer) cuûa moâ hình OSI . Network layer : ñaûm nhaän vieäc xaùc ñònh, tìm ñöôøng vaø phaân phoái caùc goùi thoâng tin tôùi ñòa chæ ñích . Network layer trong moâ hình TCP/IP töông öùng vôùi hai lôùp network vaø datalink cuûa moâ hình OSI . Physical layer : söû duïng caùc giao tieáp chuaån hieän coù nhö Ethernet, Tokenking,… ñeå phuïc vuï cho vieäc göûi vaø nhaän döõ lieäu . Caùc thaønh phaàn lieân quan ñeán maïng • Host : laø moät maùy tính rieâng leû treân maïng . Moãi host treân maïng TCP/IP chæ coù duy nhaát moät ñòa chæ IP (IP number) . • Hostname : Ñoù laø moät teân töôïng tröng coù theå aùnh xaï vaøo trong IP number . Moät vaøi phöông thöùc toàn taïi bieåu dieãn cho aùnh xaï ñoù, nhö laø DNS (Domain Name Service) vaø Sun's NIS (Network Information Service) • IETF : Internet Engineering Task Force laø moät nhoùm chòu traùch nhieäm cho vieäc duy trì chuaãn Internet vaø ñònh nghóa moät chuaãn môùi . • internet : laø moät maïng cuûa nhieàu maïng . Khi vieát baèng chöõ in hoa (Internet), noù quy chieáu ñeán toaøn boä maïng coù moái lieân heä vôùi nhau cuûa nhieàu maïng . • IP number : laø ñòa chæ duy nhaát cho moãi host treân Internet . Noù ñöôïc bieåu dieãn baèng moät soá nguyeân 32bits . • packet : laø moät thoâng ñieäp rieâng leû gôûi treân maïng . Ñoâi khi packet quy chieáu ñeán datagram, nhöng giôùi haïn cuõ luoân luoân quy chieáu ñeán döõ lieäu ôû taïi lôùp maïng vaø sau ñoù quy chieáu thoâng ñieäp ñeán lôùp cao hôn . • protocol : Taäp hôïp caùc ñònh daïng döõ lieäu vaø caùc thoâng ñieäp ñöôïc söû duïng ñeå chuyeån thoâng tin . Nhöõng thöïc theå maïng khaùc nhau phaûi cuøng moät protocol theo traät töï ñeå nhöõng thöïc theå maïng khaùc coù theå hieåu ñöôïc .
  5. Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 57 • socket : laø moät söï truyeàn thoâng endpoint . Trong moâ hình TCP/IP moät socket thöôøng thì ñöôïc xaùc ñònh bôûi moät caëp truøng khôùp duy nhaát cuûa ñòa chæ IP nguoàn, soá port vaø ñòa chæ IP ñích, soá port . • router : Moät host maø ñöôïc bieát ñeán ñoái vôùi caùc package traû veà giöõa caùc maïng khaùc nhau nhö theá naøo . Moät router coù theå trôû thaønh moät ñieàu gì ñoù ñôn giaûn nhö laø moät maùy vôùi hai giao dieän maïng (moãi caùi treân moät maïng vaät lyù khaùc nhau) . • Port number: naèm trong khoaûng 0-65535(vì port ñöôïc bieåu dieãn baèng soá nguyeân 16bits). Nhöõng port naèm trong khoaûng 0-1023 laø nhöõng port daønh rieâng cho nhöõng dòch vuï quen thuoäc nhö HTTP, FTP, vaø caùc dòch cuûa heä thoáng, khoâng neân duøng nhöõng port naøy trong öùng duïng cuûa chuùng ta . Khi chuùng ta vieát caùc chöông trình java truyeàn qua maïng ñieàu naøy coù nghóa laø chuùng ta ñang laäp trình ôû lôùp Application . Chuùng ta caàn quan taâm tôùi caùc protocol TCP vaø UDP … Maø chuùng ta coù theå duøng caùc lôùp trong package java.net . Caùc lôùp naøy cung caáp vieäc truyeàn thoâng qua maïng ñoäc laäp vôùi heä thoáng . Tuy nhieân chuùng ta caàn hieåu roõ söï khaùc bieät giöõa TCP vaø UDP ñeå xaùc ñònh roõ nhöõng lôùp naøo trong thö vieän java maø chuùng ta söû duïng . Khi muoán hai chöông trình truyeàn döõ lieäu cho nhau moät caùch ñaùng tin caäy thì giöõa chuùng phaûi thieát laäp moät connection vaø göõi döõ lieäu qua laïi thoâng qua connection ñoù . • TCP laø moät protocol döïa treân connection cung caáp caùc dataflow giöõa hai maùy tính vaø ñaûm baûo raèng data ñöôïc göõi töø moät ñaàu connection tôùi ñaàu kia khoâng maát maùt vaø ñuùng thöù töï (neáu coù loãi thì seõ ñöôïc thoâng baùo) . Nhöõng öùng duïng yeâu caàu moät keânh truyeàn point-to-point ñaùng tin caäy ñeàu duøng TCP .HyperText Transfer Protocol (HTTP), File Transfer Protocol (ftp) vaø Telnet(telnet)laø nhöõng öùng duïng ñoøi hoûi moät heânh truyeàn ñaùng tin caäy, thöù töï göõi vaø nhaän phaûi ñaûm baûo laø ñieàu kieän buoäc phaûi coù ñoái vôùi öùng duïng naøy . Khi duøng HTTP ñeå ñoïc töø moät URL(Uniform Resource
  6. Location) döõ lieäu caàn phaûi nhaän ñöôïc theo ñuùng thöù töï maø noù göõi ñi neáu khoâng moïi thöù seõ bò ñaûo loän . • UDP protocol cung caáp vieäc truyeàn nhaän data khoâng ñaûm baûo giöõa hai öùng duïng treân maïng . UDP khoâng döïa treân connection nhö TCP . UDP göõi nhöõng package ñoäc laäp vôùi nhau goïi laø datagram töø öùng duïng naøy tôùi öùng duïng kia . Vieäc göõi nhöng datagram gioáng nhö vieäc Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 58 göõi thö thoâng qua böu ñieän . Caùc package ñeán ñích khoâng theo thöù töï, khoâng ñaûm baûo vaø caùc message ñoäc laäp vôùi nhau . Do ñoù ta coù theå ñònh nghóa : UDP laø moät protocol göõi nhöõng package ñoäc laäp goïi laø caùc datagram töø maùy naøy tôùi maùy khaùc, khoâng ñaûm baûo data ñeán thaønh coâng . UDP khoâng döïa treân connection nhö TCP . Moät maùy tính noái maïng laø moät connection vaät lyù ñoái vôùi maïng ñoù . Taát caû nhöõng döõ lieäu göõi cho maùy tính thoâng qua connection ñoù . Tuy nhieân, döõ lieäu coù theå ñöôïc göõi cho nhöõng öùng duïng khaùc nhau treân maùy ñoù . Do ñoù laøm caùch naøo ñeå maùy tính bieát ñöôïc öùng duïng naøo seõ nhaän döõ lieäu ñöôïc göõi ñeán? . Ñieàu naøy ñöôïc giaûi quyeát thoâng qua vieäc söû duïng port, moãi öùng duïng maïng coù moät port töông öùng . Döõ lieäu truyeàn qua maïng coù keøm theo thoâng tin ñòa chæ nhaèm xaùc ñònh maùy tính vaøport ñích. Moãi maùy tính ñöôïc xaùc ñònh baèng moät ñòa chæ IP 32bits, IP protocol duøng ñòa chæ naøy ñeå phaân phaùt döõ lieäu ñuùng cho töøng maùy . Port ñöôïc xaùc ñònh baèng moät soá 16bits . Caùc protocol TCP vaø UDP duøng port number ñeå phaân phaùt döõ lieäu tôùi ñuùng cho töøng öùng duïng . Trong vieäc truyeàn nhaän data döïa treân connection, moät öùng duïng thieát laäp moät connection vôùi moät öùng duïng khaùc baèng caùch gaén moät socket cho moãi port number . Do ñoù seõ khoâng theå coù hai öùng duïng duøng chung moät port . Thoâng qua caùc lôùp trong package java.net cuûa ngoân ngöõ Java, caùc chöông trình vieát baèng Java coù theå duøng TCP hay UDP ñeå truyeàn nhaän data qua maïng . Trong package java.net coù URL, URLConnection, Socket vaø ServerSocket duøng TCP
  7. vaø caùc lôùp DatagramPackage, DatagramServer duøng UDP . Vieäc söû duïng nhöõng khaû naêng maïng do Java support khaù deå daøng so vôùi C vaø C++ . Applet ñöôïc nhuùng trong caùc file HTML . Ñeå chaïy chöông trình Applet qua maïng, tröôùc heát chuùng ta caàn load caùc trang HTML naøy veà maùy cuïc boä . Caùc Applet ñöôïc nhuùng trong trang HTML thoâng qua phaàn khai baùo APPLET . Vieäc load caùc file aûnh vaø file audio ñöôïc thöïc hieän thoâng qua lôùp URL trong package java.net.URL: Uniform Resource Location laø ñòa chæ taøi nguyeân naøo ñoù treân maïng. Ñeå load moät file aûnh töø maïng, ñaàu tieân trong chöông trình Java caàn taïo moät URL chöùa ñòa chæ tôùi file aûnh ñoù, sau ñoù duøng moät soá haøm caàn thieát ñeå connect vaø truy xuaát file aûnh ñoù Ñieåm noãi baät cuûa networking do Java mang laïi laø tính höõu duïng vaø deå söû duïng, ñieàu naøy ñöôïc theå hieän qua package java.net trong caùc lôùp thö vieän cuûa java 2. Caùc moâ hình cô sôû döõ lieäu Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 59 Nhìn chung moïi öùng duïng cô sôû döõ lieäu ñeàu bao goàm caùc phaàn : Thaønh phaàn xöû lyù öùng duïng (Application processing components) Thaønh phaàn phaàn meàm cô sôû döõ lieäu (Database software components) • Baûn thaân cô sôû döõ lieäu (The database itself) Thoâng thöôøng coù 5 moâ hình kieán truùc döïa treân caáu hình phaân taùn veà truy nhaäp döõ lieäu cuûa heä thoáng maùy tính Client/Server : Moâ hình cô sôû döõ lieäu taäp trung (Centralized database model) Moâ hình cô sôû döõ lieäu theo kieåu file-server(File – server database model) Moâ hình xöû lyù töøng phaàn cô sôû döõ lieäu (Database extract processing model) Moâ hình cô sôû döõ lieäu Client/Server (Clent/Server database model) Moâ hình cô sôû döõ lieäu phaân taùn (Distributed database model) 2.1.Moâ hình cô sôû döõ lieäu taäp trung (Centralized database model): Trong moâ hình naøy caùc thaønh phaàn xöû lyù öùng duïng, phaàn meàm cô sôû döõ lieäu vaø baûn thaân cô sôû döõ lieäu ñeàu ôû treân cuøng moät boä xöû lyù . Ví duï ngöôøi duøng maùy tính caù nhaân coù theå chaïy caùc chöông trình öùng duïng coù söû duïng
  8. phaàn meàm cô sôû döõ lieäu Oracle ñeå truy nhaäp tôùi cô sôû döõ lieäu naèm treân ñiaõ cöùng cuûa maùy tính caù nhaân ñoù . Töø khi caùc thaønh phaàn öùng duïng, phaàn meàm cô sôû döõ lieäu vaø baûn thaân cô sôû döõ lieäu cuøng naèm treân moät maùy tính thì öùng duïng ñaõ thích hôïp vôùi moâ hình taäp trung . Haàu heát coâng vieäc xöû lyù luoàng thoâng tin chính ñöôïc thöïc hieän bôûi nhieàu toå chöùc maø vaãn phuø hôïp vôùi moâ hình taäp trung . Ví duï moät boä xöû lyù mainframe chaïy phaàn meàm cô sôû döõ lieäu IMS hoaëc DB2 cuûa IBM coù theå cung caáp cho caùc traïm laøm vieäc ôû caùc vò trí phaân taùn söï truy caäp nhanh choùng tôùi cô sôû döõ lieäu trung taâm. Tuy nhieän trong raát nhieàu heä thoáng nhö vaäy, caû 3 thaønh phaàn cuûa öùng duïng cô sôû döõ lieäu ñeàu thöïc hieän treân cuøng 1 maùy mainframe do vaäy caáu hình naøy cuõng töông töï moâ hình taäp trung . 2.2.Moâ hình cô sôû döõ lieäu theo kieåu file – server ( File – server database model) : Trong moâ hình cô sôû döõ lieäu theo kieåu file – server caùc thaønh phaàn öùng duïng vaø phaàn meàm cô sôû döõ lieäu ôû treân moät heä thoáng maùy tính vaø caùc file vaät lyù taïo neân cô sôû döõ lieäu naèm treân heä thoáng maùy tính khaùc . Moät caáu hình nhö vaäy thöôøng ñöôïc duøng trong moâi tröôøng cuïc boä, trong ñoù moät hay nhieàu heä thoáng maùy tính ñoùng vai troø cuûa server, löu döõ caùc file döõ lieäu cho heä thoáng maùy tính khaùc thaâm nhaäp tôùi . Trong moâi tröôøng file – server, phaàn meàm maïng Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 60 ñöôïc thi haønh vaø laøm cho phaàn meàm öùng duïng cuõng nhö phaàn meàm cô sôû döõ lieäu treân heä thoáng cuûa ngöôøi duøng cuoái coi caùc file hoaëc cô sôû döõ lieäu treân file server thöïc söï nhö laø treân maùy tính chính hoï . Moâ hình file server raát gioáng vôùi moâ hình taäp trung . Caùc file cô sôû döõ lieäu naèm treân maùy khaùc vôí caùc thaønh phaàn öùng duïng vaø phaàn meàm cô sôû döõ lieäu ; tuy nhieân caùc thaønh pphaàn öùng duïng vaø caùc phaàn meàm cô sôû döõ lieäu coù theå coù cuøng moät thieát keá ñeå vaän haønh moät moâi tröôøng taïp trung . Thöïc chaát phaàn meàm maïng ñaõ laøm cho phaàn meàm öùng duïng vaø phaàn meàm cô sôû döõ lieäu töôûng raèng chuùng ñang truy xuaát cô sôû döõ lieäu trong moâi tröôøng cuïc boä .
  9. Moät noâi tröôøng nhö vaäy coù theå phöùc taïp hôn moâ hình taäp trung bôûi vì phaàn meàm maïng coù theå phaûi thöïc hieän cô cheá ñoàng thôøi cho pheùp nhieàu ngöôøi söû duïng cuoái coù theå truy nhaäp vaøo cuøng cô sôû döõ lieäu . 2.3.Moâ hình xöû lyù töøng phaàn cô sôû döõ lieäu (Database extract processing model) : Trong moät moâ hình khaùc trong ñoù moät cô sôû döõ lieäu ôû xa coù theå ñöôïc truy caäp bôûi phaàn meàm cô sôû döõ lieäu, ñöôïc goïi laø xöû lyù döõ lieäu töøng phaàn . Vôùi moâ hình naøy, ngöôøi söû duïng coù theå taïi moät maùy tính caù nhaân keát noái vôùi heä thoáng maùy tính ôû xa nôi coù döõ lieäu mong muoán . Ngöôøi söû duïng sau ñoù coù theå taùc ñoäng tröïc tieáp ñeán phaàn meàm chaïy treân maùy ôû xa vaø taïo yeâu caàu ñeå laáy döõ lieäu töø cô sôû döõ lieäu ñoù . Ngöôøi söû duïng cuõng coù theå chuyeån döõ lieäu töø maùy tính ôû xa veà chính maùy tính cuûa mình vaø vaøo ñiaõ cöùng vaø coù theå thöïc hieän vieäc sao cheùp baèng phaàn meàm cô sôû döõ lieäu treân maùy caù nhaân . Vôùi caùch tieáp caän naøy, ngöôøi söû duïng phaûi bieát chaéc chaén laø döõ lieäu naèm ôû ñaâu vaø laøm nhö theá naøo ñeå truy nhaäp vaø laáy döõ lieäu töø moät maùy tính ôû xa . Phaàn meàm öùng duïng ñi keøm caàn phaûi coù treân caû 2 heä thoáng maùy tính ñeå kieåm soaùt ñeå kieåm soaùt söï truy caäp vaø chuyeån döõ lieäu giöõa 2 heä thoáng . Tuy nhieân, phaàn meàm cô sôû döõ lieäu chaïy treân 2 maùy khoâng caàn bieát raèng vieäc xöû lyù cô sôû döõ lieäu töø xa ñang dieãn ra vì ngöôøi söû duïng taùc ñoäng tôùi chuùng moät caùch ñoäc laäp . 2.4.Moâ hình cô sôû döõ lieäu Client/Server (Client/Server database model) : Trong moâ hình cô sôû döõ lieäu Client/Server , cô sôû döõ lieäu naèm treân moät maùy khaùc vôùi moät maùy coù thaønh phaàn xöû lyù öùng duïng . Nhöng phaàn meàm cô sôû döõ lieäu ñöôïc taùch ra giöõa heä thoáng Client chaïy caùc chöông trình öùng duïng vaø heä thoáng Server löu tröõ döõ lieäu . Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 61 Trong moâ hình naøy, caùc thaønh phaàn xöû lyù öùng duïng treân heä thoáng Client ñöa ra yeâu caàu cho phaàn meàm cô sôû döõ lieäu treân maùy client, phaàn meàm naøy seõ keát noái vôùi phaàn meàm cô sôû döõ lieäu chaïy treân Server . Phaàn meàm cô sôû döõ lieäu treân Server seõ truy caäp vaøo cô sôû döõ lieäu
  10. vaø göûi traû keát quaû cho maùy Client . Môùi nhìn, moâ hình cô sôû döõ lieäu Client/Server coù veû gioáng nhö moâ hình file -server, tuy nhieân moâ hình Client/Server coù raát nhieàu thuaän lôïi hôn moâ hình file-server. Vôùi moâ hình file- server, thoâng tin gaén vôùi söï truy caäp cô sôû döõ lieäu vaät lyù phaûi chaïy treân toaøn maïng . Moät giao taùc yeâu caàu nhieàu söï truy caäp döõ lieäu coù theå gaây ra taéc ngheõn löu löôïng truyeàn treân maïng . Giaû söõ moät ngöôøi duøng cuoái taïo moät query ñeå laáy döõ lieäu toång soá, yeâu caàu ñoøi hoûi laáy döõ lieäu töø 1000 baûn ghi, vôùi caùch tieáp caän file-server noäi dung cuûa taát caû 1000 baûn ghi phaûi ñöa leân maïng, vì phaàn meàm cô sôû döõ lieäu chaïy treân maùy ngöôøi söû duïng phaûi truy caäp töøng baûn ghi ñeå thoaõ maõn yeâu caàu cuûa ngöôøi söû duïng. Vôùi caùch tieáp caän cô sôû döõ lieäu Client/Server, chæ coù query khôûi ñoäng ban ñaàu vaø keát quaû cuoái cuøng ñöa leân maïng, phaàn meàm cô sôû döõ lieäu chaïy treân maùy löu giöõ cô sôû döõ lieäu seõ truy nhaäp caùc baûn ghi caàn thieát, xöû lyù chuùng vaø goïi caùc thuû tuïc caàn thieát ñeå ñöa ra keát quaû cuoái cuøng . Trong moâ hình cô sôû döõ lieäu Client/Server, thöôøng noùi ñeán caùc phaàn meàm front-end software vaø back-end software . Front-end software ñöôïc chaïy treân moät maùy tính caù nhaân hoaëc moät workstation vaø ñaùp öùng yeâu caàu ñôn leõ rieâng bieät, phaàn meàm naøy ñoùng vai troø cuûa Client trong öùng duïng cô sôû döõ lieäu Client/Server vaø thöïc hieän caùc chöùc naêng höôùng tôùi nhu caàu ngöôøi duøng cuoái cuøng Phaàn meàm Front-end software thöôøng ñöôïc chia thaønh caùc loaïi sau : • End user database software : Phaàn meàm cô sôû döõ lieäu naøy coù theå ñöôïc thöïc hieän bôûi ngöôøi söû duïng cuoái treân chính heä thoáng cuûa hoï ñeå truy nhaäp caùc cô sôû döõ lieäu cuïc boä nhoû cuõng nhö keát noái vôùi caùc cô sôû döõ lieäu lôùn hôn treân cô sôû döõ lieäu Server . • Simple query and reporting software : Phaàn meàm naøy ñöôïc thieát keá ñeå cung caáp caùc coâng cuï deã duøng hôn trong vieäc laáy döõ lieäu töø cô sôû döõ lieäu vaø taïo caùc baùo caùo ñôn giaûn töø cô sôû döõ lieäu ñaõ co ù. • Data analysis software : Phaàn meàm naøy cung caáp caùc haøm veà tìm kieám, khoâi phuïc, chuùng coù theå cung caáp caùc phaân tích phöùc taïp cho ngöôøi duûng. Luaän vaên toát nghieäp Phaân tích ñeà taøi
  11. Trang 62 • Application development tools : Caùc coâng cuï naøy cung caáp caùc khaû naêng veà ngoân ngöõ maø caùc nhaân vieân heä thoáng thoâng tin chuyeân nghieäp söû duïng ñeå xaây döïng caùc öùng duïng cô sôû döõ lieäu cuûa hoï . Caùc coâng cuï ôû ñaây bao goàm caùc coâng cuï veà thoâng dòch, bieân dòch ñôn ñeán caùc coâng cuï CASE (Computer Aided Software Engineering ), chuùng töï ñoäng taát caû caùc böôùc trong quaù trình phaùt trieån öùng duïng vaø sinh ra chöông trình cho caùc öùng duïng cô sôû döõ lieäu . • Database administration Tools : Caùc coâng cuï naøy cho pheùp ngöôøi quaûn trò cô sôû döõ lieäu söû duïng maùy tính caù nhaân hoaëc traïm laøm vieäc ñeå thöïc hieän vieäc quaûn trò cô sôû döõ lieäu nhö ñònh nghóa caùc cô sôû döõ lieäu, thöïc hieän löu tröõ hay phuïc hoài . Back-end software : Phaàn meàm naøy bao goàm phaàn meàm cô sôû döõ lieäu Client/ Server vaø phaàn meà m maïng chaïy treân maùy ñoùng vai troø laø Server cô sôû döõ lieäu . 2.5.Distributed database model (Moâ hình cô sôû döõ lieäu phaân taùn) : Caû hai moâ hình File – Server vaø Client/Server ñeàu giaû ñònh laø döõ lieäu naèm treân moät boä xöû lyù vaø chöông trình öùng duïng truy naäp döõ lieäu naèm treân moät maùy khaùc, coøn moâ hình cô sôû döõ lieäu phaân taùn laïi giaû ñònh baûn thaân cô sôû döõ lieäu coù ôû treân nhieàu maùy khaùc nhau . Qua caùc moâ hình cô sôû döõ lieäu treân, deã thaáy moâ hình Clie nt/Server laø moâ hình phuø hôïp caùc yeâu caàu ñaët ra nhaát . Vaán ñeà ôû ñaây laø chuùng ta seõ hieän thöïc moâ hình naøy baèng ngoân ngöõ gì vaø hieän thöïc nhö theá naøo . Caùc ngoân ngöõ laäp trình coù theå xaây döïng nhöõng giao dieän ñeïp vaø thuaän tieän thì thöôøng khoâng coù cô sôû döõ lieäu toát ñi keøm, vaø thöôøng haïn cheá khaû naêng khi söû duïng treân maïng dieän roäng . Caùc phaàn meàm veà cô sôû döõ lieäu coù theå söû duïng moâ hình Client/Server thì thöôøng ñoøi hoûi coù tính chuyeân nghieäp cao . Vaø haàu heát caùc bieän phaùp naøy thì ñeàu coù nhöôïc dieåm laø phaûi coù söï caøi ñaët treân maùy ñôn tröôùc khi moùc noái vôùi Server . Ngoân ngöõ Java ñöa ra moät höôùng giaûi quyeát ñôn giaûn caùc vaán ñeà treân . Vôùi vieäc thöïc thi caùc Applet nhuùng trong trang Web, chuùng ta khoâng caàn coù baát cöù moät söï caøi ñaët naøo maø vaãn söõ duïng ñöôïc caùc tính naêng cuûa chöông trình (Vôùi ñieàu kieän laø coù moät trình duyeät Web vaø maùy tính ñaõ
  12. ñöôïc noái maïng) . Do tính naêng maïng laø ñöôïc cung caáp saün neân Java coù theå duøng treân maïng Internet deã daøng . Vôùi tính ñoäc laäp neàn, ngöôøi söû duïng khoâng phaûi e ngaïi vieäc phaàn meàm khoâng töông thích vôùi heä ñieàu haønh cuûa mình . Ñaëc bieät laø Java coù theå keát noái vôùi haàu heát caùc cô sôû döõ lieäu chuaån cuûa caùc haõng phaàn meàm thoâng qua JDBC, vì vaäy cô sôû döõ lieäu cuûa heä thoáng coù theå xaây döïng baèng heä cô sôû döõ lieäu chuaån, chaúng haïn Oracle ñeå quaûn lyù döõ lieäu moät caùch chaët cheõ (ÔÛ ñaây chuùng ta seõ duøng cô sôû döõ lieäu laø Ms Access trong moâi tröôøng Window Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 63 95) . Moâ hình quaûn lyù ngaân haøng ñeà thi traéc nghieäm ñöôïc xaây döïng döïa theo moâ hình Three- tier nhö hình II.2.5 Client laø moät chöông trình chaïy döôùi daïng applet thoâng qua trình duyeät web ñeå keát noái vaø gôûi caùc yeâu caàu ñeán server Server laø moät chöông trình chaïy döôùi daïng application, coù nhieäm vuï seõ laéng nghe, phuïc vuï caùc yeâu caàu töø client, traû keát quaûveà cho client vaø laø caàu noái trung gian tôùi cô sôû döõ lieäu. Database Server laø phaàn cô sôû döõ lieäu cuûa heä thoáng duøng ñeå löu tröõ taát caû caùc döõ lieäu lieân quan ñeán heä thoáng. Ta seõ söû duïng Access ñeå taïo ra caùc cô sôû döõ lieäu vaø keát noái vôùi server . Taát caû caùc döõ lieäu ñeàu ñöôïc löu treân maùy Server (maùy chuû), vieäc keát noái, truy xuaát cô sôû döõ lieäu thoâng qua JDBC 3. Söû duïng JDBC ñeå taïo vaø truy xuaát cô sôû döõ lieäu 3.1 .Theá naøo laø moät cô sôû döõ lieäu (Database)? Security login Encryption CLIENT Encryption CLIENT Encryption CLIENT Encryption Database Server
  13. Application Server Hình II.2.5 Three-tier system structure Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 64 Cô sôû döõ lieäu laø moät taäp hôïp caùc döõ lieäu coù lieân heä vôùi nhau ñöôïc toå chöùc vaø löu tröõ laïi treân caùc thieát bò tröõ tin . Noù cho pheùp nhieàu ngöôøi söû duïng, nhieàu chöông trình öùng duïng vôùi caùc muïc ñích khaùc nhau ñoàng thôøi truy caäp vaø khai thaùc . 3.2. Laáy döõ lieäu ra töø cô sôû döõ lieäu SQL (Structure Query Language) laø ngoân ngöõ chuaån veà xöû lyù döõ lieäu ñöôïc ANSI vaø ISO thöøa nhaän . Hieän nay haàu heát caùc heä cô sôû döõ lieäu ñeàu hoå trôï SQL . SQL l aø ngoân ngöõ phi thuû tuïc (non procedure language) : ta chæ caàn yeâu caàu maùy tính ñöa ra nhöõng gì maø khoâng caàn bieát maùy tính laøm nhö theá naøo . Ngöôøi söû duïng chæ caàn ñöa ra moät leänh SQL sau ñoù heä cô sôû döõ lieäu seõ phaân tích, xöû lyù leänh naøy vaø traû veà keát quaû ngöôøi söû duïng (ngöôøi söû duïng khoâng caàn laäp trình). Vì vaäy SQL trôï giuùp raát ñaét löïc cho vieäc xuaát döõ lieäu, thoáng keâ, toång hôïp, hay noùi khaùc ñi SQL laøm taêng khaû naêng giao tieáp giöõa ngöôøi vaø maùy . SQL chuaån thöôøng cung caáp theâm moät soá tính naêng khaùc, cho neân veà cô baûn SQL gioáng nhau ôû taát caû caùc heä cô söû döõ lieäu nhöng moãi heä cô sôû döõ lieäu thì noù coù nhöõng ñieåm rieâng cho SQL cuûa noù . 3.3 . ODBC (Object DataBase Connectivity) ODBC coù nhieäm vuï traû lôøi cho söï keát noái tôùi nhöõng cô sôû döõ lieäu trong Window ñöôïc phaùt haønh naêm 1992 bôûi Microsoft . ODBC cho pheùp phaùt trieån vaø moät phieân baûn khaùc ñöôïc phoå bieán naêm 1994 nhanh hôn vaø oån ñònh hô n. noù cuõng laø phieân baûn 32 bit ñaàu tieân . Theâm vaøo ñoù, ODBC baét ñaàu di chuyeån nhöõng neàn khaùc hôn Window vaø trôû neân hoaøn toaøn thaâm nhaäp vaøo PC vaø theá giôùi workstation . ODBC driver ñöôïc cung caáp gaàn nhö bôûi moãi database vendor chuû yeáu . Nhieàu database vendor xaùc minh ODBC nhö moät "alternate interface" cho tieâu chuaån cuûa chuùng vaø chöông trình trong ODBC khoâng thoâng thöôøng . Noù haàu nhö gioáng nhöõng chöông trình Window khaùc, goàm coù nhöõng yeáu ñieåm vaø nhöõng söï choïn löïa laøm cho noù Döõ lieäu vaøo Döõ lieäu ra Döõ lieäu löu tröõ
  14. Xöû lyù Hình 1 Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 65 khoù hoïc . Cuoái cuøng ODBC khoâng phaûi laø moät tieâu chuaån ñieàu khieån ñoäc laäp . Noù phaùt trieån vaø tieán hoùa bôûi Microsoft, ñöa ra moâi tröôøng phaàn meàm caïnh tranh cao chuùng ta laøm vieäc laøm cho töông lai cuûa noù maïnh hôn döï ñoaùn . 3.4. JDBC laø gì ? JDBC laø moät object-oriented bao boïc vaø phaùt thaûo laïi cuûa ODBC API ñeå raát deã hôn cho vieäc hoïc vaø söû duïng vaø noù cho pheùp ta vieát code ñoäc laäp ñeå chaát vaán (query) vaø thao taùc nhöõng cô sôû döõ lieäu . Muïc ñích chính cuûa JDBC laø keát noái chaët cheõ chöông trình Java vôùi cô sôû döõ lieäu . Java ñònh nghóa moïi höôùng cho vieäc nhaän döõ lieäu cuûa application vaø applet driver cuûa JDBC caáp thaáp tieán haønh vieäc chuyeån cô sôû döõ lieäu rieâng bieät ñeán giao dieän JDBC caáp cao hôn, giao dieän naøy ñöôïc söû duïng bôûi ngöôøi phaùt trieån vaø khoâng caàn lo laéng veà cuù phaùp cô sôû döõ lieäu ñaëc tröng khi tieán haønh keát noái vaø query nhöõng cô sôû döõ lieäu khaùc nhau . Nhöõng lôùp (class) JDBC laø moät nhoùm trong goùi java.sql (java.sql package) . Nhöng thoâng thöôøng noù khoâng phaûi laø moät phaàn cuûa boä phaùt trieån phaàn meàm chuaån . Caùc höôùng hieän coù cuûa JDBC laø nhöõng driver caàn thieát cho vieäc keát noái nhöõng cô sôû döõ lieäu maø khoâng ñoøi hoûi baát cöù söï caøi ñaët naøo treân client . Moät driver JDBC coù theå naïp xuoáng cuøng moät applet . 3.5. Caáu truùc JDBC Coù nhöõng lyù do ñeå taùch rôøi laäp trình caáp thaáp töø giao dieän öùng duïng caáp cao. Laäp trình caáp thaáp laø JDBC Driver. JDBC laø raát uyeån chuyeån, noù coù theå laø taøi nguyeân döõ lieäu cuïc boä hay laø server côû sôû döõ lieäu töø xa. Vieäc thöïc thi keát noái thöïc söï taøi nguyeân döõ lieäu/ cô sôû döõ lieäu ñöôïc cho beân trong JDBC Driver . Caáu truùc JDBC bao goàm nhöõng khaùi nieäm sau : • Muïc tieâu cuûa JDBC laø giao tieáp ñoäc laäp DBMS, moät “cô caáu truy xuaát cô sôû döõ lieäu SQL chung” vaø laø moät giao tieáp gioáng nhau cho taát caû caùc taøi nguyeân döõ lieäu khaùc nhau . • Ngöôøi laäp trình chæ vieát moät cô sôû döõ lieäu duy nhaát söû duïng JDBC, chöông trình
  15. coù theå truy xuaát baát cöù taøi nguyeân döõ lieäu naøo .Caáu truùc cuûa JDBC nhö hình 2 Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 66 Lôùp DriverManager ñöôïc söû duïng ñeå môû moät keát noái tôùi cô sôû döõ lieäu qua JDBC driver, driver naøy phaûi ñaêng kyù vôùi DriverManger tröôùc khi vieäc keát noái hình thaønh. Khi moät keát noái ñöôïc gaén vaøo, DriverManager löïa choïn töø moät danh saùch caùc driver coù theå töông thích vôùi kieåu chính xaùc cuûa cô sôû döõ lieäu ñaõ keát noái . Sau khi vieäc keát noái ñöôïc hình thaønh, vieäc goïi query vaø laáy keát quaû laø ñöôïc laøm tröïc tieáp vôùi JDBC driver . JDBC driver phaûi thöïc thi nhöõng lôùp ñeå xöû lyù nhöõng haøm cho cô sôû döõ lieäu rieâng bieät, nhöng ñaëc ñieåm kyõ thuaät cuûa JDBC ñaûm baûo raèng driver seõ ñöôïc tieán haønh nhö döï kieán . Ñieàu coát yeáu laø ngöôøi phaùt trieån coù JDBC driver cho cô sôû döõ lieäu khoâng caàn thieát phaûi lo laéng veà vieäc phaûi thay ñoåi ñoaïn maõ cho chöông trình Java neáu moät kieåu cô sôû döõ lieäu khaùc ñöôïc söû duïng ( giaû söû raèng JDBC driver cho nhöõng cô sôû döõ lieäu khaùc laø coù saün) . Ñieàu naøy ñaëc bieät höõu duïng cho caùc cô sôû döõ lieäu phaân boá . 3.6. ODBC vaø JDBC ODBC trong moâ hình JDBC ñöôïc moâ taû baèng hình 3 Java Aplication JDBC API JDBC Driver Manager JDBC Driver JDBC Driver DBMS DBMS Hình 2 Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 67 ODBC vaø JDBC chia seû nguoàn goác chung : caû hai laø neàn taûng treân X/OPEN goïi caáp giao tieáp cho SQL . Maëc duø nhöõng JDBC driver noåi baät cho nhieàu cô sôû döõ lieäu, chuùng ta coù theå vieát chöông trình Java söû duïng ODBC driver hieän coù . Treân thöïc teá laø Javasoft vaø Intersolv coù vieát moät Java driver – caàu noái JDBC – ODBC – cho pheùp ngöôøi phaùt trieån söû duïng ODBC driver hieän coù trong chöông trình Java . Hình 3 minh hoïa vò trí cuûa JDBC – ODBC Brigde trong kieán truùc toaøn theå cuûa JDBC . Tuy nhieân JDBC – ODBC Brigde ñoøi hoûi söï caøi ñaët treân
  16. client, hay ôû nôi maø chöông trình Java thöïc söï chaïy, bôûi vì Bridge phaûi goïi phöông thöùc noäi boä ñeå chuyeån töø ODBC sang JDBC . Chæ coù Java driver 100% môùi coù theå download thoâng qua maïng vôùi moät Java applet, khoâng caàn baát cöù moät söï caøi ñaët laïi naøo . Nhieäm vuï cuûa ODBC driver trong kieåu töông töï nhö JDBC driver. Treân thöïc teá JDBC – ODBC Brigde thaät söï laø moät JDBC driver chuyeån ñeán vaø töø ODBC ôû caáp thaáp . Khi JDBC driver cho cô sôû döõ lieäu saün coù, chuùng ta coù theå deã daøng baät töø ODBC driver ñeán JDBC driver vôùi moät vaøi thay ñoåi, neáu coù söï thay ñoåi ñoaïn maõ cuûa chöông trình Java . 3.7. Caùc kieåu cuûa JDBC driver Java Aplication JDBC API JDBC Driver Manager DBMS DBMS JDBC /ODBC Bridge ODBC Driver Manager ODBC ODBC Hình 3 Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 68 Coù chính xaùc boán phöông phaùp cho moät chöông trình Java keát noái tôùi cô sôû döõ lieäu : • JDBC-ODBC bridge vaø ODBC : trong tröôøng hôïp naøy, ñaây laø moät giaûi phaùp cuïc boä töø ñoù JDBC driver vaø bridge phaûi hieän dieän trong moãi maùy cuûa user . Ñaây laø nguyeân taéc cô baûn moät giaûi phaùp taïm thôøi . • Maõ töï nhieân (Native code) vôùi Java driver : caùch naøy thay theá ODBC vaø caàu noái vôùi moät giaûi phaùp cuïc boä : native code cho neàn ñoù coù theå ñöôïc goïi bôûi Java . • JDBC-Net pure Java driver : Java-driver-translated JDBC goïi tôùi moät protocol ñoäc laäp, roài ñöôïc chuyeån tôùi moät Server . Server coù theå keát noái tôùi baát kyø moät soá cô sôû döõ lieäu . Phöông thöùc naøy cho pheùp ta goïi moät Server töø moät applet treân maùy Client cuûa tavaø traû veà keát quaû treân applet . • Native protocol Java driver : Java driver chuyeån ñoåi tröïc tieáp tôùi protocol cho cô sôû döõ lieäu ñoù vaø thöïc hieän vieäc goïi . Phöông thöùc naøy chæ coù theå ñöôïc söû duïng treân moät heä
  17. thoáng vaø coù theå noù hieån thò keát quaû treân moät Web browser applet . Neáu ta muoán vieát code ñeå thao taùc moät cô sôû döõ lieäu PC client gioáng nhö dBase, FoxPro, hay access, ta coù theå söû duïng phöông thöùc thöù nhaát vaøcoù taát caû code treân maùy cuûa user . Roäng hôn, nhöõng saûn phaåm cô sôû döõ lieäu client-server nhö cuûa IBM, DB2 cung caáp nhöõng driver caáp 3 cho ta . 3.8. Söû duïng JDBC Driver Muoán söû duïng JDBC driver, ñaàu tieân chuùng ta phaûi coù JDBC driver (vì chuùng khoâng ñi keøm vôùi nhöõng goùi coù trong Java API ) . Tieáp theo chuùng ta muoán söû duïng ODBC, ñöøng queân raèng chuùng ta seõ caàn ODBC driver . Neáu chuùng ta khoâng coù server cô sôû döõ lieäu, nhöng muoán söû duïng JDBC, chuùng ta coù theå söû duïng goùi ODBC driver vôùi Microsoft Access . Söû duïng JDBC –ODBC Bridge, chuùng ta coù theå vieát nhöõng Java application giao tieáp vôùi moät cô sôû döõ lieäu Access . Khoâng may, applet baét buoäc söï giôùi haïn baûo maät neân khoâng cho pheùp truy xuaát ñóa cuïc boä, vì vaäy ODBC driver coù theå khoâng laøm vieäc trong phaïm vi applet (treân moät trình duyeät Web) . Tuy nhieân coù theå baây giôø, vôùi söï thay ñoåi coâng ngheä coù theå coù khaû naêng söû duïng JDBC – ODBC Bridge . Söû duïng ODBC driver trong chöông trình Java ñoøi hoûi söï caøi ñaët laïi ODBC driver vaø JDBC – ODBC Bridge treân maùy client . Ngöôïc laïi, JDBC driver laø lôùp Java coù theå download ñoäng qua maïng cuøng vôùi file chöùa applet ñöôïc goïi . 3.9. Moâ hình hai lôùp vaø ba lôùp Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 69 Khi cô sôû döõ lieäu vaø öùng duïng chaát vaán noù treân nhöõng maùy nhö nhau vaø khoâng coù server code can thieäp thì daãn ñeán keát quaû laø chöông trình nhö moät moâ hình hai lôùp (two-tier) . Moät lôùp laø chöông trìn h öùng duïng vaø nhöõng caùi khaùc laø cô sôû döõ lieäu . Ñaây luoân luoân laø tröôøng hôïp trong heä thoáng JDBC-ODBC . Khi coù moät öùng duïng hay applet goi moät server maø trong khuynh höôùng goïi cô sôû döõ lieäu, chuùng ta goïi noù laø moät moâ hình ba lôùp (three-tier) . Ñaây luoân luoân laø tröôøng hôïp khi coù
  18. moät chöông trình goïi moät server ñeå ta thöïc hieän vieäc goïi . Trong tröôøng hôïp cuoái naøy, server vaø cô sôû döõ lieäu phaûi ôû treân nhöõng maùy rieâng reõ vôùi chöông trình öùng duïng . Hôn nöõa, server code coù leõ cheøn theâm vaøi coâng vieäc luaän lyù tröôùc khi thöïc hieän goïi cô sôû döõ lieäu . 3.10. Keát noái tôùi moät cô sôû döõ lieäu Taát caû caùc ñoái töôïng cô sôû döõ lieäu vaø caùc phöông thöùc ñeàu ôû trong java.sql package vaø ta phaûi import java.sql.* vaøo baát kyø chöông trình naøo söû duïng JDBC . Ñeå keát noái tôùi moät cô sôû döõ lieäu ODBC, ñaàu tieân ta phaûi load JDBC-ODBC bridge driver : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Caâu leänh naøy load driver vaø taïo ra moät ví duï (incstance) cho lôùp ñoù . Keá ñoù keát noái tôùi moät cô sôû döõ lieäu ñaëc thuø, ta phaûi taïo ra moät instance cuûa lôùp keát noái vaø chuyeån ñeán cô sôû döõ lieäu söû duïng cuù phaùp URL : String url = "jdbc:odbc:"); Connection con = .getConnection(url); Chuù yù: teân cô sôû döõ lieäu söû duïng ôû ñaây phaûi truøng vôùi teân Data Source trong ODBC setup panel . Phöông thöùc URL coù theå hoaøn toaøn khaùc nhau ñoái vôùi nhöõng kieåu cô sôû döõ lieäu khaùc nhau : jdbc:subprotocol:subname Nhöõng kyù töï ñaàu tieân ñaïi dieän cho phöông thöùc keát noái vaø luoân luoân laø JDBC. cuõng coù theå coù nhieàu subprotocol vaø ôû ñaây subprotocol ñöôïc ñònh roõø laø ODBC . Noù ñònh nghóa söï keát noái maùy moùc cho moät lôùp cuûa nhöõng cô sôû döõ lieäu . Neáu ta keát noái tôùi moät cô sôû döõ lieäu server treân moät maùy khaùc, ta phaûi ñònh roõ maùy ñoù vaø subdrectory. Cuoái cuøng ta phaûi chæ roõ moät username vaø password . 3.11. Truy xuaát cô sôû döõ lieäu Luaän vaên toát nghieäp Phaân tích ñeà taøi Trang 70 Moät khi ta keát noái tôùi cô sôû döõ lieäu, ta coù theå yeâu caàu cung caáp thoâng tænteân nhöõng teân cuûa caùc baûng, caùc teân vaø nhöõng noäi dung trong caùc coät cuûa chuùng ; vaø ta coù theå chaïy nhöõng caâu leänh SQL maø chaát vaán cô sôû döõ lieäu, hoaëc theâm vaøo, hoaëc thay ñoåi noäi dung .
  19. Nhöõng ñoái töông j maø ta thöôøng duøng ñeå thu ñöôïc thoâng tin töø cô sôû döõ lieäu laø : • DatabaseMetaData: thoâng tin veà cô sôû döõ lieäu noùi chung : teân baûng, baûng lieät keâ (index), teân saûn phaåm cô sôû döõ lieäu vaø phieân baûn, nhöng haønh vi xaùc minh boûi cô sôû döõ lieäu . • ResultSet: thoâng tin veà moät baûng hay moät keát quaû cuûa moät query . Ta truy caäp döõ lieäu theo töøng haøng, nhöng coù theå truy caäp nhöõng coät baát kyø . • ResultSetMetaData : thoâng tin veà nhöõng teân coät vaø nhöõng kieåu trong ResultSet . Trong khi nhöõng ñoái töôïng naøy coù moät soá lôùn caùc phöông thöùc cho pheùp ta laáy ñöôïc raát nhieàu thoâng tin chi tieát veà nhöõng yeáu toá cuûa cô sôû döõ lieäu, coù moät vaøi phöông thöùc chuû yeáu trong moãi ñoái töôïng cho ta thoâng tin ñaày ñuû nhaát veà döõ lieäu cuûa ta . ResultSet Ñoái töôïng ResultSet laø ñoái töôïng ñôn quan troïng nhaát trong JDBC . Noù laø yeáu toá caàn thieát cho vieäc laáy ra moät baûng vôùi toång chieàu roäng vaø khoâng bieát chieàu daøi . Gaàn nhö taát caû caùc phöông thöùc vaø caùc query traû veà döõ lieäu nhö moät ResultSet. Noù chöùa ñöïng soá cuûa nhöõng teân coät maø ta yeâu caàu bôûi teân . Noù cuõng goàm coù moät hay nhieàu haøng maø ta coù theû di chuyeån theo töø treân xuoáng döôùi . Tröôùc khi ta duøng ResultSet thì caàn hoûi coù bao nhieâu coät . Thoâng tin naøy ñöôïc löu tröõ trong ñoái töôïng ResultSetMetaData : / / get the number of columns from the metadata ResultSetM etaData rsmd; rsmd = result.getMetaData(); numCols = rsmd.getColumnCount(); Trong khi ta thu ñöôïc moät ResultSet, noù troû ñeán ñieån baét ñaàu cuûa haøng ñaàu tieân . Ta söû duïng phöông thöùc next() ñeå thu ñöôïc moãi haøng theâm vaøo vaø phöông thöùc traû laïi false khi khoâng coøn haøng naøo . Ta coù theå laáy döõ lieäu trong moät ResultSet trong nhieàu form tuøy thuoäc vaøo loaïi döõ lieäu ñöôïc löu tröõ trong moãi coät . Hôn nöõa, ta coù theå laáy ñöôïc noäi dung cuûa moät coät bôûi soá coät hay bôûi teân coät . Vaøi phöông thöùc bình thöôøng hôn cho ñoái töôïng ResultSet : Luaän vaên toát nghieäp Phaân tích ñeà taøi
  20. Trang 71 getlnt(int) ; traû veà noäi dung cuûa coät ñöôïc ñaùnh soá int nhö moät soá nguyeân. getlnt(String) ; traû veà noäi dung cuûa coät ñöôïc ñaët teân String nhö moät soá nguyeân getFloat(int) ; traû veà noäi dung cuûa coät ñöôïc ñaùnh soá int nhö moät Float. getFloat(String) ; traû veà noäi dung cuûa coät ñöôïc ñaët teân String nhö moät Float. getDate(int) ; traû veà noäi dung cuûa coät ñöôïc ñaùnh soá int nhö moät Date. getDate(String) ; traû veà noäi dung cuûa coät ñöôïc ñaët teân String nhö moät Date. next() ; di chuyeån haøng ñöôïc troû tôùi haøng keá. Traû veà false neáu khoâng coøn haøng naøo. close() ; ñoùng ReultSet. getMetaData() ; traû veà noäi dung cuûa coät ñöôïc ñaùnh soá int nhö moät soá nguyeân. ResultSetMetaData Ta thu ñöôïc ñoái töôïng ResultSetMetaData töø ResultSet duøng phöông thöùc getMetaData() . Ta coù theå söû duïng phöông thöùc naøy ñeå tìm ra soá vaø loaïi cuûa nhöõng coät vaø nhöõng teân cuûa moãi coät : getColumnCount() ; traû veà soá cuûa nhöõng coät trong ResultSet. getColumnName(int) ; traû veà teân cuûa coät soá int. getColumnLable(int) ; traû veà nhaõn ñeà nghò cho coät soá int. isCurrency(int) ; traû veà true neáu coät chöùa moät soá trongñôn vò thi haønh. isREadOnly(int) ; traû veà true neáu coät chæ ñoïc. isAutoincrement(int) ; traû veà true neáu coät laø töï ñoäng taêng. Nhö vaäy nhöõng coät luoân luoân laø khoùa vaø chæ ñoïc. getColumnType(int) ; traû veà loaïi döõ lieäu SQL cho coät naøy. Nhöõng loaïi döõ lieäu naøy goàm coù: bigint, binary, bit, char, date, decimal, double, float, integer, longvarbinary, longvarchar, null, numeric, other, real, smallint, time, timestamp, tiyint, varbinary, varchar . DatabaseMetaData Ñoái töôïng DatabaseMetaData cho chuùng ta thoâng tin veà toaøn boä cô sôû döõ lieäu . Chuùng ta söû duïng noù chuû yeáu ñeå tìm ra nhöõng teân cuûa caùc baûng trong cô sôû döõ lieäu vaø nhöõng teân cuûa caùc coät trong moät baûng . Töø ñoù nhöõng cô sôû döõ lieäu khaùc nhau cuõng xaùc minhkhaùc

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản