Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 6
lượt xem 6
download
Tham khảo tài liệu 'tin học hệ quản trị - toán tin 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ả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 6
- 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
- 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.
- 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
- 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
- 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.
- 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.
- 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.
- 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,
- 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
- 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
- 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 .
- 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à
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Toán - Tin Học Hệ Quản Trị phần 1
12 p | 84 | 8
-
Toán - Tin Học Hệ Quản Trị phần 3
12 p | 76 | 7
-
Toán - Tin Học Hệ Quản Trị phần 5
12 p | 57 | 7
-
Toán - Tin Học Hệ Quản Trị phần 2
12 p | 80 | 6
-
Toán - Tin Học Hệ Quản Trị phần 4
12 p | 76 | 6
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 7
12 p | 59 | 6
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 5
12 p | 60 | 6
-
Toán - Tin Học Hệ Quản Trị phần 6
12 p | 62 | 6
-
Toán - Tin Học Hệ Quản Trị phần 7
12 p | 54 | 6
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 1
12 p | 50 | 5
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 10
7 p | 59 | 5
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 8
12 p | 52 | 5
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 4
12 p | 61 | 5
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 2
12 p | 66 | 5
-
Toán - Tin Học Hệ Quản Trị phần 8
12 p | 67 | 5
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 9
12 p | 51 | 4
-
Tin Học Hệ Quản Trị - Toán Tin Dữ Liệu phần 3
12 p | 72 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn