You are on page 1of 45

HỌC VIỆN AN NINH NHÂN DÂN

KHOA AN NINH THÔNG TIN


----------

BÁO CÁO BÀI TẬP LỚN


HỌC PHẦN AN TOÀN CƠ SỞ DỮ LIỆU

CHỦ ĐỀ: THIẾT KẾ CSDL QUẢN LÝ HOẠT ĐỘNG CỦA


CỬA HÀNG THỜI TRANG

Họ và tên: Nguyễn Quang Ánh


Lớp: B14D51
SBD: 02

HÀ NỘI, 2023
MỤC LỤC
DANH MỤC HÌNH ẢNH.........................................................................................4

DANH MỤC BẢNG..................................................................................................5

LỜI MỞ ĐẦU............................................................................................................6

CHƯƠNG I: XÁC ĐỊNH YÊU CẦU BÀI TOÁN QUẢN LÝ CỬA HÀNG QUẦN
ÁO..............................................................................................................................7

1. BÀI TOÁN QUẢN LÝ CỬA HÀNG QUẦN ÁO.............................................7

1.1. Đặt vấn đề.....................................................................................................7

1.2. Xây dựng hệ thống quản lý cửa hàng quần áo.............................................7

2. Tổng quan về hệ thống quản lý cửa hàng quần áo.............................................9

2.1. Mục đích hệ thống........................................................................................9

2.2. Yêu cầu hệ thống..........................................................................................9

CHƯƠNG II THIẾT KẾ HỆ THỐNG.....................................................................11

1. Mô hình thực thể liên kết..................................................................................11

1.1. Xác định tập thực thể và mối quan hệ........................................................11

1.2. Sơ đồ thực thể ER......................................................................................12

2. Mô hình quan hệ...............................................................................................14

3. Cài đặt cơ sở dữ liệu.........................................................................................14

3.1. Tạo các bảng...............................................................................................14

3.2. Ràng buộc toàn vẹn....................................................................................18

3.3. Biểu đồ cơ sở dữ liệu..................................................................................19

3.4. Nhập dữ liệu cho các bảng.........................................................................19

2
3.5. Sao lưu và phục hồi dữ liệu........................................................................33

3.6. Nhân bản và đồng bộ hóa dữ liệu...............................................................34

CHƯƠNG III. XÂY DỰNG GIAO DIỆN..............................................................36

1. Cấp quyền người dùng......................................................................................36

2. Giao diện chính.................................................................................................38

KẾT LUẬN..............................................................................................................44

TÀI LIỆU THAM KHẢO........................................................................................45

3
DANH MỤC HÌNH ẢNH
Trang

Hình 2.1 Mô hình liên kết thực thể ER....................................................................13


Hình 2.2 Biểu đồ cơ sở dữ liệu................................................................................19
Hình 2.3 Dữ liệu trên máy Publisher.......................................................................35
Hình 2.4 Dữ liệu trên máy Subscriber.....................................................................35
Hình 3.1 Giao diện khi đăng nhập với tài khoản admin..........................................37
Hình 3.2 Giao diện khi đăng nhập với quyền nhân viên bán hàng..........................37
Hình 3.3. Giao diện đăng nhập.................................................................................38
Hình 3.4. Giao diện trang chủ của chương trình......................................................39
Hình 3.5 Giao diện quản lý nhân viên......................................................................39
Hình 3.6. Giao diện quản lý lương nhân viên..........................................................40
Hình 3.7. Giao diện quản lý sản phẩm.....................................................................40
Hình 3.8. Giao diện quản lý hóa đơn nhập hàng......................................................41
Hình 3.9. Giao diện quản lý hóa đơn bán hàng........................................................41
Hình 3.10. Giao diện quản lý khách hàng................................................................42
Hình 3.11. Giao diện quản lý nhà cung cấp.............................................................42
Hình 3.12 Giao diện quản lý tài khoản....................................................................43
Hình 3.13. Giao diện đổi mật khẩu..........................................................................43

4
DANH MỤC BẢNG
Trang

Bảng 2.1. Bảng Nhà cung cấp..................................................................................15


Bảng 2.2 Bảng nhân viên.........................................................................................15
Bảng 2.3 Bảng lương nhân viên...............................................................................15
Bảng 2.4 Bảng khách hàng.......................................................................................16
Bảng 2.5 Bảng sản phẩm..........................................................................................16
Bảng 2.6 Bảng loại hàng..........................................................................................16
Bảng 2.7 Bảng kho...................................................................................................16
Bảng 2.8 Bảng trưng bày.........................................................................................17
Bảng 2.9 Bảng nhập hàng........................................................................................17
Bảng 2.10 Bảng chi tiết hóa đơn nhập.....................................................................17
Bảng 2.11 Bảng hóa đơn bán...................................................................................18
Bảng 2.12 Bảng chi tiết hóa đơn bán.......................................................................18
Bảng 3.1 Ma trận điều khiển truy cập hệ thống.......................................................38

5
LỜI MỞ ĐẦU
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả
chiều rộng và sâu. Máy tính điện tử đang ngày càng trở thành một công cụ làm việc
và giải trí thông dụng của con người, không chỉ ở nơi làm việc mà còn ngay cả
trong gia đình. Đặc biệt là công nghệ thông tin được áp dụng trên mọi lĩnh vực kinh
tế, chính trị, xã hội… Ứng dụng công nghệ thông tin và tin học hóa được xem là
một trong yếu tố mang tính quyết định trong hoạt động của quốc gia, tổ chức và
trong cả các cửa hàng. Nó đóng vai trò hết sức quan trọng và có thể tạo nên bước
đột phá mạnh mẽ.
Trong hoạt động sản xuất, kinh doanh, thương mại điện tử đã khẳng định tầm
quan trọng của việc ứng dụng công nghệ thông tin. Đối với một cửa hàng, việc
quản lý công việc kinh doanh sản phẩm sẽ là vô cùng cần thiết. Do đó, sản phẩm
của em tập trung vào việc nghiên cứu và đề xuất một hệ thống quản lý shop thời
trang đáp ứng được các yêu cầu quản lý hiện đại và đồng thời tận dụng lợi ích của
công nghệ thông tin. Hệ thống này sẽ giúp cải thiện quy trình quản lý hàng hóa,
theo dõi doanh thu, tương tác với khách hàng và nâng cao hiệu quả kinh doanh của
cửa hàng thời trang. Em sẽ trình bày các phân tích, thiết kế và triển khai của hệ
thống, cùng với các lợi ích và tiềm năng mà nó mang lại cho doanh nghiệp.
Mục tiêu của bài báo cáo về hệ thống này là để cung cấp một cái nhìn toàn
diện về cách xây dựng một hệ thống quản lý shop thời trang hiệu quả, từ việc quản
lý sản phẩm, quản lý kho hàng, quản lý đơn hàng, ... Việc sử dụng cơ sở dữ liệu
SQL Server kết hợp với giao diện được xây dựng bằng Visual Studio giúp xây
dựng cho người dùng những form tương ứng với các yêu cầu mà bài toán đặt ra,
quản lý thông tin dễ dàng. Ngoài ra với phần mềm quản lý ta có thể từ xa truy cập
và xem thông tin về thu nhập, quản lý doanh thu hàng ngày đảm bảo tính chính xác
và nhanh chóng trong từng khâu quản lý đem lại doanh thu cao cho cửa hàng.

