Mỗi nhân viên gồm: tên nhân viên, mã nhân viên, ngày sinh.2.. KHÁCH HÀNG đến mua cần để lại thông tin gồm: tên khách hàng, mãkhách hàng, địa chỉ số điện thoại , mỗi khách hàng có thể có
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-Nhóm 11
Nguyễn Hải Anh – 2210A05
Hà Đình Cảnh – 2210A05
Nguyễn Minh Hiếu – 2210A05
<Quản lý kinh doanh thuốc>
BÁO CÁO BÀI TẬP LỚN
MÔN: CƠ SỞ DỮ LIỆU
Giảng viên hướng dẫn: …
Hà Nội – <2022-2023>
Trang 2PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN3
I, PHÁT BIỂU BÀI TOÁN:4
II, MÔ HÌNH THỰC THỂ LIÊN KẾT6
1, Xác định các thực thể và các thuộc tính6
2, Xác định các liên kết giữa các thực thể6
3, Vẽ được lược đồ ER7
III, MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ8
IV, RÀNG BUỘC TOÀN VẸN9
V, CHUẨN HÓA CƠ SỞ DỮ LIỆU……… 11
VI, CÀI ĐẶT CƠ SỞ DỮ LIỆU……….15VII, KHAI THÁC CƠ SỞ DỮ LIỆU……… 19
Trang 3PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN
Cài đặt cơ sở dữ liệu
Khai thác cơ sở dữ liệu
Mô hình cơ sở dữ liệu quan hệ Chuẩn hóa cơ sở dữ liệu
3
Trang 4PHẦN I PHÁT BIỂU BÀI TOÁN
1 Dựa hệ thống nhà thuốc Phamarcity Cửa hàng bán quần áo có thuê nhiều
NHÂN VIÊN khác nhau để bán hàng Mỗi nhân viên gồm: tên nhân viên, mã nhân viên, ngày sinh.
2 KHÁCH HÀNG đến mua cần để lại thông tin gồm: tên khách hàng , mã khách hàng, địa chỉ số điện thoại( , mỗi khách hàng có thể có nhiều số điện thoại khác nhau)
3 Cửa hàng bán Thuốc gồm các loại thuốc khác nhau bao gồm những thông tin như sau: mã loại, tên loại và thuốc trong của hàng bao gồm những thông tin: mã thuốc tên thuốc đơn vị sản xuất đơn giá bán , , ,
4 Mỗi khi KHÁCH HÀNG mua hàng sẽ có HÓA ĐƠN tương ứng, hóa đơn phải có thông tin khách hàng (bao gồm tên khách hàng , số điện thoại , địa chỉ), ngày lập cụ thể Trong mỗi hóa đơn có một mã số hóa đơn để xác định ghi rõ, tên sản phẩm và số lượng mà khách hàng đã
mua Mỗi khách hàng có thể mua nhiều thuốc cho một lần mua và thành tiền số lượng đơn giá bán( * ) và tổng tiền Hóa đơn được lập bởi
NHÂN VIÊN (ghi rõ họ tên nhân viên)
Trang 6PHẦN II MÔ HÌNH THỰC THỂ LIÊN KẾT
Số điện thoại : thuộc tính đa trị
- Tập thực thể mạnh Loại Thuốc: mã loại, tên loại
Mã loại : thuộc tính khóa
- Tập thực thể mạnh Thuốc : mã thuốc tên thuốc đơn vị sản xuất đơn, , ,
giá bán
Mã thuốc : thuộc tính khóa
- Tập thực thể mạnh Hóa Đơn thông tin khách hàng mã số hóa đơn, : ,
tên sản phẩm, số lượng, thành tiền, tổng tiền, ngày lập
Mã số hóa đơn : thuộc tính khóa
Thông tin khách hàng: thuộc tính phức
Tên sản phẩm: thuộc tính đa trị
Thành tiền: thuộc tính suy dẫn
Tổng tiền: thuộc tính suy dẫn
II.2 Xác định các liên kết giữa các thực thể
Khách hàng – nhận – Hóa Đơn: 1-n
Khách hàng – mua – thuốc : 1-n
Nhân viên – quản lý – Hóa đơn : 1-n
Hóa đơn – có – thuốc : 1-n
Trang 7Loại thuốc – gồm – thuốc: 1-n
7
Trang 8II.3 Vẽ được lược đồ ER
Trang 9PHẦN III MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Bước 1: Áp dụng quy tắc 1: chuyển thực kiểu thể mạnh
Loại thuốc(Mã loại, Tên loại)
Thuốc (mã thuốc, tên thuốc, đơn vị sản xuất, đơn giá bán)
Khách hàng (tên khách hàng, mã khách hàng, địa chỉ)
Nhân viên( tên nhân viên, mã nhân viên, ngày sinh)
Hóa đơn ( mã số hóa đơn, số lượng, tên khách hàng, số điện thoại, địa chỉ, ngày
lập)
Bước 2: Áp dụng quy tắc 2:chuyển thuốc tính đa trị
SDTKH (mã khách hàng, số điện thoại)
TênSPHD (mã số hóa đơn, tên sản phẩm)
Bước 3: Áp dụng quy tắc 5: chuyển quan hệ 1-n
Thuốc (Mã loại, mã thuốc, tên thuốc, đơn vị sản xuất, mã khách hàng, mã số
hóa đơn, đơn giá bán)
Hóa đơn (mã số hóa đơn, số lượng, tên khách hàng, số điện thoại, địa chỉ, mã
nhân viên, mã khách hàng, ngày lập)
Vậy cơ sở dữ liệu cuối cùng là:
Hóa đơn (mã số hóa đơn, số lượng, tên khách hàng, số điện thoại, địa chỉ, mã
nhân viên, mã khách hàng, ngày lập)
Thuốc (Mã loại, mã thuốc, tên thuốc, đơn vị sản xuất, mã khách hàng, mã số
hóa đơn, đơn giá bán)
TênSPHD (mã số hóa đơn, tên sản phẩm)
Trang 10PHẦN IV RÀNG BUỘC TOÀN VẸN
R1: “Mỗi nhân viên có 1 mã riêng , không trùng với nhân viên nào khác ”Bối cảnh: Nhân viên
Bảng tầm ảnh hưởng:
Nhân viên + (mã nhân viên) - -*(mã nhân viên)
R2: “Mỗi loại thuốc có 1 mã riêng, không trùng với loại nào khác”
Bối cảnh: Loại thuốc
Bảng tầm ảnh hưởng:
R3: “Mỗi thuốc có 1 mã riêng, không trùng với thuốc nào khác”
Bối cảnh: Thuốc
Bảng tầm ảnh hưởng:
R4: “Mỗi khách hàng có 1 mã riêng, không trùng với khác hàng khác”
Bối cảnh: Khách hàng
Bảng tầm ảnh hưởng:
Khách hàng +(mã khách hàng) - -*(mã khách hàng)
R5: “Mỗi hóa đơn có 1 mã riêng , không trùng với hóa đơn khác ”
Bối cảnh: Hóa đơn
Bảng tầm ảnh hưởng:
Hóa đơn +(mã số hóa đơn) - -*(mã số hóa đơn)
R6: “Mỗi khách hàng có một số điện thoại (Sdt) riêng biệt”
Bối cảnh: Khách hàng
Bảng tầm ảnh hưởng:
Trang 11Bảng tầm ảnh hưởng tổng hợp của 6 ràng buộc toàn vẹn như sau
RBTV T Nhân viênS X T Loại thuốcS X T ThuốcS X
Trang 12PHẦN V CHUẨN HOÁ CƠ SỞ DỮ LIỆU
1.Xét quan hệ: Loại thuốc(Mã loại, Tên loại)
Có tập pth F = { Mã loại → Tên loại }, áp dụng chuẩn 3 ta có:
Bước 1 : Tìm khóa
Ta có quan hệ Loại thuốc có 1 khóa là Mã loại
Bước 2: Tìm tập phủ tối thiểu
F’ = F = { Mã loại → Tên loại} là phủ tối thiểu của F (F’ là tập phụ thuộc hàm
F có vế trái một thuộc tính)
Bước 3: Với phụ thuộc hàm F’ = F = { Mã loại → Tên loại} dễ dàng thấy rằng
vế trái của phụ thuộc hàm (Mã loại) là khóa của quan hệ Loại thuốc
Vậy quan hệ Loại thuốc(Mã loại, Tên loại) là chuẩn N3F
2.Xét quan hệ: Thuốc (Mã loại, mã thuốc, tên thuốc, đơn vị sản xuất, mã kháchhàng, mã số hóa đơn, đơn giá bán)
Có tập pth F = {mã thuốc → Mã loại, tên thuốc, đơn vị sản xuất, mã kháchhàng, mã số hóa đơn, đơn giá bán}, áp dụng chuẩn 3 ta có:
Bước 1 : Tìm khóa
Ta có quan hệ Thuốc có 1 khóa là mã thuốc
Bước 2: Tìm tập phủ tối thiểu
F’ = F = { mã thuốc → Mã loại, tên thuốc, đơn vị sản xuất, mã khách hàng, mã
số hóa đơn, đơn giá bán } là phủ tối thiểu của F (F’ là tập phụ thuộc hàm F có
vế trái một thuộc tính)
Bước 3: Với phụ thuộc hàm F’ = F = { mã thuốc → Mã loại, tên thuốc, đơn vị sản xuất, mã khách hàng, mã số hóa đơn, đơn giá bán } dễ dàng thấy rằng vế trái
của phụ thuộc hàm (mã thuốc) là khóa của quan hệ Thuốc
Vậy quan hệ Thuốc (Mã loại, mã thuốc, tên thuốc, đơn vị sản xuất, mã khách hàng, mã số hóa đơn, đơn giá bán) là chuẩn N3F
Trang 133.Xét quan hệ: Hóa đơn (mã số hóa đơn, số lượng, tên khách hàng, số điệnthoại, địa chỉ, mã nhân viên, mã khách hàng, ngày lập)
Có tập pth F = { mã số hóa đơn → số lượng, tên khách hàng, số điện thoại, địachỉ, mã nhân viên, mã khách hàng }, áp dụng chuẩn 3 ta có:
Bước 1 : Tìm khóa
Ta có quan hệ Hóa đơn có 1 khóa là mã số hóa đơn
Bước 2: Tìm tập phủ tối thiểu
F’ = F = { mã số hóa đơn → số lượng, tên khách hàng, số điện thoại, địa chỉ, mãnhân viên, mã khách hàng, ngày lập } là phủ tối thiểu của F (F’ là tập phụ thuộchàm F có vế trái một thuộc tính)
Bước 3: Với phụ thuộc hàm F’ = F = { mã số hóa đơn → số lượng, tên khách hàng, số điện thoại, địa chỉ, mã nhân viên, mã khách hàng, ngày lập } dễ dàng
thấy rằng vế trái của phụ thuộc hàm (mã số hóa đơn) là khóa của quan hệ Hóa đơn
Vậy quan hệ Hóa đơn (mã số hóa đơn, số lượng, tên khách hàng, số điện thoại, địa chỉ, mã nhân viên, mã khách hàng, ngày lập) là chuẩn N3F
4 xét quan hệ: Khách hàng (tên khách hàng, mã khách hàng, địa chỉ)
Có tập pth F = { mã khách hàng → tên khách hàng , địa chỉ }, áp dụng chuẩn 3
ta có:
Bước 1 : Tìm khóa
Ta có quan hệ Khách hàng có 1 khóa là mã khách hàng
Bước 2: Tìm tập phủ tối thiểu
F’ = F = { mã khách hàng → tên khách hàng , địa chỉ } là phủ tối thiểu của F (F’
là tập phụ thuộc hàm F có vế trái một thuộc tính)
Bước 3: Với phụ thuộc hàm F’ = F = { mã khách hàng → tên khách hàng , địa chỉ } dễ dàng thấy rằng vế trái của phụ thuộc hàm (mã khách hàng) là khóa của
quan hệ Khách hàng
Vậy quan hệ Khách hàng (tên khách hàng, mã khách hàng, địa chỉ)
là chuẩn N3F
13
Trang 145 Xét quan hệ: Nhân viên( tên nhân viên, mã nhân viên, ngày sinh)
Có tập pth F = {mã nhân viên → tên nhân viên, ngày sinh }, áp dụng chuẩn 3 tacó:
Bước 1 : Tìm khóa
Ta có quan hệ Nhân viên có 1 khóa là mã nhân viên
Bước 2: Tìm tập phủ tối thiểu
F’ = F = { mã nhân viên → tên nhân viên, ngày sinh } là phủ tối thiểu của F (F’
là tập phụ thuộc hàm F có vế trái một thuộc tính)
Bước 3: Với phụ thuộc hàm F’ = F = { mã nhân viên → tên nhân viên, ngày sinh} dễ dàng thấy rằng vế trái của phụ thuộc hàm (mã nhân viên) là khóa của quan
hệ Nhân viên
Vậy quan hệ Nhân viên( tên nhân viên, mã nhân viên, ngày sinh) là chuẩn N3F
6 Xét quan hệ: SDTKH (mã khách hàng, số điện thoại)
Có tập pth F = { mã khách hàng → số điện thoại }, áp dụng chuẩn 3 ta có:Bước 1 : Tìm khóa
Ta có quan hệ SDTKH có 2 khóa là mã khách hàng và mã nhân viên
Bước 2: Tìm tập phủ tối thiểu
F’ = F = { mã khách hàng → số điện thoại } là phủ tối thiểu của F (F’ là tập phụthuộc hàm F có vế trái một thuộc tính)
Bước 3: Với phụ thuộc hàm F’ = F = { mã khách hàng → số điện thoại } dễ dàng thấy rằng vế trái của phụ thuộc hàm (mã khách hàng) là khóa của quan hệ
SDTKH
Vậy quan hệ SDTKH (mã khách hàng, số điện thoại) là chuẩn N3F
7 Xét quan hệ: TênSPHD (mã số hóa đơn, tên sản phẩm)
Trang 15Có tập pth F = { mã số hóa đơn → tên sản phẩm }, áp dụng chuẩn 3 ta có:Bước 1 : Tìm khóa
Ta có quan hệ TênSPHD có 2 khóa là mã số hóa đơn và tên sản phẩm
Bước 2: Tìm tập phủ tối thiểu
F’ = F = { mã số hóa đơn → tên sản phẩm } là phủ tối thiểu của F (F’ là tập phụthuộc hàm F có vế trái một thuộc tính)
Bước 3: Với phụ thuộc hàm F’ = F = { mã số hóa đơn → tên sản phẩm } dễ dàng thấy rằng vế trái của phụ thuộc hàm (mã số hóa đơn) là khóa của quan hệ
TênSPHD
Vậy quan hệ TênSPHD (mã số hóa đơn, tên sản phẩm) là chuẩn N3F
15
Trang 16PHẦN VI CÀI ĐẶT CƠ SỞ DỮ LIỆU Bảng Loại Thuốc:
Trang 20PHẦN VII KHAI THÁC CƠ SỞ DỮ LIỆU
1, Lập danh sách thuốc được mua số lượng trên 2 gồm: mã thuốc, tênthuốc, số lượng, Ngày mua
Π(mã thuốc, tên thuốc, số lượng, Ngày mua)(σSL>=2(Thuốc* Hóa đơn))
2, Lập danh sách những thuốc có đơn giá trên 120.00 đ gồm: mã thuốc,tên thuốc, số lượng, đơn giá
Π(mã thuốc, tên thuốc, số lượng, đơn giá)(σ đơn giá >=120.00 đ(Thuốc* Hóa đơn))
3, Đưa ra nhân viên bán hàng ngày 10/4/2022 gồm: tên nhân viên,
Mã nhân viên, ngày lập , mã hóa đơn
Π(mã nhân viên, ngày lập, mã số hóa đơn)(σNgayLap=10/4/2022(Nhân viên*Hóa đơn))
4, Đưa ra danh sách khách hàng mua hàng vào ngày 10/4/2022 gồm : tênkhách hàng, mã khách hàng, Số điện thoại , địa chỉ, ngày lập
Π(tên khách hàng, mã khách hàng, sđt, địa chỉ, ngày lập)(σNgayLap=10/4/2022(Hóa đơn* SDTKH))
5, Đưa ra danh sách tên sản phẩm do nhân viên Phan Mạnh Quỳnh lậphóa đơn gồm : Tên sản phẩm, Tên nhân viên
NVHD = Π(mã nhân viên, mã số hóa đơn)(Hóa đơn)
NV_HD= Nhân viên * NVHD
Π(tên thuốc, tên nhân viên)( σ tên nhân viên = “Phan Mạnh Quỳnh”(Thuốc * NV_HD))
Đưa ra danh sách sản phẩm gồm : tên thuốc và loại thuốc
Trang 21Π(tên thuốc, tên loại)(Thuốc * Loại thuốc)
Mã loại
21