đề tài xây dựng mô hình erd và lược đồ quan hệ sql cho bài toán quản lý một đơn vị

18 1 0
Tài liệu đã được kiểm tra trùng lặp
đề tài xây dựng mô hình erd và lược đồ quan hệ sql cho bài toán quản lý một đơn vị

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mỗi nhân viên của bnh vin lm vic trong một hoặc nhiều khu cha trị.. Một bc sĩ có thể thực hin nhiều ln cha trị cho nhiều bnh nhân.. Một bnh nhân được cha trị nhiều ln bi nh

Trang 1

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH

KHOA CÔNG NGH THÔNG TIN



B O C O CU I K 

Đề tài: XÂY DỰNG MÔ HÌNH ERD VÀ LƯỢC ĐỒ QUAN

HỆ - SQL CHO BÀI TON QUẢN LÝ MỘT ĐƠN VỊ

Giảng viên hướng dẫn : ThS Nguyn Đc Cương

Nhm thực hiện : Nhm 11 Lớp : DHTMDT17E

M ôn : Cơ s  liệu – d 420300391605

Niên kha : HK2 (2022 – 2023)

TP.HCM, ngày 27 tháng 05 năm 2023

Trang 2

Cơ s d liu ThS Nguyn Đc Cương

2 DANH S CH NHM

3 Nguyn Tr n Kh nh Vân   21065651 Thành viên

Đ TI THỰC HI N Ệ

A - Phần 1 – Mô hình ERD và lược đồ quan hệ - SQL 1 Xây dựng mô hình ER

2 Chuyển sang lược đồ quan h

3 Ci đặt lược đồ quan h vo trong h quản trị CSDL SQL Server – nhập liu mỗi bảng ít nhất 5 record

4 Tự suy nghĩ ra mỗi thnh viên 2 câu hỏi truy vấn (không trùng nhau) v giải đp bằng lnh SQL (Xem ví dụ minh họa cc câu hỏi trong bi tập 1)

Bài 8:

Một bnh vin có nhiều khu cha trị Một khu cha trị có số của khu (định danh) v tên Bnh nhân gồm hai loại: bnh nhân nội trú v bnh nhân ngoại trú Bnh nhân có mã bnh nhân , tên v ngy sinh Cc bc sĩ có mã bc sĩ v tên Bc sĩ có thể tiếp nhận hoặc điều trị bnh nhân Mỗi giưng bnh có số giưng, số phòng v số khu cha trị Thuốc men hoặc dụng cụ dùng để cha bnh được gọi chung l vật tư, có mã, đặc tả v đơn gi Cc nhân viên trong bnh vin có mã số v tên Một sự cha trị l bất kỳ một cuộc xét nghim hoặc một công vic điều trị no đó m một bc sĩ thực hin cho một bnh nhân Một sự cha trị có định danh l một mã số bao gồm số v tên của sự cha trị đó Mỗi nhân viên của bnh vin lm vic trong một hoặc nhiều khu cha trị Mỗi khu có ít nhất một nhân viên Bnh vin cn thống kê số gi lm vic trong một tun của mỗi nhân viên tại một khu cha trị Mỗi khu cha trị có một y tá trưng Bnh nhân ngoại trú không có giưng nằm Giưng có thể không có bnh nhân Một bnh nhân đang được cha trị có một bc sĩ theo dõi Một bc sĩ có thể theo dõi nhiều bnh nhân hoặc không theo dõi bnh nhân no

Một bc sĩ có thể thực hin nhiều ln cha trị cho nhiều bnh nhân Một bnh nhân được cha trị nhiều ln bi nhiều bc sĩ Bnh vin cn biết mỗi ln cha trị, bnh nhân được cha trị bi bc sĩ no, ngy cha trị, thi gian cha trị v kết quả Một bnh nhân cn nhiều thuốc men v dụng cụ Mỗi loại thuốc men hay dụng cụ có thể được sử dụng cho nhiều bnh nhân hoặc chưa được sử dụng Bnh vin cn thống kê ngy, thi gian, số lượng v tổng số tiền (số lượng x đơn gi) cho một loại thuốc men hay dụng cụ mỗi ln sử dụng cho bnh nhân

Trang 3

3 BẢNG ĐNH GI  THNH VIÊN NH M

MSSV Họ và tên

Công việc được phân công Mức

độ

hoàn thành

Đánh

giá của giáo vi ên

21102021

Nguyn Hong Cưng

+ Vẽ lược đồ ERD, Chuyển đổi sang lược đồ quan h

+ Tạo Database, bảng Khu cha trbảng b nh nhân 

+ Nhập liu bảng Khu cha trị, bảng b nh nhân 

+ 1 câu truy v n l ng, 1 câu updateấ ồ+ Chạy code

Câu 2

Câu 3 100%

21093951 Nguyn Khnh Ngân

+ Vẽ lược đồ ERD, Chuyển đổisang lược đồ quan h.

+ Tạo bảng c sĩ bảng GiưB , ng b nh, b ng B ả nh nhân sử dụng vật t+ Nhập liu bảng B c s , ĩ bảngGiưng bnh, bảng Bnh nhân sử dụng vật tư

+ 2 câu truy vấn thông thưng, 1 câupdate

+ Chạy code, T ng h p Word ổ ợ

Câu 1

Câu 8 100%

Nguyn Trn Kh nh 

+ Nhập liu bảng Vật tư bảng Sự , cha trị ả, b ng Nhân viên làm vic, bảng Nhân vi ên

+ 1 câu truy vấ ồngn l , 2 câu delete+ Chạy Code, T ng h p Word ổ ợ

Câu 4 Câu 5

100%

Trang 4

Cơ s d liu ThS Nguyn Đc Cương

4

MC LC

PHẦN A: XÂY DỰNG LƯỢC ĐỒ ERD VÀ TẠO CƠ SỞ DỮ LIỆU 5

1 Xây dựng mô h nh ER 5 ì2 Chuyển sang lược đồ quan h 5 

3 Ci đặt lược đồ quan h vo trong h quản trị CSDL SQL Server 6

4 Câu h i truy v n 11 ỏ ấPHẦN B: CHUẨN HA DỮ LIỆU 14

Save to a Studylist

Trang 5

5

1. Xây dng mô h nh ER ì

2. Chuyn sang lược đồ quan hệ

Khu cha trị: (Số khu cha trị, Tên khu cha trị, Mã nhân viên ) Khóa chính: Số khu cha trị

Khóa ngoại: Mã nhân viên

Nhân viên: (Mã nhân viên, Tên nhân viên, Số khu cha trị) Khóa chính: Mã nhân viên

Khóa ngoại: Số khu cha trị

Trang 6

Cơ s d liu ThS Nguyn Đc Cương

6

Bệnh nhân: (Mã số bnh nhân, Tên bnh nhân, Ngy sinh, Loại bnh nhân, Số

giưng, Mã bc sĩ )

Khóa chính: Mã số bnh nhân Khóa ngoại: Số giưng, Mã bc sĩ

Bệnh nhân sử dụng vật tư: (Mã số bnh nhân, Mã vật tư, Ngy sử dụng, Thi gian dùng, Số lượng, Tổng tiền)

Khóa chính: Mã số bnh nhân, Mã vật tư

S chữa trị: (Mã bc sĩ mã số bnh nhân Mã số cha trị, Ngy cha trị, Thi , , gian, Kết quả )

Khóa chính: Mã bc sĩ, mã số bnh nhân, Mã số cha trị

Nhân viên làm việc: (Mã nhân viên, số khu cha trị, số gi lm vic) Khóa chính: Mã nhân viên, Số khu cha trị

3. Cài đặt lược đồ quan hệ vào trong hệ quản trị CSDL SQL Server

3.1 Tạo cơ s  liệ d u CREATE DATABASE QLBVON PRIMARY

(NAME=QLBV_Data,

FILENAME='D:\mysql\QLBV_Data.mdf', SIZE=10MB,

MAXSIZE=15MB, FILEGROWTH=20%)LOG ON

