MÔ HÌnh quan hệ nguyên nhân ra đỜi của mô HÌnh quan hệ



tải về 1.86 Mb.
trang16/17
Chuyển đổi dữ liệu17.08.2016
Kích1.86 Mb.
#21219
1   ...   9   10   11   12   13   14   15   16   17

vậy Q có khóa duy nhất là K={C,E}

3. C  K và C+=CAD  thuộc tính không khóa A  Q không đạt chuẩn 2  Q đạt chuẩn 1

4. Q(A,B,C,D,E,G,H,K); F={CAD; EBH; BK; CEG}

V
ậy lược đồ quan hệ Q được tách thành lược đồ cơ sở dữ liệu đạt chuẩn BC sau:

Q1(C,A,D) F1={CAD} đạt chuẩn BC

Q2(E,B,H) F2={EBH} đạt chuẩn BC

Q3(E,K) F3={EK} đạt chuẩn BC

Q4(C,E,G) F4={CEG} đạt chuẩn BC



----oOo----

Đề 2

Cho một lược đồ cơ sở dữ liệu C dùng để quản lý hoạt động sửa chữa, bảo trì xe của một gara xe hơi. Lược đồ cơ sở dữ liệu C gồm các lược đồ quan hệ như sau:


Q1: Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)

Tân từ: Mỗi người thợ đều có mã số là MATHO để nhận diện. Mỗi thợ chỉ có một tên (TENTHO) và chỉ thuộc một nhóm (NHOM). Nhóm trưởng (NHOM_TRUONG)của mỗi nhóm là một trong số những người thợ của nhóm đó.

MGT(MATHO)=MGT(NHOM_TRUONG)


Q2: Cong_viec(MACV,NOIDUNGCV)

Tân tư: Dịch vụ sửa chữa xe được chia nhỏ thành nhiều công việc để dễ dàng tính toán chi phí với khách hàng. Mỗi công việc đều có mã riêng (MACV) và nội dung của công việc được mô tả qua NOIDUNGCV.
Q3: Hop_dong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD, NG_GAIO_DK,NG_NGTHU)

Tân tư: Mỗi hợp đồng sửa xe ký kết với khách hàng đều có mã số (SOHD) để phân biệt. NGAYHD là ngày ký hợp đồng. Mỗi khách hàng có một mã số (MAKH), một tên (TENKH) và một địa chỉ (DCHI) để theo dõi công nợ. SOXE là số đăng bộ của xe đem đến sửa chữa, số này do phòng CSGT đường bộ cấp (nếu xe đổi chủ thì xem như một xe khác). Khách hàng ký hợp đồng chính là chủ xe sửa chữa. Một khách hàng có thể ký nhiều hợp đồng sửa chữa nhiều xe khác nhau hoặc hợp đồng sửa chữa nhiều lần của cùng một xe nhưng trong cùng một ngày. Những công việc sửa chữa cho một đầu xe chỉ ký hợp đồng một lần. TRIGIAHD là tổng trị giá của hợp đồng. NG_GIAO_DK là ngày dự kiến phải giao trả xe cho khách. NG_NGTHU là ngày nghiệm thu thật sự sau khi đã sửa chữa xong để thanh lý hợp đồng.
Q4: Chitiet_HD(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)

Tân tư: Mỗi hợp đồng sửa xe có thể gồm nhiều công việc. MACV là mã số của từng công việc. TRIGIA_CV là chi phí về vật tư, phụ tùng, thiết bị, công thợ ... đã tính toán với khách. Mỗi công việc của hợp đồng sẽ giao cho một người thợ phụ trách (MATHO) và một người thợ có thể tham gia vào nhiều công việc của một hay nhiều hợp đồng khác nhau. KHOANTHO là số tiền giao khóan lại cho người thợ sửa chữa.
Q5: Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)

Tân tư: Khách hàng (MAKH) có thể thanh toán tiền của một hợp đồng (SOHD) làm nhiều lần trước hoặc sau khi nghiệm thu (trong cùng ngày hoặc khác ngày). Mỗi lần thanh toán đều có số phiếu để phân biệt (SOPH), NGAYPH là ngày phát hành phiếu và SOTIENTHU là số tiền thanh toán. HOTEN là họ tên của người mang tiền đến thanh toán (có thể khác với tên của khách hàng đứng ra ký hợp đồng)
Câu hỏi:

1/ Xác định tập hợp F gồm tất cả các phụ thuộc ham suy ra từ tân từ của các lược đồ quan hệ (không cần liệt kê các phụ thuộc hàm hiển nhiên). Xác định khóa cho từng lược đồ quan hệ.

2/ Mô tả tất cả các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệu C. Lập bảng tầm ảnh hưởng tổng hợp.

3/ Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau:



  1. Cho biết danh sách những người thợ hiện không tham gia vào một hợp đồng sửa chữa nào.

  2. Cho biết danh sách những hợp đồng hiện đã thanh lý (đã giao tra xe cho khách) nhưng chưa được thanh toán đầy đủ.

  3. Giả sử hôm nay là ngày 21/12/95 cho biết danh sách những hợp đồng cần phải hoàn tất trước ngày 31/12/95.

  4. Cho biết người thợ nào thực hiện nhiều công việc nhất.

  5. Cho biết người thợ nào thực hiện tổng giá trị công việc (tổng số tiền) cao nhất.

4/ Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất). Hãy dùng thuật toán phân rã để nâng cấp lược đồ cơ sở dữ liệu trên.
Lưu ý: Các thuộc tính đều được xem như thuộc tính đơn.
Đáp án:

Câu 1:

F1={MATHOTENTHO,NHOM,NHOM_TRUONG}

Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)
F2={MACVNOIDUNGCV}

Q2:Congviec(MACV,NOIDUNGCV)


F3={SOHDNGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU;

MAKHTENKH,DCHI}

Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)
F4={SOHD,MACVTRIGIA_CV,MATHO,KHOANTHO}

Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)


F5={SOPHNGAYPH,SOHD,HOTEN,SOTIENTHU;SOHDMAKH}

Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)


Câu 2: mô tả tất cả các ràng buộc toàn vẹn:

R11  t1,t2  rTho RBTV khóa chính

t1.MATHO  t2.MATHO

cuối 


R12 rTho[NHOM_TRUONG]  rTho[MATHO] RBTV khóa ngoại

R13  t  rTho

t.TENTHO  NULL RBTV miền giá trị

t.NHOM  NULL RBTV miền giá trị

cuối 
R21  t1,t2  rCongviec RBTV khóa chính

t1.MACV  t2.MACV

cuối 

R22  t  rCongviec RBTV miền giá trị.



t.NOIDUNGCV  NULL

cuối 
R31  t1,t2  rHopdong RBTV khóa chính.

t1.SOHD  t2.SOHD

cuối 


R32  t  rHopdong

t.NGAYHD  NULL RBTV miền giá trị.

t.MAKH  NULL RBTV miền giá trị.

t.TENKH  NULL RBTV miền giá trị.

t.SOXE  NULL RBTV miền giá trị.

t.TRIGIAHD > 0 RBTV miền giá trị.

t.NGAYHD <= t.NG_NGTHU RBTV liên thuộc tính.

t.NG_NGTHU <= t.NG_GIAO_DK RBTV liên thuộc tính.

cuối 
R41  t1,t2  rChiTiet_hd RBTV khóa chính.

t1.{SOHD,MACV}  t2.{SOHD,MACV}

cuối 

R42 rChitiet_HD[MATHO]  rTho[MATHO] RBTV khóa ngoại



R43 rChitiet_HD[SOHD]  rHopdong[SOHD] RBTV khóa ngoại

R44 rChitiet_HD[MACV]  rCongviec[MACV] RBTV khóa ngoại

R45  t  rChiTiet_hd

t.TRIGIA_CV > t.KHOANTHO RBTV liên thuộc tính.

t.KHOANTHO > 0 RBTV miền giá trị.

cuối 
R51  t1,t2  rPhieu_thu RBTV khóa chính

t1.SOPH  t2.SOPH

cuối 


R52 rPhieu_thu[SOHD]  rHopdong[SOHD] RBTV khóa ngoại

R53  t  rPhieuthu

t.NGAYPH  NULL RBTV miền giá trị

t.MAKH  NULL RBTV miền giá trị

t.HOTEN  NULL RBTV miền giá trị

t.SOTIENTHU > 0 RBTV miền giá trị

cuối 

R54 trPhieuthu t’rHopdong RBTV liên thuộc tính liên quan hệ.



t.SOHD = t’.SOHD và

t.NGAYPH <= t’NGAYHD



cuối 

Bảng tầm ảnh hưởng tổng hợp:






rTho

rCongviec

rHopdong

rChiTiet_hd

rPhieu_thu




T

S

X

T

S

X

T

S

X

T

S

X

T

S

X

R11

+

+

-





































R12

+

+

+





































R13

+

+

-





































R21










+

+

-




























R22










+

+

-




























R31



















+

+

-



















R32



















+

+

-



















R41




























+

+

-










R42

-

+

+



















+

+

-










R43



















-

+

+

+

+

-










R44










-

+

+










+

+

-










R45




























+

+

-










R51





































+

+

-

R52



















-

+

+










+

+

-

R53





































+

+

-

R54



















-

+

+










+

+

-

Câu 3:

a)SELECT'> SELECT matho,tentho



FROM tho

WHERE matho NOT IN

(SELECT matho



FROM hop_dong INNER JOIN chitiet_HD ON hop_dong.sohd = chitiet_HD.sohd

WHERE ng_ngthu > date() OR ISNULL(ng_ngthu))
b)SELECT sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu

FROM hop_dong

WHERE ng_giao_dk <= DATE() AND (TRIGIAHD >

(SELECT SUM(SOTIENTHU) FROM phieu_thu



WHERE phieu_thu.sohd = hop_dong.sohd) OR sohd Not In (Select sohd From phieu_thu))
c)SELECT sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu

FROM hop_dong

WHERE ng_giao_dk > #12/21/95# AND ng_giao_dk <= #12/31/95#
d)SELECT chitiet_hd.matho,tentho,COUNT(macv) AS soluongcv

FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho

GROUP BY chiTiet_hd.matho,tentho

HAVING COUNT(macv) >= ALL (SELECT COUNT(macv) FROM chiTiet_hd GROUP BY matho)
e)SELECT chiTiet_hd.matho,tentho,SUM(trigia_cv) AS congtrigia_cv

FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho

GROUP BY chiTiet_hd.matho,tentho

HAVING SUM(trigia_cv) >= ALL (SELECT SUM(trigia_cv) FROM chiTiet_hd GROUP BY matho)
Câu 4:

F1={MATHOTENTHO,NHOM,NHOM_TRUONG}

Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)

K1 = MATHO

 Q1 ở dạng chuẩn BC
F2={MACVNOIDUNGCV}

Q2:Congviec(MACV,NOIDUNGCV)

K2 = MACV

 Q2 ở dạng chuẩn BC


F3={SOHDNGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU;

MAKHTENKH,DCHI}

Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)

K3 = SOHD

 Q3 ở dạng chuẩn 2
F4={SOHD,MACVTRIGIA_CV,MATHO,KHOANTHO}

Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)

K4 = {SOHD,MACV}

 Q4 ở dạng chuẩn BC


F5={SOPHNGAYPH,SOHD,HOTEN,SOTIENTHU;SOHDMAKH}

Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)

K5 = SOPH

 Q5 ở dạng chuẩn 2

Vậy lược đồ cơ sở dữ liệu C đạt dạng chuẩn 2.
Để nâng cấp lược đồ cơ sở dữ liệu trên ta phải phân rã Q3 và Q5 thành:
F31={SOHDNGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU}

Q31: Hopdong(SOHD,NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)

K31 = SOHD

 Q31 đạt chuẩn BC

F32={MAKHTENKH,DCHI}

Q32: Khachhang(MAKH,TENKH,DCHI)

K32 = MAKH

 Q32 đạt chuẩn BC


F51={SOPHNGAYPH,SOHD,HOTEN,SOTIENTHU}

Q51:Phieu_thu(SOPH,NGAYPH,SOHD,HOTEN,SOTIENTHU)

K51 = SOPH

 Q51 đạt chuẩn BC


F52={SOHDMAKH}

Q52:Hopdong(SOHD,MAKH)

K52 = SOHD  Q52 đạt chuẩn BC
Lược đồ Q52 là lược đồ con của Q31 nên ta loại Q52 khỏi lược đồ cơ sở dữ liệu C. Vậy lược đồ cơ sở dữ liệu C được phân rã thành các lược đồ Q1,Q2,Q31,Q32,Q4,Q51

----oOo----

Đề 3

Cho một lược sơ đồ cơ sở dữ liệu C dùng để quản lý hoạt động kinh doanh kiều hối của một đơn vị. Lược đồ cơ sở dữ liệu C gồm các lược đồ quan hệ như sau :


Q1: Nguyen_te(LOAINT,NGAY,TIGIA,TILE_HH)

Tân từ : Mỗi nguyên tệ được nhận diện duy nhất qua LOAINT. Các loại nguyên tệ có thể là: USD, FF, DM, YEN, ...Thuộc tính TIGIA chỉ tỉ giá so với tiền đồng VN của mỗi nguyên tệ trong ngày ( do Ngân hàng Ngoại thương quyết định vào đầu mỗi ngày và cố định trong ngày). Thuộc tính TILE_HH là tỉ lệ % huê hồng mà công ty được hưởng trên giá trị chi trả của mỗi nguyên tệ (tỉ lệ này cố định trong năm).

Lưu ý : Quan hệ này chỉ chứa các nguyên tệ mà công ty có chi trả kiều hối. Mỗi khi cần chi trả môt loại nguyên tệ mới, công ty bắt đầu lưu tỉ giá nguyên tệ mới kể từ ngày chi trả trở đi.


Q2: Don_vi(MADV,NUOC)

Tân từ : Công ty làm đại diện cho khoảng 50 đơn vị của nước ngoài để chi trả kiều hối cho khách hàng tại VN. Mỗi đơn vị có mã riêng để phân biệt (MADV)và đặt trụ sở chính tại 1 nước (NUOC).

tải về 1.86 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   9   10   11   12   13   14   15   16   17




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương