1
* * *
BÁO CÁO
Môn : Cơ Sở Dữ Liệu
Đề tài: Ứng dụng MySQL trong xây dựng hệ Cơ Sở Dữ Liệu quản lí bán máy tính
của cửa hàng.
Họ tên: Phạm Đức Mạnh
Lớp: D10CN1
Ý tưởng:
Cửa hàng A chuyên cung cấp cho thị trường các loại máy tính (PC,
LAPTOP). Do công việc kinh doanh ngày càng phát triển hơn do nhu cầu của
khách hàng ngày càng cao, họ có nhu cầu xem thông tin sản phẩm trước rồi mới
quyết định mua hay không. Sản phẩm máy tính gồm các yếu tố mà khách quan
tâm: Tên máy, hãng, cấu hình, màu sắc, giá bán …. Và còn hay hết hàng.
Chủ cửa hàng đang tính toán để đưa ra chiến lược kinh doanh phù hợp nhằm
phục khách hàng một cách nhanh mà vẫn đảm bảo các yếu tố khác. Sau đó mới
liên lạc với cửa hàng để hỏi cụ thể hơn và đặt mua sản phẩm. Nhằm hạn chế sự quá
tải của bộ phận tư vấn điện thoại viên.
Bước 1. Xác định yêu cầu bài toán:
Bài toán đưa ra yêu cầu xây dựng cơ sở dữ liệu quản lí sản phẩm mặt hàng máy
tính của cửa hàng A, hiển thị ra dưới dạng một trang web động gồm hai phần:
I. Phần dành cho người quản trị cơ sở dữ liệu để có thể nhập sản phẩm, chủng loại
sản phẩm máy tính lên cho khách hàng xem trực tuyến, cập nhật những thông
tin thay đổi nếu sản phẩm có thay đổi về giá, tình trạng của sản phẩm, quản lý
các đơn hàng khách hàng đã đặt hàng, mua hàng.
II. Phần hiển thị ra bên ngoài cho khách hàng xem, có quyền tạo đơn đặt hàng.
Trong cơ sở dữ liệu cần lưu trữ:
1. Khách hàng: bao gồm mã khách hàng, họ tên, địa chỉ, số điện thoại.
2
2. Sản phẩm: bao gồm mã sản phẩm, tên sản phẩm, cấu hình,giá nhập, giá bán,
màu sắc, nhà cung cấp, tình trạng của sản phẩm( còn hàng, hết hàng, hay sắp
sửa có hàng)
3. Nhà cung cấp: bao gồm tên nhà cung cấp, địa chỉ, số điện thoại, giá nhập.
4. Hóa đơn: bao gồm mã hóa đơn, ngày mua, mã khách hàng, tên khách hàng,
mã sản phẩm, tên sản phẩm, số lượng, giá cả và tình trạng của hóa đơn( đơn
đặt hàng, đã thanh toán hay hoàn thành).
Cơ sở dữ liệu được xây dựng bằng hệ quản trị cơ sở dữ liệu MySQL, trong đó
các thao tác dữ liệu được sử dụng thường xuyên là:
Đối với người quản trị: Thêm, bớt, sửa thông tin sản phẩm; tìm kiếm thông
tin sản phẩm theo mã, tên, đặc điểm, giá bán, tình trạng( còn hàng hay hết
hàng) ; kiểm tra tình trạng hóa đơn, tìm kiếm hóa đơn theo mã, tên khách
hàng, tên sản phẩm, ; biết được sản phẩm nào được ưa chuộng, thị hiếu của
khách hàng,
Đối với khách hàng: Tìm kiếm thông tin sản phẩm theo mã, tên, hãng, cấu
hình, đặc điểm, giá bán, tình trạng( còn hàng hay hết hàng) và tạo đơn đặt
hàng.
Bước 2. Thiết kế mô hình thực thể quan hệ
I. Tập thực thể khách hàng gồm các thuộc tính:
Mã KH
Họ tên.
Địa chỉ.
Sđt.
II. Tập thực thể sản phẩm bao gồm các thuộc tính:
Mã.
Tên.
Cấu hình
Giá nhập.
Giá bán.
Đặc điểm.
Nhà cung cấp
3
Tình trạng.
III. Tập thực thể nhà cung cấp bao gồm các thuộc tính:
Tên nhà sản xuất.
Địa chỉ.
SĐT
IV. Tập thực thể hóa đơn bao gồm các thuộc tính:
Mã hóa đơn.
Mã SP
Mã KH
Mã sản phẩm.
Tên sản phẩm.
Số lượng.
Nhà cung cấp.
Đơn giá
Tổng giá
Mô hình hóa ER
1 N N
Ký
Hóa đơn
Sản phẩm
Khách hàng
N
N
N
N
Cung cấp bởi
Quản lý
1
1
Nhà cung cấp
1
Cửa hàng
máy tính A
Quản lý
4
Thiết kế vật lý:
V. Mô hình quan hệ:
Nhà cung cấp
Cung cấp
Tên
Địa
chỉ
Sđt
1
Khách hàng
Sản phẩm
Hóa đơn
Giá nhập
Gồm
Mã SP
Mã KH
Giá
Số lượng
Họ Tên
Mã KH
Địa Chỉ
Tên
Mã
Tình trạng
Của
N
N
N
N
1
Giá bán
Cấu Hình
Đặc điểm
SĐT
Tổng Giá
5
Từ mô hình E-R ta xây dựng mô hình quan hệ theo các bước:
1. Chuyển các thực thể thành các quan hệ tương ứng;
Khách hàng (Mã KH, Họ tên, Địa chỉ, SĐT)
Sản phẩm ( Mã, Tên, Cấu hình, Giá nhập, Giá bán, Đặc điểm,
Nhà cung cấp, tình trạng)
Nhà cung cấp (Tên nhà SX, Địa Chỉ, SĐT)
Hóa đơn ( Mã hóa đơn, Mã SP, Mã KH, Số Lượng, Nhà cung
cấp, Đơn giá, Tình trạng, Tổng giá)
2. Chuyển đổi các mối quan hệ:
Khách Hàng có thể có nhiều Hóa Đơn : Đưa Mã KH làm ngoại khóa
trong Hóa Đơn.
Hóa Đơn có thể có nhiều Sản Phẩm : Đưa Mã SP làm ngoại khóa ở
Hóa Đơn
Nhà Cung Cấp cung cấp nhiều Sản Phẩm khác nhau : Đưa Tên Nhà
SX làm ngoại khóa.
Kết quả thu được : Lược đồ quan hệ:
Khách Hàng:
Mã KH
Tên KH
Địa Chỉ
SĐT
Sản Phẩm :
Mã SP
Tên
Cấu
Hình
Giá
Nhập
Giá bán
Đặc
Điểm
Nhà
Cung
Cấp
Tình
Trạng
Nhà Cung Cấp:
Tên Nhà SX
Địa Chỉ
SĐT
Hóa Đơn :
Mã HĐ
Mã KH
Mã
SP
Số
Lượng
Nhà Cung
Cấp
Đơn
Giá
Tình
Trạng
Tổng
Giá
Biểu thức các mối quan hệ đại số - Lược đồ quan hệ trên My SQL
6
VI. Thực hiện 10 thức truy vấn bằng đại số quan hệ:
1. Tìm tất cả các laptop cùng hãng SONY- VAIO
result =
(tên)
(
(Hãng = “Sony - VAIO”)
(lt))
2. Tìm tất cả các máy tính sản xuất tại Việt Nam:
result =
(tên)
(
(Nơi SX = “Việt Nam”)
(mt))
3. Tìm #mã và tên sản phẩm của hãng SONY- VAIO
result =
(t#Mã,tên)
(
(Hãng = “Sony - VAIO”)
(lt))
4. Tìm tên các máy có giá 20.000.000đ
result =
(tên)
(
(Giá = “20.000.000đ”)
(G))
5. Tìm tên các máy có giá 20.000.000đ của hãng SONY- VAIO
result =
(tên)
(
(Giá = “20.000.000đ”)
AND
(“Hãng”= SONY VAIO”)
(G))
6. Tìm tên tất cả các máy có giá 15.000.000đ mà đã bán được hơn 20
chiếc.
7
a. Đầu tiên chọn tất cả các máy bán được trên 20 chiếc và có giá là
15.000.000đ.
r =
((Bán được > 20) AND (Giá = 15.000.000đ))
(S)
b. Tiếp đến chiếu kết quả trên lên thuộc tính tên máy tính.
result =
(name)
(r)
c. Biểu thức truy vấn hoàn chỉnh là:
result =
(name)
(
((Bán được > 20) AND (Giá = 15.000.000))
(S))
7. Tìm tên tất cả các máy có của hãng HP hoặc ASUS sản xuất.
a. Đầu tiên lựa chọn tất cả máy được hãng ASUS hoặc HP sản xuất
r =
((Hãng SX = HP) or (Hãng SX = ASUS))
(C))
b. Tiếp đó chiếu kết quả trên lên thuộc tính tên
result =
(name)
(r)
c. Biểu thức truy vấn hoàn chỉnh là:
result =
(name)
(
((Hãng SX =HP) or (Hãng SX = ASUS))
(C))
8. Tìm tất cả các máy tính của hãng HP được trong đợt KM lần I của Cửa
hàng.
a. Đầu tiên lựa chọn tất cả các máy được hưởng KM trong đợt KM
lần I của hãng HP
r =
((Hãng SX = HP) AND (Đợt KM = I))
(C))
b. Tiếp đó chiếu kết quả trên lên thuộc tính tên
result =
(name)
(r)
c. Biểu thức truy vấn hoàn chỉnh là:
result =
(name)
(
((Hãng SX = HP) AND (Đợt KM = I))
(C))
9. Tìm tên tất cả máy tính có giá hơn 20.000.000đ hoặc của hãng HP sản
xuất.
Biểu thức truy vấn hoàn chỉnh là:
result = [
(name)
(
(Hãng SX = HP
(G))] [
(name)
(
(Giá bán >
20.000.000đ)
(P))]
hoặc
result =
(name)
(
((Hãng SX = HP) OR (Giá bán> 20.000.000đ))
(P))
10. Tìm #mã và tên sả phẩm đã bán được hơn 50 chiếc, hoặc được SX bởi
HP
8
result =
(t#Mã,tên)
(
(Bán được > 50chiếc) OR
(Hãng = “HP”)
(lt))
VII. Xác định các phụ thuộc hàm F trên từng lược đồ quan hệ và đưa về dạng
chuẩn 3 (3NF):
1. Xét quan hệ
Khachhang(MaKH(A), TenKH(B), Diachi(C), Sodt(D))
Với tập các phụ thuộc hàm F1={ABCD} và tập khóa K1={A}
Không có thuộc tính không khóa nào (B,C,D) phụ thuộc bắc cầu vào
khóa A
Quan hệ Khachhang ở dạng 3NF.
2. Xét quan hệ
SanPham (MaSP(A), TenSP(B), CauHinh(C), GiaNhap(D), GiaBan(E),
DacDiem(F), NhaCungCap(G), TinhTrang(H))
Với tập phụ thuộc hàm F2={AB,BC,BE} và tập khóa K2={A,B}
Thuộc tính không khóa C phụ thuộc bắc cầu vào thuộc tính khóa A.
Do đó, quan hệ SanPham không ở dạng 3NF.
Đưa về dạng 3NF
Quan hệ Phong được tách thành 2 quan hệ con
SanPham_a(AB) khóa A , phụ thuộc hàm Fa={AB}
SanPham_b(BC) khóa B , phụ thuộc hàm Fb={BC}
SanPham_c(BE) khóa B , phụ thuộc hàm Fc={BE}
9
3. Xét quan hệ
NhaCungCap(TenNhaSX(A), DiaChi(B),SDT(C))
Với tập các phụ thuộc hàm F3={ABC} và tập khóa K3={A}
Không có thuộc tính không khóa nào (B,C) phụ thuộc bắc cầu vào
khóa A
Quan hệ NhaCungCap ở dạng 3NF.
4. Xét quan hệ
HoaDon(MaHD(A), MaKH(B), MaSP(C), SoLuong(D), NhaCungCap(E),
DonGia(F), TongGia(G))
Với tập phụ thuộc hàm F4={AB,C,E,F,G} và tập khóa K5={A}
Không có phụ thuộc hàm bắc cầu trong quan hệ này.
Do đó, quan hệ HoaDon ở dạng chuẩn 3(3NF)
VIII. Thực hiện 10 câu truy vấn bằng ngôn ngữ SQL
1. Tìm tất cả các laptop cùng hãng SONY- VAIO
SELECT Ten
FROM LapTop
WHERE HangSX = SONY - VAIO
2. Tìm tất cả các máy tính sản xuất tại Việt Nam:
SELECT Ten
FROM MayTinh
WHERE NoiSX = VietNam
3. Tìm #mã và tên sản phẩm của hãng SONY- VAIO
SELECT #Ma, Ten
10
FROM MayTinh
WHERE HangSX = SONY - VAIO
4. Tìm tên các máy có giá 20.000.000đ
SELECT Ten
FROM MayTinh
WHERE Gia = 20.000.000đ
5. Tìm tên các máy có giá 20.000.000đ của hãng SONY- VAIO
SELECT Ten
FROM MayTinh
WHERE Gia = 20.000.000đ AND HangSX = SONY - VAIO
6. Tìm tên tất cả các máy có giá 15.000.000đ mà đã bán được hơn
20 chiếc.
SELECT Ten
FROM MayTinh
WHERE Gia = 15.000.000đ AND BanDuoc > 20
7. Tìm tên tất cả các máy có của hãng HP hoặc ASUS sản xuất.
SELECT Ten
FROM MayTinh
WHERE Gia = 20.000.000đ
8. Tìm tất cả các máy tính của hãng HP được trong đợt KM lần I
của Cửa hàng.
o SELECT Ten
o FROM MayTinh
o WHERE DotKM = I AND HangSX = HP
11
9. Tìm tên tất cả máy tính có giá hơn 20.000.000đ hoặc của hãng
HP sản xuất.
SELECT Ten
FROM MayTinh
WHERE Gia > 20.000.000đ OR Hang = HP
10. Tìm #mã và tên sả phẩm đã bán được hơn 50 chiếc, hoặc được
SX bởi HP
SELECT #Ma, Ten
FROM MayTinh
WHERE BanDuoc > 50 OR Hang HP