Đăng ký Đăng nhập
Trang chủ PHÂN TÍCH VÀ TỐI ƯU HÓA CÂU LỆNH SQL TRÊN CƠ SỞ DỮ LIỆU ORANGLE...

Tài liệu PHÂN TÍCH VÀ TỐI ƯU HÓA CÂU LỆNH SQL TRÊN CƠ SỞ DỮ LIỆU ORANGLE

.DOC
100
301
96

Mô tả:

LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL ®¹i häc quèc gia hµ néi Trêng §¹i Häc Khoa Häc Tù Nhiªn Khoa C«ng nghÖ Th«ng tin §Æng TiÓu Hïng Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Trªn HÖ C¬ së d÷ liÖu ORACLE LuËn v¨n tèt nghiÖp cö nh©n khoa häc Ngµnh Tin häc M· sè: 01-02-10 Gi¸o viªn híng dÉn: 1. Ths TrÇn Xu©n ThuËn 2. Ths Lª Huy Gi¸o viªn ph¶n biÖn: Ths §µo KiÕn Quèc Hµ Néi - 1998 Trang 0 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Môc lôc Môc lôc................................................................................................................................................ Lêi giíi thiÖu.................................................................................................................................... Ch¬ng I: HÖ CSDL quan hÖ vµ ng«n ng÷ hái cã cÊu tróc sql........................... A - HÖ CSDL quan hÖ..................................................................................... 1. Quan hÖ vµ c¸c phÐp to¸n ®¹i sè quan hÖ............................................. 2. C¬ së d÷ liÖu.......................................................................................... 3. M« h×nh CSDL quan hÖ......................................................................... 4. HÖ qu¶n trÞ CSDL .................................................................................. 5. HÖ tiªn ®Ò phô thuéc hµm...................................................................... 6. C¸c d¹ng chuÈn trong CSDL quan hÖ................................................... B. Giíi thiÖu vÒ Ng«n ng÷ hái cã cÊu tróc SQL........................................... 1. Kh¸i niÖm vÒ ng«n ng÷ SQL................................................................. 2. C¸c ®Æc ®iÓm cña ng«n ng÷ SQL.......................................................... 3. C¸c lo¹i c©u lÖnh SQL thao t¸c víi d÷ liÖu cÇn quan t©m khi tèi u................................................................................ Ch¬ng II: CSDL ph©n t¸n theo m« h×nh Client - Server cña Oracle............ A. Kh¸i niÖm vÒ CSDL ph©n t¸n................................................................... B. M« h×nh xö lý Client-Server...................................................................... C. HÖ qu¶n trÞ CSDL Oracle.......................................................................... Ch¬ng III: Ph¬ng ph¸p tèi u ho¸ trong HÖ CSDL Oracle..................................... A. C¸c kh¸i niÖm cÇn biÕt ®Ó tèi u ho¸......................................................... 1. Kh¸i niÖm vÒ tèi u ho¸........................................................................... 2. ChiÕn lîc tèi u trªn c¸c trªn c¸c biÓu thøc quan hÖ............................. 3. C¸c kiÓu ph©n líp trong CSDL Oracle.................................................. 4. C¸c kiÓu kÕt nèi trong Oracle............................................................... 5. C¸c ph¬ng thøc truy nhËp d÷ liÖu......................................................... 6. C¸c luËt tèi u.......................................................................................... B. Ph©n tÝch c¸ch thi hµnh c©u lÖnh SQL...................................................... C. C¸c bíc tèi u ho¸....................................................................................... 1. §Þnh gi¸ biÓu thøc hoÆc ®iÒu kiÖn......................................................... Trang 1 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL 2. ChuyÓn d¹ng c©u lÖnh........................................................................... 3. Tèi u ho¸ c©u lÖnh truy nhËp trªn VIEW.............................................. 4. Chän luËt ®Ó tèi u ho¸............................................................................ 5. Chän ph¬ng thøc truy nhËp tíi hµng..................................................... 6. Chän thao t¸c kÕt nèi............................................................................. D. KÕt luËn vÒ ph¬ng ph¸p tèi u trong Oracle.............................................. 1. Tèi u b»ng viÖc thay ®æi c¸c thùc thÓ.................................................... 2. Tèi u c¸c Table space............................................................................. 3. Tèi u vïng nhí hÖ thèng SGA............................................................... 4. Tèi u ho¸ sö dông Index........................................................................ 5. Tèi u b»ng thay ®æi c©u lÖnh SQL......................................................... 6. Thªm c¸c chØ thÞ thùc hiÖn vµo trong c©u lÖnh..................................... Ch¬ng IV: Giíi thiÖu vµ tèi u hãa c©u lÖnh SQL trong hÖ tÝnh ho¸ ®¬n vµ qu¶n lý kh¸ch hµng c«ng ty cÊp níc TP HCM............ A. Giíi thiÖu vÒ hÖ ch¬ng tr×nh TÝnh ho¸ ®¬n vµ qu¶n lý kh¸ch hµng........ 1. §Æt vÊn ®Ò............................................................................................... 2. Ph©n tÝch bµi to¸n.................................................................................. 3. Gi¶i quyÕt bµi to¸n................................................................................. B. C¸ch thøc t×m ra nh÷ng lÖnh cÇn tèi u trong phÇn mÒm......................... C. Thùc hiÖn tèi u phÇn mÒm Qu¶n lý ho¸ ®¬n níc..................................... 1. Tèi u b»ng sö dông Index...................................................................... 2. Tèi u b»ng thªm chØ thÞ thùc hiÖn vµ thay ®æi c©u lÖnh SQL............... KÕt luËn.............................................................................................................................................. Tµi liÖu tham kh¶o....................................................................................................................... Phô lôc................................................................................................................................................. Phô lôc A: C¸c lÖnh ph©n tÝch ®èi tîng vµ ph©n tÝch c©u lÖnh.................. Phô lôc B: Tèi u c©u lÖnh trªn view Trong phÇn mÒm tra cøu v¨n b¶n ph¸p qui.............................................................. Phô lôc C: giíi thiÖu qu¸ tr×nh tèi u c©u lÖnh kÕt nèi trong phÇn mÒm tra cøu v¨n b¶n ph¸p qui.............................................................. Phô lôc D: Tèi u ho¸ b»ng sö dông Index kÕt hîp víi Hint Text rong phÇn mÒm Tra cøu V¨n b¶n Ph¸p qui................................................................. Trang 2 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Trang 3 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Lêi giíi thiÖu Trong t×nh h×nh hiÖn nay c¸c doanh nghiÖp cã nhiÒu chi nh¸nh ®Æt ë nhiÒu n¬i víi khèi lîng d÷ liÖu lín, ®a ngêi dïng, thêng sö dông c¬ së d÷ liÖu ph©n t¸n. Do ®ã c¸c phÇn mÒm m¸y tÝnh hç trî nghiÖp vô kinh doanh cña c¸c doanh nghiÖp còng ph¶i ®îc tæ chøc vµ sö dông hÖ ph©n t¸n mét c¸ch hîp lý. Tuy nhiªn tèc ®é xö lý cña c¸c phÇn mÒm qu¶n lý cã khèi lîng d÷ liÖu lín n»m ph©n t¸n sÏ trë nªn v« cïng chËm, kh«ng ®¸p øng ®îc c¸c yªu cÇu cña ngêi sö dông. §iÒu nµy ®ßi hái c¸c nhµ ph¸t triÓn phÇn mÒm kh«ng nh÷ng ph¶i x©y dùng ®îc nh÷ng phÇn mÒm lín, ®a ngêi dïng mµ cßn ph¶i kh«ng ngõng nghiªn cøu vµ ®a ra c¸c gi¶i ph¸p tèi u ho¸ c©u lÖnh, nh»m tõng bíc n©ng cao tèc ®é xö lý vµ gi¶m gi¸ thµnh cña phÇn mÒm. Qua t×m hiÓu vµ nghiªn cøu qu¸ tr×nh x©y dùng mét sè phÇn mÒm lín ë ViÖt Nam th× qu¸ tr×nh tèi u ho¸ c©u lÖnh cña c¸c HÖ ch¬ng tr×nh rÊt cã ý nghÜa v× kinh phÝ ®Çu t cña c¸c doanh nghiÖp cho c¸c thiÕt bÞ phÇn cøng bíc ®Çu cßn rÊt h¹n chÕ. Cho nªn gi¶i ph¸p tèi u ho¸ ®Õn tõng c©u lÖnh cµng trë nªn quan träng h¬n trong viÖc ®¶m b¶o sù tån t¹i vµ ph¸t triÓn cña phÇn mÒm. §iÒu nµy lu«n lu«n cã ý nghÜa lín ngay c¶ khi c¸c yªu cÇu vÒ phÇn cøng ®îc ®¸p øng v× chØ cÇn mét c©u lÖnh kh«ng ®îc tèi u sÏ lµm t¨ng thêi gian ch¹y rÊt nhá nhng khi trong hÖ ch¬ng tr×nh lín, ®a ngêi dïng th× c©u lÖnh ®ã cã thÓ ®îc thùc hiÖn lÆp l¹i nhiÒu lÇn vµ thêi gian t¬ng øng chung cña c¶ hÖ thèng sÏ t¨ng lªn rÊt nhiÒu. Trong qu¸ tr×nh tèi u ®èi víi mét phÇn mÒm, vÊn ®Ò ®Æt ra lµ lµm sao cã thÓ c¶i thiÖn hiÖu suÊt cña phÇn mÒm trong ®iÒu kiÖn hiÖn cã vµ thêi gian thùc thi kh«ng t¨ng lªn qu¸ nhanh khi d÷ liÖu t¨ng lªn nhiÒu (cã thÓ tõ hµng chôc ngµn ®Õn hµng triÖu b¶n ghi). §Ò tµi cña luËn v¨n lµ “Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL trªn HÖ CSDL ORACLE” LuËn v¨n bao gåm nh÷ng néi dung chÝnh nh sau: 1. HÖ CSDL vµ ng«n ng÷ SQL. Trang 4 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL 2. KiÕn tróc CSDL Oracle. 3. T×m hiÓu qu¸ tr×nh thùc hiÖn c©u lÖnh SQL vµ ®a ra mét sè nguyªn nh©n lµm c©u lÖnh thùc hiÖn kÐm hiÖu qu¶. 4. C¸c ph¬ng ph¸p tèi u ho¸ c©u lÖnh SQL trªn CSDL Oracle. 5. Thùc hiÖn tèi u trªn HÖ tÝnh ho¸ ®¬n vµ qu¶n lý kh¸ch hµng cña c«ng ty cÊp níc TP HCM, HÖ tra cøu V¨n b¶n ph¸p qui trªn Web. Träng t©m cña luËn v¨n lµ ®Ò xuÊt c¶i tiÕn c¸c ph¬ng ph¸p tèi u ho¸ c©u lÖnh SQL vµ c¸c c©y ph©n tÝch c©u lÖnh SQL nh»m ®a ra c¸c chØ môc (Index) thÝch hîp, t¸c ®éng ®Õn qu¸ tr×nh thùc hiÖn lÖnh lµm t¨ng tèc ®é ch¬ng tr×nh. Bíc ®Çu nh÷ng c¶i tiÕn mµ luËn v¨n ®Ò xuÊt ®· thu ®îc nh÷ng kÕt qu¶ ®¸ng khÝch lÖ nh t¨ng tèc ®é thùc hiÖn lªn kho¶ng ba lÇn víi phÇn mÒm TÝnh ho¸ ®¬n vµ t¨ng lªn hµng chôc lÇn ®èi víi phÇn mÒm tra cøu V¨n b¶n ph¸p qui. H¬n thÕ nh÷ng kÕt qu¶ nghiªn cøu cña luËn v¨n vÒ ph¬ng ph¸p tèi u cã thÓ dÔ dµng ¸p dông cho c¸c phÇn mÒm CSDL kh¸c. Cuèi cïng em ch©n thµnh c¶m ¬n sù hç trî vµ híng dÉn tËn t×nh cña thÇy gi¸o Hµ Quang Thôy, thÇy TrÇn Xu©n ThuËn, anh Lª Huy, anh Vò M¹nh Cêng, chÞ Hoµng A Na cïng toµn thÓ c¸c thÇy gi¸o, c« gi¸o khoa C«ng NghÖ Th«ng Tin, c¸c anh chÞ nh©n viªn C«ng ty CSE vµ c¸c b¹n ®· gióp ®ì em rÊt nhiÒu trong qu¸ tr×nh thùc tËp, nghiªn cøu vÒ ®Ò tµi vµ hoµn thµnh luËn v¨n nµy. Hµ Néi - 1998 Trang 5 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Ch¬ng I HÖ c¬ së d÷ liÖu quan hÖ vµ ng«n ng÷ hái cã cÊu tróc sql A - HÖ c¬ së d÷ liÖu quan hÖ 1. Quan hÖ vµ c¸c phÐp to¸n ®¹i sè quan hÖ 1.1. Quan hÖ Quan hÖ lµ mét tËp con cña tÝch §Ò-c¸c cña mét hoÆc nhiÒu miÒn. Nh vËy mét quan hÖ cã thÓ lµ v« h¹n. ë ®©y lu«n lu«n gi¶ thiÕt r»ng quan hÖ lµ mét tËp h÷u h¹n. Mçi hµng cña mét quan hÖ gäi lµ mét bé, khi ®ã quan hÖ lµ tËp con cña tÝch §Ò-c¸c D1D2D3...Dn lµ quan hÖ n ng«i. Mçi bé cña quan hÖ cã n thµnh phÇn (thêng hiÓu lµ n cét). C¸c cét cña quan hÖ gäi lµ c¸c thuéc tÝnh. Cã thÓ ®Þnh nghÜa quan hÖ theo c¸ch h×nh thøc nh sau: Gäi R=A1, A2, ..., An lµ tËp h÷u h¹n c¸c thuéc tÝnh, mçi thuéc tÝnh Ai víi i=1, 2, ..., n cã miÒn gi¸ trÞ t¬ng øng lµ dom(Ai). Quan hÖ trªn tËp thuéc tÝnh R= A1, A2, ..., An lµ tËp con cña tÝch §Ò-c¸c, r  dom(A1)  dom(A2) ... dom(An). Khi ®ã kÝ hiÖu r(R) hoÆc r(A1, A2, ..., An) lµ quan hÖ. 1.2. Kho¸ cña lîc ®å quan hÖ Kho¸ (Key) cña quan hÖ r trªn tËp thuéc tÝnh R={A1, ...An} lµ tËp con KR sao cho bÊt k× hai bé kh¸c nhau t1, t2  r lu«n tho¶ t1(K)t2(K). §iÒu nµy cã nghÜa lµ lîc ®å quan hÖ kh«ng cã hai bé gièng nhau trªn mäi thuéc tÝnh cña R. 1.3. C¸c phÐp to¸n ®¹i sè quan hÖ Gäi r vµ s lµ quan hÖ trªn tËp thuéc tÝnh R={A1, A2,...,An} vµ R1={B1,B2,...,Bn}. Gi¶ thiÕt r»ng quan hÖ r, s lµ tËp h÷u h¹n c¸c bé. §èi víi c¸c phÐp hîp, giao vµ trõ, hai quan hÖ tham gia ph¶i lµ kh¶ hîp. Trang 6 LuËn v¨n tèt nghiÖp:  Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Hîp cña hai quan hÖ KÝ hiÖu hîp cña hai quan hÖ r vµ s lµ r  s. BiÓu diÔn h×nh thøc cã d¹ng: r  s ={t/ts hoÆc tr hoÆc tr vµ s}  PhÐp giao KÝ hiÖu giao cña hai quan hÖ r vµ s lµ r  s. BiÓu diÔn h×nh thøc cã d¹ng: r  s ={t/tr vµ s}  PhÐp trõ KÝ hiÖu r-s lµ tËp c¸c bé thuéc r nhng kh«ng thuéc s. BiÓu diÔn h×nh thøc cã d¹ng: r-s={t/t  r vµ t s}.  TÝch §Ò-c¸c trªn c¸c quan hÖ TÝch §Ò-c¸c cña r vµ s lµ tËp (n*m) bé víi n thµnh phÇn ®Çu cã d¹ng mét bé thuéc r vµ m thµnh phÇn sau cã d¹ng cña mét bé thuéc s. BiÓu diÔn h×nh thøc cã d¹ng: r  s={t/t cã d¹ng (a1,a2,...,an,b1,b2,...,bn) trong ®ã (a1,a2,...,an  r ) vµ (b1,b2,...,bn  s)}  PhÐp chiÕu Gäi t lµ mét bé thuéc r, A R, t[A] lµ gi¸ trÞ cña bé t¹i thuéc tÝnh A, X  R. Víi X={B1,B2,...,Bn} th× t[X]=(t[B1],t[B2],...,t[Bn]). PhÐp chiÕu trªn tËp X cña quan hÖ r kÝ hiÖu lµ r[X] ®îc ®Þnh nghÜa nh sau: r[X]={t[X]/t  r}. Thùc chÊt cña phÐp chiÕu lµ lo¹i bá ®i mét sè thuéc tÝnh vµ gi÷ l¹i nh÷ng thuéc tÝnh cßn l¹i cña quan hÖ ®ã  PhÐp chän Gi¶ sö F ®îc diÔn t¶ b»ng mét tæ hîp Boolean cña c¸c to¸n h¹ng, mçi to¸n h¹ng lµ mét phÐp so s¸nh ®¬n gi¶n gi÷a hai biÕn lµ hai thuéc tÝnh, hoÆc mét bªn lµ thuéc tÝnh mét bªn lµ h»ng, cho gi¸ trÞ "®óng" hoÆc "sai" ®èi víi mçi bé ®· cho khi kiÓm tra riªng trªn bé ®Êy. Trang 7 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Trong F cã c¸c phÐp to¸n so s¸nh lµ {<, =, >, >=, <=, }, vµ c¸c phÐp logic lµ {, , }. BiÓu diÔn h×nh thøc cã d¹ng: ¬F(r)={t r  F(t)=®óng}  PhÐp kÕt nèi Gäi  lµ mét trong c¸c phÐp so s¸nh =, >=, >, <, <=, <>, phÐp kÕt nèi ®îc ®Þnh nghÜa nh sau: PhÐp kÕt nèi cña quan hÖ r ®èi víi thuéc tÝnh A víi quan hÖ s ®èi víi thuéc tÝnh B lµ: r  s = (tu)tr, us vµ tA  uB víi gi¶ thiÕt mçi gi¸ trÞ cña thuéc tÝnh tA ®Òu cã thÓ so s¸nh ®îc víi gi¸ trÞ cña thuéc tÝnh uB (qua phÐp so s¸nh ). Trêng hîp  lµ dÊu "=" gäi lµ kÕt nèi b»ng hay cßn gäi lµ kÕt nèi tù nhiªn. Khi ®ã kÕt nèi t¹i thuéc tÝnh cïng tªn cña hai quan hÖ vµ mét trong hai thuéc tÝnh ®ã sÏ ®îc lo¹i bá qua phÐp chiÕu.  PhÐp chia Gäi r lµ quan hÖ n-ng«i vµ s lµ quan hÖ m-ng«i (n>m, s  ). Khi ®ã phÐp chia ®îc ®Þnh nghÜa nh sau: PhÐp chia r  s lµ tËp tÊt c¶ (n-m) bé t sao cho víi mäi bé u  s th× t  u r. 2. C¬ së d÷ liÖu C¬ së d÷ liÖu (CSDL) lµ m« h×nh thùc thÓ ph¶n ¸nh thÕ giíi thùc ®îc ®Ò cËp ®Õn, do ®ã nã lµ sù trõu tîng ho¸ cña thÕ giíi thùc. CSDL lµ nguån d÷ liÖu cho mäi hÖ thèng th«ng tin dùa trªn m¸y tÝnh, nh÷ng d÷ liÖu nµy ®îc lu gi÷ trong m¸y tÝnh ®îc tæ chøc dùa trªn mét qui ®Þnh nµo ®ã nh»m gi¶m thiÓu ®îc sù d thõa vµ ®¶m b¶o sù thèng nhÊt víi nhau (toµn vÑn d÷ liÖu). Trong lÞch sö ph¸t triÓn cña CSDL cã 3 m« h×nh CSDL chÝnh ®îc sö dông lµ: M« h×nh ph©n cÊp: M« h×nh d÷ liÖu lµ mét c©y trong ®ã c¸c nót biÓu diÔn c¸c tËp thùc thÓ, gi÷a c¸c nót con vµ c¸c nót cha ®îc liªn hÖ theo mét mèi liªn hÖ x¸c ®Þnh.   M« h×nh m¹ng: M« h×nh ®îc biÓu diÔn lµ mét ®å thÞ cã híng. Trang 8 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL M« h×nh quan hÖ: M« h×nh nµy dùa trªn c¬ së kh¸i niÖm lý thuyÕt tËp hîp cña c¸c quan hÖ, tøc lµ tËp c¸c k-bé.  3. M« h×nh c¬ së d÷ liÖu quan hÖ Kh¸i niÖm to¸n häc cña m« h×nh CSDL quan hÖ (hiÓu theo nghÜa lÝ thuyÕt tËp hîp) th× quan hÖ lµ tËp con cña tÝch §Ò-c¸c (®îc gäi lµ miÒn). Gäi D1, D2, D3..... Dn lµ n miÒn. TÝch §Ò-c¸c n miÒn lµ D1D2D3...Dn lµ tËp tÊt c¶ n bé (v1,v2,v3,...,vn) sao cho viDi, víi i=1, 2, ..., n. 4. HÖ qu¶n trÞ c¬ së d÷ liÖu HÖ ch¬ng tr×nh ®Ó cã thÓ qu¶n lý, tæ chøc lu tr÷, cho phÐp t×m kiÕm, thay ®æi, thªm bít d÷ liÖu trong CSDL ®îc gäi lµ HÖ qu¶n trÞ CSDL. HÖ qu¶n trÞ CSDL cã nhiÖm vô rÊt quan träng lµ gióp ngêi dïng cã thÓ sö dông ®îc hÖ thèng mµ Ýt nhiÒu kh«ng cÇn quan t©m tíi thuËt to¸n chi tiÕt hoÆc biÓu diÔn d÷ liÖu trong m¸y tÝnh . 5. HÖ tiªn ®Ò phô thuéc hµm Kh¸i niÖm phô thuéc hµm trong mét quan hÖ lµ mét kh¸i niÖm rÊt quan träng ®èi víi viÖc x©y dùng m« h×nh d÷ liÖu. Trong c¸c hÖ thèng th«ng tin qu¶n lý khi cÇn thiÕt kÕ CSDL quan hÖ thêng ®ßi hái ph¶i chän lîc ®å c¸c quan hÖ. ViÖc chän c¸c lîc ®å nµy tèt h¬n hay xÊu h¬n lîc ®å kh¸c ®îc dùa trªn mét sè c¸c tiªu chuÈn cô thÓ nµo ®ã. Do ®ã cÇn ph¶i nghiªn cøu tÝnh chÊt c¬ b¶n còng nh c¸c thuËt to¸n ®Ó cã thÓ nhËn ®îc nh÷ng tËp lîc ®å phï hîp. Träng t©m cña c«ng viÖc nµy lµ xÐt ®Õn c¸c phô thuéc d÷ liÖu, nghÜa lµ c¸c mèi rµng buéc cã thÓ cã hiÖn h÷u cña lîc ®å. Ch¼ng h¹n nh thuéc tÝnh nµy x¸c ®Þnh duy nhÊt thuéc tÝnh kia. VÝ dô trong c«ng viÖc qu¶n lý tËp ho¸ ®¬n th× m· ho¸ ®¬n x¸c ®Þnh duy nhÊt mét kh¸ch hµng thanh to¸n ho¸ ®¬n ®ã. Cho R(U) lµ mét lîc ®å quan hÖ víi U = {A1, A2, ...An} lµ tËp hîp c¸c thuéc tÝnh. Gi¶ sö cã X vµ Y lµ tËp con cña U. Nãi r»ng X  Y (X x¸c ®Þnh hµm Y hay Y phô thuéc vµo hµm X) nÕu bÊt k× r lµ mét quan hÖ x¸c ®Þnh trªn R(U) sao cho bÊt k× hai bé t1, t2  r mµ t1[X] = t2[X] th× t1[Y] = t2[Y] Phô thuéc hµm kÝ hiÖu lµ FD. CÇn lu ý r»ng ë ®©y chØ xÐt c¸c phô thuéc hµm tho¶ m·n cho mäi quan hÖ trªn lîc ®å t¬ng øng cña nã. Kh«ng thÓ xem xÐt mét phô thuéc hµm tho¶ m·n quan hÖ r ®Æc biÖt (vÝ dô quan hÖ rçng) cña mét lîc ®å R råi sau ®ã qui n¹p r»ng phô thuéc ®ã lµ tho¶ m·n trªn R. Trang 9 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL VÝ dô: Mçi kh¸ch hµng tån t¹i võa ®óng víi mét gi¸ trÞ t¬ng øng víi tõng thuéc tÝnh nh: Tªn kh¸ch hµng, ®Þa chØ ...v.v vµ cã thÓ viÕt nh sau: kh¸ch hµng  Tªn kh¸ch hµng, kh¸ch hµng  §Þa chØ, .... Gäi F lµ tËp hîp c¸c phô thuéc hµm ®èi víi lîc ®å quan hÖ R(U) vµ XY lµ mét phô thuéc hµm, X, YU. Nãi r»ng X Y ®îc suy diÔn logic tõ F nÕu mèi quan hÖ r trªn R(U) ®Òu tho¶ m·n c¸c phô thuéc hµm cña F th× còng tho¶ X Y. Ch¼ng h¹n cã tËp phô thuéc hµm F = {A B, B C} th× A C suy ra tõ F. Gäi F+ lµ bao ®ãng (Closure) cña F, tøc lµ tËp tÊt c¶ c¸c phô thuéc hµm ®îc suy diÔn logic tõ F. NÕu F = F + th× F lµ hä ®Çy ®ñ (Full Family) cña phô thuéc hµm. §Ó x¸c ®Þnh kho¸ cña lîc ®å quan hÖ vµ c¸c suy diÔn logic gi÷a c¸c phô thuéc hµm cÇn thiÕt ph¶i tÝnh ®îc F+ tõ F. Do ®ã ®ßi hái ph¶i cã c¸c hÖ tiªn ®Ò. TËp c¸c qui t¾c ®îc Armstrong ®a ra n¨m 1974 vµ thêng ®îc gäi lµ hÖ tiªn ®Ò Armstrong. Gäi R(U) lµ lîc ®å quan hÖ víi U = {A1, A2, ... An} lµ tËp c¸c thuéc tÝnh vµ X, Y, Z U. HÖ tiªn ®Ò Armstrong bao gåm:  A1 (Ph¶n x¹): NÕu YX th× X Y A2 (T¨ng trëng): NÕu ZU vµ X Y th× XZ YZ, trong ®ã kÝ hiÖu XZ lµ hîp cña hai tËp hîp X, Z thay cho kÝ hiÖu XZ   A3 (B¾c cÇu): NÕu X Y vµ Y Z th× X Z Víi nh÷ng lËp luËn trªn cã thÓ rót ra nh÷ng nhËn xÐt: Gi¶ sö F lµ tËp c¸c phô thuéc hµm ®óng trªn quan hÖ r. NÕu X  Y lµ mét phô thuéc hµm ®îc suy dÉn tõ F nhê hÖ tiªn ®Ò Armstrong th× X Y lµ ®óng trªn quan hÖ r. Nh÷ng kÕt luËn suy ra tõ hÖ tiªn ®Ò Armstrong: a. LuËt hîp: NÕu X Y vµ X Z th× X YZ b. LuËt tùa b¾c cÇu: NÕu X Y vµ WY Z th× WXZ c. LuËt t¸ch: NÕu X Y vµ ZY th× X Z Trang 10 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL 6. C¸c d¹ng chuÈn trong CSDL quan hÖ Do viÖc cËp nhËt d÷ liÖu (c¸c phÐp tÝnh nh thªm, lo¹i bá, thay ®æi) g©y nªn nh÷ng dÞ thêng d÷ liÖu cho nªn c¸c quan hÖ cÇn thiÕt ph¶i ®îc biÕn ®æi thµnh c¸c d¹ng phï hîp. Qu¸ tr×nh ®ã ®îc xem lµ qu¸ tr×nh chuÈn ho¸. Quan hÖ ®îc chuÈn ho¸ lµ quan hÖ mµ trong ®ã mçi miÒn cña mét thuéc tÝnh chØ chøa nh÷ng gi¸ trÞ nguyªn tè (Atomic) nghÜa lµ kh«ng ph©n nhá ®îc n÷a vµ do ®ã mçi gi¸ trÞ trong quan hÖ còng lµ nguyªn tè. Quan hÖ cã chøa c¸c miÒn gi¸ trÞ kh«ng nguyªn tè gäi lµ quan hÖ kh«ng chuÈn ho¸. Mét quan hÖ ®îc chuÈn ho¸ cã thÓ thµnh mét hoÆc nhiÒu quan hÖ chuÈn ho¸ kh¸c vµ kh«ng lµm mÊt m¸t th«ng tin. Ba d¹ng chuÈn ho¸ thêng ®îc sö dông trong thiÕt kÕ CSDL quan hÖ D¹ng kh«ng chuÈn ho¸ D¹ng chuÈn thø nhÊt (First Normal Form - 1NF) D¹ng chuÈn thø hai (Second Normal Form - 2NF) D¹ng chuÈn thø ba (Third Normal Form - 3NF) S¬ ®å quan hÖ gi÷a c¸c d¹ng chuÈn d÷ liÖu 1NF Mét lîc ®å quan hÖ R ®îc gäi lµ ë d¹ng chuÈn mét (1NF) nÕu vµ chØ nÕu toµn bé c¸c miÒn cã mÆt trong R ®Òu chØ chøa mét gi¸ trÞ nguyªn tè hay nãi mét c¸ch kh¸c lîc ®å quan hÖ ph¶i tån t¹i kho¸. §Þnh nghÜa nµy cho thÊy bÊt k× quan hÖ chuÈn nµo còng ë d¹ng 1NF. Trang 11 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL 2NF Lîc ®å quan hÖ R ë d¹ng chuÈn thø hai nÕu nã ®· ë d¹ng chuÈn thø nhÊt vµ nÕu mçi thuéc tÝnh kh«ng kho¸ cña R lµ phô thuéc hµm ®Çy ®ñ vµo kho¸ chÝnh. 3NF Tríc khi ®a ra ®Þnh nghÜa cña d¹ng chuÈn 3NF, cÇn ®a thªm kh¸i niÖm phô thuéc b¾c cÇu: Cho mét lîc ®å quan hÖ R(U), X lµ tËp con cña c¸c thuéc tÝnh U vµ A lµ mét thuéc tÝnh thuéc U. Thuéc tÝnh A ®îc gäi lµ phô thuéc b¾c cÇu vµo X trªn R nÕu tån t¹i mét tËp con Y cña sao cho X  Y th× Y A nhng Y/ X (vµ kh«ng x¸c ®Þnh hµm) víi A  XY. TÝnh b¾c cÇu cã thÓ ®îc biÓu diÔn theo s¬ ®å sau: X Y A S¬ ®å thuéc tÝnh quan hÖ phô thuéc b¾c cÇu Qua s¬ ®å cã thÓ thÊy r»ng A cã thÓ x¸c ®Þnh hµm Y. Trong trêng hîp A/ Y th× ®îc gäi lµ tÝnh b¾c cÇu chÆt. TÝnh b¾c cÇu sÏ ®îc sö dông trong 3NF. §iÒu kiÖn A  XY lµ cÇn thiÕt v× nÕu A  Y  X th× theo luËt ph¶n x¹ lu«n cã X  Y A. §iÒu kiÖn Y/ X ®Ó lo¹i bá nhiÒu kho¸ khái d¹ng chuÈn 3NF. Còng nh ë 2NF viÖc lo¹i bá phô thuéc b¾c cÇu ®i ®Õn 3NF còng nh»m lo¹i bá nh÷ng dÞ thêng g©y ra do qu¸ tr×nh cËp nhËt d÷ liÖu vµo quan hÖ. Tõ ®ã cã thÓ ®Þnh nghÜa d¹ng chuÈn 3NF nh sau: Lîc ®å quan hÖ R ë d¹ng chuÈn thø ba (3NF) nÕu nã lµ 2NF vµ mçi thuéc tÝnh kh«ng kho¸ cña R lµ kh«ng phô thuéc hµm b¾c cÇu vµo kho¸ chÝnh. Trang 12 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL B. Giíi thiÖu vÒ Ng«n ng÷ hái cã cÊu tróc SQL 1. Kh¸i niÖm vÒ ng«n ng÷ SQL Ng«n ng÷ xö lý d÷ liÖu quan hÖ lµ ng«n ng÷ bao gåm tËp c¸c chØ thÞ cho phÐp hái, thay ®æi, thªm bít vµ söa th«ng tin cña mét CSDL. Trong c¸c ng«n ng÷ thao t¸c d÷ liÖu SQL, SEQUEL, QUEL, QBE ...v.v th× ng«n ng÷ SQL (Structure Query Language) lµ ng«n ng÷ hái ®¸p d÷ liÖu cã cÊu tróc, phi thñ tôc, chuÈn mùc vµ ®iÓn h×nh ®îc x¸c nhËn lµ m¹nh, phæ dông l¹i dÔ sö dông. Ng«n ng÷ nµy ®îc ph¸t triÓn tõ ng«n ng÷ SEQUEL-2, thö nghiÖm vµ cµi ®Æt t¹i trung t©m nghiªn cøu cña h·ng IBM (t¹i SALJOISE, CALIFONIA) cho hÖ thèng qu¶n trÞ c¬ së d÷ liÖu lín ®iÓn h×nh lµ SYSTEM-R. Trong SYSTEM-R, SQL võa ®ãng vai trß lµ mét ng«n ng÷ cã thÓ thao t¸c ®éc lËp cña ngêi dïng ®Çu cuèi, ®ång thêi l¹i cã kh¶ n¨ng lµ mét ng«n ng÷ con ®îc nhóng trong ng«n ng÷ chñ PL/1. HiÖn nay ng«n ng÷ SQL ®· ®îc chuyÓn thµnh chuÈn chÝnh thøc cña ANSI (ViÖn tiªu chuÈn MÜ) vµ ISO (C¬ quan tiªu chuÈn quèc tÕ) vµ ®îc rÊt nhiÒu c¸c phÇn mÒm Qu¶n trÞ hÖ CSDL hç trî cho ng«n ng÷ nµy nh Oracle, NGRESS, DB2, SYBASE, INFOMIC ...v.v. 2. C¸c ®Æc ®iÓm cña ng«n ng÷ SQL §©y lµ mét ng«n ng÷ rÊt phï hîp cho CSDL ph©n t¸n theo m« h×nh Client-Server, nã cho phÐp nhiÒu ngêi dïng cïng truy nhËp ®Õn mét c¬ së d÷ liÖu víi ®é an toµn æn ®Þnh vµ tÝnh b¶o mËt cao. Ng«n ng÷ SQL ®¶m b¶o lu lîng truyÒn th«ng tin trªn m¹ng tèi thiÓu v× Client chØ göi c©u hái vµ nhËn vÒ kÕt qu¶ tõ Server chø kh«ng ph¶i göi c¶ CSDL ®i ®Ó xö lý. §Æc biÖt lµ do ®îc c¸c hÖ qu¶n trÞ CSDL hç trî nªn ph¬ng thøc chung ®Ó giao tiÕp gi÷a c¸c phÇn mÒm qu¶n trÞ CSDL (nh dïng ODBC) vµ ®iÒu nµy lµm cho hÖ thèng cã tÝnh më. ThËt vËy, cã thÓ sö dông mét hÖ qu¶n trÞ CSDL tèt (®ßi hái cÊu phÇn cøng m¹nh) nhng cã thÓ vÉn dïng phÇn mÒm yªu cÇu phÇn cøng thÊp trªn c¸c Client hoÆc cã thÓ dïng c¸c m¸y NC (Net Computer). MÆt kh¸c còng cã thÓ dïng nhiÒu hÖ qu¶n trÞ CSDL trong cïng mét hÖ thèng ®Ó khai th¸c c¸c thÕ m¹nh cña chóng, vÝ dô cã thÓ dïng Lotus Notes trªn c¸c Client (giao diÖn ngêi dïng th©n thiÖn, u viÖt vÒ truyÒn th«ng, xö lý tèt v¨n b¶n) vµ kÕt nèi vµo CSDL Oracle trªn Server (tÝnh b¶o mËt cao, ®a ngêi dïng, qu¶n lý tèt c¸c giao t¸c-Transaction). Trang 13 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Ng«n ng÷ SQL cßn cã kh¶ n¨ng thùc hiÖn ®îc nh÷ng c©u hái phøc t¹p mµ c¸c d¹ng ng«n ng÷ kh¸c kh«ng ®¸p øng ®îc vµ mét c©u lÖnh SQL cã thÓ thay thÕ cho mét tËp hîp c¸c c©u lÖnh lËp tr×nh CSDL th«ng thêng. Ngoµi c¬ cÊu xö lý d÷ liÖu SQL cßn cã c¸c c«ng cô ®Ó x©y dùng c¸c øng dông WEB, cã kh¶ n¨ng xö lý d÷ liÖu, t¹o b¸o c¸o, thiÕt kÕ m« h×nh d÷ liÖu vµ qu¶n trÞ hÖ thèng. 3. C¸c lo¹i c©u lÖnh SQL thao t¸c víi d÷ liÖu cÇn quan t©m khi tèi u Trong ng«n ng÷ SQL cã hai lo¹i lÖnh thao t¸c víi d÷ liÖu, ®ã lµ: C¸c lÖnh ®Þnh nghÜa d÷ liÖu DDL (Data Defined Language): lµ c¸c lÖnh t¹o b¶ng, t¹o Index ...v.v   C¸c lÖnh cËp nhËt d÷ liÖu DML (Data Manipulation Language) nh SELECT, UPDATE, INSERT, DROP. C¸c lÖnh cËp nhËt d÷ liÖu ®îc sö dông thêng xuyªn cho nªn cÇn thiÕt ph¶i t×m ra ph¬ng ¸n chän c¸ch viÕt c©u lÖnh, c¸ch thùc hiÖn c©u lÖnh sao cho cã hiÖu qu¶ nhÊt vÒ mÆt thêi gian còng nh lµ vÒ kh«ng gian lu tr÷. Oracle cã thÓ tèi u c¸c lo¹i c©u lÖnh sau: 1. C©u lÖnh ®¬n: Mét c©u lÖnh ®¬n lµ mét c©u lÖnh INSERT, UPDATE, DELETE hoÆc SELECT thao t¸c duy nhÊt trªn mét b¶ng. 2. Query ®¬n: thùc chÊt lµ mét c©u lÖnh SELECT (cã thÓ víi nhiÒu b¶ng). 3. KÕt nèi: Mét kÕt nèi lµ mét truy vÊn d÷ liÖu nhiÒu h¬n mét b¶ng vµ tõ kÕt nèi gi÷a c¸c b¶ng n»m trong mÖnh ®Ò FROM. PhÐp kÕt nèi kÐo d÷ liÖu tõ c¸c b¶ng kh¸c nhau vµ so s¸nh chóng tõng ®«i t¹i dßng chung ë tÊt c¶ c¸c b¶ng Cã c¸c kiÓu kÕt nèi sau:  Liªn kÕt ngang b»ng (Equijoins) liªn kÕt nµy dùa vµo sù c©n b»ng cña ®iÒu kiÖn t×m kiÕm mµ chØ ra mèi quan hÖ gi÷a 2 b¶ng.  Liªn kÕt kh«ng ngang b»ng (Non-Equijoins) lµ liªn kÕt 1 b¶ng nµy víi mét b¶ng kh¸c dùa trªn sù so s¸nh kh«ng b»ng nh to¸n tö <=, >=, BETWEEN ...v.v. Trang 14 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL  Liªn kÕt ngoµi (Outer joins): Gi¶ sö cã 2 b¶ng Kh¸chHµng vµ Ho¸§¬ncïng cã 2 cét lµ M·Kh¸chHµng. Khi liªn kÕt 2 b¶ng cho hiÖn lªn tªn cña nh÷ng kh¸ch hµng cã sè thø tù trïng nhau. NÕu muèn hiÖn lªn c¶ nh÷ng kh¸ch hµng kh«ng tho¶ m·n trong b¶ng Kh¸chHµng còng ®îc hiÖn lªn th× cÇn dïng liªn kÕt ngoµi .  Liªn kÕt víi chÝnh nã (Self joins): §©y lµ kiÓu liªn ®Æc biÖt gi÷a mét b¶ng víi chÝnh nã nh 2 b¶ng riªng biÖt . §Ó lµm ®îc viÖc nµy th× b¶ng ®ã ph¶i cã mét tªn quan hÖ. 4. TÝch §Ò-c¸c: lµ kÕt qu¶ cña viÖc nh©n hai tËp hîp. 5. C©u lÖnh phøc: Mét c©u lÖnh phøc nh lµ mét c©u lÖnh SELECT, INSER, UPDATE, hoÆc DELETE cã chøa mét c©u lÖnh SELECT kh¸c (®îc gäi lµ subquery). 6. C¸c query kÕt hîp: Mét query kÕt hîp lµ mét query cã sö dông c¸c to¸n tö tËp hîp nh UNION, UNION ALL, INTERSECT hoÆc MINUS. 7. c©u lÖnh sö dông View: View lµ mét b¶ng logic mµ thùc chÊt lµ mét c©u lÖnh SELECT mµ cã thÓ thao t¸c gièng nh ®èi víi b¶ng. 8. C©u lÖnh ph©n t¸n: nghÜa lµ c©u lÖnh truy nhËp d÷ liÖu tõ xa. Trang 15 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Ch¬ng II CSDL ph©n t¸n theo m« h×nh Client - Server cña Oracle A. Kh¸i niÖm vÒ CSDL ph©n t¸n Mét CSDL ph©n t¸n lµ mét tËp hîp d÷ liÖu mµ vÒ mÆt logic tËp d÷ liÖu nµy thuéc vÒ mét hÖ thèng, nhng ®îc tr¶i trªn c¸c vÞ trÝ (kh¸c nhau) cña mét m¹ng m¸y tÝnh. Chó ý r»ng ph©n t¸n cã nghÜa lµ d÷ liÖu kh«ng c tró trªn mét vÞ trÝ (kh¸c víi CSDL tËp trung, ®¬n lÎ) vµ ph¶i cã t¬ng quan logic víi nhau (d÷ liÖu cã mét sè c¸c thuéc tÝnh rµng buéc chóng víi nhau) chø kh«ng ph¶i lµ mét tËp hîp CSDL côc bé hoÆc c¸c tÖp c tró t¹i c¸c vÞ trÝ kh¸c nhau trong mét m¹ng m¸y tÝnh. Tuy viÖc qu¶n trÞ mét hÖ thèng CSDL ph©n t¸n sÏ gÆp nhiÒu khã kh¨n h¬n so víi hÖ CSDL tËp trung nhng xu híng x©y dùng c¸c hÖ CSDL ph©n t¸n ngµy cµng ph¸t triÓn vµ cã nhiÒu øng dông trong thùc tÕ v× c¸c nguyªn nh©n sau: XuÊt ph¸t tõ chÝnh yªu cÇu thùc tÕ vÒ tæ chøc vµ kinh tÕ: Trªn thùc tÕ nhiÒu tæ chøc lµ kh«ng tËp trung, d÷ liÖu ngµy cµng lín vµ phôc vô cho ®a ngêi dïng n»m ph©n t¸n v× vËy CSDL ph©n t¸n lµ thÝch hîp víi cÊu tróc tù nhiªn cña c¸c tæ chøc ®ã. §©y lµ mét trong c¸c yÕu tè quan träng thóc ®Èy viÖc ph¸t triÓn CSDL ph©n t¸n. Mét vÝ dô minh ho¹ cho vÊn ®Ò nµy lµ hÖ thèng b¸n vÐ m¸y bay thèng nhÊt trªn toµn thÕ giíi. Mçi h·ng hµng kh«ng cã mét hÖ CSDL riªng, cã sù qu¶n lý riªng vµ kh«ng thÓ cã lý do nµo ®Ó CSDL nµy tËp trung ë mét chç. MÆt kh¸c c¸c h·ng hµng kh«ng l¹i cã hîp t¸c víi nhau trong viÖc b¸n vÐ phôc vô hµnh kh¸ch cho nh÷ng tuyÕn ®êng thuéc ph¹m vi qu¶n lý cña nhiÒu h·ng. Do vËy hÖ thèng d÷ liÖu vÒ chuyÕn bay cña c¸c h·ng hµng kh«ng chÝnh lµ mét hÖ CSDL ph©n t¸n ®îc qu¶n lý thèng nhÊt t¹i trung t©m ®iÒu khiÓn bay ®Æt t¹i Mü. Sù liªn kÕt c¸c CSDL ®ang tån t¹i: CSDL ph©n t¸n lµ gi¶i ph¸p tù nhiªn khi cã c¸c CSDL ®ang tån t¹i vµ sù cÇn thiÕt thùc hiÖn x©y dùng mét øng dông toµn côc. Trong trêng hîp nµy CSDL ph©n t¸n ®îc t¹o tõ díi lªn (Bottom-up) tõ c¸c CSDL ®· tån t¹i tríc ®ã. Qu¸ tr×nh nµy cã thÓ ®ßi hái CSDL ph¶i cÊu tróc l¹i côc bé ë mét møc ®é nhÊt ®Þnh. Dï sao, nh÷ng söa ®æi nµy lµ nhá h¬n rÊt nhiÒu so víi viÖc t¹o lËp mét CSDL tËp trung hoµn toµn míi. Trang 16 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL Sù ph¸t triÓn më réng: C¸c tæ chøc cã thÓ më réng b»ng c¸ch thªm c¸c ®¬n vÞ míi, võa cã tÝnh tù trÞ võa cã quan hÖ t¬ng ®èi víi c¸c tæ chøc kh¸c. Khi ®ã CSDL ph©n t¸n hç trî sù më réng tæ chøc mét c¸ch uyÓn chuyÓn víi mét møc ®é ¶nh hëng tèi thiÓu tíi c¸c ®¬n vÞ ®ang tån t¹i. Víi CSDL tËp trung, còng cã thÓ khëi t¹o kÝch thíc lín cho viÖc më réng tæ chøc trong t¬ng lai. §iÒu ®ã rÊt khã ®¸nh gi¸ vµ chi phÝ thùc hiÖn sÏ lín, hoÆc viÖc më réng tæ chøc sÏ cã ¶nh hëng lín kh«ng chØ trªn c¸c øng dông míi mµ cßn trªn c¸c øng dông cò ®ang tån t¹i. Lµm gi¶m tæng chi phÝ t×m kiÕm: Trªn thùc tÕ nhiÒu øng dông côc bé râ rµng lµm gi¶m tæng chi phÝ truyÒn th«ng trªn ph¬ng diÖn mét CSDL tËp trung. Bëi vËy mét trong c¸c môc ®Ých chÝnh trong thiÕt kÕ CSDL ph©n t¸n lµ t¹o tèi ®a c¸c vÞ trÝ øng dông. Sù quan t©m hiÖu suÊt (Performance Considerations): S tån t¹i mét vµi bé xö lý tù trÞ ®a ®Õn kÕt qu¶ t¨ng hiÖu suÊt th«ng qua mét møc ®é song song cao. Sù quan t©m nµy chØ cã thÓ ®îc øng dông cho mét hÖ thèng ®a xö lý kh«ng nhÊt thiÕt ph¶i lµ mét hÖ CSDL ph©n t¸n. Dï sao, CSDL ph©n t¸n cã lîi trong sù ph©n t¸n d÷ liÖu ph¶n ¸nh c¸c tiªu chuÈn phô thuéc øng dông vµ sè tèi ®a vÞ trÝ c¸c øng dông. B»ng ph¬ng ph¸p nµy sÏ gi¶m tèi thÓu sù g©y trë ng¹i lÉn nhau gi÷a c¸c bé xö lý. Träng t¶i ®îc chia sÎ gi÷a c¸c bé xö lý, vµ c¸c t¾c nghÏn nguy kÞch, nh t¾c nghÏn m¹ng truyÒn th«ng, t¾c nghÏn dÞch vô chung cho toµn bé hÖ thèng sÏ ®îc tr¸nh. KÕt qu¶ nµy lµ mét hÖ qu¶ cña ®ßi hái kh¶ n¨ng xö lý tù trÞ cho c¸c øng dông côc bé ®· ®îc ph¸t biÓu trong ®Þnh nghÜa CSDL ph©n t¸n. TÝnh tin cËy vµ tÝnh s½n sµng: CSDL ph©n t¸n, ®Æc biÖt víi d÷ liÖu d thõa, còng ®îc sö dông ®Ó ®¹t ®îc mét sù tin cËy vµ tÝnh s½n sµng cao h¬n. §Ó ®¹t ®îc môc ®Ých nµy còng gÆp mét sè trë ng¹i vµ ph¶i gi¶i quyÕt b»ng viÖc sö dông c¸c kü thuËt vÉn cha ®îc hoµn thiÖn. B¶n th©n kh¶ n¨ng xö lý tù trÞ cña c¸c vÞ trÝ kh¸c nhau trong CSDL ph©n t¸n còng kh«ng b¶o ®¶m tÝnh tin cËy cao cña hÖ thèng, nhng nã ®¶m b¶o h¹n chÕ sù ®æ vì toµn bé hÖ thèng. C¸c sù cè trong CSDL ph©n t¸n cã thÓ thêng xuyªn h¬n mét CSDL tËp trung v× cã sè lîng thµnh phÇn lín h¬n, nhng hËu qu¶ chØ ¶nh hëng tíi c¸c øng dông sö dông d÷ liÖu cña vÞ trÝ cã sù cè vµ viÖc ®æ vì toµn bé hÖ thèng lµ hiÕm x¶y ra. B. M« h×nh xö lý Client-Server M« h×nh xö lý Client-Server lµ mét m« h×nh liªn quan ®Õn viÖc xö lý hîp t¸c ®èi víi c¸c yªu cÇu tõ Client (hoÆc ngêi yªu cÇu) ®îc m¸y Server tiÕn hµnh xö lý vµ göi tr¶ kÕt qu¶ vÒ cho Client. Trong khi c¸c hÖ ph©n t¸n lµ hiÖn tîng t¬ng ®èi míi th× ph©n t¸n ë møc hÖ ®iÒu hµnh ®· ®îc hiÓu kh¸ têng tËn vµ ®îc dïng réng r·i. VÝ dô ph©n t¸n c¸c Trang 17 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL chøc n¨ng sè häc vµ vµo/ra, ph©n t¸n c¸c chøc n¨ng hÖ ®iÒu hµnh cho nhiÒu CPU trong bé ®a xö lý cña IBM 3090/600 (s¸u bé xö lý). HÖ ph©n t¸n ®· tiÕn ho¸ tõ m«i trêng nguyªn thuû nhÊt ®Ó hç trî cho xö lý øng dông. ChÝnh m«i trêng xö lý dùa trªn Server cha cã kh¶ n¨ng xö lý øng dông ph©n t¸n. ViÖc xö lý øng dông trªn Server ®îc thùc hiÖn trªn mét hÖ thèng m¸y tÝnh cã g¾n c¸c thiÕt bÞ “c©m” kh«ng th«ng minh. Mét m¸y PC ®¬n lÎ hay m¸y lín IBM víi c¸c thiÕt bÞ cuèi dùa trªn hiÓn thÞ kÝ tù lµ mét thÝ dô vÒ m«i trêng xö lý dùa trªn Server. Theo quan ®iÓm øng dông th× xö lý trªn Server hoµn toµn kh«ng ph©n t¸n. ViÖc xö lý hîp t¸c Client-Server thùc tÕ lµ mét d¹ng riªng cña xö lý ph©n t¸n víi tµi nguyªn (vµ nhiÖm vô ¶nh hëng tíi tµi nguyªn) ®îc tr¶i qua hai hay nhiÒu hÖ thèng tÝnh to¸n rêi r¹c. M« h×nh xö lý Client-Server ®· næi lªn nh mét møc cao h¬n cña viÖc xö lý dïng chung thiÕt bÞ ®· cã trong m¹ng côc bé (LAN). ThÝ dô trong m«i trêng xö lý dïng chung thiÕt bÞ, c¸c m¸y tÝnh c¸ nh©n (PC) ®îc g¾n víi thiÕt bÞ hÖ thèng víi môc ®Ých cho phÐp c¸c PC nµy dïng chung tµi nguyªn tÖp trªn ®Üa cøng vµ m¸y in. Theo thuËt ng÷ LAN, c¸c thiÕt bÞ dïng chung nh vËy ®îc gäi lµ c¸c phôc vô (Server). Tªn phôc vô lµ thÝch hîp h¬n c¶ v× c¸c thiÕt bÞ dïng chung nµy dïng ®Ó nhËn c¸c yªu cÇu cÇn phôc vô tõ c¸c PC cho c¸c chøc n¨ng thÊp, tæng qu¸t. Trong xö lý dïng chung thiÕt bÞ trªn LAN, c¸c yªu cÇu cña PC nµy thêng bÞ giíi h¹n vÒ c¸c dÞch vô liªn quan tíi tÖp dïng chung hay tÖp xö lý in. Nhîc ®iÓm hiÓn nhiªn cña c¸ch tiÕp cËn nh vËy lµ ë chç mäi xö lý øng dông ®Òu ®îc thùc hiÖn trªn c¸c PC ®¬n lÎ, vµ chØ mét sè chøc n¨ng nµo ®ã (in, vµo ra tÖp) míi lµ ph©n t¸n. Do ®ã, toµn bé tÖp ph¶i ®îc göi cho mét PC ®· ban ra yªu cÇu READ tÖp ®ã. NÕu tÖp ®îc cËp nhËt th× toµn bé tÖp ®ã bÞ kho¸ bëi PC ®· ban ra yªu cÇu cËp nhËt tÖp ®ã. ChÝnh v× c¸c lý do trªn mµ m« h×nh xö lý Client-Server lµ viÖc më réng tù nhiªn cña viÖc dïng chung thiÕt bÞ vµ c¸c tr¹m lµm viÖc ®ãng vai trß kh¸ch cña m¸y chñ. PhÇn cã ý nghÜa nhÊt cña m« h×nh nµy lµ xö lý øng dông ®îc ph©n chia (kh«ng nhÊt thiÕt ph¶i chia ®Òu) gi÷a Client vµ Server. Xö lý thùc tÕ ®îc khëi ®Çu vµ kiÓm so¸t mét phÇn bëi n¬i yªu cÇu dÞch vô lµ Client nhng kh«ng ph¶i theo kiÓu chñ-tí. Thay v× vËy, c¶ Client vµ Server ®Òu hîp t¸c ®Ó thùc hiÖn thµnh c«ng øng dông. Ch¼ng h¹n nÕu PC ch¹y ch¬ng tr×nh cÇn mét b¶n ghi ®Æc biÖt nµo ®ã tõ mét tÖp dïng chung th× nã sÏ chuyÓn yªu cÇu cho Server CSDL tiÕn hµnh xö lý côc bé råi nhËn nhËn l¹i ®óng b¶n ghi ®· yªu cÇu. VÒ mÆt kiÕn tróc xö lý Client-Server cã c¸c ®Æc tÝnh: §êng liªn l¹c tin cËy, ch¾c ch¾n gi÷a Client vµ Server. Trang 18 LuËn v¨n tèt nghiÖp: Ph©n tÝch vµ tèi u ho¸ c©u lÖnh SQL C¸c Client khëi xíng t¬ng t¸c Client-Server. Ph©n t¸n xö lý øng dông gi÷a Client vµ Server. Server kiÓm so¸t c¸c dÞch vô do Client yªu cÇu. Server lµm träng tµi cho c¸c yªu cÇu tranh chÊp. C¸c u ®iÓm cña m« h×nh Client-Server: Ph¸t huy ®îc søc m¹nh n¨ng lùc c«ng nghÖ tÝnh to¸n cña PC. C¸c PC ngµy nay víi gi¸ thµnh nhá ®· cung cÊp mét n¨ng lùc tÝnh to¸n ®¸ng kÓ mµ tríc ®©y c¸c m¸y tÝnh lín míi cã ®îc. Cho phÐp xö lý ®îc thùc hiÖn t¹i gÇn nguån d÷ liÖu cÇn xö lý (c¸c CSDL trªn Server). Do ®ã lu lîng (vµ thêi gian ®¸p øng) cña m¹ng gi¶m ®i rÊt nhiÒu, hiÖu n¨ng vµ kh¶ n¨ng chuyÓn t¶i cña m¹ng ®îc t¨ng lªn. T¹o ®iÒu kiÖn cho viÖc dïng giao diÖn ®å ho¹ (GUI) cã s½n trªn c¸c tr¹m lµm viÖc hiÖn cã. Cho phÐp vµ cæ vò hÖ thèng më. Thùc tÕ lµ Client vµ Server cã thÓ ch¹y trªn c¸c nÒn phÇn cøng vµ phÇn mÒm kh¸c nhau. Tuy nhiªn kh«ng ph¶i lµ m« h×nh Client-Server ®· hoµn chØnh, m« h×nh nµy vÉn cßn c¸c nhîc ®iÓm sau ®©y: NÕu cã nhiÒu thµnh phÇn logic cña øng dông ®îc chuyÓn vÒ Server th× Server sÏ n¶y sinh hiÖn tîng cæ chai nh m¸y tÝnh lín (main frame) trong m« h×nh thiÕt bÞ cuèi. C¸c tµi nguyªn cña Server sÏ ë tr¹ng th¸i bÞ ®ßi hái lµm viÖc ë møc cao h¬n do viÖc t¨ng sè ngêi tiªu thô tµi nguyªn (End User). C¸c øng dông ph©n t¸n, ®Æc biÖt lµ nh÷ng øng dông ®îc thiÕt kÕ cho xö lý hîp t¸c thêng phøc t¹p h¬n c¸c øng dông kh«ng ph©n t¸n. Tuy nhiªn mét vµi sù phøc t¹p nµy cã thÓ ®îc gi¶m bít b»ng c¸ch thu nhá vÊn ®Ò lín thµnh mét tËp hîp vÊn ®Ò nhá h¬n, cã thÓ cã ®îc tÝnh ®éc lËp lÉn nhau, t¬ng tù nh trong hÖ thiÕt kÕ ®¬n thÓ. C. HÖ qu¶n trÞ CSDL Oracle §èi víi mét hÖ CSDL ph©n t¸n th× hÖ qu¶n trÞ CSDL cã ý nghÜa rÊt quan träng v× ph¶i ®¶m b¶o tÝnh thèng nhÊt vµ toµn vÑn cña d÷ liÖu, ®¶m b¶o cho c¸c ch¬ng tr×nh ngêi dïng truy xuÊt ®Õn CSDL ph©n t¸n nh lµ mét CSDL tËp trung duy nhÊt. Ngoµi ra hÖ qu¶n trÞ CSDL cßn ph¶i ®¶m b¶o chøc n¨ng ph©n quyÒn truy nhËp vµ b¶o mËt trªn ®êng truyÒn. Trang 19
- Xem thêm -

Tài liệu liên quan