You are on page 1of 51

1

BAN HỌC TẬP ĐOÀN KHOA CNPM


Chuỗi Training giữa học kì I năm học 2018 - 2019

Ban học tập Our Phone Email / Group


Khoa Công Nghệ Phần Mềm 0932 470 201 Bht.cnpm.uit@gmail.com
Trường ĐH Công Nghệ Thông Tin 0936 645 393 fb.com/groups/bht.cnpm.uit/
01666 27 27 03
2

Training giữa kì

Cơ Sở
Dữ Liệu
10h ngày 25/10

Giảng đường 3 (A3)

Vũ Tuấn Hải - KTPM2017


Nguyễn Trường Lâu - KHCL2017.1
CẤU TRÚC ĐỀ THI
CẤU TRÚC ĐỀ THI

Phần 1:
• Vẽ lược đồ ER (1,5 điểm)
• Chuyển mô hình ER sang mô hình quan hệ(1 điểm)
Phần 2:
• Các câu lệnh DDL: Tạo bảng, thêm xoá khoá chính,
thuộc tính, thay đổi kiểu dữ liệu thuộc tính(ngôn
ngữ SQL) (0.75 điểm)
• Các câu lệnh DML: Thêm xoá sửa dữ liệu (Ngôn
ngữ SQL) (0.75 điểm)
• Đại số quan hệ (6 điểm)
PHẦN 1
PHẦN 1.1: VẼ LƯỢC ĐỒ ER
MÔ HÌNH ER
MÔ HÌNH ER
MÔ HÌNH ER
BẢNG SỐ (MIN, MAX)

Là số lượng nhỏ nhất và lớn nhất thực


thể đó tham gia vào mối kết hợp.
Có 4 loại:
• 1,1 → Duy nhất một
• 1, 𝑁 → Một hoặc nhiều
• 0,1 → Không hoặc một
• 0, 𝑁 → Không hoặc nhiều
CÁCH XÁC ĐỊNH BẢNG SỐ

Ta xác định loại mối quan hệ là gì?


Sau đó xác định bảng số
VD:
+ Một nhân viên tham gia nhiều dự án (1, N)
+ Một nhân viên tham gia duy nhất một dự án (1, 1)
+ Một nhân viên tham gia nhiều nhất một dự án (0, 1)
CÁC BƯỚC VẼ MÔ HÌNH ER

• B1: Xác định tập thực thể, thuộc tính, và khóa


• B2: Xác định mối quan hệ
• B3: Quyết định (min, max) cho mối quan hệ
ĐỀ THI GIỮA KÌ I 17 - 18
ĐỀ THI GIỮA KÌ I 17 - 18
Phần 1:
1. Vẽ mô hình ERD
Mỗi trung tâm tin học cần tổ chức 1 CSDL để quản
Lý với các thông tin như sau:
• Mỗi phòng máy có mã phòng duy nhất để phân biệt với các phòng và tên
người quản lý phòng.
• Mỗi máy tính có một mã máy duy nhất. Ngoài ra, mỗi máy tính có cấu hình
như: tốc độ CPU, dung lượng RAM, dung lượng ổ cứng. Các máy tính được
bố trí trong các phòng máy.
• Mỗi môn học có mã môn học duy nhất, có tên môn học và thời lượng môn học
• Mỗi môn học có thể được thực hành ở các phòng máy khác nhau và một phòng
máy có thể được đăng có cho nhiều môn học khác nhau, khi đăng ký phải biết
ngày đăng ký.
2. Chuyển mô hình trên sang mô hình quan hệ
MÔ HÌNH ERD

Nguồn: kienthuc24h.vn
PHẦN 1.2: CHUYỂN ERD THÀNH QUAN HỆ
CÁC QUY TẮC BIẾN ĐỔI
CÁC LOẠI QUAN HỆ (MIN,MAX) -> MAX
PHẦN 2.1: NGÔN NGỮ DDL
NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU (DDL)

1. Lệnh tạo bảng (CREATE)


2. Lệnh sửa cấu trúc bảng (ALTER)
3. Lệnh xóa bảng (DROP)
PHẦN 2.1: NGÔN NGỮ DML
NGÔN NGỮ THAO TÁC DỮ LIỆU (DML)

1. Lệnh thêm dữ liệu (INSERT)


