Khái ni m ràng bu c đ c s d ng trong nhi u l nh đ nh ngh a d li u (DDL).
??? s khác nhau gi a c t, b ng và thu c tính, quan h ???
Ràng_bu c_check::=
CHECK m nh_đ _predicate Gi i_h n_b ng ::=
[CONSTRAINT Tên_gi i_h n]
{
{PRIMARY KEY (Tên_c t.,..)}
| {UNIQUE (Tên_c t.,..)}
| {FOREIGN KEY (Tên_c t.,..) REFERENCES Tên_b ng [(Tên_c t.,..)]
[ c_t _liên_k t]}
| { Gi i_h n check } }
[Các_c t_c a_gi i_h n]
Gi i_h n_c t::=
[CONSTRAINT Tên_gi i_h n]
{
{NOT NULL}
| {PRIMARY KEY}
| {UNIQUE}
| {REFERENCES Tên_b ng [(Tên_c t)] [ c_t _liên_k t]}
| { Gi i_h n check } }
[Các_c t_c a_gi i_h n]
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 55 c_t _liên_k t::=
[MATCH {FULL | PARTIAL}]
[ON UPDATE {CASCADE | SET NULL | SET DEFAULT | NO ACTION}]
[ON DELETE {CASCADE | SET NULL | SET DEFAULT | NO ACTION}]
Các_c t_c a_gi i_h n::=
{DEFERRABLE [INITIALLY DEFERRED | INITIALLY IMMEDIATE]}
| {NOT DEFERRABLE}
Ràng bu c th lo i CHECK. Ràng bu c th lo i CHECK ch a các m nh đ có th nh n các giá tr TRUE, FALSE và UNKNOWN (NULL). Ví d các m nh đ d i các d ng khác nhau đ c d n ra trong ch ng 5 (…). Ràng bu c th lo i CHECK có th đ c s d ng gi ng nh m t ph n khai báo mi n giá tr , b ng, c t b ng ho c là m t ràng bu c tính toàn v n riêng l − ASSERTION. Ràng bu c đ c cho là b phá hu n u nh m nh đ c a ràng bu c nh n giá tr FALSE.
Ví d 15. Ví d ràng bu c d ng CHECK:
CHECK (students.birthday IS NOT NULL) AND (students.surename IS NOT NULL) Ràng bu c này kh ng đ nh r ng ngày sinh và h tên c a sinh viên không th b tr ng (nh n giá tr NULL).
Ví d 16. Ràng bu c CHECK exists(select * from DANHSACH) kh ng đ nh r ng danh sách không đ c tr ng (không có gì trong danh sách c ).
Ràng bu c b ng và ràng bu c c t. Ràng bu c b ng và ràng bu c c t là m t ph n khai báo b ng và các c t t ng ng. Ràng bu c b ng có th liên quan đ n m t vài c t c a b ng. Ràng bu c c t ch liên quan đ n m t c t c a b ng. B t c ràng bu c c t nào c ng có th khai báo gi ng nh m t ràng bu c b ng, nh ng không t n t i chi u ng c l i.
Ràng bu c c t ho c b ng có th đ t tên, và v i tên đó sau này có th hu b ho c là thay đ i th i đi m ki m tra c a nó.
Ràng bu c PRIMARY KEY. Ràng bu c PRIMARY KEY cho m t b ng ho c là c t có ngh a là m t ho c m t nhóm các c t t o thành khoá ng viên (candidate key) c a b ng. i u đó c ng có ngh a r ng t h p các giá tr PRIMARY KEY ph i là đ c nh t cho m i b n ghi c a b ng. Các giá tr l p l i ho c là NULL s b t ch i. Theo các thu t ng c a chu n SQL g i là KHOÁ CHÍNH c a b ng.
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 56 Ràng bu c UNIQUE. Ràng bu c UNIQUE cho m t b ng ho c c t có ngh a là m t nhóm m t ho c nhi u c t t o thành khoá ng viên c a b ng mà trong đó cho ch p nh n c giá tr NULL. Ngh a là hai b n ghi ch a cùng giá tr nh ng khác NULL thì s b cho là phá hu tính đ c nh t và s b t ch i. Hai b n ghi ch a cùng giá tr NULL s đ c cho là khác nhau và đ c ch p nh n. V i m t b ng có th đ nh ngh a nhi u ràng bu c UNIQUE.
Nh n xét! Trên quan đi m mô hình d li u b ng (xem ch ng…, nh n xét đ i v i các quy lu t tính toàn v n c a th c th và các khoá ngoài?), ràng bu c UNIQUE không đ nh ngh a khoá ng viên vì khoá ng viên không đ c ch a giá tr NULL.
Ràng bu c FOREIGN KEY và REFERENCES. Ràng bu c FOREIGN KEY…
REFERENCES… cho m t b ng và ràng bu c REFERENCES cho m t c t đ nh ngh a khoá ngoài c a b ng. Ràng bu c REFERENCES cho m t c t đ nh ngh a khoá ngoài đ n gi n.
Khoá đ n gi n là khoá đ c c u thành t m t c t. Ràng bu c FOREIGN KEY…
REFERENCES… cho m t b ng có th đ nh ngh a khoá ngoài đ n gi n ho c là ph c h p.
Khoá h c h p là khoá đ c c u thành t nhi u c t c a m t b ng. C t ho c nhóm c t c a b ng mà khoá ngoài liên k t đ n ph i có ràng bu c PRIMARY KEY ho c UNIQUE. Các c t mà khoá ngoài liên k t đ n ph i có cùng ki u d li u gi ng nh các c t thành viên c a khoá ngoài. B ng có th liên k t đ n chính b n thân mình. Ràng bu c khoá ngoài b phá hu n u các giá tr có trong khoá ngoài không trùng v i các giá tr các khoá t ng ng (c a b ng cha) nào c a b t c m t b n ghi nào c a b ng cha. Các thao tác d n đ n s phá hu ràng bu c khoá ngoài đ u b t ch i. Các giá tr c a khoá ngoài và các khoá b ng cha c n ph i trùng kh p nh th nào, c ng nh nh ng hành đ ng nào c n ph i th c thi khi x y ra thay đ i khoá b ng cha s đ c miêu t trong ph n đ c t liên k t.
Ràng bu c NOT NULL. Ràng bu c NOT NULL c a c t không ch p nh n s xu t hi n trong c t các giá tr NULL.
c t liên k t. c t liên k t đ nh ngh a các đ c tính c a khoá ngoài c a b ng.
M nh đ MATCH {FULL|PARTIAL}. M nh đ MATCH FULL đòi h i s trùng kh p toàn b các gía tr khoá ngoài và khoá chính. M nh đ MATCH PARTIAL ch p nh n s trùng kh p m t ph n các gía tr khoá ngoài và khoá chính. M nh đ MATCH có th b qua. i v i tr ng h p MATCH PARTIAL trong b ng con có th xu t hi n các b n ghi v i các giá tr khoá ngoài trùng h p m t cách không đ c nh t v i các giá tr khoá c a b ng cha. i u đó có ngh a là m t b n ghi c a b ng con có th có nhi u liên k t không đ c nh t đ n nhi u b n ghi thu c b ng cha. Ràng bu c này r t khác bi t v i v i mô hình d li u quan
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 57 h , và s khác bi t đó làm nên s ch p nh n các giá tr NULL. nghiên c u các ph ng án trùng kh p c a các khoá ngoài và khoá cha c n có ví d sau đây.
Ví d 17. Gi s có hai b ng A và B:
X Y 1 y1 1 y2 2 y3 2 y4 3 y5 3 y6
Hình. B ng cha A Hình. B ng con B
B ng A có khoá chính là (X,Y). B ng B có khoá chính là Z và có khoá ngoài là (X,Y) liên k t k t khoá chính c a b ng A. Trong b ng sau ch ra các kh n ng trùng kh p các b n ghi c a b ng con B v i các b n ghi c a b ng cha A.
Các c t X và Y c a b ng B cho phép các giá tr NULL
Các c t X và Y c a b ng B KHÔNG cho phép các giá tr NULL
MATCH B n ghi 1 – đ c phép, kh p v i b n ghi 1 c a b ng A.
B n ghi 2 - đ c phép, không kh p v i gì c . B n ghi 3 - đ c phép, không kh p v i gì c . B n ghi 4 - đ c phép, không kh p v i gì c . B n ghi 5 - không đ c phép.
B n ghi 1 - đ c phép, kh p v i b n ghi 1 c a b ng A.
B n ghi 2 - không đ c phép.
B n ghi 3 - không đ c phép.
B n ghi 4 - không đ c phép.
B n ghi 5 - không đ c phép.
MATCH FULL
B n ghi 1 - đ c phép, kh p v i b n ghi 1 c a b ng A.
B n ghi 2 - không đ c phép.
B n ghi 3 - không đ c phép.
B n ghi 1 - đ c phép, kh p v i b n ghi 1 c a b ng A.
B n ghi 2 - không đ c phép.
B n ghi 3 - không đ c phép.
Z X Y 1 1 y1 2 1 Null 3 Null y2 4 Null Null 5 4 y8
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 58 B n ghi 4 - đ c phép, không kh p v i gì c .
B n ghi 5 - không đ c phép.
B n ghi 4 - không đ c phép.
B n ghi 5 - không đ c phép.
MATCH PARTIAL
B n ghi 1 - đ c phép, kh p v i b n ghi 1 c a b ng A.
B n ghi 2 - đ c phép, kh p không đ c nh t v i b n ghi 1 và 2 c a b ng A.
B n ghi 3 - đ c phép, đ c phép, kh p đ c nh t v i b n ghi 3 c a b ng A.
B n ghi 4 - đ c phép, không kh p v i gì c . B n ghi 5 - không đ c phép.
B n ghi 1 - đ c phép, kh p v i b n ghi 1 c a b ng A.
B n ghi 2 - không đ c phép.
B n ghi 3 - không đ c phép.
B n ghi 4 - không đ c phép.
B n ghi 5 - không đ c phép.
N u nh t t c các thu c tính c a khoá ngoài có ràng bu c NOT NULL, m nh đ MATCH s b b qua.
Các m nh đ ON UPDATE và ON DELETE đ nh ngh a các hành đ ng đ c th c hi n theo liên k t. Các hành đ ng đ c th c hi n theo liên k t đã đ c mô t trên.
N u có m t m nh đ MATCH PARTIAL và các c t thành viên c a khoá ngoài cho phép các giá tr NULL, thì s gây nên s ph c t p trong vi c hi u các hành đ ng đó đ c th c thi nh th nào. Các hành đ ng đó và cùng v i s ph c t p có th x y ra đ c miêu t chi ti t trong [10]
Các thu c tính c a ràng bu c. Các thu c tính c a ràng bu c đ nh ngh a th i đi m ki m tra ràng bu c. Ràng bu c có th đ c đ nh ngh a NOT DEFERRABLE (không trì hoãn) ho c DEFFERRABLE (trì hoãn). N u các thu c tính không đ c khai báo thì m c đ nh nó s đ c nh n giá tr NOT DEFFERRABLE.
N u nh ràng bu c đ c đ nh ngh a là NOT DEFFERRABLE (không trì hoãn), thì nó s đ c ki m tra ngay l p t c sau khi th c thi m i thao tác (toán t ) có th d n đ n s vi ph m ràng bu c nh INSERT, UPDATE ho c DELETE.
N u nh ràng bu c đ c đ nh ngh a là DEFFERRABLE (trì hoãn), thì nó có th s có hai ch đ ki m tra − không ch m tr sau m i thao tác ho c vào cu i giao tác. Ch đ ki m tra có th đ c thay đ i vào b t c lúc nào trong than giao tác b ng l n SET CONSTRAINTS. Trong khi đ nh ngh a ràng bu c có th khai báo ch đ ki m tra ban đ u INITIALLY DEFERRED (trì hoãn ban đ u) ho c INITIALLY IMMEDIATE (ban đ u ki m tra ngay l p t c).
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 59 Cú pháp các l nh SQL dùng các ràng bu c
Chu n SQL mô t các l nh sau đây có th dùng các ràng bu c:
− CREATE DOMAIN − t o mi n giá tr
− ALTER DOMAIN − thay đ i mi n giá tr
− DROP DOMAIN − hu mi n giá tr
− CREATE TABLE − t o b ng m i
− ALTER TABLE − thay đ i b ng
− DROP TABLE − hu b ng
− CREATE ASSERTION − t o kh ng đ nh
− DROP ASSERTION − xoá kh ng đ nh
− COMMIT WORK − c đ nh giao tác
− SET CONSTRAINTS − n đ nh th i đi m ki m tra các ràng bu c CREATE DOMAIN Tên_mi n_giá_tr [AS] D ng_d _li u
[DEFAULT Giá_tr _m c_đ nh] gi i_h n_CHECK
[Các_thu c_tính_c a_gi i_h n]
L nh này t o ra mi n giá tr và trên c s mi n giá tr đó có th đ nh ngh a các c t c a b ng. B i vì tên c a c t b ng s đ c t o ra trên c s mi n giá tr đang đ c t o ra không đ c bi t tr c, nên trong ràng bu c CHECK mi n giá tr đ liên k t đ n giá tr c a mi n giá tr đó ng i ta dùng t khoá VALUE. Trong m i b ng c th , HQT CSDL s thay th t khoá VALUE b ng tên c t b ng.
Ví d 18. Câu l n sau đây s t o ra m t mi n giá tr Salary trên c s ki u d li u là các s nguyên, và các giá tr trong mi n đó không đ c nh h n 0 (nh ng NULL không đ c ch p nh n). Theo m c đ nh ràng bu c đó s đ c ki m tra ngay l p t c, nh ng c ng có th đ c trì hoãn s ki m tra.
CREATE DOMAIN Salary AS integer CHECK (VALUE > 0) DEFERRABLE INITIALLY IMMEDIATE
ALTER DOMAIN Tên_mi n_giá_tr {SET DEFAULT Giá_tr _m c_đ nh}
| {DROP DEFAULT}
| {ADD [Tên_gi i_h n] Gi i_h n_CHECK [Các_thu c_tính_gi i_h n]}
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 60
| {DROP CONSTRAINT Tên_gi i_h n}
Câu l nh này thay đ i m t mi n giá tr đã có. Chu n SQL không cho phép th c hi n nhi u thay đ i cùng m t lúc b ng m t câu l nh ALTER DOMAIN. Ngh a là n u c n hu b ràng bu c CHECK và thêm giá tr m c đ nh, thì c n ph i th c hi n hai câu l nh ALTER DOMAIN.
DROP DOMAIN Tên_mi n_giá_tr CASCADE|RESTRICT
Câu l nh này xoá m t mi n giá tr đã có. N u nh có tính ch t RESTRICT, thì mi n giá tr s không b xoá n u có liên k t đ n nó t các c t c a các b ng. N u nh có tính ch t CASCADE, thì có th x y ra các hành đ ng sau:
− Ki u d li u c a mi n giá tr s đ c chuy n sang cho các c t đã đ c t o ra trên c s mi n giá tr đó.
− N u nh c t không có giá tr m c đ nh, và có giá tr m c đ nh đ c đ nh ngh a cho mi n giá tr đó, thì nó s tr thành giá tr m c đ nh c a c t đó.
− T t c các ràng bu c c a mi n giá tr s s thành ràng bu c c a c t.
CREATE TABLE Tên_b ng
({ nh_ngh a_c t|[Gi i_h n_b ng]},…)
nh_ngh a_c t ::= Tên_c t {Tên_mi n_giá_tr |Ki u_d _li u[Kích_th c]}
[Gi i_h n_c t] [DEFAULT Giá_tr _m c_đ nh]
Câu l nh này (cú pháp câu l nh không đ y đ , đã b qua các l a ch n đ t o các b ng t m th i) t o ra m t b ng trong CSDL. Trong b ng không th không có c t n ào. Trong m t b ng có th đ c đ nh ngh a nhi u ràng bu c khác nhau nh ng c ng có th không có ràng bu c nào đ c đ nh ngh a.
M i c t ph i có tên_c t và đ c đ nh ngh a trên c s m t ki u d li u ho c mi n giá tr nào đó. Nh đã nói trên, ràng bu c c a mi n giá tr s tr thành ràng bu c c a c t.
Ngoài ra có th đ nh ngh a thêm nhi u ràng bu c khác nhau cho c t. N u mi n giá tr có giá tr theo m c đ nh và trong đ nh ngh a c t có xác đ nh giá tr m c đ nh, thì giá tr m c đ nh c a c t s bao ph (b qua) giá tr m c đ nh c a mi n giá tr .
Ví d 19.
CREATE TABLE HousesForSale (hfs_Id Id_Nums PRIMARY KEY,
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 61 Name CHAR(50) NOT NULL,
Type_id INTEGER, Description CHAR(250), BuiltDate DATE,
Price Price_Domain DEFAULT 1000000,
City_Id INTEGER REFERENCES City ON UPDATE CASCADE ON DELETE RESTRICT,
Address CHAR(250),
CONSTRAINT AltKey UNIQUE(Name, Description, BuiltDate), CHECK (City_Id IS NOT NULL OR Address IS NOT NULL),
FOREIN KEY Type_Id REFERENCES HouseTypes ON UPDATE CASCADE ON DELETE RESTRICT)
Câu l nh SQL trên t o ra m t b ng m i HouseForSale v i các c t hfs_Id, Name, Description, type_id, BuiltDate, Price, City_id, Address cùng v i các ràng bu c sau:
− C t hfs_id th a k t t c các ràng bu c c a mi n giá tr Id_nums.
− C t Name không ch p nh n các giá tr NULL.
− C t Price th a k t t c các ràng bu c c a mi n giá tr Price_Domain. Ngoài ra nó còn có giá tr m c đ nh 1.000.000.
C t City_Id là m t khoá ngoài liên k t đ n khoá chính c a b ng City. Khi thay đ i khoá chính c a b ng City thì t t c các giá tr t ng ng c a khoá ngoài trong b ng HousesForSale s đ c cascade thay đ i theo. Khi xoá b n ghi trong b ng City thì s đ c ki m tra có liên k t đ n b n ghi đang b xoá t b ng HousesForSale hay không. N u tìm đ c nh ng liên k t nh v y, thì thao tác xoá b n ghi t b ng City s b hu b (rollback).
− C t Type_Id c ng là m t khoá ngoài liên k t đ n khoá chính c a b ng City.
Khoá ngoài này khác bi t v i khoá ngoài City_Id ch nó đ c đ nh ngh a nh là m t ràng bu c c a b ng. Các thao tác đ c đ nh ngh a theo liên k t t ng t nh tr ng h p trên.
− Các c t Name, Description và BuiltDate t o thành m t khoá khác c a b ng.
Ràng bu c này đ c đ t tên AltKey.
− Các c t City_Id và Address không th đ ng th i có giá tr NULL, m c dù m t c t b t k trong chúng có th có giá tr NULL.
ALTER TABLE Tên_b ng
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 62 {ADD [COLUMN] nh_ngh a_c t_nh _CREATE_TABLE}
|{ALTER [COLUMN] Tên_c t [SET DEFAULT Giá_tr _m c_đ nh| DROP DEFAULT]}
|{DROP [COLUMN] Tên_c t RESTRICT|CASCADE}
|{ADD Gi i_h n_c t}
|{DROP CONSTRAINT Tên_gi i_h n RESTRICT|CASCADE}
Câu l nh này cho phép s a đ i m t b ng đã có. Có th thêm vào b ng ho c xoá đi m t c t ho c là m t ràng bu c. Ngoài ra có th thay đ i giá tr m c đ nh c a c t n u mu n.
DROP TABLE Tên_b ng CASCADE | RESTRICT
Câu l nh này cho phép xoá m t b ng đã có. T t c các b n ghi, các ràng bu c đ c đ nh ngh a cùng v i b ng đó c ng b xoá theo cùng v i b ng đó.
N u có thông s RESTRICT, thì b ng đó s b xoá ch khi không có liên k t nào đ n b ng đó t các b ng khác c ng nh khung nhìn (View).
N u nh thông s CASCADE đ c dùng, thì t t c các đ i t ng liên k t đ n b ng đó c ng s b xoá.
CREATE ASSERTION Tên_kh ng_đ nh Gi i_h n_CHECK
[Các_thu c_tính_gi i_h n]
Câu l nh này cho phép t o ra m t kh ng đ nh, ngh a là m t ràng bu c không ph i là m t ph n c a đ nh ngh a mi n giá tr , c t hay là b ng. M nh đ CHECK có trong đ nh ngh a kh ng đ nh có th r t ph c t p và ch a các liên k t đ n nhi u b ng.
Ví d 20.
CREATE ASSERTION Check_Pay CHECK (Salespeaple.Salary IS NOT NULL) OR (Salespeaple.Commission IS NOT NULL) DEFERRABLE INITIALLY IMMEDIATE
DROP ASSERTION Tên_kh ng_đ nh
Câu l nh này cho phép xoá đi m t kh ng đ nh đang có.
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 63 COMMIT WORK
ó là l nh c đ nh giao tác. Và khi đó t t c các ràng bu c đ c trì hoãn đ n cu i giao tác s đ c ki m tra. N u m t ràng bu c nào đó không đ c tho mãn, thì giao tác s b rollback.
SET CONSTRAINT {Tên_gi i_h n, …|ALL} {DEFERRED | IMMEDIATE}
Câu l nh này cho phép thay đ i th i đi m ki m tra c a t t c ho c nh ng ràng bu c đ c li t kê trong th i gian th c thi giao tác. Câu l nh này ch có tác d ng đ i v i các ràng bu c đ c đ nh ngh a theo ki u DEFERRABLE. N u ràng bu c A n m trong tr ng thái IMMEDIATE (ki m tra ngay l p t c), thì câu l nh SET CONSTRAINT A DEFERRED chuy n nó vào tr ng thái DEFERRED (trì hoãn ki m tra) và khi đó t t c các thao tác có kh n ng phá hu ràng bu c đó s đ c th c thi không qua ki m tra. S ki m tra s đ c th c hi n vào cu i giao tác ho c là vào th i đi m xu t hi n l nh SET CONSTRAINT A IMMEDIATE.
H QU N TR C S D LI U – B n Nháp 30-08-08
http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 64 Ch ng II.3 Giao tác và tính song song (tính đ i ng u)
Trong ch ng này chúng ta nghiên c u các kh n ng th c thi song song các giao tác b i nhi u ng i dùng khác nhau, ngh a là tính ch t cô l p I (Isolation) c a các giao tác.
Các HQT CSDL hi n đ i là nh ng h th ng nhi u ng i dùng, ngh a là ch p nh n công vi c c a s l ng l n ng i dùng song song cùng m t lúc. Trong khi đó ng i dùng không đ c làm phi n ( nh h ng?) đ n nhau. B i vì m t đ n v logic công vi c c a ng i dùng là giao tác. Nh v y công vi c c a HQT CSDL ph i đ c t ch c nh th nào đó, đ ng i dùng c m th y r ng giao tác c a h đ c th c thi không ph thu c vào các giao tác c a các ng i dùng khác.
M t ph ng pháp đ n gi n nh t và d nh n th y có th đ m b o tính cô l p nh v y, đó là x p t t c các giao tác vào m t hàng duy nh t và th c thi chúng theo m t trình t n i đuôi nhau m t cách nghiêm ng t. C ng d nh n th y ph ng pháp này không th ch p nh n b i nguyên nhân: m t đi u th c a x lý công vi c song song. Nh v y, các giao tác ph i đ c th c thi song song đ ng th i, nh ng ph i đ m b o k t qu thu đ c trùng kh p v i k t qua thu đ c trong tr ng h p các giao tác đ c th c thi theo m t trình t n i ti p nghiêm ng t. Khó kh n ch , n u không tính tr c nh ng ph ng án đ c bi t, thì nh ng thay đ i d li u b i m t ng i dùng có th s b thay đ i b i giao tác c a m t ng i dùng th hai tr c khi giao tác c a ng i dùng th nh t k t thúc. Và k t qu là ng i dùng th nh t s th y không ph i là k t qu công vi c c a mình, mà là m t k t qu nào đó không xác đ nh.
Các ph ng pháp tu n t hoá các giao tác bao g m:
a) Chi m l nh đ ng b
− Chi m l nh đ ng b b ng cách phân h t (tán nh )
b) Gi i quy t v n đ song song b ng cách phong to
M t trong nh ng ph ng pháp tu n t hoá các giao tác th ng dùng đ m b o các giao tác làm vi c đ ng th i và song song không ph thu c l n nhau là ph ng pháp phong to .
H QU N TR C S D LI U – B n Nháp 30-08-08