Tải bản đầy đủ (.pdf) (15 trang)

Bài tập lớn môn cơ sở dữ liệu Báo cáo thực hành môn cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (303.18 KB, 15 trang )

Học Công Nghệ Bưu Chính Viễn Thông

Báo cáo thực hành

Môn: Cơ sở dữ liệu



Họ và tên:Nguỵ Đình Huy
Lớp D10CN1
Mã sinh viên:1021040029

1.Mô tả bài toán
:
Vấn đề đặt ra là quản lý bán hàng trong siêu thị điện máy. Phạm vi quản lý bao gồm
nhân viên, khách hàng, nhà sản xuất, mặt hàng, hoá đơn bán hàng.
Thông tin về nhân viên bao gồm họ tên, địa chỉ, mức lương, mã nhân viên, vị trí công
tác. Quản lý họ có 1 người trưởng bộ phận bán hàng(manager), và họ cũng là nhân viên.
Thông tin về khách hàng bao gồm họ tên, địa chỉ, số điện thoại và số dư tài khoản
Thông tin về nhà sản xuất bao gồm các thuộc tính như tên nhà cung cấp, địa chỉ, số
điện thoại, tình trạng sản xuất, các mặt hàng cung cấp(có thể ko có mặt hàng nào).
Thông tin về mặt hàng bao gồm mã mặt hàng, tên mặt hàng, giá cả, tên nhà cung cấp,
tình trạng hàng trong kho(còn hay đã hết). Một mặ hàng có thể có nhiều nhà cung cấp
và một nhà cung cấp có thể có nhiều mặt hàng.
Thông tin về hoá đơn bán hàng tên khách mua, tên các sản phẩm mua, tổng giá thành.
2.Xác định các đối tượng thực thể
Bài toán quản lý bán hàng trong siêu thị điện máy bao gồm các thực thể
*Khách hàng:
Các thuộc tính:
-Tên
-Địa chỉ


-Số điện thoại
-Giới tính
-Năm sinh
*Nhân viên:
Các thuộc tính:
-Tên
-Địa chỉ

-Mã nhân viên
-Chức vụ
*Nhà sản xuất
Các thuộc tính:
-Tên nhà sản xuất
-Số lượng sản phẩm
-Số điện thoại
-Tên mặt hàng
*Sản phẩm
Các thuộc tính:
-Mã sản phẩm
-Tên sản phẩm
-Giá cả
-Tên nhà sản xuất
*Hoá đơn
Các thuộc tính:
-Tên khách mua
-Tên sản phẩm mua
-Mã hoá đơn
-Số lượng sản phẩm mua

Nhân viên

3.Mô hình quan hệ E-R




Khách hàng

Nhà s

n xu

t

Sản phẩm
Hoá đơn
TenNV

DC

MaNV
Ch
ucvu

TenKH
PhoneNumb
er
MaKH

Gi
oiTinh


Bán cho
MaSP

TenSP

Gia

SanphamNS
X
TenNSX


SoluongSP

TenSP

NumberNSX

TenKHHD

TenSPHD

MaHD

la
m
Ghi
Mua
has


N
amSinh

SoLuo
ngHD
4.Chuyển đổi mô hình thực thể liên kết sang mô hình quan hệ
Bước 1: Ánh xạ các thực thể thông thường
Quan hệ Khách hàng:
Họ tên Số điện thoại Số dư tài khoản Địa chỉ

Quan hệ Sản phẩm
Mã sản phẩm Tên sản phẩm Giá cả Tên nhà sản xuất

Quan hệ Nhà sản xuất
Số Điện thoại Tên mặt hàng Địa chỉ Tên nhà sản xuất

Quan hệ Nhân viên
Chức vụ Địa chỉ Tên Mã nhân viên

Quan hệ Hoá đơn
Mã hoá đơn Tên khách mua Tên sản phẩm

Bước 2: Ánh xạ thực thể yếu
Bước 3:Ánh xạ các quan hệ 2 ngôi
-Ánh xạ quan hệ 1 chiều
Nhân viên
Chức vụ Địa chỉ Tên Mã nhân viên

Nhà sản xuất

Số điện thoai Tên mặt hàng Địa chỉ Tên nhà sản xuất

