Thoâng baùo loãi phaûi ñaày ñuû, roõ raøng vaø lòch söï.. Ñoù laø caùc phuï thuoäc tính toaùn hoaëc moät suy dieãn töø giaù trò cuûa moät hay nhieàu thuoäc tính trong cuøng moät boä gi[r]
Trang 1CƠ SỞ DỮ LIỆU
(60t LT + 30t TH)
Trang 2Chươ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:
Trang 3Chươ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
Trang 4Xé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)
Trang 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)
Trang 6Cơ 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)
Trang 7Là 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ó:
a) Từ điển dữ liệu (Data Dictionary)
b) Cơ chế giải quyết tranh chấp (Quyền và mức độ ưu tiên)
c) Cơ chế bảo mật dữ liệu (Bức tường lửa + mật khẩu)
d) 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)
e) Ngôn ngữ giao tiếp người sử dụng (NSD) với CSDL (SQL)
f) Đảm bảo tính độc lập giữa dữ liệu và chương trình.
g) 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)
Trang 8Có 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
Trang 9 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)
Trang 10Mô 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)
Trang 11MÔ 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ệ.
Trang 12đượ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.
Trang 13MÔ 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à:
(1) 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
(2) 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ở
(3) Tính tương ứng bội (Polymorphism)
(4) 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
Trang 146 Lược đồ quan hệ & lược đồ CSDL
2.2 CÁC THAO TÁC CƠ BẢN TRÊN MỘT QUAN HỆ
1 Thêm bộ giá trị mới vào quan hệ
2 Cập nhật các bộ giá trị của quan hệ
3 Xóa bỏ các bộ giá trị khỏi quan hệ
Trang 15MỘ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
Trang 16Ví 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.
Trang 174 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ệ
Trang 183 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
Trang 195 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 (A 1 , A 2 , A n ) là quan hệ A 1 là khóa Khi đó cũng có:
A 1 A 2 , A 1 A 3 , A 1 A 4 , A 1 A n: là khóa
A 1 A 2 A 3 , …, A 1 A 2 A n 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
Trang 20b Định nghĩa khóa và siêu khóa (Key & Super key):
R (A 1 ,A 2 , …, A n ) là quan hệ K { A 1 ,A 2 , A n }
K là khóa của R nếu và chỉ nếu thỏa:
1) K là khóa theo đ/n 1
2) K 1 K mà K 1 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 A i đượ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
Trang 21Quy ướ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, K2V; 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
Trang 22f Khóa lồng (Nested Key)
R(U), K1U là khóa chính của R.
S(V), K2V là khóa ngọai của S khi tham chiếu tới K1 của R K3K2 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
Trang 237 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
Trang 241 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Ệ
Trang 253 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Ệ
Trang 26o Các yếu tố của RBTV
4.2 PHÂN LOẠI CÁC RBTV
o RBTV có bối cảnh trên một quan hệ
o 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
Trang 272 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ệ
Trang 28Ví 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:
Trang 29b) Boâi cạnh xạy ra RBTV.
Xaùc ñònh roõ RBTV coù lieđn quan ñeân maây quan heô vaø ñoù laø nhöõng quan heô naøo
c) Taăm ạnh höôûng cụa RBTV.
Caăn xađy döïng bạng goăm 4 coôt: Teđn quan heô, Theđm, Xoùa, Söûa Neâu thao taùc naøo vi phám RBTV ñoâi vôùi quan heô naøo thì tái giao ñieơm doøng vaø coôt ñoù ñöôïc ghi daâu coông (+) Neâu chư ạnh höôûng tređn caùc thuoôc tính naøo thođi thì ghi teđn caùc thuoôc tính ñoù ôû phía döôùi daâu coông Neâu khođng ạnh höôûng thì ghi daẫu tröø (-); vaø neâu khođng ạnh höôûng vì lyù do khođng söûa ñöôïc thì ghi theđm daâu sao (*)
ôû phía tređn cụa daâu tröø ñoù
Ví dú: Ạnh höôûng tređn thuoôc tính MaPB: +(MaPB)
Vaø khođng ạnh höôûng do khođng theơ söûa ñöôïc: -(*)
ÑÒNH NGHÓA – CAÙC YEÂU TOÂ CỤA RBTV
Trang 30NhanVien +(MaPB) - +(MaPB)
e NhanVien, d PhongBan: e.MaPB = d.MaPB
NhanVien[MaPB] PhongBan[MaPB]
ĐỊNH NGHĨA – CÁC YẾU TỐ CỦA RBTV
Trang 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
Trang 32PHÂN LOẠI CÁC RBTV
1 RBTV có bối cảnh là một quan hệ.
a) 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ị
Trang 33PHÂN LOẠI CÁC RBTV
2 RBTV có bối cảnh trên nhiều quan hệ.
a) 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ạiCó 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ệ
Trang 34Vd: “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
NhanVien +(MaPB) - +(MaPB)
Trang 35b) 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
)
(
: sv DTB AVG dsv Diem SINHVIEN
Trang 37b) 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
Trang 382 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ì XY Luật tăng trưởng: X, Y, W U Nếu XY thì XWYW Luật bắc cầu: X, Y, Z U Nếu XY YZ thì XZ
b) Bổ đề, 3 tiên đề mở rộng.
(iv) Luật tách: X, Y, Z U Nếu XYZ thì X Y XZ
(v) Luật gộp: X, Y, Z U Nếu XY XZ thì XYZ
(vi) Luật tựa bắc cầu:
X, Y, Z, W U Nếu XY YWZ thì XWZ
PHỤ THUỘC HÀM VÀ BIỂU DIỄN RBTV BẰNG PTH
Trang 39c) 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
Trang 405.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.