P. 1
.Bài tập Môn thiết kế Cơ sở dữ liệu

.Bài tập Môn thiết kế Cơ sở dữ liệu

|Views: 930|Likes:
Được xuất bản bởiJimmu Tenno

More info:

Published by: Jimmu Tenno on Oct 13, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/08/2013

pdf

text

original

BÀI TẬP THIẾT KẾ CƠ SỞ DỮ LIỆU Xây dựng mô hình quan hệ cho cơ sở dữ liệu

Bài 1 Có các mô tả sau về CSDL “THƯ VIỆN”: a) Thư viện được chia ra thành các nhánh. Thông tin về mỗi nhánh gồm có Mã nhánh, Tên nhánh và Địa chỉ. b) Mỗi cuốn sách trong thư viện có các thông tin về Mã sách, Tên sách Nhà xuất bản và Tác giả… c) Một tác giả có thể viết nhiều cuốn sách. Một cuốn sách có thể có nhiều tác giả viết. d) Một nhà xuất bản xuất bản nhiều cuốn sách. Một cuốn sách do một nhà xuất bản xuất bản. Thông tin về Nhà xuất bản gồm có Tên NXB, Địa chỉ NXB và Số điện thoại NXB. e) Một cuốn sách có thể có nhiều bản sao được lưu trữ tại các nhánh. Thông tin về bản sao sách gồm Mã sách, số các bản sao. f) Thư viện có những người mượn sách. Thông tin về những người mượn sách gồm có Số thẻ, Họ tên, Địa chỉ và Số điện thoại. g) Sách được cho các người mượn mượn tại các nhánh. Thông tin về một lần mượn gồm có Ngày mượn và ngày trả. Hãy xây dựng lược đồ quan hệ cho CSDL “THƯ VIỆN ” từ các mô tả nói trên.

Kiểm tra dạng chuẩn của lược đồ quan hệ Bài 1

C→A. B→C. F={C→AB. C→DE. D→E. CG→AE} Chuẩn hóa lược đồ quan hệ Bài 1 Chuẩn hóa lược đồ quan hệ sau về dạng 3NF vừa bảo toàn tập phụ thuộc hàm vừa bảo toàn thông tin. G→A} Bài 2 Kiểm tra các dạng chuẩn a) R=ABCD. S→X} d) R=ABCDEGHI. B→C} b) R=ABCD. B→A. F={A→BC. F={S→N. F={A→C. D→E. F={A→B. D→B} Kiểm tra bảo toàn tập phụ thuộc hàm và bảo toàn thông tin Bài 1 . A→B} b) R=SDIM. B→G} c) R=ABCDEGH.Cho biết các dạng chuẩn của lược đồ quan hệ sau a) R=ABCDEG. H→I. SD→M} e) R=SNDTX. C→A. SD→M} b) R=ABCD. F={AC→B. BH→C} Bài 2 Chuẩn hóa lược đồ quan hệ sau về dạng BNF a) R=SDIM. F={A→B. F={GH→AD. S→D. ABC→D. CD→GH. H→G} d) R=ABCDEG. ABD→E. CD→B. F={SI→D. AD→B. ACE→BCG. F={CA→D. BI→ACD.C→A. E→G} b) R=ABCDEG. F={A→BC. C→B. AG→B. AB→D} c) R=ABCDGH. A→C. CB→D. S→T. F={SI→D. a) R=ABC. F={AB→C.

DE → C. C → D. R4=CDE. B → C. Kiểm tra phép tách có mất mát thông tin hay không ? Bài 2 Cho lược đồ quan hệ R=ABCD Tập phụ thuộc hàm F={A→B. A →B. R2=AC.Cho lược đồ quan hệ R=ABCDE Tập phụ thuộc hàm F={A → C. B→C. R3=BD Kiểm tra phép tách có bảo toàn thông tin hay không? Kiểm tra phép tách có bảo toàn tập phụ thuộc hàm với F ? Bài 3 Cho lược đồ quan hệ R=ABCDEH Tập phụ thuộc hàm F={C →ADEH. R2=AB. R3=BE. R2 =CDEH. DEH →A} Phép tách lược đồ thành các lược đồ con: R1=AB. R3=DEHA Kiểm tra phép tách có mất mát thông tin hay không ? . A→D. R5=AE. CE → A} Phép tách lược đồ thành các lược đồ con: R1=AD. D→C} Phép tách lược đồ thành các lược đồ con : R1=AB.

Các thuộc tính không khóa A. C→DE. B.G . F={C→AB.BÀI GIẢI THIẾT KẾ CƠ SỞ DỮ LIỆU Xây dựng mô hình quan hệ cho cơ sở dữ liệu Phần bài giải có trong phần bài tập SQL Kiểm tra các dạng chuẩn của lược đồ quan hệ Bài 1 Cho biết các dạng chuẩn của lược đồ quan hệ sau a) R=ABCDEG. E→G} Khóa của lược đồ A. Các thuộc tính không khóa B. F={A→BC.Lược đồ trên không ở dạng chuẩn 3 vì thuộc tính D. . C.Lược đồ trên đã ở dạng chuẩn 1 . D.Lược đồ trên không ở dạng chuẩn 2 vì các thuộc tính không khóa không phụ thuộc đầy đủ vào khóa chính. G . Vậy dạng chuẩn cao nhất của lược đồ là chuẩn 1 c) R=ABCDEGH. D→E. D→E. B→G} Khóa của lược đồ CD.G không phụ thuộc trực tiếp vào khóa chính A Vậy dạng chuẩn cao nhất của lược đồ là chuẩn 2 b) R=ABCDEG. E. E. E. F={A→BC.Lược đồ trên đã ở dạng chuẩn 1 .Lược đồ trên ở dạng chuẩn 2 vì các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính .

Các thuộc tính không khóa N. G→A} Khóa của lược đồ là DGB. F={S→N. DGC. Các thuộc tính không khóa B. dạng chuẩn cao nhất của lược đồ là chuẩn 1 d) R=ABCDEG. C→B. Các thuộc tính không khóa D.H→G} Khóa của lược đồ là ADH Tương tự câu b. Vậy dạng chuẩn cao nhất của lược đồ là chuẩn 1. T. D. S→D.Lược đồ trên không ở dạng chuẩn 3 vì thuộc tính D. Chọn DBG là khóa chính . S→T. X .E. S→X} Khóa của lược đồ S.Lược đồ đã ở dạng chuẩn 1 . A→B} Khóa của lược đồ AC. Các thuộc tính không khóa A. Bài 2 Kiểm tra các dạng chuẩn a) R=ABCD. F={CA→D. F={AB→C. F={SI→D. ABD→E. SD→M} Khóa của lược đồ SI.Lược đồ trên không ở dạng chuẩn 2 vì các thuộc tính không khóa không phụ thuộc đầy đủ vào khóa chính Vậy dạng chuẩn cao nhất của lược đồ là chuẩn 1 b) R=SDIM.Lược đồ trên đã ở dạng chuẩn 1 .Lược đồ trên đã ở dạng chuẩn 1 .D .M . M không phụ thuộc trực tiếp vào khóa chính SI Vậy dạng chuẩn cao nhất của lược đồ là chuẩn 2 c) R=SNDTX.Lược đồ không ở dạng chuẩn 2 vì các thuộc tính không khóa không phụ thuộc đầy đủ vào khóa chính.Lược đồ trên ở dạng chuẩn 2 vì các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính .

BI→ACD. A→C. Vế phải của tất cả các phụ thuộc hàm trong F chỉ có một thuộc tính.Lược đồ trên ở dạng chuẩn 2 vì các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính .Lược đồ trên đã ở dạng chuẩn 1 .. d) R=ABCDEGHI. F={AC→B. B→C} Bước 1: Tìm phủ tối thiểu của F i. ABC→D. Các khóa tối thiểu của lược đồ BEH. CG→AE} Các thuộc tính chỉ có mặt ở vế phải của các phụ thuộc hàm: D.Lược đồ trên ở dạng chuẩn 3 vì thuộc tính không khóa phụ thuộc trực tiếp vào khóa chính S.Lược đồ trên đã ở dạng chuẩn 1 . B→A. C→A.Loại các thuộc tính dư thừa trong các vế trái của phụ thuộc hàm có trong F. B→C} . C→A. F={A→B. . B→A. BGH. Loại khỏi F các phụ thuộc hàm dư thừa AèB dư thừa? F1=F\{AèB} = {A→C. ACE→BCG. iii. CGH…Chọn BEH làm khóa chính .Tách các phụ thuộc hàm có vế phải trên một thuộc tính thành các phụ thuộc hàm có vế phài có một thuộc tính. a) R=ABC. Không có phụ thuộc hàm nào trong F có vế trái dư thừa ii.Lược đồ trên không thuộc dạng chuẩn 2 vì có ít nhất một phụ thuộc hàm (HèI) cho thấy thuộc tính không khóa I phụ thuộc hàm bộ phận vào khóa chính Vậy dạng chuẩn cao nhất của lược đồ là chuẩn 1 Chuẩn hóa lược đồ quan hệ Bài 1 Chuẩn hóa lược đồ quan hệ sau về dạng 3NF vừa bảo toàn tập phụ thuộc hàm vừa bảo toàn thông tin. H→I. I è I là 1 thuộc tính không khóa Các thuộc tính chỉ có mặt ở vế trái của phụ thuộc hàm: H è H luôn thuộc vào 1 khóa tối thiểu của R.Lược đồ trên ở dạng chuẩn Boye-Codd vì các xác định hàm đều là khóa Vậy dạng chuẩn cao nhất của lược đồ là chuẩn Boye-Codd.

AB→D} (AD)+=ADCB chứa B. vậy AèC không dư thừa F1=F CèA dư thừa? F2=F1\{CèA} = {AèC. vậy ADèB dư thừa F4 = F3\{ADèB} . CD→B. F={A→C. C→A. AB→D} (A)+F1=A không chứa C. B→C} (B)+F3 = BCA chứa A vậy BèA dư thừa F3 = F2\{BèA} CèA dư thừa? F4 = F3\{CèA} = {A→B. F2 = F1\{AèC} BèA dư thừa? F3 = F2\{BèA} = {A→B. AD→B. C→A. B→C} (C)+F3 = C không chứa A vậy CèA không dư thừa F4 = F3 BèC dư thừa? F5 = F4\ {BèC} = {A→B. B→A. AB→D} Bước 1 : Tìm phủ tối thiểu của F i. C→A} (B)+F5 = B không chứa C vậy BèC không dư thừa F5 = F4 Ftt = F5 = {A→B. AD→B. (D)+= D : Không có phụ thuộc hàm có vế trái dư thừa. AD→B.(A)F1+ = AC không chứa B vậy AèB không dư thừa . F1 = F AèC dư thừa? F2 = F1\{AèC} = {A→B. (A)+ = AC. C→A.Tách các phụ thuộc hàm có vế phải trên một thuộc tính thành các phụ thuộc hàm có vế phài có một thuộc tính.Loại các thuộc tính dư thừa trong các vế trái của phụ thuộc hàm có trong F. iii. C→A. vậy CèA không dư thừa F2=F1 CBèD dư thừa? F3 = F2\{CBèD} = {A→C. Vế phải của tất cả các phụ thuộc hàm trong F chỉ có một thuộc tính. Loại khỏi F các phụ thuộc hàm dư thừa AèC dư thừa? F1=F\{A→C} = {C→A. CD→B. CD→B. CD→B. b) R=ABCD. vậy CBèD dư thừa F3 = F2\{CBèD} ADèB dư thừa? F4 = F3\{ADèB} = {A→C. (B)+= B. CB→D. R2(CA). ii. CB→D. C→A. (C)+= CA. R3(BC) chứa khóa A nên phép tách này bảo toàn thông tin và bảo toàn tập phụ thuộc hàm. AB→D} (C)+F2=C không chứa A. AD→B. B→C} (A)F2+ = ABC chứa C vậy AèC dư thừa. CB→D. B→C} Bước 2: Khóa của R là A Bước 3 : R được tách thành các quan hệ R1(AB). CD→B. AB→D} (CB)+ = CBAD chứa D.C→A.

CD→H. CD→G. c) R=ABCDGH.Loại bỏ các phụ thuộc hàm dư thừa trong F GH→A dư thừa ? F1=F\{GH→A} = {GH→D. F={GH→A. CD→H. C→A. CD→G. CD→H. C→A. CD→G. GH→D không dư thừa F2=F1 AG→B dư thừa? F3=F2\{AG→B} = {GH→A. GH→D . C→A. CD→G. BH→C} iii. BH→C} Bước 1: Tìm phủ tối thiểu của F i. AG→B. (G)+= G. C→A không dư thừa F6=F5 BH→C dư thừa? . CD→G. GH→A không dư thừa F1=F GH→D dư thừa ? F2=F1\{GH→D} = {GH→A. (D)+= D. C→A. BH→C} (GH)F1+ = GHD không chứa A. GH→D. Vế trái của các phụ thuộc hàm không có thuộc tính dư thừa. CD→H. R3(ABD) chứa khóa AB nên phép tách này bảo toàn thông tin và bảo toàn tập phụ thuộc hàm. CD→H không dư thừa F4=F3 CD→G dư thừa? F5=F4\{CD→G} = {GH→A. AG→B. (B)+= B.Loại bỏ các thuộc tính dư thừa ở vế trái của các phụ thuộc hàm (A)+= A. vậy CDèB không dư thừa F5 = F4 ABèD dư thừa? F6=F5\{ABèD} = {A→C. CD→H. CD→G không dư thừa F5=F4 C→A dư thừa? F6=F5\{C→A} = {GH→A. BH→C} (GH)F2+ = GHABC không chứa D. BH→C} (AG)F3+ = AG không chứa B. (H)+= H. BH→C} (C)F6+ = C không chứa A. AG→B không dư thừa F3=F2 CD→H dư thừa? F4=F3\{CD→H} = {GH→A. CD→B. C→A. ii. GH→D . AG→B.Tách các phụ thuộc hàm có vế phải trên một thuộc tính thành các phụ thuộc hàm có vế phải có một thuộc tính. AG→B. C→A. CD→H. C→A. AG→B. C→A. CD→B} (AB)+=ABC không chứa D vậy ABèD không dư thừa F6 = F5 Ftt = F6 = {A→C. AG→B. R2(CDB). AB→D} Bước 2: Khóa của R là AB Bước 3: R được tách thành các quan hệ R1(AC). C→A. CD→GH. GH→D . C→A. BH→C} (CD)F5+ = CDHA không chứa H. CD→G. AB→D} (CD)+ = CDA không chứa B. BH→C} (CD)F4+ = CDGAB không chứa H. (C)+= CA. AG→B.CDèB dư thừa? F5 = F4\{CDèB} = {A→C. F={GH→AD. GH→D .

ii. R3(CDGH). GH→D .Lược đồ đã ở dạng chuẩn 1 . Chuẩn cao nhất của lược đồ là chuẩn 2. Chuẩn cao nhất của lược đồ là chuẩn 1 Bước 3: Tách lược đồ về dạng chuẩn 2. R2(AGB).F7=F6\{BH→C} = {GH→A. R được tách thành R1(SID) với khóa chính là SI và R2(SDM) với khóa chính là SD.Tách lược đồ về dạng chuẩn 3. F={SI→D.Lược đồ đã ở dạng chuẩn 1 . BH→C không dư thừa F7=F6 Ftt = F7 = F Bước 2: Tìm khóa của lược đồ CD Bước 3: R được tách thành các quan hệ R1(GHAD). 3. CD→G. AG→B. C Bước 2: Xác định chuẩn cao nhất của lược đồ . SD→M} Bước 1: Khóa của lược đồ SI. R5(BHC) chứa khóa CD nên phép tách này bảo toàn thông tin và bảo toàn tập phụ thuộc hàm. C→A} (BH)F7+ = BH không chứa C.Lược đồ không ở dạng chuẩn 2: Thuộc tính không khóa B phụ thuộc bộ phận vào khóa chính AD. Bước 1: Khóa của lược đồ AD. M Bước 2: Xác định chuẩn cao nhất của lược đồ SI→D. D→B}. chuẩn Boye-Codd i. R4(CA). thuộc tính không khóa B.Tách lược đồ về dạng chuẩn 2 . b) R=ABCD. . B→C. Bài 2 Chuẩn hóa lược đồ quan hệ sau về dạng BNF a) R=SDIM. Tách lược đồ về dạng chuẩn Boye-Codd 2 lược đồ con này đồng thời đã ở dạng chuẩn Boye-Codd vì có các xác định hàm đều là khóa. F={A→B. Bước 3: Tách lược đồ về dạng chuẩn 3. thuộc tính không khóa D. Boye-Codd i. SI→SD: Tăng trưởng (1) SD→M: Giả thiết (2) (1)(2): SI→M: Bắc cầu .Lược đồ không ở dạng chuẩn 3: Thuộc tính không khóa M phụ thuộc bắc cầu vào khóa chính.Lược đồ ở dạng chuẩn 2: Các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính. CD→H.

DE → C. R5=AE. B → C. R3=BE. C → D.R được tách thành R1(ABC) với khóa chính là A và R2(DB) với khóa chính là D. ii.Tách lược đồ về dạng chuẩn 3 R1 được tách thành R11(AB) với khóa chính là A và R12(BC) với khóa chính là B R2 đã thuộc dạng chuẩn 3. R2=AB. Tách lược đổ về dạng chuẩn Boye-Codd 3 lược đồ con này đồng thời đã ở dạng chuẩn Boye-Codd vì có các xác định hàm đều là khóa. R4=CDE. iii. Kiểm tra bảo toàn tập phụ thuộc hàm và bảo toàn thông tin Bài 1 Cho lược đồ quan hệ R=ABCDE Tập phụ thuộc hàm F={A → C. CE → A} Phép tách lược đồ thành các lược đồ con: R1=AD. Kiểm tra phép tách có mất mát thông tin hay không ? Bước 1: Xây dựng bảng A B C R1 = AD a1 b12 b13 R2 = AB a1 a2 b23 R3 = BE b31 a2 b33 R4 = CDE b41 b42 a3 R5 = AE a1 b52 b53 Bước 2 : Áp dụng các phụ thuộc hàm cho bảng A→C A B C R1 = AD a1 b12 b13 R2 = AB a1 a2 b13 R3 = BE b31 a2 b33 R4 = CDE b41 b42 A3 R5 = AE a1 b52 b13 B→C R1 = AD R2 = AB A a1 a1 B b12 a2 C b13 b13 D a4 b24 E b15 b25 D a4 b24 b34 a4 b54 D a4 b24 b34 a4 b54 E b15 b25 a5 a5 a5 E b15 b25 a5 a5 a5 .

R3 = BE R4 = CDE R5 = AE C→D R1 = AD R2 = AB R3 = BE R4 = CDE R5 = AE DE → C R1 = AD R2 = AB R3 = BE R4 = CDE R5 = AE CE → A R1 = AD R2 = AB R3 = BE R4 = CDE R5 = AE b31 b41 a1 A a1 a1 b31 b41 a1 A a1 a1 b31 b41 a1 A a1 a1 a1 a1 a1 a2 b42 b52 B b12 a2 a2 b42 b52 B b12 a2 a2 b42 b52 B b12 a2 a2 b42 b52 b13 a3 b13 C b13 b13 b13 a3 b13 C b13 b13 a3 a3 a3 C b13 b13 a3 a3 a3 b34 a4 b54 D a4 a4 a4 a4 a4 D a4 a4 a4 a4 a4 D a4 a4 a4 a4 a4 a5 a5 a5 E b15 b25 a5 a5 a5 E b15 b25 a5 a5 a5 E b15 b25 a5 a5 a5 Tồn tại trong bảng một dòng chứa toàn ký hiệu a. R2=AC. Bài 2 Cho lược đồ quan hệ R=ABCD Tập phụ thuộc hàm F={A→B. D→C} Phép tách lược đồ thành các lược đồ con : R1=AB. R3=BD a) Kiểm tra phép tách có bảo toàn thông tin hay không? Bước 1: Xây dựng bảng A B C D R1 = AB a1 a2 b13 b14 R2 = AC a1 b22 a3 b24 R3 = BD b31 a2 b33 a4 Bước 2 : Áp dụng các phụ thuộc hàm cho bảng A→B . B→C. A→D. Phép tách là bảo toàn thông tin.

Bước 2: Suy diễn các phụ thuộc hàm trong F từ tập các hình chiếu Từ các phụ thuộc hàm đã cho không suy diễn được tất cả những phụ thuộc hàm có trong F. R3=DEHA Kiểm tra phép tách có mất mát thông tin hay không ? Bước 1: Xây dựng bảng A B C D E H R1 = AB a1 a2 b13 b14 b15 b16 R2 = b21 b22 a3 a4 a5 a6 CDEH R3 = DEHA a1 b32 b33 a4 a5 a6 Bước 2 : Áp dụng các phụ thuộc hàm cho bảng .R1 = AB R2 = AC R3 = BD B→C R1 = AB R2 = AC R3 = BD A→D R1 = AB R2 = AC R3 = BD A a1 a1 b31 A a1 a1 b31 A a1 a1 b31 B a2 a2 a2 B a2 a2 a2 B a2 a2 a2 C b13 a3 b33 C a3 a3 a3 C a3 a3 a3 D b14 b24 a4 D b14 b24 a4 D a4 a4 a4 Tồn tại trong bảng một dòng chứa toàn ký hiệu a. b) Kiểm tra phép tách có bảo toàn tập phụ thuộc hàm với F ? Bước 1: Tìm hình chiếu của F lên các lược đồ con Phụ thuộc hàm là hình chiếu của F lên R1 là : A→B Phụ thuộc hàm là hình chiếu của F lên R2 là : A→C (A→D. Bài 3 Cho lược đồ quan hệ R=ABCDEH Tập phụ thuộc hàm F={C →ADEH. R2 =CDEH. DEH →A} Phép tách lược đồ thành các lược đồ con: R1=AB. D→C => A→C) Phụ thuộc hàm là hình chiếu của F lên R3 là những phụ thuộc hàm tầm thường. Phép tách là bảo toàn thông tin. Như vậy phép tách này không bảo toàn tập phụ thuộc hàm. A →B.

A →B A B C D E H R1 = AB a1 a2 b13 b14 b15 b16 R2 = b21 b22 a3 a4 a5 a6 CDEH R3 = DEHA a1 a2 b33 a4 a5 a6 DEH →A A B C D E H R1 = AB a1 a2 b13 b14 b15 b16 R2 = a1 b22 a3 a4 a5 a6 CDEH R3 = DEHA a1 a2 b33 a4 a5 a6 A →B A B C D E H R1 = AB a1 a2 b13 b14 b15 b16 R2 = a1 a2 a3 a4 a5 a6 CDEH R3 = DEHA a1 a2 b33 a4 a5 a6 Tồn tại trong bảng một dòng chứa toàn ký hiệu a. . Phép tách là bảo toàn thông tin.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->