Nếu chúng ta có một phương pháp để cắt một bảng lớn như thế thành các bảng nhỏ hơn và nhờ đó có thể loại bỏ được những vấn đề này, cơ sở dữ liệu sẽ hiệu quả và đáng tin cậy hơn.. Các [r]
(1)bi 1: Q(A,B,C,D,E,G) F={AB?C;C?A;
BC?D;ACD?B;D?EG;BE?C;CG?BD;CE?G} xác định dạng chuẩn của lược đồ quan hệ Q.
bi 2: Cho F={AB?E,AG?I,BE?I,E?G,GI?H}.
Hãy chứng tỏ phụ thuộc hàm AB?GH được suy diễn từ F nhờ
luật dẫn Armstrong
(2)I. DẠNG CHUẨN (NORMAL FORM)
1. Đặt vấn đề
Cho lược đồ CSDL C có lược đồ quan hệ Q tập phụ thuộc hàm F.
Trong thực tế ứng dụng phân tích, thiết kế thành nhiều lược dồ CSDL khác tất nhiên chất lượng thiết kế các lược đồ CSDL khác nhau.
Chất lượng thiết kế lược đồ CSDL đánh giá dựa tiêu chuẩn sau: trùng lắp thông tin, chi phí kiểm tra ràng buộc tồn vẹn,
CHƯƠNG 6:
(3)Ví dụ: Ngọc An 21/8/05 Nha Trang Nguyễn Mai 1865 Máy hút bụi
Thanh Hà 20/8/05
Quảng Ngãi Lê Thái Hòa
1817 Máy CD Thuận Thành 22/7/05 Lâm Đồng Dương Khang 519 Ti vi Liên Bình 12/4/05 Hà nội Nguyễn Thị Lan
2460 Tủ lạnh Mỹ An 12/9/05 TP.HCM Hồng Dung 2730 Máy vi tính
Ngọc An 7/5/05
Đà Nẵng Hoàng Ngọc
1458 Máy hút bụi
(4)- Sự trùng lắp thông tin nhiều tốn khơng gian lưu trữ - Khi tìm kiếm tốn thời gian
- Khi xóa khách hàng xóa địa chỉ, điện
thoại.
(5)Nếu có phương pháp để cắt bảng lớn thế thành bảng nhỏ nhờ loại bỏ được vấn đề này, sở liệu hiệu đáng tin cậy Các lớp lược đồ sở liệu quan hệ hoặc định nghĩa bảng, gọi dạng chuẩn
(normal form), thường sử dụng để đạt mục
tiêu Quá trình tạo bảng liệu đạt dạng chuẩn gọi q trình chuẩn hóa (normalization) Q trình thực cách phân tích phụ
thuộc qua lại thuộc tính kèm với bảng này chiếu (trên tập cột) bảng lớn để
(6)WHERE matho NOT IN
(SELECT matho
FROM hop_dong INNER JOIN chitiet_HD ON hop_dong.sohd = chitiet_HD.sohd
WHERE ng_ngthu > date() OR ISNULL(ng_ngthu))
b)SELECT sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu
FROM hop_dong
WHERE ng_giao_dk <= DATE() AND (TRIGIAHD >
(SELECT SUM(SOTIENTHU) FROM phieu_thu
WHERE phieu_thu.sohd = hop_dong.sohd) OR sohd Not In (Select sohd
From phieu_thu))
c)SELECT sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu
FROM hop_dong
WHERE ng_giao_dk > #12/21/95# AND ng_giao_dk <= #12/31/95# d)SELECT chitiet_hd.matho,tentho,COUNT(macv) AS soluongcv
FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho
GROUP BY chiTiet_hd.matho,tentho
HAVING COUNT(macv) >= ALL (SELECT COUNT(macv) FROM
(7)e SELECT chiTiet_hd.matho,tentho,SUM(trigia_cv) AS congtrigia_cv
FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho
GROUP BY chiTiet_hd.matho,tentho
HAVING SUM(trigia_cv) >= ALL (SELECT SUM(trigia_cv) FROM