Bài tập về đại số quan hệ
lượt xem 62
download
Đại số quan hệ dùng phổ biến trong lí thuyết cơ sở dữ liệu quan hệ là một bộ các toán tử và các quy tắc tương ứng có thể được sử dụng để thao tác trên các toán học (relation) và tạo ra kết quả là một quan hệ khác. Trước đây, đại số quan hệ ít được quan tâm cho đến khi Edgar F. Codd đưa ra mô hình dữ liệu quan hệ (relational model) vào năm 1970. Từ đó đến nay, đại số quan hệ được xem là nền tảng cho các ngôn ngữ truy vấn cơ...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài tập về đại số quan hệ
- Bài tập Cho lược đồ CSDL quản lý bán hàng như sau: KHACHTV (MAKH,HOTEN, DCHI,SODT,NGSINH,DOANHSO,NGGN) NHANVIEN (MANV,HOTEN,NGSINH,NGVL,HESO,MUCLUONG) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) CTHD (SOHD,MASP,SL) 1
- Phần 1: Đại số quan hệ 1. In ra số hóa đơn cùng trị giá của các hóa đơn do nhân viên có tên “Nguyễn Văn A” lập trong ngày 10/10/2005 2. In ra danh sách các sản phẩm (mã sản phẩm, tên sản phẩm) được khách hàng có tên “Nguyễn Văn A” mua. 3. Tìm các số hóa đơn đã mua cùng lúc 2 sản phẩm có mã số “SP01” và “SP02” 4. In ra danh sách các sản phẩm không bán được trong năm 2005 2
- Phần 2: SQL 1. Tìm số hoá đơn có trị giá cao nhất trong năm 2005. 2. Tính tổng số lượng sản phẩm có mã số “SP01” được bán ra trong tháng 10/2005. 3. Từng sản phẩm, tính tổng số lượng bán ra trong tháng 10/2005. 4. Tìm sản phẩm (mã sản phẩm, tên sản phẩm) có số lượng bán ra cao nhất trong ngày 10/10/2005. 3
- Phần 3: Ràng buộc toàn vẹn Bối cảnh một quan hệ: 1. Tất cả các sản phẩm có giá từ 1.000 đồng trở lên 2. Ngày gia nhập của khách hàng thành viên phải lớn hơn ngày sinh của người đó. 3. Các nhân viên có cùng hệ số lương thì phải cùng mức lương 4
- Phần 3: Ràng buộc toàn vẹn Bối cảnh nhiều quan hệ: 4. Ngày nhân viên bán hàng phải lớn hơn hoặc bằng ngày đầu tiên vào làm của nhân viên đó. 5. Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn. 6. Doanh số của một khách hàng thành viên là tổng các trị giá hóa đơn mà khách hàng thành viên đó đã mua 5
- Phần 1: Đại số quan hệ Câu 1:In ra số hóa đơn cùng trị giá của các hóa đơn do nhân viên có tên “Nguyễn Văn A” lập trong ngày 10/10/2005 Viết bằng SQL: SELECT SOHD,TRIGIA FROM NHANVIEN INNER JOIN HOADON ON NHANVIEN.MANV=HOADON.MANV WHERE HOTEN=’NguyenVanA’ AND NGHD=’10/10/2005’ Hoặc SELECT SOHD,TRIGIA FROM NHANVIEN, HOADON WHERE HOTEN=’NguyenVanA’ AND NGHD=’10/10/2005’ AND NHANVIEN.MANV=HOADON.MANV Viết bằng Đại số quan hệ: MANV ( NHANVIEN : (hoten =" NguyenVanA" ) HOADON : (nghd = #10 / 10 / 2005# ))[ sohd , trigia ] 6
- Phần 1: Đại số quan hệ Câu 2: In ra danh sách các sản phẩm (mã sản phẩm, tên sản phẩm) được khách hàng có tên “Nguyễn Văn A” mua Viết bằng SQL: SELECT Distinct SP.MASP,SP.TENSP FROM SANPHAM SP,CTHD CT,HOADON HD,KHACHTV KH WHERE SP.MASP=CT.MASP AND CT.SOHD=HD.SOHD AND KH.MAKH=HD.MAKH AND KH.HOTEN=‘NguyenVanA’ Viết bằng Đại số quan hệ: MASP SOHD ((( SANPHAM CTHD ) HOADON ) MAKH ( KHACHTV : (hoten =" NguyenVanA" )))[masp, tensp ] 7
- Phần 2: Đại số quan hệ Câu 3: Tìm các số hóa đơn đã mua cùng lúc 2 sản phẩm có mã số “SP01” và “SP02” Viết bằng SQL: SELECT SOHD FROM CTHD WHERE MASP=’SP01’ AND SOHD IN (SELECT SOHD FROM CTHD WHERE MASP=’SP02’) Viết bằng Đại số quan hệ: R1( SOHD) ← (CTHD : ( MASP =" SP 01" ))[SOHD] R 2( SOHD) ← (CTHD : ( MASP =" SP 02" ))[SOHD] KETQUA ← R1 ∩ R 2 8
- Phần 1: Đại số quan hệ Câu 4:In ra danh sách các sản phẩm không bán được trong năm 2005. SELECT MASP, TENSP Viết bằng SQL FROM SANPHAM WHERE MASP NOT IN ( SELECT DISTINCT MASP FROM CTHD,HOADON WHERE CTHD.SOHD=HOADON.SOHD AND R1 ← SANPHAM [ MASP, TENSP ] YEAR(NGHD)=2005) Viết bằng Đại MASP SOHD số quan hệ R 2 ← ( SANPHAM CTHD HOADON : ( year ( NGHD) = 2005))[ MASP, TENSP ] KETQUA ← R1 − R 2 9
- Phần 2: SQL Câu 1: Tìm số hoá đơn có trị giá cao nhất trong năm 2005. SELECT SOHD FROM HOADON WHERE YEAR(NGHD)=2005 AND TRIGIA = ( SELECT MAX(TRIGIA) FROM HOADON WHERE YEAR(NGHD)=2005 ) Hoặc SELECT SOHD FROM HOADON WHERE YEAR(NGHD)=2005 AND TRIGIA >= ALL ( SELECT distinct TRIGIA FROM HOADON WHERE YEAR(NGHD)=2005 ) 10
- Phần 2: SQL Câu 2: Tính tổng số lượng sản phẩm có mã số “SP01” bán ra trong tháng 10/2005. SELECT SUM(SL) as SLSP FROM CTHD, HOADON WHERE CTHD.SOHD=HOADON.SOHD AND MASP=’SP01’ AND NGHD between ’1/10/2005’ AND ’31/10/2005’ Hoặc: Year(NGHD)=2005 AND Month(NGHD)=10 11
- Phần 2: SQL Câu 3: Tính tổng số lượng bán ra trong tháng 10/2005 của từng sản phẩm. SELECT SANPHAM.MASP,TENSP, SUM(SL) FROM SANPHAM, CTHD, HOADON WHERE SANPHAM.MASP=CTHD.MASP AND CTHD.SOHD=HOADON.SOHD AND Year(NGHD)=2005 AND Month(NGHD)=10 GROUP BY SANPHAM.MASP,TENSP 12
- Phần 2: SQL Câu 4: Tìm sản phẩm có số lượng bán ra cao nhất trong ngày 10/10/2005. SELECT SANPHAM.MASP,TENSP, SUM(SL) as TONGSL FROM SANPHAM,CTHD, HOADON WHERE SANPHAM.MASP=CTHD.MASP AND CTHD.SOHD=HOADON.SOHD AND NGHD=’10/10/2005’ GROUP BY SANPHAM.MASP, TENSP HAVING SUM(SL) >= ALL ( SELECT SUM(SL) FROM CTHD, HOADON WHERE CTHD.SOHD=HOADON.SOHD AND NGHD=’10/10/2005’ GROUP BY MASP ) 13
- Phần 3: RBTV Câu 0: Khoá ngoại: các sản phẩm bán ra phải có trong danh mục các sản phẩm ∀c ∈ CTHD, ∃ s ∈ SANPHAM: c.MASP = s.MASP hoặc CTHD[MASP] ⊆ SANPHAM[MASP] Bối cảnh: CTHD, SANPHAM Bảng tầm ảnh hưởng: Thêm Xóa S ửa CTHD +(MASP) - + (MASP) SANPHAM - + - (*) 14
- Phần 3: RBTV Câu 1: Tất cả các sản phẩm có giá từ 1.000 trở lên Phát biểu: ∀s ∈ SANPHAM: s.GIA ≥ 1.000 Bối cảnh: SANPHAM Bảng tầm ảnh hưởng: Thêm Xóa S ửa SANPHAM +(GIA) - + (GIA) 15
- Phần 3: RBTV Câu 2: Ngày gia nhập của khách hàng thành viên phải lớn hơn ngày sinh của người đó Phát biểu: ∀k ∈ KHACHTV: k.NGGN> k.NGSINH Bối cảnh: KHACHTV Bảng tầm ảnh hưởng: Thêm Xóa S ửa KHACHTV + (NGGN, - + (NGGN,NGSINH) NGSINH) 16
- Phần 3: RBTV Câu 3: Những nhân viên cùng hệ số lương thì cùng mức lương ∀n1,n2 ∈ NHANVIEN: n1.HESO=n2.HESO -> (n1.MUCLUONG = n2.MUCLUONG) Bối cảnh: NHANVIEN Bảng tầm ảnh hưởng: Thêm Xóa S ửa NHANVIEN + - + (MUCLUONG,HESO) 17
- Phần 3: RBTV Câu 4: Ngày nhân viên bán hàng phải lớn hơn hoặc bằng ngày đầu tiên vào làm của nhân viên đó. ∀h ∈ HOADON, ∃ n ∈ NHANVIEN/ (h.MANV = n.MANV) ∧(n.NGVL
- Phần 3: RBTV Câu 5: Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn ∀h ∈ HOADON, ∃ c ∈ CTHD/ h.SOHD=c.SOHD Hoặc ∀h ∈ HOADON, Count(c.SOHD) >=1 với ∀c∈CTHD/ c.SOHD=h.SOHD Bối cảnh: HOADON, CTHD Bảng tầm ảnh hưởng: Thêm Xóa S ửa HOADON + - - CTHD - + + (SOHD) 19
- Phần 3: RBTV Câu 6: Doanh số của một khách hàng thành viên là tổng các trị giá hóa đơn mà khách hàng thành viên đó đã mua ∀k ∈ KHACHTV, k.DOANHSO= ∑(h.TRIGIA), ∀h∈HOADON/ h.MAKH=k.MAKH Bối cảnh: KHACHTV, HOADON Bảng tầm ảnh hưởng: Thêm Xóa S ửa HOADON + + + (MAKH,TRIGIA) KHACHTV + - + (DOANHSO) 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài tập về môn cơ sở dữ liệu
7 p | 1244 | 399
-
Bài tập về lý thuyết cơ sở dữ liệu
20 p | 585 | 238
-
Bài tập về quan hệ đại số
7 p | 931 | 108
-
Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ
30 p | 284 | 45
-
Bài giảng môn Cơ sở dữ liệu: Chương 4 - ĐH KHTN
0 p | 185 | 35
-
Bài giảng Ôn tập Cơ sở dữ liệu - ThS. Trần Sơn Hải
53 p | 126 | 21
-
Bài tập Cơ sở dữ liệu - Nguyễn Xuân Huy, Lê Hoài Bắc
134 p | 68 | 12
-
Bài giảng Cơ sở dữ liệu quan hệ: Chương 4 - ThS. Nguyễn Thị Tâm
60 p | 171 | 8
-
Bài giảng Cơ sở dữ liệu: Chương 4 - GV. Đỗ Thị Kim Thành
36 p | 73 | 8
-
Bài giảng môn Cơ sở dữ liệu: Chương 4 - Đại số quan hệ
67 p | 105 | 8
-
Bài tập thực hành cơ sở dữ liệu: Phần 2
96 p | 53 | 7
-
Bài giảng Cơ sở dữ liệu: Bài 4 - Trung tâm Athena
39 p | 102 | 5
-
Bài giảng Cơ sở dữ liệu: Chương 3 - Lê Thị Minh Nguyện
65 p | 61 | 5
-
Bài giảng Cơ sở dữ liệu: Chương 4 - Trịnh Xuân
8 p | 62 | 4
-
Bài giảng Cơ sở dữ liệu: Bài 4 - ThS. Vũ Văn Định
28 p | 33 | 3
-
Bài giảng Lý thuyết cơ sở dữ liệu - Chương 4: Đại số quan hệ
43 p | 77 | 3
-
Bài giảng Cơ sở dữ liệu: Chương 4 - ThS. Nguyễn Thị Như Anh
44 p | 28 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn