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

Bài giảng cơ sở dữ liệu nâng cao

Chia sẻ: Tran Ai | Ngày: | Loại File: PDF | Số trang:88

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

Việc chọn mô hình cơ sở dữ liệu quan hệ làm hệ thống cơ sở có nhiều lý do thứ nhất là cơ sở toán học vững chắc của mô hình quan hệ làm nó trở thành mô hình lý tưởng trong việc giải quyết các vấn đề lý thuyết...

Chủ đề:
Lưu

Nội dung Text: Bài giảng cơ sở dữ liệu nâng cao

  1. …………..o0o………….. Cơ sở dữ liệu nâng cao
  2. CHƯƠNG 1 T NG QUAN V H QU N TR CƠ S D LI U QUAN H Trong chương này chúng ta h th ng l i các khái ni m cơ b n c a cơ s d li u quan h . M c ñích là ñ nh nghĩa các thu t ng , ñưa ra b khung cơ s cho các ph n sau. Vi c ch n mô hình cơ s d li u quan h làm h th ng cơ s có nhi u lý do: th nh t là cơ s toán h c v ng ch c c a mô hình quan h làm nó tr thành mô hình lý tư ng trong vi c gi i quy t các v n ñ lý thuy t, hai là ph n l n các v n ñ trình bày trong các chương sau có th mô t d dàng b i mô hình quan h , ba là th trư ng h qu n tr cơ s d li u quan h r t phát tri n và v n ñang m r ng và cu i cùng là ph n l n các h cơ s d li u sau này cũng thu c lo i quan h . Mô hình quan h có ba ñ c trưng cơ b n: 1. C u trúc d li u ñơn gi n. Chúng là các quan h (relation), ñư c bi u di n như các b ng 2 chi u v i ph n t là các b n ghi (record, data item). Nó cung c p ñ c tính ñ c l p m c ñ cao so v i d ng bi u th v t l ý c a d l i u. 2. Mô hình quan h cung c p m t n n t ng v ng ch c, b o ñ m ñư c tính nh t quán d li u (data consistency). Thi t k cơ s d li u ñư c h tr b i quá trình chu n hoá, giúp lo i b các b t thư ng d li u. Các tr ng thái nh t quán c a m t cơ s d li u có th ñư c ñ nh nghĩa và duy trì m t cách th ng nh t qua các quy t c toàn v n cơ s d li u (integrity rules). 3. Mô hình quan h cho phép các thao tác trên quan h theo ki u t p h p. ð c tính này ñã d n ñ n vi c phát tri n các ngôn ng phi th t c m nh m v i n n t ng là lý thuy t t p h p (ñ i s quan h ) ho c lôgic (phép tính quan h ). 1. Khái ni m cơ s d li u 1.1. Cơ s d li u D li u ñư c lưu tr trên các thi t b lưu tr theo m t c u trúc nào ñó ñ có th ph c v cho nhi u ngư i s d ng v i nhi u m c ñích khác nhau g i là cơ s d l i u. 1.2. H qu n tr cơ s d li u Ph n m m cho phép m t ho c nhi u ngư i t o l p, lưu tr , c p nh t và khai thác cơ s d li u g i là h qu n tr cơ s d li u (DataBase Management Systems - DBMS). Vai trò chính c a h qu n tr cơ s d li u là cho phép ngư i dùng thao tác v i d li u thông qua các thu t ng trìu tư ng, khác v i vi c máy tính lưu tr d li u. Theo nghĩa này h qu n tr cơ s d li u có nhi m v như là m t b thông d ch (interpreter) v i ngôn ng b c cao nh m giúp ngư i dùng s d ng h th ng mà không c n quan tâm ñ n cách bi u di n d li u trong máy ho c các thu t toán chi ti t. Ví d ngư i dùng không c n bi t h qu n tr cơ s d li u Access t ch c d li u theo ki u hàm băm, ki u file ch m c hay ki u cây cân b ng, và cũng không c n bi t thu t toán th c hi n l nh s p x p là Quick Sort, thu t toán n i b t hay s p x p nh phân ... M t cơ s d li u g m m t ho c nhi u t p tin ñư c thi t k theo m t c u trúc nh t ñ nh và có quan h ch t ch v i nhau. Cơ s d li u ñư c dùng chung cho Chương 1. T ng quan v h qu n tr cơ s d li u quan h 3
  3. nhi u ngư i và nhi u m c ñích khác nhau, vì v y s ti t ki m ñư c tài nguyên, gi m thi u s trùng l p thông tin, b o ñ m tính nh t quán thông tin. 1.3. Các ñ c trưng c a phương pháp cơ s d li u + Chia s d li u. M c ñích chính c a cách ti p c n cơ s d li u là d li u ñư c chia s b i nhi u ngư i dùng h p pháp. + Gi m thi u dư th a d li u. D li u dùng chung cho nhi u b ph n, thay vì ñư c lưu tr phân tán trùng l p nay ñư c lưu tr t p trung m t ch theo m t c u trúc th ng nh t. + Tính tương thích d li u. Vi c lo i b s dư th a d li u kéo theo h qu là s tương thích d li u. Ví d khi ñ a ch nhân viên thay ñ i thì t t c các b ph n ñ u ñư c c p nh t ñ a ch m i. + Tính toàn v n d li u (data integrity). M i cơ s d li u c n ñ m b o m t s lo i ràng bu c toàn v n (integrity constraints). ð c bi t khi ngư i dùng th c hi n các thao tác như chèn, xoá hay s a ñ i d li u thì các ràng bu c ñó c n ph i ñư c ki m tra m t cách ch t ch . + B o m t d li u (data security). Khi có nhi u ngư i cùng chia s d li u, vi c b o ñ m an toàn d li u và b o m t thông tin là t i quan tr ng. C n ph i có cơ ch b o m t như m t kh u (password) và phân quy n truy c p d li u (data access rights). + Tính ñ ng b d li u (synchronization). Thông thư ng cơ s d li u ñư c nhi u ngư i dùng truy c p ñ ng th i, gây nên s c nh tranh d li u. Vì v y c n có cơ ch b o v ch ng s không tương thích b i các thao tác cùng lúc lên d l i u. + Tính ñ c l p d li u. S tách bi t c u trúc mô t d li u kh i chương trình ng d ng s d ng d li u g i là ñ c l p d li u. ði u này cho phép phát tri n t ch c d li u mà không c n s a ñ i chương trình ng d ng. S ñ c l p d li u là m t trong m c tiêu chính c a cách ti p c n cơ s d li u. Tương t như m t ph n m m, vòng ñ i c a cơ s d li u g m có các giai ño n chính sau: - L p k ho ch cơ s d li u (database planning). - Kh o sát, phân tích (study and analysis). - Thi t k cơ s d li u (database design). - Cài ñ t cơ s d li u (database implementation). - B o trì cơ s d li u (post-implementation). 1.4. Lư c ñ d li u và th hi n d li u Khi thi t k cơ s d li u ta t o ra c u trúc cơ s d li u, cái ñó g i là lư c ñ d li u. Ví d lư c ñ d li u h sơ nhân s g m các thành ph n sau: H tên, ngày sinh, h s lương Các thành ph n c a lư c ñ d li u g i là thu c tính ho c trư ng. Khi s d ng cơ s d li u thì ta làm vi c v i d li u th t s , ñó là s th hi n d li u. Ví d ñ i v i lư c ñ trên ta có th có các th hi n d li u sau: Nguy n Văn A, 20/08/1970, 3.40 Chương 1. T ng quan v h qu n tr cơ s d li u quan h 4
  4. Tr n Th B, 15/05/1962, 4.12 M i th hi n d li u g i là b hay b n ghi. 1.5. Các m c trìu tư ng d li u Gi a máy tính thao tác v i các bit, ngư i thi t k cơ s d li u và ngư i dùng có cách nhìn khác nhau ñ i v i d li u, ñó chính là các m c trìu tư ng d li u. Sơ ñ chu n v các m c trìu tư ng như sau: Nhóm ngư i dùng 1 khung nhìn 1 Nhóm ngư i dùng 2 khung nhìn 2 CSDL CSDL khái vt ni m lý .... Nhóm ngư i dùng n khung nhìn n a. Cơ s d li u v t lý: n m c ñ nh trong các thi t b lưu tr như ñĩa và băng t . B n thân cơ s d li u v t lý cũng có nhi u m c trìu tư ng khác nhau: t m c b n ghi và file trong ngôn ng l p trình như PASCAL, qua m c b n ghi lôgic ñư c h tr b i h ñi u hành, ñ n m c các bit và ñ a ch v t lý trong các thi t b lưu tr . b. Cơ s d li u khái ni m (schema): là s trìu tư ng th gi i th c ñ i v i m t ñ i tư ng nào ñó. H qu n tr cơ s d li u cung c p ngôn ng thi t k d li u ñ thi t k sơ ñ khái ni m. ðây là ngôn ng b c cao cho phép mô t cơ s d li u khái ni m b ng ngôn ng "mô hình d li u". M t ví d ñi n hình là ñ th có hư ng trong mô hình m ng, trong ñó các nút bi u di n các ñơn th và các cung bi u di n quan h . c. Khung nhìn ho c lư c ñ con (subschema): là mô hình trìu tư ng m t ph n c a cơ s d li u khái ni m. Có nh ng h trang b công c g i là ngôn ng thi t k khung nhìn cho phép khai báo khung nhìn, và công c g i là ngôn ng thao tác d li u khung nhìn ñ di n t câu h i và các thao tác ñ i v i khung nhìn. Theo m t nghĩa nào ñó, khung nhìn là cơ s d li u khái ni m và cùng m c trìu tư ng như cơ s d li u khái ni m. M t khác khung nhìn có th trìu tư ng hơn theo nghĩa d li u c a nó ñư c suy ra t cơ s d li u khái ni m. d. ð c l p d l i u ð c l p d li u d li u gi a các m c trìu tư ng có ý nghĩa r t quan tr ng ñ i v i cơ s d li u. Chương 1. T ng quan v h qu n tr cơ s d li u quan h 5
  5. - ð c l p d li u m c v t lý: S thay ñ i lư c ñ d li u v t lý không làm thay ñ i lư c ñ d li u m c khái ni m và m c khung nhìn. Ta c n hi u r ng s thay ñ i t ch c v t lý d li u có th làm nh hư ng ñ n hi u qu chương trình ng d ng. S ñ c l p d li u m c v t lý ñ m b o không ph i vi t l i chương trình ch vì lý do thay ñ i cách t ch c d li u. ý nghĩa c a tính ñ c l p d li u m c v t lý là nó cho phép ta tinh ch nh cơ s d li u m c v t lý ñ tăng hi u qu s d ng trong khi các chương trình ng d ng v n ch y bình thư ng như không có v n ñ gì x y ra. - ð c l p d li u lôgic: S thay ñ i lư c ñ d li u khái ni m không làm thay ñ i khung nhìn. Trong quá trình s d ng cơ s d li u có th ta ph i s a ñ i hi u ch nh lư c ñ khái ni m, ch ng h n thêm thông tin v th c th mà cơ s d li u mô t . 1.6. Ngôn ng d li u M i h qu n tr cơ s d li u c n ph i có ngôn ng riêng c a mình. Có hai lo i ngôn ng cơ s d li u. a. Ngôn ng mô t d li u (Data Definition Language - DDL). G m các l nh cho phép khai báo, hi u ch nh c u trúc cơ s d li u, mô t các m i quan h c a d li u cũng như các quy t c áp ñ t lên d li u. Ngôn ng mô t d li u ñư c xây d ng d a trên lo i mô hình d li u (mô hình quan h , mô hình m ng, mô hình phân c p, mô hình hư ng ñ i tư ng ...) mà h qu n tr cơ s d li u tương ng ñư c thi t k . b. Ngôn ng thao tác d li u (Data Manipulation Language - DML). Là b l nh cho phép ngư i dùng th c hi n các công vi c: - C p nh t d li u như thêm, s a, xoá. - Truy v n, t ng h p d li u. - Các hàm tính toán. - B o m t d l i u. * Giao ti p ngôn ng ch : là kh năng cho phép chương trình vi t trong các ngôn ng b c cao như COBOL, C , ... có th truy c p x lý d li u trong cơ s d l i u. * Ngôn ng truy v n SQL : là ngôn ng có cú pháp ti ng Anh, giúp ngư i dùng có th thao tác d li u d dàng mà không c n l p trình. ðây là lo i ngôn ng th h th 4 v i ñ c trưng phi th t c. 2. Khái ni m cơ s d li u quan h 2.1. Mi n Mi n là t p h p các giá tr . Ngư i ta thư ng dùng ch hoa ñ ký hi u mi n. ◊ Ví d . Các t p h p sau là các mi n: - T p các s nguyên. - T p các xâu ký t ñ dài không quá 30 ký t . - A = {0,1}. Chương 1. T ng quan v h qu n tr cơ s d li u quan h 6
  6. 2.2. Tích ð -các Tích ð -các c a các mi n D1, D2,..., Dn, ký hi u là D1 × D2 × ... × Dn, là t p h p t t c n-b (v1, v2, ..., vn) tho mãn v1∈D1, v2∈D2, ..., vn∈Dn. T c là D1 × D2 × ... × Dn = {(v1, v2,..., vn) | v1∈D1, v2∈D2, ..., vn∈Dn }. ◊ Ví d . Cho D1 = {0,1}, D2 = {a,b,c}. Khi ñó tích ñ -các D1× D2 = {(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)} 2.3. Quan h Quan h là t p con c a tích ñ -các c a 1 ho c nhi u mi n. Quan h có th có h u h n ho c vô h n s ph n t . Trong giáo trình này ta gi thi t r ng quan h có h u h n ph n t . ◊ Ví d Cho D1 = {0,1}, D2 = {a,b,c}. T p r = {(0,a),(1,b),(1,c)}⊂ D1×D2, v y r là quan h trên D1 và D2. Ta nói quan h r có b c n n u r là t p con c a tích ñ -các c a n mi n. M i ph n t c a quan h g i là b . M i b c a quan h b c n, còn g i là n-b , có n thành ph n. M i thành ph n c a b là nguyên t , có nghĩa không th phân tách ñư c thành các thành ph n nh hơn. ð tr c quan ta có th coi quan h như m t b ng trong ñó m i hàng là m t b và m i c t ng v i m t thành ph n. D li u ñư c t ch c dư i d ng các quan h có liên quan v i nhau g i là cơ s d li u quan h . M i c t c a quan h ñư c gán m t tên g i là thu c tính. T p h p t t c các tên thu c tính c a quan h g i là lư c ñ quan h . T p h p các lư c ñ quan h c a m t cơ s d li u g i là lư c ñ cơ s d li u quan h . • Các tính ch t c a quan h - Các giá tr trên c t ph i cùng m t mi n giá tr và ñơn tr . Giá tr trên giao c a c t và hàng ñơn tr , không ch p nh n nhi u giá tr . - M i hàng là duy nh t. Không cho phép hai hàng hoàn toàn gi ng nhau. ◊ Ký hi u Lư c ñ quan h R có các thu c tính A1, A2, ..., An ký hi u là R = (A1, A2, ..., An) Quan h r v i lư c ñ R = (A1, A2, ..., An) có th vi t Chương 1. T ng quan v h qu n tr cơ s d li u quan h 7
  7. r(R) ho c r(A1, A2, ..., An) Cho r là quan h v i lư c ñ R = (A1, A2, ..., An), t là m t b c a r, A ⊂ {A1, A2, ..., An}. Khi ñó t(A) ký hi u b các thành ph n c a t ng v i các thu c tính trong t p A. N u A là 1 thu c tính thì t(A) chính là giá tr thành ph n ng v i thu c tính A. ◊ Ví d ðây là ví d s dùng làm cơ s d li u m u ñ mô hình hoá m t công ty. Các th c th ñư c mô hình hoá là: - Các nhân viên, ký hi u EMP, vi t t t t employee. - Các d án, ký hi u PROJ, vi t t t t project. ð i v i m i nhân viên chúng ta mu n theo dõi các thông tin sau: - Mã s nhân viên, ký hi u ENO, vi t t t t employee number. - Tên nhân viên, ký hi u ENAME, vi t t t t employee name. - Ch c v , ký hi u TITLE. Lương, ký hi u SAL, vi t t t t salary. - - Mã s d án, ký hi u PNO, vi t t t t project number. - Nhi m v d án, ký hi u RESP, vi t t t t responsibility. - Th i gian làm vi c trong d án, ký hi u DUR, vi t t t t duration. ð i v i m i d án chúng ta mu n theo dõi các thông tin sau: - Mã s d án, ký hi u PNO, vi t t t t project number. - Tên d án, ký hi u PNAME, vi t t t t project name. - Kinh phí d án, ký hi u BUDGET. Các lư c ñ quan h (relation scheme) cho cơ s d li u này có th ñ nh nghĩa như sau: EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR) PROJ(PNO, PNAME, BUDGET) Lư c ñ EMP có 7 thu c tính (attribute): ENO, ENAME, TITLE, SAL, PNO, RESP, DUR. Giá tr c a ENO l y t mi n ch a các mã s nhân viên, gi s là D1, Giá tr c a ENAME l y t mi n ch a các tên nhân viên h p l , gi s là D2, ... ðây là m t th hi n cơ s d li u m u c a chúng ta g m hai b ng như sau: EMP ENO ENAME TITLE SAL PNO RESP DUR E1 J.Doe Elect.Eng. 40000 P1 Manager 12 E2 M.Smith Syst.Anal. 34000 P1 Analyst 24 E2 M.Smith Syst.Anal. 34000 P2 Analyst 6 E3 A.Lee Mech.Eng. 27000 P3 Consultant 10 E3 A.Lee Mech.Eng. 27000 P4 Engineer 48 E4 J.Miller Programmer 24000 P2 Programmer 18 E5 B.Casey Syst.Anal. 34000 P2 Manager 24 Chương 1. T ng quan v h qu n tr cơ s d li u quan h 8
  8. E6 L.Chu Elect.Eng. 40000 P4 Manager 48 E7 R.David Mech.Eng. 27000 P3 Engineer 36 E8 J.Jones Syst.Anal. 34000 P3 Manager 40 PROJ PNO PNAME BUDGET P1 Instrumentation 150000 P2 Database Development 135000 P3 CAD/CAM 250000 P4 Maintenance 310000 Các c t c a b ng tương ng các thu c tính c a quan h . Các thông tin nh p theo hàng tương ng v i các b hay b n ghi. Dòng trên cùng bi u di n lư c ñ quan h c a b ng. M t giá tr c a thu c tính, ch ng h n lương c a nhân viên, th i gian tham gia d án,... t i th i ñi m nào ñó có th chưa ñư c xác ñ nh. Khi ñó có nhi u cách di n gi i khác nhau như “chưa ñư c bi t” hay “chưa áp d ng ñư c”. “Giá tr ñ c bi t” thư ng ñư c g i là null. Giá tr null ph i khác các giá tr trong mi n thu c tính, và cũng c n phân b êt nó v i giá tr zero (v i thu c tính ki u s ) hay giá tr r ng (v i thu c tính ki u ký t ). 2.4. Khoá a) Siêu khoá Cho lư c ñ quan h R=(A1, A2, ..., An) và t p con S ⊂ { A1, A2, ..., An }. T p S g i là siêu khoá (superkey) c a lư c ñ R n u các thu c tính c a S xác ñ nh duy nh t các b c a m i quan h c a lư c ñ R, t c là v i m i quan h r c a lư c ñ R ph i tho mãn: ∀ t1, t2 ∈ r: t1 ≠ t2 ⇒ ∃ A∈ S: t1(A) ≠ t2(A) Lưu ý r ng theo ñ nh nghĩa, m i b là duy nh t nên ñ i v i m i lư c ñ quan h , t p h p t t c thu c tính là siêu khoá. Siêu khoá là cơ s ñ phân bi t 2 b khác nhau trong 1 quan h . M t lư c ñ có th có nhi u siêu khoá. Tính ch t c a siêu khoá là quy lu t ñư c xác ñ nh trong quá trình phân tích thi t k cơ s d l i u. ◊ Ghi chú (1) T p t t c thu c tính R là siêu khoá (t m thư ng). (2) S ⊂ T ⊂ R & S là siêu khoá ⇒ T là siêu khoá. b) Khoá T p K các thu c tính c a lư c ñ R là khoá (key) n u K là siêu khoá c c ti u, t c là m i t p con th c s c a K không ph i là siêu khoá. • M nh ñ : M i lư c ñ quan h luôn có khóa. Chương 1. T ng quan v h qu n tr cơ s d li u quan h 9
  9. Ch ng minh. M nh ñ suy ra t s t n t i ph n t c c ti u trong t p có quan h th t . ◊ Ví d Lư c ñ PROJ có khoá là PNO. Lư c ñ EMP có khoá là (ENO, PNO). Các thu c tính thu c khoá nào ñó g i là thu c tính khoá hay thu c tính nguyên t. Thu c tính không ph i thu c tính khoá g i là thu c tính không khoá. M i quan h có ít nh t m t khoá. Trư ng h p có nhi u khoá thì g i các khoá ñó là khoá d tuy n (candidate key), trong ñó có m t khoá là khoá chính (primary key). c) Khoá ngo i Cho lư c ñ R và lư c ñ Q. T p con H các thu c tính c a R g i là khoá ngo i c a R tham chi u ñ n lư c ñ Q, n u Q có khoá K g m các thu c tính (có th dư i tên khác) c a H tho mãn: V i m i quan h r và q là các quan h c a 1 cơ s d li u ng v i lư c ñ R và Q ta có: ∀x∈r ∃y∈q: x(H) = y(K) ◊ Ví d Lư c ñ EMP có khoá ngo i PNO tham chi u ñ n khoá PNO c a lư c ñ PROJ. d ng b ng cơ s d li u m u c a chúng ta g m 2 b ng như sau EMP ENO ENAME TITLE SAL PNO RESP DUR P1 PROJ PNO PNAME BUDGET P1 3. Quy t c toàn v n Qui t c toàn v n (integrity rule) là các ràng bu c ñ m b o tr ng thái nh t quán c a cơ s d li u. Chúng thư ng ñư c di n t như là các ràng bu c toàn v n. Có các lo i qui t c toàn v n sau: Toàn v n th c th (Entity integrity), Mi n giá tr (Domains integrity), Toàn v n tham chi u (Referential integrity), Thao tác b y (Triggering operations). 3.1. Qui t c toàn v n th c th Chương 1. T ng quan v h qu n tr cơ s d li u quan h 10
  10. Qui t c toàn v n th c th yêu c u th c th ph i có khoá chính, các thu c tính khoá ph i có giá tr duy nh t và khác null. Qui t c này không cho phép hai b n ghi trùng khoá. ◊ Ví d . Xét cơ s d li u EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR) PROJ(PNO, PNAME, BUDGET) Qui t c toàn v n th c th ràng bu c: - Trong lư c ñ PROJ thu c tính khoá PNO không th nh n giá tr null và có giá tr không trùng nhau. - Trong lư c ñ EMP c p thu c tính khoá (EMP, PNO) không th nh n giá tr null và có giá tr không trùng nhau. 3.2. Qui t c mi n giá tr ðây là lo i ràng bu c lên các giá tr h p l c a thu c tính. Mi n giá tr là t p h p t t c các lo i d li u và ph m vi giá tr ñư c thu c tính th a nh n. ð nh nghĩa mi n giá tr xác ñ nh các tham s ñ c trưng c a thu c tính: ki u d li u (data type), ñ dài (length), khuôn d ng (format), ph m vi (range), giá tr cho phép (allowable values), ý nghĩa (meaning), tính duy nh t (uniqueness), ch p nh n giá tr null (null support). ◊ Ví d . Xét quan h PROJ(PNO, PNAME, BUDGET) Các thu c tính PNAME và BUDGET có ràng bu c mi n giá tr như sau Tên thu c tính : PNAME BUDGET Ý nghĩa : Tên d án Kinh phí d án Ki u d li u : Ký t (Character) S (numeric) ð dài : 20 10 Format : 9,999,999 Ph m vi : > 1000 &
  11. ◊ Ví d . Xét các quan h EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR) PROJ(PNO, PNAME, BUDGET) V i m i b e ∈ EMP ph i t n t i b p∈ PROJ sao cho e(PNO) = p(PNO) Thu c tính PNO c a quan h EMP là khoá ngo i tham chi u ñ n khoá chính PNO c a quan h PROJ: EMP.PNO→PROJ.PNO Quan h EMP là quan h tham chi u và quan h PROJ là quan h ñư c tham chi u, v i thu c tính c p ghép là (EMP.PNO, PROJ.PNO). Qui t c toàn v n tham chi u ñư c xét ñ n trong khi c p nh t quan h tham chi u ho c quan h ñư c tham chi u. Ta xét các qui t c con sau. • Qui t c chèn: Không th chèn hàng m i vào quan h tham chi u n u quan h ñư c tham chi u chưa có d li u thu c tính c p ghép tương ng. ◊ Ví d . Xét các quan h EMP và PROJ. Gi s ta mu n chèn b n ghi e = (E1, J.Doe, Elect.Eng., 40000, P5, Manager, 20) trong ñó P5 là d án Elect.Commerce (thương m i ñi n t ) v i kinh phí 500000 USD. Khi ñó, n u quan h PROJ chưa có b n ghi p = (P5, Elect.Commerce, 500000) thì qui t c chèn ñ m b o không th chèn b n ghi e vào quan h EMP ñư c. Mu n chèn b n ghi e vào quan h EMP, trư c h t ta ph i chèn b n ghi p vào quan h PROJ. • Qui t c xoá: Không th xoá hàng c a quan h ñư c tham chi u n u hàng ñó có d li u thu c tính c p ghép tương ng trong quan h tham chi u. ◊ Ví d . Xét các quan h EMP và PROJ. EMP ENO ENAME TITLE SAL PNO RESP DUR E1 J.Doe Elect.Eng. 40000 P1 Manager 12 E2 M.Smith Syst.Anal. 34000 P1 Analyst 24 E2 M.Smith Syst.Anal. 34000 P2 Analyst 6 ... ... ... ... ... ... ... PROJ PNO PNAME BUDGET Chương 1. T ng quan v h qu n tr cơ s d li u quan h 12
  12. P1 Instrumentation 150000 P2 Database Development 135000 P3 CAD/CAM 250000 P4 Maintenance 310000 Gi s d án P1 ñã k t thúc và ta mu n xoá nó kh i quan h PROJ. Tuy nhiên các b n ghi m t và hai c a EMP tham chi u ñ n d án P1, vì th ta không th xoá d án P1 ñư c. Tuy nhiên, qui t c toàn v n tham chi u cho phép các phương án l a ch n sau: 1) Restrict: Không cho xoá. 2) Nullify: Gán giá tr null cho thu c tính c p ghép c a các b n ghi c a quan h tham chi u tham chi u ñ n b n ghi b xoá. 3) Cascade: Xoá t t c các b n ghi c a quan h tham chi u tham chi u ñ n b n ghi b xoá. 3.4. Qui t c thao tác b y Qui t c thao tác b y là qui t c yêu c u tính h p pháp c a d li u trong các tác nghi p c p nh t như xoá, chèn và s a. Thao tác b y có th liên quan ñ n các thu c tính c a m t quan h ho c nhi u quan h . Các ràng bu c ph c t p thư ng ñư c phát bi u d ng thao tác b y. M t thao tác b y thư ng có các thành ph n sau: 1) Qui t c ngư i dùng: là yêu c u ng n g n c a ràng bu c. 2) S ki n: là các thao tác x lý d li u (chèn, s a ho c xoá) kích ho t thao tác b y. 3) Tên quan h : tên các quan h liên quan. 4) ði u ki n: là các lý do d n ñ n vi c kích ho t thao tác b y. 5) Hành ñ ng: là công vi c th c thi khi thao tác b y ñư c kích ho t. ◊ Ví d . Cho quan h NHANVIEN(Manv, HoTen, NgaySinh, NgayBC, ...). Hi n nhiên là NgayBC (ngày vào biên ch ) không ñư c s m hơn NgaySinh. Ta có th ñ m b o ñi u ki n này b ng thao tác b y sau: Qui t c ngư i dùng: NgayBC không s m hơn NgaySinh. S ki n: Chèn, S a. Tên quan h : NHANVIEN ði u ki n: NgayBC < NgaySinh. Hành ñ ng: Ph nh n thao tác c p nh t. ◊ Ví d . Xét hai quan h KHACH(Makhach, TenKhach, TaiKhoan, SoDu) THANHTOAN(MaKhach, SoTien) Ta th y r ng SoTien c a THANHTOAN không th vư t quá SoDu c a KHACH. Ta có th ñ m b o ñi u ki n này b ng thao tác b y sau: Chương 1. T ng quan v h qu n tr cơ s d li u quan h 13
  13. Qui t c ngư i dùng: SoTien không l n hơn SoDu. S ki n: Chèn, S a. Tên quan h : THANHTOAN, KHACH ði u ki n: THANHTOAN.SoTien > KHACH.SoDu Hành ñ ng: Ph nh n thao tác c p nh t. 4. Các ngôn ng d li u quan h Các ngôn ng thao tác d li u ñư c phát tri n cho mô hình quan h (thư ng g i là ngôn ng v n tin, query language) ñư c chia làm hai nhóm căn b n: Các ngôn ng d a trên ñ i s quan h (relational algebra) và các ngôn ng d a trên phép tính quan h (relational calculus). Khác bi t gi a chúng là cách th c ngư i s d ng ñưa ra câu v n tin. ð i s quan h thu c lo i th t c (procedural), trong ñó ngư i dùng c n ph i ñ c t , nh m t s toán t , b ng cách nào ñ t ñư c k t qu . Ngư c l i phép tính quan h thu c lo i phi th t c (nonprocedural), ngư i dùng ch c n ñ c t các m i liên h c n ph i ñ m b o trong k t qu . C hai ngôn ng ñư c Codd ñưa ra năm 1970 và ông ñã ch ng minh r ng chúng tương ñương v kh năng di n t . 4.1. ð i s quan h ð i s quan h có m t t p các phép toán trên các quan h . Chúng có ngu n g c t lý thuy t t p h p (m i quan h th c ch t là m t t p h p). M i toán t nh n m t ho c hai quan h làm toán h ng và cho ra m t quan h m i (quan h k t qu ), ñ n lư t nó quan h k t qu có th dùng làm toán h ng cho m t toán t khác. Nh ng phép toán này cho phép v n tin và c p nh t cơ s d li u quan h . Có năm phép toán ñ i s cơ b n và năm phép toán khác có th ñ nh nghĩa theo các phép toán cơ b n. Các phép toán cơ b n là: phép ch n, phép chi u, phép h p, phép hi u và tích Descartes. Hai phép toán ñ u thu c lo i m t ngôi, và ba phép toán sau thu c lo i hai ngôi. Các phép toán b sung có th ñ nh nghĩa b i các phép toán cơ b n là: phép giao, phép n i, phép n i t nhiên, phép bán n i, và phép thương. Trong th c hành ñ i s quan h ñư c m r ng ñ có th nhóm ho c s p x p k t qu và có th th c hi n các phép g p ph n (aggregation) ho c các phép tính s h c. M t s phép toán khác như n i ngoài (outer join) cũng ñư c h tr . Các toán h ng c a m t s phép toán hai ngôi ph i ng h p (union compartible), t c là chúng cùng b c (cùng s thu c tính) và các thu c tính tương ng có cùng mi n giá tr . a. Phép chi u Cho quan h r v i lư c ñ quan h R=(A1, ..., An). Cho S là lư c ñ con c a R, S⊂R, S có m thu c tính (m < n). Chi u c a r lên lư c ñ S, ký hi u πS(r), ñư c ñ nh nghĩa là quan h v i lư c ñ S g m các m-b u sao cho t n t i n-b v ∈r tho mãn v(S) = u t c là πS(r) = {m-b u : ∃ v∈r, v(S) = u } Chương 1. T ng quan v h qu n tr cơ s d li u quan h 14
  14. ◊ Ví d Cho quan h r v i các thu c tính A,B,C. Sau ñây là ví d c th v chi u c a r lên hai thu c tính A và C. πA,C(r) r ⇒ AB C A C a b c a c d a f d f c b d c d c f d ◊ Ví d : Xét quan h PROJ PROJ PNO PNAME BUDGET P1 Instrumentation 150000 P2 Database Development 135000 P3 CAD/CAM 250000 P4 Maintenance 310000 Chi u c a PROJ lên các thu c tính PNO và BUDGET có k t qu như sau πPNO,BUDGET(PROJ) PNO BUDGET P1 150000 P2 135000 P3 250000 P4 310000 b. Phép ch n Cho quan h r v i lư c ñ quan h R=(A1,..., An) và F là bi u th c lôgic bao g m (i) Các toán h ng là h ng ho c (s hi u) thành ph n, (ii) Các phép toán so sánh : , ≠ , ≤, ≥ (iii) Các phép toán logic : &, ∧ (và), ∨ (ho c) , ¬ (ph ñ nh). Phép ch n c a r theo bi u th c F, ký hi u σF(r), là quan h v i lư c ñ R g m t t c các b t trong r sao cho khi thay các thành ph n c a t vào bi u th c F thì ta có giá tr ñúng. T c là σF(r) = { t∈r : F(t) = true } ◊ Ví d : Cho quan h r v i các thu c tính A,B,C. Sau ñây là ví d c th v ch n c a r theo bi u th c B=b σB=b(r) r ⇒ AB C A B C ab c a b c Chương 1. T ng quan v h qu n tr cơ s d li u quan h 15
  15. d a f c b d c b d c f d ◊ Ví d : Xét quan h EMP EMP ENO ENAME TITLE SAL PNO RESP DUR E1 J.Doe Elect.Eng. 40000 P1 Manager 12 E2 M.Smith Syst.Anal. 34000 P1 Analyst 24 E2 M.Smith Syst.Anal. 34000 P2 Analyst 6 E3 A.Lee Mech.Eng. 27000 P3 Consultant 10 E3 A.Lee Mech.Eng. 27000 P4 Engineer 48 E4 J.Miller Programmer 24000 P2 Programmer 18 E5 B.Casey Syst.Anal. 34000 P2 Manager 24 E6 L.Chu Elect.Eng. 40000 P4 Manager 48 E7 R.David Mech.Eng. 27000 P3 Engineer 36 E8 J.Jones Syst.Anal. 34000 P3 Manager 40 Các b c a các k sư ñi n (electrical engineer) ñư c bi u di n b ng phép ch n như sau σTITLE = 'Elect. Eng.'(EMP) ENO ENAME TITLE SAL PNO RESP DUR E1 J.Doe Elect.Eng. 40000 P1 Manager 12 E6 L.Chu Elect.Eng. 40000 P4 Manager 48 c. Phép h p Cho quan h r, s v i lư c ñ quan h R=(A1,..., An). H p c a r và s, ký hi u r ∪ s , là quan h v i lư c ñ R g m t t c các b thu c r ho c thu c s. ◊ Ví d Cho quan h r và s v i các thu c tính A,B,C . Sau ñây là ví d c th v h p c a r và s. r∪s r s ⇒ AB C A B C AB C a b c b g a a b c d a f d a f d a f c b d c b d b g a d. Phép hi u Cho quan h r, s v i lư c ñ quan h R=(A1,..., An). Hi u c a r và s, ký hi u r − s, là quan h v i lư c ñ R g m t t c các b thu c r nhưng không thu c s. Chương 1. T ng quan v h qu n tr cơ s d li u quan h 16
  16. ◊ Ví d Cho quan h r và s v i các thu c tính A,B,C . Sau ñây là ví d c th v hi u c a r và s . r−s r s ⇒ A B C AB C A B C a b c b g a a b c d a f d a f c b d c b d e. Tích ð -các Cho quan h r v i lư c ñ quan h R=(A1, ..., An) và quan h s v i lư c ñ quan h S=(B1,..., Bm). Tích ð các c a r và s, ký hi u r × s, là quan h v i lư c ñ =(A1, ..., An, B1,..., Bm) g m t t c các (n+m)-b , trong ñó n thành ph n ñ u là b thu c r và m thành ph n sau là b thu c s. ◊ Ví d Cho quan h r v i các thu c tính A,B,C và s v i các thu c tính D,E,F. Sau ñây là ví d c th v tích ð -các c a r và s. r×s r s ⇒ AB C D E F A B C D E F a b c b g a a b c b g a d a f d a f a b c d a f c b d d a f b g a d a f d a f c b d b g a c b d d a f f. Phép giao Cho quan h r, s v i lư c ñ quan h R=(A1,..., An). Giao c a r và s, ký hi u r ∩ s, là quan h v i lư c ñ R g m t t c các b thu c r và thu c s. ♦ Công th c. Phép giao suy ra t phép hi u r ∩ s = r − (r − s) = s − (s − r) ◊ Ví d Cho quan h r và s v i các thu c tính A,B,C . Sau ñây là ví d c th v giao c a r và s. r∩s r s ⇒ A B C AB C A B C a b c b g a d a f d a f d a f c b d g. Phép n i Chương 1. T ng quan v h qu n tr cơ s d li u quan h 17
  17. Cho quan h r v i lư c ñ quan h R=(A1, ..., An) và quan h s v i lư c ñ quan h S=(B1, ..., Bm). Cho bi u th c lôgic F. Phép n i c a quan h r và quan h s theo ñi u ki n n i F, ký hi u r >< s F là quan h v i lư c ñ =(A1, ..., An, B1, ..., Bm) g m t t c các (n+m)-b (t,u) tho t ∈ r, u ∈ s và khi th các giá tr c a t và u vào F thì ta ñư c giá tr ñúng. ñây F là bi u th c lôgic g m các toán h ng d ng AθB, trong ñó A là thu c tính c a r và B là thu c tính s và θ là phép toán so sánh. ♦ Công th c. Ta có th bi u di n r >< s = σF(r × s) F ♦ Phép ñ ng n i N u các toán t so sánh trong bi u th c F ñ u là phép b ng (=), thì phép n i theo F ñư c g i là phép ñ ng n i (equijoin). ◊ Ví d Cho quan h r v i các thu c tính A,B,C và s v i các thu c tính D,E. Sau ñây là ví d c th v phép n i và ñ ng n i c a r và s. r s r >< s B< s r s C=D ⇒ AB C D E A B C D E 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 4 5 6 6 2 7 8 9 ◊ Ví d . Xét các quan h PAY(TITLE, SAL) EMP(ENO, ENAME, TITLE) TITLE SAL ENO ENAME TITLE Elect.Eng. 40000 E1 J.Doe Elect.Eng. Syst.Anal. 34000 E2 M.Smith Syst.Anal. E3 A.Lee Mech.Eng. Mech.Eng. 27000 Programmer 24000 E4 J.Miller Programmer Operator 15000 E5 B.Casey Syst.Anal. E6 L.Chu Elect.Eng. E7 R.David Mech.Eng. E8 J.Jones Syst.Anal. Chương 1. T ng quan v h qu n tr cơ s d li u quan h 18
  18. v i ràng bu c toàn v n tham chi u EMP.TITLE→PAY.TITLE. Phép n i EMP v i PAY theo EMP.TITLE=PAY.TITLE có k t qu sau >< PAY EMP EMP.TITLE=PAY. TITLE ENO ENAME EMP.TITLE PAY.TITLE SAL E1 J.Doe Elect.Eng. Elect.Eng. 40000 E2 M.Smith Syst.Anal. Syst.Anal. 34000 E3 A.Lee Mech.Eng. Mech.Eng. 27000 E4 J.Miller Programmer Programmer 24000 E5 B.Casey Syst.Anal. Syst.Anal. 34000 E6 L.Chu Elect.Eng. Elect.Eng. 40000 E7 R.David Mech.Eng. Mech.Eng. 27000 E8 J.Jones Syst.Anal. Syst.Anal. 34000 h. Phép n i t nhiên N i t nhiên gi a 2 quan h r và s, ký hi u là r >< s, là phép ñ ng n i trên các thu c tính c th có cùng mi n giá tr . Tuy nhiên khác v i ñ ng n i là các thu c tính dùng ñ n i t nhiên ch xu t hi n m t l n trong b ng k t qu . ♦ Cách tính. Cho các quan h r và s v i các c t ñư c ñ t tên theo thu c tính. N i t nhiên r >< s ñư c tính như sau: (i) Tính tích ð -các r × s. (ii) V i m i thu c tính A có c trong r và s, ch n các b trong r × s có R.A = S.A, trong ñó R.A (S.A) là tên c t c a R × S tương ng v i c t A c a R (S). (iii) V i m i thu c tính A như trên ta lo i b c t S.A. M t cách hình th c, gi s A1, A2, ... , Ak là tên các thu c tính dùng chung cho c R và S. G i i1, i2, ... , im là danh sách các thành ph n c a R × S , tr các thu c tính S.A1, S.A2, ..., S.Ak. Khi ñó ta có th bi u di n n i t nhiên b ng công th c sau. ♦ Công th c r >< s = π σ (r × s) i1, i2,...,im R.A1=S.A1 ∧ ... ∧ R.Ak=S.Ak ◊ Ví d Cho quan h r v i các thu c tính A,B,C và s v i các thu c tính B,C,D. Sau ñây là ví d c th v phép n i t nhiên c a r và s. r >< s r s ⇒ AB C B C D A B C D a b c b c d a b c d d b c b c e a b c e b b f a d b d b c d Chương 1. T ng quan v h qu n tr cơ s d li u quan h 19
  19. c a d d b c e c a d b ◊ Ví d . Các quan h EMP(ENO, ENAME, TITLE) PAY(TITLE, SAL) cho ví d trư c, có thu c tính chung là TITLE. N i t nhiên c a hai quan h cho b ng sau EMP >< PAY ENO ENAME TITLE SAL E1 J.Doe Elect.Eng. 40000 E2 M.Smith Syst.Anal. 34000 E3 A.Lee Mech.Eng. 27000 E4 J.Miller Programmer 24000 E5 B.Casey Syst.Anal. 34000 E6 L.Chu Elect.Eng. 40000 E7 R.David Mech.Eng. 27000 E8 J.Jones Syst.Anal. 34000 i. Phép bán n i Cho quan h r v i lư c ñ quan h R=(A1,..., An) và quan h s v i lư c ñ quan h S =(B1, ..., Bm). Ký hi u θ là toán t so sánh (, ≠ , ≤, ≥). Cho F là bi u th c lôgic g m các toán h ng d ng Aθ B, trong ñó A là thu c tính c a r và B là thu c tính s. Phép bán n i c a quan h r và quan h s theo ñi u ki n n i F, ký hi u r >< s F là quan h v i lư c ñ R g m các b c a r có tham gia vào n i c a r và s theo F. ♦ Công th c. Ta có th bi u di n r >< s = πR(r >< s) F F Ưu ñi m c a phép bán n i là gi m s lư ng các b c n x lý ñ th c hi n n i. Trong h cơ s d li u phân tán ñi u này có ý nghĩa r t quan tr ng vì nó làm gi m s lư ng d li u c n truy n gi a các v trí ñ ư c lư ng câu v n tin. ♦Bán n i t nhiên r >< s = πR(r >< s) ◊ Ví d . Cho quan h r v i các thu c tính A,B,C và s v i các thu c tính D,E. Sau ñây là ví d c th v phép bán n i c a r và s. r s r >< s B
  20. 4 5 6 6 2 4 5 6 7 8 9 r s r >< s A=E ⇒ A B C D E A B C 1 2 3 3 1 1 2 3 4 5 6 6 2 7 8 9 ◊ Ví d . Xét các quan h EMP(ENO, ENAME, TITLE) PAY(TITLE, SAL) ví d trư c. Phép bán n i c a hai quan h theo EMP.TITLE=PAY.TITLE có k t qu sau EMP >< PAY EMP.TITLE=PAY.TITLE ENO ENAME TITLE E1 J.Doe Elect.Eng. E2 M.Smith Syst.Anal. E3 A.Lee Mech.Eng. E4 J.Miller Programmer E5 B.Casey Syst.Anal. E6 L.Chu Elect.Eng. E7 R.David Mech.Eng. E8 J.Jones Syst.Anal. PAY >< EMP EMP.TITLE=PAY.TITLE TITLE SAL Elect.Eng. 40000 Syst.Anal. 34000 Mech.Eng. 27000 Programmer 24000 j. Phép chia (thương) Cho quan h r v i lư c ñ quan h R=(A1, ..., An) và quan h s v i lư c ñ quan h S=(A1, ..., Am), trong ñó m < n. Ta ñ nh nghĩa phép chia r ÷ s là quan h v i lư c ñ (Am+1, ..., An) g m t t c (n-m)-b v sao cho v i m i m-b u thu c s, b (u,v) thu c r. ð l p công th c cho phép chia ta ký hi u t = π Am+1 ,..., An (r ) Khi ñó (s × t) − r là t p h p các n-b không thu c r, t o ra b ng cách l y các ph n t c a s k t h p v i n-m thành ph n c a các ph n t thu c r. ð t Chương 1. T ng quan v h qu n tr cơ s d li u quan h 21
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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