TIN HỌC ỨNG DỤNG 2 - K11
Bạn hãy đăng ký làm thành viên để có thể xem các thông tin trong lớp và viết bài trong diễn đàn.

Không những thế, sau khi đăng ký bạn sẽ nhận được sự hỗ trợ của diễn đàn nhiều hơn.
Change background image
TIN HỌC ỨNG DỤNG 2 - K11

Khoa CNTT - ĐH Công nghiệp Hà Nội


Go downMessage [Page 1 of 1]

© FMvi.vn

on 9/9/2010, 09:23

Member

cac ban donwload tai day va ca o duoi nua.
[You must be registered and logged in to see this link.]


ĐỀ CƯƠNG ÔN TẬP CƠ SỞ DỮ LIỆU

Chương 1: ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DŨ LIỆU
1) Sự cần thiết của việc tổ chức lưu trữ dữ liệu theo lý thuyếtCSDL.
2) Định nghĩa các thuật ngữ:CSDL,hệ quản trị CSDL,hệ CSDL.
3) Chứ năng và vai trò của hệ quản trị CSDL.
4) Hiểu như thế nào về tính độc lập của dữ liệu?
5) Liệt kê những “vị trí ”của con người có liên quan đến hệ CSDL.
6) Sự phân loại các hệ CSDL.
Chương 2: CÁC MÔ HÌNH DỮ LIỆU
1) Phân loại các mô hình dữ liệu dựa trên các khái niệm được sử dụng để mô tả cấu trúc CSDL.
2) Vai trò của mô hình dữ liệu bậc cao trong quá trình thiết kế CSDL
3) Định nghĩa các thuật ngữ sau trong mô hình thực thể liên kết:Thực thể,thuộc tính,giá trị thuộc tính,thể hiện liên kết,thuộc tính phức hợp,thuộc tính đa trị,thuộc tính suy diễn được,thuộc tính khóa,miền giá trị.
4) Sự khác nhau giữa một thực thể,một kiểu thực thể và một tập thực thể.
5) Sự khác nhau giữa một thực thể lien kết,một tập liên kết và một kiểu liên kết.
6) Vai trò tham gia là gì?Khi nào cần phải sử dụng các tên vai trò trong mô tả các kiểu liên kết.?
7) Khi nào các thực thể lien kết yều được dùng trong việc mô hình hóa CSDL?Định nghĩa các thuật ngữ:kiểu thực thể chủ,kiểu thực thể yếu,khóa bộ phận,kiểu liên kết xác định.
BÀI TẬP
Giả sử sau khi tập hợp các yêu cầu và phân tích,hoạt động của công ty được ghi chép lại như sau:
1. Công ty được tổ chức thành các đơn vị.Mỗi đơn vị có một mã số duy nhất.một tên duy nhất ,một nhân viên cụ thẻ quản lí đơn vị.Việc nhân viên quản lí đơn vị được ghi lại bằng ngày nhân viên đó bắt đầu quản lí.Một đơn vị có thể có nhiều địa điểm.
2. Mỗi đơn vị kiểm soát một dự án.Một dự án có một tên duy nhất,một mã số duy nhất và một địa điểm .
3. Với mỗi nhân viên lưu giữ lại Họ tên ,Mã số,Điạ chỉ,Lương,Giới tính,Ngày sinh.Một nhân viên chỉ được làm việc cho 1 đơn vị,nhưng có thể làm việc trên nhiều dự án do nhiều đơn vị kiểm soát.Cần phải lưu giữ lại số giờ làm việc của mỗi nhân viên trên một dự án.Mỗi nhân viên có thể có một người giám sát trực tiếp,người đó cũng là nhân viên.
4. Mỗi nhân viên có những người phụ thuộc.Những người này được hưởng bảo hiểm theo nhân viên.Với mỗi người phụ thuộc cần lưu giữ Họ tên,Giới tính,Ngày sinh và mối quan hệ với nhân viên (la con hoặc bố ,mẹ…).
Phân tích các kiểu thực thể và kiểu liên kết có trong CSDL.Xây dựng mô hình ER,sau đó chuyển sang mô hình quan hệ.

Chương 3: MÔ HÌNH CSDL QUAN HỆ

1) Định nghĩa các thuật ngữ sau:mienf ,thuộc tính,n-bộ,lược đồ quan hệ,trạng thái quan hệ,cấp của quan hệ,lược đồ CSDL,trạng thái CSDL.
2) Sự khác nhau của siêu khóa và khóa?
3) Liệt kê các phép toán đại ssoos quan hệ và mục đích của tứng phép toán.
Bài tập:
Cho lược đồ cơ sở dư liệu dùng để quản lý hồ sơ sinh viên bao gồm các lược đồ quan hệ:
SV(MaSV,Hoten,Gioitinh,Ngáyinh,Lop)
MON(MaMH,TenMH,Sotiet)
KQ(MaSV,MaMH,Diemthi)
1. Hãy liệt kê các phụ thuộc hàm của các lược đồ quan hệ trên.
2. Hãy thực hiện các câu hỏi sau băng ngôn ngữ đại số quan hệ:
a) Lập danh sách sinh viên nữ lớp “AT4B”gồm MaSV,Hoten.
b) Lập bảng điểm cho tất cả các sinh viên, bảng điểm gồm cột MaSV, TenMH,Diemthi.
c) Lập phiếu điểm cho sinh viên có tên là “AAA” . phiếu điểm gồm các thông tin sau: TenMH, Diemthi.
d) Lập danh sách sinh viên phải thi lai mon “ cơ sở dữ liệu”. Danh sách gồm TenLop, MaSV, Hoten và Diemthi.
e) Đưa ra danh sách các sinh viên chưa có kết quả thi của các môn học.
Chương 4. Lý thuyết thiết kế csdl
Câu hỏi
1. Hãy nêu ra những bất thường có thể sảy ra đối với các thao tác nhạp csdl quan hệ. Vì sao chúng được coi là không tốt ?, hãy minh họa bằng ví dụ.
2. trình bày các nguyên tắc đối với việc thiết kế lược đồ quan hệ. Hãy minh họa việc vi phạm các nguyên tắc đó sẽ có hại như thế nào ?.
3. Vì sao các quy tắc suy diễn Amstrong (Qt1 đến Qt3) là quan trọng ?
4. Phụ thuộc hàm là gì? Việc chỉ ra phụ thuộc hàm giữa các thuộc tính của 1 lược đồ quan hệ dựa trên cơ sở nào?
5. Bao đóng của 1 tập phụ thuộc hàm là gì? Khi nào hai tập phụ thuộc hàm là tương đương?Làm thế nào để kiểm tra tính tương đương của chúng?
6. Tập tối thiểu của các phụ thuộc hàm là gì?Có phải mỗi tập phụ thuộc hàm có một tập tối thiểu phụ thuộc hàm tương đương hay không?
7. Định nghĩa các dạng chuẩn 1NF,2NF,3NF,BCNF.
8. phụ thuộc hàm nào cần tránh khi một quan hê ở 3NF ?
9. dạng chuẩn BCNF khác gì so với 3NF? Vì sao nó dc coi là mạnh hơn 3NF?
10. tính chất bảo toàn phụ thuộc hàm đối với 1 phép tách là gì? Vì sao nó la quan trọng? Vì sao ko thể đảm bảo rằng 1 phép tách các lược đồ quan hệ ko BCNF thành BCNF là bảo toàn phụ thuộc hàm? Hãy cho 1 phản ví dụ.
11. tính chất kết nối bảo toàn thông tin của 1 phép tách là gì? Giữa các tính chất bảo đảm phụ thuộc hàm và kết nối bảo toàn thông tin của phép tách , cái nào quan trọng hơn? Vì sao?
Bài tập
1. cho lược đồ quan hệ R={A,B,C,D} và F={A->B, BC->D, C->A}.Phụ thuộc hàm nào trong các phụ thuộc hàm sau là suy diễn được từ F:
a. C->D b. AC->D c. AD->C d. BC->A e. B->CD
2. cho lược đồ quan hệ R={A,B,C,D,E,G,H} và
F={AB->C, B->D, CD->E, CE->GH, G->A}.
Sử dụng các quy tắc suy diễn ,chứng minh rằng BC->A.
3. cho lược đồ quan hệ R{S,I,D,M} và tập phụ thuộc hàm
F={SI->DM, SD->M, D->M}.
a) Tìm tất cả các khóa của R?
b) Tìm phủ tối thiểu của F?
c) Xác định dạng chuẩn cao nhất của R?
d) Nếu R chưa đạt chuẩn 3NF, hãy tách R thành các lược đồ dạng chuẩn 3NF vừa bảo toàn thông tin , vừa bảo toàn phụ thuộc hàm.
e) Nếu R chưa đạt chuẩn BCNF, hãy tách R thành các lược đồ dạng chuẩn BCNF.
f) Kiểm tra phép tách R thành các lược đồ con R1{SID} và {SIM} có bảo toàn thông tin hay ko?
g) Kiểm tra phép tách R thành các lược đồ con R1{SID} và R2 {SIM} có bảo toàn phụ thuộc hàm hay ko?

và lời giải luôn nè

