LỜI CẢM ƠN Trong quá trình học tập và làm việc nhóm, chúng em luôn nhận được sự quan tâm, hướng dẫn và giúp đỡ tận tình của giảng viên bộ môn Lời nói đầu tiên, nhóm em xin gửi lời cảm ơn
Trang 1THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN
BÁO CÁO MÔN HỌC
Cơ Sở Dữ Liệu Nâng Cao Ngành: Công Nghệ Thông Tin
Lê Quốc Thắng - 3121411007
Giảng viên : Phan Trọng Nhân
TPHCM, Ngày 3 Tháng 12 Năm 2023
Trang 2LỜI CẢM ƠN
Trong quá trình học tập và làm việc nhóm, chúng em luôn nhận được sự quan tâm, hướng dẫn và giúp đỡ tận tình của giảng viên bộ môn
Lời nói đầu tiên, nhóm em xin gửi lời cảm ơn sâu sắc, chân thành đến với giảng viên bộ môn Cơ Sở Dữ Liệu Nâng Cao - Thầy Phan Trọng Nhân, người đã nhiệt tình, tận tâm trong việc giảng dạy & hướng dẫn chúng em trong suốt quá trình học tập hỗ trợ cả nhóm hoàn thiện báo cáo đồ án môn học này
Tuy nhiên trong quá trình học tập, nghiên cứu và hoàn thiện đồ án, do trình độ tiếp thu kiến thức, lý luận và kinh nghiệm thực tiễn còn hạn chế nên còn tồn tại những thiếu sót khó tránh khỏi, vì vậy chúng em rất mong nhận được những ý kiến đóng góp chân thành từ Thầy để có thể trao dồi thêm được nhiều kinh nghiệm cho những bài báo cáo sau này
Một lần nữa, nhóm chúng em xin chân thành cảm ơn Thầy!
Trang 3LỜI MỞ ĐẦU
Cơ Sở Dữ Liệu là một trong những tiêu chí thiết yếu để làm ra một phần mềm hoàn chỉnh, ngay cả khi chỉ là một phần mềm nhỏ thì vẫn phải cần có một cơ sở dữ liệu hoàn chỉnh Việc
sử dụng cơ sở dữ liệu giúp ta quản lý dữ liệu một cách khoa học,tránh rò rỉ & trùng lặp thông tin, đảm bảo được tính nhất quán,
độ bảo mật & giữ được toàn vẹn dữ liệu
Môn Cơ sở dữ liệu nâng cao thì cung cấp lý thuyết để thiết
kế một cơ sở dữ liệu quan hệ, từ thiết kế cấu trúc quan niệm đến thiết kế cấu trúc vật lý đều được trình bày rất chi tiết trong môn học này
Dựa trên cơ sở kiến thức của môn học, nhóm em xin phép
được trình bày đề tài “ Quarantine Camp Database - CSDL của Trại Cách Ly ” đã được giao nhằm củng cố kiến thức và
hiện thực hóa những gì đã được tiếp thu thông qua môn học trong suốt thời gian học tập vừa qua
Trang 4Mục Lục
I Giới Thiệu Tổng Quát 4
1/ Thành viên nhóm và phân công 4
2/ Môi trường và quá trình làm việc nhóm 5
2.1/ Môi trường làm việc 5
2.2/ Quá trình làm việc 5
3/ Kiến Thức Được Sử Dụng Trong Đồ Án 5
II Yêu Cầu & Tóm Tắt Đề Bài 6
1/ Yêu Cầu 6
1.1/ Yêu cầu chung 6
1.2/ Yêu cầu chi tiết 7
2/ Tóm tắt đề bài 8
III Chuyển Đề Bài Thành Lược Đồ ERD 9
1/ Các kiến thức liên quan đến lược đồ EERD 9
2/ Phân tích từng thực thể 11
3/ Tổng hợp thành phần EERD hoàn chỉnh 15
IV Chuyển Lược Đồ ERD Thành Lược Đồ Quan Hệ 16
1/ Các kiến thức liên quan đến lược đồ quan hệ 16
V Cấu Hình Lược Đồ Quan Hệ Vào Hệ Quản Trị CSDL 19
1/ Giới thiệu 19
2/ Phần mềm sử dụng 20
3/ Cấu hình máy chủ ảo trên máy tính (XAMPP) 20
VI Áp Dụng CSDL Trên Môi Trường Website 37
1/ Các ngôn ngữ sử dụng 37
2/ Plugins từ bên thứ ba 38
3/ Các Framework sử dụng 39
4/ Các Font, Icon sử dụng 39
VII Tổng Kết 39
Trang 5I Giới Thiệu Tổng Quát
1/ Thành viên nhóm và phân công
Thành viên Khối lượng công
việc
Các mốc công việc
đã hoàn thành
Phạm Cao Minh Quân
Dương Minh Sơn
Trương Tấn Tài
Huỳnh Nguyễn Thanh Thảo
Lê Quốc Thắng
2/ Môi trường và quá trình làm việc nhóm
2.1/ Môi trường làm việc
- Nhóm làm việc chủ yếu qua Discord và Github
2.2/ Quá trình làm việc
- Nhóm thường họp và phân chia công việc vào mỗi 19h thứ bảyhàng tuần từ Tuần 2 tới Tuần 13 của Học kì I NH 2023-2024
Trang 6- Các thành viên thực hiện phần được giao trong khung giờ 19h
-> 23h và cùng nhau sửa chữa bổ sung cho đến khi hoàn thành
3/ Kiến Thức Được Sử Dụng Trong Đồ Án
- Kiến thức liên quan và phần mềm được sử dụng
+ Xampp, Database, Front-end, Back-end, hệ quản trị CSDL MySQL,….
- Ngôn ngữ lập trình Webs
+ HTML, CSS, JavaScript, PHP, SQL,….
II Yêu Cầu & Tóm Tắt Đề Bài
1/ Yêu Cầu
1.1/ Yêu cầu chung
1.1.1/ Thiết kế một ERD được dán nhãn đầy đủ theo mô tả đề
tài của nhóm Các sơ đồ phải hiển thị các thực thể phù hợp (với
Trang 7các thuộc tính khóa được gạch chân), các mối quan hệ, tỷ lệ số lượng, các lớp thành viên tùy chọn & bắt buộc (3 điểm).
1.1.2/ Ánh xạ sơ đồ (E)ER đã vẽ của nhóm tới lược đồ CSDL
quan hệ và xác định tất cả các ràng buộc không được hiển thị trong sơ đồ (E)ER (1 điểm)
1.1.3/ Xây dựng một ứng dụng với các yêu cầu sau: (6 điểm)
- Môi trường lập trình: Tùy chọn ( desktop, web hoặc ứng dụng di động)
- Ngôn ngữ lập trình: Tùy chọn
- Sinh viên cần chuẩn bị đầy đủ để thuyết trình tại buổi báocáo
1.2/ Yêu cầu chi tiết
CSDL của Trại Cách Ly:
1.2.1/ Tra cứu thông tin bệnh nhân với kết quả tìm kiếm bao
gồm:
+ Tên, SĐT và thông tin về bệnh đi kèm của bệnh nhân
1.2.2/ Thêm thông tin cho bệnh nhân mới.
Trang 81.2.3/ Liệt kê chi tiết tất cả các xét nghiệm của bệnh nhân 1.2.4/ Lập báo cáo cung cấp đầy đủ thông tin về bệnh nhân bao
Trang 9Từ đề bài ta có:
+ Các thực thể như “ Patient, Doctor, Nurse, Staff, Volunteer, Quarantine Camp Staff, Symptoms,.v.v
Trang 10+ Các mối quan hệ giữa các thực thể như “1,n; 0,n”
III Chuyển Đề Bài Thành Lược Đồ ERD
1/ Các kiến thức liên quan đến lược đồ ERD Relationship Diagram)
(Entity-a Thực thể (Entities): Thực thể là các đối tượng hoặc khái
niệm có ý nghĩa độc lập trong hệ thống Chúng có thể là các đối tượng vật lý như người, sách, xe hơi, hoặc đối tượng trừu tượng như khách hàng, đơn hàng, sự kiện Thực thể trong lược đồ EERD được biểu diễn bằng hình chữ nhật
b Quan hệ (Relationships): Quan hệ mô tả sự tương tác hoặc
mối quan hệ giữa các thực thể trong hệ thống Chúng xác định cách các thực thể liên kết với nhau và mối quan hệ giữa chúng
Ví dụ, một quan hệ "Một đến Nhiều" (One-to-Many) giữa thực thể "Khách hàng" và "Đơn hàng" cho biết một khách hàng có thể có nhiều đơn hàng, trong khi một đơn hàng chỉ thuộc về mộtkhách hàng Quan hệ trong lược đồ EERD được biểu diễn bằng hình tròn hoặc các ký hiệu khác tùy thuộc vào loại quan hệ
c Thuộc tính (Attributes): Thuộc tính là thông tin cụ thể về
mỗi thực thể hoặc quan hệ Chúng mô tả các đặc điểm, đặc tính hoặc thuộc tính của thực thể hoặc quan hệ đó Ví dụ, thuộc tính của thực thể "Sách" có thể bao gồm tiêu đề, tác giả, năm xuất bản, và ISBN Thuộc tính trong lược đồ EERD được biểu diễn bằng các đường gạch chéo nối từ thực thể hoặc quan hệ đến
Trang 11+ Patient ID: Mã bệnh nhân
+ Full_name: Họ & Tên của bệnh nhân
+ Identity number: CMND hoặc CCCD của bệnh nhân+ Phone: SĐT của bệnh nhân
+ Gender: Giới tính của bệnh nhân
+ Address: Địa chỉ nơi cư trú của bệnh nhân
+ Date:Ngày bệnh nhân nhập viện
+ Current condition: Tình trạng hiện tại của bệnh nhân
2.2/ Thực Thể Symtomp ( Triệu Chứng ):
- Thực thể này ghi nhận thông tin về các triệu chứng của bệnh
Trang 12nhân, bao gồm các triệu chứng mà bệnh nhân có thể trải qua khi
bị nhiễm COVID-19
- Khóa chính: Symtomp ID
- Có các thuộc tính như:
+ Symtomp ID: Mã triệu chứng
+ Symtomp type: Loại triệu chứng
- Khóa ngoại: Patient ID (tham chiếu đến thực thể "Patient")
2.3/ Thực thể Quarantine camp Staff (Nhân Viên Trại Cách Ly) :
- Thực thể này lưu trữ thông tin về nhân viên trong trại cách ly,
bao gồm mã nhân viên, họ tên và vai trò
- Khóa chính: ID
- Có các thuộc tính như:
+ ID: Mã nhân viên
+ Name: Tên nhân viên
Trang 13-Capacity (Sức chứa).
Khóa chính: Room ID.
Lí do chia bảng: Ghi nhận thông tin về các phòng trong trại cách ly, bao gồm
mã phòng, loại phòng và sức chứa.
Bảng "Treatment" (Quá trình điều trị):
Để có thể biết được bệnh nhân đó đã trải qua điều trị ra sao chúng ta cần thông tin của quá trình đó:
-Treatment ID (Mã Quá trình điều trị)
-Medication (Thuốc)
-Start date (Ngày bắt đầu)
-End date (Ngày kết thúc)
-Result (Kết quả).
Khóa chính: Treatment ID, Doctor ID, date.
Khóa ngoại: Treatment ID(tham chiếu đến bảng "Patient"), Doctor ID (tham chiếu đến bảng "Doctor").
Lí do chia bảng: Ghi nhận thông tin về quá trình điều trị của bệnh nhân, bao gồm thông tin về bệnh nhân, bác sĩ điều trị, ngày bắt đầu, ngày kết thúc và kết quả.
3/ Tổng hợp thành phần ERD hoàn chỉnh
Medication(Effects, Medication_Name, Medication_Code, Price Patient_ID, Test_ID) Test(Test_ID,Test_Type,Test_Date,Cycle_Threshold,PCR_Result,PCR_Ct_Value,Q uick_Test_Result,Quick_Test_Ct_Value,SPO2,Respiratory_Rate)
Patient(Gender, Address, Patient_ID, Full_Name, Phone, Identity_Number,
Current_Condition)
Symtomp(Symtomp_ID, Symtomp_Type)
Trang 14liên quan và ngược lại Mối quan hệ này được thể hiện thông qua bảng trung gian (junction table) hoặc bảng liên kết (linking table) giữa hai bảng
+ Ví dụ: mỗi sinh viên có thể đăng ký nhiều khóa học và
mỗi khóa học có thể được đăng ký bởi nhiều sinh viên, do
đó cần một bảng trung gian để lưu thông tin về mối quan hệ này
- Mối quan hệ một-một (One-to-One Relationship): Mỗi thực thể trong bảng gốc chỉ có một thực thể tương ứng trong bảng liên quan và ngược lại
+ Ví dụ: mỗi sinh viên có thể có một bản ghi tương ứng
trong bảng "StudentDetails" để lưu thông tin chi tiết về sinh viênđó
Trang 15Treatment(Treat_ment_ID,Patient_ID,Doctor_ID,Date_Start, Date_End, Percentage)
Admits(Location_History, Room_ID, Staff_ID)
Volunteer(Quarantine_camp_Staff_ID,Volunteer_ID)
Trang 16Building(Building_ID, Building_Name)
Room(Room_ID, Normal_room, Emergency_room, Recuperation_room, Floor_ID)
Trang 17Medication(Effects, Medication_ID, Medication_Name, Medication_Code, Price Patient_ID, Test_ID)
Test
Trang 18V Cấu Hình Lược Đồ Quan Hệ Vào Hệ Quản Trị CSDL
1/ Giới thiệu
Cơ sở dữ liệu đóng vai trò quan trọng trong việc tổ chức và lưu trữ thông tin trong hệ thống thông tin hiện đại Để đảm bảo hoạt động hiệu quả, cấu hình lược đồ quan hệ vào hệ quản trị cơ sở
dữ liệu là một phần quan trọng Trong bài báo cáo này, chúng ta
sẽ tập trung vào phần mềm XAMPP và cách thức cấu hình lược
đồ quan hệ.
Trang 19Bước 2: Mở XAMPP và Start Apache và MySQL
Bước 3: Nhấn vào Admin ở MySQL và nhập file SQL
Trang 20bảng " Staff ".
Cấu hình trong SQL
CREATE TABLE `admits` (
`Location_History` varchar(255) NOT NULL,
`Patient_ID` int(255) NOT NULL,
`Room_ID` int(255) NOT NULL,
`Staff_ID` int(255) NOT NULL,
FOREIGN KEY (`Patient_ID`) REFERENCES `patient`(`Patient_ID`),
FOREIGN KEY (`Room_ID`) REFERENCES `room` (`Room_ID`),
FOREIGN KEY (`Staff_ID`) REFERENCES `staff` (`Staff_ID`)
+ "Building_Name" với kiểu VARCHAR
Không có khóa ngoại
Cấu hình trong SQL
Trang 21+ "Position" với kiểu VARCHAR
Cấu hình khóa ngoại
- " Quarantine_camp_Staff ID" là khóa ngoại, liên kết với " Quarantine_camp_Staff_ ID" trong
bảng"Quarantine_camp_Staff"
Cấu hình trong SQL
CREATE TABLE `doctor` (
`Doctor_ID` int(255) NOT NULL PRIMARY KEY, `Quarantine_camp_Staff_ID` int(255) NOT NULL, `position` varchar(255) NOT NULL,
FOREIGN KEY (`Quarantine_camp_Staff_ID`)
Trang 22Cấu hình khóa ngoại
- "Patient_ID" là khóa ngoại, liên kết với "Patient_ID" trong bảng "Patient"
- "Test_ID" là khóa ngoại, liên kết với "Test_ID" trong bảng
"Test"
Cấu hình trong SQL
CREATE TABLE `medication` (
`Medication_ID` varchar(255) NOT NULL PRIMARYKEY,
`Effects` varchar(255) NOT NULL,
`Medication_Name` varchar(255) NOT NULL, `Medication_Code` varchar(255) NOT NULL, `Price` int(255) NOT NULL,
`Patient_ID` int(255) NOT NULL,
`Test_ID` int(255) NOT NULL,
FOREIGN KEY (`Patient_ID`) REFERENCES
Trang 23FOREIGN KEY (`Room_ID`) REFERENCES
+ "Gender" với kiểu VARCHAR
+ "Name" với kiểu VARCHAR
+ "Phone" với kiểu VARCHAR
+ "Identity_Number" với kiểu VARCHAR
Không có khóa ngoại
Cấu hình trong SQL
CREATE TABLE `quarantine_camp_staff` (
`Quarantine_camp_Staff_ID` int(255) NOT NULL PRIMARY KEY,
`Name` varchar(255) NOT NULL,
`Gender` varchar(255) NOT NULL,
`Phone` varchar(255) NOT NULL,
`Identity_Number` int(255) NOT NULL
Trang 24+ "Normal_Room" với kiểu VARCHAR
+ "Emergency_Room" với kiểu VARCHAR
+ "Recuperation_Room" với kiểu VARCHAR
Cấu hình khóa ngoại
- "Floor_ID" là khóa ngoại, liên kết với "Floor_ID" trong bảng "Floor"
Cấu hình trong SQL
CREATE TABLE `room` (
`Room_ID` int(255) NOT NULL PRIMARY KEY,
`Normal_room` varchar(255) NOT NULL,
`Emergency_room` varchar(255) NOT NULL, `Recuperation_room` varchar(255) NOT NULL, `Floor_ID` int(255) NOT NULL,
FOREIGN KEY (`Floor_ID`) REFERENCES `floor` (`Floor_ID`)
);
Bảng Staff:
Trang 25Cấu hình khóa ngoại
- "Patient_ID" là khóa ngoại, liên kết với "Patient_ID" trong bảng "Patient"
Cấu hình trong SQL
CREATE TABLE `symptom` (
`Symptom_ID` int(255) NOT NULL PRIMARY KEY, `Symptom_Type` varchar(255) NOT NULL,
`Patient_ID` int(255) NOT NULL,
FOREIGN KEY (`Patient_ID`) REFERENCES `patient` (`Patient_ID`)
+ "Test_Result" với kiểu VARCHAR
+ "Test_Type" với kiểu VARCHAR
+ "Test_Date" với kiểu DATE
+ "Cycle_Threshold" với kiểu VARCHAR
Cấu hình khóa ngoại
- "Patient_ID" là khóa ngoại, liên kết với "Patient_ID" trong bảng "Patient"
Trang 26VI Áp Dụng CSDL Trên Môi Trường Website
1/ Các ngôn ngữ sử dụng
o PHP: Được sử dụng để xử lý các yêu cầu máy chủ
và tương tác với cơ sở dữ liệu Là một ngôn ngữ lập trình máy chủ, giúp tạo ra nội dung động và thực hiện các chức năng như: đăng nhập, đăng ký, và quản lý dữ liệu,…
o HTML: Được sử dụng để xây dựng cấu trúc siêu văn
bản trên một website, hay khai báo các tập tin kỹ thuật số như:hình ảnh, đoạn văn bản, hình ảnh, liên kết, biểu mẫu,…
o JAVASCRIPT: Được sử dụng để thêm các tính
năng động và tương tác người dùng vào trang web
Nó có thể thực hiện các hành động như kiểm tra dữ liệu đầu vào, thay đổi nội dung trang mà không cần tải lại, và thực hiện các hiệu ứng hình ảnh
o SCSS/CSS: Được sử dụng để kiểm soát giao diện và
trình bày của trang web, bao gồm màu sắc, font chữ, kích thước, và bố cục
o SQL: Được sử dụng để truy vấn, cập nhật, và quản
lý dữ liệu trong cơ sở dữ liệu