- DOUBLE PRECISION FLOAT, FLOAT(p)
7/ Truy vấn: select, Hàm kết hợp và gom nhóm
-Liệt kê ds tên môn giảm dẫn, điểm thi nhỏ nhất -Liệt kê họ tên sv, điêm chuẩn lớn nhất
-Liệt kê ho tên sv, tổng điểm sinh viên -Có bao nhiêu thí sinh.
-Liệt kê họ tên sv, tổng điểm sv với tổng điểm >=15 8/ Truy vấn lòng:
- So sánh điểm chuẩn tất cả khối thi lớn hơn điểm chuẩn của mã khối 7a1 ( có điểm chuẩn 11)khơng ? (>)
- Liệt kê tenkhoi, diemchuan lớn nhất trong ds khoi thi không(=) - Tìm những thí sinh khơng có thi(not in)
53 Bài giảng csdl 60
Bài 5.2: Sử dụng ngôn ngữ SQL (trên access):Qlhoadon PHIEUXUAT(SOPX,NGAYXUAT) CTPHIEUXUAT(SOPX,MAVTU,DGXUAT,SLXUAT) VATTU(MAVT,TENVT) CTPHIEUNHAP(MAVT,SPPN,DGNHAP,SLNHAP) PHIEUNHAP(SOPN,NGAYNHAP) DONDH(SODH,NGAYDH,MAVT,MANCC) NHACC(MANCC,TENNCC,DIACH,SĐT) Yêu cầu: 1/ Tạo bảng
2/ Thêm, xóa cột trong bảng : thêm 2 trƣờng mới vào bảng NHACC,VATTU ; xóa 1 trƣờng bảng PHEUNHAP.
3/ Xóa 7 bảng ; sao đó tạo lại
4/ Thêm(insert) 2 dòng dữ liệu vào 7 bảng.
5/ sửa (update) 2 dịng bất kỳ trong bảng NHACC , detele (xóa )1 dịng bất kỳ bảng DONDH
6/ Truy vấn: select
-Liệt kê tên vt, slxuat, ngày xuất
-Liêt kê tên vt, sl nhập, ngày nhập với sl nhập <=20
-Liệt kê ten ncc, đia chỉ nha cc, sĐT nha cc với đk địa chỉ là lai vung -Liệt kê tên vt, ngay DH, tenncc.
-Liệt kê tenvt, thành tiền: slxuat*ngay xuất
7/ Truy vấn: select, Hàm kết hợp và gom nhóm
-Liệt kê tenvt, ngày xuất, slxuat lớn nhất -Liệt kê tenvt, ngày nhập, slnhap nhỏ nhất -Có bao nhiêu vật tƣ trong bảng vật tƣ
54 Bài giảng csdl 60
BÀI THỰC HÀNH SỐ 5 (3 giờ, 1 kiểm tra) (Chƣơng 6: Chuẩn hóa CSDL)
Bài 6.1
Ví dụ: yêu cầu: thiết kế CSDL quản lí cửa hàng thuốc cần các thơng tin sau:
DB(Mã hóa đơn, Ngày bán, Tổng tiền Hóa đơn, Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng, Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT Nhân viên (Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD, Số lƣợng, Thành tiền)).
Các phụ thuộc hàm:
Mã hóa đơn, Mã khách hàng, Mã nhân viên, Mã thuốc, xác định duy nhất 1 hóa đơn, 1 khách hàng, 1 NV, 1 loại thuốc.
Một hóa đơn có thể có nhiều thuốc nhƣng chỉ do một ngƣời mua và một nhân viên bán. Số CMT của NV-> Tên NV, Địa chỉ NV.
1NF - Loại bỏ nhóm lặp và loại bỏ các thuộc tính tính tốn.
Cần loại 2 thuộc tính tính tốn sau: Tổng tiền hóa đơn và thành tiền. Vì đây chính là dữ liệu dƣ thừa.
1. Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng,
Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
2. Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Tên thuốc, Cơng dụng, Ngày SX, Hạn SD,
Số lƣợng)
2NF - Loại bỏ các phụ thuộc hàm khơng hồn tồn vào khóa chính
Quan hệ Hóa đơn chỉ có khóa đơn nên quan hệ này đã ở 2NF.
Xét quan hệ Hóa đơn - Thuốc : Tên thuốc, Công dụng, Ngày SX, Hạn SD chỉ phụ thuộc vào Mã thuốc mà khơng phụ thuộc vào tồn khóa nên quan hệ này đƣợc tách làm 2 quan hệ sau:
Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng)
Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD)
Nhƣ vậy, ở dạng 2NF ta có 3 quan hệ:
1. Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng,
Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
2. Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng)
3. Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD)
3NF - Loại bỏ các phụ thuộc hàm bắc cầu vào khóa chính
Ở quan hệ Hóa đơn, ta thấy Tên Khách hàng, Số ĐT Khách hàng chỉ phụ thuộc Mã khách hàng. Số CMT của NV, Tên NV, Địa chỉ NV chỉ phụ thuộc mã nhân viên. Do đó tách quan hệ này thành 3 quan hệ sau:
Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)
Khách hàng(Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng)
Nhân viên(Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
Nhƣ vậy, ở 3NF, chúng ta có 5 quan hệ sau:
1. Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)
55 Bài giảng csdl 60
3. Nhân viên(Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
4. Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng)
5. Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD)
BCNF - Các thuộc tính quyết định phải là khóa
Ở quan hệ Nhân viên, ta thấy Số CMT của NV-> Tên NV, Địa chỉ NV nhƣng Số CMT của Nhân viên khơng quyết định Số ĐT NV (Nhân viên có thể có nhiều số ĐT nhƣ số cầm tay, số nhà, số cơ quan, …). Nhƣ vậy, vì Số CMT của NV là một thuộc tính quyết định (determinant) nhƣng khơng phải khóa nên quan hệ Nhân viên chƣa đạt BCNF, cần phải tách thành 2 quan hệ nhƣ sau:
Điện thoại - Nhân viên(Mã Nhân viên, Số CMT của NV, Số ĐT NV)
Nhân viên(Số CMT của NV, Tên NV, Địa chỉ NV)
Vậy, CSDL của chúng ta ở BCNF gồm 6 quan hệ sau:
1. Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)
2. Khách hàng(Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng)
3. Điện thoại - Nhân viên(Mã Nhân viên, Số CMT của NV, Số ĐT NV)
4. Nhân viên(Số CMT của NV, Tên NV, Địa chỉ NV)
5. Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng)