9 BÀI THỰC HÀNH TUẦN 2 : THỰC HÀNH CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU TRÊN CSDL MẪU ..... https://www.sqlservertutorial.net/sql-server-sample-VŨ THÀNH HƯNG 20173523 9 Bài 2: Tạo được một sơ s
Trang 1VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
TIỂU LUẬN CUỐI KỲ MÔN CƠ SỞ DỮ LIỆU
NỘI DUNG CÁC BÀI THỰC HÀNH
Giáo viên hướng dẫn: ThS NGUYỄN DANH TÚ Sinh viên thực hiện: VŨ THÀNH HƯNG
Mã số sinh viên: 20173523 Lớp: Hệ thống thông tin quản lý – K62
Hà Nội 2021
Trang 2VŨ THÀNH HƯNG 20173523 2
MỤC LỤC
LỜI NÓI ĐẦU 5
BÀI THỰC HÀNH TUẦN 1: THIẾT LẬP MÔI TRƯỜNG THỰC HÀNH 6
Bài 1: Thiết lập được hệ quản trị cơ sở dữ liệu trên máy tính cá nhân 6
Bài 2: Tạo được một sơ sở dữ liệu mẫu để làm việc 9
BÀI THỰC HÀNH TUẦN 2 : THỰC HÀNH CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU TRÊN CSDL MẪU 10
Bài 1: SELECT, ORDER BY, WHERE, SELECT DISTINCT 10
Bài 2: AND, OR, IN 10
Bài 3: BETWEEN,LIKE, LIMIT 11
Bài 4: IS NULL, Table & Column Aliases 12
Bài 5: Joins, Inner join, Left join, Right join, Self join, Cross join 12
Bài 6: GROUP BY, HAVING, ROLLUP 15
Bài 7: Subquery, Derived Tables, EXISTS 16
Bài 8: UNION, MINUS, INTERSECT 17
BÀI THỰC HÀNH TUẦN 3: TÌM HIỂU ĐƯỢC CẤU TRÚC CỦA MỘT CƠ SỞ DỮ LIỆU 19
Bài 1: Tên các bảng 21
Bài 2: Tên các cột của một bảng và tính chất các cột đó 21
BÀI THỰC HÀNH TUẦN 4: THỰC HÀNH XÂY DỰNG CẤU TRÚC CỦA MỘT CƠ SỞ DỮ LIỆU 22
Bài 1: Thiết lập bảng dữ liệu (PK, UK, DataType, Null, constraint) 22
Trang 3VŨ THÀNH HƯNG 20173523 3
Bài 2: Thiết lập quan hệ dữ liệu (Relationship) 22
Bài 3: Thiết lập khung nhìn (Views) 23
Bài 4: Thiết lập thủ tục và hàm (procedure & function) 24
BÀI THỰC HÀNH TUẦN 5: THỰC HÀNH CÁC CÂU LỆNH THAO TÁC DỮ LIỆU 25
Bài 1: Thực hiện các câu lệnh cập nhật (insert, update, delete dữ liệu) 25
Bài 2: Cập nhật do liệu từ 1 bảng excel qua sinh tự động SQL Script 27
Bài 3: Cập nhật dữ liệu từ một bảng khác 27
Bài 4: Cập nhật dữ liệu qua một procedure 28
BÀI THỰC HÀNH TUẦN 6: THỰC HÀNH CÁC CÂU LỆNH SỬ DỤNG HÀM TRONG TRUY VẤN 29
Bài 1: Aggregate Functions, Math Functions, Comparison Function 29
Bài 2: Control Flow Functions and Expressions 30
Bài 3: Window Functions 31
Bài 4: Date Functions, String Functions 32
Bài 5: Thực hành đánh chỉ mục dữ liệu 32
BÀI THỰC HÀNH TUẦN 7: THỰC HÀNH THIẾT KẾ CƠ SỞ DỮ LIỆU LƯU TRỮ ĐƠN HÀNG 33
Bài 1+2: Xây dựng lược đồ R-E, E-R 33
Bài 3: Thiết kế trên hệ quản trị cơ sở dữ liệu 34
Bài 4: In diagram cơ sở dữ liệu 35
THỰC HÀNH CÂU LỆNH SQL 35
Trang 4VŨ THÀNH HƯNG 20173523 4
Bài 1: Viết câu lệnh thêm dữ liệu và bảng 36
Bài 2: Viết câu lệnh truy vấn 36
Bài 3: Thay đổi cấu trúc CSDL 37
BÀI THỰC HÀNH TUẦN 8: 38
Bài 1 38
Bài 2 40
Bài 3 41
Bài 4 42
Bài 5 + 6 44
BÀI THỰC HÀNH TUẦN 9: THỰC HÀNH QUẢN TRỊ CSDL 46
Bài 1: Start, Stop, and Restart MySQL Server 46
Bài 2: Users, Roles, and Privileges 47
TỔNG KẾT 48
TÀI LIỆU THAM KHẢO 49
Trang 5VŨ THÀNH HƯNG 20173523 5
LỜI NÓI ĐẦU
Bài báo cáo dưới đây là tổng hợp các bài tập thực hành trong 9 tuần liên tiếp học môn Cơ sở dữ liệu của em Mặc dù chưa hoàn thành được xuất sắc nhưng em đã cố gắng tìm hiểu và làm gần như đầy đủ các bài được giao Em xin cảm ơn thầy Nguyễn Danh Tú vì những tiết học bổ ích và thú vị cũng như sự chỉ bảo của thầy trong suốt thời gian qua Nhờ đó mà em đã hiểu rõ hơn về bộ môn này và tích thêm nhiều kiến thức mới lạ Trong quá trình thực hành, cũng như là trong quá trình làm bài báo cáo khó tránh khỏi sai sót, rất mong thầy bỏ qua Đồng thời, do trình độ cũng như kinh nghiệm thực tiễn còn hạn chế nên bài thực hành của em còn đơn giản và không tránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp của thầy để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn bài báo cáo sau này
Lời cuối cùng, em xin kính chúc thầy nhiều sức khỏe, thành công và hạnh phúc Em xin chân thành cảm ơn thầy!
Sinh viên thực hiện
Hưng
Vũ Thành Hưng
Trang 6Input: Click vào đường link sau đây và chọn tải bản phù hợp với máy tính
Output: Sau khi hoàn các bước được hướng dẫn khi cài MySQL, ta có thể kiểm tra bằng một số lệnh thông qua command line
Trang 7VŨ THÀNH HƯNG 20173523 7
Trang 8VŨ THÀNH HƯNG 20173523 8
4 Cài đặt một database mẫu: database/
Trang 9https://www.sqlservertutorial.net/sql-server-sample-VŨ THÀNH HƯNG 20173523 9
Bài 2: Tạo được một sơ sở dữ liệu mẫu để làm việc
Trang 10VŨ THÀNH HƯNG 20173523 10
BÀI THỰC HÀNH TUẦN 2 : THỰC HÀNH CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU TRÊN CSDL MẪU
Bài 1: SELECT, ORDER BY, WHERE, SELECT DISTINCT
Input: Cơ sở dữ liệu mẫu classicmodels database
Output: customerName, contaclasName, contacfirsNam, phone, tình trạng (state) và tên thành phố (city) tương ứng với điều kiện state khác NULL từ bảng customers
Bài 2: AND, OR, IN
Input: cơ sở dữ liệu mẫu classicmodels database
Output: tên thành phố, số điện thoại và postalCode với điều kiện country là UK
Trang 11VŨ THÀNH HƯNG 20173523 11
Bài 3: BETWEEN,LIKE, LIMIT
Input: cơ sở dữ liệu mẫu classicmodels database
Output: truy vấn dữ liệu theo yêu cầu như trong ảnh chương trình chạy
Trang 12VŨ THÀNH HƯNG 20173523 12
Bài 4: IS NULL, Table & Column Aliases
Input: cơ sở dữ liệu mẫu classicmodels database
Output: truy vấn dữ liệu theo yêu cầu như trong ảnh chương trình chạy
Bài 5: Joins, Inner join, Left join, Right join, Self join, Cross join
Input: cơ sở dữ liệu mẫu classicmodels database
Output: truy vấn dữ liệu theo yêu cầu như trong ảnh chương trình chạy
LEFT JOIN: Giống như INNER JOIN ở phía trên nhưng thay bằng LEFT JOIN
RIGHT JOIN: Liên kết bên phải của bảng offices với bảng employees trên cột officeCode rồi lấy ra các thông tin officeCode, firstName và jobTitle
Trang 14VŨ THÀNH HƯNG 20173523 14
Trang 15VŨ THÀNH HƯNG 20173523 15
Bài 6: GROUP BY, HAVING, ROLLUP
Input: cơ sở dữ liệu mẫu classicmodels database
Output: truy vấn dữ liệu theo yêu cầu như trong ảnh chương trình chạy
1 Group by
2 Having
Trang 16VŨ THÀNH HƯNG 20173523 16
Bài 7: Subquery, Derived Tables, EXISTS
Input: cơ sở dữ liệu mẫu classicmodels database
Output: truy vấn dữ liệu theo yêu cầu như trong ảnh chương trình chạy
1 Derived Tables
2 Subquery
Trang 17VŨ THÀNH HƯNG 20173523 17
Bài 8: UNION, MINUS, INTERSECT
Input: cơ sở dữ liệu mẫu classicmodels database
• UNION: Lấy ra tập hợp các giá trị id của bảng customers và bảng orders
• MINUS: Lấy ra tập hợp các giá trị id của bảng customers sao cho itLimit nhỏ hơn 100000
cred-Output: truy vấn dữ liệu theo yêu cầu như trong ảnh chương trình chạy
1 Union
UNION: Dùng toán tử UNION cho 2 tập customerNumber từ bảng cus-tomer và orders
2 Minus
Trang 18VŨ THÀNH HƯNG 20173523 18
MINUS: Dùng left join trên customers vào chính nó dựa trên cột customer-Number
Trang 19VŨ THÀNH HƯNG 20173523 19
BÀI THỰC HÀNH TUẦN 3: TÌM HIỂU ĐƯỢC CẤU TRÚC CỦA MỘT CƠ SỞ DỮ LIỆU
XÂY DỰNG LƯỢC ĐỒ (DIAGRAM)
Bài: Sử dụng công cụ vẽ được lược đồ
Input: Vẽ, đọc và phân tích lược đồ
Output: Hiển thị lược đồ trên MySQL Workbench, phân tích lược đồ
trên file text
Trang 20VŨ THÀNH HƯNG 20173523 20
TRUY VẤN CÁC BẢNG HỆ THỐNG TRONG CSDL
Input: Truy vấn tên các bảng, các cột của một bảng và tính chất các cột đó
Output: Hiển thị các bảng hệ thống
Trang 21VŨ THÀNH HƯNG 20173523 21
Bài 1: Tên các bảng
Bài 2: Tên các cột của một bảng và tính chất các cột đó
Trang 22VŨ THÀNH HƯNG 20173523 22
BÀI THỰC HÀNH TUẦN 4: THỰC HÀNH XÂY DỰNG CẤU TRÚC CỦA MỘT CƠ SỞ DỮ LIỆU
Bài 1: Thiết lập bảng dữ liệu (PK, UK, DataType, Null, constraint)
Input: Thiết lập các ràng buộc (PK, UK, Datatype, ) và tạo ra các quan hệ giữa các bảng dữ liệu
Output: Một cơ sở dữ liệu đã được định nghĩa
Bài 2: Thiết lập quan hệ dữ liệu (Relationship)
Input: Thiết lập các ràng buộc (PK, UK, Datatype, ) và tạo ra các quan hệ giữa các bảng dữ liệu
Output: Một cơ sở dữ liệu đã được định nghĩa
Trang 23VŨ THÀNH HƯNG 20173523 23
Bài 3: Thiết lập khung nhìn (Views)
Input: Tạo view cho danh sách những địa chỉ email mà khách hàng có thể liên hệ Ootput: Bảng gồm id khách hàng, tên khách hàng và email của nhân viên phục vụ khách hàng
Trang 24VŨ THÀNH HƯNG 20173523 24
Bài 4: Thiết lập thủ tục và hàm (procedure & function)
Input: Lấy ra tất cả bản ghi của bảng KH
Output: Trả về bảng KH
Trang 25VŨ THÀNH HƯNG 20173523 25
BÀI THỰC HÀNH TUẦN 5: THỰC HÀNH CÁC CÂU LỆNH THAO TÁC DỮ LIỆU
Bài 1: Thực hiện các câu lệnh cập nhật (insert, update, delete dữ liệu)
Input: Dùng các bảng trong MySQL sinh ra các câu lệnh INSERT, UPDATE, DELETE
Output: Các bảng đã được thay đổi
1 Delete
Trang 26VŨ THÀNH HƯNG 20173523 26
2 Insert
3 Update
Trang 27VŨ THÀNH HƯNG 20173523 27
Bài 2: Cập nhật do liệu từ 1 bảng excel qua sinh tự động SQL Script
Bài 3: Cập nhật dữ liệu từ một bảng khác
Input: Xét bảng studentmanagement thêm class, jion student on classID
Output: Bảng studentmanagement đã được cập nhật
Trang 28VŨ THÀNH HƯNG 20173523 28
Bài 4: Cập nhật dữ liệu qua một procedure
Input: Dùng delimiter Tạo một procedure để update CPA, GPA float bắt đầu set CPA, where semester = semesterNow
Output: Bảng scores đã được update
Trang 29• Hàm AVG: Tính giá trung bình của từng dòng sản phẩm
• Hàm SUM: Tính tổng giá trị số lượng các sản phẩm đã được đặt hàng
• Hàm MAX: Tìm giá sản phẩm cao nhất của từng dòng sản phẩm
Output:
• Hàm AVG: Bảng gồm 3 cột productLine, amount và average_Price
• Hàm SUM: Bảng gồm 3 cột productCode, productName và total
• Hàm MAX: Bảng gồm 2 cột productLine và MAX
Trang 30VŨ THÀNH HƯNG 20173523 30
Bài 2: Control Flow Functions and Expressions
Input: Bảng product_id trong database classicmodels
Output: Các thông tin thỏa mãn yêu cầu
Trang 31VŨ THÀNH HƯNG 20173523 31
Bài 3: Window Functions
Input: Bảng product_id trong database classicmodels
Output: Các thông tin thỏa mãn yêu cầu
Trang 32VŨ THÀNH HƯNG 20173523 32
Bài 4: Date Functions, String Functions
Input: Bảng customer_id trong database classicmodels
Output: Các thông tin thỏa mãn yêu cầu
Bài 5: Thực hành đánh chỉ mục dữ liệu
Trang 33VŨ THÀNH HƯNG 20173523 33
BÀI THỰC HÀNH TUẦN 7: THỰC HÀNH THIẾT KẾ CƠ SỞ
DỮ LIỆU LƯU TRỮ ĐƠN HÀNG
Bài 1+2: Xây dựng lược đồ R-E, E-R
Input: Xây dựng lược đồ E-R, R-E
Output: Tạo được CSDL lưu trữ đơn hàng
Trang 34VŨ THÀNH HƯNG 20173523 34
Bài 3: Thiết kế trên hệ quản trị cơ sở dữ liệu
Input: Database classicmodels
Output: Các dữ liệu trong các bảng
Trang 35VŨ THÀNH HƯNG 20173523 35
Bài 4: In diagram cơ sở dữ liệu
Input: Từ E-R, R-E
Output: Thu được diagram cơ sở dữ liệu
THỰC HÀNH CÂU LỆNH SQL
Trang 36VŨ THÀNH HƯNG 20173523 36
Bài 1: Viết câu lệnh thêm dữ liệu và bảng
Bài 2: Viết câu lệnh truy vấn
Trang 37VŨ THÀNH HƯNG 20173523 37
Bài 3: Thay đổi cấu trúc CSDL
Trang 42VŨ THÀNH HƯNG 20173523 42
Bài 4
Input: U = {H,I,K,L,M,N} và F = {I → LM, HI → K, K → N, KN → I}
Output: a, Một khóa tối thiểu của R
b, Kết luận tính mất mát thông tin của R sau khi tách
c, Chuẩn hóa về dạng 3NF
Trang 43VŨ THÀNH HƯNG 20173523 43
Trang 44VŨ THÀNH HƯNG 20173523 44
Bài 5 + 6
Input: U = {A,B,C,D,E,F,G,H} và F = {A → C, AB → G, B → DE, G → H, GH
→ A}
Output: a, Một khóa tối thiểu của R
b, Kết luận tính mất mát thông tin của R sau khi tách
c, Chuẩn hóa về dạng 3NF
Trang 45VŨ THÀNH HƯNG 20173523 45
Trang 46VŨ THÀNH HƯNG 20173523 46
BÀI THỰC HÀNH TUẦN 9: THỰC HÀNH QUẢN TRỊ CSDL
Bài 1: Start, Stop, and Restart MySQL Server
1 Start
2 Stop
Trang 47VŨ THÀNH HƯNG 20173523 47
Bài 2: Users, Roles, and Privileges
1 Users
2 Privileges
Trang 48VŨ THÀNH HƯNG 20173523 48
TỔNG KẾT
Những điều mà đã làm được và học được sau khi thực hành bài tập các tuần:
- Thiết lập MySQL và SQL Server trên máy tính (Lap top)
- Thiết lập được môi trường làm việc với cơ sở dữ liệu từ máy chủ đơn vị
- Biết cách truy vấn được dữ liệu theo yêu cầu
- Hiểu và xây dựng được cấu trúc cơ sở dữ liệu (xây dựng R-E, E-R) và tạo cơ
sở dữ liệu lưu trữ
- Chuyển đổi được dữ liệu từ các cơ sở dữ liệu theo cách đơn giản (Export, import; copy-paste; procedure, backup restore)
- Biết sử dụng các hàm có sẵn trong hệ quản trị cơ sở dữ liệu
- Tối ưu thời gian thực hiện truy vấn qua Index
- Thiết kế được cơ sở dữ liệu với mục đích cụ thể ở mức độ đơn giản
- Tạo các cấu trúc và đối tượng trên cơ sở dữ liệu
Những điều mà em chưa làm được:
- Chuyển đổi được dữ liệu từ các cơ sở dữ liệu qua sinh tự động SQL Script và qua attaPH detach
- Thiết lập thực hiện công việc tự động (Job)
- Bảo mật & phân quyền dữ liệu
- Chưa hiểu và trình bày được tối ưu qua Partition, chưa hiểu Transaction
Trang 49VŨ THÀNH HƯNG 20173523 49
TÀI LIỆU THAM KHẢO
• Slide bài giảng của thầy Nguyễn Danh Tú
• Ngoài ra còn một số bài viết liên quan đến cơ sở dữ liệu trên internet