Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
Đại học Tin Học 5 Trang 1
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU ------------------------------------------------------------- 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT -------------------------------------------------- 4
1. CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ ------------------------------------- 4
2. NGÔN NGỮ SQL --------------------------------------------------------------- 7
2.1 Cú pháp ---------------------------------------------------------------------- 7
2.2 Các phép toán --------------------------------------------------------------- 7
CHƯƠNG 3: BÀI TẬP ĐSQH VÀ SQL ------------------------------------------- 14
1. LƯỢC ĐỒ CSDL QUAN HỆ ----------------------------------------------- 14
1.1 Lược đồ và Tân từ ------------------------------------------------------- 14
1.2 Các ràng buộc toàn vẹn ------------------------------------------------- 14
1.3 Scrip CSDL --------------------------------------------------------------- 15
2. BÀI TẬP ĐSQH --------------------------------------------------------------- 16
2.1 Câu 1: ---------------------------------------------------------------------- 16
2.2 Câu 2: ---------------------------------------------------------------------- 16
2.3 Câu 3: ---------------------------------------------------------------------- 16
2.4 Câu 4: ---------------------------------------------------------------------- 16
2.5 Câu 5: ---------------------------------------------------------------------- 16
2.6 Câu 6: --------------------------------------------------------------------- 117
2.7 Câu 7: --------------------------------------------------------------------- 117
2.8 Câu 8: --------------------------------------------------------------------- 117
2.9 Câu 9: --------------------------------------------------------------------- 117
2.10 Câu 10: ------------------------------------------------------------------- 117
2.11 Câu 11: ------------------------------------------------------------------- 117
2.12 Câu 12: ------------------------------------------------------------------- 117
2.13 Câu 13: ------------------------------------------------------------------- 117
3.23 Câu 23: -------------------------------------------------------------------- 23
3.24 Câu 24: -------------------------------------------------------------------- 23
3.25 Câu 25: -------------------------------------------------------------------- 23
3.26 Câu 26: -------------------------------------------------------------------- 23
CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ NGHỊ ------------------------------------------ 24
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
Đại học Tin Học 5 Trang 3
CHƯƠNG 1: GIỚI THIỆU
Cơ sở dữ liệu là một tập hợp các dữ liệu về các đối tượng cần quản lý, được
thiết kế để đáp ứng nhu cầu thông tin của một tổ chức, được lưu trữ trên các thiết bị
lưu trữ của máy tính và được quản lý theo một cơ chế thống nhất của hệ quản trị cơ
sở dữ liệu nhằm thực hiện ba chức năng: mô tả dữ liệu, cập nhật dữ liệu, tìm kiếm
dữ liệu. Cơ sở dữ liệu được ứng dụng rộng rãi trong cuộc sống như ngân hàng, hàng
không, đại học, các phương tiện giao thông, bán hàng, …
Hệ quản trị cơ sở dữ liệu là một hệ thống phần mềm (các chương trình) cho
phép người dùng định nghĩa, tạo và duy trì cơ sở dữ liệu đồng thời cung cấp dịch vụ
truy cấp đến cơ sở dữ liệu này một cách có quản lý.Một số hệ quản trị cơ sở dữ liệu
thông dụng: Microsofts Access, Visual Foxpro, Microsoft SQL Server, MySQL,
Oracle, …
Hệ cơ sở dữ liệu là môn học giúp cho sinh viên có kiến thức về ngôn ngữ SQL và
thực hiện truy vấn thành thạo các câu lệnh trên CSDL. Bài tập Hệ CSDL giúp chúng
ta tạo, xóa cơ sở dữ liệu tạo các ràng buộc toàn vẹn các khóa chính và sao lưu , phục
hồi cơ sở dữ liệu. Môn học này cũng giúp các sinh viên thành thạo các thao tác như:
tạo CSDL, tạo bảng, tạo các ràng buộc cho bảng, các câu lệnh, các phép toán SQL
giúp các sinh viên có cơ hội thực hành và hoàn thiện hơn về kiến thức quản lý cơ sở
dữ liệu trong môn hệ cơ sở dữ liệu.
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
gồm có:
Các thuộc tính hoặc các hằng.
Các phép toán so sánh số học: <, ≤, >, =, ≠
Các phép toán logic:
,
,
Các dấu ngoặc (và).
Định nghĩa:
Cho t là một bộ trong quan hệ R, và E là một biểu thức logic phát biểu trên
tập các thuộc tính của quan hệ R. Ta nói bộ t thỏa mãn biểu thức E, kí hiệu t(E), nếu
sau khi thay đổi mọi thuộc tính A trong E bằng giá trị t.A ta được một công thức
logic mệnh đề đúng.
Định nghĩa:
Cho quan hệ R(
) và biểu thức chọn E trên
. Phép chọn quan hệ R theo
điều kiện E cho ta quan hệ P với tập thuộc tính
và các bộ của R thỏa E.
P = R(E) = {t
R | t(E)}
- Ví dụ: Tìm các sinh viên lớp “TH5”
SV
MASV HOTEN_SV NAMS_SV DCHI_SV TENLOP
R }
Ví dụ: Tìm mã số, họ tên sinh viên có địa chỉ ‘Can Tho’.
SV
MASV HOTEN_SV NAMS_SV DCHI_SV TENLOP
101 Tran Van An 1990 Can Tho TH5
102 Le Thanh Ha 1991 Vinh Long XD5
103 Phan Thi Mo 1992 Can Tho DL5
, _ ( _ ' ')
()
MASV HOTEN SV DCHI SV Can Tho
SV
1.1.3 Tích Đề-các: kí hiệu x
Định nghĩa:
Cho hai quan hệ R(U) và S(V), trong đó U
V = Ø. Tích Đề-các của R và S
một quan hệ P, với tập thuộc tính là U
V được định nghĩa như sau:
P = R x S = { <u, v> | u
R(U)
v
v
S
u [U] θ v [V] }
Chú ý:
MAMH
TH333
TH555
MASV
101
102
MASV MAMH
101 TH333
101 TH555
102 TH333
102 TH555
R x S: Danh sách sinh viên để theo dõi:
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
Đại học Tin Học 5 Trang 6
GV.NAMS_GV < SV.MANS_SV
Phép kết nối này chỉ thực hiện được khi θ thực hiện được giữa các thuộc tính của
U và V. Nếu không dựa trên θ và U
V = Ø, thì R S trở thành tích Đề-các
của R và S. Nếu θ là phép so sánh “=”, thì gọi là kết nối bằng. Nếu kết nối bằng
được thực hiện tại tất cả các thuộc tính cùng tên của hai quan hệ R và S thì đây
Ví dụ: Tìm tên các môn học có học trong học kỳ 1 năm học 2012 – 2013.
_ 1 '2012 2013'
: ( )
MAMH STT HK NKHOA
A HOC
,
: ( )
MAMH TENMON
B MON
P = A*B
1.1.6 Phép chia ( Division): kí hiệu /
Định nghĩa:
Cho hai quan hệ R(U) và S(V) với U
V, và S
.Đặt X= U – V. Thương của
phép chia quan hệ R cho quan hệ S là quan hệ P với tập thuộc tính X, được định
nghĩa như sau:
P = R / S = R÷ S = {u.X |u
R
MASV HOTEN_SV NAMS_SV
101 Trần Thu Thảo 1988
102 Nguyễn Thị Thu 1990
103 Phan Pham Chuc 1988
MAGV HOTEN_GV NAMS_GV MASV HOTEN_SV NAMS_SV
CTU554 Huỳnh Thị Thùy Linh 1989 101 Trần Thu Thảo 1988
CTU554 Huỳnh Thị Thùy Linh 1989 103 Phan Pham Chuc 1988
GV
SV
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
Đại học Tin Học 5 Trang 7
Ví dụ: Liệt kê danh sách mã sinh viên và mã môn học.
( ) ( )
MASV MAMH
SV MON
1.1.8 Phép giao (Intersection): kí hiệu
Định nghĩa:
Giao của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U
và các bộ đồng thời có mặt trong hai quan hệ cho trước
P = P
S = P . S = { t | t
MAMH STT HK NKHOA
HOC
_ 1 2012 2013
()
MAMH STT HK NKHOA
HOC
2. NGÔN NGỮ SQL
2.1 Cú pháp
Cú pháp của lệnh SQL được giới thiệu theo dạng mở rộng của ký hiệu BNF:
- Chữ hoa đại diện cho từ khóa.
- Chữ thường đại diện cho các từ của người dùng định nghĩa.
- Dấu | chỉ sự lựa chọn.
- Dấu { chỉ phần tử bắt buộc phải có.
- Dấu [ chỉ phần tử tùy chọn (không bắt buộc).
- Dấu … chỉ thành phần có thể lặp lại từ 0 đến nhiều lần.
2.2 Các phép toán
Ví dụ : Cho lược đồ cơ sở dữ liệu như sau :
KTRUCSU(MA_KTS, HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN,
DCHI_LL_KTS)
CHUTHAU(ID_THAU, TEN_THAU, TEL, DCHI_THAU)
CHUNHAN(ID_CHU, TEN_CHU, DCHI_CHU)
CONGNHAN(MA_CN, HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON)
CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI,
SELECT MA_KTS, NAMS_KTS
FROM KTRUCSU
WHERE HOTEN_KTS = ‘LE THANH TUNG’
+) Dạng 2: so sánh giá trị của các thuộc tính với nhau <cột 1> so sánh <cột 2>
+) Dạng 3: so sánh giá trị thuộc tính với hằng có kiểu tương thích <cột> so sánh
<hằng>
+) Dạng 4: so sánh cột với 1 tập gồm nhiều giá trị <cột> [NOT] IN (<DS các giá
trị>)
+) Dạng 5: tìm kiếm theo phạm vi <cột> [NOT] BETWEEN <giá trị đầu> AND
<GT cuối>
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu
Đại học Tin Học 5 Trang 9
+) Dạng 6: tìm kiếm theo mẫu dạng chuỗi <cột> [NOT] LIKE <chuỗi>
+) Dạng 7: tìm kiếm theo trị thống NULL <cột> IS [NOT] NULL
2.2.4 Kết nối ngoại (outer join)
- Cho phép giữ lại những dòng không thỏa điều kiện kết nối.
- Có 3 loại kết nối:
FROM <bảng 1> LEFT JOIN <bảng 2> ON <điều kiện kết nối>
FROM <bảng 1> RIGHT JOIN <bảng 2> ON <điều kiện kết nối>
FROM <bảng 1> FULL JOIN <bảng 2> ON <điều kiện kết nối>
Ví dụ: Hãy liệt kê tên thầu, tên công trình, tỉnh thành kể cả những tên thầu có
tỉnh thành trùng với nhau:
SELECT TEN_THAU, TEN_CTR, TINH_THANH
FROM CHUTHAU A LEFT JOIN CGTRINH B
ON A.ID_THAU = B.ID_THAU
2.2.5 Các phép toán tập hợp
Phép hợp (UNION), giao (INTERSECT), trừ (DIFFERENCE hay EXPERT)
Định dạng chung của phép toán tập hợp: