Đào tạo csdl từ xa
Chia sẻ bởi Nguyễn Văn Cao Thuan |
Ngày 19/03/2024 |
13
Chia sẻ tài liệu: Đào tạo csdl từ xa thuộc Công nghệ thông tin
Nội dung tài liệu:
1
CƠ SỞ DỮ LIỆU
(60t LT + 30t TH)
2
Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN
Chương II: CÁC CÁCH TIẾP CẬN MỘT CSDL
Chương III. MÔ HÌNH DỮ LIỆU QUAN HỆ
Chương IV: RÀNG BUỘC TOÀN VẸN
ChươngV: CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ
Chương VI : ĐẠI SỐ QUAN HỆ
Chương VII: NGÔN NGỮ TRUY VẤN CSDL
Chương VIII: TỐI ƯU HÓA CÂU TRUY VẤN
NỘI DUNG:
3
Chương I. MỘT SỐ KHÁI NIỆM CƠ BẢN
NỘI DUNG
Hệ thống tập tin cổ điển
Cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu
4
Xét hệ thống tập tin quản lý nhân sự của một đơn vị:
Phòng Tổ chức - Hành chính: Lý lịch chi tiết của CBCNV;
Phòng Kế toán: Phòng, họ tên, lương, phục cấp, ngày công...;
Quản đốc phân xưởng: Họ tên, ngày công, ngày nghỉ, ...
HỆ THỐNG CÁC TẬP TIN CỔ ĐIỂN
(File System)
5
**Ưu điểm:
It tốn thời gian. Đầu tư & chi phí thấp.
Khả năng đáp ứng khai thác nhanh chóng và kịp thời.
**Nhược điểm:
Thông tin lưu nhiều nơi ? dư thừa ? không nhất quán
Lãng phí thời gian nhập, cập nhật dữ liệu & lưu trữ.
Sự phối hợp tổ chức và khai thác là khó khăn.
Thiếu sự chia sẻ thông tin giữa các đơn vị bộ phận.
Khó khăn khi nâng cấp ứng dụng.
HỆ THỐNG CÁC TẬP TIN CỔ ĐIỂN
(File System)
6
Cơ sở dữ liệu Là một hệ thống thông tin có cấu trúc, được lưu trữ trên các thiết bị mang tính từ tính, phục vụ việc khai thác thông tin của nhiều người sử dụng một cách đồng thời với nhiều mục đích khác nhau.
Lưu ý: Các tính chất: Hệ thống, có cấu trúc, nhiều người sử dụng, khai thác đồng thời, nhiều mục đích khác nhau.
**Các vấn đề phát sinh cần giải quyết
? Tính chủ quyền bị vi phạm
? Tính nhất quán của dữ liệu
? Vấn đề bảo mật
? Tính an toàn dữ liệu
? Vấn đề tranh chấp dữ liệu khi truy xuất đồng thời
CƠ SỞ DỮ LIỆU (Database)
7
Là hệ thống các chương trình quản trị CSDL, đồng thời là công cụ giao tiếp giữa người sử dụng hoặc các ứng dụng với CSDL.
Hệ quản trị CSDL cần có:
Từ điển dữ liệu (Data Dictionary)
Cơ chế giải quyết tranh chấp. (Quyền và mức độ ưu tiên)
Cơ chế bảo mật dữ liệu. (Bức tường lửa + mật khẩu)
Cơ chế tự động sao lưu (Backup) và phục hồi (Restore) dữ liệu khi có sự cố. (Định kỳ theo thời gian)
Ngôn ngữ giao tiếp người sử dụng (NSD) với CSDL. (SQL)
Đảm bảo tính độc lập giữa dữ liệu và chương trình.
Có thể, cần có giao diện tốt với người dùng không chuyên.
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
(DataBase Management System - DBMS)
8
Có 5 cách tiếp cận một CSDL
Mô hình dữ liệu mạng
Mô hình dữ liệu phân cấp
Mô hình dữ liệu quan hệ
Mô hình dữ liệu thực thể kết hợp
Mô hình dữ liệu hướng đối tượng
Chương II: CÁC CÁCH TIẾP CẬN MỘT CSDL
9
Mô hình dữ liệu mạng được biểu thị bởi một đồ thị có hướng.
Hai khái niệm cơ bản: Loại mẫu tin và Loại liên hệ.
- Loại mẫu tin (Record Type) là đặc trưng cho 1 loại đối tượng riêng biệt, được biểu thị bởi một hình chữ nhật.
Loại liên hệ (Set Type) là sự liên kết giữa 1 loại mẫu tin với 1 loại mẫu tin khác (gọi là mẫu tin thành viên). 4 loại liên hệ:
1 ? 1 : 1 mẫu tin chủ chỉ kết hợp với 1 mẫu tin thành viên.
1 ? n : 1 mẫu tin chủ kết hợp với nhiều mẫu tin thành viên.
n ? 1 : n mẫu tin chủ kết hợp với chỉ 1 mẫu tin thành viên.
Đệ quy (Recursive): Mẫu tin chủ có thể là thành viên của nó.
Mô hình này đơn giản nhưng không thích hợp để biểu diễn các CSDL lớn.
MÔ HÌNH MẠNG (Network Data Model)
10
Mô hình phân cấp là một cây, mỗi nút là một thực thể. Hai khái niệm được sử dụng trong mô hình: Loại mẫu tin và Loại mối liên hệ. Loại liên hệ ở đây là phân cấp, theo cách:
Mẫu tin thành viên chỉ đóng vai trò thành viên của 1 mối liên hệ duy nhất, tức là thuộc một chủ duy nhất. Mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1 ? n, ngược lại, từ mẫu tin thành viên tới mẫu tin chủ là 1 ? 1.
Giữa 2 loại mẫu tin chỉ tồn tại một mối liên hệ duy nhất.
Mô hình phân cấp được sử dụng chủ yếu cho các tổ chức có cấu trúc phân cấp, như ngành thống kê chẳng hạn. Dữ liệu của loại mẫu tin chủ thường chứa các kết quả tổng hợp được từ dữ liệu của các mẫu tin thành viên, do đó có rất nhiều nhược điểm khi dữ liệu thường xuyên có biến động.
MÔ HÌNH PHÂN CẤP (Hierachical Data Model)
11
MÔ HÌNH QUAN HỆ (Relational Data Model)
Mô hình quan hệ do E.F.Codd đề xuất năm 1970. Nền tảng của nó là lý thuyết tập hợp trên các quan hệ. Các khái niệm cơ bản gồm: Thuộc tính (Attribute), Quan hệ (Relation), Bộ giá trị (Value Tuple), Lược đồ quan hệ (Relation Schema), Khoá (Key), phụ thuộc hàm (Functional Dependency), ...
Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, có lý thuyết vững chắc nhất và, cùng với mô hình thực thể - kết hợp, nó đang được sử dụng rộng rãi nhất trong việc phân tích, thiết kế và cài đặt các CSDL hiện nay. Các nhà cung cấp phần mềm CSDL lớn như Oracle, Sybase, DB2, Informix, ... đều dựa trên mô hình dữ liệu này. Các chương sau của tài liệu này chỉ tập trung trình bày lý thuyết cơ sở dữ liệu theo mô hình quan hệ.
12
MÔ HÌNH THỰC THỂ KẾT HỢP
(Entity RelationShip)
Mô hình thực thể kết hợp do P.P.Chen đề xuất năm 1976. Các khái niệm chủ yếu được sử dụng bao gồm: Loại thực thể (Entity Type), Thực thể (Entity), Thuộc tính của loại thực thể (Entity Attribute), Khóa của loại thực thể (Entity Key), Loại mối kết hợp (Entity Relationship), Số ngôi của mối kết hợp (Relationship Degree), Thuộc tính của mối kết hợp (Relationship Attribute), Bản số của mỗi nhánh kết hợp (Relationship Cardinal). Từ năm 1980, các khái niệm mới được bổ sung như Loại thực thể chuyên biệt hóa (Specialized Entity), Mối kết hợp đệ quy (Recursive Relationship)
Mô hình này xác định đầy đủ các loại dữ liệu và các tính chất cần thiết nhất cũng như các mối liên hệ giữa chúng trong việc tổ chức một CSDL, do đó, nó được sử dụng chủ yếu trong việc phân tích và thiết kế CSDL.
13
MÔ HÌNH HƯỚNG ĐỐI TƯỢNG
(Object Oriented Model)
Đây là mô hình tiên tiến nhất hiện nay. Những ưu điểm lớn của kỹ thuật hướng đối tượng là:
Tính đóng gói (Encapsulation): Dữ liệu và các thao tác xử lý cấu trúc dữ liệu đó được "hòa quyện" với nhau thành một thể thống nhất.
Tính kế thừa (Inheritance): Một cấu trúc dữ liệu mới có thể được xây dựng và phát triển từ các cấu trúc dữ liệu đã có trước đó, có thể kế thừa các thành phần dữ liệu và phương thức từ các kiểu dữ liệu cơ sở.
Tính tương ứng bội (Polymorphism).
Tính tái sử dụng (Reusability).
Mặc dù mô hình này có nhiều ưu điểm, nhưng tính phức tạp của nó là cao, do đó ít được sử dụng.
14
Chương III. MÔ HÌNH DỮ LIỆU QUAN HỆ
NỘI DUNG:
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
Thuộc tính
Quan hệ
Bộ giá trị
Thể hiện
Khoá
Lược đồ quan hệ & lược đồ CSDL ...
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT QUAN HỆ
Thêm bộ giá trị mới vào quan hệ
Cập nhật các bộ giá trị của quan hệ
Xóa bỏ các bộ giá trị khỏi quan hệ
15
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
1. THUỘC TÍNH (Attribute): Là một đặc tính của đối tượng cần được phản ánh trong CSDL phục vụ việc khai thác thông tin về sau.
Ví dụ: Họ tên, Giới tính, Ngày sinh, Nơi sinh, ...
Thuộc tính được đặc trưng bởi 3 yếu tố:
a. Tên gọi: Một dãy ký tự bất kỳ. Nên đặt tên gợi nhớ.
b. Kiểu giá trị: Số, Chuỗi, Ngày, Logic
c. Miền giá trị: Xác định tập giá trị thuộc tính có thể nhận.
2. QUAN HỆ (Relation): Quan hệ n ngôi là một bảng 2 chiều được định nghĩa trên n thuộc tính, kèm với nó là một tân từ (Predicate) để xác định ý nghĩa và mối quan hệ giữa các thông tin trong bảng.
16
Ví dụ: CSDL quản lý NHÂN VIÊN với các quan hệ
1. PhongBan (MaPB, TenPB, DiaDiem, MaNQL, KinhPhi, DoanhThu)
Tân từ: Mỗi phòng ban có một tên gọi (TenPB) đầy đủ, một địa điểm trú đóng (DiaDiem), một mã số của nhân viên phụ trách phòng (MaNQL), một khoản kinh phí (KinhPhi) để hoạt động, một khoản doanh thu (DoanhThu) nếu có, và một mã số (MaPB) duy nhất để phân biệt với các phòng ban khác trong công ty.
2. CongViec (MaCV, TenCV, LuongMin, LuongMax, MgrFlag)
Tân từ: Mỗi chức danh công việc (MaCV) có một tên gọi (TenCV) cụ thể, một mức lương tối thiểu và tối đa (LuongMin, LuongMax) tương ứng và một cờ báo hiệu (MgrFlag) người làm công việc này có thể được đề bạt làm lãnh đạo hay không. Mỗi chức danh công việc đều có một ký mã (MaCV) duy nhất để phân biệt với các chức danh khác.
17
3. NhanVien (MaNV, TenNV, MaCV, Luong, HoaHong, MaPB, GioiTinh)
Tân từ: Mỗi nhân viên (NhanVien) được cấp một mã số (MaNV) duy nhất để phân biệt với mọi nhân viên khác. Nhân viên phải có một tên gọi (TenNV) cụ thể, đảm nhận một công việc là MaCV, được hưởng một mức lương (Luong) theo chức danh công việc, một kho?n hoa h?ng (HoaHong) nếu có, làm ở phòng ban cụ thể có mã số là MaPB. Mỗi nhân viên đều phải có giới tính xác định là `F` (F=Female=Nữ) hoặc `M` (M = Male = Nam).
4. QuaTrinh(MaNV, Seq, Ngay_BD, Ngay_KT, Luong, FrJob, ToJob, FrPB, ToPB)
Tân từ: Nhân viên có mã số MaNV có thể có nhiều quá trình thay đổi được đánh số thứ tự (Seq) từ 1 trở đi. Một quá trình diễn ra từ ngày (Ngay_BD) đến ngày (Ngay_KT), có thể do thay đổi lương (Salary) có thể do thay đổi từ công việc này (FrJob) sang công việc khác (ToJob), hoặc thuyên chuyển từ phòng này (FrPB) sang phòng khác (ToPB).
Ví dụ: CSDL quản lý NHÂN VIÊN với các quan hệ
18
3. BỘ GIÁ TRỊ (Tuple ? Record ? Row)
Là tổ hợp giá trị của các thuộc tính thỏa tân từ.
Ví dụ: Giả sử đã có một bộ giá trị của qhệ PhongBan:
(10, `Tổ Chức`, .). Khi đó các bộ gía trị sau:
(10, `Kinh Doanh`, . ); và
(20, ` `, . )
là không hợp lệ.
4. THỂ HIỆN (Instance hay Occurence)
Là tập hợp các bộ giá trị của quan hệ tại một thời điểm. Như vậy một quan hệ có rất nhiều thể hiện.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
19
5. KHOÁ (Key)
a. Khóa là tổ hợp các thuộc tính mà giá trị của chúng xác định duy nhất 1 bộ gía trị.
Ví dụ:. MaPB là khóa của PhongBan.
Giả sử các phòng ban đều có tên khác nhau, khi đó:
TenPB: cũng là khóa
MaPB, DiaDiem: cũng là khóa
MaPB, TenPB: cũng là khóa
Cho R (A1, A2, An) là quan hệ. A1 là khóa. Khi đó cũng có:
A1A2, A1A3, A1A4, A1An: là khóa
A1A2A3, ., A1A2An là các khóa. Vậy có bao nhiêu khóa?
Trả lời: 2n-1 . Với n=32 thuộc tính thì có hơn 2 tỷ khóa!!!
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
20
b. Định nghĩa khóa và siêu khóa (Key & Super key):
R (A1,A2, ., An) là quan hệ. K? { A1,A2, An }
K là khóa của R nếu và chỉ nếu thỏa:
1) K là khóa theo đ/n 1
2) ? K1 ? K mà K1 là khóa theo đ/n 1
MaPB hoặc TenPB là khóa của quan hệ PhongBan
Nếu K là khóa thì K ? Ai được gọi là siêu khóa.
c. Khóa chỉ định (Candidate Key): Các khóa thỏa đ/n 2.
d. Khóa chính (Primary Key): Trong số các khóa chỉ định có thể chọn 1 khóa tiện lợi nhất nhất cho việc sử dụng để sắp xếp các bộ giá trị (theo thứ tự tăng dần) phục vụ cho việc tìm kiếm và kết nối thông tin nhanh chóng, gọi nó là khóa chính.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
21
Quy ước:
Khóa chính của quan hệ (thì) được gạch chân.
Không được phép sửa đổi giá trị khóa chính.
e. Khóa ngoại (Foreign Key):
Cho R(U) và S(V); K1 ?U, K2?V; K1 là khóa chính của R.
Nếu thỏa:
(i) K1, K2 có cùng số lượng cùng ý nghĩa của các thuộc tính.
(ii)Giữa R và S có mối quan hệ 1:n
Khi đó K2 là khóa ngọai của S khi tham cham chiếu tới K1 của R.
Ví dụ: MaPB của NhanVien là khóa ngọai khi tham chiếu tới MaPB của PhongBan.
MaNQL của PhongBan là khóa ngọai khi tham chiếu tới MaNV của quan hệ NhanVien.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
22
f. Khóa lồng (Nested Key)
R(U), K1?U là khóa chính của R.
S(V), K2?V là khóa ngọai của S khi tham chiếu tới K1 của R.
K3?K2 là những thuộc tính khóa chính của S. Khi đó K3 được gọi là thuộc tính khóa lồng.
Ví dụ: MaNV của QuaTrinh là thuộc tính khóa lồng vì vừa là khóa ngọai vừa là thuộc tính khóa chính của QuaTrinh.
6. PHỤ THUỘC HÀM (Functional Dependency)
R(U); X, Y ? U. Nếu tồn tại một ánh xạ f từ X vào Y thì ta nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X và ký hiệu là X ? Y.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
23
7. RÀNG BUỘC TOÀN VẸN (Integrity Rule / Constraint)
Là một quy tắc bất biến mà tất cả các thao tác trên CSDL phải tuân theo nhằm đảm bảo tính đúng đắn, an toàn và toàn vẹn dữ liệu trong CSDL.
8. LƯỢC ĐỒ QUAN HỆ (Relation Schema)
Là sự trừu tượng hoá của quan hệ. Khi nói đến lược đồ quan hệ tức là đề cập đến cấu trúc tổng quát của một quan hệ, là một ma trận hai chiều.
Lược đồ CSDL là tập hợp các lược đồ quan hệ {Ri}
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
24
1. Thêm bộ giá trị mới vào quan hệ R (A1, A2, ... An):
INSERT (R; v1,v2, ..., vn)
Ví dụ: "Thêm vào phòng số 10 nhân viên mới có mã số 300, tên là Hoàng Duy làm nhân viên kế toán với lương 2700$."
INSERT (NhanVien; 300, `Hoàng Duy`, `KeToan`, 2700, 10, NULL, `M`)
2. Sửa giá trị các bộ của quan hệ R:
UPDATE (R; A1=e1, A2=e2, ..., An=en; điều kiện sửa)
Ví dụ: "Tăng lương 10% cho các nhân viên phụ trách các phòng/ban"
UPDATE (NhanVien; Luong = Luong*1.1; MaCV = `QuanLi`)
CÁC THAO TÁC CƠ BẢN TRÊN QUAN HỆ
25
3. Xóa các bộ của quan hệ R:
DELETE (R; điều kiện xoá)
Ví dụ: "Xóa các nhan viên phụ trách các phòng/ban"
DELETE (NhanVien; MaCV = `QuanLi`)
CÁC THAO TÁC CƠ BẢN TRÊN QUAN HỆ
26
Chương IV. RÀNG BUỘC TOÀN VẸN
NỘI DUNG
4.1. ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA MỘT RBTV
Định nghĩa RBTV
Các yếu tố của RBTV
4.2. PHÂN LOẠI CÁC RBTV
RBTV có bối cảnh trên một quan hệ
RBTV có bối cảnh trên nhiều quan hệ
4.3. PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
27
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
1. Định nghĩa.
Ràng buộc toàn vẹn (RBTV - Integrity Constraint) là một quy tắc bất biến mà tất cả các thao tác trên CSDL phải tuân theo nhằm đảm bảo tính chất đúng đắn, an toàn và toàn vẹn dữ liệu trong CSDL.
2. Các yếu tố của một RBTV.
a) Nội dung của RBTV.
Là một mệnh đề (hay một phát biểu - Statement) có giá trị hoặc đúng hoặc sai đối với các bộ giá trị của các quan hệ. Nội dung của RBTV có thể được phát biểu bằng ngôn ngữ tự nhiên, ngôn ngữ toán học hoặc một biểu thức đại số quan hệ.
28
Ví dụ R1:
"Mỗi phòng ban phải có một khoản kinh phí tối thiểu là 10,000$ để hoạt động". (Theo tân từ của PhongBan)
Hoặc bằng biểu thức toán học chặt chẽ hơn:
?d? PhongBan : d.kinhPhi ? 10,000
Ví dụ R2:
"Mỗi nhân viên phải có giới tính xác định là `F` (`F` = Female = Nữ) hoặc `M` (`M` = Male = `Nam`)"
? ?e? NhanVien: e.GioiTinh ? { `F`, `M` }
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
29
b) Bối cảnh xảy ra RBTV.
Xác định rõ RBTV có liên quan đến mấy quan hệ và đó là những quan hệ nào.
c) Tầm ảnh hưởng của RBTV.
Cần xây dựng bảng gồm 4 cột: Tên quan hệ, Thêm, Xóa, Sửa. Nếu thao tác nào vi phạm RBTV đối với quan hệ nào thì tại giao điểm dòng và cột đó được ghi dấu cộng (+). Nếu chỉ ảnh hưởng trên các thuộc tính nào thôi thì ghi tên các thuộc tính đó ở phía dưới dấu cộng. Nếu không ảnh hưởng thì ghi dấu trừ (-); và nếu không ảnh hưởng vì lý do không sửa được thì ghi thêm dấu sao (*) ở phía trên của dấu trừ đó.
Ví dụ: Ảnh hưởng trên thuộc tính MaPB: +(MaPB)
Và không ảnh hưởng do không thể sửa được: -(*).
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
30
?e? NhanVien, ? d ? PhongBan: e.MaPB = d.MaPB
NhanVien[MaPB] ? PhongBan[MaPB]
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
31
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
d) Hành động cần tiến hành khi RBTV bị vi phạm.
Thông thường là:
Thông báo lỗi
Từ chối thao tác.
Thông báo lỗi phải đầy đủ, rõ ràng và lịch sự.
Hai trường hợp xử lý:
Trực tuyến (On-line ? InterActive): Ra màn hình
Theo lô (Off-line ? Batch processing): Ra file.
32
PHÂN LOẠI CÁC RBTV
1. RBTV có bối cảnh là một quan hệ.
RBTV về miền giá trị: Thuộc tính không chỉ đặc trưng bởi kiểu dữ liệu mà nó còn bị giới hạn bởi miền giá trị trong kiểu dữ liệu đó.
"Mỗi nhân viên phải có giới tính xác định là `F` (`F` = Female = Nữ) hoặc `M` (`M` = Male = `Nam`)"
? ?e? NhanVien: e.GioiTinh ? { `F`, `M` }
b) RVTB liên thuộc tính: Đó là RBTV có liên quan đến nhiều thuộc tính của một quan hệ. Đó là các phụ thuộc tính toán hoặc một suy diễn từ giá trị của một hay nhiều thuộc tính trong cùng một bộ giá trị.
33
PHÂN LOẠI CÁC RBTV
2. RBTV có bối cảnh trên nhiều quan hệ.
RBTV về khóa ngoại còn gọi là RBTV phụ thuộc tồn tại hay RBTV tham chiếu.
RBTV tham chiếu xảy ra nếu có 1 trong 2 trường hợp sau:
Có sự hiện diện của khoá ngoại
Có sự lồng khoá giữa các quan hệ
c) RBTV liên bộ - liên thuộc tính: Đây là loại RBTV có liên quan tới nhiều bộ và có thể tới nhiều thuộc tính của bộ giá trị trong một quan hệ.
34
Vd: "Mỗi nhân viên phải thuộc một phòng/ban nhất định":
NhanVien[MaPB] ? PhongBan[MaPB]
PHÂN LOẠI CÁC RBTV
35
b) RVTB liên thuộc tính - liên bộ giá trị - liên quan hệ.
Do sự hiện diện của thuộc tính tính toán (giá trị của thuộc tính đó được tính toán từ các thuộc tính khác).
Ví dụ: Xét quan hệ
SINHVIEN (MaSV, TenSV, DTB)
DIEM_SV(MaSV, MaMon, Diem)
Biểu diễn:
PHÂN LOẠI CÁC RBTV
36
Bảng tầm ảnh hưởng:
PHÂN LOẠI CÁC RBTV
37
1. Phụ thuộc hàm F (Functional Dependency)
Định nghĩa.
R(U); X, Y ? U. Nếu tồn tại một ánh xạ f từ X vào Y thì ta nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X và ký hiệu là X ? Y.
b) Phụ thuộc hàm hiển nhiên: X ? Y đươc gọi PTH hiển nhiên nếu Y ? X
c) Phụ thuộc hàm được suy diễn lôgíc từ tập PTH đã cho
d) Bao đóng của tập PTH F: tức là tập các PTH được suy diễn logic từ F. Nếu F = F+ thì ta nói F là họ đầy đủ của PTH.
PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
38
2. Hệ tiên đề Armstrong.
a) Hệ 3 tiên đề cơ bản.
Luật phản xạ: X, Y ? U. Nếu Y ? X thì X?Y
Luật tăng trưởng: X, Y, W ? U. Nếu X?Y thì XW?YW
Luật bắc cầu: X, Y, Z ? U. Nếu X?Y ? Y?Z thì X?Z
b) Bổ đề, 3 tiên đề mở rộng.
(iv) Luật tách: X, Y, Z ? U. Nếu X?YZ thì X ? Y ? X?Z
(v) Luật gộp: X, Y, Z ? U. Nếu X?Y ? X?Z thì X?YZ
(vi) Luật tựa bắc cầu:
X, Y, Z, W ? U. Nếu X?Y ? YW?Z thì XW?Z
PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
39
c) Bao đóng của tập thuộc tính.
R (U) là một quan hệ được định nghĩa trên tập thuộc tính U. F là tập phụ thuộc hàm xác định trên R; và X ? U.
X+F = ? A ? U: X ? A ? F+ ?
Bài toán thành viên: X ? A ? F+ nếu và chỉ nếu A ? X+F.
d) Ứng dụng bao đóng để tìm một khóa của lược đồ quan hệ: Khóa là tập thuộc tính K mà bao đóng của K đúng bằng R(K+=R) và nếu bớt khỏi K một phần tử bất kỳ thì bao đóng của nó khác R.
Từ định nghĩa ta thấy có thể tìm khóa bắt đầu từ tập R vì và ta bớt dần các phần tử của R để nhận được tập bé nhất mà bao đóng của nó đúng bằng R.
PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
40
ChươngV: CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ
NỘI DUNG:
Trong công tác quản lý và xử lý các hệ cơ sở dữ liệu, chúng ta thường phải đưa CSDL về dạng đơn giản nhất, xử lý nhanh nhất. Để thực hiện mục đích đó chúng ta phải tiến hành "chuẩn hóa" các hệ CSDL. Tức là chúng ta sẽ xét một số dạng quen thuộc mà trong CSDL gọi là các dạng chuẩn.
5.1. DẠNG CHUẨN THỨ NHẤT.
5.2. DẠNG CHUẨN THỨ HAI.
5.3. DẠNG CHUẨN THỨ BA
5.4. DẠNG BOYCE-CODD.
41
DẠNG CHUẨN THỨ NHẤT
Dạng chuẩn 1 (first Norm Form) ký hiệu là 1NF.
Cho lược đồ CSDL R, Q là một quan hệ trên R được gọi là đạt dạng chuẩn 1NF nếu và chỉ nếu toàn bộ các miền giá trị có mặt trong Q đều chỉ chứa các giá trị nguyên tố (giá trị nguyên tố là giá trị không thể tách thành các giá trị khác - giá trị đơn).
Mọi quan hệ có thể đưa về dạng chuẩn 1, nên về sau khi xét các dạng chuẩn, nếu không nói gì thì ta hiểu dạng chuẩn đang xét là dạng chuẩn 1.
42
DẠNG CHUẨN THỨ HAI - 2NF
Thuộc tính phụ thuộc đầy đủ
Y phụ thuộc hoàn toàn vào X nếu:
- X?Y và bớt khỏi X dù 1 thuộc tính A thì
- not (XA)? Y
Quan hệ Q được gọi là đạt dạng chuẩn 2NF khi thỏa 2 điều kiện:
Q đạt dạng chuẩn 1NF
Tất cả các thuộc tính không khóa phải phụ thuộc đầy đủ vào khóa.
Ví dụ: Cho quan hệ Q(A,B,C,D,E,F,G)
F = {AB?CDEFG, B?G}
Q không đạt chuẩn 2NF vì B?G là phụ thuộc hàm không đầy đủ vào khóa AB?G.
43
Ví dụ 3: Cho quan hệ Q(A,B,C,D,E,H)
F = {A?E, C?D, E?DH}
Khóa của quan hệ Q là ABC vì tồn tại C?D là phụ thuộc hàm không đầy đủ vào khóa. Vậy Q không đạt chuẩn 2NF
Lưu ý: Trong một số trường hợp nếu tất cả các phần tử của Q đều là khóa, tức là tập các phần tử không khóa bằng rỗng nên Q đạt chuẩn 2NF.
DẠNG CHUẨN THỨ HAI - 2NF
44
DẠNG CHUẨN THỨ BA- 3NF
Quan hệ Q đạt chuẩn 3NF nếu thỏa 2 điều kiện
- Đạt chuẩn 2NF
- Tất cả các thuộc tính không khóa phải không phụ thuộc bắt cầu vào khóa.
Ví d?: SinhVien(MaSV, HoTen, NgaySinh, MaLop)
Vậy quan hệ SinhVien không đạt chuẩn 3NF
45
Quan hệ Q đạt chuẩn BCK hay BCNF nếu thỏa 2 điều kiện
- Đạt chuẩn 3NF
- Quan hệ Q không tồn tại PTH dạng X?x với x X và
Ví dụ: Cho quan hệ R = {A, B, C, D}
F = {AB?C, C?ABD}
Các tập có bao đóng khác R là: X = {A}, X = {B}, X= {D}, X= {A, D}, X= {B, D} và trong các tập trên không có PTH dạng X?x với x X
Vậy R đạt chuẩn BCNF.
Dạng chuẩn của một lược đồ CSDL là dạng chuẩn thấp nhất của các dạng chuẩn của các quan hệ con của lược đồ đó.
DẠNG BOYCE-CODD - BCNF
46
Chương VI : ĐẠI SỐ QUAN HỆ
6.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
6.2 CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
6.3 CÁC PHÉP TOÁN KHÁC
47
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
1. Phép hợp nhất 2 quan hệ (UNION).
Cho R và S là 2 quan hệ được định nghĩa trên cùng một tập thuộc tính U = { A1, A2, ..., An }.
Phép hợp nhất 2 quan hệ R và S, ký hiệu R ? S, là một quan hệ Q cũng được định nghĩa trên cùng tập thuộc tính U, mà
TQ = { t : t ? TR ? t ? TS }
2. Phép trừ 2 quan hệ (MINUS).
Cho R(U) và S(U) là 2 quan hệ. Hiệu của 2 quan hệ R và S, ký hiệu R S, là một quan hệ Q được định nghĩa trên cùng tập thuộc tính U, mà
TQ = { t : t ? TR ? t ? TS }
48
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
3. Phép giao (INTERSECTION).
Cho R(U) và S(U) là 2 quan hệ. Phép giao của 2 quan hệ R và S, ký hiệu R ? S, là một quan hệ Q được định nghĩa trên cùng tập thuộc tính U, mà
TQ = { t : t ? TR ? t ? TS }
4. Phép tích Đề Các (Des CARTESIAN).
Cho R(A1, A2, ..., An) và S(B1, B2, ..., Bn) là 2 quan hệ.
Tích Đề các của 2 quan hệ R và S, ký hiệu R x S, là một quan hệ Q được định nghĩa trên tập thuộc tính {A1, A2, ..., An, B1, B2, ..., Bn)}, mà
TQ = { t =(u,v): u ? TR ? v ? TS }
49
5. Phép chia 2 quan hệ. (DIVISION).
Không làm mất tính tổng quát, giả sử R (A,B) và S(B) là 2 quan hệ. Thương của 2 quan hệ R và S, ký hiệu là R ? S, là một quan hệ Q được định nghĩa trên thuộc tính A, mà
TQ = { t =r.A: r ? TR ? ?u ? TS ? (t,u) ? TR},
Tức là: Q x S ? R
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
50
Ví dụ: Có 3 quan hệ với các thể hiện sau:
Quan hệ phi công: PhiCong (#p) = { 30, 31, 32 }
Quan hệ máy bay MayBay (#m) = { 100, 101, 102, 103 }
Khả năng lái máy bay của các phi công: KhaNang (#p, #m )
Với các bộ giá trị: { (30,100), (30,101), (30,102), (30,103), (31,100), (31,102), (32,100), (32,101) }
Câu hỏi: "Cho danh sách các phi công có khả năng lái được tất cả các máy bay?"
Trả lời: "Phi công số 30. Đó là kết quả của phép chia quan hệ KhaNang cho quan hệ MayBay (KN ? MB) "
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
51
1. Phép chiếu (PROJECTION)
Cho R (U) là quan hệ được định nghĩa trên tập thuộc tính U = (A1, A2, ..., An); và K ? U.
Phép chiếu quan hệ R trên tập thuộc tính K, ký hiệu là R[K] hoặc ?K(R), là một quan hệ Q (K), mà TQ = { t = r.K, r ? TR }
Nói đơn giản, là một quan hệ mới lấy từ R sau khi đã loại bỏ đi các cột không cần giữ lại, và loại bỏ các dòng giống nhau.
2. Phép chọn (SELECTION)
Phép chọn các bộ của quan hệ R thỏa điều kiện e đã cho, ký hiệu là R : (e), hoặc ? (e) (R).
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
52
Theo định nghĩa, trong kết quả của phép chiếu và phép chọn sẽ không có các bộ giá trị giống nhau.
Ví dụ 1: "Cho biết mã số và tên của các phòng ban trong công ty?".
Phép toán: PhongBan [ MaPB, TenPB]
Ví dụ 2: "Cho biết các nhân viên của Cty hiện đang làm công việc gì ?".
Phép toán: NhanVien [MaCV]
Ví dụ 3: "Cho biết mã số và tên, công việc, tiền lương của các nhân viên trong công ty?".
Phép toán: NhanVien [ MaNV, TenNV, MaCV, Luong]
Ví dụ 4: "Cho tên và tiền lương của các nhân viên của phòng số 40?".
Phép toán: ( NhanVien: (MaPB = 40))[ TenNV,Luong]
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
53
3. Phép thêta kết (? - JOIN)
Ở đây ? là một trong các phép so sánh: >, >=, <, <=, =
Cho R (U) và S (V) là các quan hệ được định nghĩa trên tập thuộc tính U ={A1, A2, ..., An} và V = {B1, B2, ..., Bn)}. A?U, B ?V là 2 thuộc tính của 2 quan hệ.
Phép ? - kết giữa quan hệ R và S, ký hiệu là R S, là một quan hệ Q (U?V), mà TQ = { t = (u, v): u ? TR ? v ? TS ? u.A ? v.B}
Phép ? - kết R và S có thể được biểu diễn tương đương:
R S = (R x S) : (R.A ? S.B)
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
54
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
55
CÁC PHÉP TOÁN KHÁC
1. Phép kết trong (INNER JOIN). Thực chất là phép bằng nhau, hay phép kết tương đương EQUI-JOIN. Có thể ký hiệu phép toán này bằng dấu sao (*).
Kết quả của phép kết trong giữa R và S:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
R(A, X)
(1, x1)
(2, x2)
(3, x3)
S (B, Y)
(1, y1)
(2, y2)
(4, y4)
Cho 2 quan hệ R và S
56
2. Phép kết vế trái (LEFT JOIN).
Phép kết vế trái giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ? V, mà
TQ = { t = (u, v): u ? TR ? v ? TS ? u.A = v.B
Kết quả phép kết vế trái giữa R và S là:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
(3, x3, Null, Null) (1)
CÁC PHÉP TOÁN KHÁC
57
3. Phép kết vế phải (RIGHT JOIN).
Phép kết vế phải giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ? V, mà
TQ = { t = (u, v): u ? TR ? v ? TS ? u.A = v.B
Kết quả phép kết vế phải giữa R và S là:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
(Null, Null, 4, y4) (2)
Suy ra, có thể dễ dàng tìm được các bộ của S mà không có bộ giá trị tương ứng trong quan hệ R.
CÁC PHÉP TOÁN KHÁC
58
Viết các biểu thức quan hệ để trả lời cho các câu hỏi sau:
1: "Cho danh sách nhân viên làm cùng phòng với Watson".
(NhanVien : (TenNV = `Watson`))[MaPB] NhanVien
2: "Cho tên của người lãnh đạo Smith".
((((NhanVien : (TenNV =`Smith`))[MaPB] PhongBan)[MaNQL])
NhanVien) [TenNV]
3: "Cho danh sách nhân viên có lương trên 4000"
NhanVien : (Luong > 4000)
CÁC VÍ DỤ MINH HỌA
59
Chương VII: NGÔN NGỮ TRUY VẤN CSDL
NỘI DUNG
7.1 TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
7.2 TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
7.3 CÁC TRUY VẤN KHÁC
60
Tư tưởng chủ đạo: Cần cái gì? Từ đâu mà có?
1. Truy Vấn Đơn Giản:
Cú pháp:
SELECT, , .
FROM ;
(Những cái ta CẦN thì đặt sau SELECT. Cái TỪ ĐÂU mà có đặt sau FROM)
Ghi chú:
(*) Nếu các là tên tất cả các field thì dùng *
(*) Đặt tên lại cho biểu thức thì thêm AS sau
(*) Sử dụng DISTINCT ngay sau SELECT để lấy dòng ? nhau
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
61
Các ví dụ minh họa:
1. "Cho mã số, tên, công việc, lương, huê hồng, mã phòng, giới tính của các nhân viên của Cty".
SELECT MaNV, TenNC, MaCV, Luong, HoaHong, MaPB, GioiTinh
FROM NhanVien;
? SELECT * FROM NhanVien;
2. "Cho tên và tiền lương 1 năm của các nhân viên?"
SELECT TenNV, Luong*12 AS LuongCaNam
FROM NhanVien;
3. "Cho biết mã hiệu các công việc mà các nhân viên của Công ty hiện đang làm?"
SELECT DISTINCT MaCV FROM NhanVien;
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
62
2. Sắp xếp kết quả in ra - Mệnh đề ORDER BY
Cú pháp mệnh đề:
ORDER BY[ASC | DESC], . [ASC | DESC]
Ghi chú:
(*) Có thể thay bằng số thứ tự của nó trong mệnh đề SELECT.
(*) Có thể dùng với TOP n [ PERCENT] để lấy các dòng đầu.
Ví dụ:
1. "Cho danh sách các nhân viên theo từng phòng ban."
SELECT * FROM NhanVien ORDER BY MaPB;
SELECT * FROM NhanVien ORDER BY 6;
(Vì MaPB là thuộc tính thứ 6 trong danh sách biểu thức sau SELECT)
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
63
3. Chọn lọc bản ghi - Mệnh đề WHERE
Cú pháp mệnh đề: WHERE <điều kiện chọn >
Điều kiện là một biểu thức lôgíc có dạng:
p1 AND | OR p2 AND | OR p3 . And | Or pn
Ở đây pi (i = 1, 2, ., n) là các biểu thức lôgíc cơ sở, thường có dạng:
[NOT]
[NOT] EXISTS ()
Ở đây: có thể là:
? <, <=, >, >=, =, <>
IN ()
BETWEEN AND < giá trị cao>
? LIKE
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
64
1) Liệt kê những nhân viên của phòng 40
SELECT * FROM NhanVien WHERE MaPB=40
2) Liệt kê những nhân viên quản lý và có lương lớn hơn 4000
SELECT * FROM NhanVien WHERE MaCV=`QuanLi` AND Luong>4000
3) Cho thông tin những nhân viên có lương lớn hơn 4000 hoặc nhân viên thuộc phòng 40
SELECT * FROM NhanVien WHERE MaPB=40 OR Luong > 4000
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
65
4. Xác định nguồn dữ liệu - Mệnh đề FROM
Cú pháp mệnh đề:
FROM [], ., []
(*) Việc liệt kê danh sách quan hệ sau FROM luôn đòi hỏi phải thể hiện mối quan hệ giữa chúng trong mệnh đề WHERE và sẽ khiến máy phải thực hiện một phép tích Des Cartesian.
(*) Nên dùng bí danh cho quan hệ để tiện lợi cho cách viết lệnh.
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
66
5. Các hàm tích hợp trên nhóm bản ghi - Mệnh đề GROUP BY
Các hàm tích hợp trên nhóm các bản ghi gồm có:
SUM (): Hàm tính tổng
COUNT (* | [DISTINCT]): Đếm số lượng mẫu tin
AVG (): Hàm tính giá trị trung bình
MIN () : Lấy giá trị nhỏ nhất
MAX (): Lấy giá trị lớn nhất
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
67
Cú pháp mệnh đề:
GROUP BY, , .
(*) Nếu không có GROUP BY thì toàn bộ là một nhóm
(*) Ngoại trừ các biểu thức có hàm tích hợp thì các biểu thức còn lại phải có mặt trong mệnh đề GROUP BY.
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
68
6. Giới hạn kết quả in ra - Mệnh đề HAVING
Cú pháp mệnh đề:
HAVING <điều kiện chọn các bản ghi kết quả>
(*) HAVING phải đi kèm với mệnh đề GROUP BY
Tóm lại, cú pháp tổng quát của câu lệnh truy vấn tìm kiếm là:
SELECT [DISTINCT] [TOP n [PERCENT]]
FROM[], [], .
[WHERE <điều kiện chọn bản ghi để xử lý>]
[GROUP BY ]
[HAVING <điều kiện chọn bản ghi kết quả> ]
[ORDER BY ]
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
69
7. Câu truy vấn con (SubQuery)
Định nghĩa: Là một câu truy vấn mà kết quả của nó được dùng trong một câu truy vấn khác. Câu truy vấn con phải được đặt trong cặp dấu ngoặc tròn ( ).
Trong SQL-SERVER, ORACLE, DB2, INFORMIX, .
Câu truy vấn con có thể được dùng để tạo nguồn dữ liệu cho một câu truy vấn khác, có nghĩa là nó có thể có mặt trong mệnh đề FROM.
Có thể được dùng nhiều biểu thức sau SELECT trong câu truy vấn con, xem như đó là một bộ giá trị. Các phép toán so sánh với một bộ giá trị vẫn được viết một cách bình thường.
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
70
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
Các phép so sánh có thể dùng với câu truy vấn con là:
? >, >=, =, <, <=, <> (Nếu Subquery cho lại duy nhất 1 giá trị)
? IN, =Some, =Any: Các phép toán tương đương nhau, dùng để kiểm tra xem một giá trị có nằm trong tập giá trị của Subquery.
? > All, >=All,? [Not] Exists : Kiểm tra SubQuery có trả về mẫu tin nào không.
71
"Cho danh sách nhân viên có lương cao nhất và thấp nhất Công ty"
Q1: Tìm mức lương cao nhất (?x) và thấp nhất (?y) công ty.
Q2: Tìm các nhân viên có lương = (x) hoặc lương = (y).
SELECT * FROM NhanVien
WHERE Luong = (SELECT MAX(Luong)
FROM NhanVien)
OR Luong = (SELECT MIN(Luong) FROM NhanVien)
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
72
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
1. Tạo bảng từ dữ liệu của câu truy vấn
Cú pháp:
SELECT INTO
FROM
[Mệnh đề WHERE>]
[Mệnh đề GROUP BY]
[Mệnh đề HAVING]
[Mệnh đề ORDER BY]
Ví dụ: "Tạo quan hệ có tên là Manager để lưu các n/v phụ trách các phòng/ban".
Select * into Manager from NhanVien where MaCV=`QuanLi` ;
73
2. Thêm bộ giá trị vào quan hệ.
a. Thêm 1 bộ từ giá trị đã cho:
Cú pháp:
INSERT INTO[()]VALUES ()
Ví dụ: "Thêm nhân viên mới có tên là Hoàng Duy mã số 300 vào phòng số 10 làm n/v kế toán với lương 2700$".
INSERT INTO NhanVien
VALUES (300, `Hoàng Duy`, `KeToan`, 2700, NULL, 10, `M`);
* Nên viết:
Insert Into NhanVien(MaNV, TenNV, MaCV, Luong, HoaHong, MaPB, GioiTinh)
Values (300, `Hoàng Duy`, `KeToan`, 2700, NuLL, 10, `M`)
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
74
b. Thêm các bộ từ CSDL:
Cú pháp:
INSERT INTO[()]
Select ()
From
[Where <điều kiện>]
[Group by]
[Having <điều kiện chọn bản ghi cuối cùng>];
Ví dụ: "Thêm vào quan hệ Manager các nhân viên có lương > 4000$"
INSERT INTO MANAGER
SELECT * FROM NhanVien
WHERE Luong > 4000
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
75
4. Xóa các bộ trong CSDL:
Cú pháp:
DELETE FROM
[WHERE <điều kiện xóa các bộ>];
(*) Nếu không có điều kiện sau WHERE thì tất cả các bộ giá trị của quan hệ sẽ bị xóa.
Ví dụ: "Xóa khỏi quan hệ NhanVien các nhân viên phụ trách các phòng ban".
DELETE FROM NhanVien
WHERE MaCV = `QuanLi`;
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
76
Tạo cấu trúc bảng (quan hệ)
Sửa đổi cấu trúc bảng.
Sửa kích thước các cột (Field Size)
Thêm cột mới vào bảng (Add Column).
Xác định miền giá trị (Domain).
Thiết lập giá trị mặc định (Default Value).
Thiết lập khóa chính (Primary Key).
Thiết lập khóa ngoại (Foreign Key).
Bổ sung chỉ mục (Index).
Tạo và cấp quyền hạn cho người sử dụng.
Hủy bỏ Khóa, Chỉ mục, Quan hệ, Người dùng...
CÁC PHÉP TOÁN KHÁC
77
TỐI ƯU HÓA CÂU TRUY VẤN
MỞ ĐẦU
CÁC NGUYÊN TẮC TỔNG QUÁT ĐỂ TỐI ƯU HÓA CÂU TRUY VẤN
Các nguyên tắc cơ bản
Các biểu thức tương đương
Các quy tắc liên quan đến phép kết và phép Tích Đề các
Các quy tắc liên quan đến phép chọn và phép chiếu
78
MỞ ĐẦU
Tối ưu hóa câu truy vấn là các phép biến đổi (tương đương) các câu truy vấn nhằm giảm thời gian xử lý và không gian lưu trữ.
79
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
1. Các nguyên tắc cơ bản
Gồm 6 nguyên tắc:
Thực hiện các phép chọn càng sớm càng tốt
Tồ hợp các phép chọn và phép tích Đề-Các thành phép kết
Tồ hợp các phép quan hệ một ngôi như phép chọn và phép chiếu
Tìm biểu thức con chung trong một biểu thức
Tiền xử lý bảng ? indexes
Đánh giá chi phí khi thực hiện trên phép toán
80
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
81
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
Các nguyên tắc liên quan đến phép kết và phép tích đề các
Qui tắc kết hợp
Qui tắc giao hoán
82
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
Các nguyên tắc liên quan đến phép chọn và phép chiếu
Dãy các phép chọn
Dãy các phép chiếu
Giao hoán phép chọn và phép chiếu
83
Giao hoán phép chọn và phép tích Đề-các
Giao hoán giữa phép chọn và phép hợp
nếu f liên quan R1
nếu f liên quan R2
nếu
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
84
Giao hoán giữa phép chọn và phép trừ
Giao hoán phép chiếu với phép tích Đề-các
Giao hoán giữa phép chiếu và phép hợp
với
là thuộc tính bao gồm
và
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
85
TÀI LIỆU THAM KHẢO
Nguyễn Đăng Tỵ, Giáo trình CSDL, ĐHQG Tp.HCM, 2001
Lê Tiến Vương, Nhập môn CSDL, NXB Thống kê, 2000
Bùi Minh Từ Diễm, Bài giảng nhập môn CSDL, KHTN, 2002
Nguyễn Bá Tường, CSDL Lý thuyết và thực hành, NXB Khoa học kỹ thuật
David Maier, The Theory of Relational Databases
...
CƠ SỞ DỮ LIỆU
(60t LT + 30t TH)
2
Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN
Chương II: CÁC CÁCH TIẾP CẬN MỘT CSDL
Chương III. MÔ HÌNH DỮ LIỆU QUAN HỆ
Chương IV: RÀNG BUỘC TOÀN VẸN
ChươngV: CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ
Chương VI : ĐẠI SỐ QUAN HỆ
Chương VII: NGÔN NGỮ TRUY VẤN CSDL
Chương VIII: TỐI ƯU HÓA CÂU TRUY VẤN
NỘI DUNG:
3
Chương I. MỘT SỐ KHÁI NIỆM CƠ BẢN
NỘI DUNG
Hệ thống tập tin cổ điển
Cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu
4
Xét hệ thống tập tin quản lý nhân sự của một đơn vị:
Phòng Tổ chức - Hành chính: Lý lịch chi tiết của CBCNV;
Phòng Kế toán: Phòng, họ tên, lương, phục cấp, ngày công...;
Quản đốc phân xưởng: Họ tên, ngày công, ngày nghỉ, ...
HỆ THỐNG CÁC TẬP TIN CỔ ĐIỂN
(File System)
5
**Ưu điểm:
It tốn thời gian. Đầu tư & chi phí thấp.
Khả năng đáp ứng khai thác nhanh chóng và kịp thời.
**Nhược điểm:
Thông tin lưu nhiều nơi ? dư thừa ? không nhất quán
Lãng phí thời gian nhập, cập nhật dữ liệu & lưu trữ.
Sự phối hợp tổ chức và khai thác là khó khăn.
Thiếu sự chia sẻ thông tin giữa các đơn vị bộ phận.
Khó khăn khi nâng cấp ứng dụng.
HỆ THỐNG CÁC TẬP TIN CỔ ĐIỂN
(File System)
6
Cơ sở dữ liệu Là một hệ thống thông tin có cấu trúc, được lưu trữ trên các thiết bị mang tính từ tính, phục vụ việc khai thác thông tin của nhiều người sử dụng một cách đồng thời với nhiều mục đích khác nhau.
Lưu ý: Các tính chất: Hệ thống, có cấu trúc, nhiều người sử dụng, khai thác đồng thời, nhiều mục đích khác nhau.
**Các vấn đề phát sinh cần giải quyết
? Tính chủ quyền bị vi phạm
? Tính nhất quán của dữ liệu
? Vấn đề bảo mật
? Tính an toàn dữ liệu
? Vấn đề tranh chấp dữ liệu khi truy xuất đồng thời
CƠ SỞ DỮ LIỆU (Database)
7
Là hệ thống các chương trình quản trị CSDL, đồng thời là công cụ giao tiếp giữa người sử dụng hoặc các ứng dụng với CSDL.
Hệ quản trị CSDL cần có:
Từ điển dữ liệu (Data Dictionary)
Cơ chế giải quyết tranh chấp. (Quyền và mức độ ưu tiên)
Cơ chế bảo mật dữ liệu. (Bức tường lửa + mật khẩu)
Cơ chế tự động sao lưu (Backup) và phục hồi (Restore) dữ liệu khi có sự cố. (Định kỳ theo thời gian)
Ngôn ngữ giao tiếp người sử dụng (NSD) với CSDL. (SQL)
Đảm bảo tính độc lập giữa dữ liệu và chương trình.
Có thể, cần có giao diện tốt với người dùng không chuyên.
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
(DataBase Management System - DBMS)
8
Có 5 cách tiếp cận một CSDL
Mô hình dữ liệu mạng
Mô hình dữ liệu phân cấp
Mô hình dữ liệu quan hệ
Mô hình dữ liệu thực thể kết hợp
Mô hình dữ liệu hướng đối tượng
Chương II: CÁC CÁCH TIẾP CẬN MỘT CSDL
9
Mô hình dữ liệu mạng được biểu thị bởi một đồ thị có hướng.
Hai khái niệm cơ bản: Loại mẫu tin và Loại liên hệ.
- Loại mẫu tin (Record Type) là đặc trưng cho 1 loại đối tượng riêng biệt, được biểu thị bởi một hình chữ nhật.
Loại liên hệ (Set Type) là sự liên kết giữa 1 loại mẫu tin với 1 loại mẫu tin khác (gọi là mẫu tin thành viên). 4 loại liên hệ:
1 ? 1 : 1 mẫu tin chủ chỉ kết hợp với 1 mẫu tin thành viên.
1 ? n : 1 mẫu tin chủ kết hợp với nhiều mẫu tin thành viên.
n ? 1 : n mẫu tin chủ kết hợp với chỉ 1 mẫu tin thành viên.
Đệ quy (Recursive): Mẫu tin chủ có thể là thành viên của nó.
Mô hình này đơn giản nhưng không thích hợp để biểu diễn các CSDL lớn.
MÔ HÌNH MẠNG (Network Data Model)
10
Mô hình phân cấp là một cây, mỗi nút là một thực thể. Hai khái niệm được sử dụng trong mô hình: Loại mẫu tin và Loại mối liên hệ. Loại liên hệ ở đây là phân cấp, theo cách:
Mẫu tin thành viên chỉ đóng vai trò thành viên của 1 mối liên hệ duy nhất, tức là thuộc một chủ duy nhất. Mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1 ? n, ngược lại, từ mẫu tin thành viên tới mẫu tin chủ là 1 ? 1.
Giữa 2 loại mẫu tin chỉ tồn tại một mối liên hệ duy nhất.
Mô hình phân cấp được sử dụng chủ yếu cho các tổ chức có cấu trúc phân cấp, như ngành thống kê chẳng hạn. Dữ liệu của loại mẫu tin chủ thường chứa các kết quả tổng hợp được từ dữ liệu của các mẫu tin thành viên, do đó có rất nhiều nhược điểm khi dữ liệu thường xuyên có biến động.
MÔ HÌNH PHÂN CẤP (Hierachical Data Model)
11
MÔ HÌNH QUAN HỆ (Relational Data Model)
Mô hình quan hệ do E.F.Codd đề xuất năm 1970. Nền tảng của nó là lý thuyết tập hợp trên các quan hệ. Các khái niệm cơ bản gồm: Thuộc tính (Attribute), Quan hệ (Relation), Bộ giá trị (Value Tuple), Lược đồ quan hệ (Relation Schema), Khoá (Key), phụ thuộc hàm (Functional Dependency), ...
Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, có lý thuyết vững chắc nhất và, cùng với mô hình thực thể - kết hợp, nó đang được sử dụng rộng rãi nhất trong việc phân tích, thiết kế và cài đặt các CSDL hiện nay. Các nhà cung cấp phần mềm CSDL lớn như Oracle, Sybase, DB2, Informix, ... đều dựa trên mô hình dữ liệu này. Các chương sau của tài liệu này chỉ tập trung trình bày lý thuyết cơ sở dữ liệu theo mô hình quan hệ.
12
MÔ HÌNH THỰC THỂ KẾT HỢP
(Entity RelationShip)
Mô hình thực thể kết hợp do P.P.Chen đề xuất năm 1976. Các khái niệm chủ yếu được sử dụng bao gồm: Loại thực thể (Entity Type), Thực thể (Entity), Thuộc tính của loại thực thể (Entity Attribute), Khóa của loại thực thể (Entity Key), Loại mối kết hợp (Entity Relationship), Số ngôi của mối kết hợp (Relationship Degree), Thuộc tính của mối kết hợp (Relationship Attribute), Bản số của mỗi nhánh kết hợp (Relationship Cardinal). Từ năm 1980, các khái niệm mới được bổ sung như Loại thực thể chuyên biệt hóa (Specialized Entity), Mối kết hợp đệ quy (Recursive Relationship)
Mô hình này xác định đầy đủ các loại dữ liệu và các tính chất cần thiết nhất cũng như các mối liên hệ giữa chúng trong việc tổ chức một CSDL, do đó, nó được sử dụng chủ yếu trong việc phân tích và thiết kế CSDL.
13
MÔ HÌNH HƯỚNG ĐỐI TƯỢNG
(Object Oriented Model)
Đây là mô hình tiên tiến nhất hiện nay. Những ưu điểm lớn của kỹ thuật hướng đối tượng là:
Tính đóng gói (Encapsulation): Dữ liệu và các thao tác xử lý cấu trúc dữ liệu đó được "hòa quyện" với nhau thành một thể thống nhất.
Tính kế thừa (Inheritance): Một cấu trúc dữ liệu mới có thể được xây dựng và phát triển từ các cấu trúc dữ liệu đã có trước đó, có thể kế thừa các thành phần dữ liệu và phương thức từ các kiểu dữ liệu cơ sở.
Tính tương ứng bội (Polymorphism).
Tính tái sử dụng (Reusability).
Mặc dù mô hình này có nhiều ưu điểm, nhưng tính phức tạp của nó là cao, do đó ít được sử dụng.
14
Chương III. MÔ HÌNH DỮ LIỆU QUAN HỆ
NỘI DUNG:
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
Thuộc tính
Quan hệ
Bộ giá trị
Thể hiện
Khoá
Lược đồ quan hệ & lược đồ CSDL ...
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT QUAN HỆ
Thêm bộ giá trị mới vào quan hệ
Cập nhật các bộ giá trị của quan hệ
Xóa bỏ các bộ giá trị khỏi quan hệ
15
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
1. THUỘC TÍNH (Attribute): Là một đặc tính của đối tượng cần được phản ánh trong CSDL phục vụ việc khai thác thông tin về sau.
Ví dụ: Họ tên, Giới tính, Ngày sinh, Nơi sinh, ...
Thuộc tính được đặc trưng bởi 3 yếu tố:
a. Tên gọi: Một dãy ký tự bất kỳ. Nên đặt tên gợi nhớ.
b. Kiểu giá trị: Số, Chuỗi, Ngày, Logic
c. Miền giá trị: Xác định tập giá trị thuộc tính có thể nhận.
2. QUAN HỆ (Relation): Quan hệ n ngôi là một bảng 2 chiều được định nghĩa trên n thuộc tính, kèm với nó là một tân từ (Predicate) để xác định ý nghĩa và mối quan hệ giữa các thông tin trong bảng.
16
Ví dụ: CSDL quản lý NHÂN VIÊN với các quan hệ
1. PhongBan (MaPB, TenPB, DiaDiem, MaNQL, KinhPhi, DoanhThu)
Tân từ: Mỗi phòng ban có một tên gọi (TenPB) đầy đủ, một địa điểm trú đóng (DiaDiem), một mã số của nhân viên phụ trách phòng (MaNQL), một khoản kinh phí (KinhPhi) để hoạt động, một khoản doanh thu (DoanhThu) nếu có, và một mã số (MaPB) duy nhất để phân biệt với các phòng ban khác trong công ty.
2. CongViec (MaCV, TenCV, LuongMin, LuongMax, MgrFlag)
Tân từ: Mỗi chức danh công việc (MaCV) có một tên gọi (TenCV) cụ thể, một mức lương tối thiểu và tối đa (LuongMin, LuongMax) tương ứng và một cờ báo hiệu (MgrFlag) người làm công việc này có thể được đề bạt làm lãnh đạo hay không. Mỗi chức danh công việc đều có một ký mã (MaCV) duy nhất để phân biệt với các chức danh khác.
17
3. NhanVien (MaNV, TenNV, MaCV, Luong, HoaHong, MaPB, GioiTinh)
Tân từ: Mỗi nhân viên (NhanVien) được cấp một mã số (MaNV) duy nhất để phân biệt với mọi nhân viên khác. Nhân viên phải có một tên gọi (TenNV) cụ thể, đảm nhận một công việc là MaCV, được hưởng một mức lương (Luong) theo chức danh công việc, một kho?n hoa h?ng (HoaHong) nếu có, làm ở phòng ban cụ thể có mã số là MaPB. Mỗi nhân viên đều phải có giới tính xác định là `F` (F=Female=Nữ) hoặc `M` (M = Male = Nam).
4. QuaTrinh(MaNV, Seq, Ngay_BD, Ngay_KT, Luong, FrJob, ToJob, FrPB, ToPB)
Tân từ: Nhân viên có mã số MaNV có thể có nhiều quá trình thay đổi được đánh số thứ tự (Seq) từ 1 trở đi. Một quá trình diễn ra từ ngày (Ngay_BD) đến ngày (Ngay_KT), có thể do thay đổi lương (Salary) có thể do thay đổi từ công việc này (FrJob) sang công việc khác (ToJob), hoặc thuyên chuyển từ phòng này (FrPB) sang phòng khác (ToPB).
Ví dụ: CSDL quản lý NHÂN VIÊN với các quan hệ
18
3. BỘ GIÁ TRỊ (Tuple ? Record ? Row)
Là tổ hợp giá trị của các thuộc tính thỏa tân từ.
Ví dụ: Giả sử đã có một bộ giá trị của qhệ PhongBan:
(10, `Tổ Chức`, .). Khi đó các bộ gía trị sau:
(10, `Kinh Doanh`, . ); và
(20, ` `, . )
là không hợp lệ.
4. THỂ HIỆN (Instance hay Occurence)
Là tập hợp các bộ giá trị của quan hệ tại một thời điểm. Như vậy một quan hệ có rất nhiều thể hiện.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
19
5. KHOÁ (Key)
a. Khóa là tổ hợp các thuộc tính mà giá trị của chúng xác định duy nhất 1 bộ gía trị.
Ví dụ:. MaPB là khóa của PhongBan.
Giả sử các phòng ban đều có tên khác nhau, khi đó:
TenPB: cũng là khóa
MaPB, DiaDiem: cũng là khóa
MaPB, TenPB: cũng là khóa
Cho R (A1, A2, An) là quan hệ. A1 là khóa. Khi đó cũng có:
A1A2, A1A3, A1A4, A1An: là khóa
A1A2A3, ., A1A2An là các khóa. Vậy có bao nhiêu khóa?
Trả lời: 2n-1 . Với n=32 thuộc tính thì có hơn 2 tỷ khóa!!!
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
20
b. Định nghĩa khóa và siêu khóa (Key & Super key):
R (A1,A2, ., An) là quan hệ. K? { A1,A2, An }
K là khóa của R nếu và chỉ nếu thỏa:
1) K là khóa theo đ/n 1
2) ? K1 ? K mà K1 là khóa theo đ/n 1
MaPB hoặc TenPB là khóa của quan hệ PhongBan
Nếu K là khóa thì K ? Ai được gọi là siêu khóa.
c. Khóa chỉ định (Candidate Key): Các khóa thỏa đ/n 2.
d. Khóa chính (Primary Key): Trong số các khóa chỉ định có thể chọn 1 khóa tiện lợi nhất nhất cho việc sử dụng để sắp xếp các bộ giá trị (theo thứ tự tăng dần) phục vụ cho việc tìm kiếm và kết nối thông tin nhanh chóng, gọi nó là khóa chính.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
21
Quy ước:
Khóa chính của quan hệ (thì) được gạch chân.
Không được phép sửa đổi giá trị khóa chính.
e. Khóa ngoại (Foreign Key):
Cho R(U) và S(V); K1 ?U, K2?V; K1 là khóa chính của R.
Nếu thỏa:
(i) K1, K2 có cùng số lượng cùng ý nghĩa của các thuộc tính.
(ii)Giữa R và S có mối quan hệ 1:n
Khi đó K2 là khóa ngọai của S khi tham cham chiếu tới K1 của R.
Ví dụ: MaPB của NhanVien là khóa ngọai khi tham chiếu tới MaPB của PhongBan.
MaNQL của PhongBan là khóa ngọai khi tham chiếu tới MaNV của quan hệ NhanVien.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
22
f. Khóa lồng (Nested Key)
R(U), K1?U là khóa chính của R.
S(V), K2?V là khóa ngọai của S khi tham chiếu tới K1 của R.
K3?K2 là những thuộc tính khóa chính của S. Khi đó K3 được gọi là thuộc tính khóa lồng.
Ví dụ: MaNV của QuaTrinh là thuộc tính khóa lồng vì vừa là khóa ngọai vừa là thuộc tính khóa chính của QuaTrinh.
6. PHỤ THUỘC HÀM (Functional Dependency)
R(U); X, Y ? U. Nếu tồn tại một ánh xạ f từ X vào Y thì ta nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X và ký hiệu là X ? Y.
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
23
7. RÀNG BUỘC TOÀN VẸN (Integrity Rule / Constraint)
Là một quy tắc bất biến mà tất cả các thao tác trên CSDL phải tuân theo nhằm đảm bảo tính đúng đắn, an toàn và toàn vẹn dữ liệu trong CSDL.
8. LƯỢC ĐỒ QUAN HỆ (Relation Schema)
Là sự trừu tượng hoá của quan hệ. Khi nói đến lược đồ quan hệ tức là đề cập đến cấu trúc tổng quát của một quan hệ, là một ma trận hai chiều.
Lược đồ CSDL là tập hợp các lược đồ quan hệ {Ri}
MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
24
1. Thêm bộ giá trị mới vào quan hệ R (A1, A2, ... An):
INSERT (R; v1,v2, ..., vn)
Ví dụ: "Thêm vào phòng số 10 nhân viên mới có mã số 300, tên là Hoàng Duy làm nhân viên kế toán với lương 2700$."
INSERT (NhanVien; 300, `Hoàng Duy`, `KeToan`, 2700, 10, NULL, `M`)
2. Sửa giá trị các bộ của quan hệ R:
UPDATE (R; A1=e1, A2=e2, ..., An=en; điều kiện sửa)
Ví dụ: "Tăng lương 10% cho các nhân viên phụ trách các phòng/ban"
UPDATE (NhanVien; Luong = Luong*1.1; MaCV = `QuanLi`)
CÁC THAO TÁC CƠ BẢN TRÊN QUAN HỆ
25
3. Xóa các bộ của quan hệ R:
DELETE (R; điều kiện xoá)
Ví dụ: "Xóa các nhan viên phụ trách các phòng/ban"
DELETE (NhanVien; MaCV = `QuanLi`)
CÁC THAO TÁC CƠ BẢN TRÊN QUAN HỆ
26
Chương IV. RÀNG BUỘC TOÀN VẸN
NỘI DUNG
4.1. ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA MỘT RBTV
Định nghĩa RBTV
Các yếu tố của RBTV
4.2. PHÂN LOẠI CÁC RBTV
RBTV có bối cảnh trên một quan hệ
RBTV có bối cảnh trên nhiều quan hệ
4.3. PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
27
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
1. Định nghĩa.
Ràng buộc toàn vẹn (RBTV - Integrity Constraint) là một quy tắc bất biến mà tất cả các thao tác trên CSDL phải tuân theo nhằm đảm bảo tính chất đúng đắn, an toàn và toàn vẹn dữ liệu trong CSDL.
2. Các yếu tố của một RBTV.
a) Nội dung của RBTV.
Là một mệnh đề (hay một phát biểu - Statement) có giá trị hoặc đúng hoặc sai đối với các bộ giá trị của các quan hệ. Nội dung của RBTV có thể được phát biểu bằng ngôn ngữ tự nhiên, ngôn ngữ toán học hoặc một biểu thức đại số quan hệ.
28
Ví dụ R1:
"Mỗi phòng ban phải có một khoản kinh phí tối thiểu là 10,000$ để hoạt động". (Theo tân từ của PhongBan)
Hoặc bằng biểu thức toán học chặt chẽ hơn:
?d? PhongBan : d.kinhPhi ? 10,000
Ví dụ R2:
"Mỗi nhân viên phải có giới tính xác định là `F` (`F` = Female = Nữ) hoặc `M` (`M` = Male = `Nam`)"
? ?e? NhanVien: e.GioiTinh ? { `F`, `M` }
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
29
b) Bối cảnh xảy ra RBTV.
Xác định rõ RBTV có liên quan đến mấy quan hệ và đó là những quan hệ nào.
c) Tầm ảnh hưởng của RBTV.
Cần xây dựng bảng gồm 4 cột: Tên quan hệ, Thêm, Xóa, Sửa. Nếu thao tác nào vi phạm RBTV đối với quan hệ nào thì tại giao điểm dòng và cột đó được ghi dấu cộng (+). Nếu chỉ ảnh hưởng trên các thuộc tính nào thôi thì ghi tên các thuộc tính đó ở phía dưới dấu cộng. Nếu không ảnh hưởng thì ghi dấu trừ (-); và nếu không ảnh hưởng vì lý do không sửa được thì ghi thêm dấu sao (*) ở phía trên của dấu trừ đó.
Ví dụ: Ảnh hưởng trên thuộc tính MaPB: +(MaPB)
Và không ảnh hưởng do không thể sửa được: -(*).
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
30
?e? NhanVien, ? d ? PhongBan: e.MaPB = d.MaPB
NhanVien[MaPB] ? PhongBan[MaPB]
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
31
ĐỊNH NGHĨA - CÁC YẾU TỐ CỦA RBTV
d) Hành động cần tiến hành khi RBTV bị vi phạm.
Thông thường là:
Thông báo lỗi
Từ chối thao tác.
Thông báo lỗi phải đầy đủ, rõ ràng và lịch sự.
Hai trường hợp xử lý:
Trực tuyến (On-line ? InterActive): Ra màn hình
Theo lô (Off-line ? Batch processing): Ra file.
32
PHÂN LOẠI CÁC RBTV
1. RBTV có bối cảnh là một quan hệ.
RBTV về miền giá trị: Thuộc tính không chỉ đặc trưng bởi kiểu dữ liệu mà nó còn bị giới hạn bởi miền giá trị trong kiểu dữ liệu đó.
"Mỗi nhân viên phải có giới tính xác định là `F` (`F` = Female = Nữ) hoặc `M` (`M` = Male = `Nam`)"
? ?e? NhanVien: e.GioiTinh ? { `F`, `M` }
b) RVTB liên thuộc tính: Đó là RBTV có liên quan đến nhiều thuộc tính của một quan hệ. Đó là các phụ thuộc tính toán hoặc một suy diễn từ giá trị của một hay nhiều thuộc tính trong cùng một bộ giá trị.
33
PHÂN LOẠI CÁC RBTV
2. RBTV có bối cảnh trên nhiều quan hệ.
RBTV về khóa ngoại còn gọi là RBTV phụ thuộc tồn tại hay RBTV tham chiếu.
RBTV tham chiếu xảy ra nếu có 1 trong 2 trường hợp sau:
Có sự hiện diện của khoá ngoại
Có sự lồng khoá giữa các quan hệ
c) RBTV liên bộ - liên thuộc tính: Đây là loại RBTV có liên quan tới nhiều bộ và có thể tới nhiều thuộc tính của bộ giá trị trong một quan hệ.
34
Vd: "Mỗi nhân viên phải thuộc một phòng/ban nhất định":
NhanVien[MaPB] ? PhongBan[MaPB]
PHÂN LOẠI CÁC RBTV
35
b) RVTB liên thuộc tính - liên bộ giá trị - liên quan hệ.
Do sự hiện diện của thuộc tính tính toán (giá trị của thuộc tính đó được tính toán từ các thuộc tính khác).
Ví dụ: Xét quan hệ
SINHVIEN (MaSV, TenSV, DTB)
DIEM_SV(MaSV, MaMon, Diem)
Biểu diễn:
PHÂN LOẠI CÁC RBTV
36
Bảng tầm ảnh hưởng:
PHÂN LOẠI CÁC RBTV
37
1. Phụ thuộc hàm F (Functional Dependency)
Định nghĩa.
R(U); X, Y ? U. Nếu tồn tại một ánh xạ f từ X vào Y thì ta nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X và ký hiệu là X ? Y.
b) Phụ thuộc hàm hiển nhiên: X ? Y đươc gọi PTH hiển nhiên nếu Y ? X
c) Phụ thuộc hàm được suy diễn lôgíc từ tập PTH đã cho
d) Bao đóng của tập PTH F: tức là tập các PTH được suy diễn logic từ F. Nếu F = F+ thì ta nói F là họ đầy đủ của PTH.
PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
38
2. Hệ tiên đề Armstrong.
a) Hệ 3 tiên đề cơ bản.
Luật phản xạ: X, Y ? U. Nếu Y ? X thì X?Y
Luật tăng trưởng: X, Y, W ? U. Nếu X?Y thì XW?YW
Luật bắc cầu: X, Y, Z ? U. Nếu X?Y ? Y?Z thì X?Z
b) Bổ đề, 3 tiên đề mở rộng.
(iv) Luật tách: X, Y, Z ? U. Nếu X?YZ thì X ? Y ? X?Z
(v) Luật gộp: X, Y, Z ? U. Nếu X?Y ? X?Z thì X?YZ
(vi) Luật tựa bắc cầu:
X, Y, Z, W ? U. Nếu X?Y ? YW?Z thì XW?Z
PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
39
c) Bao đóng của tập thuộc tính.
R (U) là một quan hệ được định nghĩa trên tập thuộc tính U. F là tập phụ thuộc hàm xác định trên R; và X ? U.
X+F = ? A ? U: X ? A ? F+ ?
Bài toán thành viên: X ? A ? F+ nếu và chỉ nếu A ? X+F.
d) Ứng dụng bao đóng để tìm một khóa của lược đồ quan hệ: Khóa là tập thuộc tính K mà bao đóng của K đúng bằng R(K+=R) và nếu bớt khỏi K một phần tử bất kỳ thì bao đóng của nó khác R.
Từ định nghĩa ta thấy có thể tìm khóa bắt đầu từ tập R vì và ta bớt dần các phần tử của R để nhận được tập bé nhất mà bao đóng của nó đúng bằng R.
PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
40
ChươngV: CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ
NỘI DUNG:
Trong công tác quản lý và xử lý các hệ cơ sở dữ liệu, chúng ta thường phải đưa CSDL về dạng đơn giản nhất, xử lý nhanh nhất. Để thực hiện mục đích đó chúng ta phải tiến hành "chuẩn hóa" các hệ CSDL. Tức là chúng ta sẽ xét một số dạng quen thuộc mà trong CSDL gọi là các dạng chuẩn.
5.1. DẠNG CHUẨN THỨ NHẤT.
5.2. DẠNG CHUẨN THỨ HAI.
5.3. DẠNG CHUẨN THỨ BA
5.4. DẠNG BOYCE-CODD.
41
DẠNG CHUẨN THỨ NHẤT
Dạng chuẩn 1 (first Norm Form) ký hiệu là 1NF.
Cho lược đồ CSDL R, Q là một quan hệ trên R được gọi là đạt dạng chuẩn 1NF nếu và chỉ nếu toàn bộ các miền giá trị có mặt trong Q đều chỉ chứa các giá trị nguyên tố (giá trị nguyên tố là giá trị không thể tách thành các giá trị khác - giá trị đơn).
Mọi quan hệ có thể đưa về dạng chuẩn 1, nên về sau khi xét các dạng chuẩn, nếu không nói gì thì ta hiểu dạng chuẩn đang xét là dạng chuẩn 1.
42
DẠNG CHUẨN THỨ HAI - 2NF
Thuộc tính phụ thuộc đầy đủ
Y phụ thuộc hoàn toàn vào X nếu:
- X?Y và bớt khỏi X dù 1 thuộc tính A thì
- not (XA)? Y
Quan hệ Q được gọi là đạt dạng chuẩn 2NF khi thỏa 2 điều kiện:
Q đạt dạng chuẩn 1NF
Tất cả các thuộc tính không khóa phải phụ thuộc đầy đủ vào khóa.
Ví dụ: Cho quan hệ Q(A,B,C,D,E,F,G)
F = {AB?CDEFG, B?G}
Q không đạt chuẩn 2NF vì B?G là phụ thuộc hàm không đầy đủ vào khóa AB?G.
43
Ví dụ 3: Cho quan hệ Q(A,B,C,D,E,H)
F = {A?E, C?D, E?DH}
Khóa của quan hệ Q là ABC vì tồn tại C?D là phụ thuộc hàm không đầy đủ vào khóa. Vậy Q không đạt chuẩn 2NF
Lưu ý: Trong một số trường hợp nếu tất cả các phần tử của Q đều là khóa, tức là tập các phần tử không khóa bằng rỗng nên Q đạt chuẩn 2NF.
DẠNG CHUẨN THỨ HAI - 2NF
44
DẠNG CHUẨN THỨ BA- 3NF
Quan hệ Q đạt chuẩn 3NF nếu thỏa 2 điều kiện
- Đạt chuẩn 2NF
- Tất cả các thuộc tính không khóa phải không phụ thuộc bắt cầu vào khóa.
Ví d?: SinhVien(MaSV, HoTen, NgaySinh, MaLop)
Vậy quan hệ SinhVien không đạt chuẩn 3NF
45
Quan hệ Q đạt chuẩn BCK hay BCNF nếu thỏa 2 điều kiện
- Đạt chuẩn 3NF
- Quan hệ Q không tồn tại PTH dạng X?x với x X và
Ví dụ: Cho quan hệ R = {A, B, C, D}
F = {AB?C, C?ABD}
Các tập có bao đóng khác R là: X = {A}, X = {B}, X= {D}, X= {A, D}, X= {B, D} và trong các tập trên không có PTH dạng X?x với x X
Vậy R đạt chuẩn BCNF.
Dạng chuẩn của một lược đồ CSDL là dạng chuẩn thấp nhất của các dạng chuẩn của các quan hệ con của lược đồ đó.
DẠNG BOYCE-CODD - BCNF
46
Chương VI : ĐẠI SỐ QUAN HỆ
6.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
6.2 CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
6.3 CÁC PHÉP TOÁN KHÁC
47
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
1. Phép hợp nhất 2 quan hệ (UNION).
Cho R và S là 2 quan hệ được định nghĩa trên cùng một tập thuộc tính U = { A1, A2, ..., An }.
Phép hợp nhất 2 quan hệ R và S, ký hiệu R ? S, là một quan hệ Q cũng được định nghĩa trên cùng tập thuộc tính U, mà
TQ = { t : t ? TR ? t ? TS }
2. Phép trừ 2 quan hệ (MINUS).
Cho R(U) và S(U) là 2 quan hệ. Hiệu của 2 quan hệ R và S, ký hiệu R S, là một quan hệ Q được định nghĩa trên cùng tập thuộc tính U, mà
TQ = { t : t ? TR ? t ? TS }
48
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
3. Phép giao (INTERSECTION).
Cho R(U) và S(U) là 2 quan hệ. Phép giao của 2 quan hệ R và S, ký hiệu R ? S, là một quan hệ Q được định nghĩa trên cùng tập thuộc tính U, mà
TQ = { t : t ? TR ? t ? TS }
4. Phép tích Đề Các (Des CARTESIAN).
Cho R(A1, A2, ..., An) và S(B1, B2, ..., Bn) là 2 quan hệ.
Tích Đề các của 2 quan hệ R và S, ký hiệu R x S, là một quan hệ Q được định nghĩa trên tập thuộc tính {A1, A2, ..., An, B1, B2, ..., Bn)}, mà
TQ = { t =(u,v): u ? TR ? v ? TS }
49
5. Phép chia 2 quan hệ. (DIVISION).
Không làm mất tính tổng quát, giả sử R (A,B) và S(B) là 2 quan hệ. Thương của 2 quan hệ R và S, ký hiệu là R ? S, là một quan hệ Q được định nghĩa trên thuộc tính A, mà
TQ = { t =r.A: r ? TR ? ?u ? TS ? (t,u) ? TR},
Tức là: Q x S ? R
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
50
Ví dụ: Có 3 quan hệ với các thể hiện sau:
Quan hệ phi công: PhiCong (#p) = { 30, 31, 32 }
Quan hệ máy bay MayBay (#m) = { 100, 101, 102, 103 }
Khả năng lái máy bay của các phi công: KhaNang (#p, #m )
Với các bộ giá trị: { (30,100), (30,101), (30,102), (30,103), (31,100), (31,102), (32,100), (32,101) }
Câu hỏi: "Cho danh sách các phi công có khả năng lái được tất cả các máy bay?"
Trả lời: "Phi công số 30. Đó là kết quả của phép chia quan hệ KhaNang cho quan hệ MayBay (KN ? MB) "
CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
51
1. Phép chiếu (PROJECTION)
Cho R (U) là quan hệ được định nghĩa trên tập thuộc tính U = (A1, A2, ..., An); và K ? U.
Phép chiếu quan hệ R trên tập thuộc tính K, ký hiệu là R[K] hoặc ?K(R), là một quan hệ Q (K), mà TQ = { t = r.K, r ? TR }
Nói đơn giản, là một quan hệ mới lấy từ R sau khi đã loại bỏ đi các cột không cần giữ lại, và loại bỏ các dòng giống nhau.
2. Phép chọn (SELECTION)
Phép chọn các bộ của quan hệ R thỏa điều kiện e đã cho, ký hiệu là R : (e), hoặc ? (e) (R).
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
52
Theo định nghĩa, trong kết quả của phép chiếu và phép chọn sẽ không có các bộ giá trị giống nhau.
Ví dụ 1: "Cho biết mã số và tên của các phòng ban trong công ty?".
Phép toán: PhongBan [ MaPB, TenPB]
Ví dụ 2: "Cho biết các nhân viên của Cty hiện đang làm công việc gì ?".
Phép toán: NhanVien [MaCV]
Ví dụ 3: "Cho biết mã số và tên, công việc, tiền lương của các nhân viên trong công ty?".
Phép toán: NhanVien [ MaNV, TenNV, MaCV, Luong]
Ví dụ 4: "Cho tên và tiền lương của các nhân viên của phòng số 40?".
Phép toán: ( NhanVien: (MaPB = 40))[ TenNV,Luong]
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
53
3. Phép thêta kết (? - JOIN)
Ở đây ? là một trong các phép so sánh: >, >=, <, <=, =
Cho R (U) và S (V) là các quan hệ được định nghĩa trên tập thuộc tính U ={A1, A2, ..., An} và V = {B1, B2, ..., Bn)}. A?U, B ?V là 2 thuộc tính của 2 quan hệ.
Phép ? - kết giữa quan hệ R và S, ký hiệu là R S, là một quan hệ Q (U?V), mà TQ = { t = (u, v): u ? TR ? v ? TS ? u.A ? v.B}
Phép ? - kết R và S có thể được biểu diễn tương đương:
R S = (R x S) : (R.A ? S.B)
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
54
CÁC THAO TÁC CƠ SỞ TRÊN QUAN HỆ
55
CÁC PHÉP TOÁN KHÁC
1. Phép kết trong (INNER JOIN). Thực chất là phép bằng nhau, hay phép kết tương đương EQUI-JOIN. Có thể ký hiệu phép toán này bằng dấu sao (*).
Kết quả của phép kết trong giữa R và S:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
R(A, X)
(1, x1)
(2, x2)
(3, x3)
S (B, Y)
(1, y1)
(2, y2)
(4, y4)
Cho 2 quan hệ R và S
56
2. Phép kết vế trái (LEFT JOIN).
Phép kết vế trái giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ? V, mà
TQ = { t = (u, v): u ? TR ? v ? TS ? u.A = v.B
Kết quả phép kết vế trái giữa R và S là:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
(3, x3, Null, Null) (1)
CÁC PHÉP TOÁN KHÁC
57
3. Phép kết vế phải (RIGHT JOIN).
Phép kết vế phải giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ? V, mà
TQ = { t = (u, v): u ? TR ? v ? TS ? u.A = v.B
Kết quả phép kết vế phải giữa R và S là:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
(Null, Null, 4, y4) (2)
Suy ra, có thể dễ dàng tìm được các bộ của S mà không có bộ giá trị tương ứng trong quan hệ R.
CÁC PHÉP TOÁN KHÁC
58
Viết các biểu thức quan hệ để trả lời cho các câu hỏi sau:
1: "Cho danh sách nhân viên làm cùng phòng với Watson".
(NhanVien : (TenNV = `Watson`))[MaPB] NhanVien
2: "Cho tên của người lãnh đạo Smith".
((((NhanVien : (TenNV =`Smith`))[MaPB] PhongBan)[MaNQL])
NhanVien) [TenNV]
3: "Cho danh sách nhân viên có lương trên 4000"
NhanVien : (Luong > 4000)
CÁC VÍ DỤ MINH HỌA
59
Chương VII: NGÔN NGỮ TRUY VẤN CSDL
NỘI DUNG
7.1 TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
7.2 TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
7.3 CÁC TRUY VẤN KHÁC
60
Tư tưởng chủ đạo: Cần cái gì? Từ đâu mà có?
1. Truy Vấn Đơn Giản:
Cú pháp:
SELECT
FROM
(Những cái ta CẦN thì đặt sau SELECT. Cái TỪ ĐÂU mà có đặt sau FROM)
Ghi chú:
(*) Nếu các
(*) Đặt tên lại cho biểu thức thì thêm AS
(*) Sử dụng DISTINCT ngay sau SELECT để lấy dòng ? nhau
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
61
Các ví dụ minh họa:
1. "Cho mã số, tên, công việc, lương, huê hồng, mã phòng, giới tính của các nhân viên của Cty".
SELECT MaNV, TenNC, MaCV, Luong, HoaHong, MaPB, GioiTinh
FROM NhanVien;
? SELECT * FROM NhanVien;
2. "Cho tên và tiền lương 1 năm của các nhân viên?"
SELECT TenNV, Luong*12 AS LuongCaNam
FROM NhanVien;
3. "Cho biết mã hiệu các công việc mà các nhân viên của Công ty hiện đang làm?"
SELECT DISTINCT MaCV FROM NhanVien;
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
62
2. Sắp xếp kết quả in ra - Mệnh đề ORDER BY
Cú pháp mệnh đề:
ORDER BY
Ghi chú:
(*) Có thể thay
(*) Có thể dùng với TOP n [ PERCENT] để lấy các dòng đầu.
Ví dụ:
1. "Cho danh sách các nhân viên theo từng phòng ban."
SELECT * FROM NhanVien ORDER BY MaPB;
SELECT * FROM NhanVien ORDER BY 6;
(Vì MaPB là thuộc tính thứ 6 trong danh sách biểu thức sau SELECT)
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
63
3. Chọn lọc bản ghi - Mệnh đề WHERE
Cú pháp mệnh đề: WHERE <điều kiện chọn >
Điều kiện là một biểu thức lôgíc có dạng:
p1 AND | OR p2 AND | OR p3 . And | Or pn
Ở đây pi (i = 1, 2, ., n) là các biểu thức lôgíc cơ sở, thường có dạng:
[NOT]
[NOT] EXISTS (
Ở đây:
? <, <=, >, >=, =, <>
IN (
BETWEEN
? LIKE
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
64
1) Liệt kê những nhân viên của phòng 40
SELECT * FROM NhanVien WHERE MaPB=40
2) Liệt kê những nhân viên quản lý và có lương lớn hơn 4000
SELECT * FROM NhanVien WHERE MaCV=`QuanLi` AND Luong>4000
3) Cho thông tin những nhân viên có lương lớn hơn 4000 hoặc nhân viên thuộc phòng 40
SELECT * FROM NhanVien WHERE MaPB=40 OR Luong > 4000
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
65
4. Xác định nguồn dữ liệu - Mệnh đề FROM
Cú pháp mệnh đề:
FROM
(*) Việc liệt kê danh sách quan hệ sau FROM luôn đòi hỏi phải thể hiện mối quan hệ giữa chúng trong mệnh đề WHERE và sẽ khiến máy phải thực hiện một phép tích Des Cartesian.
(*) Nên dùng bí danh cho quan hệ để tiện lợi cho cách viết lệnh.
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
66
5. Các hàm tích hợp trên nhóm bản ghi - Mệnh đề GROUP BY
Các hàm tích hợp trên nhóm các bản ghi gồm có:
SUM (
COUNT (* | [DISTINCT]
AVG (
MIN (
MAX (
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
67
Cú pháp mệnh đề:
GROUP BY
(*) Nếu không có GROUP BY thì toàn bộ là một nhóm
(*) Ngoại trừ các biểu thức có hàm tích hợp thì các biểu thức còn lại phải có mặt trong mệnh đề GROUP BY.
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
68
6. Giới hạn kết quả in ra - Mệnh đề HAVING
Cú pháp mệnh đề:
HAVING <điều kiện chọn các bản ghi kết quả>
(*) HAVING phải đi kèm với mệnh đề GROUP BY
Tóm lại, cú pháp tổng quát của câu lệnh truy vấn tìm kiếm là:
SELECT [DISTINCT] [TOP n [PERCENT]]
FROM
[WHERE <điều kiện chọn bản ghi để xử lý>]
[GROUP BY
[HAVING <điều kiện chọn bản ghi kết quả> ]
[ORDER BY
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
69
7. Câu truy vấn con (SubQuery)
Định nghĩa: Là một câu truy vấn mà kết quả của nó được dùng trong một câu truy vấn khác. Câu truy vấn con phải được đặt trong cặp dấu ngoặc tròn ( ).
Trong SQL-SERVER, ORACLE, DB2, INFORMIX, .
Câu truy vấn con có thể được dùng để tạo nguồn dữ liệu cho một câu truy vấn khác, có nghĩa là nó có thể có mặt trong mệnh đề FROM.
Có thể được dùng nhiều biểu thức sau SELECT trong câu truy vấn con, xem như đó là một bộ giá trị. Các phép toán so sánh với một bộ giá trị vẫn được viết một cách bình thường.
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
70
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
Các phép so sánh có thể dùng với câu truy vấn con là:
? >, >=, =, <, <=, <> (Nếu Subquery cho lại duy nhất 1 giá trị)
? IN, =Some, =Any: Các phép toán tương đương nhau, dùng để kiểm tra xem một giá trị có nằm trong tập giá trị của Subquery.
? > All, >=All,
71
"Cho danh sách nhân viên có lương cao nhất và thấp nhất Công ty"
Q1: Tìm mức lương cao nhất (?x) và thấp nhất (?y) công ty.
Q2: Tìm các nhân viên có lương = (x) hoặc lương = (y).
SELECT * FROM NhanVien
WHERE Luong = (SELECT MAX(Luong)
FROM NhanVien)
OR Luong = (SELECT MIN(Luong) FROM NhanVien)
TRUY VẤN ĐỂ TÌM KIẾM THÔNG TIN
72
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
1. Tạo bảng từ dữ liệu của câu truy vấn
Cú pháp:
SELECT
FROM
[Mệnh đề WHERE>]
[Mệnh đề GROUP BY]
[Mệnh đề HAVING]
[Mệnh đề ORDER BY]
Ví dụ: "Tạo quan hệ có tên là Manager để lưu các n/v phụ trách các phòng/ban".
Select * into Manager from NhanVien where MaCV=`QuanLi` ;
73
2. Thêm bộ giá trị vào quan hệ.
a. Thêm 1 bộ từ giá trị đã cho:
Cú pháp:
INSERT INTO
Ví dụ: "Thêm nhân viên mới có tên là Hoàng Duy mã số 300 vào phòng số 10 làm n/v kế toán với lương 2700$".
INSERT INTO NhanVien
VALUES (300, `Hoàng Duy`, `KeToan`, 2700, NULL, 10, `M`);
* Nên viết:
Insert Into NhanVien(MaNV, TenNV, MaCV, Luong, HoaHong, MaPB, GioiTinh)
Values (300, `Hoàng Duy`, `KeToan`, 2700, NuLL, 10, `M`)
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
74
b. Thêm các bộ từ CSDL:
Cú pháp:
INSERT INTO
Select (
From
[Where <điều kiện>]
[Group by
[Having <điều kiện chọn bản ghi cuối cùng>];
Ví dụ: "Thêm vào quan hệ Manager các nhân viên có lương > 4000$"
INSERT INTO MANAGER
SELECT * FROM NhanVien
WHERE Luong > 4000
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
75
4. Xóa các bộ trong CSDL:
Cú pháp:
DELETE FROM
[WHERE <điều kiện xóa các bộ>];
(*) Nếu không có điều kiện sau WHERE thì tất cả các bộ giá trị của quan hệ sẽ bị xóa.
Ví dụ: "Xóa khỏi quan hệ NhanVien các nhân viên phụ trách các phòng ban".
DELETE FROM NhanVien
WHERE MaCV = `QuanLi`;
TRUY VẤN ĐỂ THAY ĐỔI DỮ LIỆU
76
Tạo cấu trúc bảng (quan hệ)
Sửa đổi cấu trúc bảng.
Sửa kích thước các cột (Field Size)
Thêm cột mới vào bảng (Add Column).
Xác định miền giá trị (Domain).
Thiết lập giá trị mặc định (Default Value).
Thiết lập khóa chính (Primary Key).
Thiết lập khóa ngoại (Foreign Key).
Bổ sung chỉ mục (Index).
Tạo và cấp quyền hạn cho người sử dụng.
Hủy bỏ Khóa, Chỉ mục, Quan hệ, Người dùng...
CÁC PHÉP TOÁN KHÁC
77
TỐI ƯU HÓA CÂU TRUY VẤN
MỞ ĐẦU
CÁC NGUYÊN TẮC TỔNG QUÁT ĐỂ TỐI ƯU HÓA CÂU TRUY VẤN
Các nguyên tắc cơ bản
Các biểu thức tương đương
Các quy tắc liên quan đến phép kết và phép Tích Đề các
Các quy tắc liên quan đến phép chọn và phép chiếu
78
MỞ ĐẦU
Tối ưu hóa câu truy vấn là các phép biến đổi (tương đương) các câu truy vấn nhằm giảm thời gian xử lý và không gian lưu trữ.
79
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
1. Các nguyên tắc cơ bản
Gồm 6 nguyên tắc:
Thực hiện các phép chọn càng sớm càng tốt
Tồ hợp các phép chọn và phép tích Đề-Các thành phép kết
Tồ hợp các phép quan hệ một ngôi như phép chọn và phép chiếu
Tìm biểu thức con chung trong một biểu thức
Tiền xử lý bảng ? indexes
Đánh giá chi phí khi thực hiện trên phép toán
80
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
81
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
Các nguyên tắc liên quan đến phép kết và phép tích đề các
Qui tắc kết hợp
Qui tắc giao hoán
82
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
Các nguyên tắc liên quan đến phép chọn và phép chiếu
Dãy các phép chọn
Dãy các phép chiếu
Giao hoán phép chọn và phép chiếu
83
Giao hoán phép chọn và phép tích Đề-các
Giao hoán giữa phép chọn và phép hợp
nếu f liên quan R1
nếu f liên quan R2
nếu
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
84
Giao hoán giữa phép chọn và phép trừ
Giao hoán phép chiếu với phép tích Đề-các
Giao hoán giữa phép chiếu và phép hợp
với
là thuộc tính bao gồm
và
NGUYÊN TẮC TỐI ƯU HÓA CÂU TRUY VẤN
85
TÀI LIỆU THAM KHẢO
Nguyễn Đăng Tỵ, Giáo trình CSDL, ĐHQG Tp.HCM, 2001
Lê Tiến Vương, Nhập môn CSDL, NXB Thống kê, 2000
Bùi Minh Từ Diễm, Bài giảng nhập môn CSDL, KHTN, 2002
Nguyễn Bá Tường, CSDL Lý thuyết và thực hành, NXB Khoa học kỹ thuật
David Maier, The Theory of Relational Databases
...
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Văn Cao Thuan
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)