6
CHƯƠNG I: XÁC ĐỊNH YÊU CẦU BÀI TOÁN QUẢN LÝ CỬA HÀNG
QUẦN ÁO
1. BÀI TOÁN QUẢN LÝ CỬA HÀNG QUẦN ÁO
1.1. Đặt vấn đề
Đối với một cửa hàng, việc quản lý công việc kinh doanh sản phẩm là vô cùng
cần thiết. Công việc đó hiện còn đang làm rất thủ công tại rất nhiều nơi và chính vì
thế nó mang lại hiệu quả không cao. Nhiều cửa hàng quần áo hiện nay ở những
vùng địa phương chưa phát triển vẫn đang dùng hệ thống quản lý trên Microsoft
Excel hay thậm chí bằng tay. Công việc hàng ngày bao gồm:
- Quản lý việc nhập hàng hóa
- Quản lý nhân viên làm việc
- Quản lý lượng hàng bán ra
- Quản lý doanh thu, lợi nhuận
- Quản lý lượng hàng tồn kho
Công việc quản lý còn hết sức thủ công và đòi hỏi nhiều kỹ năng của người lý.
Ví dụ: hàng ngày, khi người quản lý bán được một món hàng, họ sẽ phải xuất ra từ
kho món hàng đó, đồng thời cộng vào doanh thu của cửa hàng… do đó, thời gian
nhập thông tin mất nhiều, nếu khối lượng công việc nhiều thì khả năng theo dõi,
thống kê, tổng hợp dễ bị nhầm lẫn, khó đảm bảo độ tin cậy …Vì thế, một hệ thống
quản lý cửa hàng quần áo là vô cùng cần thiết.
1.2. Xây dựng hệ thống quản lý cửa hàng quần áo
Hiện nay tại Việt Nam, các cửa hàng bán lẻ đang mọc lên với tốc độ chóng
mặt và với quy mô ngày càng lớn. Tuy nhiên, nhiều cửa hàng chưa thực sự phát
triển và đạt được doanh số như mong đợi. Nguyên nhân xuất phát từ việc các
nguồn lực chưa được khai thác và sử dụng một cách có hiệu quả.
Với các cửa hàng kinh doanh theo lối kinh doanh truyền thống, các chủ cửa
hàng vẫn quản lý bán hàng bằng sổ sách. Việc ghi chép có một lợi thế là sẽ khiến
7
người quản lý có thể nhớ lâu hơn lượng hàng hóa cũng như số liệu liên quan khi họ
đã ghi chép ra sổ. Và để quản lý cửa tại hàng hiệu quả bạn hãy làm mới cuốn sổ
quản lý của mình bằng cách chia cột và phân chia rõ ràng đơn hàng cho từng ngày.
Thế nhưng việc sao lưu lại thông tin rất khó khăn và khó đồng bộ, chưa kể tới sách
vở ghi chép rất dễ bị hư hỏng, thất lạc.
Tiếp theo việc không xác định được mức tồn kho định kỳ sẽ ảnh hưởng đến
việc hàng hóa bị hỏng hóc, hết hạn và thất thoát đi mà các chủ cửa hàng không biết
được. Đến khi cần tìm để giao cho khách hàng thì không có, điều này ảnh hưởng
đến doanh thu và uy tín của cửa hàng.
Cho nên chúng ta cần kiểm kê định kỳ hàng hóa tồn kho để có thể kịp thời đưa
ra quyết định. Ví dụ như đưa ra các chương trình giảm giá, khuyến mãi để bán đi số
hàng tồn kho sắp hết hạn. Hoặc nhập thêm hàng đối với những sản phẩm ở kho bán
sắp hết. Chính vì vậy, khi quản lý cửa hàng, người quản lý sẽ cần phải nắm rõ được
các biện pháp khắc phục, cũng như tận dụng tối đa chất lượng nguồn lực tại cửa
hàng, giúp cửa hàng phát triển hơn. Hiện nay với sự phát triển của công nghệ thông
tin, việc quản lý bán hàng đã dễ dàng và nhanh chóng hơn với việc áp dụng máy
móc, thiết bị vào trong quá trình kinh doanh. Phần mềm bán hàng tạp hoá, cách
quản lý cửa hàng bán lẻ là tích hợp hiệu quả với giao diện đơn giản, dễ dàng sử
dụng cho phép bất cứ cửa hàng kinh doanh nào. Từ quản lý hàng hóa, quản lý tồn
kho cho nhanh chóng, báo cáo bất cứ thời điểm nào để chúng ta có thể thấy kết
được kết quả hoạt động kinh doanh diễn ra như thế nào, đâu là sản phẩm đang bán
chạy, đâu là sản phẩm cần tiêu thụ trước khi hết mùa vụ.
Với yêu cầu từ thực trạng như vậy, em sẽ khắc phục những khó khăn và xây
dựng một hệ thống quản lí cửa hàng quần áo nhằm hỗ trợ cho quá trình quản lí
được tốt hơn, tránh sai xót, thuận tiện trong quá trình quản lí cửa hàng quần áo, bảo
đảm được những yêu cầu sau:
+ Phần mềm vận hành đơn giản, dễ sử dụng.
8
+ Tổ chức quản lý, lưu trữ trên hệ thống máy tính.
+ Giao diện trực quan bằng tiếng Việt, các form nhập liệu đơn giản, dễ thao
tác.
+ Phù hợp với việc triển khai trên diện rộng.
+ Đầy đủ chức năng: thêm, sửa, xóa, …, dễ dàng chỉnh sửa, tìm kiếm.
Với chương trình này, các nhà quản lý có thể kiểm tra, theo dõi cửa hàng quần
áo của mình, có thể điều chỉnh thay đổi một cách hợp lý và nhanh chóng. Bên cạnh
đó còn giúp cho các nhà quản lý tiết kiệm được khá nhiều thời gian cũng như chi
phí để lưu trữ dữ liệu về cửa hàng quần áo.
2. Tổng quan về hệ thống quản lý cửa hàng quần áo
2.1. Mục đích hệ thống
Phần mềm quản lý cửa hàng quần áo có quy trình từ khâu nhập hàng đến khâu
bán hàng. Cửa hàng nhập những sản phẩm đẹp, uy tín từ các nhà cung cấp hàng
đầu Việt Nam, từ kiểu dáng đến chất liệu, đa dạng về kiểu dáng cho mọi lứa tuổi.
Nhân viên sẽ chịu trách nhiệm liên hệ và kiểm tra, lập hóa đơn nhập và thanh toán
cho các lô hàng đến từ nhà cung cấp. Từng hóa đơn nhập sẽ có mã hoá đơn nhập,
thông tin nhà cung cấp, thời gian nhập và tổng tiền. Mỗi nhân viên sẽ có mã nhân
viên, tên nhân viên, địa chỉ, giới tính. Mỗi sản phẩm trong cửa hàng đều có mã sản
phẩm, thông tin xuất xứ, thương hiệu và phân loại cụ thể trên kệ riêng, thuận tiện
cho khách hàng trong việc tìm kiếm và lựa chọn sản phẩm ưng ý. Sau khi được
nhân viên tư vấn, khách hàng ra quầy thanh toán tiền hàng đã mua cho nhân viên
thu ngân để thanh toán hoá đơn bán. Mỗi hoá đơn bán bao gồm mã hoá đơn bán,
thông tin khách hàng, thời gian xuất hoá đơn, đơn giá các mặt hàng, số lượng và
mã giảm giá (nếu có). Khách hàng sẽ vui lòng cho cửa hàng xin lại thông tin liên
hệ, để cửa hàng có thể nhận được những phản hồi, góp ý thực tế của khách hàng
sau một thời gian sử dụng sản phẩm, để cửa hàng ngày càng cải tiến tốt hơn về chất
lượng sản phẩm và dịch vụ.
9
2.2. Yêu cầu hệ thống
Hệ thống có 3 phần riêng với sự quản lý của 3 người với từng chức năng khác
nhau: Người quản lý hệ thống, người quản lý nhân sự, nhân viên bán hàng.Với từng
chức năng riêng biệt sẽ có các người dùng được phân quyền để có thể thêm sửa,
xóa các phần như “nhân viên”, “quản lý”, “hàng hóa”. Hệ thống được xây dựng
đảm bảo tính bảo mật, toàn diện và sẵn sàng để đảm bảo cung cấp tốt các chức
năng cho người sử dụng.

