Bài đăng

Hiển thị các bài đăng có nhãn Cơ sở dữ liệu

[DATABASE] Các phép toán đại số quan hệ

Hình ảnh
- Đại số quan hệ: Là tập hợp các phép toán cơ sở của mô hình dữ liệu quan hệ Biểu thức đại số quan hệ là sự kết hợp của các toán hạng và toán tử Kết quả của một biểu thức đại số quan hệ là một thể hiện của quan hệ - Ý nghĩa: Là cơ sở hình thức cho các phép toán của mô hình QH Là cơ sở để cài đặt và tối ưu hóa các truy vấn trong các hệ QT CSDL - Các toán tử có thể là: Các thể hiện của quan hệ Các tập hợp - Các phép toán của Đại số quan hệ: Tập hợp: hợp, giao, hiệu, tích Descartes Quan hệ: chọn, chiếu, đổi tên, kết, chia Tính toán và gom nhóm: avg(), min(), max(), sum(), count() Phép đặt lại tên ------------------------------------------- - Xét lược đồ CSDL làm ví dụ minh họa - QUẢN LÝ DỰ ÁN NHANVIEN ( MaNV , HoNV, TenNV, NgaySinh, DiaChi, Phai, Luong, MaNQL, Phong) Tân từ: Mỗi nhân viên có Mã nhân viên (MaNV) duy nhất để phân biệt với các nhân viên khác, có họ tên (HoNV, TenNV), ngày sinh (NgaySinh), địa chỉ (DiaChi), phái (Phai), mức lương (Luong), người quản lý trực tiếp (MaNQL) và th...

[DATABASE] Tìm bao đóng của tập thuộc tính đối với phụ thuộc hàm

Hình ảnh
Cách tính nhanh Đề bài : Cho lược đồ quan hệ R (A, B, C, D, E) và tập phụ thuộc hàm F = {AB --> CD, E --> C, D --> CE, A --> E}. Tìm bao đóng của A trên tập phụ thuộc hàm F (Tìm A+F) ? Cách thực hiện: - Đầu tiên gán A+ = A - Tiếp theo xét xem có PTH nào A --> X không? nếu có bỏ X vào A+, ở đây ta có A --> E nên A+ = AE - Ta thấy E --> C nên A+ = ACE - Cuối cùng ta có A+ = ACE Slide bài giảng Xem hướng dẫn trên Youtube

[DATABASE] Phủ tối thiểu của tập phụ thuộc hàm

Hình ảnh
Cách thực hiện: B1. Phân rã PTH sao cho VP chỉ còn 01 thuộc tính B2. Loại các thuộc tính dư thừa ở VT (không xét PTH mà VT có 01 thuộc tính) Bỏ thuộc tính ở VT khi và chỉ khi bao đóng của các thuộc tính còn lại chứa thuộc tính ở VP B3. Loại bỏ các PTH dư thừa ( không xét PTH mà thuộc tính ở VP chỉ xuất hiện một lần) B3.1: Tìm bao đóng của VT B3.2: Nếu bao đóng của VT chứa thuộc tính ở VP thì nó là PTH dư thừa, ngược lại nó không là PTH dư thừa ------------ Ví dụ : Cho lược đồ quan hệ Q=(A, B, C, D) và PTH F={AB → CD, B → C, C → D}  Tìm phủ tối thiểu?  B1. Phân rã PTH sao cho vế phải chỉ còn một thuộc tính F={AB → C, AB → D, B → C, C → D}  B2. Bỏ các thuộc tính dư thừa ở vế trái B → C, C → D : không xét vì vế trái chỉ có một thuộc tính Xét AB → C A + F-{AB → C}    = A, không chứa C nên B không thừa B + F-{AB  → C}   = BCD, chứa C nên A thừa Loại thuộc tín...

[DATABASE] Tìm mọi khóa của lược đồ quan hệ

Hình ảnh
  Cách thực hiện: Gọi K là tập khóa cần tìm B1. Tìm tập nguồn N và Tính N + F Nếu N + F  = Q +  thì suy ra lược đồ quan hệ chỉ có một khóa duy nhất là N và kết thúc thuật toán Ngược lại, qua bước 2 B2. Tìm tập trung gian TG Nếu TG =   thì lược đồ quan hệ có 1 khóa là tập nguồn N và kết thúc thuật toán Ngược lại, nếu TG ≠   thì tìm tất cả tập con khác rỗng X i  của tập TG Lấy từng X i  hợp với N => N ∪ X i  TH1 : Nếu (N ∪ X i ) + F  = Q +  thì (N ∪ X i ) là khóa, loại tính toán đối với các tập con khác của TG có chứa X i  ; thêm khóa vào tập K TH2 : Nếu (N ∪ X i ) + F  ≠ Q +  thì  (N ∪ X i ) không là khóa B3. Kết luận:  Khóa của lược đồ quan hệ là tập K ------------ Giải thích: N là tập thuộc tính nguồn (chứa những thuộc tính chỉ xuất hiện ở vế trái của các phụ thuộc hàm; các thuộc tính không xuất hiện ở cả vế trái và vế phải của phụ thuộc hàm) TG là tập thuộc t...

[DATABASE] Dạng chuẩn cao nhất của lược đồ quan hệ

Cách thực hiện: B1: Tìm mọi khóa của lược đồ quan hệ B2: Kiểm tra dạng chuẩn từ cao xuống thấp (BCNF - 3NF - 2NF - 1NF) BCNF (Boyce-Codd Normal Form)  Tất cả VT của phụ thuộc hàm là khóa (VT là siêu khóa) 3NF (Third Normal Form) Phân rã VP của phụ thuộc hàm sao cho VP chỉ chứa một thuộc tính Thỏa 1 trong 2 điều kiện: VT của phụ thuộc hàm là khóa hoặc VP là tập con của khóa 2NF (Second Normal Form) B1: Xác định các thuộc tính không là khóa B2: Tất cả thuộc tính không là khóa phải phụ thuộc đầy đủ vào khóa Trường hợp khác #1 : Cách để kiểm tra có đạt 2NF không trong trường hợp không biết cách xác định tính phụ thuộc đầy đủ: Với mỗi khóa K, tìm bao đóng của tất cả  tập con thực sự  Xi của K Nếu tồn tại bao đóng  X i +  chứa thuộc tính không khóa thì không đạt dạng chuẩn 2, ngược lại đạt dạng chuẩn 2 #2 : Nếu lược đồ chỉ có 01 khóa và khóa đó chỉ có duy nhất 01 thuộc tính thì chắc chắn đạt dạng chuẩn 2 1NF (First Normal Form)  Nếu lược đồ quan hệ không đạ chuẩn...

[DATABASE] Phép chia trong SQL - Bài toán "tất cả"

Hình ảnh
- Thông thường, bài toán về phép chia có chứa từ khóa "tất cả" trong yêu cầu. Ví dụ: Tìm hóa đơn mua tất cả mặt hàng do Trung Quốc sản xuất; Cho biết sinh viên đăng kí tất cả các môn học,..." - Khác với ngôn ngữ đại số quan hệ, ngôn ngữ SQL không hỗ trợ phép chia vì thế chúng ta phải thể hiện nó thông qua các toán tử: except, not exists, group by + having,... Xét cơ sở dữ liệu quan hệ sau: PHONGCHIEU ( MaPC , TenPhong, SucChua, LoaiCN) PHIM ( MaPhim , TenPhim, ThoiLuong, NgayPhatHanh, DoanhThu) THELOAI ( MaTL , TenTL) PHIM_THELOAI ( MaPhim , MaTL ) SUATCHIEU ( MaSC , MaPhim, NgayChieu, GioChieu, MaPC, TongTienVe) -------------------- C ho biết những phim thuộc tất cả các thể loại? ------------------- Cách 1: Thể hiện phép chia với NOT EXISTS - NOT EXISTS Tạm dịch đề bài: Cho biết những Phim mà không có thể loại nào mà nó không thuộc vào? Như vậy, sẽ liên quan tới 3 bảng PHIM, THE_LOAI và PHIM_THELOAI + Trả về bộ giá trị của bảng Phim nếu cả 2 điều kiện sau where cùng...

[DATABASE] Phép trừ trong SQL - Bài toán "chưa"

Hình ảnh
- Thông thường, bài toán về phép trừ có chứa từ khóa  "chưa"   trong yêu cầu. Ví dụ: Cho biết trang phục chưa bao giờ được khách chọn ký hợp đồng thuê; những thể loại chưa được làm phim,... - Đ ể thực hiện phép trừ cần chú ý điều kiện khả hợp giữa hai bảng Table1 và Table2 (cùng thuộc tính, các thuộc tính cùng miền giá trị) - Phép trừ Table1 - Table2 tạm dịch là tham gia Table1 mà không tham gia Table2 . Có 2 cách để biểu diễn phép trừ trong ngôn ngữ truy vấn SQL: EXCEPT và sử dụng phép kết không mất thông tin (left join hoặc right join) Xét cơ sở dữ liệu quan hệ sau và c ho biết những phim chưa được chiếu? PHONGCHIEU ( MaPC , TenPhong, SucChua, LoaiCN) PHIM ( MaPhim , TenPhim, ThoiLuong, NgayPhatHanh, DoanhThu) THELOAI ( MaTL , TenTL) PHIM_THELOAI ( MaPhim , MaTL ) SUATCHIEU ( MaSC , MaPhim, NgayChieu, GioChieu, MaPC, TongTienVe) ------------- Cách 1: Sử dụng EXCEPT Khi sử dụng từ khóa except trong câu truy vấn SQL cần chú ý điều kiện khả hợp giữa hai quan hệ ( select M...