2 Thông tin cơ sở dữ liệu II ĐỀ TÀI NHÓMHình 4: Thông tin chi tiết về các bảng của cơ sở dữ liệuHình 5: E-R diagram của cơ sở dữ liệu6 Báo cáo giữa kỳ... II ĐỀ TÀI NHÓM 2 Thông tin cơ sở
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
Hà Nội,08-2021
Trang 2LỜI NÓI ĐẦU
Trong một năm đầy khó khăn và biến động, cả thế giới đã phải hứng chịu nhữnghậu quả nặng nề do dịch COVID gây ra Thời gian thì vẫn trôi đi, lượng tri thức củanhân loại thì vẫn tăng lên từng ngày, công nghệ thay đổi liên tục Nhưng rất may, trườngđại học Bách Khoa Hà Nội đã tạo điều kiện để chúng em vẫn có thể tiếp tục học tậptrong bất cứ hoàn cảnh nào Một kỳ học qua là một kỳ học có thể nói là dài nhất tronglịch sử của chúng em Nhưng nó cũng phải đến lúc chấm dứt để bước sang một học kỳmới và những công việc mới mà cả thầy và trò đều cần phải học tập và làm việc.
Được học tập môn học Cơ sở dữ liệu đã tạo cho chúng em một cái nhìn tổng quanhơn về cách tổ chức dữ liệu, thao tác với dữ liệu, nhất là trong thời đại công nghệ ngàynay Đây cũng được coi là môn học nền tảng cho những môn học nâng cao hơn vào cáckì học tiếp theo, giúp chúng em vững bước hơn trên con đường chinh phục dữ liệu lớn.Chúng em cám ơn nhà trường và thầy cô đã tạo cơ hội để chúng em có thể kết thúcmôn học một cách sớm nhất Mặc dù học phần đã kết thúc được vài tháng, lượng kiếnthức của chúng em có thể sẽ bị quên đi vài phần Nhưng chúng em sẽ cố gắng ôn tập đểcó một kết quả tốt nhất Một lần nữa, chúng em xin cảm ơn và kính chúc thầy và giađình dồi dào sức khỏe và luôn vui vẻ để chiến thắng dịch bệnh COVID này.
HUST, ngày 11 tháng 08 năm 2021
Trang 3Đánh giá nhóm
Hình 1: Đánh giá kết quả của nhóm trưởng
Hình 2: Đánh giá kết quả của giảng viên
Trang 4Mục lục
I Đánh giá nhóm1II Đề tài nhóm5
1 Đề tài nhóm 5
2 Thông tin cơ sở dữ liệu 5
2.1 Tổng quan 5
2.2 Đánh giá độ chuẩn hóa dữ liệu 7
III Truy vấn dữ liệu111 Câu 1 11
1.1 Yêu cầu truy vấn 11
Trang 511.2 Phân vùng cơ sở dữ liệu Partition 24
12 Đánh giá hiệu năng trước và sau khi tối ưu 25
Trang 72 Thông tin cơ sở dữ liệu
2.1 Tổng quan
- Nguồn dữ liệu được tìm kiếm trên: Kaggle.com và github.com
Hình 3: Thông tin tổng quát về cơ sở dữ liệu của nhóm
Trang 8Hình 4: Thông tin chi tiết về các bảng của cơ sở dữ liệu
Hình 5: E-R diagram của cơ sở dữ liệu
Trang 9II ĐỀ TÀI NHÓM 2 Thông tin cơ sở dữ liệu
Hình 6: R-E diagram của cơ sở dữ liệu
2.2 Đánh giá độ chuẩn hóa dữ liệu
Hình 7: Các chuẩn trong chuẩn hóa cơ sở dữ liệu
Trang 10ĐÁNH GIÁ CHUẨN HÓA
Do đó, tất cả các bảng đều đạt chuẩn 2.
Trang 11II ĐỀ TÀI NHÓM 2 Thông tin cơ sở dữ liệu
Hình 9: Thông tin của bảng deskhistory
Đánh giá chuẩn hóa tăng cường:
-Chuẩn hóa tiếp bảng hierarchy ( deskid,org,parentid)
+ Tách bảng hierarchy thành hai bảng h1(deskid,org) và h2(deskid,parentid)Ta thấy hai bảng h1 và h2 đạt chuẩn 2 vì không có thuộc tính không khóa nào phụthuộc hàm bộ phận vào khóa chính h1 và h2 đạt chuẩn 3 vì không có phụ thuộc hàmbắc cầu vào khóa chính h2 đã đạt chuẩn BCNF vì không có thuộc tính khóa nào phụ
Trang 12thuộc hàm vào thuộc tính không khóa Vì h1 có phụ thuộc hàm org nên deskid nên vẫnchưa đạt chuẩn BCNF, và h1 gồm 2 thuộc tính nên đã là tối thiểu, suy ra không thểchuẩn hóa về BCNF
Trang 13III TRUY VẤN DỮ LIỆU III
Truy vấn dữ liệu
1 Câu 1
1.1 Yêu cầu truy vấn
Danh sách những người có lương lớn hơn 600 000 sắp xếp theo thứ tự giảm dần.
1.2 Câu lệnh
Hình 10: Câu lệnh số 1
Trang 146.3 Kết quả dữ liệu
Hình 21: Kết quả câu lệnh số 6
7 Câu 7
7.1 Yêu cầu truy vấn
Số nhân viên trong năm 2014 có tiền lương >300 000, ở đó hiệu suất làm việc củanhân viên >3.
7.2 Câu lệnh
Hình 22: Câu lệnh số 7
Trang 15III TRUY VẤN DỮ LIỆU 8 Câu 8
7.3 Kết quả dữ liệu
Hình 23: Kết quả câu lệnh số 7
8 Câu 8
8.1 Yêu cầu truy vấn
Hiển thị số người đã học ở các trường, những người đó ở thành phố Chicago.
8.2 Câu lệnh
Hình 24: Câu lệnh số 8
Trang 168.3 Kết quả dữ liệu
Hình 25: Kết quả câu lệnh số 8
9 Câu 9
9.1 Yêu cầu truy vấn
Danh sách nhân viên trúng tuyển vào doanh nghiệp, có hơn 10 skill và trường đãhọc của họ.
9.2 Câu lệnh
Hình 26: Câu lệnh số 9
Trang 17III TRUY VẤN DỮ LIỆU 10 Câu 10
9.3 Kết quả dữ liệu
Hình 27: Kết quả câu lệnh số 9
10 Câu 10
10.1 Yêu cầu truy vấn
Công việc của mỗi nhân việc trong từng khoảng thời gian, các nhân viên đó thuộcbộ phận số 5x.
10.2 Câu lệnh
Hình 28: Câu lệnh số 10
Trang 18+ Cột Search Key: chứa bản sao các giá trị của cột được tạo Index
+ Cột Data Reference: chứa con trỏ trỏ đến địa chỉ của bản ghi có giá trị cột indextương ứng
Hình 30: Cấu trúc của một index
Trang 19III TRUY VẤN DỮ LIỆU 11 Tối ưu thời gian truy vấn
+ Cú pháp tạo chỉ mục: CREATE INDEX tenchimuc ON tenbang(cot1, cot2, )+ Phân loại: có nhiều cách tổ chức dữ liệu cho index như là RTree, BTree, Hashindex Thông dụng nhất là BTree
Hình 31: Ưu nhược điểm của việc đánh index
- Trước khi đánh index
Hình 32: Trước khi đánh index bảng employeeinfo
- Sau khi khi đánh index
Trang 20Hình 33: Sau khi đánh index bảng employeeinfo
11.2 Phân vùng cơ sở dữ liệu Partition
- Khái niệm: Partition là quá trình phân chia bảng thành những phần nhỏ theomột logic nhất định.
Hình 34: Các loại phân vùng cơ sở dữ liệu
- Range partition là kiểu phân vùng này chỉ định các hàng cho các phân vùng dựatrên các giá trị cột nằm trong một phạm vi nhất định.
Trang 21III TRUY VẤN DỮ LIỆU 12 Đánh giá hiệu năng trước và sau khi tối ưu
Hình 35: Câu lệnh thực hiện quá trình range partitioning
-Tương tự như phân vùng theo RANGE, List partitioning ngoại trừ việc phân vùngđược chọn dựa trên các cột khớp với một trong một tập hợp các giá trị rời rạc.
Hình 36: Câu lệnh thực hiện quá trình list partitioning
12 Đánh giá hiệu năng trước và sau khi tối ưu
- Khi đánh index
Trang 22Hình 37: Sau khi đánh index, hiệu năng tăng đáng kể
Khi thực hiện range partitioning:
Hình 38: Sự thay đổi trong truy vấn khi sử dụng range partition
Trang 23III TRUY VẤN DỮ LIỆU 12 Đánh giá hiệu năng trước và sau khi tối ưu
Nhận xét:
+ Khi chưa range partitioning thì thời gian lấy ra hàng đầu tiên là 0.06s và thờigian lấy ra tất cả các hàng là 60.810s + Khi sử dụng range partitioning thì thời gian lấyra hàng đầu tiên là 0.057 và thời gian duyệt qua tất cả các hàng là 53.418
+ Sự chênh lệch chưa nhiều do dung lượng bảng để thao tác còn nhỏ, nhưng cũngcó sự cải thiện về thời gian chạy.
Khi thực hiện list partitioning:
Hình 39: Sự thay đổi trong truy vấn khi sử dụng list partition
Trang 24Hình 40: Hình mô tả 33 procedure nhóm đã thực hiện.
Trang 25IV CẬP NHẬT DỮ LIỆU 1 Procedure cập nhật dữ liệu
1.1 Procedure Insert
Trang 27IV CẬP NHẬT DỮ LIỆU 3 Thực hiện giao dịch(Transaction)
- Đây là link video chúng em đã thực hànhh với codesmith:
https : //drive.google.com/file/d/ 1usx0Y CE− −Sr lr 51yvy6TEskR9mPlpv/view ?usp =sharing
Hình 41: Sự thay đổi trong truy vấn khi sử dụng partition
3 Thực hiện giao dịch(Transaction)
3.1 Nghiệp vụ 1
Thêm thông tin của một nhân viên mới.
Trang 29IV CẬP NHẬT DỮ LIỆU 3 Thực hiện giao dịch(Transaction)
Trang 304 Sinh cơ sở dữ liệu
Các bước tạo cơ sở dữ liệu mới giống cấu trúc cũ
1 FORWARD ENGINEER
Trang 31IV CẬP NHẬT DỮ LIỆU 4 Sinh cơ sở dữ liệu
2 Tạo database mới giống database cũ.
3 Sinh procedure.
Trang 324 Tạo procedure.
Trang 33IV CẬP NHẬT DỮ LIỆU 4 Sinh cơ sở dữ liệu
5 Chạy procedure.
6 Kiểm tra procedure.
Trang 35+ 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.+ 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.