Tải bản đầy đủ (.docx) (26 trang)

Cơ sở dữ liệu phân tán UTT

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 (872.91 KB, 26 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT
KHOA CÔNG NGHỆ THÔNG TIN
-----o0o-----

BÁO CÁO MÔN CSDL PHÂN TÁN
TÊN ĐỀ TÀI:
QUẢN LÝ KHÁM BỆNH TẠI BỆNH VIỆN

GIÁO VIÊN HƯỚNG DẪN: NGUYỄN THỊ NHƯ
NHÓM THỰC HIỆN: NHÓM 15
THÀNH VIÊN TỰC HIỆN:

Hy Tiến Sơn
Nguyễn Quốc Việt
Nguyễn Đức Nam

LỚP: 72DCTT21
Hà Nội, 2024


Mục lục
I.Phát biểu bài tốn.......................................................................................................................................1
II.Mơ hình cơ sở dữ liệu quan hệ.................................................................................................................1
1.Xác định các thực thể, thuộc tính và ràng buộc......................................................................................1
2.Các bảng được xác định cấu trúc như sau:.............................................................................................2
III.Tạo cơ sở dữ liệu......................................................................................................................................4
IV.Xây dựng các view cho CSDL...............................................................................................................10
1.Tạo view cho biết hoá đơn lập năm 2000...............................................................................................10
2.Tạo view cho biết hoá đơn có tổng tiền trên 100000.............................................................................11
3.Tạo view cho biết bệnh nhân là nữ ở HN...............................................................................................11
4.Tạo view cho biết tên thuốc có số lượng bán lớn hơn 6........................................................................12


5.Tạo view cho biết tên bệnh nhân, sđt và tổng tiền lớn nhất................................................................12
V.Xây dựng các Procedure cho CSDL......................................................................................................12
1. Tạo Proc tính tổng tiền đã mua hàng của một bệnh nào đó theo Mã bệnh nhân........................12
2. Tạo Proc cho biết tên thuốc đã được mua bởi một bệnh nhân nào đó (Theo số điện thoại).....13
3. Tạo Pro cho biết tổng số tiền Thuốc đã bán của một tháng, một năm nào đó ............................14
VI. Xây dựng các Trigger cho CSDL......................................................................................................14
1.Trigger đảm bảo ngày xuất hóa đơn phải lớn hơn hoặc bằng ngày hiện tại.................................15
2. Trigger kiểm tra tính chính xác khi nhập số điện thoại của bệnh nhân.......................................15
3.Trigger đảm bảo giá nhập hàng luôn lớn hơn 0.................................................................................15
4. Trigger đảm bảo giới tính của bệnh nhân chỉ là nam hoặc nữ.......................................................16
5.Trigger đảm bảo hóa đơn DV khơng quá 3 dịch vụ..........................................................................16
VII.Phân quyền và bảo vệ cơ sở dữ liệu.................................................................................................17
1.Tạo tài khoản...........................................................................................................................................17
2.Tạo user cho các thành viên..................................................................................................................17
3. Cấp quyền cho các thành viên..............................................................................................................17
VIII.Phân tán CSDL..................................................................................................................................20
1.Phân mảnh bảng tblBenhNhan cơ sở dữ liệu với điều kiện giới tính.............................................20
2.Máy trạm 1 sau khi phân tán................................................................................................................20
3. Máy trạm 2..............................................................................................................................................21
4.Tạo linkserver từ máy trạm 1 -> máy trạm 2.....................................................................................22
5.Khai thác Cơ sở dữ liệu..........................................................................................................................23


LỜI NÓI ĐẦU
Trong bối cảnh cuộc sống ngày nay, hệ thống y tế đang ngày càng đối mặt với thách thức lớn trong
việc quản lý thông tin khám bệnh và cung cấp dịch vụ chăm sóc sức khỏe hiệu quả. Đặc biệt, với
sự gia tăng về số lượng bệnh nhân, sự phức tạp của các ca bệnh, và nhu cầu ngày càng cao về sự
linh hoạt và đồng nhất trong quản lý thông tin, việc áp dụng cơ sở dữ liệu phân tán trở thành một
giải pháp hiệu quả để nâng cao chất lượng và hiệu suất của hệ thống y tế.
Chính vì lẽ đó, trong khn khổ mơn học Cơ sở dữ liệu phân tán, chúng tôi đã chọn đề tài "Quản

lý khám bệnh tại bệnh viện" để nghiên cứu và triển khai một hệ thống cơ sở dữ liệu phân tán,
nhằm tối ưu hóa q trình ghi nhận thông tin bệnh nhân, lên lịch khám, và quản lý dữ liệu y tế.
Báo cáo này không chỉ là kết quả của sự học tập và nghiên cứu sâu rộng trong lĩnh vực cơ sở dữ
liệu phân tán, mà còn là sự đóng góp của chúng tơi vào việc giải quyết những thách thức thực tế
mà các bệnh viện đang phải đối mặt. Chúng tôi tin rằng báo cáo này sẽ mang lại cái nhìn tổng quan
về ưu điểm và thách thức của việc áp dụng cơ sở dữ liệu phân tán trong lĩnh vực quản lý khám
bệnh, đồng thời đề xuất những cải tiến và phát triển trong tương lai.


Phát biểu bài toán
Qua khảo sát hoạt động của bệnh viện ta thấy cần phải quản lý dữ liệu thông tin của các Bác Sĩ
làm việc trong bệnh, các Dịch Vụ khám được cung cấp, các loại Thuốc, thông tin của các
BệnhNhân các Hóa Đơn đóng tiền khi sử dụng dịch vụ và để giúp việc quản lý khám bệnh dễ dàng
hơn cũng như sau này:
- Bác sĩ: mã bác sĩ, tên bác sĩ, chuyên ngành. Quy định mỗi bác sĩ chỉ có một mã bác sĩ
- Bệnh nhân: là những người đến khám bệnh và sử dụng dịch vụ. Mỗi bệnh nhân khi đến khám
bệnh cần khai báo các thơng tin trên để dễ dàng hướng dẫn đến phịng khám phù hợp, lập đơn
thuốc và hóa đơn. Mỗi bệnh nhân bao gồm các thông tin: mã bệnh nhân, tên bệnh nhân, giới tỉnh,
ngày sinh, địa chỉ, số điện thoại, tình trạng sức khỏe.
- Các Dịch Vụ khám được xác định bởi: mã dịch vụ, tên dịch vụ, đơn giả.
- Cịn Thuốc bao gồm thơng tin: mã thuốc, tên thuốc đơn giả.
- Bệnh nhân cần có đơn thuốc phiếu này sẽ do bác sĩ lập gồm có: mã đơn thuốc,mã bác sĩ, mã
bệnh nhân. Từ đơn thuốc yêu cầu có một đơn thuốc chi tiết có mã đơn thuốc, mã thuốc, số lượng
để quản lý được các loại thuốc đã được phát cho ai, khi nào.
- Bệnh nhân cần qua bộ phận thanh tốn để nộp phí khám bệnh Hóa Đơn bảng có mẫu như sau:
mã hóa đơn, mã đơn thuốc, mã bệnh nhân, ngày lập, tổng tiền. Từ những hóa đơn đó chúng ta phải
có một chi tiết Hóa Đơn- Dịch Vụ gồm: mã hóa đơn, mã dịch vụ, số lượng để biết chi tiết về dịch
vụ đã được sử dụng.
I.Mơ hình cơ sở dữ liệu quan hệ
1. Xác định các thực thể, thuộc tính và ràng buộc

• tblBENHNHAN(sMaBN, sTenBN, sGioiTinh, dNgaySinh, sDiaChi,
iSodienthoai, sTinhtrangsuckhoe)
• tblBACSI(sMaBS, sTenBS, sChuyenNganh)
• tblTHUOC(sMaThuoc, sTenThuoc, fGiaThuoc)
• tblDONTHUOC(sMaDT, sMaBS, sMaBN)
• tblCT_DONTHUOC(sMaDT, sMaThuoc, iSoLuong)
• tblDICHVUKHAM(sMaDV, sTenDV, fDonGia)
• tblHOADON(sMaHD, sMaDT, sMaBN, dNgayLap, fTongtien)
• tblHOADONDV(sMaHD, sMaDV fSoLuong)
• *tblBENHNHAN: lưu trữ thông tin BỆNH NHÂN
2. Các băng được xác định cấu trúc như sau:

*tblBACSI: lưu trữ thông tin BÁC SĨ

2


*tblTHUOC: lưu trữ thông tin THUỐC

*tblDONTHUOC: lưu trữ thông tin ĐƠN THUỐC

*tblCT_DONTHUOC:

*tblDICHVUKHAM(sMaDV, sTenDV, fDonGia)

*tblHOADON: lưu trữ thơng tin hóa đơn

*tblHOADONDV

2



III. Tạo cơ sở dữ liệu
--Tao database
create database qlyKhamBenh
use qlyKhamBenh
go
-- Tạo bảng bệnh nhân viên và ràng buộc
create table tblBenhNhan
(
sMaBN VARCHAR (10) primary key not null,
sTenBN nvarchar (30) null,
sGioiTinh bit null,
dNgaySinh date null,
sDiaChi nvarchar (255).
iSodienthoai varchar (10) null,
sTinhtrangsuckhoe nvarchar(255)
)
alter table tblBenh Nhan
alter column sGioiTinh nvarchar(5)
-- Tạo bảng bác sĩ
create table tblBacSi(
);
-- Tạo bảng thuốc
sMaBS varchar (10) primary key not null,
sTenBS Nvarchar (30) null,
sChuyenNganh nvarchar (30) null
create table tblDichVuKham
);
sMaDV varchar (10) primary key not null,

sTenDV nvarchar (30) null,
fDonGia float
-- Tạo bảng đơn thuốc và ràng buộc
create table tblDonThuoc(
sMaDT varchar (10) primary key not null,
sMaBS varchar (10) references tblBacSi(sMaBS),
sMaBN varchar(10) references tblBenhNhan(sMaBN),
);
--Tạo bảng chi tiết đơn thuốc và ràng buộc
create table tblCT_DonThuoc(
);
sMaDT varchar (10) not null,
sMaThuoc varchar (10)not null,
iSoLuong int check (iSoLuong>0).
constraint PK_Ma primary key (sMaDT,sMaThuoc).
foreign key (sMaThuoc) references tbl Thuoc(sMaThuoc),
foreign key (sMaDT) references tblDonThuoc(sMaDT)
--Tạo bảng dịch vụ khám
create table tblDichVuKham
sMaDV varchar (10) primary key not null,
sTenDV nvarchar (30) null,

2


fDonGia float
);
--Tạo bảng hoá đơn
create table tblHoaDon
sMaHD varchar (10) primary key not null,

sMaDT varchar (10) not null references
tblDonThuoc(sMaDT),
sMaBN varchar (10) not null references
tblBenhNhan (sMaBN),
);
dNgayLap date null,
fTongTien float
--Tạo bảng hoá đơn_dịch vụ
create table tblHoaDon_DV(
sMaHD varchar (10)not null,
sMaDV varchar (10) not null,
fSoLuong float check (fSoLuong>0),
constraint PK_hoadon_DV primary key (sMaHD, sMaDV),
foreign key (sMaHD) references tblHoaDon (sMaHD),
foreign key (sMaDV) references tblDichVuKham (sMaDV)
);
*Chèn dữ liệu cho các bảng
-- chèn dữ liệu vào bảng tblBenhNhan
INSERT INTO
tblBenhNhansMaBN_sTenBN_sGioiTinh_dNgay Sinh sDiaChi_iSodienthoai_sTinhtr
angsuckhoe)
VALUES (BN01',N'Nguyễn Ngọc NNữ 06/03/1999' NHà Nội
','023772457',N'Sót').
('BN02' NNguyễn Lan NNữ 07/05/1994 N Quảng
Ninh','025452457',N'Ho'),
('BN03',N'Nguyễn Hoa NNữ 03/03/1996',N'Hải Phòng
''023452457',N'Viêm xoang),
('BN04',N'Nguyễn Hồng Hoa NNữ 06/05/1999'NHà Nội
','033452457',N'Sót'),
(BN05',N'Nguyễn Hùng',N'Nam' '08/03/1989',N'Thái Bình

''093452457',N'Co giật),
('BN06_NĐặng Trang NNữ 06/03/1977',N'Thái Bình
''093452457',N'Sốt),
(BN07 NNguyễn Hiếu _NNam' 06/03/2000',N'Hà Nội
''02332457',N'Viêm phổi).
('BN08'N Lê Hồng N'Nam','06/03/2002'N'Nam Định
''097452457'N'Ung thư phổi)

2


-- chén dữ liệu vào bảng tblBacSi
INSERT INTO tblBacSi(sMaBS sTenBS sChuyen Nganh)
VALUES (BS01'NNguyễn Tuấn NĐa khoa),
('BS02' NNguyễn Tuấn',N'Tai Mũi Họng),
('BS03'NNguyễn Tuấn' N'Răng hàm mặt"),
('BS04'NNguyễn Tuấn',N'Nội xương cơ khớp),
(BS05',N'Nguyễn Tuấn',N'Da liễu)

-- chèn dữ liệu vào bằng tblThuoc
INSERT INTO tblThuoc(sMaThuoc, sTenThuoc fGiaThuoc)
VALUES ('T01',N'Vitamin','43000'),
(T02',N'Kháng sinh','80000'),
('T03'_N'Tiêu hóa''50000').
(T04',N'Tim mach', '400000'),
('T05'NHuyết áp' '100000')

-- chèn dữ liệu vào bảng tblDonThuoc
INSERT INTO tblDonThuoc(sMaDT SMABS,sMaBN)


2


VALUES ('DT01','BS01','BN02'),
('DT02','BS01', 'BN01'),
(DT03', 'BS02', 'BN07'),
('DT04','BS04', 'BN05'),
(DT05', 'BS05', 'BN03')

-- chèn dữ liệu vào bảng tblCT_DT
INSERT INTO tblCT_DonThuoc (sMaDT sMaThuoc.iSoLuong)
VALUES ('DT02','T01',5),
('DT01','T02',4),
('DT03', 'T03',7),
('DT05', 'T04',4),
('DT04', 'T05',9)

-- chén dữ liệu vào bảng tblDichVuKham
INSERT INTO tblDichVuKham(sMaDV¸sTenDV fDonGia)
VALUES ('DVO1'N'Xét nghiệm 400000).
('DV02',N'Khám lâm sàng',700000),
(DV03',N'Siêu âm' 500000),
(DV04',N'X Quang' 550000).
(DV05',N'cơ xương khớp' 990000).
(DV06',N'Nội soi,560000)

-- chèn dữ liệu vào bảng tblHoaDon
INSERT INTO tblHoaDon(sMaHD,sMaBN sMaDT dNgayLap.fTongTien)
VALUES (HD01','BN01','DT01', '06/08/2021',708000),


2


('HD02', 'BN02','DT02','06/08/2020',5550000),
('HD03','BN04','DT03','06/08/2021,7300000),
('HD04','BN05','DT04','06/08/2020',900000),
('HD05', 'BN03', 'DT05', '06/08/2021,5500000)

- Chèn dữ liệu vào bảng tblCT_HD
INSERT INTO tblHoaDon_DV(sMaHD sMaDV,fSoLuong)
VALUES ('HD01','DV01',3),
('HD02','DV02',5),
('HD03', 'DV03',3),
('HD04','DV04',6),
('HD05','DV05',2);

2


Sơ đồ quan hệ giữa các bảng

IV. Xây dựng các view cho CSDL
1. Tạo view cho biết hóa đơn lập năm 2020
CREATE VIEW vvHoaDon2020
AS
SELECT *FROM dbo.tblHoaDon
WHERE YEAR(dNgayLap)='2020'
SELECT * FROM vvHoaDon2020

2



2. Tạo view cho biết hố đơn có tổng tiền trên 1000000
CREATE VIEW vvHoaDonTongTien 1000000
AS
SELECT * FROM dbo.tblHoaDon
WHERE fTongTien>1000000
SELECT * FROM vvHoaDonTongTien 1000000
120 %
SELECT * FROM vvHoaDonTongTien1000000

3. Tạo view cho biết bệnh là nữ và ở Hà Nội
SELECT * FROM dbo.tblBenhNhan
CREATE VIEW vvKhachHangNuHaNoi
AS
SELECT * FROM dbo.tblBenhNhan
WHERE sGioiTinh=N'Nữ AND sDiaChi=N'Hà Nội
SELECT * FROM vvKhachHangNuHaNoi

2


4. Tạo view cho biết tên thuốc có số lượng bán Lớn hơn 6
CREATE VIEW vvTenthuoctren6
AS
SELECT sTenThuoc FROM dbo.tblCT DonThuoc,dbo.tblThuoc
WHERE iSoLuong>6 AND tblCT_DonThuoc.sMaThuoc-tblThuoc.sMaThuoc
SELECT *FROM vvTenthuoctren6

5. Tạo view cho biết tên bệnh nhân, số điện thoại có tổng tiền lớn nhất

CREATE VIEW vvBenNhanTongTienMax
AS
SELECT sTenBN, iSodienthoai FROM dbo.tblBenhNhan,dbo.tblHoaDon
WHERE fTongTien = (SELECT MAX(fTongTien) FROM dbo.tblHoaDon)
AND tblHoaDon.sMaBN tblBenhNhan.sMaBN
SELECT * FROM vvBenNhan TongTienMax

V. Xây dựng các Procedure cho CSDL
1. Tạo Proc tính tổng tiền đã mua hàng của một bệnh nào đó theo Mã bệnh nhân
CREATE PROC prsumTienBenhNhanTheoMa(@maBN nchar(30))
AS
BEGIN
DECLARE @fsum FLOAT

2


SELECT @fsum = SUM(iSoLuong*fGiaThuoc)
FROM dbo.tblThuoc,dbo.tblCT DonThuoc,dbo.tblDonThuoc
WHERE tblCT DonThuoc.sMaThuoc-tblThuoc.sMaThuoc
AND dbo.tblCT DonThuoc.sMaDT=dbo.tblDonThuoc.sMaDT AND
@maBN=sMaBN
SELECT @fsum AS[Tổng Tiên]
END
EXEC prsumTienBenhNhan TheoMa 'BN01'
SELECT * FROM dbo.tblBenhNhan

2. Tạo Proc cho biết tên thuốc đã được mua bởi một bệnh nhân nào đó (Theo số điện thoại)
CREATE PROC prTenThuoc (@sdt int)
AS

BEGIN
SELECT sTenThuoc
FROM dbo.tblBenhNhan, dbo.tblThuoc,
dbo.tblCT DonThuoc,dbo.tblDonThuoc
WHERE dbo.tblBenhNhan.sMaBN=dbo.tblDonThuoc.sMaBN AND
dbo.tblDonThuoc.sMaDT= dbo.tblCT DonThuoc.sMaDT
AND dbo.tblCT_DonThuoc.sMaThuoc-dbo.tblThuoc.sMaThuoc AND @sdt
=iSodienthoai
END
EXEC prTenThuoc 023772457
SELECT * FROM dbo.tblBenhNhan

3. Tạo Pro cho biết tổng số tiền Thuốc đã bán của một tháng, một năm nào đó
CREATE PROC prTienThuocTheoNam@nam int, @thang int )
AS
BEGIN
END

2


DECLARE @fsumTien float
SELECT @fsumTien = fTongTien
FROM dbo.tblHoaDon
WHERE @nam = YEAR(dNgayLap) AND @thang = MONTH(dNgayLap)
SELECT @fsumTien
EXEC prTienThuoc TheoNam 2020,6
SELECT * FROM dbo.tblHoaDon

VI. Xây dựng các Trigger cho CSDL

1. Trigger đảm bảo ngày xuất hóa đơn phải lớn hơn hoặc bằng ngày hiện tại.
CREATE TRIGGER trg_ngaylap on tblHoaDon INSTEAD OF INSERT,
UPDATE
AS
BEGIN
DECLARE @dNgayLap datetime
SELECT @dNgaylap = dNgayLap FROM inserted
BEGIN
IF(@dNgayLap <= GETDATE())
PRINT N'Cập nhật thành cơng'
ELSE
BEGIN
PRINT NNgày xuất hóa đơn phải nhỏ hơn ngày hiện tại
ROLLBACK TRAN
END
END

2


END;
INSERT INTO
tblHoaDon(sMaHD,sMaBN,sMaDT,dNgayLap,fTongTien)
VALUES ('HD01','BN01','DT01','10/12/2021',708000);
2. Trigger kiểm tra tính chính xác khi nhập số điện thoại của bệnh nhân
CREATE TRIGGER trg_ktsdt on tblBenhNhan FOR INSERT,UPDATE
AS
BEGIN
DECLARE @sdt nvarchar(11)
SELECT @sdt = (SELECT iSodienthoai FROM INSERTED)

IF (LEN(@sdt) <10 or LEN (@sdt)>10)
BEGIN
END;
PRINT N'Độ dải số điện thoại phải là 10 chữ số
END
ROLLBACK TRAN
INSERT INTO
tblBenhNhan(sMaBN,sTenBN,sGioiTinh,dNgaySinh,sDiaChi,iSodienthoai,sTinhtr
angsuckhoe)
VALUES ('BN11',N'Nguyễn Ngọc',N'Nữ','06/03/1999',N'Hà Nội
','023772457',N'Sốt);
3. Trigger đảm bảo giả nhập hàng luôn lớn hơn 0.
CREATE TRIGGER trg_gianhaplonhono on tblThuoc FOR INSERT,
UPDATE
AS
BEGIN
DECLARE @fGiaNhap float
END;
SELECT @fGiaNhap = (SELECT fGiaThuoc FROM
IF(@fGiaNhap <=0)
BEGIN
PRINT N'Giá nhập phải lớn hơn 0
ROLLBACK TRAN
END
INSERT INTO tblThuoc sMaThuoc,sTenThuoc,fGiaThuoc)
VALUES ('T07',N'Vitamin', '0');
4. Trigger đảm bảo giới tính của bệnh nhân chỉ là nam hoặc nữ.
CREATE TRIGGER trg_gtbn ON tblBenhNhan INSTEAD OF INSERT
AS
BEGIN

DECLARE @gt nvarchar(10)
END;
SELECT @gt = sGioiTinh FROM inserted
IF(@gt not in(N'Nam',N'Nữ'))
PRINT 'Ban da nhap sai gioi tinh
ROLLBACK TRAN
INSERT INTO
tblBenhNhan(sMaBN,sTenBN,sGioiTinh,dNgaySinh,sDiaChiiSodienthoai,sTinhtr
angsuckhoe)
VALUES ('BN09',N'Nguyễn Ngọc',N'bede','06/03/1999',N'Hà Nội
','023772457',N'Sót');

2


5. Trigger đảm bảo hóa đơn DV khơng q 3 dịch vụ
CREATE TRIGGER trg_hoadondv ON tblHoaDon_DV FOR INSERT
AS
BEGIN
DECLARE @sldv int
DECLARE @hd varchar(10)
SELECT @hd = sMaHD FROM inserted
SELECT @sldv = COUNT(sMaDV) FROM tblHoaDon_DV
WHERE sMaHD =@hd
IF(@sldv >3)
BEGIN
PRINT N'Hóa đơn khơng được quả 3 dịch vụ’
ROLLBACK TRAN
END;
END

INSERT INTO tblHoaDon_DV(sMaHD,sMaDV,fSoLuong)
VALUES ('HD01','DV02',3);
select * from tblHoaDon_DV;
VII. Phân quyền và bảo vệ cơ sở dữ liệu
1. Tạo tài khoản
CREATE LOGIN NguyenTheAnh
WITH PASSWORD='anh123'
CREATE LOGIN NguyenTienTruong
WITH PASSWORD='truong234'
CREATE LOGIN DOLIEN
WITH PASSWORD='lien345'
CREATE LOGIN PHUONGTHAO
WITH PASSWORD='thao567'
2. Tạo user cho các thành viên
CREATE USER user1
FOR LOGIN NguyenTheAnh
GO
CREATE USER user2
FOR LOGIN NguyenTienTruong
GO
CREATE USER user3
FOR LOGIN DOLIEN
GO
CREATE USER user4
FORLOGIN PHUONGTHAO
GO
3. Cấp quyền cho các thành viên
Tạo role quyền select bảng
tblBenhNhan,tblBacSi,tblDichVuKham,tb|DonThuoc
CREATE ROLE role_BenhNhan

GO
GRANT SELECT
ON dbo.tblBenhNhan

2


TO role_BenhNhan
Go
GRANT SELECT
ON dbo.tblBacSi
TO role_BenhNhan
GO
GRANT SELECT
ON dboDichVuKham
TO role_BenhNhan
GO
GRANT SELECT
ON dbo.DonThuoc
TO role_BenhNhan
• userl sử dụng
·
·
Quyền INSERT, UPDATE,DELETE tblBacSi
addrolemember role_BenhNhan
GRANT INSERT,UPDATE,DELET
ON dbo.tblBacSi
TO user1
Execute sp_addrolemember role_BenhNhan,user1
user2

Quyền INSERT, UPDATE,DELETE tblBacSi
▪ addrolemember role_BenhNhan
GRANT INSERT,UPDATE,DELETE
ON dbo.tblHoaDon
TO user2
Execute sp_addrolemember role_BenhNhan,user2
--user3
- Quyền INSERT, UPDATE,DELETE tblBacSi
- addrolemember role_BenhNhan
GRANT INSERT,UPDATE,DELETE
ON dbo.tblDichvukham
TO user3
GO
Execute sp_addrolemember role_BenhNhan,user3
GO
-- user 4
Quyền INSERT, UPDATE,DELETE tblBacSi
▪ addrolemember role_BenhNhan
GRANT INSERT,UPDATE,DELETE
ON dbo.tblDonThuoc
TO user4
GO
Execute sp_addrolemember role_BenhNhan,user4

2


GO
-- thu hồi cấm sử dụng
- user1 thu hồi quyền xoá bảng và cấm sử dụng quyền select bảng

REVOKE DELETE ON dbo.tblBacSi FROM user1
GO
DENY SELECT
ON dbo.tblBacSi
TO user1
GO
-- user4 thu hồi quyền update
REVOKE UPDATE
ON dbo.tblDonThuoc
FROM user4
VIII. Phân tán CSDL
1. Phân mảnh bảng tblBenhNhan cơ sở dữ liệu với điều kiện giới tính
- MAYTRAM1 : quản lý bệnh nhân có giới tính là nam
- MAYTRAM2 : quản lý bệnh nhân có giới tính là nữ
2. Máy trạm 1 sau khi phân tán

2


3. Máy trạm 2:

2



×