Bài_tập_lớn_CSDL_Nhóm_12 (1)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC

BỘ MÔN: CƠ SỞ DỮ LIỆU

ĐỀ TÀI: HEALTHCARE

GV hướng dẫn: TS. Nguyễn Thị Thanh Huyền

Nhóm 12

Họ và tên MSSV
Phạm Hữu Chiến 20216802
Bùi Quang Hưng 20216837
Nguyễn Bá Hùng 20216835
Nguyễn Đăng Khoa 20210485
Trần Anh Minh 20216856
LỜI MỞ ĐẦU
Cuộc cách mạng khoa học kỹ thuật phát triển như vũ bão ngày nay là
cuộc cách mạng công nghệ. Khoa học phát triển với sự gia tăng 25% /
năm đã thu hút một bộ phận lớn nhân lực vào lĩnh vực này làm cho đội
ngũ những người làm khoa học gia tăng nhanh chóng. Lực lượng những
người làm khoa học tăng lên theo cấp số cộng kéo theo tài liệu khoa học
và những sản phẩm nghiên cứu của họ tăng lên theo cấp số nhân. Tất
cả đã tạo nên một khối lượng thông tin khổng lồ và không ngừng phát
triển, dẫn đến bùng nổ thông tin.
Nhà quản lý, các nhà nghiên cứu, các nhà công nghệ, các nhà giáo dục,
các nhà sản xuất kinh doanh. . . không chỉ là người dùng tin mà còn là
những người sản xuất ra thông tin mới. Sự gia tăng nhanh chóng khối
lượng tri thức khoa học tác động mạnh mẽ tới các hoạt động của các cơ
quan thông tin – thư viện như cơ cấu của kho tài liệu, làm cho số lượng
và chủng loại tài liệu tăng lên gấp bội.
Thêm vào đó, nhu cầu đòi hỏi rút ngắn đáng kể thời gian hữu ích của
tài liệu làm cho các nhà quản lý phải thường xuyên bổ sung vốn tài liệu
và không ngừng phải xử lý chúng, hoặc bằng thủ công, hoặc bằng tự
động hóa. Chính vì vậy càng khiến cho sự cần thiết phải xây dựng và sử
dụng thành thạo một công cụ có khả năng thực hiện các thao tác quản
lý, kiểm soát lưu lượng dữ liệu khổng lồ trở thành mối quan tâm hàng
đầu của thời đại. Qua đó để thấy được tầm quan trọng to lớn của việc
truyền đạt kiến thức về cơ sở dữ liệu cho những nhân lực chất lượng cao
trong tương lai, đào tạo những kỹ sư tin học với kiến thức và kỹ năng
tốt để xử lý những khối dữ liệu phức tạp.
Mục lục
1 Phần I: Đề tài nhóm 3
1.1 Tổng quan về cơ sở dữ liệu . . . . . . . . . . . . . . . . 3
1.2 Thông tin về cơ sở dữ liệu . . . . . . . . . . . . . . . . 3

2 Phần II: Thực hiện truy vấn bằng đại số quan hệ 10

2
1 Phần I: Đề tài nhóm
1.1 Tổng quan về cơ sở dữ liệu
- Bài toán thực tiễn:
Về lĩnh vực y tế, chăm sóc sức khỏe cũng như điều trị, chuẩn đoán các
căn bệnh ở người,... vì vậy lượng thông tin, dữ liệu của bệnh nhân, của
bác sĩ, của bệnh viện là rất lớn nên việc quản lý, thao tác và lưu trữ là
rất cần thiết. Nhóm thiết kế một cơ sở dữ liệu mô phỏng cơ cấu hoạt
động của một trung tâm y tế.

1.2 Thông tin về cơ sở dữ liệu

Sơ đồ phân rã chức năng:

3
Mô hình thực thể liên kết:

Do không biểu diễn được hết các mối liên kết giữa các kiểu
thực thể nên chúng em bổ sung thêm vào bảng bên dưới:

4
Ánh xạ từ mô hình thực thể liên kết sang mô hình dữ liệu quan hệ:
doctor(DoctorID, Name, Position, SSN)
medication(MedicationID, Name, Brand, Description)
nurse(EmployeeID, Name, Position, SSN)
treatment(TreatmentID, Name, Cost)
block(BlockFloor, BlockCode)
trained_in(DoctorID, TreatmentID, CertificationDate, Certification-
Expires)
department(DepartmentID, Name, Dean)
on_call(NurseID, BlockFloor, BlockCode, OnCallStart, OnCallEnd)
affiliated_with(DoctorID, DepartmentID)
patient(PatientID, Name, Address, Phone, InsuranceID, PCP)
appointment(AppointmentID,PatientID, PrepNurseID, DoctorID, Start,
End, ExaminationRoom)
prescribes(DoctorID, PatientID, MedicationID, Date, AppointmentID,
Dose)
room(RoomNumber, RoomType,BlockFloor, BlockCode, Unavailable)
stay(StayID, PatientID, RoomID, StayStart, StayEnd)
undergoes(PatientID, TreatmentID, StayID, DateUndergoes,Physician,
AssistingNurse)

Thiết lập quan hệ dữ liệu:

5
Tạo lập các bảng:
Tạo bảng doctor:

Tạo bảng nurse:

Tạo bảng medication:

Tạo bảng treatment:

Tạo bảng block:

6
Tạo bảng department:

Tạo bảng patient:

Tạo bảng room:

Tạo bảng appointment:

7
Tạo bảng trained_in:

Tạo bảng on_call:

Tạo bảng affiliated _with:

Tạo bảng prescribes:

8
Tạo bảng stay:

Tạo bảng undergoes:

9
2 Phần II: Thực hiện truy vấn bằng đại số
quan hệ
1. Đưa ra ID và Tên bệnh nhân và số phòng ở của bệnh
nhân đã ở lại bệnh viện điều trị từ ngày 5/11/20019 đến ngày
20/11/2019:

R1 =ΠpatientID,RoomID (σ StayStart=′ 5/11/2019′ ∧StayEnd=′ 20/11/2019′ (Stay))

R2 =ΠpatientID,N ame (P atient)

R3 =ΠRoomN umber (Room)

Answer= ΠpatientID,N ame,RoomN umber (R1 ▷◁ R2 ▷◁ R3 )

2. Đưa ra thời gian và địa điểm bác sĩ có tên ‘Jonny Sins Hieu’
sẽ gặp bệnh nhân mà không ở lại bệnh viện điều trị:

R1 =ΠDoctorID (σ N ame=′ JohnnySinsHieu′ (Doctor))

R2 =ΠP atientID (P atient) − πP atientID (Stay)

Answer=ΠStart,End,ExaminationRoom (R1 ▷◁ Appointment ▷◁ R3 )

3. Đưa ra tên tất cả các bệnh nhân được kê thuốc bao gồm cả
2 loại thuốc là ‘paracetamol’ và ‘sorbitol’:

R1 =ΠpatientID,N ame (medication ▷◁ prescribes)

R2 =ΠN ame (σ N ame=′ paracetamol′ ∨N ame=′ Sorbitol′ (M edication))

R3 = R1 ÷ R2

Answer =ΠN ame (R3 ▷◁ patient)

10
4. Đưa ra tên và ID y tá trực phòng bệnh khu vực 2 có tên
phòng là cấp cứu mà đang không trong giờ trực lúc 8h:

R1 = σRoomT ype=′ CapCuu′ ∧blockf loor=2 (Room)

R2 =ΠN urseID (σ OnCallStart<=8∧OnCallEnd>=8 (R1 ▷◁ on_call))

R3 =ΠN urseID (R1 ▷◁ on_call)

R4 = R3 − R2

Answer =ΠN urseID,N ame (R4 ▷◁ N urse)

5.Đưa ra tên bác sĩ và tên nơi đào tạo cùng thời gian đào tạo
của bác sĩ phụ trách phòng bệnh ở khu vực 3 và có tên ‘Điều
dưỡng’

R1 = σ RoomT ype=′ DieuDuong′ ∧blockf loor=3 (Room)

R2 =ΠP hysician (R1 ▷◁ Stay ▷◁ undergoes)

Answer =ΠN ame,Certif icationDate (R2 ▷◁ T rained_in ▷◁ treatment)

6.Đưa ra tên, ID của bác sĩ là trưởng khoa 1 khoa nào đó và


phụ trách chữa bệnh cho 1 bệnh nhân trong phòng 401:

R1 = ΠdoctorID (doctor ▷◁doctorID=dean Department)

R2 = ΠdoctorID (σRoomID=401 (stay ▷◁ undergoes ▷◁ doctor)

Answer= ΠdoctorID,N ame (R1 ▷◁ doctor ▷◁ R2 )

7.Đưa ra tên bênh nhân và số người điều trị của căn bệnh có
mức phí điều trị cao nhất

R1 = γT reatmentID,N ame,M ax(cost)→M ax (treatment)

R2 = ΠP atientID,T reatmentID (undergoes)

Answer = γN ame,COU N T (P atientID)→SL (R1 ▷◁ R2 )

11
8. Đếm số bệnh nhân điều trị ở phòng cao cấp và được kê đơn
thuốc kháng sinh:

R1 = ΠM edicationID (σN ame=”Antibiotics” (medication))

R2 = ΠP atientID (R1 ▷◁ prescribes)

R3 = ΠRoomN umber (σRoomT ype=”DeluxeRoom” (room))

R4 = ΠP atientID (R3 ▷◁RoomN umber=RoomID stay)

Answer = γCOU N T (P arienID) (R2 ∩ R4 )

9. Đưa ra tên các bác sĩ trong khoa chấn thương chỉnh hình và
đếm số bệnh nhân mỗi người phụ trách:

R1 =ΠdoctorID,patientID (doctor ▷◁ Stay ▷◁ undergoes)

R2 =ΠdoctorID,patientID (doctor ▷◁doctorID=P CP patient)

R3 =γdoctorID,COU N T (patientID)→S (R1 ▷◁ R2 )

Answer =ΠN ame,SL (R3 ▷◁ doctor)

10.Chỉ ra tên của trưởng khoa thuộc chuyên ngành có số lượng


nhiều hơn 200 bác sĩ:

R1 = γP osition,COU N T (DoctorID)→SL (doctor)

R2 = ΠP osition (σSL>=200 (R1 ))

R3 = ΠN ame,P osition (department ▷◁Dean=DoctorID doctor)

Answer =ΠN ame (R2 ▷◁ R3 )

12
Đánh giá thành viên

13
LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành đến Trường Đại học Bách
Khoa Hà Nội đã đưa môn học Cơ sở dữ liệu vào trương trình giảng dạy.
Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn - cô
Nguyễn Thị Thanh Huyền đã dạy dỗ, truyền đạt những kiến thức quý
báu cho em trong suốt thời gian học tập vừa qua. Trong thời gian tham
gia lớp học Kỹ năng giao tiếp của thầy/cô, em đã có thêm cho mình
nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây
chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể
vững bước sau này.
Bộ môn Cơ sở dữ liệu là môn học thú vị, vô cùng bổ ích và có tính thực
tế cao. Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn
của sinh viên. Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả
năng tiếp thu thực tế còn nhiều bỡ ngỡ. Mặc dù em đã cố gắng hết sức
nhưng chắc chắn bài tiểu luận khó có thể tránh khỏi những thiếu sót và
nhiều chỗ còn chưa chính xác, kính mong thầy/cô xem xét và góp ý để
bài tiểu luận của em được hoàn thiện hơn.

14

You might also like