Giáo trình Cơ sở dữ liệu (Tập 1) trình bày các kỹ thuật tổ chức dữ liệu ở dạng mô hình liên kết thực thể, hay mô hình quan hệ, chuẩn hóa mô hình cơ sở dữ liệu quan hệ, cũng như sử dụng các phép toán đại số quan hệ hoặc SQL để truy vấn thông tin từ cơ sở dữ liệu. Giáo trình kết cấu gồm 3 chương và chia thành 2 phần, phần 2 trình bày những nội dung về: ngôn ngữ khai thác cơ sở dữ liệu quan hệ;... Mời các bạn cùng tham khảo!
Chương NGÔN NGỮ KHAI THẤC CSDL QUAN HỆ Chương trình bày khái quát kiến thức ngôn ngữ cho phép định nghĩa đối tượng sở liệu biểu diễn yêu cầu sở liệu mà hệ quàn trị sở liệu hỗ trợ Cụ thể, tìm hiểu hai ngôn ngữ khai thác sở liệu quan hệ đại số quan hệ ngơn ngữ truy vấn có cấu trúc SQL 3.1 Các phép tốn quan hệ Ngôn ngữ đại số quan hệ sở quan trọng ngôn ngữ bậc cao sử dụng để thao tác ữên quan hệ Với liệu lưu trữ quan hệ đó, sử dụng phép tốn đại số quan hệ để tạo quan hệ mới, quan hệ thông tin hiển thị theo yêu cầu người dùng Đại số quan hệ loại ngôn ngữ thủ tục, bao gồm tập hợp phép toán áp dụng thể cùa quan hệ Kết trả câu truy vấn thể quan hệ Chuỗi phép tốn đại sổ quan hệ hình thành nên biểu thức đại số quan hệ (câu truy vấn) mà kết trà thể quan hệ Đối với ngôn ngữ này, câu hỏi biểu diễn thông qua việc áp dụng tập hợp phép toán đặc biệt quan hệ Các phép toán đại số quan hệ thường chia thành ba nhóm Nhóm thứ gồm phép toán tập hợp (phép hợp, phép giao, phép trừ phép tích Đề-các) Nhóm thứ hai gồm phép toán đặc biệt quan hệ (phép chọn, phép chiếu, phép chia, phép kết nối phép đặt lại tên) Nhóm thứ ba gồm phép tốn quan hệ bổ sung (các hàm kết tập phép gộp nhóm) 125 3.1.1 Các phép tốn tập hợp Một quan hệ tập hợp n-bộ tạo với n số hay bậc cố định quan hệ Trong lý thuyết tập hợp, nhóm phép toán tập hợp bao gồm phép hợp, phép giao, phép trừ, phép tích Đề-các hai tập hợp phép tốn hai ngơi Khi sử dụng phép toán sở liệu quan hệ cần phải có điều kiện đảm bảo ràng quan hệ kết cùa phép toán phải quan hệ hợp lệ Điều kiện gọi điều kiện khả hợp Định nghĩa 3.1: Cho hai lược đồ quan hệ R(A1, A2, , An) S(B1, B2, , Bm) khả hợp chúng bậc (có nghĩa n=m) có miền giá trị DOM(Aj) = DOM(Bj), 1< i < n Định nghĩa 3.2: Cho r s hai quan hệ Khi đó, r s gọi khả hợp chúng xác định ưên tập thuộc tính thuộc tính tên có miền giá trị Ví dụ 3.1: Cho quan hệ NHANVIEN THANNHAN với thể hiện: NHAN.VIEN THAN NHAN TENNV NGSINH GT Tung 12/08/1955 Nam Hang 07/19/1968 Nu Nhu 06/20/1951 Nu Hung 09/15/1962 Nam TENTN NG SINH GTTN Trinh 04/05/1986 Nu Khang 10/25/1983 Nam Phuong 05/03/1958 Nu Minh 02/28/1942 Nam Chau 12/30/1988 Nu 126 Khi ta có: - Bậc hai quan hệ: n=3; - Miền giá tri thuộc tính: o DOM(TENNV) = DOM(TENTN) o DOM(NGSINH) = DOM(NG_SINH) o DOM(GT) = DOM(GTTN) Vì hai quan hệ cho khả hợp • Phép hợp Cho quan hệ r s khả hợp Khi đó, phép hợp cùa r s quan hệ gồm tập tất thuộc r thuộc s, hai (các trùng lặp bị bỏ) ký hiệu r u s Biểu diễn hình thức phép có dạng: r u s = { 11 ter V tes} Ví dụ 3.2: Cho quan hệ NHACC KHACHHANG với thể hiện: NHACC lliỉỉẨ >55? Lan Hà Hà Nội Bắc Ninh Oanh Thanh Hóa Tùng Mận Nam Định Bắc Giang Lê Hải Dương Tùng Nam Định Lâm Hải Phòng Lan Hà Nội Đào Phú Thọ KỐACHHANG 127 Khi đó, phép hợp quan hệ NHACC KHACHHANG biểu diễn có kết sau: 'UõdỊỈ-' NHACC u KHACHHANG Lan Hà Nội Hà Bắc Ninh Oanh Thanh Hóa Tùng Nam Định Mận Bắc Giang Lê Hải Dương Lâm Hài Phòng Đào Phú Thọ • Phép giao Cho quan hệ r s khả hợp Khi đó, phép giao r s quan hệ gồm tập tất thuộc cà hai quan hệ r s ký hiệu làrn s Biểu diễn hình thức phép có dạng: rn s = { 11 ter A tes) Ví dụ 3.3: Cho quan hệ NHACC KHACHHANG với thể ví dụ 3.2 Khi đó, phép giao quan hệ NHACC KHACHHANG biểu diễn có kết sau: NHACC n KHACHHANG "Ten Lan Tùng Diaẹhi Hà Nội Nam Định • Phép trừ Cho quan hệ r s khả hợp Khi đó, phép trừ r s quan hệ gồm tập tất thuộc r không thuộc s ký hiệu r - s 128 Biểu diễn hình thức phép có dạng: r - s = {11 ter A tỂs} Ví dụ 3.4: Cho quan hệ NHACC KHACHHANG với thể ví dụ 3.2 Khi đó, phép trừ quan hệ NHACC KHACHHANG biểu diễn có kết quà sau: iHKii NHACC -KHACHHANG‘ KHACHHANG - NHACC Hà Bắc Ninh Oanh Thanh Hóa Mận Bắc Giang Lê Hải Dương SIB Lâm Hải Phịng Đào Phú Thọ Một số tính chất quan hệ tập họp: - Tính chất giao hoán: rus=sur rns=snr - Tỉnh chất kết hợp: r u (s u t) = (r u s) u t r n (s n t) = (r n s) n t • Phép tích Đề - Được dùng để kết hợp quan hệ lại với Cho lược đồ quan hệ R, s tương ứng xác định frên tập thuộc tính 129 {A],A2, ,An} {Bl,Bĩ, —, Bm) r s hai quan hệ thuộc hai lược đồ R s tương ứng Khi phép tích Đề - cùa quan hệ r s quan hệ gồm tập tất (m+n) - có n thành phần thuộc r m thành phần sau thuộc s ký hiệu rx s Biểu diễn hình thức phép có dạng: r X s = {t I t=(ai, an,b1, bni) A (ab an) e r A (b15 bm) e s} Kết quà trả quan hệ q Mỗi q tổ hơp r s: - Nếu r có u s có V q có U X V - Nếu r có n thuộc tính s có m thuộc tính q có n + m thuộc tính (r+ n s+* ) Ví dụ 3.5: Cho quan hệ NHACC HANGHOA với thể sau NHACC > '■ MaNÇC ; HANGIĨOA Ten 100 Lan 101 Hà 102 Oanh 103 Tùng MaHH TV01 Ti vi LCD MG01 Máy giặt TL01 Tủ lạnh Khi đó, tích Đề-các quan hệ NHACC HANGHOA biểu diễn có kết đây: 130 NHACC X HANGHOA MaNCC Ten MaHH TenHH 100 Lan TV01 Ti vi LCD 100 Lan MG01 Máy giặt 100 Lan TL01 Tủ lạnh 101 Hà TV01 Ti vi LCD 101 Hà MG01 Máy giặt 101 Hà TL01 Tủ lạnh 102 Oanh TV01 Ti vi LCD 102 Oanh MG01 Máy giặt 102 Oanh TL01 Tủ lạnh 103 Tùng TV01 Ti vi LCD 103 Tùng MG01 Máy giặt 103 Tùng TL01 Tủ lạnh • Phép chia Cho lược đồ quan hệ R, s tương ứng xác định tập thuộc tính {Ab A2, , Am, Am+b An) {Ab A2, Am}, r s hai quan hệ thuộc hai lược đồ R s tương ứng Khi phép chia quan hệ r s quan hệ gồm tập tất (n-m) - cho ghép với ưong quan hệ s cho quan hệ r ký hiệu r -ỉ- s Biểu diễn hình thức phép có dạng: r -5- s={t I t=(am+b an): V (a^.a™) e s, (aba2, ,am,am+b an) e r} Ví dụ 3.6: Cho quan hệ CUNGCAP HANGHOA với thể sau 131 MaHH ¿ MaHH 100 TVOI TV01 101 TVOI MG01 101 MGOl TL01 102 TV01 100 TL01 103 MG01 102 MG01 100 MG01 102 TL01 103 TV01 CUNGCAP MaNCÇ Khi đó, tích phép chia quan hệ CUNGCAP cho quan hệ HANGHOA biểu diễn có kết quà đây: CGCAP + HÀNGHOA MaNCC 100 102 3.1.2 Các phép tốn đặc biệt quan hệ Các phép toán đặc biệt quan hệ bao gồm phép toán liên quan chặt chẽ đến thao tác bàn làm thay đổi quan hệ (như thao tác thêm, sửa, xóa giá trị quan hệ) Các phép toán cách tiếp cận khác việc biểu diễn câu truy vấn ngôn ngữ đại số quan hệ • Phép chọn Phép chọn dùng để lọc tập quan hệ cho thỏa mãn điều kiện xác định Điều kiện gọi điều kiện chọn hay biểu thức chọn 132 Biểu thức chọn F biểu diễn biểu thức logic bao gồm toán hạng, toán hạng phép so sánh đơn giản hai biến hai thuộc tính biến thuộc tính biến giá trị Biểu thức chọn F cho giá trị sai (TRUE FALSE) kiểm ứa Như vậy, điều kiện chọn F biểu thức logic gồm mệnh đề có dạng: - - Các phép so sánh điều kiện chọn F , , = Các mệnh đề nối lại nhờ phép logic A (và), V (hoặc), -I (phủ định) Cho r quan hệ F biểu thức logic thuộc tính r Phép chọn quan hệ r thỏa mãn điều kiện chọn F, kỉ hiệu ơf(r) tập tất r thỏa mãn F Biểu diễn hình thức phép có dạng: ơF(r) = {11 ter A F(t) = TRUE} Ví dụ 3.7: Cho quan hệ HANGHOA với thể sau HANGHOA MailH XpTenHH, .Trongluong TV01 Ti vi LCD Đen 2.5 MG01 Máy giặt Xám TL01 Tủ lạnh Xanh 10 TV02 Ti vi LCD Xám 3.5 MG02 Máy giặt Trắng Khi đó, u cầu 1: Đưa thơng tin mặt hàng có màu xám biểu diễn có kết đây: 133 ƠMausac= “Xám” (HANGHOA) Mausac Trongluoog MaHH Xám MG01 Máy giặt TV02 Ti vỉ LCD Xám 3.5 Yêu cầu 2: Đưa thông tin mặt hàng có màu xám trọng lượng nhỏ kg biểu diễn có kết đây: ■ -Z ' ' TeriHH ^(Mausac^Xám^^^rongluong^ỉCHANGHOA) Mausac Trohgluong MG01 Máy giặt Xám TL01 Tủ lạnh Xanh 10 TV02 Ti vi LCD Xám 3.5 MG02 Máy giặt Trắng Chú ý: - Kết trả phép chọn quan hệ có danh sách thuộc tính với r có số ln số r - Phép chọn có tính chất giao hốn: F1 (ơ F2 (r)) = F2 (ơ F1 (r)) = F1 A F2 (r) • Phép chiếu Phép chiểu quan hệ tập thuộc tỉnh quan hệ thực chất phép tốn dùng để xây dựng quan hệ cách loại bỏ sổ thuộc tính giữ lại thuộc tỉnh cịn lại quan hệ Cho r quan hệ n xác định tập thuộc tính U={Ai,A2, tập thuộc tínhXcU Phép chỉếu quan hệ r tập thuộc tính X ký hiệu Iĩx(R, quan hệ gồm tập tất r xác định tập thuộc tỉnh X) Biểu diễn hình thức phép có dạng: nx(r)={t[X] I ter} 134 Ví dụ, muốn tìm thơng tin nhân viên có lương cao từ bảng Nhanvien, cần thực việc tìm lương cao nhất, sau tìm thơng tin người có mức lương mức lương cao Để thực điều này, ta sử dụng mệnh đề SELECT làm điều kiện mệnh đề SELECT khác Câu lệnh: SELECT * FROMNhanvien WHERE Luong = (SELECT MAX(Luong) FROM Nhanvien); Kết quả: Manv Hoten Ngayjsinh Luong 0001 Nguyễn Văn A 13/4/1987 4500 Chú ý: Mệnh đề SELECT thứ hai phải đặt dấu ngoặc đơn Cách thức sử dụng câu lệnh SQL lồng kỹ thuật nâng cao, ưong tài liệu tác giả giới hạn ừong việc giới thiệu đến bạn đọc kỹ thuật tác giả chi đề cập đến trường hợp đơn giản Chi tiết cách sử dụng câu lệnh SQL lồng tham khảo tài liệu ngôn ngữ SQL nâng cao Lệnh truy vẩn liệu từ nhiều bảng Trong ví dụ câu lệnh truy vấn trên, cột xuất bảng kết trực thuộc bảng liệu gốc Tuy nhiên, thực tế nhiều yêu cầu truy vấn cần kết từ nhiều bảng liệu Trong ngơn ngữ SQL sử dụng phép kết nối để tổ hợp hai hay nhiều bảng có liên quan để tạo thành bảng kết Tương tự phép kết nối ưong ngôn ngữ quan hệ, phép kết nối hai bảng thực chất phép ghép cặp liệu hai hay nhiều bảng thỏa mãn điều kiện chúng Điều kiện gọi điều kiện kết nối hay biểu thức kết nối Các điều kiện kết nối sử dụng phép so sánh =, , Kết phép kết nối bảng tương tự kết nối quan hệ ngơn ngữ quan hệ trình bày mục 3.1.2 168 Để thực phép kết nối nhiều bảng câu lệnh truy vấn sở liệu, mệnh đề FROM câu lệnh SELECT cần liệt kê danh sách tên bảng kết nối, tên bảng phân cách dấu phẩy, thêm mệnh đề thể điều kiện kết nối sau từ khóa WHERE Ví dụ 3.34: Truy vấn từ bảng frong sở liệu cho bàng Nhanvien liệu thuộc bảng sau Manv Hoten Ngaysinh Luong 0001 Nguyễn Văn A 13/4/1987 4500 0002 Trần Thị L 23/7/1990 3000 0003 Hoàng Văn T 21/9/1989 4200 Và bảng Phong liệu sau MaPhong Ten phong ban Dia chi Truong phong 0001 Kế toán Hà nội 0001 0002 Nhập Hải Phòng 0003 Câu lệnh: SELECT Ho_ten, Ngay_sinh, Luong, Ten_phong_ban, Diachi FROM Nhanvien, Phong WHERE Nhanvien.Manv= Phong.Truong phong; Câu lệnh truy vấn danh sách trưởng phịng, frong liệt kê họ tên, ngày sinh, lương, tên phịng ban địa chì phịng ban trưởng phịng Kết quả: Luong Ten_phong_ban Dia_chỉ Nguyễn Văn A 13/4/1987 4500 Kế toán Hà Nội 21/9/1989 4200 Nhập Hải Phịng Ho_ten Hồng Văn T Ngay_sinh 169 Khi thực phép kết nối hai bảng, bàng kết nối phải có quan hệ Quan hệ xuất thường xuyên bảng quan hệ một-nhiều (1 ), * hay quan hệ cha Trong đó, dịng liệu bàng cha liên kết với nhiều dòng liệu bảng Trong trường hợp ví dụ quan hệ bảng Phong Nhanvien, phịng có trưởng phịng nhân viên nhân viên làm trưởng phịng nhiều phòng ban Khi thực kết nối hai bảng có quan hệ này, SQL hỗ trợ cách viết thay sau: FROM Nhanvien INNER JOIN Phong ON Nhanvien.Manv = Phong.Truong_phong; Hoặc FROM Nhanvien NATURAL JOIN Phong; Mệnh đề FROM thay hai mệnh đề FROM WHERE câu lệnh ban đầu, NATURAL JOIN (cách bao gồm INNER JOIN, LEFT JOIN, RIGHT JOIN,., thường sử dụng Oracle MySQL, SQLite) dùng để kết nối bảng Nhanvien Phong Câu lệnh ưong ví dụ 3.33 cỏ thể thay câu lệnh sau: SELECT Ho_ten, Ngay_sinh, Luong, Ten_phong_ban, Dia chi FROM INNER Nhanvien JOIN Phong ON Nhanvien.Manv= Phong.Truong_phong; Hoặc: SELECT Ho ten, Ngay sinh, Luong, Ten_phong_ban, Dia chi FROM Nhanvien NATURAL JOIN Phong; Trong trường hợp muốn truy vấn kết từ bảng trở lên, mệnh đề WHERE mở rộng bàng phép toán logic AND Cho bàng HoaDon, HangHoa KhachHang với liệu cụ thể sau: 170 Bảng khách hàng có tên KhachHang liệu sau: MaKH TenKH DiaChiKH KL01 Tùng Nam Định KL02 Lan Hà Nội CT01 Đào Phú Thọ CT02 Hằng Hồ Chí Minh Bảng hóa đơn có tên HoaDon liệu sau: MaHD MaKH MaHH SoLuong 100 KL01 TV01 101 KL02 MG01 102 CT01 TV01 103 KL02 TL01 104 CT01 MG01 Bảng hàng hóa có tên HangHoa liệu: MaHH TenHH NoiSX TV01 Ti vi LCD Hà Nội MG01 Máy giặt Hải Dương TL01 Tủ lạnh Thanh Hóa TV02 Ti vi LCD Bắc Ninh MG02 Máy giặt Hải Phịng Ví dụ 3.35: Trong sở liệu trên, muốn tìm thơng tin khách hàng có mua mặt hàng đó, ta sử dụng câu lệnh sau 171 SELECT MaKH, TenKH, DiaChiKH FROM KhachHang, HoaDon WHERE KhachHang.MaKH= HoaDon.MaKH; Kết quả: Có khách hàng thực giao dịch mua bán MaKH TenKH DiaChiKH KL01 Tùng Nam Định KL02 Lan Hà Nội CT01 Đào Phú Thọ Kết ứên khác hồn tồn so với việc tìm kiếm thơng tin khách hàng sở liệu câu lệnh sau: SELECT MaKH, TenKH, DiaChiKH FROM KhachHang; Kết quà có khách hàng: DiaChiKH MaKH TenKH KL01 Tùng Nam Định KL02 Lan Hà Nội CT01 Đào Phú Thọ CT02 Hằng Hồ Chí Minh Chú ý: Ta thay câu lệnh tìm khách hàng có thực giao dịch SELECT MaKH, TenKH, DiaChiKH FROM KhachHang, HoaDon WHERE KhachHang.MaKH= HoaDon.MaKH; 172 Bằng câu lệnh sau: SELECT MaKH, TenKH, DiaChiKH FROM KhachHang INNER JOIN HoaDon ON KhachHang.MaKH= HoaDon MaKH; Hoặc SELECT MaKH, TenKH, DiaChiKH FROM KhachHang NATURAL JOIN HoaDon; Ví dụ 3.36: Khi muốn tìm thơng tin khách hàng, loại hàng hóa khách hàng mua số lượng ta phải thực truy vấn từ cà bảng liệu KhachHang, HoaDon HangHoa Câu truy vấn sau thực với từ khóa mở rộng kết nối AND: SELECT TenKH, DiaChiKH, TenHH, SoLuong FROM KhachHang, HoaDon,HangIIoa WHERE KhachHang.MaKH= HoaDon.MaKH AND HoaDon.MaHH= HangHoa.MaHH; Truy vấn đưa thông tin khách hàng tên sản phẩm họ mua với số lượng, kết TenKH DiaChiKH TenHH Đào Phú Thọ Ti vi LCD Đào Phú Thọ Máy giặt Lan Hà Nội Lan Hà Nội Máy giặt Tủ lạnh Tùng Nam Định Ti vi LCD SoLuong HHHH 1 Câu truy vấn viết nhu sau: SELECT TenKH, DiaChiKH, TenHH, SoLuong FROM KhachHang NATURAL JOIN HoaDon NATURAL JOIN HangHoa; 173 Cách viết thể rõ phép kết nối tự nhiên bàng liệu KhachHang, HoaDon HangHoa Câu lệnh tương đương với phép kết nối tự nhiên ương ngôn ngữ đại số quan hệ KhachHang txl HoaDon X Hanghoa Ví dụ 3.37: Khi muốn giới hạn tìm thơng tin khách hàng mua loại hàng hóa cụ thể, ví dụ mặt hàng Tivi LCD, ta phải truy vấn từ bảng liệu KhachHang, HoaDon Hàng hóa Câu truy vấn sau thực với việc kết hợp từ khóa JOIN mệnh đề WHERE: SELECT TenKH, DiaChiKH, TenHH, SoLuong FROM KhachHang NATURAL JOIN HoaDon NATURAL JOIN HangHoa; WHERE HangHoa.MaHH= “TV01”; Kết quả: Có khách hàng mua mặt hàng TenKH DiaChiKH TenHH SoLuong Tùng Nam Định Ti vi LCD Đào Phú Thọ Ti vi LCD Ví dụ 3.38: Khi muốn giới hạn tìm thông tin mua bán khách hàng nhất, chẳng hạn mã khách hàng KL02 Câu truy vấn sau thực điều đó: SELECT TenKH, DìaChiKH, TenHH, SoLuong FROM KhachHang NATURAL JOIN HoaDon NATURAL JOIN HangHoa; WHERE Khachhang.MaKH= “KL02”; Kết quả: TenKH DiaChiKH TenHH SoLuong Lan Hà Nội Máy giặt Lan Hà Nội Tủ lạnh 174 Các phép toán sử dụng mệnh đề SELECT với bảng, sử dụng tương ứng có phép kết nối nhiều bảng Ví dụ 3.39: Tính tổng số lượng mặt hàng khách hàng mua SELECT TenKH, DiaChiKH, COUNT( SoLuong) AS TongSoLuong FROM KhachHang NATURAL JOIN HoaDon NATURAL JOIN HangHoa; WHERE Khachhang.MaKH= “KL02”; Kết quà: TenKH DiaChiKH TongSoLuong Lan Hà Nội Ví dụ 3.40: Khi muốn tìm thơng tin khách hàng, loại hàng hóa xuất sứ hàng hóa mà khách hàng mua, sổ lượng mặt hàng xếp theo tên khách hàng Câu truy vấn sau thực điều đó: SELECT TenKH, DiaChiKH, TenHH, SoLuong FROM KhachHang NATURAL JOINT HoaDon NATURAL JOIN HangHoa ORDER BY KhachHang.TenKH Truy vấn đưa thông tin khách hàng tên sản phẩm nơi sản xuất số lượng mặt hàng họ mua theo thứ tự tên khách hàng Kết quả: TenKH DiaChỉKH TenHH NoiSX SoLuong Tùng Nam Định Ti vi LCD Hà Nội Lan Hà Nội Máy giặt Hải Dương Đào Phú Thọ Ti vi LCD Hà Nội Lan Hà Nội Tủ lạnh Thanh Hóa Đào Phú Thọ Máy giặt Hải Dương 175 ỆỆ| CÂU HỎI VÀ BÀI TẬP CHƯƠNG Câu hỏi: Nêu tên chức hai thành phần ngơn ngữ SQL? Trình bày ưu điềm nhược điểm ngôn ngữ SQL? Trình bày chức cùa mệnh đề câu lệnh truy vấn SELECT? Trình bày phương thức truy vấn nhiều bảng câu lệnh truy vấn SELECT? Bài tập: Bài thực hành 1: Cho sở liệu quan hệ phục vụ quản lý liệu siêu thị nhỏ bao gồm quan hệ sau: - Quan hệ nhà cung cấp bao gồm thuộc tính: Mã nhà cung cấp, tên kinh doanh, số điện thoại, địa chì liên lạc - Quan hệ hàng hóa bao gồm thuộc tính: Mã hàng hóa, tên hàng hóa, nơi sản xuất - Quan hệ nhà cung cấp hàng hóa bao gồm thuộc tính: Mã nhà cung cấp, mã hàng hóa - Quan hệ hóa đơn nhập hàng bao gồm thuộc tính: Mã hóa đơn, mã nhà cung cấp, mã hàng hỏa, số lượng, đơn giá Yêu cầu: Viết câu lệnh tạo bảng để thể tất cà quan hệ trên, sử dụng tên cách phù hợp Với bảng, viết câu lệnh để nhập vào hàng liệu Trong bảng thể quan hệ hóa đơn nhập hàng, viết lệnh để thêm vào cột thể ngày hóa đơn lập 176 I ■ V Viêt lệnh xóa tồn hàng bảng quan hệ hóa đơn nhập hàng Viết lệnh truy vấn để hiển thị toàn nhà cung cấp Viết lệnh truy vấn để hiển thị nhà cung cấp danh mục mặt hàng nhà cung cấp có; nhà cung cấp tìm theo mã nhà cung cấp Viết lệnh truy vấn để hiển thị nhà cung cấp danh mục mặt hàng nhà cung cấp có; nhà cung cấp tìm theo tên kinh doanh Viết lệnh truy vấn để hiển thị hợp đồng nhập hàng từ nhà cung cấp đó; nhà cung cấp tìm theo mã nhà cung cấp Viết lệnh truy vấn để hiển thị tổng số hợp đồng nhập hàng từ nhà cung cấp tổng giá trị hợp đồng này; nhà cung cấp tìm theo mã nhà cung cấp 10 Viết lệnh truy vấn hiển thị tống số hàng nhập mặt hàng đó, mặt hàng tìm theo mã hàng hóa Bài thực hành 2: Cho sử liệu quan hệ phục vụ quản lý liệu nhân viên công ty nhỏ quan hệ sau; - Quan hệ nhân viên bao gồm thuộc tính: Mã nhân viên, tên nhân viên, giới tính, số điện thoại, địa liên lạc - Quan hệ nhân viên chức vụ: Mã nhân viên, mã chức vụ - Quan hệ vị trí cơng tác thuộc tính: Mã chức vụ, tên chức vụ, mã phòng ban - Phòng ban: Mã phòng ban, tên phòng ban, vị trí 177 Yêu cầu: Viết câu lệnh tạo bảng để thể tất quan hệ fren, sử dụng tên cách phù hợp Với bảng, viết câu lệnh để nhập vào hàng liệu Trong bảng thể quan hệ nhân viên, viết lệnh để thêm vào cột thể ngày nhân viên vào công ty Viết lệnh xóa tồn hàng bảng quan hệ phòng ban Viết lệnh truy vấn để hiển thị tồn nhân viên phịng ban cụ thể Viết lệnh truy vấn để hiển thị vị trí mà nhân viên đảm nhận Viết lệnh truy vấn để hiển thị tất nhân viên công ty Viết lệnh truy vấn để hiển thị tồn nhân viên cơng ty theo thứ tự tên nhân viên Đếm số lượng nhân viên phòng ban cụ thể Chú ý: Sử dụng ngôn ngữ đại số quan hệ ngôn ngữ SQL cho câu hỏi thực hành 178 TÀI LIỆU THAM KHẢO [1] Hồ Thuần, Hồ cẩm Hà, Các hệ sở liệu lý thuyết thực hành, Nhà xuất Giáo dục, 2009 [2] Nguyễn Kim Anh, Nguyên lý hệ sở liệu, Nhà xuất Đại học Quốc gia Hà Nội, 2008 [3] Phương Lan, Giáo trình nhập mơn sở liệu, Nhà xuất Lao động - Xã hội, 2007 [4] Thomas Connolly, Carolyn Begg Database systems: A practical approach to Design, Implementation and Management Addison Wesley, Pearson Education Limited 2005 [5] Ramez Elmasri, Shamkant B Navathe Fundamentals of database Systems The sixth edition Addison Wesley, Pearson Education Limited 2011 179 Giáo trình SỞ Dữ LIỆU (Phần 1) Chịu trách nhiệm xuất bản: Giám đốc - Tổng Biên tập ThS ĐỖ VĂN CHIẾN Biên tập: THỦY HẤNG - VƯƠNG LAM Trình bày: TRẰN KIÊN - DŨNG THẮNG In 1000 khổ 16 X 24 cm NXB Thống kê - Cồng ty ci phần In Thương mại Đông Bắc Đja chì: số 15, ngõ 14, phố Pháo Đài Láng, phường Láng Thượng, quận Đóng Đa, Hà Nội Số xác nhận ĐKXB: 2880-2015/CXBIPH/02-32/TK Cục Xuất bản, In Phát hành cắp ngày 06/10/2015 QĐXB số 132/QĐ-NXBTK ngày 26/10/2015 cùa Giám đốc - Tổng Biên tập NXB Thống kê In xong nộp lưu chiểu tháng 10 năm 201 s Giá: 52.500đ ... phần chính: - Thành phần ngôn ngữ định nghĩa liệu (Data Definition Language - DDL) dùng để định nghĩa cấu trúc sở liệu quản lý truy cập đến liệu Chi tiết thành phần DDL trình bày phần 3 .2. 3 -. .. 100.000 T10 02 TV100 120 .000 T1003 TL101 720 .000 T1004 TL101 720 .000 T1005 TL101 620 .000 T1006 TL1 02 620 .000 T1007 TL1 02 820 .000 T1008 TL1 02 820 .000 T1009 MG103 420 .000 T1010 MG103 420 .000 Câu... 3 .2. 2 Các kiểu liệu Các thu? ??c tính sở liệu quan hệ, hay cột bảng SQL thu? ??c kiểu liệu xác định Trong ngôn ngữ SQL, thành phàn ngôn ngữ định nghĩa liệu (DLL) xây dựng sẵn kiểu liệu Các kiểu liệu