intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Quản Lý Dữ Liệu - Cơ Sở Dữ Liệu phần 6

Chia sẻ: Qwdqwgferhrt Verbnrtjheth | Ngày: | Loại File: PDF | Số trang:12

80
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'quản lý dữ liệu - cơ sở dữ liệu phần 6', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Quản Lý Dữ Liệu - Cơ Sở Dữ Liệu phần 6

  1. 59 Bài gi ng tóm t t H qu n tr cơ s d li u - Th c hi n ti p các bư c và k t thúc. N u ã t o Push Subscription v i m t CSDL s không ư c t o Pull Subscription v i CSDL ó. Th c hi n ng b d li u Sau khi thi t l p theo các mô hình nhân b n xong, có th th c hi n ng b d li u b ng cách: - Th c hi n theo l ch. - Theo yêu c u: Ch n Subscription (Push ho c Pull) → Nh n ph i chu t → Start Synchronizing. Sau khi th c hi n xong d li u s ư c ng b gi a Publisher và Subscriber. Ngoài th c hi n theo công c ta có th tìm hi u th c hi n nhân b n theo câu l nh T-SQL ho c Stored Procedure. III. Sao lưu và khôi ph c d li u 1. Lý do ph i sao lưu và khôi ph c d li u Trong quá trình th c hi n qu n tr CSDL SQL Server thì m t s nguyên nhân sau ây b t bu c b n ph i xem xét n k thu t sao lưu và khôi ph c d li u: ĩa b h ng (ch a các t p tin CSDL). Server b h ng. Nguyên nhân bên ngoài (thiên nhiên, h a ho n, m t c p,...). User vô tình xóa d li u. B vô tình hay c ý làm thông tin sai l ch. B hack. 2. Các lo i sao lưu d li u Sao lưu (Backup) d li u trong SQL Server g m các lo i sau: Full Database Backups: sao chép toàn b CSDL (các t p tin bao g m các b ng, khung nhìn, các i tư ng khác). Differential Database Backups: sao chép nh ng d li u thay i trong Data file k t l n full backup g n nh t. File or file group backups: sao chép m t file ơn hay file group. Differential File or File Group Backups: th c hi n như Differential Database nhưng copy ph n d li u thay i c a file ơn ho c file group. Transaction log backups: Ghi nh n t t c các transaction ch a trong transaction log file k t l n transaction log backup g n nh t. V i lo i sao lưu này ta có th khôi ph c d li u t i m t th i i m. 3. Các mô hình khôi ph c d li u
  2. 60 Bài gi ng tóm t t H qu n tr cơ s d li u Full Recovery model: Là mô hình ph c h i toàn b ho t ng giao d ch c a d li u (Insert, Update, Delete, ho t ng b i l nh bcp, bulk insert). V i mô hình này ta có th ph c h i d li u t i m t th i i m trong quá kh ã ư c lưu trong transaction log file. Bulk-Logged Recovery Model: Mô hình này ư c th c thi cho các thao tác bcp, bulk insert, create ch m c, writetext, updatetext, các ho t ng này ch nh t ký s ki n vào log bi t mà không sao lưu toàn b d li u, chi ti t như trong full recover. Các s ki n Insert, Update, Delete v n ư c nh t ký và khôi ph c bình thư ng. Simple Recovery Model: V i mô hình này b n ch ph c h i l i th i i m sao lưu g n nh t mà không theo th i i m khác trong quá kh . Cách t mô hình khôi ph c: - Ch n CSDL. - Nh n nút ph i chu t → Properties → Options → Recovery → ch n Model. Xét ví d sau: Gi s ta có m t CSDL ư c backup theo chi n lư c như hình v bên dư i Nhìn hình ta th y CSDL ư c l p l ch Full Database Backup vào ngày ch nh t, Differential Database Backup vào ngày th ba và th năm, còn Log Database Backup vào 5 ngày trong tu n, ngày th sáu có s c v i CSDL, data file b h ng. V n t ra là ph i ph c h i d li u và CSDL ho t ng bình thư ng. Ta ph i làm các bư c sau: Th c hi n Backup log file (gi s log file không b h ng). Khôi ph c Full Database c a ngày ch nh t. Ph c h i Differential Database c a ngày th năm. Khôi ph c Transaction log backup ngày th năm.
  3. 61 Bài gi ng tóm t t H qu n tr cơ s d li u 4. Sao lưu cơ s d li u (Backup Database) Trư c khi xem xét k thu t sao lưu CSDL, ta th ng nh t m t s thu t ng b ng ti ng Anh như sau: Backup: Là quá trình copy toàn b ho c m t ph n database, transaction log, file, file group thành l p m t backup set ư c ch a trong backup media (disk ho c tape) b ng cách s d ng m t backup device (tape drive name ho c physical filename). Backup Device: M t file v t lý ho c m t drive tape. Backup file: M t file ch a Backup set. Backup media: là Disk ho c tape. Backup set: M t b backup m t l n backup ơn ch a trên backup media. Các bư c th c hi n backup như sau: − Ch n CSDL c n backup. − Nh n ph i chu t → All Tasks → Backup Database… - Nh p các tham s , l a ch n ki u. 5. Khôi ph c d li u (Restore Database) Là ch c năng th c hi n khôi ph c d li u ã sao lưu, tùy theo chi n lư c backup mà ngư i qu n tr có th ph c h i n th i i m nào, thu ư c b d li u trong quá kh như th nào. Khôi ph c d li u ư c th c hi n theo th t backup, thông tin này ư c lưu tr trong msdb. Các bư c th c hi n như sau: − Ch n m c Databases → Nh n nút ph i chu t → All Tasks → Restore Database… − Nh p tham s , ch n mô hình khôi ph c. IV. Qu n lý giao d ch 1. Các khái ni m M t giao d ch là m t ơn v th c hi n chương trình truy xu t và có th c p nh t nhi u m c d li u. M t giao d ch thư ng là k t qu c a s th c hi n m t chương trình ngư i dùng ư c vi t trong m t ngôn ng thao tác d li u m c cao ho c m t ngôn ng l p trình (SQL, COBOL, PASCAL ...), và ư c phân cách b i các câu l nh (ho c các l i g i hàm) có d ng begin transaction và end transaction. Giao d ch bao g m t t c các ho t ng ư c th c hi n gi a begin và end transaction. m b o tính toàn v n c a d li u, ta yêu c u h CSDL duy trì các tính ch t sau c a giao d ch: • Tính nguyên t (Atomicity). Ho c toàn b các ho t ng c a giao d ch ư c ph n ánh úng n trong CSDL ho c không có gì c . • Tính nh t quán (consistency). S th c hi n c a m t giao d ch là cô l p (Không
  4. 62 Bài gi ng tóm t t H qu n tr cơ s d li u có giao d ch khác th c hi n ng th i) b o t n tính nh t quán c a CSDL. • Tính cô l p (Isolation). Cho dù nhi u giao d ch có th th c hi n ng th i, h th ng ph i m b o r ng i v i m i c p giao d ch Ti, Tj , ho c Tj k t thúc th c hi n trư c khi Ti kh i ng ho c Tj b t u s th c hi n sau khi Ti k t thúc. Như v y m i giao d ch không c n bi t n các giao d ch khác ang th c hi n ng th i trong h th ng. • Tính b n v ng (Durability). Sau m t giao d ch hoàn thành, các thay i ã ưc t o ra i v i CSDL v n còn ngay c khi x y ra s c h th ng. Các tính ch t này thư ng ư c g i là các tính ch t ACID (Các ch cái u c a b n tính ch t). Ta xét m t ví d : m t h th ng ngân hàng g m m t s tài kho n và m t t p các giao d ch truy xu t và c p nh t các tài kho n. T i th i i m hi n t i, ta gi thi t r ng CSDL n m trên ĩa, nhưng m t vài ph n c a nó ang n m t m th i trong b nh . Các truy xu t CSDL ư c th c hi n b i hai ho t ng sau: • READ(X): chuy n m c d li u X t CSDL n buffer c a giao d ch th c hi n ho t ng READ này. • WRITE(X): chuy n m c d li u X t buffer c a giao d ch th c hi n WRITE n CSDL. Trong h CSDL th c, ho t ng WRITE không nh t thi t d n n s c p nh t tr c ti p d li u trên ĩa; ho t ng WRITE có th ư c lưu t m th i trong b nh và ư c th c hi n trên ĩa mu n hơn. Trong ví d , ta gi thi t ho t ng WRITE c p nh t tr c ti p CSDL. Ti là m t giao d ch chuy n 50 t tài kho n A sang tài kho n B. Giao d ch này có th ư c xác nh như sau: Ti : READ(A); A:=A - 50; WRITE(A) READ(B); B:=B + 50; WRITE(B); Ta xem xét m i yêu c u trong ACID: • Tính nh t quán: òi h i nh t quán ây là t ng c a A và B là không thay ib i s th c hi n giao d ch. N u không có yêu c u nh t quán, ti n có th ư c t o ra hay m t b i giao d ch. D dàng ki m nghi m r ng n u CSDL nh t quán trư c m t th c hi n giao d ch, nó v n nh t quán sau khi th c hi n giao d ch. m b o tính nh t quán
  5. 63 Bài gi ng tóm t t H qu n tr cơ s d li u cho m t giao d ch là trách nhi m c a ngư i l p trình ng d ng ngư i ã vi t ra giao d ch. Nhi m v này có th ư c làm cho d dàng b i ki m th t ng các ràng bu c toàn v n. • Tính nguyên t : gi s r ng ngay trư c khi th c hi n giao d ch Ti, giá tr c a các tài kho n A và B tương ng là 1000 và 2000. Gi s r ng trong khi th c hi n giao d ch Ti, m t s c x y ra c n tr Ti hoàn t t thành công s th c hi n c a nó. Ta cũng gi s r ng s c x y ra sau khi ho t ng WRITE(A) ã ư c th c hi n, nhưng trư c khi ho t ng WRITE(B) ư c th c hi n. Trong trư ng h p này giá tr c a tài kho n A và B là 950 và 2000. Ta ã m t 50$. T ng A+B không còn ư c b o toàn. Như v y, k t qu c a s c là tr ng thái c a h th ng không còn ph n ánh tr ng thái c a th gi i th c mà CSDL ư c gi thi t n m gi . Ta g i tr ng thái như v y là tr ng thái không nh t quán. Ta ph i m b o r ng tính không nh t quán này không xu t hi n trong m t h CSDL. Tuy nhiên, t i m t vài th i i m, h th ng có th trong tr ng thái không nh t quán. Ví d giao d ch Ti, trong quá trình th c hi n cũng t n t i th i i m t i ó giá tr c a tài kho n A là 950 và tài kho n B là 2000 – m t tr ng thái không nh t quán. Tr ng thái này ư c thay th b i tr ng thái nh t quán khi giao d ch ã hoàn t t. Như v y, n u giao d ch không bao gi kh i ng ho c ư c m b o s hoàn t t, tr ng thái không nh t quán s không bao gi x y ra. ó chính là lý do có yêu c u v tính nguyên t : N u tính ch t nguyên t ư c m b o, t t c các hành ng c a giao d ch ư c ph n ánh trong CSDL ho c không có gì c . ý tư ng cơ s m b o tính nguyên t là như sau: h CSDL lưu v t (trên ĩa) các giá tr cũ c a b t kỳ d li u nào trên ó giao d ch ang th c hi n vi t, n u giao d ch không hoàn t t, giá tr cũ ư c khôi ph c t tr ng thái c a h th ng tr l i tr ng thái trư c khi giao d ch di n ra. m b o tính nguyên t là trách nhi m c a h CSDL, và ư c qu n lý b i m t thành ph n ư c g i là thành ph n qu n tr giao d ch (transaction- management component). • Tính b n v ng: tính ch t b n v ng m b o r ng m i khi m t giao d ch hoàn t t, t t c các c p nh t ã th c hi n trên cơ s d li u v n còn ó, ngay c khi x y ra s c h th ng sau khi giao d ch ã hoàn t t. Ta gi s m t s c h th ng có th gây ra vi c m t d li u trong b nh chính, nhưng d li u trên ĩa thì không m t. Có th mb o tính b n v ng b i vi c m b o ho c các c p nh t ư c th c hi n b i giao d ch ã ư c vi t lên ĩa trư c khi giao d ch k t thúc ho c thông tin v s c p nh t ư c th c hi n b i giao d ch và ư c vi t lên ĩa cho phép CSDL xây d ng l i các c p nh t khi h CSDL ư c kh i ng l i sau s c . m b o tính b n v ng là trách nhi m c a m t thành ph n c a h CSDL ư c g i là thành ph n qu n tr ph c h i (recovery-management component). Hai thành ph n qu n tr giao d ch và qu n tr ph c h i quan h m t thi t v i nhau.
  6. 64 Bài gi ng tóm t t H qu n tr cơ s d li u • Tính cô l p: ngay c khi tính nh t quán và tính nguyên t ư c m b o cho m i giao d ch, tr ng thái không nh t quán v n có th x y ra n u trong h th ng có m t s giao d ch ư c th c hi n ng th i và các ho t ng c a chúng an xen theo m t cách không mong mu n. Ví d , CSDL là không nh t quán t m th i trong khi giao d ch chuy n kho n t A sang B ang th c hi n, n u m t giao d ch khác th c hi n ng th i c A và B t i th i i m trung gian này và tính A+B, nó ã tham kh o m t giá tr không nh t quán, sau ó nó th c hi n c p nh t A và B d a trên các giá tr không nh t quán này, như v y CSDL có th tr ng thái không nh t quán ngay c khi c hai giao d ch hoàn t t thành công. M t gi i pháp cho v n các giao d ch th c hi n ng th i là th c hi n tu n t các giao d ch, tuy nhiên gi i pháp này làm gi m hi u năng c a h th ng. Các gi i pháp khác cho phép nhi u giao d ch th c hi n tương tranh ã ư c phát tri n ta s th o lu n v chúng sau này. Tính cô l p c a m t giao d ch m b o r ng s th c hi n ng th i các giao d ch d n n m t tr ng thái h th ng tương ương v i m t tr ng thái có th nh n ư c b i th c hi n các giao d ch này m t t i m t th i i m theo m t th t nào ó. m b o tính cô l p là trách nhi m c a m t thành ph n c a h CSDL ư c g i là thành ph n qu n tr tương tranh (concurrency-control component). Tr ng thái giao d ch N u không có s c , t t c các giao d ch u hoàn t t thành công. Tuy nhiên, m t giao d ch trong th c t có th không th hoàn t t s th c hi n c a nó. Giao d ch như v y ư c g i là b b d . N u ta m b o ư c tính nguyên t , m t giao d ch b b d không ư c phép làm nh hư ng t i tr ng thái c a CSDL. Như v y, b t kỳ thay i nào t giao d ch b b d này u ph i b h y b . M i khi các thay i do giao d ch b b d b h y b , ta nói r ng giao d ch b cu n l i (rolled back). Khi m t giao d ch hoàn t t m t cách thành công s th c hi n c a nó ư c g i là ư c bàn giao (committed). M t giao d ch ư c bàn giao, các l nh c p nh t s bi n i CSDL sang m t tr ng thái nh t quán m i và nó là b n v ng ngay c khi có s c . M i khi m t giao d ch là ư c bàn giao, ta không th h y b các hi u qu c a nó b ng cách b d nó. Cách duy nh t h y b các hi u qu c a m t giao d ch ư c bàn giao là th c hi n m t giao d ch bù (compensating transaction), nhưng không ph i luôn luôn có th t o ra m t giao d ch bù. Do v y trách nhi m vi t và th c hi n m t giao d ch bù thu c v ngư i s d ng và không ư c qu n lý b i h CSDL. M t giao d ch ph i trong m t trong các tr ng thái sau: • Ho t ng (Active): tr ng thái kh i u; giao d ch gi trong tr ng thái này trong khi nó ang th c hi n. ư c bàn giao b ph n (Partially Committed): sau khi l nh cu i cùng ư c th c • hi n.
  7. 65 Bài gi ng tóm t t H qu n tr cơ s d li u • Th t b i (Failed): sau khi phát hi n r ng s th c hi n không th ti p t c ư c n a. • B d (Aborted): sau khi giao d ch ã b cu n l i và CSDL ã ph c h i l i tr ng thái c a nó trư c khi kh i ng giao d ch. ư c bàn giao (Committed): sau khi hoàn thành thành công giao d ch. • Ta nói m t giao d ch ã ư c bàn giao (committed) ch n u nó ã i n tr ng thái Committed, tương t , m t giao d ch b b d n u nó ã i n tr ng thái Aborted. M t giao d ch ư c g i là k t thúc n u nó ho c là committed ho c là Aborted. M t giao d ch kh i u b i tr ng thái Active. Khi nó k t thúc l nh sau cùng c a nó, nó chuy n sang tr ng thái partially committed. T i th i i m này, giao d ch ã hoàn thành s th c hi n c a nó, nhưng nó v n có th b b d do u ra hi n t i v n có th trú t m th i trong b nh chính và như th m t s c ph n c ng v n có th ngăn c n s hoàn t t c a giao d ch. H CSDL khi ó ã k p vi t lên ĩa y thông tin giúp vi c tái t o các c p nh t ã ư c th c hi n trong quá trình th c hi n giao d ch, khi h th ng tái kh i ng sau s c . Sau khi các thông tin sau cùng này ư c vi t lên ĩa, giao d ch chuy n sang tr ng thái committed. Bi u tr ng thái tương ng v i m t giao d ch như sau: Partially Committed Committed Active Failed Aborted V i gi thi t s c h th ng không gây ra s m t d li u trên ĩa, m t giao d ch i n tr ng thái Failed sau khi h th ng xác nh r ng giao d ch không th ti n tri n bình thư ng ư c n a (do l i ph n c ng ho c ph n m m). Như v y, giao d ch ph i ư c cu n l i r i chuy n sang tr ng thái b d . T i i m này, h th ng có hai l a ch n: • Kh i ng l i giao d ch, dùng l a ch n này ch n u giao d ch b b d là do l i ph n c ng ho c ph n m m nào ó không liên quan n logic bên trong c a giao d ch. Giao d ch ư c kh i ng l i ư c xem là m t giao d ch m i. • Hu giao d ch thư ng ư c ti n hành ho c do l i logic bên trong giao d ch, l i này c n ư c ch nh s a b i vi t l i chương trình ng d ng ho c do u vào x u ho c do d li u mong mu n không tìm th y trong CSDL.
  8. 66 Bài gi ng tóm t t H qu n tr cơ s d li u Ta ph i th n tr ng khi th c hi n thao tác vi t ngoài kh quan sát (observable external Write - như vi t ra terminal hay máy in). M i khi m t vi t như v y x y ra, nó không th b xoá do nó có th ph i giao ti p v i bên ngoài h CSDL. H u h t các h th ng cho phép các thao tác vi t như th x y ra ch khi giao d ch ã di vào tr ng thái committed. M t cách th c thi m t sơ như v y là cho h CSDL lưu tr t m th i b t kỳ giá tr nào k t h p v i các thao tác vi t ngoài như v y trong lưu tr không hay thay i và th c hi n các thao tác vi t hi n t i ch sau khi giao d ch ã i vào tr ng thái committed. N u h th ng th t b i sau khi giao d ch i vào tr ng thái committed nhưng trư c khi hoàn t t các tháo tác vi t ngoài, h CSDL s làm các thao tác vi t ngoài này (s d ng d li u trong lưu tr không hay thay i) khi h th ng kh i ng l i. Trong m t s ng d ng, có th mu n cho phép giao d ch ho t ng trình bày d li u cho ngư i s d ng, c bi t là các giao d ch kéo dài trong vài phút hay vài gi . Ta không th cho phép xu t ra d li u kh quan sát như v y tr phi ta bu c ph i làm t n h i tính nguyên t giao d ch. H u h t các h th ng giao d ch hi n hành m b o tính nguyên t và do v y c m d ng trao i v i ngư i dùng này. Th c thi tính nguyên t và tính b n v ng Thành ph n qu n tr ph c h i c a m t h CSDL h tr tính nguyên t và tính b n v ng. Trư c tiên ta xét m t sơ ơn gi n (song c c kỳ thi u hi u qu ). Sơ này gi thi t r ng ch m t giao d ch là ho t ng t i m t th i i m và ư c d a trên vi c t o b n sao c a CSDL ư c g i là các b n sao khu t (shadow copies). Sơ gi thi t r ng CSDL ch là m t file trên ĩa. M t con tr ư c g i là db_pointer ư c duy trì trên ĩa, nó tr t i b n sao hi n hành c a CSDL. Trong sơ CSDL khu t (shadow-database), m t giao d ch mu n c p nh t CSDL, u tiên t o ra m t b n sao y c a CSDL. T t c các thao tác c p nh t ư c làm trên b n sao này, không ng t i b n g c. N u t i m t th i i m b t kỳ giao d ch b b d , b n sao m i b xoá. B n sao cũ c a CSDL không b nh hư ng. N u giao d ch hoàn t t, nó ư c ư c bàn giao như sau: u tiên, h i h i u hành m b o r ng t t c các trang c a b n sao m i ã ư c vi t lên ĩa (flush). Sau khi flush con tr db_pointer ư c c p nh t tr n b n sao m i; b n sao m i tr thành b n sao hi n hành c a CSDL. B n sao cũ b xoá i. Giao d ch ư c g i là ã ư c ư c bàn giao t i th i i m s c p nh t con tr db_pointer ư c ghi lên ĩa. Ta xét k thu t này qu n lý s c giao d ch và s c h th ng ra sao? Trư c tiên, ta xét s c giao d ch. N u giao d ch th t b i t i th i i m b t kỳ trư c khi con tr db_pointer ư c c p nh t, n i dung cũ c a CSDL không b nh hư ng. Ta có th b d giao d ch b i xoá b n sao m i. M i khi giao d ch ư c ư c bàn giao, t t c các c p nh t mà nó ã th c hi n là trong CSDL ư c tr b i db_pointer. Như v y, ho c t t c các c p nh t c a giao d ch ã ư c ph n ánh ho c không k t qu nào ư c ph n ánh,
  9. 67 Bài gi ng tóm t t H qu n tr cơ s d li u b t ch p t i s c giao d ch. Bây gi ta xét s c h th ng. Gi s s c h th ng x y ra t i th i i m b t kỳ trư c khi db_pointer ã ư c c p nh t ư c vi t lên ĩa. Khi ó, khi h th ng kh i ng l i, nó s c db_pointer và như v y s th y n i dung g c c a CSDL – không k t qu nào c a giao d ch ư c nhìn th y trên CSDL. Bây gi l i gi s r ng s c h th ng x y ra sau khi db_pointer ã ư c c p nh t lên ĩa. Trư c khi con tr ư c c p nh t, t t c các trang ư c c p nh t c a b n sao m i ã ư c vi t lên ĩa. T gi thi t file trên ĩa không b hư h i do s c h th ng. Do v y, khi h th ng kh i ng l i, nó s c db_pointer và s th y n i dung c a CSDL sau t t c các c p nh t ã th c hi n b i giao d ch. S th c thi này ph thu c vào vi c vi t lên db_pointer, vi c vi t này ph i là nguyên t , có nghĩa là ho c t t c các byte c a nó ư c vi t ho c không byte nào ư c vi t. N u ch m t s byte c a con tr ư c c p nh t b i vi c vi t nhưng các byte khác thì không thì con tr tr thành vô nghĩa và c b n cũ l n b n m i c a CSDL có th tìm th y khi h th ng kh i ng l i. May m n thay, h th ng ĩa cung c p các c p nh t nguyên t toàn b kh i ĩa ho c ít nh t là m t sector ĩa. Như v y h th ng ĩa m b o vi c c p nh t con tr db_pointer là nguyên t . Tính nguyên t và tính b n v ng c a giao d ch ư c m b o b i vi c th c thi b n sao bóng c a thành ph n qu n tr ph c h i. S th c thi này c c kỳ thi u hi u qu trong ng c nh CSDL l n, do s th c hi n m t giao d ch òi h i ph i sao toàn b CSDL. Hơn n a s th c thi này không cho phép các giao d ch th c hi n ng th i v i các giao d ch khác. Phương pháp th c thi tính nguyên t và tính lâu b n m nh hơn và t n kém hơn ư c trình bày trong chương h th ng ph c h i. Các th c hi n tương tranh H th ng x lý giao d ch thư ng cho phép nhi u giao d ch th c hi n ng th i. Vi c cho phép nhi u giao d ch c p nh t d li u ng th i gây ra nh ng khó khăn trong vi c b o m s nh t quán d li u. B o m s nh t quán d li u mà không quan tâm t i s th c hi n tương tranh các giao d ch s c n thêm các công vi c ph . M t phương pháp ti n hành là cho các giao d ch th c hi n tu n t : m b o r ng m t giao d ch kh i ng ch sau khi giao d ch trư c ã hoàn t t. Tuy nhiên có hai lý do h p lý th c hi n tương tranh là: • M t giao d ch g m nhi u bư c. M t vài bư c liên quan t i ho t ng I/O; các bư c khác liên quan n ho t ng CPU. CPU và các ĩa trong m t h th ng có th ho t ng song song. Do v y ho t ng I/O có th ư c ti n hành song song v i x lý t i CPU. S song song c a h th ng CPU và I/O có th ư c khai thác ch y nhi u giao d ch song song. Trong khi m t giao d ch ti n hành m t ho t ng c/vi t trên m t ĩa, m t giao d ch khác có th ang ch y trong CPU, m t giao d ch th ba có th th c hi n c/vi t trên m t ĩa khác ... như v y s tăng lư ng u vào h th ng có nghĩa là tăng s lư ng giao d ch có th ư c th c hi n trong m t lư ng th i gian ã cho, cũng
  10. 68 Bài gi ng tóm t t H qu n tr cơ s d li u có nghĩa là hi u su t s d ng b x lý và ĩa tăng lên. • Có th có s tr n l n các giao d ch ang ch y trong h th ng, cái thì dài cái thì ng n. N u th c hi n tu n t , m t quá trình ng n có th ph i ch m t quá trình dài n trư c hoàn t t, mà i u ó d n n m t s trì hoãn không lư ng trư c ư c trong vi c ch y m t giao d ch. N u các giao d ch ang ho t ng trên các ph n khác nhau c a CSDL, s t t hơn n u ta cho chúng ch y ng th i, chia s các chu kỳ CPU và truy xu t ĩa gi a chúng. Th c hi n tương tranh làm gi m s trì hoãn không lư ng trư c trong vi c ch y các giao d ch, ng th i làm gi m th i gian áp ng trung bình: Th i gian m t giao d ch ư c hoàn t t sau khi ã ư c trình. ng cơ s d ng th c hi n tương tranh trong CSDL cũng gi ng như ng cơ th c hi n a chương trong h i u hành. Khi m t vài giao d ch ch y ng th i, tính nh t quán CSDL có th b vi ph m cho dù m i giao d ch là úng. M t gi i pháp gi i quy t v n này là s d ng th i l ch (schedule). H CSDL ph i i u khi n s trao i gi a các giao d ch tương tranh ngăn ng a chúng phá hu s nh t quán c a CSDL. Các cơ ch cho i u ó ư c g i là sơ i u khi n tương tranh (concurrency-control scheme). Xét h th ng ngân hàng ơn gi n, nó có m t s tài kho n và có m t t p h p các giao d ch, chúng truy xu t, c p nh t các tài kho n này. Gi s T1 và T2 là hai giao d ch chuy n kho n t m t tài kho n sang m t tài kho n khác. Giao d ch T1 chuy n 50$ t tài kho n A sang tài kho n B. Giao d ch T2 chuy n 10% s dư t tài kho n A sang tài kho n B, và ư c xác nh như sau: T : Read(A); T : Read(A); 1 2 A:=A-50; Temp:=A*0.1; Write(A); A:=A-temp; Read(B); Write(A); Read(B); B:=B+50; Write(B); B:=B+temp; Write(B); Gi s giá tr hi n t i c a A và B tương ng là 1000$ và 2000$. Gi s r ng hai giao d ch này ư c th c hi n theo trình t : Trư ng h p 1: th c hi n xong giao d ch T1 r i n giao d ch T2 Trư ng h p 2: th c hi n xong giao d ch T2 r i n giao d ch T1
  11. 69 Bài gi ng tóm t t H qu n tr cơ s d li u T1 T2 T1 T2 Read(A); Read(A); A:=A-50; Temp:=A*0.1; Write(A); A:=A-temp; Read(B); Write(A); Read(B); B:=B+50; Write(B); B:=B+temp; Write(B); Read(A); Read(A); Temp:=A*0.1; A:=A-50; Write(A); A:=A-temp; Write(A); Read(B); Read(B); B:=B+50; Write(B); B:=B+temp; Write(B); Th i l ch 1: Giá tr sau cùng c a A là 855, Th i l ch 2: Giá tr sau cùng c a A là 850, B B là 2145, t ng 2 tài kho n (A+B) là không là 2150, t ng 2 tài kho n (A+B) là không i i Th i l ch (schedule): là m t dãy các thao tác (l nh) c a các giao tác ư c s p x p theo trình t th i gian. M t th i l ch i v i m t t p các giao d ch ph i bao g m t t c các ch th c a các giao dich này và ph i b o t n th t các ch th xu t hi n trong m i m t giao d ch. Ví d , i v i giao d ch T1, ch th Write(A) ph i xu t hi n trư c ch th Read(B), trong b t kỳ th i l ch h p l nào. Các th i l ch 1 và Th i l ch 2 là nh ng th i l ch tu n t . Th i l ch tu n t g m m t dãy các ch th t các giao d ch, trong ó các ch th thu c v m t giao d ch xu t hi n cùng nhau trong th i l ch. Như v y, i v i m t t p n giao d ch, có n! th i l ch tu n t h p l khác nhau. Khi m t s giao d ch ư c th c hi n ng th i, th i l ch tương ng không nh t thi t là tu n t . N u hai giao d ch ang ch y ng th i, h i u hành có th th c hi n m t giao d ch trong m t kho ng ng n th i gian, sau ó chuy n i ng c nh, th c hi n giao d ch th hai m t kho ng th i gian sau ó l i chuy n sang th c hi n giao d ch th nh t m t kho ng và c như v y (h th ng chia s th i gian). Th i l ch 3 và Th i l ch 4 là các ví d .
  12. 70 Bài gi ng tóm t t H qu n tr cơ s d li u T1 T2 T1 T2 Read(A); Read(A); A:=A-50; A:=A-50; Write(A); Read(A); Read(A); Temp:=A*0.1; Temp:=A*0.1; A:=A-temp; A:=A-temp; Write(A); Write(A); Read(B); Read(B); Write(A); Read(B); B:=B+50; Write(B); B:=B+50; Write(B); Read(B); B:=B+temp; Write(B); B:=B+temp; Write(B); Th i l ch 3 Th i l ch 4 Tuy nhiên, không ph i t t c các th c hi n tương tranh u cho ra m t tr ng thái úng. Ví d xét th i l ch 4: Sau khi th c hi n giao d ch này, ta t t i tr ng thái trong ó giá tr cu i c a A và B tương ng là 950$ và 2100$. Tr ng thái này là m t tr ng thái không nh t quán (A+B trư c khi th c hi n giao d ch là 3000$ nhưng sau khi giao d ch là 3050$). Như v y, n u giao phó vi c i u khi n th c hi n tương tranh cho h i u hành, s có th d n t i các tr ng thái không nh t quán. Nhi m v c a h CSDL là m b o r ng m t th i l ch ư c phép th c hi n tương tranh s ưa CSDL sang m t tr ng thái nh t quán. Thành ph n c a h CSDL th c hi n nhi m v này ư c g i là thành ph n i u khi n tương tranh (concurrency-control component). Ta có th m b o s nh t quán c a CSDL v i th c hi n tương tranh b ng cách n m ch c r ng m t th i l ch ư c th c hi n có cùng hi u qu như m t th i l ch tu n t . Tính kh tu n t (Serializability) H CSDL ph i i u khi n s th c hi n tương tranh các giao d ch m b o r ng tr ng thái CSDL gi nguyên tr ng thái nh t quán. Trư c khi ta ki m tra h CSDL có th th c hi n nhi m v này như th nào, u tiên ta ph i hi u các th i l ch nào s mb o tính nh t quán và các th i l ch nào không. Vì các giao d ch là các chương trình, nên th t khó xác nh các ho t ng chính xác ư c th c hi n b i m t giao d ch là ho t ng gì và
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2