PDA

View Full Version : Nhờ a e giúp đỡ bài tập CSDL



mavabi
27-08-2009, 17:02
Có người bạn nhờ làm giùm bài tập CSDL nhưng không rành lắm, nhờ a e giúp 1 tay

Bài 1: Cho lược đồ quan hệ R(A,B,C,D) như sau:
R ( A B C D )
.....a 1 x 2
.....a 1 y 2
.....b 2 x 1
.....b 2 y 1
Cho biết các phụ thuộc hàm nào sau đây được thỏa trong quan hệ r của lược đồ R trên?
f1: A->A
f2: A->B
f3: A->C
f4: AC->C
f5: A->D
f6: D->A

Bài 2: Cho lược đồ quan hệ R(A,B,C,D,E,G) và tập phụ thuộc hàm F={AC->D,D->G,B->C,AG->E}. Cho
biết:
a. AB->G có là thành viên của F hay không?
b. Tìm một khóa của lược đồ quan hệ R.

Bai 3:
Lược đồ cơ sở dữ liệu dùng để quản lý việc thuê mướn phòng tại một khách sạn gồm các lược đồ quan hệ như sau :
Phong(MAPH,SO_NGUOI,DACDIEM,GIA_PHONG) - Các phòng của khách sạn được phân biệt với nhau qua
MAPH. SO_NGUOI là khả năng chứa tối đa của phòng. DACDIEM mô tả số đặc điểm của phòng. GIA_PHONG là
giá cả thuê phòng trong 1 ngày.
Tien_nghi(LOAI_TN,TEN_TN) - Ngoài các vật dụng tối thiểu, khách sạn có thể trang bị thêm một số tiện nghi
khác cho các phòng như: điện thoại, tivi, tủ lạnh, … LOAI_TN là mã số để phân biệt từng loại tiện nghi.
Tai_san(LOAI_TN,STT,MAPH,NGAY_TB) - Mỗi loại tiện nghi, khách sạn có thể mua một số lượng lớn và STT
dùng để phân biệt các vật dụng trong cùng loại tiện nghi. Một vật dụng có thể được sắp xếp trang bị cho nhiều
phòng khác nhau nhưng trong một ngày vật dụng chỉ trang bị cho một phòng. MAPH là phòng được trang bị và
NGAY_TB là ngày bắt đầu trang bị.
Lưu ý : Mỗi khi một vật dụng được thay đổi phòng thì cập nhật lại MAPH và NGAY_TB của vật dụng đó.
Thue_phong(MAPH,HOTEN,NGAYBD,NGAYKT,NGAYTRA,LOAIDV ,NGAYDV,TIENDV) - HOTEN là họ
tên của khách thuê phòng MAPH. Giả sử rằng họ tên các khách thuê phòng
trong cùng một phòng trong một ngày luôn luôn khác nhau. NGAYBD và NGAYKT là ngày bắt đầu và ngày kết
thúc (dự kiến) thuê phòng. NGAYTRA là ngày trả thật sự. Giả sử rằng không có trường hợp khách trả phòng và
thuê lại chính phòng đó trong cùng một ngày. Số tiền thuê phòng được chia đều cho số khách thuê trong cùng
phòng.
Khách thuê phòng có thể sử dụng thêm các dịch vụ (gọi điện thoại đường dài, thuê xe, thủ tục hành chính, …)
LOAI_DV là mã số của loại dịch vụ sử dụng. NGAYDV ngày dịch vụ thực hiện. TIENDV là số tiền khách thuê
phải trả cho dịch vụ.
Nếu trong cùng một ngày khách thuê phòng sử dụng 1 dịch vụ nhiều lần thì tiền dịch vụ được cộng dồn lại thành
một lần và tạo thành một bộ (ví dụ trong ngày gọi điện thoại 3 cuộc với số tiền phải trả lần lượt là : 5000ĐVN,
4500ĐVN, 2000ĐVN thì sẽ được tính chung một lần là 11500ĐVN). Các dịch vụ được tính riêng đối với từng
khách. Nếu là dịch vụ chung cho một số khách thì sẽ tính tiền cho một đơn vị khách đại diện nào đó.
a. Thiết kế mô hình thực thể kết hợp (ER) cho lược đồ cơ sở dữ liệu trên.
b. Dùng SQL để thực hiện những yêu cầu sau:
- Cho biết các thông tin của các phòng có khả năng chứa trên 3 người.
- Cho biết các thông tin của các phòng có trang bị máy lạnh (LOAITN=’ML’).
- Giả sử hôm nay là ngày 19/06/2007. Tính tổng số tiền phải trả (tiền thuê phòng và tiền dịch vụ)
của từng khách đã thuê phòng X từ ngày 21/05/2007 và trả phòng vào hôm nay.
- Cho biết doanh số thu được của từng phòng (không tính tiền dịch vụ)

---------- HẾT -------------

Bro xem làm được câu nào hoặc phần nào cũng được. Thanks for your helping :yes:

nguyenthanhdong
28-08-2009, 08:49
hỳ,mấy nài này thực sự là rất đơn giản,chỉ cần hiểu rõ định nghĩa của nó là có thể làm dthoi6o6i.
Vì thời gian của mình có hạn nên mình chỉ có thể giúp bạn câu 1 và câu 2 thôi,còn câu 3 thì hơi dài một chút vì phải vẽ các mô hình nữa.
Câu 1: Định nghĩa lại phụ thuộc hàm : Nếu có pth X->Y thì tồn tại 2 bộ t1,t2 thỏa đk: t1.X=t2.X thì t1.Y=t2.Y
Từ định nghĩa pth ta thấy có các pth thỏa đk đó là: A->a(vì đây là pth hiển nhiên),A->B,A->D,D->A
Câu 2:
a) Ta có :Ac->D và D->G |= AC->G(luật bắc cầu trong hệ luật dẫn Amstrong)
Ta lại có B->C và AC->G |= AB->G ( luật bắc cầu giả)
Kết luận : AB->G là thành viên của F
b) Để tìm khóa của R thì ta áp dụng thuật toán tìm khóa dựa vào việc tính bao đóng(chắc bạn đã học rồi nên biết thuật toàn này đúng ko,vì thế mình chỉ làm các bước thôi chứ ko nêu thuật toán đó ra đây)
Ta có: T= ABCDG
P= CDGE
CT= T-P= AB
CP= P-T= E
TP= (R+)-(CT+CP) ( (R+) là các thuộc tính của R )
= ABCDEG- (AB+E)=CDG
Bước tiếp theo là ta tách TP thành các tập con(kể cả tập rỗng).Sau khi tách ta cộng từng tập con đó với CT rồi tính bao đóng,ta được kết quả như sau:
(AB+)= ABCDEG
(ABC+)= ABCDEG
Tương tự cho các tập con còn lại là ABD,ABG,ABCD,ABCG,ABDG,ABCDG
Từ kết quả tính được ta tìm được khóa của R là AB

mavabi
28-08-2009, 13:37
Thanks bạn nguyenthanhdong nhìu nhìu :)
Bro nào rảnh làm giúp mình nốt bài số 3 thì tốt quá :beer: