Cú pháp ràng bu c theo chu n SQL

Một phần của tài liệu Giáo trình hệ quản trị cơ sở dữ liệu nguyễn trần quốc vinh (Trang 63 - 74)

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

Một phần của tài liệu Giáo trình hệ quản trị cơ sở dữ liệu nguyễn trần quốc vinh (Trang 63 - 74)

Tải bản đầy đủ (PDF)

(217 trang)