BÁO CÁO
MÔN : CƠ SỞ DỮ LIỆU Họ và tên: Vũ Đức Trọng
Lớp: D10CN1
I. Mô tả bài toán.
Bài toán đặt ra là quản lý bán hàng của doanh nghiệp. các vấn đề trong
phạm vi quản lý bao gồm: nhà cung cấp, sản phẩm, hóa đơn, dòng sản
phẩm và khách hang. Thông qua đó có thể lập các hóa đơn. Từ các hóa
đơn có thể tìm thấy thông tin về sản phẩm, nhà cung cấp và khách hang
cũng như giá cả và thông tin cần thiết khác.
Các thông tin về khách hàng cần nắm được họ tên, địa chỉ, số điện thoại.
Thông tin về nhà cung cấp bao gồm tên hãng, địa chỉ lien hệ, số điện
thoại.
Thông tin sản phẩm phải nắm được là mô tả sản phẩm, ngày nhập về,
ngày giao cho khách hàng, giá bán sản phẩm, nhà cung cấp sản phẩm .
Thông tin về hóa đơn bao gồm khách hàng mua, ngày mua và các sản
- giá
- sản phẩm
d. Sản phẩm:
Thực thể sản phẩm lưu thông tin về các mặt hàng, bao
gồm các thuộc tính như
- mã
- Tên
- Giá bán
- Giá nhập
- Nhà cung cấp
- Tình trạng
III. Mô hình E-R
Mã
Tình trạngGiá
Số lượng
Địa chỉ
Họ tên
Sđt
Tên
Mã
Tình trạng
Của
1
N
N
N
N
1
IV.Chuyển đổi từ mô hình E-R sang mô hình lược đồ quan hệ Khách hàng Nhà cung cấp
Sản phẩm
ngày
Tên khác hàng
V . 10 câu truy vấn
S = Khách mua hàng (s#, Tên, Tuoi,SDT, Nghề nghiệp)
C =Hợp đồng(c#, Số lượng, Thời gian)
P = Sản phẩm(p#, Giá cả, Địa chỉ,điều kiện)
T= nhà cung cấp(p#,s#,Tên,SDT,Đia chi) Ví dụ truy vấn 1:. Tìm tên của tất cả các khách mua hàng hiện đang la sinh
viên . Cách tiếp cận truy vấn này như sau:
- Đầu tiên chọn tất cả các khách mua hàng nghề nghiệp:SV
r =
(nghề nghiệp=SV)
(S)
- Tiếp đến chiếu kết quả trên lên thuộc tính Họ Tên:
result =
( Tên)
(r)
Biểu thức truy vấn hoàn chỉnh là:
result =
(Tên)
(
(nghề nghiệp=SV)
(S))
Ví dụ truy vấn 2: Tìm số hiệu khách mua hàng s# và tên của tất cả các
khách hàng được trên 7 tháng. Cách tiếp cận truy vấn này như sau:
- Đầu tiên chọn tất cả khách hàng đã mua được trên 7 tháng
r =
Ví dụ truy vấn 4: Tìm mã của tất cả các khách hàng ở khu vực Ba Đình-Hà
Nội hoặc khu vực Hà Đông-Hà Nội. Cách tiếp cận truy vấn này như sau:
- Đầu tiên lựa chọn tất cả các khách hàng ở Ba Đình-HN hoặc ở Hà
Đông-HN
r =
((Địa chỉ=Ba Đình-HN) or (Địa chỉ=Hà Đông-HN))
(P))
- Tiếp đó chiếu kết quả trên lên thuộc tính tên
result =
(Mã)
(r)
Biểu thức truy vấn hoàn chỉnh là:
result =
(Mã)
(
(( Địa chỉ=Ba Đình-HN) or (Địa chỉ=Hà Đông-HN))
(P))
Ví dụ truy vấn 5: Tìm mã của tất cả các sản phẩm đã được mua vào tháng 8
năm 2010 . Cách tiếp cận truy vấn như sau:
Biểu thức truy vấn hoàn chỉnh là:
result =
(P.Mã)
(
((Thời gian mua hàng=Thang 8 nam 2010)
(P S))
Ví dụ truy vấn 6: Tìm tên của tất cả các sản phẩm đã mua cùng vao tháng 2
Ví dụ truy vấn 9:Tìm tất cả mã của các nhà cung cấp ma có địa chỉ ơ Từ
Liêm-Hà Nội hoặc số lượng sản phẩm trên 1000.
[
(T#)
(
(Địa Chỉ=Từ Liêm-Hà Nội)
(T))] [
(T#)
(
(gi>1000)
(T))]
Ví dụ truy vấn 10:Liệt kê tên của các nhà cung cấp mà có giá sản phẩm có
giá 2 triệu.
VI. Các Phụ thuộc hàm F trên từng lược đồ
1.Xác định các phụ thuộc hàm:
- Lược đồ quan hệ khách hàng:Ω={HT,ĐC,SĐT#}
Trong đó: HT:họ tên
))))(()(((
)2()#()#,#().(
pTs
trieuGiácppsTênT
))((
)51(
SĐT#
ĐC
HT
SĐT#
HT
*Chuẩn hóa về dạng 3NF.
-Lược đồ quan hệ nhà cung cấp: Ω={TEN,ĐC,SĐT #,SP,GIA}
Trong đó:
+TEN:tên nhà cung cấp
+ĐC:địa chỉ của nhà cung cấp
+SĐT#: số điện thoại (thuộc tính khóa)
+SP:sản phẩm cung cấp
+GIA:giá của sản phẩm
Tập các phụ thuộc hàm:F={TEN->(ĐC,SĐT#),SP->GIA}
*Chuẩn hóa 3NF.
TEN
GB
TEN
ĐC
SĐT#
SP
GIA *Chuẩn hóa về 3NF VII. 10 câu truy vấn trong mySQL
Câu 1: Tìm tên của tất cả các khách hàng ở hà nội
SELECT TenKH
FROM Khachhang
WHERE Địa chỉ=Hà nội
Câu 2:Tìm số hiệu khách hàng s# và tên của tất cả các khách hàng đã mua hơn 10 hóa đơn:
SELECT Số hiệu khách hàng, TênKH
FROM Khachhang
WHERE Số lượng hóa đơn
Câu 3: Tìm tên của tất cả các khách hàng dưới 20 tuổi mà đã mua nhiều hơn 50 hóa đơn
SELECT TênKH
FROM Khachhang
WHERE Soluonghoadon > 50 AND Tuoi < 20
Câu 8: Tìm loại sản phẩm có giá từ 300000-700000
SELECT LoaiSP
FROM SanPham
WHERE GiaSP>=300000 AND GiaSP<=700000
Câu 9: Tìm tên của tất cả các khách hàng là nam sinh trước năm 1970
SELECT TenKH
FROM Khachhang
WHERE Gioitinh=1 AND year(Ngaysinh)<1970
Câu 10:Tìm tên của tất cả các khách hàng là nữ sinh từ năm 1960-1980
SELECT TenKH
FROM Khachhang
WHERE WHERE Gioitinh = 0 AND
YEAR(Ngaysinh) BETWEEN 1960 AND 1980