( NAME=QLSV_Log,

FILENAME= 'D:\mysql\QLBV_Log.ldf', SIZE=3MB,

MAXSIZE=5MB, ) FILEGROWTH=1MB3.2 T o bạảng

use QLBV

3.2.1 T o b ng khu ch a tr

Trang 7

7 CREATE TABLE KhuChuaTri

(

SoKhuChuaTri VARCHAR(20) PRIMARY KEY, TenKhuChuaTri NVARCHAR(50),

MaNhanVien VARCHAR(20) );

3.2.2 T o b ng "B nh nhân" CREATE TABLE BenhNhan (

MaSoBenhNhan VARCHAR(20) PRIMARY KEY, TenBenhNhan NVARCHAR(50 ),

LoaiBenhNhan Nvarchar(50 ), NgaySinh DATETIME, MaBacSi VARCHAR(20), SoGiuong VARCHAR(20) );

SoGiuong VARCHAR(20) PRIMARY KEY, SoPhong VARCHAR(20 ),

SoKhuChuTri VARCHAR(20 ),

FOREIGN KEY (SoKhuChuaTri) REFERENCES KhuChuaTri (SoKhuChuaTri),

MaSoBenhNhan VARCHAR(20),

FOREIGN KEY (MaSoBenhNhan) REFERENCES BenhNhan (MaSoBenhNhan)

);

3.2.5 T o b ng "VCREATE TABLE VatTu (

MaVatTu VARCHAR(20) PRIMARY KEY,

Trang 8

Cơ s d liu ThS Nguyn Đc Cương

8 DacTa NVARCHAR(100 ),

DonGia DECIMAL(10, 2) );

3.2.6 T o b ng "S ch a tr " CREATE TABLE SuChuaTri (

MaSoChuaTri VARCHAR(20) PRIMARY KEY, TenSuChuaTri NVARCHAR(100 ), So VARCHAR(10)

NgayChuaTri DATE, ThoiGian TIME,

KetQua NVARCHAR (50 ), MaBacSi VARCHAR(20),

MaSoBenhNhan VARCHAR(20) );

3.2.7 T o b ng "Nhân viên " CREATE TABLE NhanVien (

MaNhanVien VARCHAR(20) PRIMARY KEY, TenNhanVien NVARCHAR(50 ),

SoKhuChuaTri VARCHAR(20)

FOREIGN KEY (SoKhuChuaTri) REFERENCES KhuChuaTri (SoKhuChuaTri)

3.2.9 T o b nh Nhân S D ng VCREATE TABLE BenhNhanSuDungVatTu (

MaVatTu VARCHAR(20), MaBenhNhan VARCHAR(20), NgaySuDung DATE, ThoiGianDung TIME,

Trang 9

9 SoLuong INT,

TongSoTien FLOAT, DonGia DECIMAL(10, 2) );

3.2.10 T o thu c tính khóa ALTER TABLE KhuChuaTri

ADD FOREIGN KEY (MaNhanVien) REFERENCES NhanVien(MaNhanVien );ALTER TABLE BenhNhan

ADD FOREIGN KEY (MaBacSi) REFERENCES BacSi(MaBacSi );ALTER TABLE BenhNhan

ADD FOREIGN KEY (SoGiuong) REFERENCES GiuongBenh(SoGiuong );

ALTER TABLE NhanVienLamViec ADD PRIMARY KEY (MaNhanVien); ALTER TABLE NhanVienLamViec ADD PRIMARY KEY (SoKhuChuaTri); ALTER TABLE BenhNhanSuDungVatTu ADD PRIMARY KEY (MaSoBenhNhan); ALTER TABLE BenhNhanSuDungVatTu ADD PRIMARY KEY (MaVatTu); ALTER TABLE SuChuaTri ADD PRIMARY KEY (MaBacSi); ALTER TABLE SuChuaTri

ADD PRIMARY KEY (MaSoBenhNhan); 3.3. Nhập d liệu vào bảng

3.3.1 Thêm d u vào b ng "Khu ch a tr " li

INSERT INTO KhuChuaTri (SoKhuChuaTri, TenKhuChuaTri)VALUES ('KCT001', N'Khu ngoại tổng quát' ),

('KCT002', N'Khu phục hồi chc năng'),('KCT003', N'Khu tim mạch cấp cu'),('KCT004', N'Khu b nh nhân nh '  ẹ ),('KCT005', N'Khu sinh s n' ả );

Trang 10

Cơ s d liu ThS Nguyn Đc Cương

10 3.3.2 Thêm d u vào b ng "B nh nhân" li

INSERT INTO BenhNhan (MaSoBenhNhan, TenBenhNhan, LoaiBenhNhan, NgaySinh) VALUES

('BN001', N'Nguyn Văn Minh',N'n i trú', '1990-01-01' ộ ),('BN002', N'Nguy n Th B ị inh',N'n i trú' ,'1985-02-15' ộ ),('BN003', N'Phan Thị Lan',N'n i trú', '1994-ộ 09-25' ),('BN004', N'Trn Xuân Nguyên,N'ngo i trú', '1986-06-12' ạ ),('BN005', N'Đinh Gia Huy',N'ngo i trú', '1999-03-08' ạ );3.3.3 Thêm d u vào bli

INSERT INTO BacSi (MaBacSi, TenBacSi) VALUES('BS001', N'Tr n Kim Min'  ),

('BS002', N'Nguy n Thi  Thơ ),' ('BS003', N'Nguyn Văn Ngân'),('BS004', N'Lê Th ị Vân ),' ('BS005', N'Trn Văn Cưng' );

3.3.4 Thêm d u vào bli ng b nh"

INSERT INTO GiuongBenh (SoGiuong, SoPhong, SoKhuChuaT ) VALUES ri('GB001', 'Phòng 1', 'KCT001' ),

('GB002', 'Phòng 2', 'KCT002' ),('GB003', 'Phòng 3', 'KCT003' ),('GB004', 'Phòng 4', 'KCT004' ),('GB005', 'Phòng 5', 'KCT005' );3.3.5 Thêm d u vào b ng "Vli

INSERT INTO VatTu (MaVatTu DacTa, , DonGia) VALUES ('VT001', Bình th Oxy', 10.50 N'  ),

('VT002', Kim Tiêm', 5.25 N' ),('VT003', Panadol', 8.90 N' ),('VT004', ThuN' ốc cảm’, 6.70 ),('VT005', N'Băng gạc', 9.50 );

3.3.6 Thêm d u vào b ng "S li Ch a tr "

INSERT INTO SuChuaTri (MaSoChuaTri, TenSuChuaTri, NgayChuaTri, ThoiGian, KetQua, MaBacSi) VALUES

('CT001', N'Th n', '2023-05-22', '08:45:00', N'C n thậ  ực hin ph u thu , ẫ ật''BS001' ),

('CT002', N'Tim m ch', '2023-05-23', '13:30:00', ạ N'Đang điều tr ', 'BS002' ị ),('CT003', N'Nội tiết', '2023-05-24', '10:00:00', N'Đã hồi phục', 'BS003' ),('CT004', N'Hô h p','2023-05-20', '16:30:00', N'Có th xu t vi n', 'BS004' ấ ể ấ  ),('CT005', N'Tiêu hóa','2023-05-21', '11:00:00', N'Cn được theo dõi', 'BS005' );

Trang 11

11 3.3.7 Thêm d u vào b ng "Nhân viên " li

INSERT INTO NhanVien (MaNhanVien, TenNhanVien, SoKhuChuaTri) VALUES

('NV001', N'Phan Thị Loan', 'KCT001' ),('NV002', N'Lương Văn Minh', 'KCT002' ),('NV003', N'Hoàng Th ị Hon', 'KCT003' ),('NV004', N'Phạm Thị Dung', 'KCT004' ),('NV005', N'Huỳnh Văn Em', 'KCT005' );

3.3.8 Thêm d u vào b ng "Nhân viên Làm Vi c" li

INSERT INTO NhanVienLamViec (MaNhanVien, SoKhuChuaTri, SoGioLamViec) VALUES

('NV001', 'KCT001', N'42 GI ' Ờ ),('NV002', 'KCT002', N'18 GI ' Ờ ),('NV003', 'KCT003', N'36 GI ' Ờ ),('NV004', 'KCT004', N'50 GI ' Ờ ),('NV005', 'KCT005', N'56 GI ' Ờ );

3.3.9 Thêm d u vào b ng " B nh Nhân S D ng Vli " INSERT INTO BenhNhanSuDungVatTu (MaVatTu, MaSoBenhNhan, NgaySuDung, ThoiGianDung, SoLuong) VALUES

('VT001', 'BN001', '2023-05-19', '09:15:00', 3, 8.90 ),('VT002', 'BN002', '2023-05-20', '15:45:00', 4, 6.70 ),('VT003', 'BN003', '2023-05-21', '10:30:00', 2, 9.50 ),('VT004', 'BN004', '2023-05-17', '16:15:00', 5, 15.60 ),('VT005', 'BN005', '2023-05-18', '11:30:00', 2, 12.30 );

4. Câu hi truy v n: 2 câu truy vấấn thông thường + 2 câu update + 2 câu delete + 2 câu truy vấn lồng + 2 câu sub-query v già ả ái đ p bng lệnh SQL

2 câu truy vấn thông thường:

a/ Hiển th s ị ố giưng, s phòng và tên khu chố a trị của tất cả cc giưng bnh:

Trang 12

Cơ s d liu ThS Nguyn Đc Cương

12 b/ Lấy danh sch cc giưng b nh trong phòng: 

Giả ái đ p b ng lệnh SQL: 

"Phòng 1" và hiển th s ị ố giưng và s khu ốSELECT SoGiuong, SoKhuChuaTri FROM GiuongBenh

WHERE SoPhong = 'Phòng 1'; K t qu ếả

a/ Xóa bnh nhân có tên 'Trn Xuân Nguyên' khỏi cơ s  liu: d

Giả ái đ p b ng lệnh SQL: 

DELETE FROM BenhNhan

WHERE TenBenhNhan = 'Trn Xuân Nguyên';

b/ Xóa thông tin v mề ột bnh nhân đã được cha trị có mã bnh nhân là 'BN003':

Trang 13

13

Giả ái đ p b ng lệnh SQL: 

DELETE FROM SuChuaTri

WHERE MaSoBenhNhan= ‘BN003'; 2 câu truy vấn lồng:

a/ Hiển thị tên bnh nhân và tên vật tư của các ln s d ng vử ụ ật tư có số lượng l n ớhơn 3:

Trang 14

Cơ s d liu ThS Nguyn Đc Cương

14

PHẦN B: CHUẨN HA DỮ LIỆU

Bài 1/ Cho lược đồ CSDL

Q(TENTAU,LOAITAU,MACHUYEN,LUONGHANG,BENCANG,NGAY) F={TENTAU → LOAITAU MACHUYEN → TENTAU, LUONGHANG TENTAU,NGAY → BENCANG, MACHUYEN}

a) Hãy tìm tập phủ tối thiểu của F b) Tìm tất cả cc khóa của Q

Bài làm

a) Ta có F={TENTAU LOAITAU; MACHUYEN TENTAU; MACHUYEN → →→ LUONGHANG; TENTAU, NGAY →BENCANG; TENTAU, NGAY → MACHUYEN}

Kiểm tra phụ thuộc hm dư thừa:

TENTAU → LOAITAU: TENTAU+ trừ TENTAU → LOAITAU: TENTAU+ = {TENTAU} không có LOAITAU vậy TENTAU → LOAITAU không dư thừa

MACHUYEN → TENTAU: MACHUYEN+ trừ MACHUYEN →TENTAU: MACHUYEN+ = {MACHUYEN, LUONGHANG không có TENTAU} vậy MACHUYEN →TENTAU không dư thừa.

MACHUYEN → LUONGHANG: MACHUYEN+ trừ MACHUYEN →LUONGHANG: MACHUYEN+ ={ MACHUYEN, TENTAU, LOAITAU} không có LUONGHANG vậy MACHUYEN →LUONGHANG không dư thừa

TENTAU, NGAY →BENCANG: TENTAU, NGAY+ không dùng TENTAU, NGAY →BENCANG: TENTAU, NGAY+ = {TENTAU, NGAY, MACHUYEN, LUONGHANG không có BENCANG vậy TENTAU, NGAY →BENCANG không dư thừa

TENTAU, NGAY → MACHUYEN: TENTAU, NGAY+ không dùng TENTAU, NGAY →MACHUYEN: TENTAU, NGAY+ = {TENTAU, NGAY, LOAITAU, BENCANG, MACHUYEN} có MACHUYEN vậy TENTAU, NGAY → MACHUYEN thừa

TENTAU → LOAITAU; MACHUYEN → TENTAU; MACHUYEN →LUONGHANG; TENTAU, NGAY BENCANG →

Xét TENTAU, NGAY BENCANG →

Kiểm tra TENTAU thừa: NGAY+ = {NGAY } không có BENCANG trong NGAY+ vậy TENTAU không thừa

Trang 15

15 Kiểm tra NGAY thừa: TENTAU+ = {TENTAU, LOAITAU } không có BENCANG trong TENTAU+ vậy NGAY thừa

Vậy F* = { TENTAU →→ LOAITAU; MACHUYEN →→ TENTAU ; MACHUYEN → LUONGHANG; TENTAU, NGAY →→BENCANG }

Bài 2/ Q(A,B,C,D,E,G)

Cho F={AB C;C A;BC D;ACD B;D EG;BE C;CG BD;CE AG} X={B,D}, X+=? Y={C,G}, Y+=?

Bài làm Ta có: (CB)+ = {B} (D) = {DEG} +

= {ABCDEG} → (X)+

(C)+ = {AC} (G) = {G} +

→ (Y)+ = {ABCDEG}

Bài 3/ Cho lược đồ quan h Q v tập phụ thuộc hm F

a) F={AB E;AG I;BE I;E G;GI H} chng minh rằng AB GH b) F={AB C;B D;CD E;CE GH;G A}chng minh rằng AB E; AB G

Trong cc phụ thuộc hm sau đây, PTH no không thỏa A B; A C; B A; C D; D C; D A

Bài làm

Xét A B: ta thấy A2 = A = y mà B 42≠ B4=> Không thoả Xét A C: ta thấy A2 = A = y mà C 4 2≠ C4=> Không thoả Xét C D: ta thấy C3 = D 3= y => Thoả

Trang 16

Cơ s d liu ThS Nguyn Đc Cương

16 Xét D C: ta thấy D1 = D = y mà C 3 1≠ C3=> Không thoả

Xét D A: ta thấy A2 = A = y mà D 4 2≠ D4=> Không thoả

Bài 5/ Hãy tìm tất cả cc khóa cho lược đồ quan h sau:

Q (BROKER, OFFICE, STOCK, QUANTITY, INVESTOR, DIVIDENT) F={STOCK DIVIDENT

INVESTOR BROKER

INVESTOR, STOCK QUANTITY BROKER OFFICE}

Bài làm Vế tri ta có: STOCK, INVESTOR, BROKER Vế phải: DIVIDENT, BROKER, QUANTITY, OFFICE => TN = {STOCK, INVESTOR}

STOCK, INVESTOR

STOCK, INVESTOR, DIVIDENT, BROKER, QUANTITY, OFFICE

STOCK, INVESTOR

STOCK, INVESTOR

BROKER STOCK, INVESTOR, BROKER

STOCK, INVESTOR, DIVIDENT, BROKER, QUANTITY, OFFICE

STOCK, INVESTOR,

BROKER

=> Khoá là STOCK, INVESTOR

Bài 8/ Q(A,B,C,D) F={AB C; D B; C ABD} Hãy tìm tất cả cc khóa của Q

Bài làm TN = { }

TG = {ABCD}

Trang 17

Vậy ta có tập khóa K = {C; AB; AD}

Ngày đăng: 23/05/2024, 21:41