You are on page 1of 22

Bài 3.

Sử dụng đại số
quan hệ trong truy
vấn dữ liệu
 Cho quan hệ NV

NV MANV HOTEN TUOI GTINH LUONG TENP


N01 Nguyễn Thị Hoa 36 Nữ 250 Kế toán
N02 Trần Văn Mạnh 29 Nam 200 Đào tạo
N03 Ngô Như ý 25 Nữ 100 Tổ chức
N04 Lê Bảo Châu 52 Nam 400 Đào tạo
N05 Nguyễn Thị Hoa 45 Nữ 300 Kế toán
N06 Lê Thị Ngọc Minh 27 Nữ 100 Đào tạo

 Trên quan hệ NV, đưa ra danh sách các


nhân viên trong phòng đào tạo?
2
Trên quan hệ NV, cho danh sách các nhân viên phòng đào
tạo?
TENP = ‘Đào tạo’ (NV)

NV MANV HOTEN TUOI GTINH LUONG TENP

N01 Nguyễn Thị Hoa 36 Nữ 250 Kế toán


N02 Trần Văn Mạnh 29 Nam 200 Đào tạo
N03 Ngô Như ý 25 Nữ 100 Tổ chức
N04 Lê Bảo Châu 52 Nam 400 Đào tạo
N05 Nguyễn Thị Hoa 45 Nữ 300 Kế toán
N06 Lê Thị Ngọc Minh 27 Nữ 100 Đào tạo

3
 Trên quan hệ NV, đưa ra danh sách các nhân viên
trong phòng đào tạo có lương từ 200 trở lên?

NV MANV HOTEN TUOI GTINH LUONG TENP


N01 Nguyễn Thị Hoa 36 Nữ 250 Kế toán
N02 Trần Văn Mạnh 29 Nam 200 Đào tạo
N03 Ngô Như ý 25 Nữ 100 Tổ chức
N04 Lê Bảo Châu 52 Nam 400 Đào tạo
N05 Nguyễn Thị Hoa 45 Nữ 300 Kế toán
N06 Lê Thị Ngọc Minh 27 Nữ 100 Đào tạo

LUONG ≥ 200 (TENP = ‘Đào tạo’(NV))

4
Trên quan hệ NHANVIEN, cho danh sách các nhân viên
trong phòng đào tạo có lương từ 200 trở lên?

LUONG ≥ 200 (TENP = ‘Đào tạo’(NV))


TENP = ‘Đào tạo’ (LUONG ≥ 200(NV))
(TENP=‘Đào tạo’) ^ (LUONG ≥ 200)(NV)
Câu truy
vấn tương
đương

5
 Trên quan hệ NV, cho danh sách gồm:
Mã nhân viên, họ tên, lương của các nhân viên?

< >
Danh sách tên thuộc tính (R)
NV MANV HOTEN TUOI GTINH LUONG TENP
N01 Nguyễn Thị Hoa 36 Nữ 250 Kế toán
N02 Trần Văn Mạnh 29 Nam 200 Đào tạo
N03 Ngô Như ý 25 Nữ 100 Tổ chức
N04 Lê Bảo Châu 52 Nam 400 Đào tạo
N05 Nguyễn Thị Hoa 45 Nữ 300 Kế toán
N06 Lê Thị Ngọc Minh 27 Nữ 100 Đào tạo

6
NV MANV HOTEN TUOI GTINH LUONG TENP
N01 Nguyễn Thị Hoa 36 Nữ 250 Kế toán
N02 Trần Văn Mạnh 29 Nam 200 Đào tạo
N03 Ngô Như ý 25 Nữ 100 Tổ chức
N04 Lê Bảo Châu 52 Nam 400 Đào tạo
N05 Nguyễn Thị Hoa 45 Nữ 300 Kế toán
N06 Lê Thị Ngọc Minh 27 Nữ 100 Đào tạo

NV1 MANV HOTEN LUONG


N01 Nguyễn Thị Hoa 250
N02 Trần Văn Mạnh 200

 MANV, HOTEN, LUONG (NV)


N03 Ngô Như ý 100
N04 Lê Bảo Châu 400
N05 Nguyễn Thị Hoa 300
N06 Lê Thị Ngọc Minh 100

7
Trên quan hệ NV, cho danh sách các phòng ban?
NV MANV HOTEN TUOI GTINH LUONG TENP
N01 Nguyễn Thị Hoa 36 Nữ 250 Kế toán
N02 Trần Văn Mạnh 29 Nam 200 Đào tạo
N03 Ngô Như ý 25 Nữ 100 Tổ chức
N04 Lê Bảo Châu 52 Nam 400 Đào tạo
N05 Nguyễn Thị Hoa 45 Nữ 300 Kế toán
N06 Lê Thị Ngọc Minh 27 Nữ 100 Đào tạo

PB TENP
Kế toán
 Đào tạo

TENP(NV)
Tổ chức

8
NV MANV HOTEN TENP DA MADA TENDA
N01 Nguyễn Thị Hoa Kế toán D1 An Khánh
N02 Trần Văn Mạnh Đào tạo D2 Tây Hà
N03 Ngô Như ý Tổ chức D3 Thái Sơn
N04 Lê Bảo Châu Đào tạo
N05 Nguyễn Thị Hoa Kế toán
TGIA MANV MADA NVU
N06 Lê Thị Ngọc Minh Đào tạo
N03 D1 Tổ chức
N02 D2 Đào tạo
N03 D2 CSKH
N01 D1 Kế toán
 Đưa ra mã các nhân viên N03 D3 CSKH
tham gia tất cả các dự án N01 D3 Kế toán

9
Đưa ra mã các nhân viên
tham gia tất cả các dự án
 MANV, MADA (TGIA)   MADA(DA)

 MADA(DA) MADA
 MANV, MADA (TGIA) MANV MADA
D1
N03 D1
D2
N02 D2
D3
N03 D2
KQ MANV
N01 D1
N03 D3 N03
N01 D3
DA MADA TENDA
NV MANV HOTEN TENP
D1 An Khánh
N01 Nguyễn Thị Hoa Kế toán
D2 Tây Hà
N02 Trần Văn Mạnh Đào tạo
D3 Thái Sơn
N03 Ngô Như ý Tổ chức
N04 Lê Bảo Châu Đào tạo
N05 Nguyễn Thị Hoa Kế toán TGIA MANV MADA NVU
N06 Lê Thị Ngọc Minh Đào tạo
N03 D1 Tổ chức
N02 D2 Đào tạo
N03 D2 CSKH
 Đưa ra họ tên của nhân N01 D1 Kế toán
viên tham gia dự án với N03 D3 CSKH
N01 D3 Kế toán
nhiệm vụ là Đào tạo
11
 Đưa ra họ tên của nhân viên tham gia dự án
với nhiệm vụ là Đào tạo

 HOTEN (NVU = ‘Đào tạo’ (NV*TGIA))

KQ HOTEN
Trần Văn Mạnh

12
Sử dụng đại số để truy vấn dữ liệu
Chú ý:
◦ Chọn các cột của bảng dùng phép chiếu.
◦ Chọn các dòng của bảng dùng phép chọn.
◦ Tìm thông tin từ nhiều bảng dùng phép kết nối.

13
Trắc nghiệm
1. Để lấy ra các cột của bảng, ta sử dụng phép:
A. Chiếu
B. Chọn
C. Giao
D. Hợp
2. Để lấy ra các bộ cùng xuất hiện ở cả hai quan hệ ta sử dụng phép
A. Giao
B. Hợp
C. Trừ
D. Kết nối
Trắc nghiệm
3. Cần sử dụng phép kết nối khi:
A. Cần lấy dữ liệu từ nhiều bảng
B. Cần lấy dữ liệu từ một bảng không có liên quan đến các bảng còn lại
C. Cần tìm các bộ giống nhau trong các bảng
D. Cần loại bỏ các bộ giống nhau trong các bảng
4. Để thực hiện được phép kết nối tự nhiên, hai bảng cần phải có:
E. Cột thuộc tính giống nhau
F. Thứ tự các cột trong bảng như nhau
G. Số lượng các cột trong bảng như nhau
H. Số lượng dòng trong bảng như nhau
Bài tập
Cho hệ cơ sở dữ liệu với các dữ liệu như hình:
S S# SNAME STATUS CITY
S1 Hùng 20 HN
S2 Lan 10 HT
S3 lan 30 HT

