TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT
KHOA CÔNG NGHỆ THÔNG TIN
-----o0o-----
BÀI TẬP LỚN
CƠ SỞ DỮ LIỆU PHÂN TÁN
Tên đề tài:
QUẢN LÝ BÁN HÀNG
GIÁO VIÊN HƯỚNG DẪN: Ths. BÙI THỊ NHƯ
NHÓM SINH VIÊN THỰC HIỆN: NGUYỄN VĂN DŨNG
BẠCH MINH TUẤN
LỚP: 72DCTT21
HÀ NỘI, 2024
0
MỤC LỤC
LỜI NÓI ĐẦU......................................................................................................................................1
PHÂN CHIA NHIỆM VỤ....................................................................................................................2
NỘI DUNG...........................................................................................................................................3
I. THIẾT KẾ CÁC HỆ CSDL PHÂN TÁN........................................................................................3
1.1.
Mơ hình cơ sở dữ liệu..........................................................................................................3
1.2.
Mơ hình cơ sở dữ liệu tập trung.........................................................................................5
1.3.
Thiết lập cơ sở dữ liệu.........................................................................................................5
1.4.
Cơ sở dữ liệu........................................................................................................................8
II. PHÂN MẢNH DỮ LIỆU................................................................................................................9
2.1.
Phân mảnh ngang................................................................................................................9
2.2.
Phân mảnh dọc..................................................................................................................10
2.3.
Phân mảnh hỗn hợp..........................................................................................................10
2.4.
Đồ thị phân mảnh và ảnh vật lý của quan hệ tổng thể...................................................11
IV. TỐI ƯU TRUY VẤN BẰNG THUẬT TOÁN INGRES............................................................16
4.1.
Cho biết tên các khách hàng đã mua sản phẩm có tên là “Mỳ hảo hảo chua cay “......16
4.2.
Đưa ra những nhân viên đã lập hố đơn cho những khách hàng có tên là “Nguyễn
Văn Dũng”......................................................................................................................................17
4.3.
Đưa ra tên sản phẩm được mua trong tháng 12.............................................................18
V. XÂY DỰNG CÂY ĐẠI SỐ QUAN HỆ VÀ RÚT GỌN CÂU TRUY VẤN...............................20
1. Cho biết tên sản phẩm thuộc loại Văn phịng phẩm và có giá > 10000...................................21
2. Đưa ra tên sản phẩm của NCC ở Hà Nội và được bán trong năm 2023.................................23
3. Đưa ra tên sản phẩm thuộc loại Thực phẩm, đã được bán ra ngày '07/08/2023' tổng hóa đơn
= 860000..........................................................................................................................................25
4. Đưa ra tên nhân viên trên 20 tuổi có lương >=4000000 và chức vụ khơng phải Quản lý......26
5. Tên khách hàng ở Hà Nội có hóa đơn do nhân viên 'Bạch Minh Tuấn' tạo ngày 10/12/2023
.........................................................................................................................................................27
KẾT LUẬN.........................................................................................................................................30
LỜI NÓI ĐẦU
Trong bối cảnh thị trường ngày càng cạnh tranh, quản lý bán hàng trở
thành một khía cạnh quan trọng đối với sự thành công của doanh nghiệp. Để
hiện đại hóa q trình này, đề tài quản lý bán hàng sử dụng cơ sở dữ liệu phân
tán nhằm tối ưu hóa việc thu thập, lưu trữ và truy cập thông tin. Báo cáo này tập
trung khám phá cách mà cơ sở dữ liệu phân tán có thể cung cấp giải pháp cho
các thách thức quản lý bán hàng hiện nay, đồng thời nâng cao hiệu suất và khả
năng đáp ứng nhanh chóng của hệ thống.
Báo cáo này tập trung vào quản lý bán hàng trong bối cảnh môi trường
kinh doanh đang thay đổi nhanh chóng, đặt ra nhiều thách thức và cơ hội mới.
Trong môi trường này, việc sử dụng cơ sở dữ liệu phân tán trở nên quan trọng
để đáp ứng sự phức tạp và đa dạng của thông tin liên quan đến quản lý bán hàng.
Thị trường hiện đại đặt ra yêu cầu cao về sự linh hoạt và tốc độ phản ứng
trong quản lý bán hàng. Các doanh nghiệp đang phải đối mặt với sự thay đổi
nhanh chóng của xu hướng tiêu dùng, biến động trong chuỗi cung ứng, và áp lực
từ đối thủ cạnh tranh. Điều này đặt ra thách thức lớn cho quá trình quản lý bán
hàng, yêu cầu một hệ thống thông tin linh hoạt và mạnh mẽ.
Cơ sở dữ liệu phân tán mang lại sự linh hoạt và khả năng mở rộng cần
thiết để đối mặt với sự biến động của thị trường. Thay vì sự tập trung, thơng tin
được phân tán trên nhiều nút, giảm thiểu rủi ro mất dữ liệu và đồng thời tối ưu
hóa việc truy cập thơng tin từ nhiều nguồn. Điều này cực kỳ quan trọng trong
việc quản lý khách hàng, theo dõi hàng tồn kho, và đáp ứng nhanh chóng với
nhu cầu thị trường.
Cơ sở dữ liệu phân tán không chỉ cung cấp sự linh hoạt mà cịn giảm áp
lực lên hệ thống khi có sự tăng trưởng. Tuy nhiên, đồng thời nó đặt ra thách thức
trong việc duy trì tính nhất qn dữ liệu và đảm bảo bảo mật. Quản lý hiệu suất
và khả năng mở rộng là những yếu tố cần được xem xét cẩn thận.
Báo cáo sẽ đi sâu vào nghiên cứu về cách cơ sở dữ liệu phân tán có thể
được triển khai trong mơi trường quản lý bán hàng. Nó sẽ xem xét các mơ hình
cơ sở dữ liệu phân tán hiện đại, đồng thời tập trung vào ưu điểm và thách thức
cụ thể khi tích hợp chúng vào quy trình quản lý bán hàng.
Báo cáo này nhằm đưa ra cái nhìn sâu rộng về tầm quan trọng của cơ sở
dữ liệu phân tán trong quản lý bán hàng. Qua đó, hy vọng rằng những kiến thức
thu được sẽ giúp doanh nghiệp hiểu rõ hơn về lợi ích và thách thức của việc áp
dụng cơng nghệ này, từ đó đưa ra quyết định thông minh và hiệu quả trong việc
quản lý nguồn lực và tối ưu hóa quy trình kinh doanh.
Chúng em xin cảm ơn Ths. Bùi Thị Như đã cung cấp cho chúng em các
kiến thức từ cơ bản đến chun sâu để chúng em có thể hồn thiện bản báo cáo
này. Trong q trình làm báo cáo, chúng em có thể sẽ mắc những lỗi sai, khuyết
thiếu. Mong thầy cô giảng viên có thể giải thích và giúp đỡ chúng em hoàn thiện
bản thân.
Chúng em xin chân thành cảm ơn.
PHÂN CHIA NHIỆM VỤ
Tên thành viên
Nguyễn Văn Dũng
Bạch Minh Tuấn
Câu 1
Câu 2
x
x
Câu 3
Câu 4
x
x
Câu 5
x
NỘI DUNG
I. THIẾT KẾ CÁC HỆ CSDL PHÂN TÁN
1.1.
Mơ hình cơ sở dữ liệu
1.1.1. Nhân Viên
Tên trường
Kiểu
Độ rộng Giải thích
manv
Varchar
10
Khóa chính, Mã nhân viên
tennv
Nvarchar
100
Tên nhân viên
ngaysinh
Date
Ngày sinh
ngaylamviec
Date
Ngày làm việc
diachi
Nvarchar
100
Địa chỉ
sdt
Varchar
10
Số điện thoại
chucvu
Nvarchar
50
Chức vụ
1.1.2. Luong
Tên trường
Kiểu
Độ rộng
Giải thích
chucvu
Nvarchar
50
Khóa chính, Chức vụ
luongcoban
Money
Luong cơ bản
phucap
Money
Phụ cấp
1.1.3. Khách hàng
Tên trường
Kiểu
Độ rộng Giải thích
makh
Varchar
10
Khóa chính, Mã khách hàng
tenkh
Nvarchar
100
Tên khách hàng
gioitinh
nvarchar
15
Giới tính
diachi
Nvarchar
100
Địa chỉ
sdt
Varchar
10
Số điện thoại
email
Varchar
100
email
1.1.4. Loại sản phẩm
Tên trường
Kiểu
Độ rộng Giải thích
maloaisp
Varchar
10
Khóa chính, Mã loại sản phẩm
tenloaisp
Nvarchar
100
Tên loại sản phẩm
1.1.5. Sản phẩm
Tên trường
Kiểu
Độ rộng
Giải thích
masp
Varchar
10
Khóa chính, Mã sản phẩm
tensp
Nvarcha
r
100
maloaisp
Varchar
10
Mã loại sản phẩm
mancc
Varchar
10
Mã nhà cung cấp
gia
Money
Mã giá
soluong
Int
Số Luong sản phẩm
Tiêu đề sản phẩm
1.1.6. Nhà cung cấp
Tên trường
Kiểu
Độ rộng
Giải thích
mancc
Varchar
10
Khóa chính, Mã nhà cung cấp
tenncc
Nvarchar
100
Tên nhà cung cấp
diachi
Nvarchar
100
Địa chỉ
sdt
Varchar
10
Số điện thoại
1.1.7. Đơn hàng
Tên trường
Kiểu
Độ rộng
Giải thích
madh
Varchar
10
Khóa chính, Mã đơn hàng
manv
Varchar
10
Mã nhân viên
makh
Varchar
10
Mã khách hàng
diachi
Nvarchar
100
Địa chỉ
ngaydat
Date
Ngày đặt
ngaygiao
Date
Ngày giao
1.1.8. Chi tiết đơn hàng
Tên trường
Kiểu
Độ rộng
Giải thích
madh
Varchar
10
Khóa chính, Mã đơn hàng
masp
Varchar
10
Khóa chính, Mã sản phẩm
gia
Money
Gía sản phẩm
soluong
Int
Số Luong sản phẩm
giamgia
Money
Tiền giảm giá
1.2.
Mơ hình cơ sở dữ liệu tập trung
1.3.
Thiết lập cơ sở dữ liệu
1. Tạo CSDL Websitebanhoa
CREATE DATABASE Website_ flower
USE Website_flower
2. Tạo bảng Nhân viên
CREATE TABLE NhanVien
(
manv
VARCHAR (10) PRIMARY KEY NOT NULL,
tennv
NVARCHAR (100),
ngaysinh
DATE,
ngaylamviec
DATE,
dichi
NVARCHAR (100),
sdt
VARCHAR (50),
chucvu
NVARCHAR(50),
)
3. Tạo bảng Luong
CREATE TABLE Luong
(
chucvu
NVARCHAR(50) PRIMARY KEY NOT NULL,
luongcoban
MONEY,
phucap
MONEY
)
4. Tạo bảng Khách hàng
CREATE TABLE KhachHang
(
makh
VARCHAR (10) PRIMARY KEY NOT NULL,
tenkh
NVARCHAR (100),
dichi
NVARCHAR (100),
sdt
VARCHAR (50),
email
VARCHAR (50)
)
5. Tạo bảng Loại sản phẩm
CREATE TABLE LoaiSP
(
maloaisp
VARCHAR (10) PRIMARY KEY NOT NULL,
tenloaisp
NVARCHAR (100),
)
6. Tạo bảng Nhà cung cấp
CREATE TABLE NhaCungCap
(
mancc
VARCHAR (10) PRIMARY KEY NOT NULL,
dichi
NVARCHAR (100),
sdt
VARCHAR (50)
)
7. Tạo bảng Sản phẩm
CREATE TABLE SanPham
(
masp
VARCHAR (10) PRIMARY KEY NOT NULL,
tensp
NVARCHAR (100),
maloaisp
VARCHAR (10) NOT NULL,
mancc
VARCHAR (10) NOT NULL,
soluong
INT,
gia
MONEY ,
)
8. Tạo bảng Đơn hàng
CREATE TABLE DonHang
(
madh
VARCHAR (10) PRIMARY KEY NOT NULL,
manv
VARCHAR (10) NOT NULL,
makh
VARCHAR (10) NOT NULL,
dichi
NVARCHAR (100),
ngaydat
DATE,
ngaygiao
DATE
)
9. Tạo bảng Chi tiết đơn hàng
CREATE TABLE ChiTietDonHang
(
madh
VARCHAR (10) NOT NULL,
masp
VARCHAR (10) NOT NULL,
gia
MONEY,
soluong
INT,
giamgia
MONEY,
CONSTRAINT pk_ChiTietDonHang PRIMARY KEY (madh,masp)
)
10.Tạo Liên Kết Giữa Các Bảng Dữ Liệu
alter table SanPham
add constraint fk_nhacungcap
nhacungcap(mancc)
foreign
key
(mancc)
references
alter table SanPham
add constraint fk_loaisp foreign key (maloaisp) references loaisp(maloaisp)
alter table DonHang
add constraint fk_DonHang_khachhang foreign key (makh) references
khachhang(makh)
alter table DonHang
add constraint fk_DonHang_NhanVien foreign key (manv) references
NhanVien(manv)
alter table ChiTietDonHang
add constraint fk_chitiet_DonHang
DonHang(madh)
foreign
key
(madh)
references
foreign
key
(masp)
references
alter table ChiTietDonHang
add constraint fk_chitiet_SanPham
SanPham(masp)
1.4. Cơ sở dữ liệu
1.4.1. Nhân Viên
1.4.2. Luong
1.4.3. Nhà cung cấp
1.4.4. Loại sản phẩm
1.4.5. Sản phẩm
1.4.6. Khách hàng
1.4.7. Đơn hàng
1.4.8. Chi tiết đơn hàng
II. PHÂN MẢNH DỮ LIỆU
2.1.
Phân mảnh ngang
- Phân mảnh ngang quan hệ Luong được phân mảnh 3 mảnh theo các chức vụ:
● Luong1=σ chucvu=Quản lý ( Luong)
● Luong2=σ chucvu= Nhân viên } (Luong¿
● Luong3=σ chucvu=Thu ngân (Luong)
- Phân mảnh ngang quan hệ NhaCungCap được phân mảnh 3 mảnh theo các
chức vụ:
● NCC1=σ diachi=Hà Nội (NhaCungCap)
● NCC2=σ diachi=Thanh Hóa } (NhaCungCap ¿
● NCC3=σ diachi=Hồ Chí Minh (NhaCungCap)
- Phân mảnh ngang nguyên thủy trên quan hệ LoaiSP thành 4 mảnh ngang như
sau:
● LoaiSP1= σ maloaisp=DGD (LoaiSP)
● LoaiSP2=σ maloaisp=QA (LoaiSP)
● LoaiSP3=σ maloaisp=TP ( LoaiSP)
● LoaiSP4=σ maloaisp=VPP ( LoaiSP)
- Phân mảnh ngang dẫn xuất trên quan hệ SanPham theo quan hệ LoaiSP thành
4 mảnh:
● SanPham1 = SanPham
LoaiSP1
● SanPham2 = SanPham
LoaiSP2
● SanPham3 = SanPham
LoaiSP3
● SanPham4 = SanPham
LoaiSP4
2.2.
Phân mảnh dọc
- Quan hệ NhanVien được phân thành 2 mảnh dọc
● NhanVien1(manv, tennv, ngaysinh, ngaylamviec, diachi, sdt)
NV1 = π manv , tennv ,ngaysinh , ngaylamviec ,diachi , sdt ( NhanVien)
● NhanVien2 (manv, chucvu).
NV2 = π manv , Luong ( NhanVien)
2.3.
Phân mảnh hỗn hợp
- Quan hệ SanPham phân mảnh hỗn hợp thành 4 mảnh:
● SP1 (masp, maloaisp)
SP1 = π masp ,maloaisp (SanPham)
● SP2 (masp, mancc)
SP2 = π masp ,mancc ( SanPham)
● SP3 (masp, tensp, gia, soluong) với gia <= 500.000
SP3 = σ gia≤ 500000 (π masp, tensp, gia, soluong (SanPham))
● SP4 (masp, tensp, gia, soluong) với gia > 500.000
SP4 = σ gia>500000 ¿
2.4.
Đồ thị phân mảnh và ảnh vật lý của quan hệ tổng thể
Sơ đồ định vị tại các trạm làm việc được chia thành 3 trạm:
● SITE 1: NV1, NV2, Luong1, Luong2, NCC1, LoaiSP1, SP1, SP3, DH
● SITE 2: NV1, NCC2, LoaiSP1, LoaiSP2, LoaiSP3, LoaiSP4, SP2, SP4, DH
● SITE 3: NV1, NV2, Luong3, NCC3, LoaiSP3, SP3, SP4, KH, DH, CTDH
III. TRUY VẤN PHÂN MẢNH VÀ TRUY VẤN TÁI THIẾT
3.1. Truy vấn phân mảnh
3.1.1. Truy vân phân mảnh ngang
❖ Truy vấn trên bảng Luong
Phân mảnh Luong1:
select
* into Luong1
from
Luong
where
chucvu = 'Quản lý'
Phân mảnh Luong2:
select
* into Luong2
from
Luong
where
chucvu = 'Nhân viên'
Phân mảnh Luong3:
select
* into Luong3
from
Luong
where
chucvu = 'Thu ngân'
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt
Luong1 ⊆ Luong, Luong2 ⊆ Luong, Luong3 ⊆ Luong
Luong = Luong1 ∪ Luong2 ∪ Luong3
Luong1 ∩ Luong2 = ∅ , Luong1 ∩ Luong3 = ∅ , Luong2 ∩ Luong3 = ∅
❖ Truy vấn trên bảng NhaCungCap
Phân mảnh NCC1:
select
* into NCC1
from
NhaCungCap
where
diachi = 'Hà Nội'
Phân mảnh NCC2:
select
* into NCC2
from
NhaCungCap
where
diachi = 'Thanh Hóa'
Phân mảnh NCC3:
select
* into NCC3
from
NhaCungCap
where
diachi = 'Hồ Chí Minh'
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt
NCC1 ⊆ NhaCungCap, NCC2 ⊆ NhaCungCap, NCC3 ⊆ NhaCungCap
NhaCungCap = NCC1 ∪ NCC2∪ NCC3
NCC1 ∩ NCC2 = ∅ , NCC1 ∩ NCC3 = ∅ , NCC2 ∩ NCC3 = ∅
❖ Truy vấn trên bảng LoaiSP
Phân mảnh LoaiSP1:
select
* into LoaiSP1
from
LoaiSP
where
maloaisp = 'DGD'
Phân mảnh LoaiSP2:
select
* into LoaiSP2
from
LoaiSP
where
maloaisp = 'QA'
Phân mảnh LoaiSP3:
select
* into LoaiSP3
from
LoaiSP
where
maloaisp = 'TP'
Phân mảnh LoaiSP4:
select
* into LoaiSP4
from
LoaiSP
where
maloaisp = 'VPP'
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt
LoaiSP1⊆LoaiSP, LoaiSP2⊆LoaiSP, LoaiSP3⊆LoaiSP, LoaiSP4 ⊆ LoaiSP
LoaiSP1∩ LoaiSP2 = ∅ , LoaiSP1∩ LoaiSP3= ∅ , LoaiSP1∩ LoaiSP4= ∅
LoaiSP2 ∩ LoaiSP3 = ∅ , LoaiSP2∩ LoaiSP4= ∅ , LoaiSP3∩ LoaiSP4= ∅
LoaiSP = LoaiSP1 ∪ LoaiSP2 ∪ LoaiSP3 ∪ LoaiSP4
3.1.2. Truy vấn phân mảnh dọc
❖ Truy vấn trên bảng NhanVien
Phân mảnh NV1:
select
manv, tennv, ngaysinh, ngaylamviec, diachi, sdt into NV1
from
NhanVien
Phân mảnh NV2:
select
manv, chucvu into NV2
from
NhanVien
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt