Chuẩn hóa cơ sở dữ liệu sGioiTinh phụ thuộc hàm BENHNHAN sCMND sHoTen_BN,sCMND dNgaySinh,sCMND sMaBHYT,sCMND sGioiTinh - Quan hệ không chứa thuộc tính đa trị, không chứa thuộc tín
Trang 1Đề 21
<QUẢN LÍ KHÁM BỆNH TẠI BỆNH VIỆN>
SVTH: Nguyễn Thế Minh Phúc Mai Đức Minh Lèo Thị Kim Ngân Nguyễn Tấn Minh GVHD: Ths Trịnh Thị Xuân
Trang 2Đề bài: Quản lý khám bệnh tại bệnh viện
Yêu cầu:
- Bài toán cần quản lý ít nhất 03 đối tượng
- Mô tả bài toán phải thể hiện được các đối tượng và thông tin cần quản lý, đồng thời phải thể hiện được ràng buộc dữ liệu của bài toán
Nội dung thực hiện:
01 Phát biểu bài toán
02 Xây dựng mô hình thực thể liên kết
03 Xây dựng mô hình cơ sở dữ liệu quan hệ
04 Xác định các ràng buộc của bài toán
05 Chuẩn hóa cơ sở dữ liệu 06 Xác định dữ liệu thực mô tả bài toán (Nhập các dòng cho các bảng – Có thể cài đặt vào một hệ quản trị nào đó)
07 Khai thác CSDL dưới dạng các biểu thức đại số quan hệ
Trang 3Mục lục
I Phát biểu bài toán 4
II Mô hình ER 5
III Mô hình quan hệ 5
IV Rằng buộc bài toán 6
V Chuẩn hóa cơ sở dữ liệu 7
VI Xác định dữ liệu thực mô tả bài toán 9
VII Khai thác CSDL dưới dạng các biểu thức đại số quan hệ 11
Trang 4I Phát biểu bài toán
- Một bệnh viện gồm nhiều Khoa khác nhau gồm mã khoa và tên khoa Trong
đó các khoa sẽ phân biệt qua mã khoa
- Mỗi khoa sẽ gồm các BÁC SĨ cần có có id, họ tên; hệ số lương, một số điện thoại số điện thoại,lương, Email Trong đó mỗi bác sĩ phân biệt qua id;
+ Lương được tính bằng HSL * 1,600,000đ
- Mỗi BỆNH NHÂN khi đến khám cần có chứng minh nhân dân; họ tên; ngày sinh; thẻ bảo hiểm y tế, số điện thoại, giới tính Trong đó mỗi bệnh nhân phân biệt qua CMND và có thể có nhiều số điện thoại
- Mỗi bệnh nhân đến khám cần có HỒ SƠ BỆNH ÁN bao gồm mã bệnh án; ngày lập; kết quả khám, chứng minh nhân dân bệnh nhân Trong đó trong bệnh án sẽ phân biệt qua mã bệnh án sẽ có nhiều ngày lập cho mỗi kết quả khám
Xác định mối liên kết
BỆNH NHÂN – BỆNH ÁN: 1 – 1
- Mỗi BỆNH NHÂN sẽ có 1 bệnh án
BÁC SĨ – BỆNH ÁN: 1 – N
- Mỗi BÁC SĨ có thể quản lí nhiều bệnh án khác nhau
KHOA – BÁC SĨ: 1 – N
- Mỗi KHOA sẽ gồm nhiều bác sĩ khác nhau
II Mô hình ER
* Xác định các thực thể: BỆNH NHÂN, BÁC SĨ, BỆNH ÁN
Trang 5 KHOA: mã khoa, tên khoa.
o Mã khoa: khóa
BÁC SĨ: id, họ tên; hệ số lương, một số điện thoại số điện thoại,lương, Email
o ID: khóa
o Lương: suy dẫn
BỆNH NHÂN: CMND; họ tên; ngày sinh; thẻ bảo hiểm y tế, số điện thoại, giới tính
o CMND: khóa
o Số điện thoại: đa trị
BỆNH ÁN: mã bệnh án; id bác sĩ khám; ngày lập; kết quả khám
o Mã bệnh án: khóa
o Ngày lập: đa trị
o Kết quả khám: đa trị
Trang 6III Mô hình quan hệ
*Áp dụng quy tắc chuyển kiểu thực thể mạnh, ta có các quan hệ sau
1.tblBenhNhan(sCMND, sHoTen_BN, dNgaySinh, sMaBHYT, sGioiTinh) 2.tblBacSi(sID, sHoTen_BS, fHeSoLuong, fLương, sEmail, sSoDT)
3.tblBenhAn(sMaBenhAn)
4.tblKhoa(sMaKhoa, tenKhoa)
*Áp dụng quy tắc chuyển kiểu đa trị, ta có các quan hệ sau
5.tblSoDT_BN(sCMND, sSoDT)
6.tblNLBenhAn(sMaBenhAn, dNgayLap, sKetQua)
*Áp dụng quy tắc chuyển kiểu một – một, ta có các quan hệ sau
3’.tblBenhAn(sMaBenhAn, sCMND, sKetQua, sHoTen_BN, sHoTen_BS, ,
CMND)
*Áp dụng quy tắc chuyển kiểu một – nhiều, ta có các quan hệ sau
3’’.tblBenhAn(sMaBenhAn, sCMND, sKetQua, sHoTen_BN, sHoTen_BS,
sIDs, CMND)
4’.tblKhoa(sMaKhoa, tenKhoa, sID)
=> Cơ sở dữ liệu cuối cùng bài toán
1.tblBenhNhan(sCMND, sHoTen_BN, dNgaySinh, sMaBHYT, sGioiTinh) 2.tblBacSi(sID, sHoTen_BS, fHeSoLuong, sEmail, sSoDT, sMaKhoa)
3’’.tblBenhAn(sMaBenhAn, sIDs, sCMND)
4’.tblKhoa(sMaKhoa, sTenKhoa,)
5.tblSoDT_BN(sCMND, sSoDT)
6.tblNLKQ_BenhAn(sMaBenhAn, dNgayLap, sKetQua)
Trang 7IV Rằng buộc bài toán
1 Mỗi bênh nhân chỉ có một CMND duy nhất
- Bối cảnh: tblBenhNhan
- Nội dung:
Tự nhiên: Mỗi nhân viên chỉ có một CMNDduy nhất
- Bảng tầm ảnh hưởng:
tblBenhNhan
+(
)
2 Mỗi bác sĩ chỉ có một ID duy nhất
- Bối cảnh: tblBacSi
- Nội dung:
Tự nhiên: Mỗi bác sĩ chỉ có một ID duy nhất
- Bảng tầm ảnh hưởng:
3 Giới tính bệnh nhân chỉ nhận “nam” hoặc “nữ”
- Bối cảnh: tblBenhNhan
- Nội dung:
Tự nhiên: Giới tính bệnh nhân chỉ nhận “nam” hoặc “nữ”
- Bảng tầm ảnh hưởng:
4 Mỗi bệnh án có 1 bệnh nhân
- Bối cảnh: tblBenhNhan, tblBenhAn
- Nội dung:
Tự nhiên: Mỗi bệnh án có 1 bệnh nhân
- Bảng tầm ảnh hưởng:
Trang 8tblBenhNhan - + +( sHoTen_BN)
V Chuẩn hóa cơ sở dữ liệu
sGioiTinh)
phụ thuộc hàm BENHNHAN( sCMND sHoTen_BN,sCMND
dNgaySinh,sCMND sMaBHYT,sCMND sGioiTinh
- Quan hệ không chứa thuộc tính đa trị, không chứa thuộc tính phức hợp, không chứa
⇒ Đạt chuẩn 1NF
- Quan hệ chứa các thuộc tính không phải là khóa chính phụ thuộc trực tiếp vào khóa chính
⇒ Đạt chuẩn BCNF
sSoDT)
phụ thuộc ham BACSI (sID sHoTen_BS,sID fLương,sID fHeSoLuong,sID
sEmail,sID sSoDT)
- Quan hệ không chứa thuộc tính đa trị, thuộc tính phức hợp, thuộc tính gây lặp Khóa
⇒ Đạt chuẩn 1NF
- Quan hệ chứa các thuộc tính không phải khóa chính phụ thuộc hoàn toàn vào khóa chính
⇒ Đạt chuẩn 2NF
- Quan hệ chứa các thuộc tính không phải khóa chính phụ thuộc trực tiếp vào khóa chính
⇒ Đạt chuẩn BCNF
Trang 9- Quan hệ không chứa thuộc tính đa trị, thuộc tính phức hợp, thuộc tính gây lặp Khóa
⇒ Đạt chuẩn 1NF
- Quan hệ chứa các thuộc tính không phải khóa chính phụ thuộc hoàn toàn vào khóa chính
⇒ Đạt chuẩn 2NF
- Quan hệ chứa các thuộc tính không phải khóa chính phụ thuộc trực tiếp vào khóa chính
⇒ Đạt chuẩn BCNF
- Quan hệ không chứa thuộc tính đa trị, thuộc tính phức hợp, thuộc tính gây lặp Khóa
⇒ Đạt chuẩn 1NF
- Quan hệ chứa các thuộc tính không phải khóa chính phụ thuộc hoàn toàn vào khóa chính
⇒ Đạt chuẩn 2NF
- Quan hệ chứa các thuộc tính không phải khóa chính phụ thuộc trực tiếp vào khóa chính
⇒ Đạt chuẩn BCNF
- Ta thấy lược đồ chứa sCMND sSoDT , là khoá chính, quan hệ không chứa thuộc tính đa trị thuộc tính phứcc hợp chỉ có thuộc tính khoá
QH chuẩn BCNF
- Ta thấy lược đồ chứa sMaBenhAn, dNgayLap, sKetQualà khoá chính, quan hệ không chứa thuộc tính đa trị thuộc tính phứcc hợp chỉ có thuộc tính khoá
QH chuẩn BCNF
Vậy CSDL Quan Hệ cuối cùng là:
1.tblBenhNhan(sCMND, sHoTen_BN, dNgaySinh, sMaBHYT, sGioiTinh) 2.tblBacSi(sID, sHoTen_BS, fHeSoLuong, sEmail, sSoDT, sMaKhoa)
3’’.tblBenhAn(sMaBenhAn, sIDs, sCMND)
4’.tblKhoa(sMaKhoa, sTenKhoa,)
Trang 106.tblNLKQ_BenhAn(sMaBenhAn, dNgayLap, sKetQua)
VI Xác định dữ liệu thực mô tả bài toán
Mô hình thể hiện quan hệ liên kết
- tblBenhNhan
Trang 11-tblSoDT_BenhNhan
-tblBenhAn
-tblNLKQ_BenhAn
Trang 12VII Khai thác CSDL dưới dạng các biểu thức đại số quan hệ
1 Cho biết tên bệnh nhân trên 18 tuổi
Trang 132 Cho biết mã bệnh án, của bênh nhân Mai Đức Minh
3 Cho biết họ tên ngày sinh của bệnh nhân có giới tính là Nữ
πsHoTen, dNgaySinh(σsGioiTinh=”Nữ”( tblBenhNhan ))
4 Cho biết kết quả khám, tên bệnh nhân của bệnh án được lập ngày 1/4/2022
πsHoTen, sKetQua(σdNgayLap=1/4/2022((tblBenhNhan*tbl
BenhAn*tblNLKQ_BenhAn))
sCMND sMaBenhAn
Trang 145 Cho biết số bác sĩ trong bệnh viện
COUNTA(HoTen_BS)(tblBacSi)
6 Tính tổng lương của bác sĩ
sID SUM(HeSL*1600000)(tblBacSi)
8 Tính tổng số bệnh án của từng bác sĩ
sID SUM(Số bệnh án)(tblBenhAn)*sID (tblBacSi)