2. Lệnh xóa dữ liệu (DELETE)
3. Lệnh sửa dữ liệu (UPDATE)
CHUYỂN ERD THÀNH QUAN HỆ
ĐỀ THI GIỮA KÌ I 17 - 18
Phần II: (7.5 Điểm)
Người quản trị của Công ty Cổ phần xe khách Phương Trang muốn quản lý các giao dịch mua vé
xe khách trên các tuyến đường của hãng, đã thiết kế một CSDL Quản lý vé xe. Sau đây là một phần
của lược đồ CSDL:
XE(maxe, bienks, matuyen, sogheT1, sogheT2)
Mô tả: Lược đồ quan hệ XE nhằm mô tả cho những chuyến xe đang được công ty quản lý.
Mỗi xe được ghi nhận thông tin biển kiểm soát (bienks), mã tuyến mà xe đó đang hoạt động
(matuyen), số ghế tầng 1 (sogheT1), số ghế tầng 2 (sogheT2) và được ấn định một mã số duy
nhất (maxe) để theo dõi.
TUYEN(matuyen, bendau, bencuoi, giatuyen, thoigiandk)
Mô tả: Lược đồ quan hệ TUYEN nhằm mô tả thông tin tuyến xe. Mỗi thông tin tuyến xe sẽ bao gồm
bến đầu (bendau), bến cuối (bencuoi), giá vé thông thường (giatuyen), thời gian dự kiến mỗi
chuyến (thoigiandk) được tính bằng giờ và được đặt một mã số duy nhất (matuyen) để quản lý.
KHACH(mahk, hoten, gioitinh, cmnd)
Mô tả: Lược đồ quan hệ KHACH nhằm mô tả thông tin những hành khách. Thông tin được ghi nhận
bao gồm: Mã hành khách (mahk), họ tên (hoten), giới tính (gioitinh) và số chứng minh nhân dân
của hành khách đó (cmnd).
ĐỀ THI GIỮA KÌ I 17 - 18

VEXE(matuyen, mahk, ngaymua, giave)


Mô tả: Lược đồ quan hệ VEXE nhằm mô tả thông tin vé xe của hành khách.
Thông tin vé xe bao gồm: Mã tuyến (matuyen), mã hành khách (mahk), ngày
mua vé (ngaymua) và giá vé mua tại thời điểm đó (giave). Một hành khách có
thể mua nhiều vé của cùng một tuyến xe tại những thời điểm khác nhau.
Lưu ý: thuộc tính gạch chân là khóa chính (thuộc tính)
1. Viết câu lệnh SQL: (1.5 Điểm)
a. Dùng câu lệnh DDL định nghĩa bổ sung các vấn đề sau: (0.75 điểm)
Thêm vào thuộc tính diachi có kiểu dữ liệu nvarchar(20) cho quan hệ KHACH.
Sửa kiểu dữ liệu của thuộc tính diachi trong quan hệ KHACH thành
nvarchar(50).
Xóa thuộc tính diachi trong quan hệ KHACH.
b. Giảm 10% giá vé được mua vào ngày ’20/10/2017′. (0.75 điểm)
GIỮA KÌ I 17 - 18

Phần II:
1. Viết lệnh SQL
Câu a:
ALTER TABLE KHACH ADD diachi nvarchar(20)
ALTER TABLE KHACH ALTER COLUMN diachi nvarchar(50)
ALTER TABLE KHACH DROP COLUMN diachi
Câu b:
UPDATE VEXE SET giave=giave*0.9 WHERE ngaymua=’20/
10/2017′
PHẦN 2.3: ĐẠI SỐ QUAN HỆ
ĐẠI SỐ QUAN HỆ LÀ GÌ?

Là nền tảng toán học dùng để


mô hình hóa CSDL quan hệ.
INSERT, DROP, Π, σ, ^,
SELECT, … ˅, …
MỘT SỐ PHÉP TOÁN CƠ BẢN

Phép chiếu π Phép giao ᴒ


Phép chọn σ Phép kết
Phép trừ - Phép chia ÷
Phép tích ×
Phép hội ᴗ
PHÉP CHỌN σ

Là phép lấy các dòng (bản ghi) thỏa mãn điều kiện cho
trước
VD: Liệt kê những sinh viên có giới tính nam và hơn 20 tuổi
SINHVIEN (masv, hoten, gioitinh, chieucao)
𝜎 ′ ′ ^ (𝑆𝐼𝑁𝐻𝑉𝐼𝐸𝑁)
𝑔𝑖𝑜𝑖𝑡𝑖𝑛ℎ= 𝑛𝑎𝑚 𝑡𝑢𝑜𝑖>20
PHÉP CHỌN σ

(16 – 17 HK1) Liệt kê những nhân viên vào làm từ năm


2015
NHANVIEN (manv, hoten, ngaysinh, ngayvaolam)
𝜎 𝑛𝑔𝑎𝑦𝑣𝑎𝑜𝑙𝑎𝑚>#1/1/2015# (𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁)

𝜎𝑦𝑒𝑎𝑟 𝑛𝑔𝑎𝑦𝑣𝑎𝑜𝑙𝑎𝑚)≥2015 (𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁)


PHÉP CHIẾU π

Là phép trích chọn vài thuộc tính của bảng


VD: Liệt kê họ tên những sinh viên có giới tính nam
và cao 1m6
SINHVIEN (masv, hoten, gioitinh, chieucao)
πℎ𝑜𝑡𝑒𝑛 𝜎 ′ ′ ^ ′ ′ (𝑆𝐼𝑁𝐻𝑉𝐼𝐸𝑁)
𝑔𝑖𝑜𝑖𝑡𝑖𝑛ℎ= 𝑛𝑎𝑚 𝑐ℎ𝑖𝑒𝑢𝑐𝑎𝑜= 1𝑚6
PHÉP TRỪ -

Là phép toán chỉ thực hiện được khi 2 quan hệ


khả hợp (số thuộc tính bằng nhau + miền giá trị
tương thích)
VD: Liệt kê những sinh viên đạt giải tích nhưng không
đạt đại số tuyến tính
MASV HOTEN
MASV HOTEN
1 A MASV HOTEN 1 A
2 B - 2 B =
3 C
3 C

Đạt GT Đạt ĐSTT


PHÉP GIAO ᴒ

Là phép toán chỉ thực hiện được khi 2 quan hệ


khả hợp (số thuộc tính bằng nhau + miền giá trị
tương thích)
VD: Liệt kê những sinh viên đạt giải tích và đạt đại số
tuyến tính
MASV HOTEN
1 A MASV HOTEN MASV HOTEN
2 B ᴒ 3 C = 3 C

3 C

Đạt GT Đạt ĐSTT


PHÉP HỘI ᴗ

Là phép toán chỉ thực hiện được khi 2 quan hệ


khả hợp (số thuộc tính bằng nhau + miền giá trị
tương thích)
VD: Liệt kê những sinh viên đạt giải tích hoặc đạt đại
số tuyến tính
MASV HOTEN MASV HOTEN
1 A 1 A
MASV HOTEN
2 B ᴗ 4 D = 2 B

3 C 3 C
4 D
Đạt GT Đạt ĐSTT
PHÉP TÍCH x

Là phép dùng để liệt kê ra tất cả trường hợp


giữa 2 quan hệ (bảng)

MASV HOTEN MAMH


MASV HOTEN MAMH
1 A KTMT
1 A X KTMT = 2 B KTMT
2 B CSDL 1 A CSDL
2 B CSDL

2 2 4
PHÉP KẾT

Là phép tích kết hợp phép chọn


Có 3 loại thường gặp
• Left outer join
• Right outer join
• Full outer join
RIGHT OUTER JOIN

MASV HOTEN MASV HOTEN MASV MAMH DIEM


HV1 A HV1
MASV A
HOTEN HV1
MASV KTMT
MAMH 6
DIEM
HV2 B HV2
MASV B
HOTEN HV2
MASV CSDL
MAMH 7
DIEM
HV3 C HV3
MASV C
HOTEN HV3
MASV CSDL
MAMH 4
DIEM
HV4 D null null HV5 NMM 9
null null MT
MASV

MASV MAMH DIEM


HV1 KTMT 6
HV2 CSDL 7
HV3 CSDL 4
HV5 NMMMT 9
LEFT OUTER JOIN

MASV HOTEN MASV HOTEN MASV MAMH DIEM


HV1 A HV1 A HV1 KTMT 6
HV2 B HV1 A HV1 NMM 9
HV3 C MASV HOTEN MASV MAMH
MT DIEM
HV4 D HV2
MASV B
HOTEN HV2
MASV CSDL
MAMH 7
DIEM
MASV HV3
MASV C
HOTEN HV3
MASV CSDL
MAMH 4
DIEM
HV4 D null null null
MASV MAMH DIEM
HV1 KTMT 6
HV2 CSDL 7
HV3 CSDL 4
HV1 NMMMT 9
null null null
FULL OUTER JOIN
MASV HOTEN
MASV HOTEN MASV MAMH DIEM
HV1 A
HV1
MASV A
HOTEN HV1
MASV KTMT
MAMH 6
DIEM
HV2 B
HV2
MASV B
HOTEN HV2
MASV CSDL
MAMH 7
DIEM
HV3 C
HV4 D HV3
MASV C
HOTEN HV3
MASV CSDL
MAMH 4
DIEM
null null HV4
MASV D
HOTEN null
MASV null
MAMH null
DIEM
MASV
null null HV5 NMM 9
MT

MASV MAMH DIEM


HV1 KTMT 6
HV2 CSDL 7
HV3 CSDL 4
HV5 NMMMT 9
null null null
PHÉP CHIA ÷

Là phép ngược lại với phép nhân, B ÷ A - chọn ra


những hàng (bản ghi) trong B thỏa toàn bộ A
VD: Liệt kê những sinh viên học tất cả các môn đang
được dạy
MASV MAMH
1 CSDL
MAMH
2 NMMMT
CSDL
1 NMMMT MASV
÷ NMMMT = 1
3 KTMT
KTMT
2 CSDL
1 KTMT
PHÉP CHIA ÷

VD: Liệt kê những sinh viên học tất cả các môn đang
được dạy
MASV MAMH
1 CSDL
MAMH
2 NMMMT
CSDL MASV
1 NMMMT ÷ NMMMT = null
3 KTMT
KTMT
2 CSDL
4 KTMT
ĐỀ THI GIỮA KÌ I 17 - 18
GIỮA KÌ I 17 - 18

Phần 2:
Người quản lý công ty CP xe khách Phương Trang
muốn quản lý các giao dịch mua vé xe khách trên
các tuyến đường của hãng, đã thiết kế CSDL Quản
lý vé xe như sau:
XE (maxe, bienks, matuyen, sogheT1, sogheT2)
TUYEN (matuyen, bendau, bencuoi, giatuyen, thoigiandk)
KHACH (mahk, hoten, gioitinh, cmnd)
VEXE (matuyen, mahk, ngaymua, giave)
GIỮA KÌ I 17 - 18

TUYEN (matuyen, bendau, bencuoi, giatuyen, thoigiandk)


a. Liệt kê matuyen, bencuoi của những xe có bến đầu
là Đà Nẵng với giá tuyến > 300k
π𝑚𝑎𝑡𝑢𝑦𝑒𝑛,𝑏𝑒𝑛𝑐𝑢𝑜𝑖 𝜎 ′ ′ ^
𝑏𝑒𝑛𝑑𝑎𝑢= Đà 𝑁ẵ𝑛𝑔 𝑔𝑖𝑎𝑡𝑢𝑦𝑒𝑛>300000
(𝑇𝑈𝑌𝐸𝑁)
GIỮA KÌ I 17 - 18
TUYEN (matuyen, bendau, bencuoi, giatuyen, thoigiandk)
KHACH (mahk, hoten, gioitinh, cmnd)
VEXE (matuyen, mahk, ngaymua, giave)
b. Cho ra danh sách các tuyến (bendau, bencuoi) được khách hàng Nguyen Van
A, số cmnd 012801156, mua vé vào ngày 02/01/2016.

