Tải bản đầy đủ (.pdf) (65 trang)

Báo cáo bài tập lớn hệ quản trị cơ sở dữ liệu sql đề tài quản lý kinh doanh máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (13.47 MB, 65 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>I. Phát biểu bài toán </b>

Khi có u cầu nhập thiết bị, hàng hố: nhân viên tiến hành ghi phiếu yêu cầu gồm các thơng tin chi tiết về thiết bị, hàng hố và gửi đến cho nhà cung cấp. Bên phía nhà cung cấp sẽ gửi đơn chào hàng trong đó có chi tiết các thiết bị bao gồm các thông tin như: tên, loại thiết bị, số lượng, nguồn gốc…. Qua đơn chào hàng của nhà cung cấp thì cửa hàng sẽ xem xét và đưa ra đơn đặt hàng rồi gửi đến cho nhà cung cấp, để đáp ứng nhu cầu nhập thiết bị của cửa hàng nhà cung cấp sẽ vận chuyển thiết bị cho cửa hàng theo hợp đồng mua,bán hàng hóa và biên lai bàn giao thiết bị (kiêm hóa đơn thanh toán tiền thiết bị). Trước khi nhập hàng vào kho thì cửa hàng sẽ kiểm tra xem đã đủ thiết bị chưa theo biên bản bàn giao thiết bị mà nhà cung cấp gửi đến, đồng thời cửa hàng sẽ ghi các thông tin cần thiết vào sổ chi và sổ kho. Nếu thiết bị nào khơng đạt u cầu thì cửa hàng sẽ trả lại nhà cung cấp, và yêu cầu nhà cung cấp cấp lại những thiết bị như hợp đồng đã thỏa thuận.

Khi khách có nhu cầu mua thiết bị, khách hàng xem thơng tin hàng hóa, tìm kiếm sản phẩm, hàng hoá cần mua. Nếu khách hàng chọn được thiết bị cần mua thì cửa hàng sẽ kiểm tra trong kho, nếu trong kho còn hàng thì nhân viết sẽ viết phiếu bán hàng. Sau đó cửa hàng sẽ tiến hành bàn giao thiết bị cho khách và gửi đến khách hàng hóa đơn thanh toán, phiếu bảo hành và các giấy tờ liên quan, có kèm theo các khuyến mại (nếu có).

Khi khách đã thanh tốn tiền thiết bị thì cửa hàng sẽ lập biên lai thu tiền cho khách đồng thời sẽ ghi các thông tin cần thiết vào sổ thu và sổ kho. Để tiện cho việc quản lý hệ thống sẽ lưu trữ và quản lý thông tin về nhà cung cấp và thông tin khách hàng. Có thể sửa hoặc xóa khi cần thiết. Sau một khoảng thời gian nhất định nhân viên các bộ phận sẽ tổng hợp thông tin mua, bán, và các thơng tin khác.

<b>II. Mơ hình CSDL </b>

<b>● tblLoaiHang MaLoaiHang</b> ( , TenLoaiHang);

<b>● tblNhaCungCap (MaNCC, TenNhaCC, TenGiaoDich, DiaChi, </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>● tblKhachHang (MaKH, TenKH, DiaChi, DienThoai); ● tblNhanVien MaNV</b> ( , TenNV, DiaChi, DienThoai,

NgaySinh,GioiTinh, NgayVaoLam, LuongCoBan, PhuCap);

<b>● tblDonDatHang (SoHD, MaNV MaKH, NgayDatHang, </b>, NgayGiaoHang, DiaChiGiaoHang, TongTienHD);

<b>● tblChiTietDatHang (SoHD, MaHang, GiaBan, SoLuongMua, </b>

MucGiamGia);

<b>● tblDonNhapKho (SoNK, MaNV, NgayNhapHang, </b>

TongSoLuong);

<b>● tblChiTietNhapKho (SoNK, MaHang, GiaNhap, SoLuongNhap). </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu Ràng Buộc <b>Ghi Chú </b>

1 sMaLoaiHang varchar(20) PK Mã loại hàng 2 sTenLoaiHang nvarchar(30) Tên loại hàng

<b>*tblNhaCungCap </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu Ràng Buộc <b>Ghi Chú </b>

2 sTenNhaCC nvarchar(30) Tên nhà cung cấp 3 sTenGiaoDich nvarchar(50) Tên nhà giao dịch

<b>*tblMatHang </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu Ràng Buộc <b>Ghi Chú </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

4 sMaLoaiHang varchar(20) FK Mã loại hàng

<b>*tblNhanVien </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu Ràng Buộc <b>Ghi Chú </b>

3 sDiaChi nvarchar(50) Địa chỉ

5 dNgaySinh Datetime dNgaysinh

<b>*tblDonDatHang </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu Ràng Buộc <b>Ghi Chú </b>

4 dNgayDatHang Datetime Ngày đặt hàng 5 dNgayGiaoHang Datetime dNgayGiao

Hang >=

Ngày giao hàng lớn hơn hoặc bằng

ngày đặt hàng

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

dNgayDatH ang

6 sDiaChiGiaoHang nvarchar(50) Địa chỉ giao hàng 7 fTongTienHD float fTongTienH

Tổng tiền của hóa đơn

<b>*tblChiTietDatHang </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu Ràng Buộc <b>Ghi Chú </b>

2 sMaHang varchar(20) PK, FK Mã hàng

<b>*tblDonNhapKho </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu <b>Ràng </b>

Buộc

<b>Ghi Chú </b>

3 dNgayNhapHang Datetime Ngày nhập hàng 4 fTongSoLuong float fTongSoL

uong >0

Tổng số lượng hàng nhập kho

<b>*tblChiTietNhapKho </b>

<b>TT </b> Tên Thuộc Tính Kiểu Dữ Liệu Ràng Buộc <b>Ghi Chú </b>

1 iSoNK Int PK, FK Số hóa đơn nhập kho 2 sMaHang varchar(20) PK, FK Mã hàng

4 fSoLuongNhap float fSoLuongN hap >0

Số lượng nhập

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>III. Tạo CSDL 1. Tạo Database </b>

<b>Hình 1: Database Diagram </b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

CREATE DATABASE BTLN09QuanLyKinhDoanhMayTinh

iMaNCC INT REFERENCES dbo.tblNhaCungCap(iMaNCC), sMaLoaiHang VARCHAR(20) REFERENCES

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

iMaKH INT PRIMARY KEY,

iSoHD INT PRIMARY KEY,

iMaNV INT REFERENCES dbo.tblNhanVien(iMaNV), iMaKH INT REFERENCES dbo.tblKhachHang(iMaKH),

iSoHD INT REFERENCES dbo.tblDonDatHang(iSoHD),

sMaHang VARCHAR(20) REFERENCES dbo.tblMatHang(sMaHang), fGiaBan FLOAT,

iSoLuongMua INT,

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

iSoNK INT PRIMARY KEY,

iMaNV INT REFERENCES dbo.tblNhanVien(iMaNV),

iSoNK INT REFERENCES dbo.tblDonNhapKho(iSoNK),

sMaHang VARCHAR(20) REFERENCES dbo.tblMatHang(sMaHang), fGiaNhap FLOAT,

fSoLuongNhap FLOAT CHECK (fSoLuongNhap >0),

CONSTRAINT pk_chitietnhapkho PRIMARY KEY(iSoNK,sMaHang)

INSERT INTO dbo.tblNhaCungCap VALUES

(101, N'ASUS', N'Nhập Hàng Asus', N'Hà Nội', '0334455667'), (102, N'DELL', N'Nhập Hàng Dell', N'Đà Nẵng', '0334455668'), (103, N'APPLE', N'Nhập Hàng Apple', N'Hải Phòng', '0334455669'), (104, N'LENOVO', N'Nhập Hàng Lenovo', N'TP. Hồ Chí Minh', '0334455670' )

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

--tblKhachHang

INSERT INTO dbo.tblKhachHang VALUES

(111, N'Trần Anh Vũ', N'Giáp Nhị, Hà Nội', '0112233445'), (112, N'Trần Thanh Tâm', N'Hoàng Mai, Hà Nội', '0112233446'), (113, N'Nguyễn Minh Tú', N'Minh Khai, Hà Nội', '0112233447'), (114, N'Đỗ Thu Phương', N'Giáp Bát, Hà Nội', '0112233448'), (115, N'Lê Văn Tráng', N'Định Công, Hà Nội', '0112233449')

INSERT INTO dbo.tblMatHang VALUES

('MH01', N'ASUS VivoBook 15 A512DA', 101, 'LH01', 400, 12290000), ('MH02', N'ASUS Laptop 15 X509UA', 101, 'LH01', 350, 10700000), ('MH03', N'Laptop Dell XPS 13', 102, 'LH01', 100, 40400000), ('MH04', N'Laptop Dell Gaming G3', 102, 'LH01', 200, 21000000), ('MH05', N'Laptop Lenovo Thinkpad X13', 104, 'LH01', 150, 34500000), ('MH06', N'Apple MacBook Pro', 103, 'LH01', 250, 35500000), ('MH12', N'Tai nghe AirPods 2', 103, 'LH03', 200, 3990000), ('MH13', N'Apple Magic Mouse 2', 103, 'LH03', 200, 2490000), ('MH14', N'CPU AMD Ryzen 9', 101, 'LH03', 150, 19299000), ('MH15', N'Card đồ họa RTX3060TI', 101, 'LH03', 200, 13149000) --tblDonNhapKho

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

INSERT INTO dbo.tblDonNhapKho VALUES

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

SELECT * FROM dbo.tblLoaiHang

SELECT * FROM dbo.tblMatHang

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

SELECT * FROM dbo.tblNhaCungCap

SELECT *FROM dbo.tblKhachHang

SELECT * FROM dbo.tblNhanVien

SELECT * FROM dbo.tblDonDatHang

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

SELECT * FROM dbo.tblChiTietDatHang

SELECT * FROM dbo.tblDonNhapKho

SELECT * FROM dbo.tblChiTietNhapKho

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>IV. Xây dựng các view cho CSDL </b>

<small>1. </small> Tạo view chứa danh sách nhân viên với các thông tin: Mã Nhân Viên, Tên Nhân Viên, Lương Cơ Bản, Phụ Cấp

CREATE VIEW vv_dsnhanvien AS

SELECT iMaNV AS [Mã Nhân Viên],sTenNV AS [Họ & Tên], fLuongCoBan AS [Lương Cơ Bản], fPhuCap AS [Phụ Cấp] FROM dbo.tblNhanVien

SELECT * FROM vv_dsnhanvien

<small>2. </small> Tạo view cho biết danh sách tên hàng đã bán trong tháng 6 năm 2020 CREATE VIEW vv_dshangban2020

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>3. </small> Tạo view cho biết mặt hàng có số lượng lớn hơn 200 CREATE VIEW vv_dshangbansoluong200 AS

SELECT sMaHang,sTenHang,fSoLuong FROM dbo.tblMatHang

WHERE fSoLuong > 200

SELECT * FROM vv_dshangbansoluong200

<small>4. </small> Tạo view chứa danh sách nhân viên nam CREATE VIEW vv_dsnhanviennam AS

SELECT *

FROM dbo.tblNhanVien WHERE sGioiTinh = N'Nam' SELECT * FROM vv_dsnhanviennam

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

SELECT * FROM vv_soluongvatongtiensp2020

20. Tạo view nhân viên làm việc trên 2 năm

CREATE VIEW vv_nhanvienlamtren2nam

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>V. Xây dựng các Procedure cho CSDL </b>

<small>1. </small> Tìm nhân viên theo tên nhân viên

CREATE PROC sptimnhanvien_tennhanvien (@tennhanvien

EXEC sptimnhanvien_tennhanvien N'Vương Quang Huy'

2. Tổng tiền hàng bán ra trong một tháng trong 1 năm

CREATE PROC sptongtienhangban_thang (@thang int, @nam int) WHERE tblDonDatHang.iSoHD = tblDonDatHang.iSoHD

AND MONTH(dNgayGiaoHang) = @thang AND YEAR(dNgayGiaoHang) = @nam

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

CREATE PROC spluongnhanvien_maNV (@maNV nvarchar(20))

EXEC spluongnhanvien_maNV @maNV=N'1010'

4. Mặt hàng không bán được trong năm

CREATE PROC dskhongduocban2020 (@nam INT) AS

BEGIN

SELECT tblmathang.smahang, tblmathang.stenhang FROM tblmathang where tblmathang.smahang NOT IN (SELECT tblmathang.smahang

EXEC dskhongduocban2020 @nam='2020'

5. Tạo thủ tục bổ sung thêm 1 bản ghi mới cho tblChiTietDatHang

CREATE PROC spthemHD (@mahd nvarchar(10),@mahang

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

nvarchar(10), @giaban float, @SLmua int, @mucgiamgia float) AS

BEGIN

INSERT INTO tblChiTietDatHang

VALUES (@mahd, @mahang, @giaban, @SLmua,

CREATE PROC sptangluongcoban_nhanvien (@chitieu int, @nam int, @phantram float)

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

7. Doanh số bán ra của một mặt hàng trong năm

CREATE PROC spdoanhso1mathang1nam (@mahang nvarchar(10),

EXEC spdoanhso1mathang1nam @mahang='MH11', @nam='2019'

8. Tổng số tiền hàng thu được của một năm

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

CREATE PROC sptienhang1nam (@nam int)

EXEC sptienhang1nam @nam='2019'

9. Tổng tiền hàng nhập vào của một năm

CREATE PROC sp_tongtiennhaphang1nam (@Nam int)

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

10. Giỏ hàng của khách hàng (sản phẩm đã mua + đã giao)

CREATE PROC spgiohang_khachhang (@makh int)

11. Thống kê hàng nhập từ một nhà cung cấp trong một năm

CREATE PROC spthongkesanpham_nhacungcap (@mancc

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

12. Truy xuất nguồn gốc của một mặt hàng

CREATE PROC spchitiet_mathang (@mamathang nvarchar(20))

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

13. Giảm giá với đơn đặt hàng chưa áp dụng giảm giá và được đặt hàng trong ngày hôm nay ( mức giảm giá x%)

CREATE PROC spmucgiamgia_dondathang (@sohd int, @ngaydat datetime, @mucgiamgia float )

AS BEGIN

UPDATE dbo.tblChiTietDatHang

SET fMucGiamGia = fMucGiamGia+ @mucgiamgia WHERE iSoHD IN ( SELECT tblDonDatHang.iSoHD

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

14. Số tiền mà nhân viên sử dụng để nhập kho và số hóa đơn đã xử lí

CREATE PROC spthongkenhapkho_nhanvien ( @manv int )

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

15. Số tiền mà nhân viên bán được và số hóa đơn đã xử lý

CREATE PROC spthongkebanhang_nhanvien ( @manv int )

<b>VI. Xây dựng các Trigger cho CSDL </b>

<small>1. </small> Giá bán phải lớn hơn hoặc bằng giá hàng CREATE TRIGGER tg_kiemTraGiaBan

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

SELECT @giaBan = fGiaBan, @maHang = sMaHang FROM Inserted

SELECT @giaHang = fGiaHang FROM dbo.tblMatHang WHERE @maHang = sMaHang

2. Kiểm tra giới tính xem đúng khơng

CREATE TRIGGER tg_kiemtragioitinh ON dbo.tblNhanVien

AFTER INSERT, UPDATE AS

BEGIN

DECLARE @gioitinh NVARCHAR(5) SELECT @gioitinh = sGioiTinh FROM inserted IF(@gioitinh != N'Nam' AND @gioitinh != N'Nữ')

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

3. Kiểm tra ngày nhập hàng đúng không

CREATE TRIGGER tg_kiemTraNgayNhapHang ON tblDonNhapKho

AFTER INSERT, UPDATE AS

BEGIN

DECLARE @ngayNhapHang DATETIME

SELECT @ngayNhapHang = dNgayNhapHang FROM

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

4. Kiểm tra ngày vào làm xem hợp lý không CREATE TRIGGER tg_kiemTraNgayVaoLam ON tblNhanVien

AFTER INSERT, UPDATE AS

BEGIN

DECLARE @ngayVaoLam DATETIME

SELECT @ngayVaoLam = dNgayVaoLam FROM Inserted

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

5. Đảm bảo số lượng hàng bán khơng vượt số hiện có và nếu bán thì số lượng hàng trong kho sẽ giảm

CREATE TRIGGER tg_kiemtrahangban ON dbo.tblChiTietDatHang INSTEAD OF INSERT,UPDATE AS

BEGIN

DECLARE @soluongmua FLOAT DECLARE @smahang VARCHAR(20) DECLARE @soluongkho FLOAT

SELECT @soluongmua = iSoLuongMua,@smahang = sMaHang FROM inserted

SELECT @soluongkho = (SELECT fSoLuong

PRINT('So Luong Mua Vuot Qua So Luong Trong Kho')

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

6. Cập nhật lại số lượng hàng tồn kho khi khách hàng hủy đặt một mặt hàng

CREATE TRIGGER tg_xoachitietdathang ON dbo.tblChiTietDatHang AFTER DELETE

AS

BEGIN

DECLARE @soluongmua FLOAT DECLARE @smahang VARCHAR(20) DECLARE @soluongkho FLOAT

SELECT @soluongmua = iSoLuongMua,@smahang = sMaHang FROM Deleted

SELECT @soluongkho = (SELECT fSoLuong

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

7. Cập nhật số lượng hàng tồn kho khi nhập thêm mặt hàng

CREATE TRIGGER tg_themChiTietDatHang

SELECT @soLuongKho = fSoLuong FROM dbo.tblMatHang WHERE @maHang = sMaHang

BEGIN

UPDATE dbo.tblMatHang

SET fSoLuong = fSoLuong - @soLuongMua WHERE sMaHang = @maHang

END END

</div><span class="text_page_counter">Trang 41</span><div class="page_container" data-page="41">

Trước khi thêm dữ liệu

Dữ liệu được thêm

</div><span class="text_page_counter">Trang 42</span><div class="page_container" data-page="42">

Sau khi thêm dữ liệu thì bảng tblMatHang (dòng 13) được cập nhật số lượng

8. Cập nhật tổng tiền của hóa đơn khi đặt thêm hàng CREATE TRIGGER tg_tongTienHoaDon_insert

</div><span class="text_page_counter">Trang 43</span><div class="page_container" data-page="43">

END END

Trước khi nhập

Dữ liệu nhập

Sau khi nhập thì bảng tblDonDatHang (dịng 5) thay đổi

9. Cập nhật tổng tiền của hóa đơn khi khách hàng hủy đặt mặt hàng

CREATE TRIGGER tg_tongtienhoadon_delete ON dbo.tblChiTietDatHang

AFTER DELETE AS

BEGIN

</div><span class="text_page_counter">Trang 44</span><div class="page_container" data-page="44">

DECLARE @iSohd INT

DECLARE @giahangmua FLOAT

SELECT @giahangmua = (fGiaBan * iSoLuongMua - fGiaBan * iSoLuongMua*fMucGiamGia),@iSohd = iSoHD FROM

10. Cập nhật số lượng hàng nhập của một hóa đơn nhập kho khi nhập mới

CREATE TRIGGER tg_capnhatdonnhapkho_soluong ON dbo.tblChiTietNhapKho

INSTEAD OF INSERT AS

BEGIN

DECLARE @slnhap FLOAT, @sonk INT SELECT @slnhap = fSoLuongNhap,@sonk = iSoNK FROM Inserted

</div><span class="text_page_counter">Trang 45</span><div class="page_container" data-page="45">

<b>VII. Phân quyền và bảo mật CSDL --1. Tài Khoản Quản Lý </b>

CREATE LOGIN Quanli WITH PASSWORD = '123456' CREATE USER quanli01 FOR LOGIN Quanli

GRANT UPDATE,SELECT,INSERT,DELETE ON dbo.tblNhanVien

GRANT EXECUTE ON dbo.sptimnhanvien_tennhanvien TO quanli01 GRANT EXECUTE ON dbo.spluongnhanvien_maNV TO quanli01 GRANT EXECUTE ON dbo.sptangluongcoban_nhanvien TO quanli01 GRANT EXECUTE ON dbo.spthongkesanpham_nhacungcap TO quanli01

GRANT EXECUTE ON dbo.spgiohang_khachhang TO quanli01 GRANT EXECUTE ON dbo.sp_tongtiennhaphang1nam TO quanli01 GRANT EXECUTE ON dbo.sptienhang1nam TO quanli01

GRANT EXECUTE ON dbo.spdoanhso1mathang1nam TO quanli01 GRANT EXECUTE ON dbo.dskhongduocban2020 TO quanli01 GRANT EXECUTE ON dbo.sptongtienhangban_thang TO quanli01 GO

<b>--2. Tài Khoản Nhân viên Nhập Kho </b>

CREATE LOGIN NhanvienNK WITH PASSWORD = '123456' CREATE USER nhanvienNK FOR LOGIN NhanvienNK

</div><span class="text_page_counter">Trang 46</span><div class="page_container" data-page="46">

DENY UPDATE,SELECT,INSERT,DELETE ON dbo.tblNhanVien

GRANT EXECUTE ON dbo.spthemHD TO nhanvienNK GRANT EXECUTE ON dbo.spthongkenhapkho_nhanvien TO nhanvienNK

<b> --3. Tài Khoản Nhân viên Bán Hàng </b>

CREATE LOGIN NhanvienBH WITH PASSWORD = '123456' CREATE USER nhanvienBH FOR LOGIN NhanvienBH

DENY UPDATE,SELECT,INSERT,DELETE ON dbo.tblNhanVien

CREATE LOGIN KhachHang WITH PASSWORD = '123456' CREATE USER khachhang FOR LOGIN KhachHang

GRANT UPDATE,SELECT,INSERT ON dbo.tblKhachHang TO khachhang

GRANT EXECUTE ON dbo.spgiohang_khachhang TO khachhang

</div><span class="text_page_counter">Trang 47</span><div class="page_container" data-page="47">

<b>VIII. Phân tán CSDL </b>

<b>Phân mảnh csdl của bảng nhân viên với điều kiện giới tính </b>

- MAYTRAM1 : quản lý nhân viên có giới tính là nam - MAYTRAM2 : quản lý nhân viên có giới tính là nữ

</div><span class="text_page_counter">Trang 49</span><div class="page_container" data-page="49">

MAYTRAM2 sau khi phân tán:

</div><span class="text_page_counter">Trang 51</span><div class="page_container" data-page="51">

<b>1.a. Tạo remove login bên maytram2 </b>

user HTKN (123456)

chỉ có quyền trên database BTLN09QUANLYKINHDOANHMAYTINH

</div><span class="text_page_counter">Trang 53</span><div class="page_container" data-page="53">

<b>1.b Tạo Linkserver từ MAYTRAM1 -> MAYTRAM2 </b>

</div><span class="text_page_counter">Trang 54</span><div class="page_container" data-page="54">

<b>1.c Khai Thác CSDL </b>

- Trong Suốt Dữ Liệu

--Tạo nhãn dữ liệu ( trong suốt dữ liệu) --BẢNG nhân viên ở máy trạm2

CREATE SYNONYM maytram2_nhanvien

FOR LINK.BTLN09QuanLyKinhDoanhMayTinh.dbo.tblNhanVien SELECT * FROM maytram2_nhanvien

--BẢNG don dat hang ở máy trạm2

CREATE SYNONYM maytram2_dondathang

FOR LINK.BTLN09QuanLyKinhDoanhMayTinh.dbo.tblDonDatHang SELECT * FROM maytram2_dondathang

--BẢNG chi tiet dat hang ở máy trạm2 CREATE SYNONYM maytram2_chitietdathang FOR

LINK.BTLN09QuanLyKinhDoanhMayTinh.dbo.tblChiTietDatHang

</div><span class="text_page_counter">Trang 55</span><div class="page_container" data-page="55">

SELECT * FROM maytram2_chitietdathang

--BẢNG don nhap kho ở máy trạm2

CREATE SYNONYM maytram2_donnhapkho

FOR LINK.BTLN09QuanLyKinhDoanhMayTinh.dbo.tblDonNhapKho SELECT * FROM maytram2_donnhapkho

--BẢNG chi tiet nhap kho ở máy trạm2 CREATE SYNONYM maytram2_chitietnhapkho FOR

LINK.BTLN09QuanLyKinhDoanhMayTinh.dbo.tblChiTietNhapKho SELECT * FROM maytram2_chitietnhapkho

go

- Tạo Thủ Tục Thêm Nhân Viên Mới --1 tạo thủ tục thêm 1 nhân viên mới

CREATE PROC sp_themnhanvien_phantan (@manv int,@tennv nvarchar(30), @diachi nvarchar(50),

@dienthoai CHAR(10),@ngaysinh DATETIME,@gioitinh NVARCHAR(5),

@ngayvaolam DATETIME,@luongcoban FLOAT,@phucap

IF EXISTS (SELECT * FROM maytram2_nhanvien WHERE @manv = iMaNV)

PRINT ('Ma nhan vien da ton tai')

</div>

×