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 ….. 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
Trang 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
Trang 22 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:
Họ tên
Địa chỉ
II Tập thực thể sản phẩm bao gồm các thuộc tính:
Mã
Cấu hình
Trang 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:
Số lượng
Tổng giá
Mô hình hóa ER
Khách hàng
N
Cung cấp bởi
Quản lý
1
1
Nhà cung cấp
máy tính A
Quản lý
Trang 4Thiết kế vật lý:
Nhà cung cấp
Cung cấp
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á
Trang 5Từ 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;
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)
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:
Sản Phẩm :
Hình
Giá Nhập
Giá bán Đặc
Điểm
Nhà Cung Cấp
Tình Trạng Nhà Cung Cấp:
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
Trang 6VI 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
Trang 7a Đầ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
Trang 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}
Trang 93 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
Trang 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
Trang 119 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