ĐỀ CƯƠNG CƠ SỞ DỮ LIỆUMô tả tài liều: Đây là tài liệu tổng lý thuyết cơ sở dữ liệu theo giáo trình môn Cơ sở dữ liệu của trường Đại học Mở thành phố Hồ Chí Minh. Lý thuyết đã được tóm gọn trọng tâm, có thể giúp bạn đạt được 3 chấm trở lên.
HQ Chương 1: Cơ sở liệu: Là tập hợp liệu Có tính chia sẻ Chứa liệu quan hệ logic Chứa phần tử miêu tả (mục lục liệu liệu) Được thiết kế có nhu cầu Chương 2: Mơ hình thực thể mối kết hợp (ER) (ch3) Mơ hình quan hệ (RDM) (ch4) Chương 3: Mơ hình thực thể mối kết hợp Ký hiệu Ý nghĩa Tập thực thể Tập thực thể yếu Kiểu liên kết Kiểu liên kết hỗ trợ Thuộc tính Thuộc tính khóa Khơng phép trùng Thuộc tính đa trị Có thể có nhiều trị cho thể thực thể Thuộc tính tổ hợp Thuộc tính dẫn xuất Trị tính từ thuộc tính khác //Trong thực thể khơng có khóa chính: tạo khóa chính, thực thể yếu phụ thuộc thực thể khác, nhận khóa thực thể HQ º | N < Chương 4: Mơ hình liệu quan hệ Mối liên kết 1.n: thuộc tính khóa bên làm khóa ngoại bên nhiều Mối liên kết 1.1: thuộc tính khóa bên làm khóa ngoại bên khơng có giá trị tối thiểu/ tối đa (tối thiểu đưa qua tối thiểu 0) Mối liên kết n.n: tạo thành quan hệ có khóa gồm thuộc tính khóa quan hệ tạo thành Thuộc tính mối kết hợp (nếu có) trở thành thuộc tính quan hệ Thuộc tính đa trị: tạo thành quan hệ có khóa gồm thuộc tính đa trị thuộc tính khóa thực thể #: khóa ngoại Chương 5: Đại số quan hệ phép toán quan hệ ĐẠI SỐ QUAN HỆ tốn tử bản: Chọn, Chiếu, Tích đề các, Hội, Trừ Toán tử khác: Kết, Giao, Chia So sánh bảng: Hội, Giao, Trừ: tương thích Tích đề các: khác / giống Kết, Chia: có thuộc tính chung Phép tốn so sánh: ==; ! = (ℎ𝑜ặ𝑐 ); = Phép tốn luận lý: 𝑛𝑜𝑡 (¬); 𝑎𝑛𝑑 ( ); 𝑜𝑟 ( ) Phép chọn: 𝜎đ𝑖ề𝑢 𝑘𝑖ệ𝑛 (𝑅) dòng Phép chiếu: 𝜋𝑐𝑜𝑙1,…,𝑐𝑜𝑙𝑛 (𝑅) cột Phép hội: 𝑅 ∪ 𝑆 Phép giao: 𝑅 ∩ 𝑆 Phép trừ: 𝑅 − 𝑆 Phép tích đề-các: 𝑅 X 𝑆 khơng trả lời kết hợp phép chọn Phép kết (Phép tích đề-các phép chọn): dùng phép tích đề-các phép chọn HQ Phép kết theta: 𝑅 ⨝ 𝑆 Phép kết tương đương: Phép kết tự nhiên: Phép kết ngồi: Phép nửa kết: Phép chia: 𝑅 ÷ 𝑆 PHÉP TOÁN QUAN HỆ Chương 6: Thao tác liệu với ngôn ngữ sql Gtri số phải nằm nháy đơn {}: bắt buộc có; []: ko bắt buộc CÂU LỆNH SELECT SELECT {*|tên cột muốn có [AS tên mới]} FROM tên bảng [bí danh] [WHERE đk] //các cột muốn có kq //các bảng dùng //điều kiện lọc hàng dl [GROUP BY ds cột] //tạo nhóm hàng có gtri giống 1/nhiều cột [HAVING đk cho nhóm] //đk lọc để lấy số nhóm [ORDER BY ds cột] //sắp thứ tự hàng kq (ASC: tăng; DESC: giảm) PHÉP TOÁN TRÊN MỘT QUAN HỆ Phép chọn: SELECT * FROM R WHERE C Phép chiếu: SELECT L FROM R (quan hệ R, điều kiện C) (thuộc tính chiếu L) DISTINCT: loại bỏ dl trùng lặp //SELECT DISTINCT … TênCột BETWEEN a AND b TênCột >=a AND TênCột SOME/ANY/ALL (SELECT TênCột1 FROM… WHERE…) EXISTS: TRUE truy vấn có tồn hàng; FALSE truy vấn có kq rỗng NOT EXISTS: gtri ngược với EXISTS SELECT … FROM … WHERE EXISTS (SELECT * FROM… WHERE…) PHÉP TOÁN TẬP HỢP Khả hợp: số thuộc tính miền gtri Các dl trùng bị loại bỏ khỏi kết phép toán tập hợp Phép giao (INTERSECT): thuộc đồng thời //đc thực trc hết Phép hội (UNION): tất //UNION ALL trả lại toàn kể kq trùng Phép trừ (EXCEPT): Chỉ thuộc quan hệ này, ko thuộc quan hệ (SELECT TênCột FROM… WHERE…) UNION/ INTERSECT/ EXCEPT (SELECT TênCột FROM… WHERE…) HQ TRUY VẤN NHIỀU BẢNG Dữ liệu lấy từ nhiều bảng kết bảng, liệt kê bảng tham gia phép kết vào FROM Bí danh đứng sau tên bảng SELECT… FROM bang1 a, bang2 b WHERE a TênCột1 = b TênCột1 Câu lệnh sql thực phép tích đề SELECT {*|columnList} FROM table1 CROSS JOIN table2 https://quantrimang.com/join-trong-sql-server-147627 JOIN: trả hàng có bảng LEFT (RIGHT) JOIN: trả hàng nằm bảng bên trái (phải) lấy bảng lại hàng đáp ứng đk FULL JOIN: trả toàn hàng bảng trái phải SELECT cột FROM bảng1 LEFT/ RIGHT/ FULL [OUTER] JOIN bảng2 ON bảng1 Cột = bảng2 Cột INSERT INTO TênBảng [(cột i)] VALUES (gtri i): thêm hàng vào bảng (thêm đủ dl cho cột bắt buộc nhập dl) INSERT INTO TênBảngA [(cột i)] SELECT (cột i) FROM TênBảngB [WHERE đk]: thêm liệu kết lệnh SELECT vào bảng có sẵn (thêm nhiều dịng vào bảng có) SELECT INTO…: thêm dl từ câu truy vấn vào bảng UPDATE TênBảng SET cột i= gtri i [WHERE đk]: chỉnh sửa DELETE FROM TênBảng [WHERE đk]: xóa liệu bảng CASE…END […]: thay đổi mệnh đề xuất SELECT CASE biểu thức so sánh với gtri biểu thức i SELECT Country, CASE Country WHEN ‘USA’ THEN N ‘MỸ’ WHEN biểu thức i THEN kết i ELSE Country //còn lại để nguyên ELSE kết khác END AS N ’Quốc gia’ END FROM EMPLOYEES HQ Chương 7: Định nghĩa liệu với ngôn ngữ sql https://giasutinhoc.vn/database/co-so-du-lieu/cai-dat-co-so-du-lieu-bai-4-2/ //các kiểu dl Các loại CONSTRAINT Loại ràng buộc NOT NULL Position VARCHAR(10) NOT NULL DEFAULT DEFAULT (1) FOR SoLuong NgayVay date DEFAULT GETDATE() Ý nghĩa Sử dụng để đảm bảo liệu cột không nhận giá trị NULL UNIQUE //ghi PRIMARY KEY Sử dụng để đảm bảo liệu cột nhất, không trùng lặp giá trị cột PRIMARY KEY (Khóa chính) SoHoaDon int PRIMARY KEY PRIMARY KEY (SoHoaDon, MaHang) Dùng để thiết lập khóa bảng, xác định giá trị tập cột làm khóa phải nhất, khơng trùng lặp Việc khai báo ràng buộc khóa yêu cầu cột phải NOT NULL FOREIGN KEY (Khóa ngoại) CONSTRAINT fk_ten FOREIGN KEY (cộtCon i) REFERENCES bảngMẹ (cộtMẹ i) Dùng để thiết lập khóa ngoại bảng, tham chiếu đến bảng khác thông qua giá trị cột liên kết Giá trị cột liên kết phải bảng CHECK CHECK (sex IN (‘M’, ‘F’)) Bảo đảm tất giá trị cột thỏa mãn điều kiện Đây hình thức sử dụng phổ biến để kiểm tra tính hợp lệ liệu (validate data) CREATE TABLE table name ( ); column i dataType, … Gán giá trị mặc định trường hợp liệu cột không nhập vào hay không xác định (1 bảng: nhiều; cột: 1) //tạo bảng HQ ALTER TABLE tênBảng ADD tênCột địnhNghĩaCột; //thêm cột Hoặc ALTER tênCột DROP/SET DEFAULT (gtri); //xóa/đặt gtri cho cột Hoặc ALTER COLUMN tênCột kiểuCột; Hoặc DROP COLUMN tênCột; Hoặc ADD CONSTRAINT tênRàngBuộc //chỉnh sửa cột //xóa cột DEFAULT (gtri) FOR tênCột; //thêm ràng buộc Hoặc DROP CONSTRAINT tênRàngBuộc; //xóa ràng buộc DROP TABLE TênBảng: xóa liệu bảng DECLARE @tênGánChoBiến dataType [=gtri mặc định gán cho biến] VIEW CREATE VIEW tênView AS //tạo view SELECT cột 1, cột 2, … FROM tênBảng [WHERE đk;] DROP VIEW tênView //xóa view WITH CHECK OPTION; //đảm bảo tất UPDATE & INSERT thỏa đk view //////còn nhiều thứ thấy ko thi GK nên bỏ :) Chương 8: Chuẩn hóa sở liệu Phụ thuộc hàm: A & B thuộc tính quan hệ R,B phụ thuộc hàm A (A xác định B) ký hiệu: A B Bao đóng tập X (𝑋 + ): tập chứa phụ thuộc hàm sinh từ phụ thuộc hàm X (tìm bao đóng tìm khóa qh R; bao đóng xđ đc hết kq R khóa chính) TIỀN ĐỀ AMSTRONG: B tập A: AB AB: A,CB,C AB, BC: AC Hợp: XY, XZ: XYZ Chiếu: XYZ; XY Bắc cầu giả: XY, YZW: XZW HQ Bao đóng tập phụ thuộc hàm F (𝐹 + ): tập phụ thuộc hàm nhỏ chứa F, ko thể áp dụng Amstrong Tập thuộc tính nguồn (TN): thuộc tính ko có vế thuộc tính có vế trái Tập thuộc tính đích (TD): thuộc tính có vế trái Tập thuộc tính trung gian (TG): thuộc tính có vế Thuật tốn: B1: tìm TN, TG B2: TN= rỗngK= TN, kết thúc Ngược lại B3 B3: tìm tập Xi TG B4: tìm siêu khóa Si: TN Xi B5: tìm khóa cách loại bỏ siêu khóa ko tối thiểu (Si Sj loại Sj) Ex: R (A,B,C,D,E,F) DB; AC; ADE; CF TN= {D, A}; TG= {C}={, C} //dòng bao gồm bước 1,2,3 //B4: 𝐷𝐴+ = {D, A, B, C, E, F} //khi tìm khóa cho TN trc 𝐷𝐴𝐶 + = {D, A, B, C, E, F} //B5: DA DAC DA khóa R Dạng chưa chuẩn hóa (UNF): bảng chứa 1/ nhiều nhóm lặp Dạng chuẩn (1NF): ô dl1 gtri đơn trị Dạng chuẩn (2NF): 1NF, thuộc tính ko phải khóa phải phụ thuộc hàm đầy đủ vào khóa (vế trái SK, vế trái ko nằm khóa) Dạng chuẩn (3NF): 2NF, ko có phụ thuộc hàm bắc cầu vào khóa (vế trái SK, vế phải có thuộc tính nằm khóa) Dạng chuẩn BC (BCNF): vế trái siêu khóa ... (%a: kết thúc với “a”; a%%: bắt đầu “a” có kí tự; a%o: bắt đầu “a” kết thúc “o”) _ (gạch dưới): đại diện ký tự (_r%: có “r” vị trí thứ 2) HQ NULL: IS NULL / IS NOT NULL CÁC HÀM THỐNG KÊ TRONG... FROM… WHERE…) UNION/ INTERSECT/ EXCEPT (SELECT TênCột FROM… WHERE…) HQ TRUY VẤN NHIỀU BẢNG Dữ liệu lấy từ nhiều bảng kết bảng, liệt kê bảng tham gia phép kết vào FROM Bí danh đứng sau tên... NgayVay date DEFAULT GETDATE() Ý nghĩa Sử dụng để đảm bảo liệu cột không nhận giá trị NULL UNIQUE //ghi PRIMARY KEY Sử dụng để đảm bảo liệu cột nhất, không trùng lặp giá trị cột PRIMARY KEY (Khóa