10
CHƯƠNG II THIẾT KẾ HỆ THỐNG
1. Mô hình thực thể liên kết
1.1. Xác định tập thực thể và mối quan hệ
- Mỗi nhà cung cấp sẽ có thông tin về mã nhà cung cấp(ID_NCC) duy nhất,
tên nhà cung cấp (Ten_NCC), địa chỉ (DiaChi), số điện thoại (SDT) và thuộc tính
ghi chú về nhà cung cấp (GhiChu). Mỗi bệnh nhân có thể có nhiều hóa đơn xét
nghiệm và nhiều hóa đơn thuốc.
- Mỗi nhân viên có một mã nhân viên (ID_NV) duy nhất, họ và tên
(TenBacSi), giới tính(GT), địa chỉ (DiaChi), số điện thoại (SDT), chức vụ
(Chuc_vu). Nhân viên tùy theo chức vụ sẽ thực hiện các công việc khác nhau và có
quyền truy cập khác nhau trong hệ thống. Nhân viên sẽ nhận lương theo từng tháng
và tiền thưởng thêm mỗi tháng.
- Khách hàng khi đến mua hàng sẽ để lại thông tin cá nhân gồm Mã khách
hàng (ID_KH) duy nhất, Tên khách hàng (Ten_KH), Ngày sinh (Ngay_sinh), Địa
chỉ (Dia_Chi), Số điện thoại (SDT).
- Sản phẩm được cửa hàng quản lý với những thông tin gồm mã sản phẩm
(ID_SP), tên sản phẩm (Ten_SP), loại hàng(Loai_hang), xuất xứ (Xuat_xu), thương
hiệu (Thuong_hieu), giá nhập (Gia_nhap), giá bán (Gia_ban). Sản phẩm được lưu
trữ trong Kho, và trưng bày trên các kệ hàng của cửa hàng.
- Mỗi hóa đơn nhập hàng có thông tin mã hóa đơn nhập (ID_Nhap) duy nhất,
người lập hóa đơn (Nguoi_Lap), mã nhà cung cấp (MaNhaCungCap), thòi gian
nhập hàng (Thoi_Gian_Nhap) và thành tiền (ThanhTien).
- Mỗi chi tiết hóa đơn nhập có mã chi tiết hóa đơn nhập(ID_ChiTietNhap), mã
hóa đơn nhập(ID_Nhap), mã sản phẩm (ID_SanPham), số lượng (SoLuong), đơn
giá (DonGia), thành tiền (ThanhTien).

11
- Mỗi hóa đơn bán có thông tin mã hóa đơn bán (ID_Ban) duy nhất, nhân viên
lập hóa đơn (Nguoi_Lap), mã khách hàng (MaKhachHang), thời gian bán hàng
(Thoi_Gian_Ban), giảm giá (GiamGia) và thành tiền (ThanhTien).
- Mỗi chi tiết hóa đơn nhập có mã chi tiết hóa đơn nhập (ID_ChiTietBan), mã
hóa đơn nhập(ID_Ban), mã sản phẩm (ID_SanPham), số lượng (SoLuong), đơn giá
(DonGia), phần trăm giảm giá (GiamGia), thành tiền (ThanhTien).
1.2. Sơ đồ thực thể ER
Trong sơ đồ hệ thống, các thực thể có mối liên hệ với nhau như sau:
- Quan hệ 1- n giữa “nhân viên” và “nhà cung cấp”. Mỗi nhân viên có thể
thực hiện việc nhập hàng từ nhiều nhà cung cấp.
- Quan hệ 1- n giữa “nhân viên” và “Hóa đơn nhập”. Một nhân viên có thể
lập nhiều hóa đơn.
- Quan hệ 1 – n giữa “Hóa đơn nhập” và “Chi tiết hóa đơn nhập”. Một hóa
đơn nhập có thể có nhiều chi tiết hóa đơn
- Quan hệ 1 – 1 giữa “Chi tiết hóa đơn nhập và “Sản phẩm”.
- Quan hệ 1 – n giữa “Kho” và “Sản phẩm”. Một kho có thể chứa nhiều sản
phẩm
- Quan hệ n – n giữa “Sản phẩm và “Trưng bày”. Một sản phẩm được trưng
bày trên nhiều kệ khác nhau và ngược lại một kệ có thể trưng bày nhiều loại sản
phẩm.
- Quan hệ 1 – 1 giữa “Sản phẩm” và “Loại hàng”.
- Quan hệ 1 – 1 giữa “Nhân viên” và “Lương”. Một nhân viên sẽ có một mức
lương theo mỗi tháng
- Quan hệ 1 – n giữa “Nhân viên” và “Khách hàng”.
- Quan hệ 1- n giữa “Nhân viên” và “Hóa đơn bán”.
- Quan hệ 1 – n giữa “Hóa đơn bán” và “Chi tiết hóa đơn bán”.
- Quan hệ 1 – 1 giữa “Chi tiết hóa đơn bán và “Sản phẩm”
12
Hình 2.1 Mô hình liên kết thực thể ER
13
2. Mô hình quan hệ
Từ mô hình thực thể trên ta xây dựng được mô hình quan hệ:
- Nhà cung cấp: (ID_NCC, Ten_NCC, DiaChi, SDT, GhiChu).
- Nhân viên: (ID_NV, Ten_NV, Ngay_Sinh, GT, Dia_Chi, So_DT, Chuc_vu).
- Lương nhân viên: (ID_Luong, ID_NV, Thang, Luong, Thuong)
- Khách hàng: (ID_KH, Ten_KH, Ngay_sinh, Dia_Chi, SDT).
- Sản phẩm: (ID_SP, Ten_SP, MaLoaiHang, Xuat_xu, Thuong_hieu,
Gia_nhap, Gia_ban).
- Loại hàng: (MaLoaiHang, TenLoaiHang)
- Kho: (ID_SP, Ten_SP, So_Luong)
- Trưng bày: (ID_TrungBay, ID_SP, MaKeHang, TinhTrang)
- Hóa đơn nhập: (ID_Nhap, Nguoi_Lap, MaNhaCungCap, Thoi_Gian_Nhap,
ThanhTien).
- Chi tiết hóa đơn nhập: (ID_ChiTietNhap, ID_Nhap, ID_SanPham, SoLuong,
DonGia, ThanhTien).
- Hóa đơn bán: (ID_Ban, Nguoi_Lap, MaKhachHang, Thoi_Gian_Ban,
GiamGia, ThanhTien).
- Chi tiết hóa đơn bán: (ID_ChiTietBan, ID_Ban, ID_SanPham, SoLuong,
DonGia, GiamGia, ThanhTien).
3. Cài đặt cơ sở dữ liệu
3.1. Tạo các bảng
- Bảng Nhà cung cấp (Tb_NCC):
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID_NCC INT
2 Ten_NCC NVARCHAR
3 DiaChi NVARCHAR

14
4 SDT NCHAR
5 GhiChu NVARCHAR
Bảng 2.1. Bảng Nhà cung cấp
- Nhân viên (Tb_NV)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID_NV INT
2 Ten_NV NVARCHAR
3 Ngay_Sinh DATE
4 GT NVARCHAR
5 Dia_Chi NVARCHAR
6 So_DT NCHAR
7 Chuc_vu NVARCHAR
Bảng 2.2 Bảng nhân viên
- Lương nhân viên (Tb_Luong)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID_Luong INT
2 ID_NV INT
3 Thang NCHAR
4 Luong INT
5 Thuong INT
Bảng 2.3 Bảng lương nhân viên
- Khách hàng (Tb_Khach_hang)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID_Khach INT
2 Ho_Ten NVARCHAR
3 Ngay_Sinh DATE

15
4 Dia_Chi NVARCHAR
5 So_DT NCHAR
Bảng 2.4 Bảng khách hàng
- Sản phẩm (Tb_SanPham)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID_SP INT
2 Ma_Loai INT
3 Ten_SP NVARCHAR
4 Xuat_xu NVARCHAR
5 Thuong_Hieu NVARCHAR
6 Gia_nhap INT
7 Gia_ban INT
8 Ghi_Chu NVARCHAR
Bảng 2.5 Bảng sản phẩm
- Loại hàng (Tb_Loai_hang)
STT Tên trường Kiểu dữ liệu Ghi chú
1 Ma_Loai INT
2 Loai_Hang NVARCHAR
Bảng 2.6 Bảng loại hàng
- Kho (Tb_Kho)
STT Tên trường Kiểu dữ liệu Ghi chú
1 Ma_SP INT
2 Ten_SP NVARCHAR
3 So_luong INT
Bảng 2.7 Bảng kho
- Trưng bày (Tb_TrungBay)

16
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID INT
2 ID_SP INT
3 ID_Ke INT
4 Tinh_trang CHAR
Bảng 2.8 Bảng trưng bày
- Hóa đơn nhập (Tb_Nhap_hang)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID INT
2 ID_NV INT
3 ID_NCC INT
4 TG_Nhap DATE
5 Thanh_Tien INT
Bảng 2.9 Bảng nhập hàng
- Chi tiết hóa đơn nhập (Tb_HD_Nhap)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID INT
2 ID_Nhap INT
3 ID_SP INT
4 SL INT
5 Thanh_tien INT
Bảng 2.10 Bảng chi tiết hóa đơn nhập
- Hóa đơn bán (Tb_BanHang)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID_B INT
2 ID_NV INT

17
3 ID_Khach INT
4 Thoi_gian DATE
5 Giam_gia INT
6 Thanh_tien INT
Bảng 2.11 Bảng hóa đơn bán
- Chi tiết hóa đơn bán (Tb_HoaDonBan)
STT Tên trường Kiểu dữ liệu Ghi chú
1 ID INT
2 ID_HD INT
3 ID_SP INT
4 SL INT
5 Giam_gia INT
6 Thanh_Tien INT
Bảng 2.12 Bảng chi tiết hóa đơn bán
3.2. Ràng buộc toàn vẹn
Ràng buộc toàn vẹn trên một quan hệ:

+ Giới tính chỉ có thể là “nam” hoặc “nữ”

+ Số điện thoại phải là 10 chữ số.

+ Quyền trong bảng tài khoản chỉ có thể là “AD”(admin), “ME” (quản lý
nhân sự) hoặc “SE”(nhân viên bán hàng).

+ Dữ liệu các trường trong bảng không vượt quá kích cỡ đã thiết kế.

Ràng buộc toàn vẹn trên nhiều quan hệ:

+ Nhà cung cấp trong bảng Hóa đơn nhập phải tồn tại trong bảng nhà cung
cấp.

18
+ Nhân viên trong bảng lương và hóa đơn nhập, hóa đơn bán phải tồn tại
trong bảng nhân viên.

+ Thành tiền của hóa đơn bằng tổng tiền của các chi tiết hóa đơn.

+ Thành tiền của các chi tiết hóa đơn bằng tích của số lượng nhân với đơn
giá của sản phẩm.

3.3. Biểu đồ cơ sở dữ liệu

Hình 2.2 Biểu đồ cơ sở dữ liệu


3.4. Nhập dữ liệu cho các bảng
3.4.1. Nhập dữ liệu cho các bảng
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values ('1', 'The one HN' , 'Ha Noi', '096788653', null);
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values ('2', 'sunny AC', 'HO Chi Minh', '09568912', null);
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)

19
values ('3','Hoang Nam', 'HO Chi Minh' , '096797953', null);
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values ('4', 'HiHi Fashion' , 'Hai Duong' , '094599153',
null);
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values ('5', 'Red Rose', 'Lang son', '095789073', null) ;
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values ('6' , 'Seven Seven', 'Cao Bang ','097867753', null);
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values ('7' ,'Zero Nice','Thai Nguyen' ,'0967868756', null);
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values('8', 'White Fire' , 'Lang son' , '09123456', null);
Insert into Tb_NCC (ID_NCC,Ten_NCC,Dia_Chi,So_DT,Ghi_chu)
values('9', 'Ngoc Ha', 'Ha Noi' , '096788653', null);