Bài 1-Chương 2
*Phân tích các kiểu thực thể
-DONVI (tênDV,masoDV,nguoiquanly,ngaybatdau,,diadiem).
Thuộc tính tenDV,masoDV,diadiem là các thuộc tính mô tả đơn vị.
Thuộc tính nguoiquanly,ngaybatdau là các thuộc tính biểu thị một kiểu liên kết (với kiểu thực thể NV).
Thuộc tính khóa: tenDV, masoDV.
Thuộc tính đơn trị: nguoiquanly,ngaybatdau
Thuộc tính đa trị: điadiem.
-DUAN(tenDA,masoDA,diadiemDA,donvikiemsoat)
Thuộc tính tenDA,masoDA, diadiem là các thuộc tính mô tả DUAN.
Thuộc tính donvikiemsoat biểu thị kiểu liên kết với kiểu thực thể DONVI
Thuộc tính khóa: tenDA, masoDA
-NV(hoten,masoNV,diachi,luong,gioitinh,ngaysinh,don vi,nguoigiamsat)
Thuộc tính hoten là một thuộc tính phức hợp.
Các thuộc tính donvi,nguoikiemsat mô tả các kiểu liên kết giữa kiểu thực thể NV và các kiểu thực thể
DONVI và NV tương ứng.
Thuộc tính khóa : masoNV
-NGUOI PHU THUOC(hotenNPT,gioitinh,ngaysinh,moiquanhe)
Thuộc tính moiquanhe mô tả kiểu liên kết với kiểu thực thể NV
*Phân tích kiểu liên kết:
-Kiểu liên kết DONVI DUAN:
+là kiểu liên kết có tỷ số lực lượng 1: n.
+Sự tham gia của DUAN vào kiểu liên kết là toàn bộ (v. dự án nào cũng đc một đơn vị kiểm soát)
+Nếu đơn vị nào cũng có dự án th. việc tham gia của DƠNVI vào kiểu liên kết là t.an bộ, ngc lại sự
tham gia là bộ fận
-Kiểu liên kết NV DONVI:
+Có tỷ số lực lượng n : 1
+Sự tham gia của hai kiểu thực thể vào liên kết là toàn bộ
-Kiểu liên kết NV DONVI:
+Có tỷ số lực lượng 1:1
+Sự tham gia của kiểu thực thể NV vào kiểu liên kết là bộ fận (v. ko phải nhân viên nào cũng quản l.
đơn vị)
+Sự tham gia của kiểu thực thể DONVI vào kiểu liên kết là toàn bộ (v. đơn vị nào cũng phải có ng`
quản l.)
-Kiểu liên kết NV NV:
+Có tỷ số lực lượng 1:n
+Sự tham gia của kiểu thực thể NV (ở cả hai phía) là bộ fận (v. ko fải nhân viên nào cũng giám sát
nhân viên khác, và ko fải nhân viên nào cũng bị giám sát)
+Kiểu thực thể NV đóng hai vai tr. khác nhau: ng` giám sát và ng` bị giám sát
-Kiểu liên kết NV DUAN:
+Có tỷ số lực lượng m:n
+Sự tham gia của kiểu thực thể NV là bộ fận (v. ko fải mọi nhân viên đều làm việc trên dự án)
+Sự tham gia của kiểu thực thể DUAN là toàn bộ ( v. dự án nào cũng phải có nhân viên tham gia)
+Kiểu liên kết này có thuộc tính là sogio, ghi lại số giờ làm việc của một nhân viên trên dự án.
-Kiểu liên kết NV NGUOI PHU THUOC:
+Biểu thị mối liên hệ giữa kiểu thực thể NV và kiểu thưc thể NGUOI PHU THUOC
+Có tỷ số lực lượng 1:n
+Sự tham gia của kiểu thực thể NV là bộ fận (ko phải nhân viên nào cũng có ng` fụ thuộc)
+Sự tham gia của NGUOI PHU THUOC là toàn bộ ( có ng` fụ thuộc th. phải có nhân viên). Ng.ai ra,
kiểu thực thể này là một kiểu thực thể yếu.
*Lược đồ ER:
*Mô h.nh quan hệ:
NV(hodem, ten, masoNV,ngaysinh,diachi,gioitinh,luong,masongaygiam sat,masoDV)
DONVI (tenDV,masoDV,masongouiquanly,ngaybatdau)
DONVI_DIADIEM(masoDV,diadiemDV)
DUAN(tenDA,masoDA,diadiemDA,masoDV)
NV_DUAN(masoNV,masoDA,sogio)
PHUTHUOC(masoNV,hotenNGP,gioitinh,ngaysinh)
Bài 1-Chương 4:
F={a->b, bc->d, c->a}
F+={ a->b, bc->d, c->a, c->b,bc->b,}
a, c->d:
áp dụng tc6 : x->y thuộc F+ <=> y thuoc x+, ta có
c+={ c,a,b,d} => c->d suy diễn dc từ F
b, ac->d: áp dụng tc trên, ta có:
(AC)+= {A,C,B,D} => AC->D suy dien đc từ F
c,AD->C:
(AD)+={A,D,B} => AD->C ko suy diễn đc từ F
d,BC->A:
(BC)+={ B,C,A,D}=>BC->A suy diễn đc từ F
d, B-> CD
B+= {B} => B->CD ko suy diễn đc từ F
Bài 2-chương 4
CE->GH => CE->G & CE->H
CD->E => CD->CE (tăng)
CD ->CE & CE->G => CD ->G (bắc cầu)
B->D =>BC->CD (tăng)
BC->CD & CD->G => BC->G (bắc cầu)
BC->G & G->A => BC->A (bắc cầu) (ĐPCM)
Bài 3- Chương 4
R={ S,I, D,M}
F={SI->DM, SD->M, D->M}
a, t.m tất cả các khóa của R:
TN={S,I}
TG={D}
Xi TN u Xi (TN u Xi)+ Siêu khóa khóa
Rỗng SI SIDM SI SI
D SID SIDM SID
KL: lc đồ trên có 1 khóa K=SI
b, T.m phủ tối thiểu của F
1.loại các thuộc tính dư thừa:
S+F= {S}
I+F={I}
D+F={D,M}==> S dư thừa
Thay SD->M bằng D->M
F1={SI->DM,D=>M}
Tách các vế phải trên một thuộc tính thành các vế phải một thuôc tính
F2={SI->D,SI->M, D->M}
Loại các fụ thuộc hàm dư thừa:
Xét SI->D:
G=F2- {SI->D}= {SI->M, D->M}
(SI)+G= {S,I,M} => SI->D ko thuộc G+ => SI->D ko dư thừa
Xét SI->M:
G=F2- {SI->M}= {SI->D, D->M}
(SI)+G= {S,I,D,M} => SI->D thuộc G+ => SI->M dư thừa
F3={SI->D,D->M}
Xét D->M:
G=F3- {D->M}= {SI->D}
(D)+G= {D} => D->M ko thuộc G+ => D->M ko dư thừa
Vậy F min=F3={SI->D,D->M}
c,T.m chuẩn cao nhất cuaR
Ta có K={SI}
- Xét SD->M: (SD)+= { S,D,M}# R => SD ko là siêu khóa
Vậy R ko đạt BCNF.
– Ta có SD ko là siêu khóa, M ko là thuộc tính khóa => R cũng ko đạt 3NF
– Xét fụ thuộc hàm SI->DM có SI là thuộc tính khóa, DM là thuộc tính ko khóa
=> D,M fụ thuộc đầy đủ vào khóa
=> R đạt chuẩn 2
Vậy chuẩn cao nhất của R là 2NF.
d,Nếu R chưa đạt chuẩn 3NF, h.y tách R thành các lược đồ dạng chuẩn 3NF vừa bảo toàn thông tin,
vừa bảo toàn fụ thuôc hàm
Xét fụ thuộc hàm D->M có:
D+={D,M} # R => D ko fải là siêu khóa, và M ko fải là thuộc tính khóa
Vậy R ko đạt chuẩn 3NF
+Áp dụng phương pháp chuẩn hóa: “loại bỏ các thuộc tính fụ thuộc bắc cầu ra khỏi quan hệ và tách
chúng thành một quan hệ riên có khóa chính là thuộc tính bắc cầu, các thuộc tính c.n lại lập thành một
quan hệ có khóa chính là quan hệ ban đầu”, ta có lược đồ mới bảo toàn thông tin:
D = R1{D,M} và R2{S,I,D}
+Kiểm tra sự bảo toàn fụ thuộc hàm:
-Xác định h.nh chiếu trên R1 của F ( áp dụng tc6 của FD), ta có
D+F={D,M}
M+F={M}
(DM)+F={ D,M}
π R1(F)= {D->M,D->DM,M->D,M->DM}
-Xác định h.nh chiếu của R2 trên F
S+F={S}
I+F={D}
D+F={D,M}
SI+F={S,I,D,M}
SD+F={ S,D,M}
SID+F={S,I,D,M}
π R2(F)= {S->I,S->D,S->ID,I->S,I->D,I->SD,D->S, D->I,D->SI, SI->D,
SD->I, DI->S }
-π R1(F) U π R2(F)=G
G={D->M,D->DM,M->D,M->DM, S->I,S->D,S->ID,I->S,I->D,I->SD,D->S, D->I,D-
>SI, SI->D, SD->I, DI->S }
(SI)+G={M,D,S,I} => SI->DM thuộc G+
(SD)+G ={ S,D, M,I} => SD->M thuộc G+
=> mọi fụ thuộc hàm trong F đều đc suy ra từ G
=> fép tách D bảo toàn FD
e, Nếu R chưa đạt chuẩn BCNF, h.y tách R thành các lược đồ dạng chuẩn BCNF
F={SI->DM, SD->M, D->M}
R1={S,I,M} và R2={ S,I,D}
g, Ktra fép tách R thành R1{SID} và R2{SIM} có bảo toàn thông tin ko?
R1 giao R2={S,I}
R1-R2= {D}
((R1 giao R2)-> (R1-R2))={ SI->D} thuoc F+ => bao toan thong tin
h, ktra phep tach R thanh R1{SID} va R2{SIM} co bao toan fu thuoc ham ko?
Xác định h.nh chiếu trên R1 của F ( áp dụng tc6 của FD), ta có
S+F={S}
D+F={D,M}
I+F={I}
(SI)+F={S,I,D,M}
(ID)+F={I,D,M}
(SD)+F={S,D,M}
(SID)+F={ S,I,D,M}
π R1(F)= {S->I,S->D,S->ID,D->S,D->I,D->SI,I->S,I->D,I->SD, SI->D,SD-
>I, ID->S, IS->D}
-Xác định h.nh chiếu của R2 trên F
S+F={S}
I+F={I}
M+F={M}
SI+F={S,I,D,M}
IM+F={ I,M}
SIM+F={S,I,D,M}
π R2(F)= {S->I,S->M,S->IM, I->M,I->S,I->SM,M->S,M->I,M->SI, SI->M, SM-
>I, IM->S,IS->M }
-π R1(F) U π R2(F)=G
G={ S->I,S->D,S->ID,D->S,D->I,D->SI,I->S,I->D,I->SD, SI->D,SD->I, ID->S, IS-
>D,S->M,S->IM, I->M,I->SM,M->S,M->I,M->SI, SI->M, SM->I, IM->S,IS->M }
(SI)+G={M,D,S,I} => SI->DM thuộc G+
(SD)+G ={ S,D, M,I} => SD->M thuộc G+
D+G={D,I,S,M} => D->M thuoc G+
=> mọi fụ thuộc hàm trong F đều đc suy ra từ G
=> fép tách D bảo toàn FD
Chuong 3:
2.
a. lập danh sách sinh viên nữ của lớp “AT4” gồm MaSV, Hoten
π (σLop=”AT4”,Gioitinh=nữ(SV))
b. lập bảng điểm cho tất cả các sinh viên:MaSV,TenMH,Diemthi
πR1(MON)
π(KQ*R1)
c.
πR1(SV))
πR2(KQ*R1)
π(Mon*R2)
d.
πR1(MON))
πR2(KQ*R1)
π(SV*R2)
e.
πR1(KQ))
π(SV*R1)


Cho CSDL QUẢN LÝ ĐIỂM gồm các bảng dữ liệu sau:

1.Bảng SINHVIEN ( MASV#, HOTEN, NAM, KHOA)

2.Bảng DKIEN (MAMH#, MAMH_TRUOC#)

3.Bảng MHOC (MAMH#, TEN_MH, TINCHI, KHOA)

4.Bảng KQUA ( MASV#, MAMH#, DIEM)

5.Bảng K_HOC ( MAKH# , MAMH#, HOCKY, NAM, GV)

Hãy cho mỗi bảng 5 bộ dữ liệu

Hãy sử dụng các lệnh SQL và các phép toán quan hệ để biểu diễn các yêu cầu sau:

1.In ra mã sinh viên và họ tên sinh viên.
2.In ra tên các môn học và tín chỉ
3.Cho biết kết quả học tập của sinh viên có mã số 8
4.Cho biết các mã môn học phải học ngay trước môn có mã số COCSC3320.
5.Cho biết các mã môn học phải học ngay sau môn có mã số COCSC3320.
6.Cho biết họ tên sinh viên thuộc về khoa phụ trách môn " Cơ sở dữ liệu" và môn " Toán rời rạc"
7.Sửa lại giá trị cột NAM của sinh viên có họ tên là Sơn thành 2.
8.Cho biết họ tên, các môn học , điểm mà sinh viên đó tham gia với kết quả cuối khóa trên 7 điểm.
9.Cho biết các môn học phải học ngay trước môn " Cơ sở dữ liệu"
10.Cho biết tên các môn học mà giáo viên An tham gia giảng dạy và họ tên sinh viên theo môn học đó.Sắp xếp theo thứ tự tăng dần của tên môn học , nếu trùng tên thì sắp xếp theo tên sinh viên.
11.Tăng số tín chỉ lên một mỗi môn học.
12.Nếu sinh viên đó có điểm dưới trung bình thì xóa dữ liệu ra khỏi bảng KQUA

Trả lời:
I. Sử dụng câu lệnh SELECT và mệnh đề FROM- Câu lệnh SELECT là cốt lõi của mọi truy vấn lấy về dữ liệu. Nó thông báo cho bộ máy cơ sở dữ liệu những trường nào sẽ được lấy về. Nếu sử dụng câu lệnh SELECT * điều này cho ta lấy toàn bộ các trường trong bảng hoặc nhiều bảng. Mệnh đề FROM chỉ ra cho ta biết cần lấy các trường trong bảng nào hoặc lấy dữ liệu trong một câu truy vấn khác.Ví dụ, trả lời cho câu hỏi 1 và 2.1. In ra mã sinh viên và họ tên sinh viên.Câu truy vấn sẽ là:
Select MASV#, HOTEN from SINHVIEN
2.In ra tên các môn học và tín chỉ
Select Ten_MH,TINCHI from MHOC
II. Sử dụng mệnh đề WHERE:
- Mệnh đề WHERE báo cho CSDL giới hạn các mẩu tin cần lấy kết quả.
+ Các toán tử trong mệnh đề WHERE gồm <(Nhỏ hơn),<=(Nhở hơn hoặc bằng) >(Lớn hơn, >= (lớn hơn hoặc bằng); = (bằng); <> (Khác) BETWEEN (thuộc một miền, một khoảng giá trị), LIKE, IN (cái này nói trong một bài khác về tìm kiếm trong dữ liệu)
Ví dụ: Trả lời cho câu hỏi 3,4,5:
3.Cho biết kết quả học tập của sinh viên có mã số 8
Select MASV#,HOTEN,TEN_MH,DIEM from SINHVIEN,MHOC,KQUA where SINHVIEN.MASV#=KQUA.MASV# and TEN_MH.MAMH#=KQUA.MAMH# and MASV#=8
4.Cho biết các mã môn học phải học ngay trước môn có mã số COCSC3320.
Select MAMH#,MAMH_TRUOC from DKIEN where MAMH_TRUOC < (SELECT MAMH_TRUOC form DKIEN WHERE MAMH_TRUOC = 'COCSC3320')
5.Cho biết các mã môn học phải học ngay sau môn có mã số COCSC3320.
Select MAMH#,MAMH_TRUOC from DKIEN where MAMH_TRUOC > (SELECT MAMH_TRUOC form DKIEN WHERE MAMH_TRUOC = 'COCSC3320')
6. Cho biết họ tên sinh viên thuộc về khoa phụ trách môn " Cơ sở dữ liệu" và môn " Toán rời rạc".
8.Cho biết họ tên, các môn học , điểm mà sinh viên đó tham gia với kết quả cuối khóa trên 7 điểm.
9.Cho biết các môn học phải học ngay trước môn " Cơ sở dữ liệu"
10.Cho biết tên các môn học mà giáo viên An tham gia giảng dạy và họ tên sinh viên theo môn học đó.Sắp xếp theo thứ tự tăng dần của tên môn học , nếu trùng tên thì sắp xếp theo tên sinh viên.
Các câu này cũng tương tự mời bạn tự làm nhé. Chỉ khác ở câu 10 sắp xêp theo thứ tự tăng dần ta dùng mệnh đề ORDER BY ở cuối câu lệnh.
III. Câu lệnh sửa dữ liệu UPDATE
Một câu truy vấn cập nhật có khả năng thay đổi một nhóm các mẩu tin cùng lúc. Một truy cấn cập nhật có 3 thành phần sau: Mệnh đề UPDATE cập nhật trường nào, SET dữ liệu nào cần thay, WHERE lọc như SELECT
Ví dụ trả lời câu 7:
7.Sửa lại giá trị cột NAM của sinh viên có họ tên là Sơn thành 2.
UPDATE SINHVIEN SET NAM = 2 WHERE HOTEN='Sơn'
11.Tăng số tín chỉ lên 1 mỗi môn học.
UPDATE MHOC SET TINCHI=TINCHI+1

IV. Câu lệnh xóa dữ liệu DELETE:
Tất nhiên dùng để xóa một hoặc nhiều mẩu tin.
12.Nếu sinh viên đó có điểm dưới trung bình thì xóa dữ liệu ra khỏi bảng KQUA
DELETE * FROM KQUA WHERE DIEM <5.
II. Bài tập phụ thuộc hàm
Bài 1 : Cho lược đồ quan hệ a=(u,F) và tập phụ thuộc hàm
F={AB->C, B->D, CD->E,CE->GH,G->A}
Chứng minh rằng AB->E và AB->G suy dẫn được từ F
Trả lời: AB->C(1)
B ->D(2)
từ 1 và 2 ta có AB->CD(3)
CD->E(4)
3 và 4 ta có AB ->E(Bắc cầu)
* AB->G
AB->C
AB->E(ý trên)
suy ra AB->CE
CE->GH
suy ra AB -> GH
Tách ta có AB->G(dpcm)
AB->H

Đề 1 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1.5 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm phủ tối thiểu của F.
- Xác định xem các phụ thuộc hàm sau, phụ thuộc hàm nào được suy ra từ F.
o EG -> BD
o AB -> CDEGH
o D -> GH
Đáp án
- Phủ tối thiểu
A -> B Không bỏ
A -> G bỏ vì A -> B -> HG
F = { A -> B ,D -> EG ,GB -> HA , D -> BA , B -> HG }
D -> G bỏ vì D -> B -> HG
F = { A -> B ,D -> E ,GB -> HA , D -> BA , B -> HG }
GB -> H bỏ vì B -> H
F = { A -> B ,D -> E ,GB -> A , D -> BA , B -> HG }
D -> B không bỏ
D -> A bỏ vì D -> B -> GB -> A
F = { A -> B ,D -> E ,GB -> A , D -> B , B -> HG }
B -> H không bỏ
B -> G không bỏ
Bỏ thuộc tính G trong GB -> A vì B -> G

Phủ tối thiểu : {A -> B ,D -> E , B -> A , D -> B , B -> HG}

- EG -> BD không thuộc vì EG+ = EG
- AB -> CDEGH không thuộc vì AB+ = ABHG
- D -> GH thuộc vì D+ = DEBHGA

2. Cho cơ sở dữ liệu
Quản lý rau quả
Loai (ma_loai char(2), ghi_chu char(20), han_luu_giu int)
Sanpham (ma_san_pham char(5), ten_san_pham char(20), ma_loai char(2))
Phieunhapxuat (so_phieu int, ngay_nhap datetime, loai char(1))
Chitietphieu (so_phieu int, ma_san_pham char(5), so_luong int)
Ghi chú :
- <> : thời gian tính bằng đơn vị là ngày để cho sản phẩm thuộc loại đó có thể trử trong kho mà không bị hư.
- <> trong bảng Phieunhapxuat chỉ ra đây là nhập hay xuất :
o Loai = 1 : nhập loai = 0 : xuất
Phát biểu :
- Mỗi một sản phẩm thuộc một loại.
- Mỗi lần nhập một sản phẩm về kho hay xuất sản phẩm ra kho đều được ghi nhận trong bảng “phieuxuatnhap” với thuộc tính loại để phân biệt.
- Cụ thể mỗi lần nhập vào hay xuất kho những mặt hàng nào thì đều được ghi nhận trong bảng chitietphieu.

Câu hỏi :
a. Liệt kê danh sách gồm mã sản phẩm và tên sản phẩm mà có khả năng lưu giử trong kho hơn 3 tuần. (0.5 điểm)
b. Liệt kê danh sách gồm năm, tháng, tổng số lượng nhập vào của hàng hóa có mã là “A”. (Hàm lấy tháng và năm là hàm month(ngày) và year(ngày)). (1 điểm)
c. Liệt kê danh sách gồm mã sản phẩm, tên sản phẩm mà không được nhập vào trong ngày 24/12/2006. (1 điểm)
d. Liệt kê danh sách gồm số phiếu, ngày nhập phiếu mà phiếu này nhập vào nhiều hơn 2 loại hàng hóa. (1 điểm)
e. Liệt kê danh sách cho biết ngày nào mà công ty nhập nhiều mã sản phẩm nhất. (1 điểm)
Đáp án
- Select sp.ma_san_pham,sp.ten_san_pham
From sanpham sp inner join loai l on l.ma_loai = sp.ma_loai
Where l.han_luu_giu > 21

- Select year(p.ngay_nhap), month(p.ngay_nhap), sum(ct.so_luong)
From phieunhapxuat p inner join chitietphieu ct on ct.so_phieu = p.so_phieu
Where ct.ma_san_pham = ‘A’ and p.loai = 1
Group by year(p.ngay_nhap), month(p.ngay_nhap)

- Select ma_san_pham,ten_san_pham
From sanpham
Where ma_san_pham not in (
Select ct.ma_san_pham
From chitietphieu ct inner join phieunhapxuat p on p.so_phieu = ct.so_phieu
Where p.ngay_nhap = ‘12/24/2006’ and p.loai = 1
)

- Select p.so_phieu,p.ngay_nhap
From (phieunhapxuat p inner join chitietphieu ct on ct.so_phieu=p.so_phieu)
Inner join sanpham sp on sp.ma_san_pham = ct.ma_san_pham
Where p.loai = 1
Group by p.so_phieu,p.ngay_nhap
having count(distinct sp.ma_loai) > 2

- Select p.ngay, count(distinct ct.ma_san_pham) as tssp
From phieunhapxuat p inner join chitietphieu ct on ct.ma_phieu = p.ma_phieu
 Q1
Select ngay
From Q1
Where tssp = (select max(tssp) from Q1)


Đề 2 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1.5 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm phủ tối thiểu của F.
- Chứng minh A tương đương B (A <-> B)

Đáp án :
- Phủ tối thiểu
A -> B Không bỏ
A -> G bỏ vì A -> B -> HG
F = { A -> B ,D -> EG ,GB -> HA , D -> BA , B -> HG }
D -> G bỏ vì D -> B -> HG
F = { A -> B ,D -> E ,GB -> HA , D -> BA , B -> HG }
GB -> H bỏ vì B -> H
F = { A -> B ,D -> E ,GB -> A , D -> BA , B -> HG }
D -> B không bỏ
D -> A bỏ vì D -> B -> GB -> A
F = { A -> B ,D -> E ,GB -> A , D -> B , B -> HG }
B -> H không bỏ
B -> G không bỏ
Bỏ thuộc tính G trong GB -> A vì B -> G

Phủ tối thiểu : {A -> B ,D -> E , B -> A , D -> B , B -> HG}

- Chứng minh
A+ = BHG B+ = HGA

2. Cho cơ sở dữ liệu
Quản lý đề tài
Loai (ma_loai char(5), ten loai char(20))
Giaovien (ma_gv char(5), ten_gv char(20))
Sinhvien (ma_sv char(5), ten_sv char(20), nien_khoa int)
Detai (ma_de_tai char(5), ten_de_tai char(50), ma_gv char(5), ma_loai char(5))
Sinhvien_detai (ma_de_tai char(5), ma_sv char(5))
Ghi chú :
- Loai : ghi thông tin về loại đề tài, VD : đề tài thuộc loại “Thống kê”, hay “Tính toán thông minh”,…
- <> ghi nhận là một số năm vào học. VD : niên khóa 2006, ghi là 2006
Phát biểu :
- Mỗi một đề tài đăng ký là thuộc duy nhất một loại nào đó, và có một giáo viên hướng dẫn.
- Một đề tài có thể có một hoặc nhiều sinh viên cùng tham gia làm.
- Một sinh viên có thể tham gia làm 1 hay nhiều đề tài (số lượng tùy theo ràng buộc đưa sau)
Câu hỏi
a. Liệt kê danh sách gồm mã sinh viên, tên sinh viên mà là học viên năm thứ 3 (năm học được tính bằng cách lấy năm hiện tại trừ đi niên khóa). (0.5 điểm)
b. Liệt kê danh sách gồm mã sinh viên, tên sinh viên mà làm hơn 2 loại đề tài khác nhau. (1 điểm)
c. Liệt kê danh sách gồm mã giáo viên, tên giáo viên mà không hề tham gia hướng dẫn bất cứ đề tài nào. (1 điểm)
d. Liệt kê danh sách gồm mã đề tài, tên đề tài, tên giáo viên hướng dẫn mà chỉ có duy nhất 1 sinh viên tham gia làm(1 điểm)
e. Liệt kê danh sách gồm mã giáo viên, tên giáo viên mà hướng dẫn ít đề tài nhất.(1 điểm)
Đáp án :
- Select ma_sv, ten_sv
From sinhvien
Where year(date()) – nien_khoa = 3

- Select sv.ma_sv,sv.ten_sv
From (sinhvien as sv inner join sinhvien_detai svdt on sv.ma_sv = svdt.ma_sv)
Inner join detai dt on dt.ma_de_tai = svdt.ma_de_tai
Group by sv.ma_sv,sv.ten_sv
Having count(distinct dt.ma_loai) > 2

- Select ma_gv,ten_gv
From giaovien
Where ma_gv not in (
Select ma_gv from detai
)

- Select dt.ma_de_tai, dt.ten_de_tai, gv.ten_gv
From ( detai dt inner join giaovien gv on gv.ma_gv = dt.ma_gv )
Inner join sinhvien_detai svdt on svdt.ma_de_tai = dt.ma_de_tai
Group by dt.ma_de_tai, dt.ten_de_tai, gv.ten_gv
Having count(svdt.masv) = 1

- Select ma_gv, count(distinct ma_de_tai) as tsdt
From detai
Group by ma_gv
 Q

Select gv.ma_gv,gv.ten_gv
From Q inner join giaovien gv on gv.ma_gv = Q.ma_gv
Where Q.tsdt = (Select min(Q.tsdt) from Q)


Đề 3 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm tất cả các khóa chính.
- Hỏi tập phụ thuộc hàm K { A -> B ,D -> EBHG, B ->H , BG -> HA } có tương đương tập F hay không ? Giải thích tại sao ?
- Tìm bao đóng của các thuộc tính sau
o ABC
o DBG

Đáp án :
A -> B , B -> A , D -> EB , B -> HG
- Tìm tất cả các khóa
DC
- Không tương đương vì B -> G không được suy từ K
- ABC + = ABCHG
- DBG+ = DBGHAE
2. Cho cơ sở dữ liệu
Quản lý nguồn nhân lực
Chucvu (ma_chuc_vu char(5), ten_chuc_vu char(5))
Nhanvien (ma_nhan_vien char(5), ten_nhan_vien char(20), dia_chi char(50))
Congviec (so_cong_van char(5),ma_nhan_vien char(5), ma_chuc_vu char(5),
nam_bat_dau int, thang_bat_dau int, nam_ket_thuc int, thang_ket_thuc int)
Hesoluong (ma_chuc_vu char(5), so_nam_lam_viec int, he_so float)
Phát biểu :
- Mỗi một nhân viên chỉ có thể đảm nhiệm duy nhất một công việc trong 1 thời điểm.
- Mỗi nhân viên vẫn được lưu lại tất cả các chức vụ mà mình đã từng trải qua trong quá trình làm việc.
- Các chức vụ mà nhân viên đó đã làm trong quá khứ và sau đó đổi chức vụ và cũng có thể đổi lại chức vụ đó.
- Một công việc của một nhân viên được ghi nhận bằng năm bắt đầu và tháng bắt đầu và khi đã chuyển sang công việc mới thì năm kết thúc và tháng kết thúc mới được ghi nhận. (Bắt đầu là tính đầu tháng, kết thúc là tính cuối tháng)
- Tiền lương hằng tháng được tính theo hệ số lương theo chức vụ * mức lương căn bản.
- Hệ số lương được tính theo chức vụ và số năm làm việc với chức vụ đó (số năm này làm tròn xuống – tức làm 3 năm 6 tháng là 3 năm)

Câu hỏi :
a. Liệt kê danh sách gồm mã nhân viên và tên nhân viên mà đã làm hơn 2 chức vụ cho công ty. (1 điểm)
b. Liệt kê danh sách gồm mã nhân viên và tên nhân viên mà có làm chức vụ có tên là “giam doc” hay “truong phong” trong thời gian hơn 2 năm. (1 điểm)
c. Liệt kê danh sách gồm tên nhân viên, tên chức vụ hiện tại mà nhân viên này đang làm, và hệ số lương cho chức vụ đó. (1 điểm)
d. Liệt kê danh sách gồm mã nhân viên, tên nhân viên mà đã làm hết mọi chức vụ. (1 điểm)
e. Liệt kê danh sách gồm mã nhân viên, tên nhân viên mà đã làm chức vụ có tên là “truong phong” vào tháng 2 năm 2005 và cho đến bây giờ vẫn còn làm chức vụ đó mà không hề có sự thay đổi. (1 điểm)
Đáp án :
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien
Group by nv.ma_nhan_vien, nv.ten_nhan_vien
Having count(distinct cv.ma_chuc_vu) > 2

- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From (nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien)
Inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu
Where
ch.ten_chuc_vu in (“giam doc”,”truong phong”)
and
(
([(cv.nam_ket_thuc – cv.nam_bat_dau)*12 + (cv.thang_ket_thuc – cv.thang_bat_dau) >= 24 ] and [cv.nam_ket_thuc is not null] )
Or
( [(year(date()) – cv.nam_bat_dau)*12 + (month(date()) – cv.thang_bat_dau) >= 24 ] and [cv.nam_ket_thuc is null] )
)

- Select nv.ma_nhan_vien, nv.ten_nhan_vien, hs.he_so
From ((nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien)
Inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu)
Inner join hesoluong hs on
INT(((cv.nam_ket_thuc – cv.nam_bat_dau)*12 + (cv.thang_ket_thuc – cv.thang_bat_dau))/12) = hs.so_nam_lam_viec
Where cv.nam_ket_thuc is null and cv.thang_ket_thuc is null

- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien
Group by nv.ma_nhan_vien, nv.ten_nhan_vien
Having count(distinct cv.ma_chuc_vu) =
(select count(ma_chuc_vu) from chucvu)

- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From (nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien) inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu
Where ch.ten_chuc_vu = ‘Truong phong’ and
cv.nam_ket_thuc is null and
[
( cv.nam_bat_dau = 2005 and cv.thang_bat_dau <= 2)
Or
( cv.nam_bat_dau < 2005)
]

Quen. Nho an nut THANK nha.hehe
View user profile

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà TheHung
Trả lời nhanh
on 9/9/2010, 15:57

Member

nhìn mả hiểu là chết liền
View user profile

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà phamichnam
Trả lời nhanh
on 9/9/2010, 16:44

Member

Đọc cái đấy hiểu chết liền!
View user profile

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà BuiLien
Trả lời nhanh
on 9/9/2010, 20:39

V.I.P

cái bài tập phụ thuộc hàm còn hiểu chứ bài mấy bài khác như tìm khóa hay chuẩn hóa là đầu hàng lại còn mấy cái ký tự nữa chứ
View user profile

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà TaiChat
Trả lời nhanh
on 10/9/2010, 06:40

Member

Hôm nay chép được như môn Kỹ thuật lập trình thì qua chứ còn không coi được nộp giấy trắng thôi
View user profile

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà HoangCuong
Trả lời nhanh
Today at 21:07

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà Sponsored content
Trả lời nhanh

Back to topMessage [Page 1 of 1]

  © FMvi.vn

« Xem bài trước | Xem bài kế tiếp »

Bài viết liên quan

    Quyền hạn của bạn:

    You cannot reply to topics in this forum