You are on page 1of 26

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN

VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ

BÀI TẬP LỚN

MÔN: CƠ SỞ DỮ LIỆU
Đề Tài:

Thiết kế cơ sở dữ liệu quản lý bán hàng

Học phần : Cơ sở dữ liệu

Lớp học phần : TIKT1130(123)_02

Nhóm thực hiện : Nhóm số 4

Giảng viên hướng dẫn : Ths. Phùng Tiến Hải

Hà Nội, 2023

1
BẢNG PHÂN CÔNG NHIỆM VỤ

STT Họ và Tên Mã SV Nhiệm vụ % hoàn thành

1 Vũ Thái Hòa 11222432 Xây dựng cơ sở dữ liệu:


+ Mô hình thực thể ER

2 Vũ Minh Đức 11221425 Dùng SQL server để xây


dựng CSDL

3 Hoàng Hải Giang 11221738 Dùng mySQL để xây dựng


CSDL

4 Nguyễn Việt Hải 11222027 Dùng Postgre SQL để xây


dựng CSDL

5 Vũ Minh Đức 11221425 Tổng hợp và viết báo cáo

(chỉnh sửa nếu có)

6 Bùi Thị Bích Hạnh 11222136 Làm powerpoint thuyết trình

7 Vũ Minh Đức 11221425 Thuyết trình

8 Hoàng Hải Giang 11221738 Tổng hợp câu hỏi và trả lời
(nếu có)
Nguyễn Việt Hải 11222027

2
MỤC LỤC
LỜI NÓI ĐẦU ........................................................................................................................................ 4
PHẦN I: MÔ TẢ BÀI TOÁN................................................................................................................ 5
PHẦN II: XÂY DỰNG MÔ HÌNH ER ................................................................................................ 5
I. Xác định các thực thể ..................................................................................................................5
II. Xác định các thuộc tính của thực thể .....................................................................................6
1. Nhanvien .................................................................................................................................6
2. Nhacungcap.............................................................................................................................6
3. Khach_Hang ...........................................................................................................................7
4. Hoadon ....................................................................................................................................7
5. Phieunhap ...............................................................................................................................7
6. Sanpham..................................................................................................................................7
7. ChitietPN .....................................................................................................................................7
8. ChitietHD ................................................................................................................................8
9. Mausac ....................................................................................................................................8
10. Kichco ......................................................................................................................................8
III. Xây dựng mô hình liên kết thực thể .......................................................................................8
IV. Lược đồ quan hệ......................................................................................................................9
V. Mô hình thực thể liên kết ER......................................................................................................9
PHẦN III: THIẾT KẾ CƠ SỞ DỮ LIỆU ............................................................................................ 9
I. Thiết kế cơ sở dữ liệu bằng phần mềm SQL server ................................................................9
1. Tạo các bảng ...........................................................................................................................9
2. Tạo mối liên hệ giữa các bảng .............................................................................................12
3. Minh chứng CSDL đã được tạo trong SQL server 2022 ..................................................13
II. Thiết kế cơ sở dữ liệu bằng phần mềm MySQL ................................................................13
1. Tạo các bảng .........................................................................................................................13
2. Tạo mối liên hệ giữa các bảng .............................................................................................18
3. Minh chứng CSDL đã được tạo trong MySQL workbench .............................................19
III. Thiết kế cơ sở dữ liệu bằng phần mềm PostgreSQL .........................................................20
1. Tạo các bảng .........................................................................................................................20
2. Mối liên hệ giữa các bảng ....................................................................................................22
3. Minh chứng CSDL đã được tạo trong PostgreSQL (PgAdmin 4) ...................................24
KẾT LUẬN ........................................................................................................................................... 26

3
LỜI NÓI ĐẦU
Ngày nay, cơ sở dữ liệu ngày càng có những tác động to lớn trong việc phát
triển sử dụng máy tính cũng như có tầm ảnh hưởng đến tất cả những lĩnh vực có
sử dụng máy tính. Với những đặc tính cũng như đặc thù cụ thể mà nó ngày càng
cho thấy sức mạnh của mình trong kỷ nguyên số. Nhóm 4 chúng em sau khi thảo
luận về đề tài được giao: “Thiết kế cơ sở dữ liệu quản lý bán hàng” đã có
những ý tưởng cụ thể cho bài nghiên cứu của nhóm mình.

Nhóm em xin chân thành cảm ơn thầy Phùng Tiến Hải đã hướng dẫn và tạo
điều kiện cho nhóm em thực hiện đề tài này. Nhưng do còn ít kinh nghiệm, nhận
thức của bản thân còn hạn chế nên khó tránh khỏi những thiếu sót trong quá
trình nghiên cứu và trình bày. Rất kính mong được sự góp ý của thầy để đề tài
được hoàn chỉnh hơn.

Nhóm 4

4
NỘI DUNG

PHẦN I: MÔ TẢ BÀI TOÁN

Với đề tài: “Thiết kế cơ sở quản lý bán hàng”, nhóm chúng em sau khi thảo luận
đã quyết định cụ thể hóa đề tài để bài toán chúng em giải sẽ có tính thực tế cao
hơn cũng như cho thấy được sự liên hệ trực quan giữa những gì được học trong
môn CSDL với cuộc sống. Và đề tài đó là:

“THIẾT KẾ CƠ SỞ DỮ LIỆU QUẢN LÝ CỬA HÀNG BÁN QUẦN ÁO”

PHẦN II: XÂY DỰNG MÔ HÌNH ER


I. Xác định các thực thể
Thực thể Diễn giải Mô tả

Nhanvien Nhân viên là những người làm việc ở cửa hàng. Mỗi nhân
viên có 1 mã nhân viên duy nhất.

Nhacungcap Nhà cung là những người giao dịch với cửa hàng. Mỗi nhà
cấp cung cấp sẽ có 1 mã nhà cung cấp duy nhất.

Khach_Hang Khách hàng là những người mua sản phẩm của cửa hàng.
Mỗi khách hàng có 1 mã khách hàng duy nhất

HoaDon Hóa đơn bao gồm những giao dịch của cửa hàng với
khách hàng đến mua hàng. Mỗi lần xuất hóa đơn
có một mã hóa đơn nhất định và duy nhất..

Phieunhap Phieunhap bao gồm những giao dịch nhập hàng từ nhà cung
cấp vào kho của cửa hàng. Mỗi lần nhập đều có
một mã phiếu nhập nhất định và duy nhất.

Sanpham Sản phẩm bao gồm những sản phẩm được bày bán ở cửa
hàng. Mỗi sản phẩm thì có 1 mã sản phẩm duy
nhất.

Mausac Màu sắc mô tả màu sắc của sản phẩm. mỗi màu sắc xác
định một mã màu duy nhất..

5
Kichco Kích cỡ mô tả kích thước của các sản phẩm. Mỗi size xác
định được một mã size duy nhất.

ChitietPN Chi tiết Thực thể bao gồm chi tiết các phiếu nhập khi
Phiếu Nhập nhập quần áo ở nhà cung cấp và có hóa đơn
nhập, được xác định bởi mã hóa đơn nhập, mã
sản phẩm, số lượng nhập, đơn giá.

ChitietHD Chi Tiết Thực thể bao gồm chi tiết các hóa đơn xuất khi
Hóa đơn cửa hàng bán quần áo cho khách hàng và có hóa
đơn bán, được xác định bởi mã hóa đơn bán, mã
sản phẩm, số lượng xuất, đơn giá.
II. Xác định các thuộc tính của thực thể

Thực thể Thuộc tính Diễn giải Kiểu dữ liệu

MaNV Mã nhân viên char(10)

TenNV Tên nhân viên nvarchar(30)

1. Nhanvien Gioitinh Giới tính nvarchar(10)

Ngaysinh Ngày sinh date

Diachi Địa chỉ ntext

SDT Số điện thoại varchar(12)

Email Email varchar(32)

MaNCC Mã nhà cung cấp char(10)

TenNCC Tên nhà cung cấp nvarchar(40)


2. Nhacungcap
SDT Số điện thoại varchar(12)

DiaChi Địa chỉ ntext

Email Email varchar(32)

6
MaKH Mã khách hàng char(10)
3. Khach_Hang
Email Email varchar(32)

TenKH Tên khách hàng nvarchar(30)

SDT Số điện thoại varchar(12)

Diachi Địa chỉ ntext

MaHD Mã hóa đơn char10

4. Hoadon Ngaylap Ngày lập date

MaKH Mã khách hàng char(10)

MaNV Mã nhân viên char(10)

MaPN Mã phiếu nhập char(10)

5. Phieunhap Ngaylap Ngày hóa đơn date

MaNCC Mã nhà cung cấp char(10)

MaNV Mã nhân viên char(10)

MaSP Mã sản phẩm nvarchar(10)

TenSP Tên sản phẩm nvarchar(40)


6. Sanpham
Sltontoida Số lượng tồn Max int

Sltontoithieu Số lượng tồn Min int

Maloai Mã loại nvarchar(10)

MaPN Mã phiếu nhập char(10)


7. ChitietPN
MaSP Mã sản phẩm char(10)

7
SoLuong Số lượng nhập int

Dongia Đơn giá money

Uudai Ưu đãi float

MaHD Mã hóa đơn bán char(10)


8. ChitietHD
MaSP Mã sản phẩm char(10)

SoLuong Số lượng bán int

Dongia Đơn giá money

Uudai Ưu đãi float

Mamau Mã màu char(10)


9. Mausac
Tenmau Tên màu nvarchar(10)

Masize Mã size char(10)


10.Kichco
Tensize Tên size nvarchar(15)

III. Xây dựng mô hình liên kết thực thể

8
IV. Lược đồ quan hệ

1. Khach_Hang (MaKH, TenKH, Diachi, SDT, Email)


2. Nhanvien (MaNV, TenNV, Gioitinh, Ngaysinh, Diachi, SDT, Email)
3. Nhacungcap (MaNCC, TenNCC, Diachi, SDT, Email)
4. Kichco (MaSize, Tensize)
5. Mausac (Mamau, Tenmau)
6. Sanpham (MaSP, TenSP, MaSize, MaMau, Sltontoida, Sltontoithieu)
7. Phieunhap ( MaPN, MaNCC, MaNV, Ngaylap)
8. ChitietPN (MaPN, MaPN , MaSP, Đongia, Soluong, Uudai)
9. Hoadon ( MaHD, MaKH, MaNV, Ngaylap)
10. ChitietHD (MaHD, MaHD , MaSP, Soluong, Dongia, Uudai)
V. Mô hình thực thể liên kết ER

PHẦN III: THIẾT KẾ CƠ SỞ DỮ LIỆU


I. Thiết kế cơ sở dữ liệu bằng phần mềm SQL server
1. Tạo các bảng
1.1. TẠO DATABASE
USE [master]
GO
CREATE DATABASE [QUAN_LY_BAN_HANG]

9
CONTAINMENT = NONE
ON PRIMARY
LOG ON
WITH CATALOG_COLLATION = DATABASE_DEFAULT, LEDGER =
OFF
GO
USE [QUAN_LY_BAN_HANG]
GO
1.2. TẠO BẢNG CHI TIẾT PHIẾU NHẬP
CREATE TABLE [dbo].[ChitietPN](
[MaPN] [char](10) NOT NULL,
[MaSP] [char](10) NOT NULL,
[Soluong] [int] NOT NULL,
[Dongia] [money] NOT NULL,
[Uudai] [float] NOT NULL,
CONSTRAINT [PK_ChitietPN] PRIMARY KEY CLUSTERED
1.3. TẠO BẢNG HÓA ĐƠN
CREATE TABLE [dbo].[Hoadon](
[MaHD] [char](10) NOT NULL,
[MaKH] [char](10) NOT NULL,
[MaNV] [char](10) NOT NULL,
[Ngaylap] [datetime] NOT NULL,
CONSTRAINT [PK_Hoadon_1] PRIMARY KEY CLUSTERED
1.4. TẠO BẢNG KHÁCH HÀNG
CREATE TABLE [dbo].[Khach_Hang](
[MaKH] [char](10) NOT NULL,
[TenKH] [nvarchar](30) NOT NULL,
[Diachi] [ntext] NULL,
[SDT] [varchar](12) NULL,
[Email] [varchar](32) NULL,
CONSTRAINT [PK_Khach_Hang] PRIMARY KEY CLUSTERED
1.5. TẠO BẢNG KÍCH CỠ
CREATE TABLE [dbo].[Kichco](
[Masize] [char](10) NOT NULL,
[Tensize] [nvarchar](15) NOT NULL,
CONSTRAINT [PK_Kichco] PRIMARY KEY CLUSTERED
1.6. TẠO BẢNG MÀU SẮC
CREATE TABLE [dbo].[Mausac](

10
[Mamau] [char](10) NOT NULL,
[Tenmau] [nvarchar](10) NOT NULL,
CONSTRAINT [PK_Mausac] PRIMARY KEY CLUSTERED
1.7. TẠO BẢNG NHÀ CUNG CẤP
CREATE TABLE [dbo].[Nhacungcap](
[MaNCC] [char](10) NOT NULL,
[TenNCC] [varchar](40) NOT NULL,
[Diachi] [ntext] NOT NULL,
[SDT] [varchar](12) NOT NULL,
[Email] [varchar](32) NOT NULL,
CONSTRAINT [PK_Nhacungcap] PRIMARY KEY CLUSTERED
1.8. TẠO BẢNG NHÂN VIÊN
CREATE TABLE [dbo].[Nhanvien](
[MaNV] [char](10) NOT NULL,
[TenNV] [nvarchar](30) NOT NULL,
[Gioitinh] [nvarchar](10) NULL,
[Ngaysinh] [date] NULL,
[Diachi] [ntext] NOT NULL,
[SDT] [varchar](12) NOT NULL,
[Email] [varchar](32) NULL,
CONSTRAINT [PK_Nhanvien] PRIMARY KEY CLUSTERED
1.9. TẠO BẢNG PHIẾU NHẬP
CREATE TABLE [dbo].[Phieunhap](
[MaPN] [char](10) NOT NULL,
[MaNCC] [char](10) NOT NULL,
[MaNV] [char](10) NOT NULL,
[Ngaylap] [datetime] NOT NULL,
CONSTRAINT [PK_Phieunhap] PRIMARY KEY CLUSTERED
1.10. TẠO BẢNG SẢN PHẨM
CREATE TABLE [dbo].[Sanpham](
[MaSP] [char](10) NOT NULL,
[TenSP] [nvarchar](40) NOT NULL,
[Masize] [char](10) NOT NULL,
[Mamau] [char](10) NOT NULL,
[Sltontoida] [int] NULL,
[Sltontoithieu] [int] NULL,
CONSTRAINT [PK_Sanpham] PRIMARY KEY CLUSTERED
1.11. TẠO BẢNG CHI TIẾT HÓA ĐƠN

11
CREATE TABLE [dbo].[ChitietHD](
[MaHD] [char](10) NOT NULL,
[MaSP] [char](10) NOT NULL,
[Soluong] [int] NOT NULL,
[Dongia] [money] NOT NULL,
[Uudai] [float] NULL,
CONSTRAINT [PK_ChitietHD] PRIMARY KEY CLUSTERED
2. Tạo mối liên hệ giữa các bảng
ALTER TABLE [dbo].[ChitietHD] WITH CHECK ADD CONSTRAINT
[FK_ChitietHD_Sanpham] FOREIGN KEY([MaSP])
REFERENCES [dbo].[Sanpham] ([MaSP])
GO
ALTER TABLE [dbo].[ChitietHD] CHECK CONSTRAINT
[FK_ChitietHD_Sanpham]
GO
ALTER TABLE [dbo].[ChitietPN] WITH CHECK ADD CONSTRAINT
[FK_ChitietPN_Phieunhap] FOREIGN KEY([MaPN])
REFERENCES [dbo].[Phieunhap] ([MaPN])
GO
ALTER TABLE [dbo].[ChitietPN] CHECK CONSTRAINT
[FK_ChitietPN_Phieunhap]
GO
ALTER TABLE [dbo].[Phieunhap] WITH CHECK ADD CONSTRAINT
[FK_Phieunhap_Nhacungcap] FOREIGN KEY([MaNCC])
REFERENCES [dbo].[Nhacungcap] ([MaNCC])
GO
ALTER TABLE [dbo].[Phieunhap] CHECK CONSTRAINT
[FK_Phieunhap_Nhacungcap]
GO
ALTER TABLE [dbo].[Phieunhap] WITH CHECK ADD CONSTRAINT
[FK_Phieunhap_Nhanvien] FOREIGN KEY([MaNV])
REFERENCES [dbo].[Nhanvien] ([MaNV])
GO
ALTER TABLE [dbo].[Phieunhap] CHECK CONSTRAINT
[FK_Phieunhap_Nhanvien]
GO
ALTER TABLE [dbo].[Sanpham] WITH CHECK ADD CONSTRAINT
[FK_Sanpham_Kichco] FOREIGN KEY([Masize])

12
REFERENCES [dbo].[Kichco] ([Masize])
GO
ALTER TABLE [dbo].[Sanpham] CHECK CONSTRAINT
[FK_Sanpham_Kichco]
GO
ALTER TABLE [dbo].[Sanpham] WITH CHECK ADD CONSTRAINT
[FK_Sanpham_Mausac] FOREIGN KEY([Mamau])
REFERENCES [dbo].[Mausac] ([Mamau])
GO
ALTER TABLE [dbo].[Sanpham] CHECK CONSTRAINT
[FK_Sanpham_Mausac]
GO
USE [master]
GO
ALTER DATABASE [QUAN_LY_BAN_HANG] SET READ_WRITE
GO
3. Minh chứng CSDL đã được tạo trong SQL server 2022

II. Thiết kế cơ sở dữ liệu bằng phần mềm MySQL


1. Tạo các bảng
1.1. TẠO DATABASE
Schema cuahangquanao
CREATE SCHEMA IF NOT EXISTS `cuahangquanao` DEFAULT
CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;
USE `cuahangquanao` ;

-- -----------------------------------------------------

13
-- Table `cuahangquanao`.`nhanvien`
-- -----------------------------------------------------
1.2. TẠO BẢNG NHÂN VIÊN
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`nhanvien` (
`MaNV` CHAR(10) NOT NULL,
`TenNV` VARCHAR(30) CHARACTER SET 'utf8mb3' NULL DEFAULT
NULL,
`GioiTinh` VARCHAR(10) CHARACTER SET 'utf8mb3' NULL DEFAULT
NULL,
`NgaySinh` DATE NULL DEFAULT NULL,
`Diachi` TEXT NULL DEFAULT NULL,
`SDT` VARCHAR(12) NULL DEFAULT NULL,
`Email` VARCHAR(32) NULL DEFAULT NULL,
PRIMARY KEY (`MaNV`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.3. TẠO BẢNG HÓA ĐƠN
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`hoadon` (
`MaHD` CHAR(10) NOT NULL,
`MaKH` CHAR(10) NULL DEFAULT NULL,
`MaNV` CHAR(10) NULL DEFAULT NULL,
`NgayLap` DATETIME NULL DEFAULT NULL,
`nhanvien_MaNV` CHAR(10) NOT NULL,
PRIMARY KEY (`MaHD`),
INDEX `fk_hoadon_nhanvien1_idx` (`nhanvien_MaNV` ASC) VISIBLE,
CONSTRAINT `fk_hoadon_nhanvien1`
FOREIGN KEY (`nhanvien_MaNV`)
REFERENCES `cuahangquanao`.`nhanvien` (`MaNV`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.4. TẠO BẢNG PHIẾU NHẬP
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`phieunhap` (
`MaPN` CHAR(10) NOT NULL,
`MaNCC` CHAR(10) NULL DEFAULT NULL,

14
`MaNV` CHAR(10) NULL DEFAULT NULL,
`Ngaylap` DATETIME NULL DEFAULT NULL,
`nhanvien_MaNV` CHAR(10) NOT NULL,
PRIMARY KEY (`MaPN`),
INDEX `fk_phieunhap_nhanvien1_idx` (`nhanvien_MaNV` ASC) VISIBLE,
CONSTRAINT `fk_phieunhap_nhanvien1`
FOREIGN KEY (`nhanvien_MaNV`)
REFERENCES `cuahangquanao`.`nhanvien` (`MaNV`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;

1.5. TẠO BẢNG NHÀ CUNG CẤP


CREATE TABLE IF NOT EXISTS `cuahangquanao`.`nhacungcap` (
`MaNCC` CHAR(10) NOT NULL,
`TenNCC` VARCHAR(40) CHARACTER SET 'utf8mb3' NULL DEFAULT
NULL,
`Diachi` TEXT NULL DEFAULT NULL,
`SDT` VARCHAR(12) NULL DEFAULT NULL,
`Email` VARCHAR(32) NULL DEFAULT NULL,
PRIMARY KEY (`MaNCC`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.6. TẠO BẢNG CHI TIẾT PHIẾU NHẬP
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`chitietpn` (
`MaPN` CHAR(10) NOT NULL,
`MaSP` CHAR(10) NULL DEFAULT NULL,
`Soluong` INT NULL DEFAULT NULL,
`Dongia` DECIMAL(10,0) NULL DEFAULT NULL,
`Uudai` FLOAT NULL DEFAULT NULL,
`nhacungcap_MaNCC` CHAR(10) NOT NULL,
PRIMARY KEY (`MaPN`),
INDEX `fk_chitietpn_nhacungcap1_idx` (`nhacungcap_MaNCC` ASC)
VISIBLE,
CONSTRAINT `fk_chitietpn_phieunhap1`

15
FOREIGN KEY (`MaPN`)
REFERENCES `cuahangquanao`.`phieunhap` (`MaPN`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_chitietpn_nhacungcap1`
FOREIGN KEY (`nhacungcap_MaNCC`)
REFERENCES `cuahangquanao`.`nhacungcap` (`MaNCC`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.7. TẠO BẢNG SẢN PHẨM
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`sanpham` (
`MaSP` CHAR(10) NOT NULL,
`TenSP` VARCHAR(40) CHARACTER SET 'utf8mb3' NULL DEFAULT
NULL,
`Masize` CHAR(10) NULL DEFAULT NULL,
`Mamau` CHAR(10) NULL DEFAULT NULL,
`Sltontoida` INT NULL DEFAULT NULL,
`Sltontoithieu` INT NULL DEFAULT NULL,
PRIMARY KEY (`MaSP`),
CONSTRAINT `fk_sanpham_chitietpn1`
FOREIGN KEY (`MaSP`)
REFERENCES `cuahangquanao`.`chitietpn` (`MaSP`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.8. TẠO BẢNG KHÁCH HÀNG
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`khachhang` (
`MaKH` CHAR(10) NOT NULL,
`TenKH` VARCHAR(30) CHARACTER SET 'utf8mb3' NULL DEFAULT
NULL,
`Diachi` TEXT NULL DEFAULT NULL,
`SDT` VARCHAR(12) NULL DEFAULT NULL,
`Email` VARCHAR(32) NULL DEFAULT NULL,

16
PRIMARY KEY (`MaKH`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.9. TẠO BẢNG CHI TIẾT HÓA ĐƠN
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`chitiethd` (
`MaHD` CHAR(10) NOT NULL,
`MaSP` CHAR(10) NULL DEFAULT NULL,
`Soluong` INT NULL DEFAULT NULL,
`Dongia` DECIMAL(10,0) NULL DEFAULT NULL,
`Uudai` FLOAT NULL DEFAULT NULL,
`khachhang_MaKH` CHAR(10) NOT NULL,
PRIMARY KEY (`MaHD`),
INDEX `fk_chitiethd_khachhang1_idx` (`khachhang_MaKH` ASC) VISIBLE,
CONSTRAINT `fk_chitiethd_hoadon1`
FOREIGN KEY (`MaHD`)
REFERENCES `cuahangquanao`.`hoadon` (`MaHD`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_chitiethd_sanpham1`
FOREIGN KEY (`MaHD`)
REFERENCES `cuahangquanao`.`sanpham` (`MaSP`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_chitiethd_khachhang1`
FOREIGN KEY (`khachhang_MaKH`)
REFERENCES `cuahangquanao`.`khachhang` (`MaKH`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.10. TẠO BẢNG KÍCH CỠ
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`kichco` (
`Masize` CHAR(10) NOT NULL,
`Tensize` VARCHAR(15) CHARACTER SET 'utf8mb3' NULL DEFAULT
NULL,
`sanpham_MaSP` CHAR(10) NOT NULL,

17
PRIMARY KEY (`Masize`),
INDEX `fk_kichco_sanpham1_idx` (`sanpham_MaSP` ASC) VISIBLE,
CONSTRAINT `fk_kichco_sanpham1`
FOREIGN KEY (`sanpham_MaSP`)
REFERENCES `cuahangquanao`.`sanpham` (`MaSP`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
1.11. TẠO BẢNG MÀU SẮC
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`mausac` (
`Mamau` CHAR(10) NOT NULL,
`Tenmau` VARCHAR(10) CHARACTER SET 'utf8mb3' NULL DEFAULT
NULL,
`sanpham_MaSP` CHAR(10) NOT NULL,
PRIMARY KEY (`Mamau`),
INDEX `fk_mausac_sanpham1_idx` (`sanpham_MaSP` ASC) VISIBLE,
CONSTRAINT `fk_mausac_sanpham1`
FOREIGN KEY (`sanpham_MaSP`)
REFERENCES `cuahangquanao`.`sanpham` (`MaSP`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
2. Tạo mối liên hệ giữa các bảng
CREATE TABLE IF NOT EXISTS `cuahangquanao`.`hoadon_has_sanpham` (
`hoadon_MaHD` CHAR(10) NOT NULL,
`sanpham_MaSP` CHAR(10) NOT NULL,
PRIMARY KEY (`hoadon_MaHD`, `sanpham_MaSP`),
INDEX `fk_hoadon_has_sanpham_sanpham1_idx` (`sanpham_MaSP` ASC)
VISIBLE,
INDEX `fk_hoadon_has_sanpham_hoadon1_idx` (`hoadon_MaHD` ASC)
VISIBLE,
CONSTRAINT `fk_hoadon_has_sanpham_hoadon1`
FOREIGN KEY (`hoadon_MaHD`)
REFERENCES `cuahangquanao`.`hoadon` (`MaHD`)

18
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_hoadon_has_sanpham_sanpham1`
FOREIGN KEY (`sanpham_MaSP`)
REFERENCES `cuahangquanao`.`sanpham` (`MaSP`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
-- -----------------------------------------------------
-- Table `cuahangquanao`.`sanpham_has_phieunhap`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS
`cuahangquanao`.`sanpham_has_phieunhap` (
`sanpham_MaSP` CHAR(10) NOT NULL,
`phieunhap_MaPN` CHAR(10) NOT NULL,
PRIMARY KEY (`sanpham_MaSP`, `phieunhap_MaPN`),
INDEX `fk_sanpham_has_phieunhap_phieunhap1_idx` (`phieunhap_MaPN`
ASC) VISIBLE,
INDEX `fk_sanpham_has_phieunhap_sanpham1_idx` (`sanpham_MaSP`
ASC) VISIBLE,
CONSTRAINT `fk_sanpham_has_phieunhap_sanpham1`
FOREIGN KEY (`sanpham_MaSP`)
REFERENCES `cuahangquanao`.`sanpham` (`MaSP`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_sanpham_has_phieunhap_phieunhap1`
FOREIGN KEY (`phieunhap_MaPN`)
REFERENCES `cuahangquanao`.`phieunhap` (`MaPN`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
3. Minh chứng CSDL đã được tạo trong MySQL workbench

19
III. Thiết kế cơ sở dữ liệu bằng phần mềm PostgreSQL
1. Tạo các bảng
1.1. BẢNG CHI TIẾT HÓA ĐƠN
CREATE TABLE IF NOT EXISTS public."ChitietHD"
(
"MaHD" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"MaSP" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"Soluong" integer,
"Dongia" money,
"Uudai" real,
CONSTRAINT "ChitietHD_pkey" PRIMARY KEY ("MaHD", "MaSP")
);
1.2. BẢNG CHI TIẾT PHIẾU NHẬP
CREATE TABLE IF NOT EXISTS public."ChitietPN"
(
"MaPN" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"MaSP" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"Soluong" integer,
"Dongia" money,
"Uudai" real,
CONSTRAINT "ChitietPN_pkey" PRIMARY KEY ("MaPN", "MaSP")
);
1.3. BẢNG HÓA ĐƠN
CREATE TABLE IF NOT EXISTS public."Hoadon"

20
(
"MaHD" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"MaNV" character(10)[] COLLATE pg_catalog."default",
"MaKH" character(10)[] COLLATE pg_catalog."default",
"Ngaylap" date,
CONSTRAINT "Hoadon_pkey" PRIMARY KEY ("MaHD")
);
1.4. BẢNG KHÁCH HÀNG
CREATE TABLE IF NOT EXISTS public."Khach_Hang"
(
"MaKH" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"TenKH" character varying(30)[] COLLATE pg_catalog."default",
"Diachi" text COLLATE pg_catalog."default",
"SDT" character(12)[] COLLATE pg_catalog."default",
"Email" character varying(32)[] COLLATE pg_catalog."default",
CONSTRAINT "Khach_Hang_pkey" PRIMARY KEY ("MaKH")
);
1.5. BẢNG KÍCH CỠ
CREATE TABLE IF NOT EXISTS public."Kichco"
(
"Masize" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"Tensize" character varying(15)[] COLLATE pg_catalog."default",
CONSTRAINT "Kichco_pkey" PRIMARY KEY ("Masize")
);
1.6. BẢNG MÀU SẮC
CREATE TABLE IF NOT EXISTS public."Mausac"
(
"Mamau" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"Tenmau" character varying(10)[] COLLATE pg_catalog."default",
CONSTRAINT "Mausac_pkey" PRIMARY KEY ("Mamau")
);
1.7. BẢNG NHÀ CUNG CẤP
CREATE TABLE IF NOT EXISTS public."Nhacungcap"
(
"MaNCC" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"TenNCC" character varying(40)[] COLLATE pg_catalog."default",
"Diachi" text COLLATE pg_catalog."default",
"SDT" character(12)[] COLLATE pg_catalog."default",

21
"Email" character varying(32)[] COLLATE pg_catalog."default",
CONSTRAINT "Nhacungcap_pkey" PRIMARY KEY ("MaNCC")
);
1.8. BẢNG NHÂN VIÊN
CREATE TABLE IF NOT EXISTS public."Nhanvien"
(
"MaNV" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"TenNV" character varying(30)[] COLLATE pg_catalog."default",
"Gioitinh" character varying(10)[] COLLATE pg_catalog."default",
"Ngaysinh" date,
"Diachi" text COLLATE pg_catalog."default",
"SDT" character(12)[] COLLATE pg_catalog."default",
"Email" character varying(32)[] COLLATE pg_catalog."default",
CONSTRAINT "Nhanvien_pkey" PRIMARY KEY ("MaNV")
);
1.9. BẢNG PHIẾU NHẬP
CREATE TABLE IF NOT EXISTS public."Phieunhap"
(
"MaPN" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"MaNCC" character(10)[] COLLATE pg_catalog."default",
"MaNV" character(10)[] COLLATE pg_catalog."default",
"NgayLap" date,
CONSTRAINT "Phieunhap_pkey" PRIMARY KEY ("MaPN")
);
1.10. BẢNG SẢN PHẨM
CREATE TABLE IF NOT EXISTS public."Sanpham"
(
"MaSP" character(10)[] COLLATE pg_catalog."default" NOT NULL,
"TenSP" character varying(40)[] COLLATE pg_catalog."default",
"Masize" character(10)[] COLLATE pg_catalog."default",
"Mamau" character(10)[] COLLATE pg_catalog."default",
"Sltontoida" integer,
"Sltontoithieu" integer,
CONSTRAINT "Sanpham_pkey" PRIMARY KEY ("MaSP")
);
2. Mối liên hệ giữa các bảng
ALTER TABLE IF EXISTS public."ChitietHD"
ADD FOREIGN KEY ("MaHD")

22
REFERENCES public."Hoadon" ("MaHD") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."ChitietHD"


ADD FOREIGN KEY ("MaSP")
REFERENCES public."Sanpham" ("MaSP") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."ChitietPN"


ADD FOREIGN KEY ("MaPN")
REFERENCES public."Phieunhap" ("MaPN") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."ChitietPN"


ADD FOREIGN KEY ("MaSP")
REFERENCES public."Sanpham" ("MaSP") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."Hoadon"


ADD FOREIGN KEY ("MaNV")
REFERENCES public."Nhanvien" ("MaNV") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."Hoadon"


ADD FOREIGN KEY ("MaKH")
REFERENCES public."Khach_Hang" ("MaKH") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION

23
NOT VALID;

ALTER TABLE IF EXISTS public."Phieunhap"


ADD FOREIGN KEY ("MaNV")
REFERENCES public."Nhanvien" ("MaNV") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."Phieunhap"


ADD FOREIGN KEY ("MaNCC")
REFERENCES public."Nhacungcap" ("MaNCC") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."Sanpham"


ADD FOREIGN KEY ("Masize")
REFERENCES public."Kichco" ("Masize") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;

ALTER TABLE IF EXISTS public."Sanpham"


ADD FOREIGN KEY ("Mamau")
REFERENCES public."Mausac" ("Mamau") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
END;

3. Minh chứng CSDL đã được tạo trong PostgreSQL (PgAdmin 4)

24
25
KẾT LUẬN
Trên đây là phần nghiên cứu được thực hiện bởi nhóm 4. Trong quá trình tìm
tòi, nghiên cứu nhóm chúng em không thể tránh khỏi những thiếu xót trong bài
làm của mình. Chúng em kính mong nhận được lời hướng dẫn cũng như góp ý
từ Thầy. Chúng em xin chân thành cảm ơn.

TÀI LIỆU THAM KHẢO


1. Bài giảng CSDL thầy Phùng Tiến Hải

26

You might also like