INSERT INTO [dbo].[Tb_Loai_Hang]


([Ma_Loai]
,[Loai_Hang])
VALUES
(1,'Ao'),
(2,'Tat'),
(3,'Quan'),
(4,'Giay dep'),
(5,'Mu'),
(6,'That lung'),
(7,'Trang suc'),

20
(8,'Tui xach'),
(9,'Vay'),
(10,'Khan'),
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
values('1', 'Le Anh Thu', null, 'Ha Noi',null );
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
values('2', 'Le Ba Chi', null, 'Ha Nam', '0967456743');
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
values ('3' ,'Nguyen Gia Bao', null,'Ha Noi', '096785432') ;
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
Values ( '4' , 'Duong Kieu Anh' , null, 'Bac Ninh' , null) ;
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
Values ('5' , 'Nguyen Anh Hong' , null,'Bac Giang' ,
'0987567854 ' ) ;
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
Values ('6' , 'Cao Khanh An', null, 'Ha Noi' , null) ;
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
Values ('7' , 'Duong Hoa Binh', null,'Ha Nam', '83747282');

21
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
Values ('8' , 'Bui Thuy Linh' , null,null, null) ;
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
Values('9' , 'Ngo Van Hung' , null, null,null) ;
Insert into Tb_Khach_Hang (ID_Khach, Ho_Ten, Ngay_Sinh,
Dia_Chi, So_DT)
Values ('10', 'Luong Son Huy' , null,'Ha Noi ',
'095679543');

INSERT INTO Tb_NV (Ho_Ten,Ngay_Sinh,GT,Dia_Chi,So_DT,Chuc_vu)


VALUES
('Nguyễn Quang Ánh','2001-09-10',' Nam','Hà Nội','
0860107596','Nhân viên'),
('Nguyễn Hoàng Chương',' 2001-01-09','Nam','Long An','
0327887488','Đã thôi việc'),
('Vũ Tiến Hoàng','1999-12-06',' Nam','Bắc Ninh','
0239434395','NV Bán hàng'),
('Chử Bình Dương','2023-03-31',' Nam','Hòa Bình','
0131243434','Đã thôi việc'),
('Nguyễn Hữu Hiệu','2001-03-09',' Nam','Thanh
Hóa','0131223777','NV Bán hàng'),
('Nguyễn Lâm Huy','2001-04-15',' Nam','Đà Nẵng','
0946565666','NV Bán hàng')

22
('Nguyen Thi Nguyet Ha','2002-04-26',' Nữ ',' Bac
Giang','0987654321','NV Bán hàng'),
('Nguyen Van Tài','2002-04-18',' Nam','Thai Binh','
098789566 ','NV Nhap Hang'),
('Nguyen Huu Linh','1998-01-01',' Nữ ','Ha Noi','
056334329 ','NV Nhap Hang'),
('Le Minh Quang','2003-08-10',' Nam',' Hai Duong','
0658967222','NV Nhap Hang'),
('Nguyen Van Nam','1996-12-22',' Nam',' Quang Ninh','
0967924567',' Quan Ly'),
('Duong Ngoc Phuong','2000-05-23','Nữ ','Cao Bang','
0824214354','Pho QuanLy'),
('Nguyen Quoc Toan','2001-09-20',' Nam',' Ha Noi','
0989452234','QuanlyNS'),
('Bui Khanh Linh','2000-02-18','Nữ ','Ha Noi ','
095678991 ','QuanlyNS'),
('Doan Quoc Dam','2002-12-26','Nam','Bac Giang ','
0945643222','NV Nhap Hang'),
('Vu Anh Minh','2002-12-25','Nam','Bac Giang','
0945643456',' NV Nhap Hang');
INSERT INTO Tb_Luong (ID_NV,Thang,Luong,Thuong)
VALUES
(2,'4/2023',10000000,0),
(3,'4/2023',9000000,100000),
(5,'4/2023',9000000,100000),
(6,'4/2023',10000000,100000),

23
(7,'4/2023',12000000,0),
(8,'4/2023',10000000,100000),
(1,'4/2023',10000000,0),
(2,'5/2023',9000000,0),
(3,'5/2023',9000000,100000),
(5,'5/2023',10000000,0),
(6,'5/2023',10000000,100000),
(7,'5/2023',12000000,100000),
(8,'5/2023',10000000,0);
INSERT INTO Tb_San_Pham
(Ma_Loai,Ten_SP,Xuat_xu,Thuong_Hieu,Gia_nhap,Gia_ban,Ghi_Chu)
VALUES
(1,'Ao thun nam','My','Gucci',350000,400000,NULL),
(4,'Giay cao giot','
Phap','Givenchy',550000,600000,NULL),
(3,'Quan dai','Viet Nam''Viet Tien',450000,500000,NULL),
(7,'Dong ho bac','My','Gucci',1200000,1300000,NULL),
(9,'Vay da hoi','My' ,'Armani',1500000,1700000,NULL),
(10,'Khan lua','My','Fendi',550000,600000,NULL);
INSERT INTO Tb_Nhap_hang (ID_NV,ID_NCC,TG_Nhap,Thanh_Tien)
VALUES
(9,2,'2023-05-05',Null),
(11,4,'2023-05-07',Null),
(10,3,'2023-05-08',Null),
(9,7,'2023-06-07',Null);
INSERT INTO Tb_HD_Nhap

24
(ID_Nhap, ID_SP,SL,Thanh_tien)
VALUES
(1,1,2,Null),
(1,2,2,Null),
(2,3,20,Null),
(3,4,15,Null),
(4,6,45,Null),
(5,7,50,Null);
INSERT INTO Tb_Ban_Hang
(ID_NV,ID_Khach,Thoi_gian,Giam_gia,Thanh_tien)
VALUES
(6,3,'2023-06-02',Null,Null),
(7,2,'2023-05-29',Null,Null),
(7,8,'2023-05-02',Null,Null),
(6,5,'2023-06-01',Null,Null),
(7,4,'2023-07-02',Null,Null);
INSERT INTO Tb_Hoa_Don_Ban(ID_HD,
ID_SP,SL,Giam_gia,Thanh_Tien)
VALUES
(1,1,1,10,360000),
(2,3,1,10,450000),
(2,5,1,5,1235000),
(3,4,2,15,1020000)
(4,5,1,15,1105000),
(5,7,2,15,1020000),
(6,4,1,15,510000),

25
(5,2,1,0,600000);
3.4.2. Tạo các thủ tục truy vấn trong cơ sở dữ liệu
CREATE proc [dbo].[SP_Load_TbHDBan]
as
begin
update Tb_Ban_Hang
set
Thanh_Tien = (select sum(Tb_Hoa_Don_Ban.Thanh_Tien) from
Tb_Hoa_Don_Ban where Tb_Ban_Hang.ID_B = Tb_Hoa_Don_Ban.ID_HD )
SELECT a.ID_B,
a.Thoi_gian,b.ID_Khach,b.Ho_Ten,c.ID_NV,c.Ho_Ten,a.Giam_gia ,
a.Thanh_tien FROM Tb_Ban_Hang AS a, Tb_Khach_Hang AS b, Tb_NV AS c
where a.ID_Khach = b.ID_Khach and a.ID_NV = c.ID_NV

End
CREATE proc [dbo].[SP_Load_TbLuong]
as
begin
Select Tb_Luong.ID,Tb_Luong.ID_NV,Tb_NV.Ho_Ten, Tb_NV.Chuc_vu,
Tb_Luong.Thang,Tb_Luong.Luong,Tb_Luong.Thuong,Tb_Luong.Luong+
Tb_Luong.Thuong as TongLuong
from Tb_Luong
INNER JOIN Tb_NV ON Tb_Luong.ID_NV = Tb_NV.ID_NV;
End
create PROCEDURE [dbo].[SP_Sua_NCC]
@ID int,
@Ten nvarchar(50),
@DiaChi nvarchar(50),
@Phone nchar(10)
as
begin
update Tb_NCC set
Ten_NCC = @Ten,
Dia_Chi = @DiaChi,
So_DT = @Phone
where ID_NCC = @ID
end
CREATE PROCEDURE [dbo].[SP_SuaHoaDon]
@ID_HD int,
@ID_SP int,
@SL int
as
begin

26
update Tb_Kho
set
So_luong = So_luong - (select SL from Tb_HD_Nhap where ID_SP =
@ID_SP and ID_Nhap = @ID_HD) + @SL where Ma_SP = @ID_SP
update Tb_HD_Nhap set
SL = @SL
where ID_SP = @ID_SP and ID_Nhap = @ID_HD
end
CREATE PROCEDURE [dbo].[SP_SuaHoaDonBan]
@ID_HD int,
@ID_SP int,
@SL int,
@GiamGia int
as
begin
update Tb_Kho
set
So_luong = So_luong + (select SL from Tb_Hoa_Don_Ban where ID_SP
= @ID_SP and ID_HD = @ID_HD) - @SL where Ma_SP = @ID_SP
update Tb_Hoa_Don_Ban set
SL = @SL,
Giam_gia =@GiamGia
where ID_SP = @ID_SP and ID_HD = @ID_HD

end
Create PROCEDURE [dbo].[SP_SuaKhachHang]
@ID int,
@HoTen nvarchar(50),
@NgaySinh date,
@DiaChi nvarchar(50),
@Phone nvarchar(20)
as
begin
update Tb_Khach_Hang set
Ho_Ten = @HoTen,
Ngay_Sinh = @NgaySinh,
Dia_Chi = @DiaChi,
So_DT = @Phone
where ID_Khach = @ID
end

CREATE PROCEDURE [dbo].[SP_SuaLuong_NhanVien]


@ID int,
@IDNV int,

27
@Thang nchar(10),
@Luong int,
@Thuong int
as
begin
update Tb_Luong set
ID_NV = @IDNV,
Thang = @Thang,
Luong = @Luong,
Thuong =@Thuong
where ID = @ID
end
CREATE PROCEDURE [dbo].[SP_SuaNhanVien]
@ID int,
@HoTen nvarchar(50),
@GioiTinh nvarchar(50),
@NgaySinh date,
@DiaChi nvarchar(50),
@Phone nvarchar(20),
@Chuc_vu nvarchar(50)
as
begin
update Tb_NV set
Ho_Ten = @HoTen,
GT = @GioiTinh,
Ngay_Sinh = @NgaySinh,
Dia_Chi = @DiaChi,
So_DT = @Phone,
Chuc_vu = @Chuc_vu
where ID_NV = @ID;
end

CREATE PROCEDURE [dbo].[SP_SuaSanPham]


@id_sp int,
@maLoai int,
@TenSp nvarchar(50),
@Xuatxu nvarchar(50),
@ThuongHieu nvarchar(50),
@GiaNhap int,
@GiaBan int
as
begin
update Tb_San_Pham set
Ma_Loai = @maLoai,

28
Ten_SP = @TenSp,
Xuat_xu = @Xuatxu,
Thuong_Hieu = @ThuongHieu,
Gia_nhap = @GiaNhap,
Gia_ban = @GiaBan
where ID_SP = @id_sp
end

CREATE proc [dbo].[SP_Them_ChitietBan]


@IDNhap int,
@IDSanPham int,
@SL int,
@GiamGia int
as
begin
insert into Tb_Hoa_Don_Ban
values (@IDNhap,@IDSanPham,@SL, @GiamGia,NULL)
update Tb_Kho
set So_luong = So_luong - @SL where Ma_SP = @IDSanPham
end

CREATE proc [dbo].[SP_Them_ChitietNhap]


@IDNhap int,
@IDSanPham int,
@SL int
as
begin
insert into Tb_HD_Nhap
values (@IDNhap,@IDSanPham,@SL, NULL)
update Tb_Kho
set So_luong = So_luong + @SL where Ma_SP = @IDSanPham
end

create proc [dbo].[SP_Them_HoaDon]


@IDNhanVien int,
@IDNCC int,
@NgayNhap date
as
begin
insert into Tb_Nhap_hang values (@IDNhanVien, @IDNCC,
@NgayNhap,NULL)
end
CREATE PROCEDURE [dbo].[SP_Them_SanPham]

29
@maLoai int,
@TenSp nvarchar(50),
@Xuatxu nvarchar(50),
@ThuongHieu nvarchar(50),
@GiaNhap int,
@GiaBan int
as
begin
insert into Tb_San_Pham(Ma_Loai,
Ten_SP,Xuat_xu,Thuong_Hieu,Gia_nhap,Gia_ban,Ghi_Chu) values
(@maLoai,@TenSp,@Xuatxu, @ThuongHieu,@GiaNhap,@GiaBan,null);
insert into Tb_Kho values (@TenSp,0);
end
create PROCEDURE [dbo].[SP_ThemKhachHang]
@HoTen nvarchar(50),
@NgaySinh date,
@DiaChi nvarchar(50),
@Phone nvarchar(20)
as
begin
insert into Tb_Khach_Hang values (@HoTen, @NgaySinh, @DiaChi,
@Phone)
end

CREATE PROCEDURE [dbo].[SP_ThemLuongNhanVien]


@id_nv int,
@Thang nchar(10),
@Luong money,
@Thuong money
as
begin
insert into Tb_Luong values (@id_nv,@Thang, @Luong,@Thuong)
end
CREATE PROCEDURE [dbo].[SP_ThemNCC]
@Ten nvarchar(50),
@DiaChi nvarchar(50),
@Phone nchar(10)
as
begin
insert into Tb_NCC values ( @DiaChi, @Ten, @Phone)
end
CREATE PROCEDURE [dbo].[SP_ThemNhanVien]
@HoTen nvarchar(50),
@GioiTinh nchar(10),

30
@NgaySinh date,
@DiaChi nvarchar(50),
@Phone nvarchar(20),
@Chuc_vu nvarchar(50)
as
begin
insert into Tb_NV values (@HoTen, @NgaySinh, @GioiTinh, @DiaChi,
@Phone, @Chuc_vu)
end
create PROCEDURE [dbo].[SP_UpdateGiamGia]
@IDNhap int,
@GiamGia int
as
begin
update Tb_Ban_Hang
set Giam_gia = @GiamGia where ID_B = @IDNhap
end
CREATE proc [dbo].[SP_XoaChiTietHD]
@ID_HD int,
@ID_SP int
as
begin
update Tb_Kho
set So_luong = So_luong - ( select SL from Tb_HD_Nhap where ID_SP
= @ID_SP and ID_Nhap = @ID_HD) where Ma_SP = @ID_SP
delete Tb_HD_Nhap where ID_SP = @ID_SP and ID_Nhap = @ID_HD
end
CREATE proc [dbo].[SP_XoaChiTietHDBan]
@ID_HD int,
@ID_SP int,
@SL int
as
begin
update Tb_Kho
set So_luong = So_luong + @SL where Ma_SP = @ID_SP ;
delete Tb_Hoa_Don_Ban where ID_SP = @ID_SP and ID_HD = @ID_HD;

end
create proc [dbo].[SP_XoaLuongNhanVien]
@ID int
as
begin
delete Tb_Luong where ID = @ID
end
31
CREATE proc [dbo].[SP_XoaNCC]
@ID int
as
begin
update Tb_NCC
set
Ghi_chu = N'Ngừng hợp tác'
where ID_NCC =@ID
end
CREATE proc [dbo].[SP_XoaNhanVien]
@ID int
as
begin
update Tb_NV
set Chuc_vu = N'Đã thôi việc'
where ID_NV = @ID
end
CREATE proc [dbo].[SP_XoaSanPham]
@ID int
as
begin
update Tb_San_Pham
set Ghi_Chu = N'Ngừng cung cấp'
where ID_SP = @ID
end
Create proc [dbo].[Thong_tin_kh]
as
begin
select * from Tb_Khach_Hang
end
3.4.3. Thực hiện truy vấn trên cơ sở dữ liệu sử dụng GROUP BY
Đưa ra mã và tên các khách hàng và loại khách hàng biết VIP (tổng chi tiêu
>= 1000000) và còn lại là bình thường:
select b.ID_Khach, b.Ho_Ten, case when sum(Thanh_tien)>=1500000 then
'VIP'
when sum(Thanh_tien)<1500000 then N'Bình thường' end "Loại khách hàng"
from Tb_Ban_Hang as a join Tb_Khach_Hang as b on a.ID_Khach =
b.ID_Khach
group by b.ID_Khach, b.Ho_Ten;
=> Kết quả trả về:

32
3.5. Sao lưu và phục hồi dữ liệu
Trong môi trường hệ thống cơ sở dữ liệu, việc sao lưu và phục hồi dữ liệu là
một hoạt động quan trọng để bảo vệ và đảm bảo tính khả dụng của dữ liệu. Sao lưu
dữ liệu là quá trình tạo bản sao của dữ liệu và lưu trữ nó ở một nơi khác, như một ổ
đĩa cứng bên ngoài hoặc đám mây. Mục đích của việc sao lưu dữ liệu là đảm bảo
rằng có thể khôi phục lại dữ liệu nếu có sự cố xảy ra, chẳng hạn như một trục trặc
phần cứng hoặc một lỗi phần mềm hoặc tấn công từ người dùng xấu.
Khi có sự cố xảy ra và dữ liệu bị mất, có thể khôi phục lại dữ liệu bằng cách
sử dụng bản sao lưu. Quá trình này đảm bảo rằng dữ liệu bị mất hoặc bị hỏng có
thể được khôi phục lại một cách an toàn và chính xác.
- Sao lưu dữ liệu:
Giả sử cơ sở dữ liệu được lưu trữ ở ổ đĩa C của máy, tạo 1 thư mực mới
trong ổ đĩa khác, chẳng hạn như ổ đĩa D với đường dẫn: “D:\ATCSDL\backup\”.
+ Tạo full backup:
backup database Cua_hang_quan_ao to disk = 'D:\ATCSDL\
backup\Cuahangquanao.bak'
+ Tạo different backup:
backup database Cua_hang_quan_ao to disk = 'D:\ATCSDL\
backup\Cuahangquanao.bak' with differential
+ Tạo log backup:

33
backup log Cua_hang_quan_ao to disk = 'D:\ATCSDL\backup\
Cuahangquanao.trn'
- Khôi phục dữ liệu:
Giả sử máy chủ bị hư ổ cứng chứa cơ sở dữ liệu, sau đó tiến hành khôi phục
dữ liệu như sau:
restore database Cua_hang_quan_ao from disk = 'D:\
ATCSDL\backup\Cuahangquanao.bak' With NoRecovery
restore database Cua_hang_quan_ao from disk = 'D:\
ATCSDL\backup\Cuahangquanao_Diff.bak'With NoRecovery
restore log Cua_hang_quan_ao from disk = 'D:\ATCSDL\
backup\Cuahangquanao.trn'
Sau khi khôi phục dữ liệu sẽ trở lại tại thời điểm thực hiện log backup.
3.6. Nhân bản và đồng bộ hóa dữ liệu
Việc nhân bản và đồng bộ dữ liệu là một hoạt động quan trọng để đảm bảo
tính nhất quán và sẵn sàng của dữ liệu trên nhiều máy chủ hoặc cơ sở dữ liệu. Mục
đích chính của việc nhân bản và đồng bộ dữ liệu là đảm bảo rằng các bản sao của
dữ liệu được duy trì và cập nhật đồng bộ với nhau, giữ cho hệ thống hoạt động liên
tục và đảm bảo tính khả dụng của dữ liệu. Việc nhân bản dữ liệu cho phép tạo ra
các bản sao của cơ sở dữ liệu trên các máy chủ hoặc vị trí khác nhau. Bằng cách
nhân bản dữ liệu, ta có thể tạo ra các bản sao để sử dụng cho mục đích sao lưu,
khôi phục, phân tích dữ liệu hoặc phục vụ cho các hoạt động xử lý song song. Việc
nhân bản dữ liệu cũng giúp tăng khả năng chịu tải và sẵn sàng của hệ thống, vì khi
một máy chủ gặp sự cố, ta có thể chuyển sang sử dụng bản sao khác để tiếp tục
hoạt động.
Thực hiện nhân bản và đồng bộ dữ liệu trên SQL Server: một máy làm
Publisher chứa dữ liệu được sao chép (replicated) đến các máy chủ khác, máy thứ
hai dùng để nhận dữ liệu được gọi Subscriber.

34
Hình 2.3 Dữ liệu trên máy Publisher

Hình 2.4 Dữ liệu trên máy Subscriber

35
CHƯƠNG III. XÂY DỰNG GIAO DIỆN
1. Cấp quyền người dùng
Trong bài ta sử dụng Windows form để xây dựng giao diện và kết nối với cơ
sở dữ liệu đã xây dựng trong Chương II.
Cơ sở dữ liệu có 3 loại đối tượng: admin(AD), Quản lý nhân sự (ME) và
nhân viên (SE); tương ứng mỗi loại đối tượng sẽ có quyền đối với cơ sở dữ liệu
khác nhau. Với mỗi loại đối tượng khi đăng nhập vào hệ thống sẽ có giao diện chỉ
hiện thị những phím chức năng mà đối tượng đó được phép. Ví dụ, đối với giao
diện để quản lý nhân viên: admin sẽ có quyền truy cập vào tất cả tính năng trong hệ
thống, còn nhân viên chỉ được truy cập và sử dụng một số tính năng nhất định.
Thực hiện tương tự đối với các bảng trong cơ sở dữ liệu để xây dựng giao diện
tương ứng với mỗi loại đối tượng.
Các quyền truy cập trong hệ thống gồm:
- Quyền Admin (AD): Truy cập tất cả các bảng và có toàn quyền thao tác
- Quyền Quản lý nhân sự (ME): Có quyền truy cập và thao tác trên các bảng
quản lý nhân viên, lương nhân viên, nhà cung cấp, quản lý tài khoản.
- Quyền Nhân viên bán hàng (SE): Có quyền xem các bảng lương nhân viên,
nhà cung cấp, toàn quyền thao tác trên bảng sản phẩm, hóa đơn nhập hàng và bán
hàng và khách hàng.
Tài khoản đăng nhập vào hệ thống được cấp bởi admin và Quản lý nhân sự
nhân viên được cấp tài khoản đăng nhập vào hệ thống mật khẩu của các tài khoản
đăng nhập được lưu trữ trên cơ sở dữ liệu dưới dạng mã băm MD5.

36
Hình 3.1 Giao diện khi đăng nhập với tài khoản admin

Hình 3.2 Giao diện khi đăng nhập với quyền nhân viên bán hàng
Ta có ma trận điều khiển truy cập ACM như sau:
37
Đối tượng Quản lý
Admin Nhân viên
Bảng nhân sự
Nhân viên C, R, U, D C, R, U, D 
Lương nhân viên C, R, U, D C, R, U, D R
Sản phẩm C, R, U, D  R
Hóa đơn nhập C, R, U, D  C, R, U, D
Hóa đơn bán C, R, U, D  C, R, U, D
Nhà cung cấp C, R, U, D C, R, U, D R
Khách hàng C, R, U, D R C, R, U, D
Quản lý tài khoản C, R, U, D C, R, U, D 
Bảng 3.1 Ma trận điều khiển truy cập hệ thống
trong đó: R: xem, C: thêm, U: sửa, D: xóa, : Không có quyền
2. Giao diện chính

Hình 3.3. Giao diện đăng nhập

38
Hình 3.4. Giao diện trang chủ của chương trình

Hình 3.5 Giao diện quản lý nhân viên

39
Hình 3.6. Giao diện quản lý lương nhân viên

Hình 3.7. Giao diện quản lý sản phẩm

40
Hình 3.8. Giao diện quản lý hóa đơn nhập hàng

Hình 3.9. Giao diện quản lý hóa đơn bán hàng


41
Hình 3.10. Giao diện quản lý khách hàng

Hình 3.11. Giao diện quản lý nhà cung cấp

42
Hình 3.12 Giao diện quản lý tài khoản

Hình 3.13. Giao diện đổi mật khẩu

43
KẾT LUẬN
Trong hoạt động sản xuất, kinh doanh, thương mại điện tử đã khẳng định tầm
quan trọng của việc ứng dụng công nghệ thông tin. Đối với một cửa hàng, việc
quản lý công việc kinh doanh sản phẩm sẽ là vô cùng cần thiết. Do đó, sản phẩm
của em tập trung vào việc nghiên cứu và đề xuất một hệ thống quản lý shop thời
trang đáp ứng được các yêu cầu quản lý hiện đại và đồng thời tận dụng lợi ích của
công nghệ thông tin. Bài làm của em về cơ bản đã xây dựng được cơ sở dữ liệu
phục vụ cho công việc quản lý cửa hàng quần áo. Thông tin được lưu trữ có hệ
thống: liên kết giữa các bảng được đơn giản hóa và tối ưu, giúp công việc tạo lập,
lưu trữ, truy xuất được thực hiện chính xác, nhanh chóng. Đảm bảo an toàn dữ liệu:
dữ liệu được phân vùng cụ thể, cấp quyền cho các đối tượng người dùng khác nhau.
Ngoài ra, nhóm đã có phương án sao lưu, phục hồi dữ liệu cụ thể, đảm bảo dữ liệu
được lưu trữ trong thời gian dài. Dữ liệu có tính thực tế: các dữ liệu được nêu trong
bài là kết quả của quá trình tìm hiểu, chắt lọc với tính chính xác cao của nhóm. Các
truy vấn và thao tác nghiệp vụ cũng là những thông số, thông tin được đa số người
xem quan tâm.
Bên cạnh những ưu điểm đạt được, bài làm vẫn còn nhiều thiếu sót. Lĩnh vực
quản lý cửa hàng quần áo còn nhiều mảng nội dung có thể khai thác, tìm hiểu (Tồn
kho, thời gian làm việc của nhân viên, …). Nhưng trong khuôn khổ bài tập lớn,
nhóm chưa thể truyền tải đầy đủ đến cô cũng như các bạn về lĩnh vực đầy tiềm
năng này. Chưa đưa ra được cách phục hồi các trường hợp phức tạp hơn.

44
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt
[1] Giáo trình “An toàn Cơ sở dữ liệu” – Khoa CNTT Đại Học Điện lực
[2] Giáo trình “Phân tích và thiết kế hệ thống thông tin” – Đại Học Bách Khoa
Hà Nội
[3] Giáo trình “Lập trình hướng đối tượng” – Đại Học Bách Khoa Hà Nội
Tài liệu tiếng Anh
[1] Construction of Library Database Security System Supported by SQL
Server Technology (2023) – Na Xiao – Proceedings of the 4th International
Conference on Big Data Analytics for Cyber, Physical System in Smart City
(Volume 2)
[2] Database Recovery Techniques in Microsoft SQL Server (2022) - Onder
Sahinaslan - Maltepe University, Head of Informatics Department, Turkey
[3] Backup with Storage in a Database (2016) – S. M. Taranin - Clorive
University, Russian

45

You might also like