Các phép biến đổi tương đương

Một phần của tài liệu Giáo trình cơ sở dữ liệu 1 (Trang 70)

l- Phép giao hoán

Nếu R1 và R2 là hai quan hệ, F là điều kiện trên các thuộc tính của Rl và R2 thì Rl*R2 ≡ R2* Rl; Rl x R2 ≡ R2 x Rl

2- Phép kết hợp

Nếu R1, R2 và R+3 là các quan hệ, Fl và F2 là các biểu thức điều kiện thì (Rl x R2) x R3 ≡ Rl x (R2 x R3);

3- Xử lý dãy các phép toán chọn

σ F1(σ F2(σ F3…(σF1n(r))) ≡σF1^F2^F3^…^Fn(r)

4- Xử lý dãy các phép toán chiếu

Nếu có: A1A2…An ⊆ B1B2…Bn.

Thì ΠA1A2...An(ΠB1B2...Bn(R)) ≡ ΠA1A2...An(R)

5- Giao hoán phép chọn và phép chiếu

σ F(ΠA1A2...An(R)) ≡ ΠA1A2...An(σ F(R))

6-Giao hoán giữa phép chọn và phép tích Đề -các

- Nếu các điều kiện chọn chỉ liên quan đến R1 σF(R1 x R2) ≡σF1(Rl) x (R2)

- Nếu F = Fl ∧ F2 trong đó Fl chỉ liên quan đến Rl; F2 chỉ liên quan đến R2

σF(Rl x R2) ≡σ F1(Rl) x σ F2(R2)

- Nếu F1 chỉ liên quan đến Rl, F2 liên quan đến cả Rl và R2

σF(Rl x R2) ≡σ F1(σ F1(Rl) x R2)

7- Giao hoán giữa phép chọn và một phép hợp

σF(Rl ∪ R2) ≡σF(Rl) ∪ σF(R2)

8- Giao hoán giữa một phép chọn và một phép trừ

σF(Rl - R2) ≡σF(Rl) - σF(R2)

9- Giao hoán giữa một phép chiếu và phép tích Đề các

Nếu các thuộc tính Al, A2,…An ∈ Rl; Bl, B2,…Bn ∈ R2 Ta có:

10- Giao hoán giữa một phép chiếu và một phép hợp

ΠA1A2...An(Rl ∪ R2) ≡ ΠA1A2...An(Rl) ∪ ΠA1A2...An(R2)

Ví dụ:

Cho biết tên công ty cung cấp mặt hàng màu đỏ *Dùng đại số quan hệ

ΠTenCongTy(σmau = “đỏ”(σCongTy.MaCongTy = CungCap.MaCongTy

(σ CungCap.MaHang=HangHoa.MaHang(congty x hanghoa x cungcap)))) - Đẩy phép chọn lên trước

ΠTenCongTy(σmau = “đỏ”(σCongTy.MaCongTy = CungCap.MaCongTy

(CongTy x σCungCap.MaHang=HangHoa.MaHang(HangHoa x Cungcap))) - Chuyển phép chọn và phép tích Đề các thành phép kết nối (adsbygoogle = window.adsbygoogle || []).push({});

ΠTenCongTy(σmau=“đỏ”(σ CongTy.MaCongTy = CungCap.MaCongTy (CongTy x (HangHoa *

Cungcap))) MaHang

- Chuyển phép chọn và phép tích Đề các thành phép kết nối ΠTenCongTy(σmau=“đỏ”(CongTy * HangHoa * CungCap))

MaCongTy MaHang

- Đẩy phép chọn lên trước

ΠTenCongTy(CongTy * (σmau=“đỏ”(HangHoa) * CungCap)) *Dùng SQL

- Không tối ưu:

SELECT TenCongTy

FROM Congty, HangHoa,CungCap

WHERE (CongTy.MaCongTy = CungCap.MaCongTy) AND

(CungCap.MaHang = HangHoa.MaHang) AND (HangHoa.Mau = “Đỏ”) - Tối ưu :

SELECT TenCongTy FROM CongTy

WHERE MaCongTy IN ( SELECT MaCongTy FROM Cungcap

WHERE MaHang lN ( SELECT MaHang FROM HangHoa

CHƯƠNG 6

AN TOÀN VÀ TOÀN VẸN ĐỮ LIỆU 6.1 An toàn dữ liệu

6.1.1 Giới thiệu

- Một hệ cơ sở dữ liệu bao gồm dữ liệu và các chương trình ứng dụng để thực hiện các thao tác dữ liệu.

- Người sử dụng (enduser) truy cập vào cơ sở dữ liệu sử dụng các chương trình ứng dụng để thao tác dữ liệu. Để đảm bảo an toàn hệ thống phải xác định:

+ User hợp pháp: Là người được phép truy nhập vào dữ liệu với một số quyền nào đó

+ User bất hợp pháp: Là người không được phép truy nhập vào dữ liệu

6.1.2 Thực hiện việc an toàn dữ liệu

- Xác định user hợp pháp: Sử dụng mật khẩu để xác minh

- Xác minh khung nhìn của user: Hệ thống cho phép user được truy nhập vào bộ phán nào của cơ sở dữ liệu

- Xác minh quyền của user: Hệ thống cho phép user có những quyền gì đối với cơ sở dữ liệu

6.1.3 Các lệnh về an toàn dữ liệu trong SQL

a) Lnh to khung nhìn

CREAT VIEW <tên view> (danh sách tên cột) AS <câu hỏi con> Ví dụ:

- Tạo View DSmoi

CREAT VIEW DSmoi AS (adsbygoogle = window.adsbygoogle || []).push({});

SELECT *

FROM Nhanvien

WHERE Ma phong = “M2”

CREAT VIEW Tong (MaCongTy, MaHang, Tổng số lượng) AS SELECT MaCongTy, MaHang, ( Soluong + 20)

FROM Cungcap

b) Lnh trao quyn cho các user

GRANT <tên quyền> On <đối tượng> TO <tên user> [WITH GRANT OPTION] Các quyền gồm

CREAT: Tạo ra cơ sở dữ liệu READ: Đọc SELECI: Chọn WRITE: Ghi INSERT: Bổ sung UPDATE: Cập nhật DELETE: Xoá

RUN: Chạy một chương trình ứng dụng Trong đó:

- Đối tượng: Là một bảng, một view, một chương trình ứng dụng

- Tên user: Là tên một người, một nhóm, hoặc một danh sách nếu dùng từ khoá PUBLIC, WORLD cho mọi users

- Tuỳ chọn GRANT OPTION: Khi có tuỳ chọn này user được phép trao quyền của mình cho user khác

Ví dụ:

GRANT Select, Delete, Update ON Dsluong TO abc WITH GRANT OPTION GRANT Select ON Dsluong TO def

c) Thu hi quyn

REVOKE <tên quyền> ON <đối tượng> FROM <user> Ví dụ:

REVOKE Delete ON Write FROM abc

6.2 Tính toàn vẹn dữ liệu

6.2.1 Khái niệm ràng buộc dữ liệu

Khi nhập dữ liệu vào ta có một số ràng buộc để hợp lệ hoá khi nhập dữ liệu nếu có giá trị không hợp lệ thì chương trình thông báo yêu cầu nhập lại. Hoặc các ràng báo

6.2.2 Các ràng buộc

- Ràng buộc về tập giá trị cho phép:

Dùng các phép so sánh để ràng buộc Ví dụ:

Bổ xung thêm nhân viên

INSERT INTO Nviên ( MãNV, TênNV, Địa chỉ, Lương) VALUES (NV05, “Trần Long”, “Hà nội”, 500 000)

Nếu có ràng buộc 1000000 < lương < 2000000 thì giá trị lương trên không hợp lệ -

Ràng buộc về giá trị NULL:

Nếu một thuộc tính bắt buộc phải có giá trị thì dùng ràng buộc NOT NULL, nếu không có thể để trống

-Ràng buộc về khoá chính:

Mối quan hệ phải có thuộc tính khoá, là thuộc tính chỉ có một giá trị duy nhất cho mỗi bộ không trùng lặp. Dùng ràng buộc này chương trình sẽ kiểm tra tính trùng lặp của các trị của khoá (adsbygoogle = window.adsbygoogle || []).push({});

Ràng buộc về khoá ngoài:

TÀI LIỆU THAM KHẢO

[l] Tô Văn Nam, Giáo trình cơ sở dữ liệu. Nhà xuất bản giáo dục. [2] Nguyễn Xuân Huy Bài giảng cơ sớ dữ liệu

[3] Vũ Đức Thi, Cơ sở dữ liệu - Kiến thức và thực hành. Nhà xuất bán Thông kê, 1997.

[4] TS.Nguyễn Bá Tường, Nhập môn cơ sở dữ liệu phân tán, Nhà xuất bản Khoa học và Kỹ thuật Hà Nội, 2005.

[5] Nguyễn Bá Tường, Cơ sở dữ liệu - Lý thuyết và thực hành, Nhà xuất bàn Khoa học và Kỹ thuật, 2001.

[6] Lê Tiến Vương. Nhập môn cơ sở dữ liệu quan hệ, Nhà xuất bản Khoa học và Kỹ thuật, 1997.

[7] M.Tamer Ôzsu, Patrick Valduriez, Nguyên lý các hệ cơ sở dữ liệu phân tán, Nhà xuất bán Thống kê, 2000.

[8] J.Ulman, Nguyên lý các hệ cơ sở dữ liệu và cơ sớ tri thức, Nhà xuất bản Thống kê, 1998.

MỤC LỤC Trang MỘT SỐ CÁC QUY ƯỚC...4 CHƯƠNG 1...5 NHẬP MÔN CƠ SỞ DỮ LIỆU ...5 1.1 Giới thiệu về hề thống quản lý tệp truyền thống ...5 1.2 Định nghĩa cơ sở dữ liệu...5 1.3. Hệ cơ sở dữ liệu...5 1. 4 Tính độc lập dữ liệu...10 1. 5 Hệ quản trị cơ sở dữ liệu ...10 1.6 Các mô hình dữ liệu...10 BÀI TẬP VÀ CÂU HỎI ...18 CHƯƠNG 2...19 MÔ HÌNH DỮ LIỆU QUAN HỆ...19 2.1 Thuộc tính...19 2.2 Quan hệ...19 2.3 Khoá của một quan hệ...20 2.4 Các phép toán của đại số quan hệ...21 BÀI TẬP VÀ CÂU HỎI ...28 CHƯƠNG 3...30 LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU ...30 3.1 Giới thiệu...30 3.2 Sơđồ quan hệ...31

3.3 Hệ tiên đề cho tập phụ thuộc hàm ...32

3.4 Bao đóng của tập phụ thuộc hàm ...35

3.5 Phép tách một quan hệ...36

3.6 Chuẩn hoá lược đồ quan hệ...38

3.7 Các thuật toán ...40

3.8 Phụ thuộc đa trị...47

BÀI TẬP VÀ CÂU HỎI ...49

CHƯƠNG 4...51

NGÔN NGỮĐỊNH NGHĨA VÀ THAO TÁC DỮ LIỆU...51

4.1 Giới thiệu về mô hình xử lý dữ liệu ...51

4.2 Ngôn ngữđại số quan hệ...51

4.3 Ngôn ngữ SQL (Structure Quay Language)... 53

BÀI TẬP CÂU HỎI ...69

CHƯƠNG 5...71

TỐI ƯU HOÁ CÂU HỎI ...71

5.1 Các chiến lược tối ưu...71

5.2 Các phép biến đổi tương đương ...72

CHƯƠNG 6...74

AN TOÀN VÀ TOÀN VẸN ĐỮ LIỆU ...74

6.1 An toàn dữ liệu ...74 (adsbygoogle = window.adsbygoogle || []).push({});

6.2 Tính toàn vẹn dữ liệu...75

Một phần của tài liệu Giáo trình cơ sở dữ liệu 1 (Trang 70)