PHÂN HIỆU TRƯỜNG ĐẠI HỌC THUỶ LỢI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN HỌC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI QUẢN LÍ BÁN LINH KIỆN MÁY TÍNH ONLINE Giảng viên Sinh viên Trần Ngọc Thịnh Lớp M.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Mô tả bài toán
Cửa hàng linh kiện máy tính NT226 Computer tại Tp Hồ Chí Minh cung cấp đa dạng các linh kiện máy tính Để xây dựng một website bán hàng hiệu quả, cho phép khách hàng đặt hàng trực tuyến và quản lý tài khoản nhân viên, khách hàng, sản phẩm, cũng như báo cáo doanh thu, cần thiết phải có một cơ sở dữ liệu hoàn chỉnh và tối ưu.
Khách hàng có thể truy cập website để chọn sản phẩm và đăng nhập vào tài khoản để nhập thông tin thanh toán Sau khi hoàn tất đơn hàng, thông tin sẽ được gửi đến nhân viên Khi hoá đơn được xuất, số lượng tồn kho sẽ tự động được cập nhật, giúp cơ sở dữ liệu quản lý số lượng sản phẩm còn lại hiệu quả.
Mô tả các chức năng của hệ thống
Hệ thống quản lý NT226 Computer sẽ gồm các chức năng:
Xem thông tin nhà cung cấp của sản phẩm.
Cập nhật thông tin sản phẩm.
Tìm sản phẩm: giúp khách hàng tìm được sản phẩm mong muốn nhanh hơn.
Quản lý đơn hàng: sau khi đặt hàng thành công thì khách hàng có thể xem lại hoá đơn.
Thêm: khi có nhân viên mới, quản lý sẽ tạo cho nhân viên đó tài khoản để đăng nhập vào hệ thống.
Xoá: khi có nhân viên nghỉ việc, quản lý sẽ xoá tài khoản đó khỏi hệ thống.
Cập nhật: cho phép nhân viên thay đổi thông tin cá nhân.
Lập báo cáo xem doanh thu của cửa hàng.
Nhân viên: được phép xem các bảng DonDatHang, SanPham,
TheLoai, DanhGiaSanPham, ThuongHieu, ThuongHieuSanPham, NhaCungCap và chỉ xem được các cột MaKH, HoTenKH, SDT, DiaChiGiaoHang, Email của bảng KhachHang và quyền thêm vào bảng DonDatHang.
Quản lý: được phép xem, thêm và sửa ở tất cả các bảng.
Xây dựng mô hình liên kết thực thể
Hình 1.1 Sơ đồ thực thể
Mô hình quan hệ ERD
MaSP SoDH SoLuong GiaTien GiamGia
DanhGiaSanPham id MaSP MaKH TenDanhGia ChatLuong GiaTien NoiDung NgayDanhGia
SoDH NgayDH TrangThaiDH NgayDuKienGiao NgayThucTeGiao MaKH MaNV
MaKH HoTenKH NgaySinh GioiTinh SDT DiaChiGiaoHang Email
MaNCC TenNCC DiaChi Email SDT fax
MaSP TenSP GiaSP GiaKhuyenMai MaLoai MaNCC MoTa SoLuongTon
Mô tả các bảng
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaTL Mã thể loại nchar 20
TenTL Tên thể loại nvarchar 255
MoTa Mô tả thể loại nvarchar 255
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaKH Mã khách hàng nchar 20
HoTenKH Họ tên khách hàng nvarchar 255
SDT Số điện thoại nchar 50
DiaChiGiaoHang Địa chỉ giao hàng nvarchar 255
Email Email khách hàng nchar 50
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaNV Mã nhân viên nchar 20
HoTenNV Họ tên nhân viên nvarchar 255
SDT Số điện thoại nchar 50
Email Email nhân viên nchar 50
MaNVQL Mã quản lý nchar 20
Tên trường Mô tả Kiểu dữ liệu Độ dài
SoDH Mã số đơn hàng nchar 20
NgayDH Ngày đặt hàng datetime
TrangThaiDH Trạng thái đơn int
NgayDuKienGiao Ngày dự kiến giao datetime
NgayThucTeGiao Ngày thực tế giao datetime
MaKH Mã khách hàng nchar 20
MaNV Mã nhân viên nchar 20
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaNCC Mã nhà cung cấp nchar 20
TenNCC Tên nhà cung cấp nvarchar 255
SDT Số điện thoại nchar 50
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaTH Mã thương hiệu nchar 20
TenTH Tên thương hiệu nvarchar 255
SDT Số điện thoại nchar 50
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaSP Mã sản phẩm nchar 20
TenSP Tên sản phẩm nvarchar 255
GiaSP Giá sản phẩm float
GiaKhuyenMai Giá khuyến mãi float 50
MaLoai Mã thể loại nchar 20
MaNCC Mã nhà cung cấp nchar 20
MoTa Mô tả sản phẩm nvarchar 255
SoLuongTon Số lượng tồn int
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaThuongHieu Mã thương hiệu nchar 20
MaSanPham Mã sản phẩm nchar 20
Tên trường Mô tả Kiểu dữ liệu Độ dài
MaSP Mã sản phẩm nchar 20
SoDH Số đơn hàng nchar 20
SoLuong Số lượng đặt hàng int
GiaTien Đơn giá sản phẩm float
Tên trường Mô tả Kiểu dữ liệu Độ dài id Số đánh giá nchar 20
MaSP Mã sản phẩm nchar 20
MaKH Mã khách hàng nchar 20
TenDanhGia Tên đánh giá nvarchar 255
Nội dung Nội dung nvarchar 255
NgayDanhGia Ngày đánh giá datetime
CÀI ĐẶT CƠ SỞ DỮ LIỆU
Tạo database
create database QLCuaHangMayTinh_TranNgocThinh on
Name=QLCuaHangMayTinh_TranNgocThinh, filename='D:\QLCuaHangMayTinh_TranNgocThinh.mdf', sizeMB, maxsize0MB,
Name=QLCuaHangMayTinh_logth2, filename='D:\QLCuaHangMayTinh_TranNgocThinh.ldf', size=2MB, maxsize=UNLIMITED,
Cài đặt các bảng
2.2.1 Tạo bảng TheLoai create table TheLoai
MaTL nchar(20) not null primary key,
2.2.2 Tạo bảng KhachHang create table KhachHang
MaKH nchar(20) not null primary key,
2.2.3 Tạo bảng NhanVien create table NhanVien
MaNV nchar(20) not null primary key,
MaNVQL nchar(20), foreign key (MaNVQL) references NhanVien(MaNV)
2.2.4 Tạo bảng DonDatHang create table DonDatHang
SoDH nchar(20) not null primary key,
MaNV nchar(20) foreign key (MaKH) references KhachHang(MaKH), foreign key (MaNV) references NhanVien(MaNV)
2.2.5 Tạo bảng NhaCungCap create table NhaCungCap
MaNCC nchar(20) not null primary key,
2.2.6 Tạo bảng ThuongHieu create table ThuongHieu
MaTH nchar(20) not null primary key,
2.2.7 Tạo bảng SanPham create table SanPham
MaSP nchar(20) not null primary key,
SoLuongTon int, foreign key (MaLoai) references TheLoai(MaTL), foreign key (MaNCC) references NhaCungCap(MaNCC)
2.2.8 Tạo bảng ThuongHieuSanPham create table ThuongHieuSanPham
MaSanPham nchar(20), primary key (MaThuongHieu, MaSanPham), foreign key (MaThuongHieu) references ThuongHieu(MaTH), foreign key (MaSanPham) references SanPham(MaSP)
2.2.9 Tạo bảng ChiTietDH create table ChiTietDH
GiamGia float, primary key (MaSP, SoDH), foreign key (MaSP) references SanPham(MaSP), foreign key (SoDH) references DonDatHang(SoDH)
2.2.10 Tạo bảng DanhGiaSanPham create table DanhGiaSanPham
( id nchar(20) not null primary key,
NgayDanhGia datetime, foreign key (MaSP) references SanPham(MaSP),
Câu lệnh
Thêm dữ liệu vào bảng ThuongHieu
Code insert ThuongHieu(MaTH, TenTH, DiaChi, SDT) values ('TH001', 'Integrated Electronics', '2200 Mission College Blvd, Santa Clara,
Here are the key sentences rewritten for SEO compliance:"Advanced Micro Devices, located at Paxsky Tower, 13-15-17 Truong Dinh, District 3, Ho Chi Minh City, Vietnam, can be contacted via email at hotro@amdvietnam.com.vn Kingston, situated at No 1-5 Li-Hsin Road, Science Based Industrial Park, Hsin-Chu, Taiwan, offers support through their email asiasales@kingston.com.tw."
'Gigabyte Technology', 'No.6, Baoqiang Rd., Xindian Dist., New Taipei City 231, Taiwan'); insert ThuongHieu(MaTH, TenTH, DiaChi) values ('TH005', 'Micro- Star International Co Ltd', N'Tân Bắc, Đài Loan.');
Thêm dữ liệu vào bảng NhaCungCap
Code insert NhaCungCap(MaNCC, TenNCC, DiaChi, SDT) values('NCC001', 'Dell', N'23 Nguyễn Thị Huỳnh, Phường 8, Quận Phú Nhuận, TP.HCM','0838424342');
Thêm dữ liệu vào bảng NhanVien
Code insert NhanVien(MaNV, HoTenNV, NgaySinh, GioiTinh, SDT,
Email) values('NV001',N'Trần Ngọc Thịnh','2001-02-
Thêm dữ liệu vào bảng KhachHang
Code insert KhachHang(MaKH, HoTenKH, NgaySinh, GioiTinh, SDT,
Email) values('KH001',N'Phạm Đình Lộc','2000-01-
Thêm dữ liệu vào bảng TheLoai
Code insert TheLoai(MaTL, TenTL, MoTa) values ('TL001',N'CPU - Bộ vi xử lý',N'vi xử lý') insert TheLoai(MaTL, TenTL, MoTa) values ('TL002',N'Mainboard -
Thêm dữ liệu vào bảng SanPham
Code insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP001',N'CPU Intel Core i3-
10105F',2699000,'TL001','NCC002',N'CPU Intel Core i3-10105F là phiên bản nâng cấp của I3-10100F ',50) insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP002',N'CPU AMD Ryzen 7
5700G',9689000,'TL001','NCC002',N'Đánh giá CPU AMD Ryzen 7 5700G chính hãng, bảo hành dài',40) insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP003',N'Mainboard MSI Z590 PRO
The MSI Z590 PRO WIFI motherboard features Intel's Z590 chipset, positioning it within the high-end segment of MSI's product line.
SoLuongTon) values ('SP004',N'Mainboard Gigabyte Z590 AORUS PRO AX',7879000,'TL002','NCC002',N'Mainboard Gigabyte Z590 AORUS PRO AX là bo mạch chủ sử dụng chipset Z590 của
Intel.',42) insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC,
SoLuongTon) values ('SP005',N'Mainboard MSI B560M
PRO',2500000,'TL002','NCC001',15) insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP006',N'CPU Intel Core i5-
10500',5599000,'TL001','NCC001',N'Dòng Core i5 thế hệ thứ 10 dành cho máy bàn của Intel.',70); insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP007',N'CPU Intel Core i5-
10400',5159900,'TL001','NCC001',N'Dòng Core i5 thế hệ thứ 10 dành cho máy bàn của Intel.',70); insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP008',N'Card màn hình Asus ROG STRIX- LC-RTX 3080 Ti-O12G-
GAMING',55449000,'TL003','NCC001',N'Nhân đồ họa: Nvidia RTX 3080Ti.',15); insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP009',N'Card màn hình Gigabyte RTX 3090 AORUS XTREME-24GD',66999000,'TL003','NCC001',N'Dung lượng bộ nhớ: 24Gb GDDR6X.',10); insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
SoLuongTon) values ('SP0010',N'Card màn hình MSI RTX 3090 VENTUS 3X OC 24G',65999000,'TL003','NCC001',N'Dung lượng bộ nhớ: 24Gb GDDR6X.',8); insert SanPham(MaSP, TenSP, GiaSP, MaLoai, MaNCC, MoTa,
Thêm dữ liệu vào bảng ThuongHieuSanPham
Code insert into ThuongHieuSanPham(MaThuongHieu, MaSanPham) values('TH001','SP001') insert into ThuongHieuSanPham(MaThuongHieu, MaSanPham)
Thêm dữ liệu vào bảng DonDatHang
Code insert into DonDatHang(SoDH, NgayDH, TrangThaiDH,
NgayDuKienGiao, NgayThucTeGiao, MaKH, MaNV) values('DH001','2021/10/05 17:20:00',0,'2021/10/12
Thêm dữ liệu vào bảng ChiTietDH
Code insert into ChiTietDH(MaSP, SoDH, SoLuong, GiaTien, GiamGia) values('SP001','DH001',2,2699000,100000); insert into ChiTietDH(MaSP, SoDH, SoLuong, GiaTien, GiamGia)
Thêm dữ liệu vào bảng DanhGiaSanPham
Code insert into DanhGiaSanPham(id, MaSP, MaKH, TenDanhGia,
ChatLuong, GiaTien, NoiDung, NgayDanhGia) values('DGSP001','SP001','KH001',N'CPU mạnh mẽ',5,2699000,N'Giao hàng nhanh, giá tốt','2021/10/29 07:20:00')
Câu 1: Cập nhật địa chỉ giao hàng = ‘79/8G QL 13, P26, Q Bình Thạnh’ với makh = ‘KH001’
Code update KhachHang set DiaChiGiaoHang=N'79/8G QL 13, P26, Q Bình Thạnh' where MaKH='KH001'
Kết quả Trước khi chạy
Câu 2: Cập nhật email= ‘dell@gmail.com’ với MaNCC = ‘NCC001’
Code update NhaCungCap set Email='dell@gmail.com' where MaNCC='NCC001'
Kết quả Trước khi chạy
Câu 1: Xoá dữ liệu của khách hàng có MaKH = ‘KH006’
Code delete from KhachHang where MaKH='KH006'
Kết quả Trước khi chạy
Câu 2: Xoá dữ liệu của thể loại có matl = ‘TL007’
Code delete from TheLoai where MaTL='TL007'
Kết quả Trước khi chạy
2.3.4.1 Câu truy vấn sử dụng điều kiện WHERE
Câu 1: Hiển thị 2 sản phẩm đầu tiên trong bảng sanpham, thông tin gồm masp, tensp, giasp, tenncc
Code select top(2) sp.MaSP, sp.TenSP, sp.GiaSP, ncc.TenNCC from SanPham sp, NhaCungCap ncc where sp.MaNCC = ncc.MaNCC
Câu 2: Hiển thị các sản phẩm có giá >= 500000 đến 2
Code select sp.MaLoai, count(*) as SoSanPham from SanPham sp group by sp.MaLoai
Câu 2: Cho biết mã thể loại nào có số sản phẩm >2
Code select c.SoDH, count(c.MaSP) as LoaiSP from ChiTietDH c group by c.SoDH
2.3.4.5 Câu truy vấn sử dụng LEFT JOIN, FULL JOIN, RIGHT JOIN
Câu 1: Cho biết tensp, soluong, giatien, giamgia có sodh= ‘DH001’
Code select s.TenSP, c.SoLuong, c.GiaTien, c.GiamGia from SanPham s left join ChiTietDH c
Câu 2: Cho biết tên nhà cung cấp của mỗi sản phẩm, thông tin gồm masp, tensp, tenncc
Code select s.MaSP, s.TenSP, n.TenNCC from SanPham s left join NhaCungCap n
Câu 3: Trả về tất cả các hàng từ bảng khachhang và dondathang, thông tin gồm hotenkh, sodh, ngaydh, ngaydukiengiao, ngaythuctegiao,trangthaidh
Code select k.HoTenKH, d.SoDH, d.NgayDH, d.NgayDuKienGiao, d.NgayThucTeGiao, d.TrangThaiDH from KhachHang k
Câu 4: Trả về tất cả các hàng từ bảng nhacungcap và dondathang, thông tin gồm tensp, tenncc, diachi
Code select s.TenSP, n.TenNCC, n.DiaChi from SanPham s full join NhaCungCap n
Câu 5: Hiển thị hotenkh, sodh, ngaydh, ngaydukiengiao, ngaythuctegiao, trangthaidh có trong bảng dondathang
Code select k.HoTenKH, d.SoDH, d.NgayDH, d.NgayDuKienGiao, d.NgayThucTeGiao, d.TrangThaiDH from KhachHang k
Câu 6: Hiển thị hotennv, sodh, ngaydh, ngaydukiengiao, ngaythuctegiao, trangthaidh có trong bảng dondathang
Code select n.HoTenNV, d.SoDH, d.NgayDH, d.NgayDuKienGiao, d.NgayThucTeGiao, d.TrangThaiDH from NhanVien n
2.3.4.6 Câu truy vấn sử dụng truy vấn con
Câu 1: Cho biết tổng số đơn hàng bán được của mỗi nhân viên
Code select n.MaNV, n.HoTenNV, truyvancon1.TongDonHang from NhanVien n,
(select d.MaNV, count(*) as TongDonHang
Câu 2: Cho biết sản phẩm có số lượng tồn 30
Code create view sanpham_soluongton as select * from SanPham where SoLuongTon > 30
Chạy thử select * from sanpham_soluongton
Câu 3: Cập nhật giakhuyenmai 00000 có masp = ‘SP001’ vào view_sanpham_soluongton
Code update sanpham_soluongton set GiaKhuyenMai 00000 where MaSP='SP001'
Chạy thử select * from sanpham_soluongton
Câu 1: Viết store procedure insert thể loại với matl và tentl được đưa vào từ ngoài
Code create procedure insert_theloai(@matl nchar(20), @tentl nvarchar(255)) as
Chạy thử exec insert_theloai 'TL007', N'SSD - Ổ Cứng'
Câu 2: Viết store procedure cho biết các sách mà có thông tin của thương hiệu, thông tin gồm masp
Code create procedure thongtin_thuonghieusanpham as begin
Chạy thử exec thongtin_thuonghieusanpham
Câu 3: Viết store procedure cho biết các sản phẩm có thông tin thương hiệu, hiển thị masp, tensp, soluongton
Code create procedure thongtin_thuonghieusanpham1 as begin
Chạy thử exec thongtin_thuonghieusanpham1;
Câu 4: Viết store procedure xoá 1 dòng dữ liệu với tham số đầu vào là masp
Code create procedure xoa_sanpham(@masp nchar(20)) as begin
Chạy thử exec xoa_sanpham 'SP008'
Câu 1: Viết function thành tiền
Code create function thanhtien(@soluong int, @giatien float, @giamgia float) returns dec(10,2)
Chạy thử select dbo.thanhtien(2,10000,5000) as ThanhTien;
Câu 2: Viết function cho biết số lượng sản phẩm có số lượng tồn lớn hơn số lượng tồn nhận giá trị từ bên ngoài
Code create function dem_sanpham_soluongton (@soluongton int) returns int as
Chạy thử print dbo.dem_sanpham_soluongton(30)
Câu 3: Viết function tính tiền đơn hàng có sodh nhập từ bàn phím
Code create function thanhtien_donhang (@sodh nchar(20)) returns dec(10,2) as
Kết quả print dbo.thanhtien_donhang('DH002')
Câu 4: Viết function tính tổng số tiền của tất cả đơn hàng mà khách hàng đó đã mua có makh nhập từ bàn phím
Code create function tongtien_khachhang (@makh nchar(20)) returns dec(10,2) as
Kết quả print dbo.tongtien_khachhang('KH001')
Câu 5: Viết function trả về danh sách các sản phẩm gồm masp, tensp, giasp từ 1 thể loại nhập từ bàn phím
Code create function sanpham_theloai(@math nchar(20)) returns table as
Kết quả select * from sanpham_theloai('TL002')
Câu 6: Viết function trả về danh sách người dùng, khách hàng
Code create function danhsach_nguoidung() returns @lienhe table
Kết quả select * from danhsach_nguoidung();
2.3.8 CLUSTER INDEX và NONE CLUSTER INDEX
tạo bảng khachhang_nonindex lấy dữ liệu từ bản khachhang select * into khachhang_noindex from KhachHang
Câu 1: Tạo index cluster cho bảng khachhang_noindex
Code create clustered index id_makh on khachhang_noindex(makh)
Câu 2: Đổi tên clustered index id_makh thành id_makh_khachhang
'khachhang_noindex.id_makh', 'id_makh_khachhang',
Câu 3: Tạo nonclustered index cho cột hotenkh của bảng khachhang
Code create nonclustered index id_hotenkh_customer on khachhang(hotenkh)
Câu 4: Tạo unique nonclustered index cho email của bảng nhanvien
Code create unique nonclustered index unionclus_nhanvien on nhanvien(email)
Câu 1: Khi xoá 1 dòng trong bảng ChiTietDH thì phải tăng số lượng tồn của sản phẩm
Code create trigger tr_xoaCTDH on ChiTietDH for delete as
Câu 2: Khi thêm 1 dòng trong bảng ChiTietDH thì phải trừ số lượng tồn của sản phẩm
Code create trigger tr_themCTDH on ChiTietDH for insert as
Câu 3: Khi thay đổi cột số lượng trên bảng ChiTietDH thì cập nhật lại số lượng tồn trong bảng sản phẩm
Code create trigger tr_suaCTDH on chitietdh for update as
Câu 4: Kiểm tra nếu dem >4 thì thông báo là không được mua quá 4 mặt hàng
Code create trigger tr_soCTDH on ChiTietDH for insert as
Câu 1: Sử dụng cursor backup dữ liệu của cơ sở dữ liệu
Code declare @name nvarchar(100) declare @path nvarchar(256) declare @filename nvarchar(256)
Câu 2: Sử dụng cursor để thực hiện đọc dữ liệu từ bảng nhân viên
Code declare @manv nchar(20) declare @hotennv nchar(255) declare @sdt nchar(20)
Câu: Phục hổi dữ liệu mà mình đã sao lưu
Code restore database qlmy from disk = 'D:\backup\QLCuaHangMayTinh_TranNgocThinh'
Câu: Cấp quyền xem các bảng DonDatHang, SanPham, TheLoai,
DanhGiaSanPham, ThuongHieu, ThuongHieuSanPham, NhaCungCap và KhachHang chỉ xem được MaKH, HoTenKH, SDT, DiaChiGiaoHang, Email, quyền thêm vào bảng DonDatHang,
Code tạo tài khoản create login nhanvien with password ='1';
TỔNG KẾT
• Hệ thống quản lý đầy đủ các chức năng phục vụ cho việc quản lý, bán hàng.
• Quản lý được doanh thu của cửa hàng.
• Khi bán hàng ra thì sẽ tự động cập nhật dữ liệu tồn trong sản phẩm giúp quản lý dễ dàng hơn.
• Có phân quyền nhân viên hạn chế truy chức năng truy cập vào dữ liệu giúp bảo đảm dữ liệu.
• Tự động sao lưu dữ liệu đề phòng những trường hợp dữ liệu bị mất bất khả kháng.
• Hệ cơ sở dữ liệu chưa được tối ưu.
• Tiếp tục học tập, nghiên cứu nâng cao kĩ năng để dần khắc phục được những hạn chế trên.
• Xây dựng bảo mật dữ liệu tốt hơn.
• Tối ưu hoá cơ sở dữ liệu giúp truy cập dữ liệu nhanh hơn.