MindMap Gallery Mind map for Module 3
This exhaustive mind map covers the key elements of Module 3, such as the design and manufacturing of fuel facilities, common functions, and SQL databases. Each section is further refined, providing a clear structure for understanding and mastering the module.
Edited at 2022-03-05 10:05:00Module 3
SQL
Định nghĩa Database
Database là nơi lưu giữ dữ liệu của 1 ứng dụng
Vẫn được xem như một ngôn ngữ lập trình
Nhược điểm lưu trữ dữ liệu của file
Xóa và sửa --> Đọc toàn bộ dữ liệu --> Sửa hoặc xóa -->viết lại toàn bộ --> nếu gặp file dữ liệu lớn --> mất thời gian và tài nguyên
Muốn truy xuất hoặc thay đổi dữ liệu thì sử dụng SQL hoặc NoSQL
MySQL: hệ quản trị cơ sở dữ liệu(sử dụng SQL)
Các nhóm câu lệnh
DDL(Data Definition Language): Định nghĩa dữ liệu
Create
Drop
Alter
DML(Data Manipulation Language): Thao tác dữ liệu
Select
Update
Insert
Delete
DCL(Data Control Language): Phân quyền
Grant
Revoke
TCL(Transaction Control Language): Giao dịch
Commit
Rollback
Thiết kế và tạo cơ sở dữ liệu
ERD
Lý do thiết kế ERD
Vì requirement khách hàng đưa ra chỉ toàn bộ làcác dòng chữ --> Vậy làm sao để chuyển các thôngtin đó thành Table --> Thiết kế ERD
Các bước thiết kế ERD
Bước 1: Xác định các thực thể
Bước 2: Xác định thuộc tính của thực thể
Bước 3: Xác định các mối quan hệ 1-1, 1-n, n-n
Ký hiệu trong ERD
Thực thể: Hình chữ nhật
Thuộc tính: Elip
Thuộc tính khóa: Elip có gạch dưỡi
Thuộc tính đa trị: Elip lồng nhau
Quan hệ: Hình thoi(Nên sử dụng động từ)
Các bước chuyển đổiERD --> Table
Bước 1: Biến đổi thực thể thành table
Thuộc tính khóa --> Khóa chính
Thuộc tính thường --> Thuộc tính của table
Bước 2: Biến đổi các thuộc tính đa trị
Tách thuộc tính đa trị thành 1 table riêng vàxác định mối quan hệ giữa 2 table là 1-n hay n-n
Bước 3: Biến đổi mối quan hệ 1-1
Đặt khóa ngoại bên tùy chọn sang bắt buộc
Bước 4: Biến đổi mối quan hệ 1-n
Đặt khóa chính ở phía 1 --> thành khóa ngoại bên n
Bước 5: Biến đổi mối quan hệ n-n
Sinh ra 1 table mới. Khóa chính của bảng mới là tậphợp 2 khóa chính của 2 table tạo nên mối quan hệ (khóa phức hợp)
Thao tác với cơ sở dữ liệu
Các bước chuẩn hóa dữ liệu
1NF --> 2NF --> 3NF --> ...
1NF
Loại bỏ các thuộc tính đa trị
Loại bỏ các thuộc tính có giá trị được tính toán từ các thuộc tính khác
2NF
Đạt chuẩn 1NF
Loại bỏ các phụ thuộc bộ phận, tức là loại bỏ các thuộc tính không khóa phụ thuộc vào 1 bộ phận nào đó của khóa primary key
3NF
Đạt chuẩn 2NF
Loại bỏ các phụ thuộc bắt cầu
Thường thì cần chuẩn hóa đến 3NF là đạt chuẩn rồi
Các loại JOIN
Có 2 loại
Inner join
Outer join: Left join, Right join, Full join
Left join cũng như right join đều ưu tiên lấy ra thông tin của các bảng nằm bên trài và bên phải. Chỉ khác nhau ở vị trí
Trong mySQL không hỗ trợ full join --> thay vào đó sử dụng UNION kết hợp left và right để có thể sử dụng được full join
WHERE
Thứ tự thực hiện: From --> Where --> Select
Group by,Having
Lưu ý
Having chậm hơn Where
Having có thể thay thế hoàn toàn where, nhưng ngược lại không được
Group by: Dùng để gộp các kết quả theo 1 hay nhiều trường
Having: Dùng để kiểm tra điều kiện của hàm gộp
Order by
Dùng để sắp xếp
Tăng dần (ASC)
Giảm dần (DESC)
SQL view, index,stored procedure
Index
Tương tự như mục lục trong danh sách
Dựa vào mục lục ta sẽ tìm kiếm nhanh hơn
4 loại index
Single-column index (1 trường)
Unique index (Những trường cógiá trị không trùng lặp)
Composite index (2 trường trở lên)
Implicit index (primary key, foreign key)
Lưu ý
Chỉ nên sử dụng index khi mà column thường xuyên tìm kiếm với bộ dữ liệu lớn
View
View là khung nhìn được tạo từ 1 table (bảng ảo)
Mục đích
Với những câu query phức tạp thì chỉ cầnviết thành View để lấy hay thao tác
Bảo mật và che dấu dữ liệu từ người dùng
Stored procedure
SP tương tự với hàm void ở Java: Là tập hợpcác câu query để thực hiện 1 nghiệp vụ nào đó
Sử dụng
Dùng CALL để gọi SP
Bao gồm 3 loạitham số
IN
Giống với truyền tham trị
OUT
Lấy được kết quả trả về
INOUT
Giống với truyền tham chiếu
Trigger
Khái niệm
Cũng là tập hợp các câu lệnh query để thực hiện 1 nhiệm vụ nào đó, được gắn liền trên 1 table nhất định
Sử dụng
Sẽ tự động chạy khi có 1 sự kiện Insert,Delete, Update xảy ra
Alter
Chạy sau sự kiện
Before
Chạy trước sự kiện
Function
Khái niệm
Cũng là 1 tập hợp các câu lệnh query được thực hiện 1 nhiệmvụ nào đó và luôn trả về giá trị. Chúng ta có thể tự tạo function
Sử dụng
Được sử dụng chung với câu lệnh query
So sánh Functionvà SP
SP có thể trả về 0, 1 hoặc nhiều nếu sử dụng OUT.Trong khi Function thì trả về 1 kết quả
SP có tham số đầu vào (IN) và tham số đầu ra (OUT).Trong khi Function chỉ có 1 tham số đầu vào
SP có thể gọi Function, ngược lại thì không
Lưu ý
SP có thể sử dụng Where, having, select; hàm thì không
SP có thể sử dụng Transaction còn hàm thì ngược lại
Các hàm thông dụng
Hàm gộp
Là các hàm được sử dụng chung với Group by
COUNT: Hàm đếm
MIN: Hàm láy kết quả nhỏ nhất
MAX: Hàm lấy kết quả lớn nhất
SUM: Hàm tính tổng
AVG: Hàm tính trung bình
Lưu ý: Những điều kiện nào nên đặt ở Where thì đặt ở Where và không đặt ở Having. Nếu không --> giảm hiệu suất của câu lệnh truy vấn
UNION và UNION ALL
Điều kiện để dùng Union: 2 câu truy vấn phải cùng số lượng column +cùng kiểu dữ liệu của từng column tương ứng
Union thì gộp các record trùng lặp, còn Union all thì không
Lưu ý: Với những phiên bản MYSQL mới thì không bắt buộcphải cùng kiểu dữ liệu
Ý nghĩa của LIMIT
Giới hạn số lượng record được lấy ra
Truy vấn con
Tức là 1 câu lệnh truy vấn được lồng trong một câu lệnh truy vấn khác
Exists, In
IN: Sử dụng để kiểm tra cho 1 column nhất địnhtrong record
Exists: Sử dụng để kiểm tra cho toàn bộ dữ liệutrong 1 record (chỉ cần trả về ít nhất 1 record thì trảvề true, ngược lại là false
Một số hàm thông dụng
Length
Char_length
Month
Year
Substring