Sự phát triển của xã hội kéo theo một lượnglớn dữ liệu được tạo ra yêu cầu các đơn vị quản lý chúng phải có cách thức quản trị mộtcách hợp lý.Cơ sở dữ liệu Database là một tập hợp các dữ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
——————– o0o ———————
TIỂU LUẬN GIỮA KỲ CƠ SỞ DỮ LIỆU
Giáo viên hướng dẫn: TS Nguyễn Danh Tú
Sinh viên thực hiện : Trần Đại Dương - 20195863
Lê Thị Kiều Trang - 20195930 Nguyễn Văn Thanh Tùng - 20195940
An Việt Trung - 20195936 Nguyễn Văn Vũ - 20195942 Lớp : Toán tin 02 - K64
Hà Nội - 2021
Trang 21 Thông tin về cơ sở dữ liệu 5
1.1 Inventory 5
1.2 Diagram 6
1.2.1 E-R Diagram 6
1.2.2 R-E Diagram 6
1.3 Thông tin về các bản ghi 7
1.4 Đánh giá mức độ chuẩn hóa của cơ sở dữ liệu 7
1.4.1 Chuẩn hóa loại 1 7
1.4.2 Chuẩn hóa loại 2 7
1.4.3 Chuẩn hóa loại 3 8
1.4.4 Chuẩn hóa BCNF 8
2 Truy vấn dữ liệu 9 2.1 Các câu lệnh truy vấn 9
2.2 Tối ưu thời gian truy vấn 14
2.3 Đánh giá thời gian chạy trước và sau khi tối ưu 15
3 Cập nhật dữ liệu 16 3.1 Thao tác từ nghiệp vụ thực tế 16
3.2 Các procedure (insert, update, delete) 17
3.3 Đổ dữ liệu từ cơ sở dữ liệu cũ sang cơ sở dữ liệu mới 19
4 Tổng kết 20 4.1 TỔNG KẾT NHỮNG ĐIỀU LÀM ĐƯỢC 20
4.2 TỔNG KẾT NHỮNG ĐIỀU HỌC ĐƯỢC 20
Trang 3Lời nói đầu
Khoa học đang không ngừng phát triển và đang dần thay thế con người trong các công việc đòi hỏi tính khoa học và chính xác cao Sự phát triển của xã hội kéo theo một lượng lớn dữ liệu được tạo ra yêu cầu các đơn vị quản lý chúng phải có cách thức quản trị một cách hợp lý
Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có tổ chức, thường được lưu trữ
và truy cập điện tử từ hệ thống máy tính Khi cơ sở dữ liệu phức tạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết kế và mô hình hóa chính thức
Hệ quản lý cơ sở dữ liệu (Database Management System - DBMS) là phần mềm tương tác với người dùng cuối, ứng dụng và chính cơ sở dữ liệu để thu thập và phân tích dữ liệu Phần mềm DBMS bao gồm các tiện ích cốt lõi được cung cấp để quản trị cơ sở dữ liệu Tổng cộng của cơ sở dữ liệu, DBMS và các ứng dụng liên quan có thể được gọi là "hệ thống cơ sở dữ liệu" Thông thường thuật ngữ "cơ sở dữ liệu" cũng được sử dụng để nói đến bất kỳ DBMS, hệ thống cơ sở dữ liệu hoặc ứng dụng nào được liên kết với cơ sở dữ liệu
Bài báo cáo dưới đây là tổng hợp tất cả những gì nhóm chúng em đã tìm hiều được
về chủ đề inventory Trong quá trình hoàn thiện báo cáo không tránh khỏi những sai sót mong quý bạn đọc góp ý qua hòm thư: duong.td195863@sis.hust.edu.vn Xin chân thành cảm ơn!
Trang 4PHÂN CÔNG CÔNG VIỆC CỤ THỂ
Trang 5Chương 1
Thông tin về cơ sở dữ liệu
1.1 Inventory
• là sự quản lí tài nguyên thuộc về một tổ chức, doanh nghiệp, hay cá nhân từ đó để
họ đưa ra các quyết định đối với những tài nguyên đó
• Hệ thống inventory thường được sử dụng trong lĩnh vực bán lẻ hoặc sản suất hay ngay cả ở trong lĩnh vực y tế
Nhóm có tham khảo cách thiết kế cơ sở dữ liệu từ nguồnhttps://mysql.tutorials24x7 com/blog/guide-to-design-database-for-inventory-management-system-in-mysql? fbclid=IwAR1WztTm6ZyRzr0C0c04TW0qby7deaWrEamG_c0QeaC0VIu3rhTPNNOX64ovà xử dụng trang https://filldb.info để fill dữ liệu
Trang 61.2 Diagram
1.2.1 E-R Diagram
1.2.2 R-E Diagram
R-E Diagram biểu thị mối quan hệ giữa các thực thể và thông tin chi tiết của các thực thể
Trang 7Nhóm 2 Cơ sở dữ liệu
1.3 Thông tin về các bản ghi
Dữ liệu gồm 11 bảng tương ứng với 11 thực thể với thông tin tổng quan của từng thực thể được ghi ở bảng dưới
Độ lớn tổng cộng của dữ liệu là: 283.8Mb
1.4 Đánh giá mức độ chuẩn hóa của cơ sở dữ liệu
1.4.1 Chuẩn hóa loại 1
Dễ thấy các bảng đều đật chuẩn loại 1 vì các bảng đều có thuộc tính đơn trị và chỉ nhận giá trị nguyên tố
Ví dụ bảng user đạt chuẩn loại 1
1.4.2 Chuẩn hóa loại 2
Các bảng đều đạt chuẩn 2, không phụ thuộc hàm bộ phận vào khóa chính
Trang 8Quan sát R-E Diagram, có thể thấy không có bảng nào có thể lấy thuộc tính của một thực thể thông qua hai khóa chính khác nhau => các bảng đều đạt chuẩn loại 2
1.4.3 Chuẩn hóa loại 3
Các bảng đều đạt chuẩn 3, không phụ thuộc hàm bắc cầu vào khóa chính
1.4.4 Chuẩn hóa BCNF
Bảng user không đạt chuẩn BCNF
do có thể truy xuất đến userId thông qua thuộc tính không khóa là mobile hoặc email hoặc passwordHash
Trang 9Chương 2
Truy vấn dữ liệu
2.1 Các câu lệnh truy vấn
1 Truy vấn thông tin của các khách hàng đến từ Pháp:
2 Truy vấn sản phẩm có tiêu đề là Nyloxin với id thương hiệu lớn hơn 5000:
Trang 103 Truy vấn họ tên, mã người dùng của khách hàng đến từ pháp và có mã khóa gc6Im1 từ 2 bảng address và product_meta:
4 Truy vấn các tài khoảng có id từ 10000 đến 200000 và tính số ngày từ khi tạo tài khoản đến bây giờ:
Trang 11Nhóm 2 Cơ sở dữ liệu
5 Truy vấn số sản phẩm khách hàng mua có mã giảm trên 50 từ 2 bảng item và address:
6 Truy vấn id sản phẩm, id cha mẹ của các sản phẩm có tiêu đề là Oxygen
và slug là Kazio từ 2 bảng category và product_category:
Trang 127 Truy vấn tổng số tiền mà khách hàng có tên Lilly phải trả cho số sản phẩm đã mua từ 2 bảng user và item:
8 Truy vấn những đơn hàng có mã khuyến mại Greenlam và thông tin khách hàng từ 2 bảng orders và address:
Trang 13Nhóm 2 Cơ sở dữ liệu
9 Truy vấn tổng số tiền mà khách hàng phải trả sau khi đã khấu trừ thuế
từ 2 bảng orders và item:
10 Truy vấn các sản phẩm bị lỗi lớn hơn 1000 và có giá bán từ 500000 từ
2 bảng item và transaction:
Trang 142.2 Tối ưu thời gian truy vấn
Dùng index một cách thích hợp sẽ giúp việc thực thi truy vấn nhanh hơn nhiều lần Index giống như một mục lục, khi muốn tìm đến một phần hay một chương trong cuốn sách thì chỉ cần nhìn mục lục và số trang rồi lật đến trang đó là xong, thay vì mất công xem tìm từng trang một trong cuốn sách
Trang 15Nhóm 2 Cơ sở dữ liệu
2.3 Đánh giá thời gian chạy trước và sau khi tối ưu
Kết quả thời gian thực thi cho thấy, rõ ràng việc sử dụng index để tối ưu thời gian truy vấn giúp kết quả được lấy ra nhanh hơn
Trang 16Cập nhật dữ liệu
3.1 Thao tác từ nghiệp vụ thực tế
1 Người dùng chuyển nhà và đổi số điện thoại:
2 Người dùng đổi ý muốn mặt hàng khác:
Trang 17Nhóm 2 Cơ sở dữ liệu
3 Một dòng sản phẩm mới được ra mắt:
3.2 Các procedure (insert, update, delete)
Trên thực tế, việc thêm mới, sửa đổi và xóa dữ liệu là các tác vụ quan trọng và xảy
ra thường xuyên Các tác vụ này sẽ lặp đi lặp lại ngày qua ngày, và việc viết thủ tục để
tự động thực hiện là cách làm hay để tự động hóa các tác vụ này
Trang 18Các cấu trúc để thêm mới, sửa đổi và xóa dữ liệu được trình bày ở dưới đây
1 Cấu trúc của Procedure Insert:
2 Cấu trúc của Procedure Delete:
Trang 19Nhóm 2 Cơ sở dữ liệu
3.3 Đổ dữ liệu từ cơ sở dữ liệu cũ sang cơ sở dữ liệu
mới
Trang 20Tổng kết
4.1 TỔNG KẾT NHỮNG ĐIỀU LÀM ĐƯỢC
• Nhóm đã vận dụng các kiến thức đã học được trong học phần Cơ sở dữ liệu để thực hành trên hệ quản trị CSDL MySQL
• Nắm được các khái niệm và thực hiện được các thao tác cơ bản với CSDL như thiết
kế, chuẩn hoá CSDL
• Thực hiện tối ưu các câu lệnh truy vấn
• Thực hiện các lệnh truy vấn dữ liệu theo nghiệp vụ thực tế
• Thực hiện các thao tác quản lý data (thêm, sửa, xoá, ) và tạo tool để sinh ra các procedure này
4.2 TỔNG KẾT NHỮNG ĐIỀU HỌC ĐƯỢC
• Nhóm đã được biết thêm về các ứng dụng của CSDL trong thực tế
• Hiểu sâu hơn các bài tập thực hành hàng tuần khi ứng dụng trên 1 csdl thực tế
• Học được các kĩ thuật mới mẻ trong quá trình làm và khi xem các nhóm khác trình bày như: làm tool sinh procedure; import data từ excel, từ gg sheet; cách tối ưu hiệu quả;
• Học được kĩ năng phân chia công việc và làm việc nhóm