SP S# P# QTY
P P# PNAME COLOR WEIGHT PCITY S1 P1 300
P1 A Đỏ 12 HN S1 P2 200
P2 B Xanh 17 HT S2 P1 300
P3 C Vàng 17 TB S2 P2 400
Biểu diễn truy vấn
1. Đưa ra danh sách tất cả các mặt hàng có màu đỏ
2. Đưa ra tên và khối lượng của tất cả các mặt hàng
3. Đưa ra số hiệu các hãng đã cung ứng mặt hàng có số hiệu là P2
4. Đưa ra tên các hãng đã cung ứng mặt hàng có số hiệu là P2
5. Đưa ra số hiệu các hãng đã cung ứng mặt hàng có màu đỏ
6. Đưa ra màu sắc của mặt hàng do hãng S1 cung ứng
7. Tìm số hiệu những hãng có tình trạng >30 đã cung ứng mặt
hàng màu đỏ:
8. Đưa ra số hiệu các hãng đã cung ứng mặt hàng P1 và P2
9. Đưa ra tên hãng cung ứng tất cả các mặt hàng
10. Đưa ra danh sách các hãng không cung cấp mặt hàng nào
Biểu diễn truy vấn
1. Đưa ra danh sách tất cả các mặt hàng có màu đỏ
σCOLOR = 'Đỏ’ (P)
2. Đưa ra tên và khối lượng của tất cả các mặt hàng
ΠPNAME,WEIGHT(P)

S(S#,SNAME, STATUS,CITY)
P(P#,PNAME, COLOR, WEIGHT, PCITY)
SP(S#,P#, QTY)
Biểu diễn truy vấn
3. Đưa ra số hiệu các hãng đã cung ứng mặt hàng
có P#=’P2’
ΠS#(σP#=‘P2’(SP))
4. Đưa ra tên các hãng đã cung ứng mặt hàng có
P#=’P2’
ΠSNAME(S*σP#='P2'(SP))
S(S#,SNAME, STATUS,CITY)
P(P#,PNAME, COLOR, WEIGHT, PCITY)
SP(S#,P#, QTY)
Biểu diễn truy vấn
5. Đưa ra số hiệu các hãng đã cung ứng mặt hàng có màu
đỏ
ΠS#(σCOLOR='Đỏ' (P*SP))
6. Đưa ra màu sắc của mặt hàng do hãng S1 cung ứng:
ΠCOLOR(P*σS#='S1'(SP))

S(S#,SNAME, STATUS,CITY)
P(P#,PNAME, COLOR, WEIGHT, PCITY)
SP(S#,P#, QTY)
Biểu diễn truy vấn
7. Tìm số hiệu những hãng có tình trạng >30 đã cung ứng mặt hàng
màu đỏ:
ΠS#(σSTATUS >30^COLOR='Đỏ’(P*S*SP))
8. Đưa ra số hiệu các hãng đã cung ứng mặt hàng P1 và P2:
ΠS#(σP#=‘P1'(SP))  ΠS#(σP#='P2' (SP))

S(S#,SNAME, STATUS,CITY)
P(P#,PNAME, COLOR, WEIGHT, PCITY)
SP(S#,P#, QTY)
Biểu diễn truy vấn
9. Đưa ra tên hãng cung ứng tất cả các mặt hàng:
ΠSNAME(S*(ΠS#,P#(SP) ÷ ΠP#(P)))
10. Đưa ra danh sách các hãng không cung cấp mặt hàng nào:
S*(ΠS#(S)-ΠS#(SP))

S(S#,SNAME, STATUS,CITY)
P(P#,PNAME, COLOR, WEIGHT, PCITY)
SP(S#,P#, QTY)

You might also like