You are on page 1of 44

Bài tập lớn Cơ sở dữ liệu

Education
Nhóm 4

Viện Toán ứng dụng và Tin học

Ngày 20 tháng 5 năm 2021

Advisor: Nguyễn Danh Tú


Nội dung chính trình bày

Thông tin về cơ
sở dữ liệu 1 Thông tin về cơ sở dữ liệu
Truy vấn dữ liệu Diagram
Cập nhật dữ liệu
Thông tin và số lượng các bảng dữ liệu
Đánh giá mức độ chuẩn hóa

2 Truy vấn dữ liệu


Các câu lệnh truy vấn
Tối ưu thời gian truy vấn
Đánh giá hiệu năng

3 Cập nhật dữ liệu


Transaction
Tạo một CSDL y hệt cấu trúc

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Các thành viên trong nhóm

Thông tin về cơ
sở dữ liệu
Diagram
Thông tin và số lượng
các bảng dữ liệu
Đánh giá mức độ
chuẩn hóa

Truy vấn dữ liệu


Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Thông tin về cơ sở dữ liệu
Education
Education là gì?
Thông tin về cơ
sở dữ liệu
Diagram
Thông tin và số lượng
các bảng dữ liệu
Đánh giá mức độ
chuẩn hóa

Truy vấn dữ liệu


Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


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

Thông tin về cơ Nguồn: db-book.com


sở dữ liệu
Diagram
Thông tin và số lượng
các bảng dữ liệu
Đánh giá mức độ
chuẩn hóa

Truy vấn dữ liệu


Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Thông tin về cơ sở dữ liệu
E-R Diagram
Mô hình ER
Thông tin về cơ
sở dữ liệu
Diagram
Thông tin và số lượng
các bảng dữ liệu
Đánh giá mức độ
chuẩn hóa

Truy vấn dữ liệu


Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Thông tin về cơ sở dữ liệu
R-E Diagram
Mô hình RE
Thông tin về cơ
sở dữ liệu
Diagram
Thông tin và số lượng
các bảng dữ liệu
Đánh giá mức độ
chuẩn hóa

Truy vấn dữ liệu


Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Thông tin về cơ sở dữ liệu
Thông tin và số lượng các bảng dữ liệu

Thông tin về cơ
sở dữ liệu
Diagram
Thông tin và số lượng
các bảng dữ liệu
Đánh giá mức độ
chuẩn hóa

Truy vấn dữ liệu


Cập nhật dữ liệu

Table Count: 11
Database Size: 354.9 MiB

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Đánh giá mức độ chuẩn hóa

Thông tin về cơ
sở dữ liệu
Diagram
• Tất cả các bảng đều đạt chuẩn BCNF (Boyce–Codd normal form).
Thông tin và số lượng
các bảng dữ liệu
Đánh giá mức độ
chuẩn hóa Chứng minh
Truy vấn dữ liệu Xét quan hệ (bảng) section có:
Cập nhật dữ liệu • Phụ thuộc hàm (course_id, sec_id, semester, year) → (building, room_number,
time_slot_id).
• Các thuộc tính khóa: course_id, sec_id, semester, year.
• Các thuộc tính không khóa: building, room_number, time_slot_id.
• Dễ dàng thấy quan hệ section đạt chuẩn BCNF.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn

Thông tin về cơ 1. Sắp xếp danh sách người hướng dẫn có lương từ 80000 đến 120000 theo thứ tự
sở dữ liệu lương tăng dần.
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn

Thông tin về cơ 2. Lấy ra thông tin những phòng ban có số tiêu đề ≥ 10 sắp xếp theo thứ tự tăng dần
sở dữ liệu của tiêu đề.
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn

Thông tin về cơ 3. Thống kê ngân sách các tòa nhà của phòng ban.
sở dữ liệu
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn
4. Tìm tên của tất cả những người hướng dẫn có mức lương lớn hơn ít nhất một giáo
Thông tin về cơ
sở dữ liệu
viên hướng dẫn trong bộ môn Sinh học.
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn
5. Hiển thị thông tin gồm: ID, tên người hướng dẫn, tiền lương, học kỳ, tên tòa nhà với
Thông tin về cơ
sở dữ liệu
tên phòng ban là Vật lý.
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn

Thông tin về cơ 6. Tìm phòng ban có mức lương trung bình cao nhất.
sở dữ liệu
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn
7. Tìm tổng số sinh viên (riêng biệt) đã tham gia các phần khóa học do giảng viên có
Thông tin về cơ
sở dữ liệu
ID 100001 giảng dạy.
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn
8. Sắp xếp số lượng giảng viên trong mỗi bộ môn giảng dạy một khóa học vào học kỳ
Thông tin về cơ
sở dữ liệu mùa xuân năm 2008 theo thứ tự giảm dần.
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn
9. Đối với mỗi phần khóa học được cung cấp trong năm 2001, tìm tổng số tín chỉ
Thông tin về cơ
sở dữ liệu trung bình (tính theo tín chỉ) của tất cả sinh viên đăng ký trong phần đó, nếu phần đó
Truy vấn dữ liệu
có ít nhất 2 sinh viên..
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Các câu lệnh truy vấn
10. Tìm tất cả các phòng ban có tổng mức lương là lớn hơn mức trung bình của tổng
Thông tin về cơ
sở dữ liệu tiền lương ở tất cả các bộ phận.
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng
1. Index
Cập nhật dữ liệu
2. Partition

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn
Index

Thông tin về cơ Khái niệm


sở dữ liệu
Truy vấn dữ liệu Index là bảng tra cứu đặc biệt có thể sử dụng để tăng nhanh thời gian và hiệu suất thu
Các câu lệnh truy vấn thập dữ liệu. Index có nhiệm vụ đánh chỉ số cho các bản ghi của bảng.
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn
Index

Thông tin về cơ Ưu, nhược điểm của Index


sở dữ liệu Ưu điểm Nhược điểm
Truy vấn dữ liệu
Các câu lệnh truy vấn • Đẩy nhanh tốc độ truy vấn xử lý của • Cost của INSERT, UPDATE ,DELETE
Tối ưu thời gian truy
SELECT, tìm kiếm record theo điều tăng lên . Hơn nữa, có thể không ảnh
vấn
Đánh giá hiệu năng
kiện WHERE. hưởng đến tốc độ hoặc tốc độ bị giảm
đi bởi index.
Cập nhật dữ liệu
Cấu trúc của index:

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn
Index

Thông tin về cơ Cách tạo Index


 
sở dữ liệu 1 CREATE INDEX index_name ON table_name ( column_l i s t )
Truy vấn dữ liệu  
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn Các kiểu Index
Đánh giá hiệu năng
• Kiểu dữ liệu B-Tree
Cập nhật dữ liệu

• Các kiểu dữ liệu khác như: Hash, R-Tree, Log - Structure Merge, (full-text, spatial,
skiplist)

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn
Index - So sánh thời gian truy vấn
Kết quả trước khi thêm Index
Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn
Index - So sánh thời gian truy vấn
Kết quả sau khi thêm Index
Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Truy vấn dữ liệu
Đánh giá hiệu năng

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu Trước khi thêm Index Sau khi thêm Index Hiệu năng
Các câu lệnh truy vấn
Tối ưu thời gian truy • Thời gian đọc kết quả • Thời gian đọc kết quả • 1337 lần
vấn
Đánh giá hiệu năng
đầu tiên: 69,524 (ms) đầu tiên: 0,052 (ms)
Cập nhật dữ liệu
• Thời gian đọc tất cả các • Thời gian đọc tất cả • 5557 lần
kết quả: 3690,022 (ms) các kết quả: 0,664 (ms)

• Số hàng phải • Số hàng phải • 1590 lần


duyệt: 3002682 duyệt: 1889

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn
Index - So sánh thời gian truy vấn
Trước khi thêm Index
Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tối ưu thời gian truy vấn
Index - So sánh thời gian truy vấn
Sau khi thêm Index
Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Các câu lệnh truy vấn
Tối ưu thời gian truy
vấn
Đánh giá hiệu năng

Cập nhật dữ liệu

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


5 thao tác dữ liệu từ nghiệp vụ thực tế

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Cập nhật dữ liệu
Transaction • Thêm một sinh viên mới.
Tạo một CSDL y hệt
cấu trúc • Thêm một học phần vào chương trình đào tạo.
• Xóa một sinh viên ra khỏi CSDL.
• Cập nhập điểm học phần chi tiết cho một sinh viên.
• Đăng ký học phần chi tiết cho một sinh viên.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Code
Thêm một sinh viên mới

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
• Thêm sinh viên A thuộc viện B.
Cập nhật dữ liệu
Transaction
Mã sinh viên ID_new _student = MAX (ID) trong bảng student.
Tạo một CSDL y hệt
cấu trúc
• Cài đặt:
 
1 START TRANSACTION ;
2
3 SELECT ID_new_student = MAX( ID ) + 1 FROM s t u d e n t ;
4
5 INSERT INTO s t u d e n t ( ID , name , dept_name , t o t _ c r e d )
6 VALUES( ID_new_student , "A" , "B" , 0 ) ;
7
8 COMMIT;
 

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Thêm một học phần vào chương trình đào tạo

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Cập nhật dữ liệu
Transaction Các bước thực hiện
Tạo một CSDL y hệt
cấu trúc • Bắt đầu transaction.
• Lấy mã học phần @course_id = MAX (course_id) + 1 từ bảng course.
• Thêm học phần với mã họp phần @course_id vào bảng course.
• Cập nhật bảng prereq với @course_d.
• Thực hiện Commit.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Thêm một học phần vào chương trình đào tạo

Thông tin về cơ
sở dữ liệu • Thêm học phần (p_title, p_dept_name, p_credits).
Truy vấn dữ liệu
• Cài đặt:
Cập nhật dữ liệu  
Transaction 1 START TRANSACTION ;
Tạo một CSDL y hệt 2
cấu trúc 3 SELECT @ c o u r s e _ i d :=MAX( c o u r s e _ i d ) + 1 FROM c o u r s e ;
4
5 INSERT INTO c o u r s e ( c o u r s e _ i d , t i t l e , dept_name , c r e d i t s )
6 VALUES( @ c o u r s e _ i d , p _ t i t l e , p_dept_name , p _ c r e d i t s ) ;
7
8 INSERT INTO p r e r e q ( c o u r s e _ i d , p r e r e q _ i d )
9 VALUES ( @ c o u r s e _ i d , p _ c o u r s e _ i d 1 ) ;
10
11 INSERT INTO p r e r e q ( c o u r s e _ i d , p r e r e q _ i d )
12 VALUES ( p_course_id2 , @ c o u r s e _ i d ) ;
13
14 COMMIT;
 

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Xóa một sinh viên ra khỏi CSDL

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Cập nhật dữ liệu
Transaction
Tạo một CSDL y hệt
Các bước thực hiện
cấu trúc
• Bắt đầu transaction.
• Kiểm tra có tồn tại sinh viên này không. Nếu không tồn tại. → Rollback.
• Xóa dữ liệu với ID sinh viên cần xóa trong các bảng student, takes và advisor.
• Thực hiện Commit.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Xóa một sinh viên ra khỏi CSDL

Thông tin về cơ
sở dữ liệu • Xóa sinh viên có mã số p_ID.
Truy vấn dữ liệu
Cập nhật dữ liệu
• Cài đặt:
Transaction
 
1 START TRANSACTION ;
Tạo một CSDL y hệt 2
cấu trúc 3 SELECT @ f l a g :=COUNT( ID ) FROM s t u d e n t WHERE ID = p_ID ;
4
5 IF ( @ f l a g = 0)
6 THEN ROLLBACK ;
7 END I F ;
8
9 DELETE FROM t a k e s WHERE ID = p_ID ;
10 DELETE FROM adv i s o r WHERE s _ i d = p_ID ;
11 DELETE FROM s t u d e n t WHERE ID = p_ID ;
12
13 COMMIT;
 

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Cập nhật điểm học phần chi tiết cho một sinh viên

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Cập nhật dữ liệu
Transaction Các bước thực hiện
Tạo một CSDL y hệt
cấu trúc • Bắt đầu transaction.
• Kiểm tra có tồn tại học phần cụ thể như vậy không. Nếu không tồn tại. → Rollback.
• Cập nhật điểm vào bảng takes.
• Điểm học phần lớn hơn F . → Cập nhật tot_cred trong bảng student. → Commit.
• Điểm học phần bằng F → Commit.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Cập nhật điểm học phần chi tiết cho một sinh viên
• Cập nhật điểm học phần chi tiết:
Thông tin về cơ (p_ID, p_course_id, p_sec_id, p_semester , p_year , p_grade).
sở dữ liệu
Truy vấn dữ liệu •

Cài đặt: 
Cập nhật dữ liệu
Transaction 1 START TRANSACTION ;
2
Tạo một CSDL y hệt 3 SELECT @ f l a g _ f i := COUNT( c o u r s e _ i d ) FROM t a k e s
cấu trúc 4 WHERE ID = p_ID AND c o u r s e _ i d = p _ c o u r s e _ i d
5 AND s e c _ i d = p_sec_id AND s e m e s t e r = p _ s e m e s t e r AND y e a r = p_year ;
6
7 INSERT INTO t a k e s ( ID , c o u r s e _ i d , s e c _ i d , s e m e s t e r , y e a r , g r a d e )
8 VALUES ( p_ID , p_course_id , p_sec_id , p_semester , p_year , g r a d e ) ;
9
10 SELECT @ f l a g _ s e := g r a d e FROM t a k e s
11 WHERE ID = p_ID AND c o u r s e _ i d = p _ c o u r s e _ i d
12 AND s e c _ i d = p_sec_id AND s e m e s t e r = p _ s e m e s t e r AND y e a r = p_year ;
13
14 SELECT @ c r e d := c r e d i t s FROM c o u r s e WHERE c o u r s e _ i d = p _ c o u r s e _ i d ;
15
16 I F ( @ f l a g _ f i = 0 ) THEN
17 ROLLBACK ;
18 ELSEIF ( @ f l a g _ s e != ’ F ’ ) THEN
19 UPDATE s t u d e n t SET t o t _ c r e d = t o t _ c r e d + @ c r e d WHERE ID = p_ID ;
20 COMMIT;
21 ELSE COMMIT;
22 END I F ;
Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021 
Đăng ký học phần chi tiết cho một sinh viên

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Các bước thực hiện
Cập nhật dữ liệu • Input danh sánh các học phần sinh viên đăng ký.
Transaction
• Mỗi học phần:
Tạo một CSDL y hệt
cấu trúc
• Bắt đầu transaction.
• Kiểm tra:
1. Học phần này có tồn tại hay không?
2. Sinh viên đã đăng ký học phần này chưa?
3. Sinh viên có vượt quá số tín chỉ cho phép trong một kỳ.
• Nếu:
▶ Đủ cả 3 điều kiện → Thực hiện yêu cầu → Commit.
▶ Vi phạm 1 trong 3 điều kiện → Rollback.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Đăng ký học phần chi tiết một sinh viên

Thông tin về cơ
• Đăng ký học phần chi tiết:
sở dữ liệu (p_ID, p_course_id, p_sec_id, p_semester , p_year , p_grade).
Truy vấn dữ liệu
• Cài đặt:
Cập nhật dữ liệu
Transaction
 
1 START TRANSACTION ;
Tạo một CSDL y hệt 2
cấu trúc 3 SELECT @ f l a g _ f i := COUNT( c o u r s e _ i d ) FROM c o u r s e WHERE c o u r s e _ i d = p _ c o u r s e _ i d ;
4
5 SELECT @ f l a g _ s e := COUNT( c o u r s e _ i d ) FROM t a k e s
6 WHERE c o u r s e _ i d = p _ c o u r s e _ i d AND ID = p_ID AND s e m e s t e r = p _ s e m e s t e r AND y e a r = p_year ;
7
8 INSERT INTO t a k e s ( ID , c o u r s e _ i d , s e c _ i d , s e m e s t e r , y e a r , g r a d e )
9 VALUES ( p_ID , p_course_id , p_sec_id , p_semester , p_year , 0 ) ;
10
11 SELECT @ f l a g _ t h := SUM( c r e d i t s ) FROM t a k e s AS a LEFT JOIN c o u r s e AS b
12 ON a . c o u r s e _ i d = b . c o u r s e _ i d WHERE ID = p_ID AND s e m e s t e r = p _ s e m e s t e r AND y e a r = p_year ;
13
14 I F ( @ f l a g _ s e != 0 OR @ f l a g _ f i = 0 OR @ f l a g _ t h > 2 4 ) THEN
15 ROLLBACK ;
16 ELSE COMMIT;
17 END I F ;
 

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tạo một CSDL y hệt cấu trúc

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Cập nhật dữ liệu
Transaction
Tạo một CSDL y hệt
cấu trúc
Ý tưởng
• Tạo một stored procedure để copy từ data sourse sang target với cấu trúc:
▶ Tạo các bảng có cấu trúc như data source.
▶ Insert dữ liệu từ các bảng tương ứng trong data sourse.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Các bước thực hiện

Thông tin về cơ
sở dữ liệu • Tạo stored procedure "copyDB" với hai tham số đầu vào là "DBsourse" và
Truy vấn dữ liệu "DBtarget.
Cập nhật dữ liệu • Tạo bảng "Table_list" với các cột (id, tbl) chứa các bảng của "DBsourse".
Transaction
Tạo một CSDL y hệt • Tạo bảng "SQLscript" với các cột (id, SQLtext) chứa các câu lệnh cần thực hiện.
cấu trúc
• Duyệt bảng "Table_list" và thực hiện:
 
1 INSERT INTO S Q L s c r i p t ( SQLtext )
2 "CREATE TABLE D B t a r g e t . t b l LIKE DBsourse . t b l " ;
 
• Duyệt bảng "Table_list" và thực hiện:
 
1 INSERT INTO S Q L s c r i p t ( SQLtext )
2 "INSERT D B t a r g e t . t b l SELECT ∗ FROM DBsource . t b l "
 
• Thực hiện các câu lệnh trong bảng "SQLscript".

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Đánh giá

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
• Ưu điểm:
Cập nhật dữ liệu
Transaction ▶ Tính tái sử dụng cao.
Tạo một CSDL y hệt ▶ Dễ thực hiện.
cấu trúc
• Nhược điểm:
▶ Thời gian thực hiện procedure chậm đối với database kích cỡ lớn.
▶ Khó kiểm soát dữ liệu copy.
• Cách cải tiến:
▶ Thêm cột Index được sắp xếp là khóa chính để tăng tốc độ Insert.
▶ Cài đặt thêm transaction để kiểm soát dữ liệu.

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tổng kết

Thông tin về cơ
sở dữ liệu
Truy vấn dữ liệu
Sau khi hoàn thành bài tập lớn chúng em đã có thể làm được:
Cập nhật dữ liệu
Transaction
• Biết cách xây dựng một cơ sở dữ liệu
Tạo một CSDL y hệt • Thực hiện truy vấn dữ liệu và tối ưu các truy vấn sử dụng index và partition
cấu trúc
• Tạo các transaction để thực hiện các nghiệp vụ thực tế
• Sao chép một Database này sang một Database khác
Một số hạn chế
• Chưa tối ưu đc thời gian chạy với CSDL lớn
• Chưa nêu đủ partition

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Tổng kết

Thông tin về cơ Tổng kết


sở dữ liệu
Truy vấn dữ liệu Thuần Thủy Yến Sang Đức
Phần 1 - Thông
Cập nhật dữ liệu tin cơ sở dữ liệu • Thiết kế
Transaction
Diagram
Tạo một CSDL y hệt • Thuyết trình
cấu trúc
Phần 2 - Truy
vấn • 10 Queries • Partition
• Index
• Thuyết Trình

Phần 3 - Cập
nhật dữ liệu • 30 procedure • 5 Transactions
• Sinh tự động • Copy database
procedure bằng
• Thuyết trình procedure.
• Thuyết trình

Slide
• Làm slide • Làm slide

Bài tập lớn Cơ sở dữ liệu Education Ngày 20 tháng 5 năm 2021


Xin cảm ơn

Nhóm 4

You might also like