𝐴 ← 𝜎(ℎ𝑜𝑡𝑒𝑛=′ 𝑁𝑔𝑢𝑦𝑒𝑛 𝑉𝑎𝑛 𝐴′ )^(𝑐𝑚𝑛𝑑=′ 012801156)^(𝑛𝑔𝑎𝑦𝑚𝑢𝑎=#2/1/2016#)


(𝐾𝐻𝐴𝐶𝐻 𝑉𝐸𝑋𝐸)
mahk
π𝑏𝑒𝑛𝑑𝑎𝑢,𝑏𝑒𝑛𝑐𝑢𝑜𝑖 (𝐴 𝑇𝑈𝑌𝐸𝑁)
matuyen
GIỮA KÌ I 17 - 18

TUYEN (matuyen, bendau, bencuoi, giatuyen, thoigiandk)


VEXE (matuyen, mahk, ngaymua, giave)
c. Khách hàng nào (makh) đã mua tất cả các tuyến có
bendau là BX Miền Đông với giá tuyến > 100k.
𝐴 ← π𝑚𝑎𝑡𝑢𝑦𝑒𝑛 𝜎(𝑏𝑒𝑛𝑑𝑎𝑢=′ 𝐵𝑋 𝑀𝑖ề𝑛 Đô𝑛𝑔′ )^(𝑔𝑖𝑎𝑡𝑢𝑦𝑒𝑛>100000)
(𝑇𝑈𝑌𝐸𝑁)
𝐵 ← 𝜋𝑚𝑎ℎ𝑘,𝑚𝑎𝑡𝑢𝑦𝑒𝑛 (𝑉𝐸𝑋𝐸)
𝐶 ←𝐵÷𝐴
GIỮA KÌ I 17 - 18
XE (maxe, bienks, matuyen, sogheT1, sogheT2)
TUYEN (matuyen, bendau, bencuoi, giatuyen, thoigiandk)
d. Cho biết danh sách các tuyến xe (matuyen, bendau,
bencuoi) chưa được phân xe
π𝑚𝑎𝑡𝑢𝑦𝑒𝑛,𝑏𝑒𝑛𝑑𝑎𝑢,𝑏𝑒𝑛𝑐𝑢𝑜𝑖 (൫π𝑚𝑎𝑡𝑢𝑦𝑒𝑛 𝑇𝑈𝑌𝐸𝑁

matuyen
GIỮA KÌ I 17 - 18

TUYEN (matuyen, bendau, bencuoi, giatuyen, thoigiandk)


VEXE (matuyen, mahk, ngaymua, giave)
e. Với mỗi mã tuyến, cho biết tổng số lượng hành khách
đã mua vé năm 2016.
𝐴 ← 𝜋𝑚𝑎𝑡𝑢𝑦𝑒𝑛,𝑚𝑎ℎ𝑘 𝜎𝑦𝑒𝑎𝑟 𝑛𝑔𝑎𝑦𝑚𝑢𝑎 =2016) (𝑇𝑈𝑌𝐸𝑁 𝑉𝐸𝑋𝐸)
matuyen
𝐵(𝑚𝑎𝑡𝑢𝑦𝑒𝑛, 𝑠𝑙ℎ𝑘) ← 𝑚𝑎𝑡𝑢𝑦𝑒𝑛 𝜏 𝑐𝑜𝑢𝑛𝑡(𝑚𝑎ℎ𝑘) (𝐴)
GIỮA KÌ I 17 - 18

XE (maxe, bienks, matuyen, sogheT1, sogheT2)


TUYEN (matuyen, bendau, bencuoi, giatuyen, thoigiandk)
f. Cho biết thông tin tất cả các tuyến xe xuất phát từ bến
đầu là TP. HCM và bến cuối là Đà Lạt và thông tin biển
kiểm soát của các xe đã được phân công đi tuyến này
(nếu có)
𝜎(𝑏𝑒𝑛𝑑𝑎𝑢=′ 𝑇𝑃.𝐻𝐶𝑀′ )^(𝑏𝑒𝑛𝑐𝑢𝑜𝑖=′ Đà 𝐿ạ𝑡 ′ ) (𝑇𝑈𝑌𝐸𝑁 𝑋𝐸)
matuyen
51
BAN HỌC TẬP ĐOÀN KHOA CNPM
Chuỗi Training giữa học kì I năm học 2018 - 2019

HẾT
Cảm ơn các bạn đã theo dõi
Chúc các bạn có kết quả thi thật tốt !

Ban học tập Our Phone Email / Group


Khoa Công Nghệ Phần Mềm 0932 470 201 Bht.cnpm.uit@gmail.com
Trường ĐH Công Nghệ Thông Tin 0936 645 393 fb.com/groups/bht.cnpm.uit/
01666 27 27 03

You might also like