Professional Documents
Culture Documents
Nhóm 1 - Healthcare
Nhóm 1 - Healthcare
Bộ môn Cơ sở dữ liệu
**********
Mục Lục
Phần I: Đề tài nhóm ............................................................................ 2
1.1 Tổng quan về cơ sở dữ liệu ............................................................. 2
1.2Thông tin cơ sở dữ liệu .................................................................... 2
1.2.1Mức độ chuẩn hóa: .................................................................... 4
PHẦN 2: Tuy vấn dữ liệu ................................................................... 4
2.1 CÁC CÂU TRUY VẤN.................................................................. 4
2.2 . TỐI ƯU TRUY VẤN .................................................................. 10
2.2.1 Tối ưu bằng cách đánh index ................................................. 10
2.2.2 Tối ưu truy vấn bằng cách sử dụng partition ......................... 11
Phần 3: Cập nhật dữ liệu ................................................................... 15
3.1 Procedure ....................................................................................... 15
3.1.1 Procedure insert ...................................................................... 15
3.1.2 Procedure delete ..................................................................... 16
3.1.3.Procedure update .................................................................... 17
3.1.4. Procedure tìm y tá .................................................................. 18
3.1.5 .Procedure tính tiền viện phí................................................... 18
Phần 4 : Sao chép dữ liệu ................................................................... 19
Phần 5 : Transaction .......................................................................... 20
5.1 Tổng quan về transaction................................................................ 20
5.2 Các thuộc tính của transaction ....................................................... 20
5.3 Rủi ro khi thực hiện transaction ..................................................... 21
5.4 Các transaction thực thi .................................................................. 21
Tổng kết ................................................................................................... 28
Sơ đồ ER Diagram:
Sơ đồ RE Diagram:
3 - Thứ tự các bác sỹ thuộc khoa Medical Department với ID tăng dần
4 - Danh sách đơn thuốc của các bệnh nhân có ID trong khoảng từ 100000000 đến
999999999
8 - Bác sỹ Fair kitney có cuộc hẹn với bệnh nhân nào? Khi nào?
9 - Danh sách bác sỹ chuyên ngành phẫu thuật đã chữa cho bệnh nhân nào và phác đồ
điều trị của bệnh nhân đó.
10 - Danh sách bác sỹ kê đơn thuốc giảm đau cho bệnh nhân vào ngày nào
Đầu tiên thực hiện truy vấn khi chưa có index, thời gian truy vấn là 8.982ms để ra
kết quả đầu tiên và 91.852ms để truy vấn ra hết kết quả thì sau khi tạo index ở cột
Address, thời gian truy vấn giảm xuống còn 0,020ms để ra kết quả đầu tiên và 1.379ms
để truy vấn ra hết kết quả. Như vậy thời gian truy vấn đã nhanh gấp khoảng 70 lần. Trước
khi đánh index, số bản ghi cần duyệt qua là 109938 dòng. Sau khi đánh index, CSDL chỉ
cần duyệt qua 265 dòng.
Vì vậy thời gian truy vấn giảm đáng kể.
2.2.2 Tối ưu truy vấn bằng cách sử dụng partition
RANGE PARTITION
Trước khi dùng Partition:
Thực hiên câu lệnh truy vấn tất cả các bệnh nhân ở lại bệnh viện tại phòng 123 và bắt đầu
ở từ ngày 31-01-2020.
Trước khi Partition, thời gian truy vấn là 0,047s (dòng output 1). Sau khi sử dụng Range
Partition, chia cột StayStart thành 4 khoảng, câu lệnh truy vấn chỉ tốn 0.015s, giảm
khoảng 3 lần so với trước.
Bảng Explain:
Trước khi dùng Partition:
Trước khi Partition, số bản ghi phải duyệt qua là 54095 bản ghi. Sau khi sử dụng
Partition, số bản ghi phải duyệt là 13610 bản ghi. Số lượng bản ghi cần duyệt đã giảm, số
bản ghi cần truy vấn chỉ nằm trong partitions ‘time0’.
LIST PARTITION
Trước khi dùng Partition:
Thực hiên câu lệnh truy vấn tất cả các bệnh nhân ở lại bệnh viện tại phòng 105 và phòng
126.
Trước khi Partition, thời gian truy vấn là 0,016s (dòng output 1). Sau khi sử dụng List
Partition, chia cột RoomID thành 4 danh sách, câu lệnh truy vấn chỉ tốn xấp xỉ 0.000s,
giảm so với trước khi partition.
Bảng Explain:
Trước khi dùng Partition:
Trước khi Partition, số bản ghi phải duyệt qua là 54095 bản ghi. Sau khi sử dụng
Partition, số bản ghi phải duyệt là 526 bản ghi. Số lượng bản ghi cần duyệt đã giảm, số
bản ghi cần truy vấn chỉ nằm trong partitions ‘R1’ và ‘R2’.
*Với các table khác em vào tương tự với các câu lệnh trên vì nhóm em chưa tìm hiểu
kỹ các công cụ tự sinh procudure
3.1.2 Procedure delete
Trường hợp khi bác sỹ chuyển công tác
3.1.3.Procedure update
Trường hợp khi bệnh nhân cần chữa trị thêm và pháp sinh thêm viện phí
*Ta có thể thấy là đây hiển thị Treatment ID , tên phương pháp điều trị, giá của
phương pháp điều trị đó. Và sau đó em thêm 1 bệnh tên là Ung Thu và
Cost = 3000
*Sau khi được thêm Ung thu vào TreatmentID 1211 thì Cost = 6000
Schemal healthcare1 mới đã được tạo từ các table của schemal cũ bằng các copy/paste
Sử dụng câu lệnh insert into để copy data từ database cũ sang database mới
(Phần này nhóm em có sử dụng câu lệnh để tự sinh procedure)
Đây là kết quả của việc gọi các procedure . Data của mỗi bảng đã được update
sang schemal mới .
Phần 5 : Transaction
5.1 Tổng quan về transaction
Transaction trong SQL là một đơn vị công việc được thực hiện bởi một Database. Một
transaction là một sự lan truyền của một hoặc nhiều thay đổi tới Database. Nói cách khác,
một Transaction sẽ không bao giờ hoàn thành trừ khi mỗi hoạt động riêng bên trong
nhóm được thực hiện thành công. Nếu bất kỳ hoạt động nào bên trong Transaction thất
bại, thì toàn bộ Transaction đó sẽ thất bại.
• Atomicity: bảo đảm rằng tất cả hoạt động bên trong đơn vị công việc được hoàn
thành một cách thành công; nếu không, transaction bị ngừng ở điểm thất bại, và
các hoạt động trước được trao trả về trạng thái trước đó.
• Consistency: bảo đảm rằng Database thay đổi một cách chính xác trạng thái theo
một transaction đã được ký thác thành công.
• . Isolation: cho các transaction khả năng hoạt động một cách độc lập và không
liên quan đến nhau
• Durability: bảo đảm rằng kết quả hoặc tác động của một transaction, mà đã được
ký thác, vẫn còn tồn tại trong trường hợp hệ thống thất bại.
Trong MySQL, các Transaction bắt đầu với lệnh BEGIN WORK và kết thúc với hoặc
một lệnh COMMIT hoặc lệnh ROLLBACK. Các lệnh SQL giữa các lệnh bắt đầu và kết
thúc cấu tạo nên Transaction.
Kết quả:
Kết quả:
*khi bác sĩ được bổ nhiệm vào chức vụ mới và làm việc ở hai bộ phận:
Các thao tác yêu cầu:
+thêm thông tin bác sĩ vào bộ phận mới.
+cập nhật chức vụ cho bác sĩ.
Các bước thực hiện:
+dung hàm update để cập nhật chức vụ cho bác sĩ.
+dung hàm insert into để đưa dữ liệu bác sĩ vào bộ phận chuyển đến.
Kết quả:
Tổng kết