Sản phẩm
Mã sản phẩm Tên sản phẩm Giá cả Tên nhà sản xuất

Nhà sản xuất
Số điện thoại Tên mặt hàng Địa chỉ Tên nhà sản xuất

Ánh xạ quan hệ nhiều chiều
Nhân viên
Chức vụ Địa chỉ Tên Mã nhân viên

Khách hàng
Họ tên Số điện thoại Số dư tài khoản Địa chỉ

Nhà sản xuất
Số điện thoại Tên mặt hàng Địa chỉ Tên nhà sản xuất

Khách hàng
Họ tên Số điện thoại Số dư tài khoản Địa chỉ

Ánh xạ quan hệ 1-1
Khách hàng
Họ tên Số điện thoại Số dư tìa khoản Địa chỉ

Hoá đơn
Tổng giá thành Tên khách mua Tên sản phẩm

Bước 4: Ánh xạ các thực thể liên kết
Trường hợp ko được gắn định danh

Nhà sản xuất
Số điện thoai Tên mặt hàng Tên địa chỉ Tên nhà sản xuất

Hoá đơn
Tổng giá thành Tên khách mua Tên sản phẩm

Bước 5: Ánh xạ các quan hệ 1 ngôi
Ánh xạ đệ quy loại 1 nhiều
Nhân viên
Chức vụ Địa chỉ Tên Mã nhân viên

Sản phẩm
Mã sản phẩm Tên sản phẩm Giá cả Tên nhà sản xuất

Nhà sản xuất
Số điện thoại Tên mặt hàng Địa chỉ Tên nhà sản xuất

Ánh xạ quan hệ nhiều nhiều
Sản phẩm
Mã sản phẩm Tên sản phẩm Giá cả Tên nhà sản xuất

Hoá đơn-tên sản phẩm Nhà sản xuất-tên sản phẩm


Bước 6: Ánh xạ các quan hệ nhiều ngôi
Hoá đơn
Nhà sản xuất
Sản phẩm
Thực hiện trên SQL


Xác định các phụ thuộc hàm F và đưa về dạng chuẩn 3NF
1. Xét quan hệ

Khách hàng(MaKH(A),TenKH(B),DC(C),NumberKH(D),Namsinh(E),
Gioitinh(F))

Với tập các phụ thuộc hàm F1={ABCDEF} và tập khóa K1={A}
Không có thuộc tính không khóa nào (B,C,D,E,F) phụ thuộc bắc cầu vào
khóa A
Quan hệ Khachhang ở dạng 3NF.

2. Xét quan hệ

(MaSP(A),TenSP(B),Gia(C),TenSPNSX(D))

Với tập phụ thuộc hàm F2={AB,BC} 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ệ Sản phẩm không ở dạng 3NF.
Đưa về dạng 3NF
Quan hệ Phong được tách thành 2 quan hệ con
Sản phẩm_a(AB) khóa A , phụ thuộc hàm Fa={AB}
Sản phẩm_b(CD) khóa B , phụ thuộc hàm Fb={BC}

3. Xét quan hệ
Nhà sản xuất(NumberNSX(A),TenNSX(B), TenSP(C), SoluongSP(D)
Với tập phụ thuộc hàm F3={ABCD} và tập khóa K3={A,B}
Không có phụ thuộc hàm bắc cầu trong quan hệ này.
Do đó, quan hệ Nhà sản xuất ở dạng 3NF.

4. Xét quan hệ

Nhân viên(MaNV(A), TenNV(B), DC(C), Chucvu(D))
Với tập phụ thuộc hàm F4={AB,BCD} và tập khóa K4={A,B}
Thuộc tính không khóa C,D phụ thuộc bắc cầu vào khóa.
Do đó, quan hệ Thue không ở dạng chuẩn 3(3NF)
Đưa về dạng 3NF
Quan hệ Nhân viên được tách thành 2 quan hệ con
Nhân viên_e(AB) khóa A, phụ thuộc hàm Fe={AB}
Nhân viên_f(BCD) khóa B, phụ thuộc hàm Ff={BCD}

5. Xét quan hệ
HoaDon(MaHD(A), TenSPHD(B), SoluongSPHD(C), TenKHHD(D))
Với tập phụ thuộc hàm F5={AB,BC, C->D} và tập khóa K5={A,B,C,D}
Không có phụ thuộc hàm bắc cầu trong quan hệ này.
Do đó, quan hệ Hoá đơn ở dạng chuẩn 3(3NF)


10 câu truy vấn đại số quan hệ
1.Tìm tên tất cả khách hàng có số dư tài khoản >1000000
Kết quả=π
(Tên)

(sodu)>1000000
)(khách Hàng)
2.Tìm tến sản phẩm có giá >1000000
Kết quả=π
(Tên sản phẩm)

(Giaca)>1000000
)(Sản phẩm)
3.Tìm tên nhân viên có mã lớn hơn 10

Kết quả=π
(Tên)

(manhanvien)>10
)(Nhân viên)
4.Tìm mã hoá đơn có hơn 1 sản phẩm
Kết quả=π
(MaHD)

(Soluong)>1
)(Hoá Đơn)
5. Tìm tên khách hàng mua trên 2 sản phẩm ghi trong hoá đơn
Kết quả=π
(Tên.Khách hàng#,Soluong.Hoá đơn)

(Tên.Khách hàng#=Soluong.Hoá đơn) AND(Soluong.Hoá đơn>2)

6.Tìm mã sản phẩm có giá thành là 1000000
Kết quả=π
(id)

(id.Sản phẩm)=1000000)
(Sản phẩm)

7. Lập danh sách các sản phẩm có giá trên 1000000
Sản phẩm: Giá cả=”1000000”[MaSP, TenNSX];
8.Tìm tên nhà sản xuất có số lượng mặt hàng lớn hơn 10
Kết quả=π
(Tên.Nhà sản xuất)


((tên.Nhà sản xuất)>10)
(Nhà sản xuất)
9.

Tìm mã hóa đơn và mã khách hàng của khách hàng mua hàng của nhân viên có
mã xác đinh

Biểu thức truy vấn:
Kết quả=π
(HoaDon.MaHD#,Khachhang.MaKH#)

((Khachhang.MaKH#=HoaDon.MaKH#) AND
(Khachhang.MaKH#=SuDung.MaKH#) AND (SuDung.MaDV#=DichVu.MaDV#) AND
(DichVu.TenDV=Thuê taxi))
(HoaDon×Khachhang×SuDung×DichVu))
10 câu truy vấn SQL áp dụng cho các thực thể trên

1: Tìm tên của tất cả các khách hàng là nữ sinh từ năm 1970-1990
SELECT TenKH
FROMKhachhang
WHEREGioitinh = 0 AND
YEAR(Namsinh) BETWEEN 1970 AND 1990
2: 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
3.: Tìm tên của tất cả nhân viên có mã lớn hơn 10
SELECT MaNV
FROM Nhân viên
WHERE MaNV>10

4.lập danh sách khách hàng mua trên 2 sản phẩm
SELECT TenKH, MaKH, MaHD,
FROM Khách hàng, Hoá đơn
WHERE SoLuong>2
5.Lập danh sách các mặt hàng có giá trên 1000000
SELECT *
FROM Sản phẩm
WHERE Gia>1000000
6.Lập danh sách nhà sản xuất có số mặt hàng >10.
SELECT *
FROM Sản phẩm, Nhà sản xuất
WHERE SoLuong.Nhà sản xuất>10
7.Lập danh sách các khách hàng là nam mua trên 2 món hàng và sinh năm 1992
SELECT GioiTinh.Khách Hàng, SoLuong.Hoá Đơn, NamSinh.Khách Hàng
FROM Khách hàng, Hoá đơn
WHERE GioiTinh.Khách hàng=1 AND SoLuong.Hoá Đơn>2 AND NamSinh.Khách
hàng=”1991”
8.Tìm khách hàng thông qua mã hoá đơn và mã nhân viên
SELECT *
FROM Khách hàng, Hoá Đơn, Nhân viên
WHERE MaNV=MaKH AND MaHD=MaKH AND MaNV=MaHD
9.Tìm hoá đơn có trên 2 mặt hàng và 2 nhà sản xuất
SELECT TenSPHD NSXHD
FROM Hoá đơn
WHERE SoLuong.TenSPHD>2 AND SoLuong.NSXHD>2













×