Tài liệu giảng dạy nhập môn cơ sở dữ liệu - Công nghệ thông tin | Trường Đại học Quy Nhơn

Tài liệu giảng dạy nhập môn cơ sở dữ liệu - Công nghệ thông tin | Trường Đại học Quy Nhơn được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC QUY NHƠN
ThS. Phạm Văn Phu
TÀI LIỆU GIẢNG DẠY
NHẬP MÔN CƠ SỞ DỮ LIỆU
(TRÌNH ĐỘ ĐẠI HỌC, NGÀNH CÔNG NGHỆ THÔNG TIN)
Quy Nhơn, 6/2016
2
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC QUY NN
ThS. Phạm Văn Phu
TÀI LIỆU GIẢNG DẠY
NHẬP MÔN CƠ SỞ DỮ LIU
(TRÌNH ĐỘ ĐẠI HỌC, NGÀNH CÔNG NGHỆ THÔNG TIN)
SỐ TÍN CHỈ: 3
(LÝ THUYẾT: 45, THỰC HÀNH : 0, THẢO LUN: 0)
Quy Nhơn, 6/2016
3
Mục lục
Chƣơng 1: CÁC KHÁI NIỆM VÀ HÌNH D LIỆU CƠ BN................................5
M ĐU ...............................................................................................................................5
§1 CÁC KHÁI NIM BN ........................................................................................6
§2 CÁC HÌNH D LIU CƠ BẢN ........................................................................7
§3 CÁC KHÁI NIM BN CA MÔ HÌNH QUAN H ...................................10
Chƣơng 2: ĐI S QUAN H VÀ CÀI ĐẶT ĐI S QUAN H .............................13
M ĐU .............................................................................................................................13
§1 PHÉP CH N ................................................................................................................14
§2 PHÉP CHIU ...............................................................................................................16
§3 PHÉP K T N I T NHIÊN......................................................................................18
§4 PHÉP CHIA QUAN H .............................................................................................20
§5 QUAN H TƢƠNG THÍCH ......................................................................................21
BÀI TẬP CHƢƠNG 2...........................................................................................................23
Chƣơng 3: PHỤ THU C HÀM ..........................................................................................25
M ĐU .............................................................................................................................25
§1 PH THU C HÀM CÁC TÍNH CH ẤT BN .........................................26
§2 H TIÊN ĐỀ ARMSTRONG CHO CÁC PH THU C HÀM ...........................29
§3 BAO ĐÓNG CỦA T P PH THU C HÀM .........................................................30
§4 BAO ĐÓNG CỦA TP THU C TÍNH ..................................................................31
BÀI TẬP CHƢƠNG 3...........................................................................................................33
Chƣơng 4: KHOÁ CỦA ỢC Đ QUAN H VÀ H SPERNER ............................35
§1 KHOÁ VÀ CÁC TÍNH CHẤT BN.................................................................35
§2 H SPERNER TP KHOÁ CA LƢỢC ĐỒ QUAN H .............................37
BÀI TẬP CHƢƠNG 4...........................................................................................................38
Chƣơng 5: PHỦ CA TP PH THU C HÀM.............................................................39
M ĐU .............................................................................................................................39
§1 PH C A T P PH THUC HÀM ......................................................................40
§2 CÁC K T QU QUAN TR NG V CPH A T P PH THU C HÀM ...42
§3 CÀI ĐT THU T TOÁN TÌM PH C A T P PH THU C HÀM ..............43
4
BÀI TẬP CHƢƠNG 5...........................................................................................................45
Chƣơng 6: CHUN HÓA ....................................................................................................46
M ĐU .............................................................................................................................46
§1 PHÉP CH KHÔNG T N TH T THÔNG TIN 47 .................................................
§2 CÁC DNG CHUN C A QUAN H ..................................................................47
§3 CÁC THU T TOÁN CHU N HÓA .......................................................................49
BÀI TẬP CHƢƠNG 6...........................................................................................................51
TÀI LIU THAM KHO.....................................................................................................52
5
Chƣơng 1: CÁC KHÁI NIỆM VÀ MÔ HÌNH
DỮ LIỆU CƠ BẢN
MỞ ĐU
Cơ sở d liệu (CSDL) là lĩnh vực của tin hc nhằm nghiên cứu các cơ chế,
nguyên lí phƣơng pháp tổ chức d liệu trên các thiết bị nhớn ngoài ca máy tính,
nhằm phục v cho việc khai thác dữ liệu trong các hệ thống tin học ứng dụng.
Trong s 3 mô hình cơ bản 3 cách tiếp cận cho việc tổ chức và khai thác các -
CSDL làhình phân cấp,nh mạng nh quan h thì mô hình quan h
đƣợc quan tâm hơn cả vì mô hình này đƣợc xây dựng trên một cơ sở toán hc chặt chẽ
thuyết về các quan hệ và có hình nh trực quan gần với các quan niệm thông thƣờng
của ngƣời dùng cuối.
6
§1 CÁC KHÁI NIỆM CƠ BN
1.1. CSDL
CSDL là một tập các dữ liệu vcác đi tƣợng cần đƣợc qun lí, đƣợc lƣu tr
đồng thời trên các vật mang tin (các thiết bị nhớ ngoài ) ca máy tính điện tvà đƣợc
quản theo một chế thống nhất gọi là hệ quản trcơ sở dữ liu nhằm thực hiện 3
chức năng sau đây một cách tối ƣu:
i) Mô tả dữ liệu.
ii) Cập nhật dữ liệu.
iii) Tìm kiếm dữ liệu.
1.2. HỆ QUẢN TRỊ CSDL
Hệ QTCSDL là một hệ thống phn mm (các cơng tnh) giúp cho ngƣời s
dng khai tc các CSDL theo 3 chức năng nói trên.
Chú ý: Các CSDL đối tƣợng quản của c Hệ QTCSDL, chúng đƣợc tạo lp và
lƣu tr trên các thiết bị nhớ ngoài của máy tính.
1.3. TẠI SAO CẦN CÓ CSDL?
CSDL là b phận không thể thiếu đƣợc trong các hệ lƣu tr tìm kiếm thông tin,
các hệ thống quản lí kinh tế các ngành, các cấp, các hthống quản kho ng, liu,
các hệ thng phục vụng cộng nhƣ ngân hàng, bán vé máy bay, các phƣơng tiện giao
thông, các h thống thiết kế tự động,…
7
§2 CÁC MÔ HÌNH DỮ LIỆU CƠ BẢN
2.1. HÌNH MẠNG
Mô hình mng đƣợcy dựng trên các tập dữ liu và các quan h.
Từ các tập dliệu rời nhau sau đó ln kết lại với nhau thành một mạng liên
thông.
Tập dữ liệu đƣợc tạo ra từ những dữ liệu cùng một kiu gọi là bn ghi.,
Mỗi bản ghi đƣợc to bởi các trƣờng. Theo hình trên ta có hai tập dữ liu là:
Nhân sự và Thành phố, với các bản ghi tƣơngng nhƣ sau:
- Mỗi phần tử của tp Nhân sự đƣợc mô tả qua 6 trƣờng (6 thuộc tính ):
Mã CB, Họ tên, m sinh, Lƣơng, Số con, Chức v.
- Mỗi phn t của tập Thành phố đƣợc mô tqua 5 thuộc nh:
Mã thành phố, Tên gọi, Diện tích, Dân s Khoảng cách đến thđô, .
Quan hệ xác lp một tƣơng quan ánh xạ giữa 2 tp dữ liu. -
Theo hình trên ta có quan hệ:
Nơi sinh: Nhân sự Thành phố
Mỗi nhân sự cụ thể ca tập Nhân sự một nơi sinh c thể.
Giữa hai tập trên còn có thể có quan hệ thứ hai, chng hn:
Nơi đến công tác: Cho biết cán bộ X đến làm việc tại những thành phố nào.
c quan h đƣợc phân loi theo kiểu ánh xạ, ví dụ:
Nơi sinh là ánh xạ đơn trị, đƣợc kí kiệu là: 1 1 (mỗi ngƣời một nơi sinh ), -
n nơi đến công c là một ánh xkhông đơn trị, kí hiệu là: 1 N (một ngƣời có-
thể tổ chức chuy đi công tác ở nhiều thànhến phố).
Để tạo lp một CSDL theo mô hình mạng chúng ta cần các thao tác sau:
Tạo lập một tập: Bao gồm vic khai báo n tp và mô tả các thuộc tính của
tập.
Thiết lập một quan hệ giữa hai tập: Bao gồm việc khai o n quan h, n
tập nguồn,n tập đích và kiểu quan hệ.
Nhân s
Thành ph
8
Chú ý:
Mô hình mng có những ƣu, nhƣợc đim sau:
- Ƣu đim: Mang lại cho ta một thông tin của sự hiểu biết, dễ b sung các lớp
đối tƣợng (tp dữ liệu) các quan h.
- Nhƣợc điểm: Phức tạp, luôn đòi hi một hình ảnh trực quan, dễ sinh ra nhọc
nhằn bởi dễ sinh ra quan hệ giữa các đối tƣợng.
2.2. HÌNH PHÂN CP
Đây một trƣờng hợp riêng của hình mạng, trong đó khái niệm tp đƣợc
ginguyên còn khái niệm quan hệ đƣợc giới hạn ở kiu phân cp.
Giữa 2 tập (nếu có) không quá một quan hệ quan hệ này tuân th trật tự trên
dƣới.
Loại nh phân cp k phù hp với những hình thức t chức phân cấp
trong hi. Ví dụ một cơ sở dữ liệu quản cht lƣợng học tp của sinh viên
các trƣờng đại hc và cao đẳng có thể có cấu trúc pn cấp sau:
Một mô hình phân cấp thƣờng gặp trong các hệ thống máy tính là hình quản
lí thƣ mục.
Đặc điểm nổi bật trong các thủ tc truy nhp tới một đi tƣợng trong hình
phân cp là đƣờng dn đƣờng đi từ gốc ỉnh đầu tiên) tới phn tử cn xét trong cây -
phân cấp.
Chú ý:
Mô hình phân cấp có những ƣu, nhƣợc điểm sau:
- Ƣu điểm: Thhiện đƣợc ngun lý nn theo từng mức muốn chế ng đ
phức tp nên chia để trị”.
- Nhƣợc điểm: Theo nguyên tắc này chỉ lên xuống 1 mức nên không nhìn thy
những phần tnm ở những nhánh khác.
Khoa Toán
Khoa Lý
BỘ GIÁO DỤC VÀ ĐÀO
TẠO
ĐH QG HÀ NI
ĐH QUY NHƠN
……
9
2.3. HÌNH QUAN H
Mô hình này đƣợc E.F Codd đề xuất năm 1970.
Theo hình này: Một CSDL quan hệ đƣợc tạo lập tcác quan hệ hình ảnh
trực quan là các bảng. Mỗi bng bao gồm các cột đƣợc gọi thuộc nh và các dòng
đƣợc gọi là b.
Ví dụ: Giả sta cơ sdữ liệu THỰC TẬP, nhằm lƣu trữ thông tin vđợt
thực tập ca sinh viên, đƣợc tạo từ 3 quan hệ sau đây:
1. Quan hệ Sinh vn (SV)
sinh
vn
Họ và tên
Năm sinh
Quê quán
….
2. Quan hệ ĐềiT)
đề
tài
Tên đề tài
Chủ
nhiệm
Kinh phí
....
….
….
….
3. Quan hệ Sinh viên đ tài (SVĐT)
sinh vn
đ tài
Nơi thực tập
Kết quả
….
….
….
….
2.4. CÁC ĐẶC ĐIỂM CA MÔNH QUAN H
sở toán học chặt chẽ, cho phép áp dng rộng rãi các ng c đại số và
logic.
Khá tự nhiên, gần với quan niệm thông thƣờng của ngƣời sdng.
Ngôn ngữ thao tác trong sáng kh năng tổ hp cao.
Dễ đảm bảo tính an toàn d liệu, thể đặt mật khẩu truy nhập nhiều
mức: mức quan hệ, mức thucnh, mức bộ, mức thuộc tính - bộ.
Dễ cập nhật tới các đơn vd liu.
Dễ đảm bảo tính độc lập dữ liệu.
Chú ý:
Khi xây dựng cáchình dữ liệu cần phân biệt các thành phn cơ bản sau:
Thực thể: là đối tƣợng có trong thực tế mà chúng ta cần tcác đặc
trƣng của nó.
Thuc tính: là tính chất thuộc thực thể.
ng buc: là các mối quan h logic của các thực thể.
10
n
i=1
§3 CÁC KI NIỆM CƠ BẢN CỦA HÌNH QUAN H
3.1. QUAN H
Cho tập hữu hn U = {A
1 2
, A , …,A
n
} (n >= 1). Các phần tử của U đƣợc gi
là thuộc nh. Ứng với mỗi thuộc tính A , i =1,n ta đặt ơng ng một tập d và gọi
i i
miền trị của thuộc tính A , hiu: d
i i
= dom(A
i
). Đặt
D =
n
i 1
dom(A
i
)
Khi đó ta có
3.1.1. Định nghĩa
Quan hệ R với tập thuộc nh U (k/h: R(U)) một tập các ánh x t: U D sao
cho với mỗi A
i
U ta phải có t(A
i
) dom(A
i
), i=1,n.
c ánh xạ này đƣợc gọi là bộ ca quan hệ R.
3.1.2. Định nghĩa
Quan hệ R(U)một b phn của tích Đề Các những dom(A
i
), i=1.. n
(tức: R(U) X dom(A
i i
)).
3.1.3. Chú ý
Hai định nghĩa trên tƣơng đƣơng.
V mặt trực quan, một quan hệ có thể biểu diễn nhƣ một bảng 2 chiều
gm các ct các thuộc nh các ng là các b và bng phải thoả
mãn 2nh chất sau:
- Hữu hạn tại mọi thời điểm.
- Thứ tự của các hàng cột là không quan trọng.
Vì quan hệ là tp hp n trong quan hệ không có 2 bộ ging nhau hoàn
toàn.
3.2. SỞ DỮ LIỆU QUAN HỆ
CSDLQH một tp các quan hệ biến thiên theo thời gian và đƣợc quản lý bng
một cơ chế thống nhất gọi hệ quản trị cơ sở d liệu quan hệ.
3.3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN H
Hệ QTCSDLQH là hệ thống phần mềm giúp chúng ta quán xuyến toàn bộ việc
tạo lập và khai thác các cơ sở dữ liu quan hệ.
11
3.4. RÀNG BUỘC DỮ LIỆU
Ràng buộc dliệu là những quy định mà dữ liệu trong một cơ sdliu phải thỏa
mãn.
Mục đích của việc đt ra các ràng buộc dliệu là nhằm đảm bảo cho dữ liệu trong cơ
sở dữ liu phản ánh đúng thế giới hiện thực.
c ràng buc dliu thƣờng đƣợc mô tả vào lúc tạo lập quan hệ và thuộc tính.
Có các loại ràng buộc dữ liệu cơ bn nhƣ:
Ràng buộc vkiểu dliệu: Đây loi ràng buộc thấp nhất cũng loại ràng
buộc tối thiểu, bt buộc đối với hu hết các CSDL.
Ví dụ: Khai báo dom(HOTEN) = C(25); dom(NAMSINH) = N(4);…
Ràng buộc giải tích: Đây loại ng buộc giữa các thuộc tính với nhau thể
hin qua các biểu thức tính toán.
Ví dụ: ĐTB = (TOAN * 3 + TIN * 2)/5
Ràng buộc logic: mức độ tổng quát các ràng buộc loi này đƣợc tdƣới
dng các biểu thức logic.
Ví dụ: Mã sinh vn Họ tên, năm sinh, quê quán;
ĐTB XEPLOAI;
3.5. CÁC KÝ HIỆU TRUYỀN THỐNG
Theo truyền thống ca lý thuyết CSDL, chúng ta chấp nhận các quy định sau đây:
- c thuộc tính đƣợc kí hiu bằng các chLatinh hoa đầu bảng: A, B, C,…
- Tập thuc tính đƣợc kí hiu bằng các chữ Latinh hoa cuối bảng: X, Y, Z,…
- Các thuộc nh trong một tập đƣợc liệt nhƣ một xâu t, không các dấu
biu din tập, chẳng hạn: U = ABC thay viết: U = {A, B, C}.
- XY biu din cho hp của 2 tập thucnh X và Y.
- c bộ trong quan hệ đƣợc biểu diễn bằng các chLatinh thƣờng: s, t, u,
- Với t U. Kí hiu: t.A là gía trị ca bộ t tại thuộc tính A R(U), A .
- Với t U. Kí hiệu: t.X là hn chế/ thu hẹp của ánh xạ t trên X R(U), X .
(tức: t.X bộ con ca bộ t, chỉ lấy những giá trị trên X)
12
3.6. DỤ THC TẾ VỀ CƠ SỞ DỮ LIU QUAN H
Giả sta cơ sở dữ liệu quan hệ THỰC TP, nhm u trữ thông tin về đợt
thực tập ca sinh viên, đƣợc tạo từ 3 quan hệ sau đây:
1. Quan hệ Sinh vn (SV)
sinh
vn
Họ và tên
Năm sinh
Quê quán
….
Quan hệ SV lƣu trữ thông tin về sinh viên, bao gm các thuộcnh sau:
Mã sinh viên (MSV); Họ và tên (HT); m sinh (NS); Q qn (QQ)
2. Quan hệ Đề tàiT)
đề
tài
Tên đề tài
Chủ
nhiệm
Kinh phí
....
….
….
….
Quan hệ ĐT lƣu trthông tin vcác đtài do nhà trƣờng quản lý, bao gồm các
thucnh sau:
đtài (MĐT); Tên đề tài (T);Ch nhiệm đtài (CN); Kinh phí cấp cho
đề tài (KP) và giả sử đơn vnh của ct Kinh phí là triu đồng.
3. Quan hệ Sinh vn đề tài (SVĐT)
sinh vn
đ tài
Nơi thực tập
Kết quả
….
….
….
….
Quan hệ SVĐT lƣu trthông tin v việc thực tập của sinh vn: ai (MSV) tham
gia đề tài o (T) thực tp đâu (NTT) kết quả thực tập đạt bao nhiêu
điểm (KQ).
Và giả sử rằng các quan hệ của CSDLQH nói trên thỏa mãn các ràng buộc sau đây:
Mỗi sinh viên chỉ tham gia một đề tài.
Mỗi đ tài có th đƣợc triển khai nhiều thành phố khác nhau.
Chủ nhiệm đề tài chỉ đm nhiệm duy nhất đềi đó.
13
Chƣơng 2: ĐẠI SỐ QUAN HVÀ CÀI ĐẶT ĐẠI SỐ QUAN H
MỞ ĐU
Đại s quan hệ là một bđôi sp thtgm B P hiệu (
= (B,P)), ở đây
B là tập các quan h trong một CSDLQH cho trƣớc, còn P tập các phép toán thao
tác trên các quan h ca B gồm các phép toán cơ bản sau:,
- Phép chọn kí hiệu: ( )
- Phép chiếu [ ]
- Phép kết ni tự nhiên *
- Phép tích Đề Các x
- Phép hợp +
- Phép giao .
- Phép hiệu -
- Phép chia
Tập hợp các phép toán của đại s quan hệ s tạo tnh một chế truy nhp
linh hot, nhờ các phép toán này mà chúng ta có thể trích dữ liệu từ một hay
nhiều quan hệ cho trƣớc đtạo thành một quan h mới nhằm trả lời cho một
câu hỏi tìm kiếm đt ra.
Đại squan hệ là một trong những ngôn ngcon truy nhập dữ liu (còn đƣợc
xem nhƣ một ngôn ngữ hỏi).
Đại squan hệ là cơ sở toán học đ cài đặt cú pháp SQL và cho phép diễ đạt n
các thao tác xử lý quan hệ.
Chú ý:
- Những phép toán i trên còn đƣợc gọi các phép toán đi số quan hệ/ phép
toán quan hệ.
- SQL (Structured Query Language):một ngôn ngữ hỏi có cấu trúc.
14
§1 PHÉP CHN
2.1.1. Đnh nghĩa Cho quan hR(U) ét một b t. X
R(U) và một biểu thức logic E
phát biu trên U (E còn gọi là điu kiện chn). Khi đó :
Bt thoE (kh: hay mọi xut hiện của thuộc tính A trong E bởi giá tr t.A t(E)) T
thì ta thu đƣợc một mệnh đề logic đúng.
2.1.2. Ví dụ Giả st quan h SV, với b t = H (2, Quý, , 1985 Hà Ni )
SV
xét điều kiện chọn E = “tuổi đời hiện nay trên 2 6 quê quán ở Huế .
Hỏi rằng ộ t : B này thoả E hay không?
Đs: Bộ t kng thỏa E
2.1.3. Đnh nghĩa Cho quan h R(U) một biểu thức logic E phát biểu trên U.
Phép chọn quan hệ R theo E (k/h: R(E)) cho kết qu là một quan hệ P có tập thucnh
U có các b ca R thoả E.
Nói gọn ta có: R(E) = P(U)= {t
R t(E)}
2.1.4. Ví dụ
a) Cho quan hệ R nhƣ sau:
và điều kiện chọn E = “A
a
1
C - 3 >0”
Khi đó ta có: R(E) = P
A
B
C
a
1
x
2
a
2
y
5
a
1
m
4
a
3
x
1
A
B
C
a
2
y
5
a
1
m
4
a
3
x
1
15
b) Cho biết thông tin nói vnhững đề tài có kinh phí trên 5 triệu dƣới 12 triệu?
P = ĐT(KP > 5 KP < 12)
c) Cho biết thông tin nói v việc thực tp của những sinh vn đạt kết quả ít nhất là
9 và thực tập ti Hà Nội?
P = ST( KQ >= 9 NTT = „Hà Nội‟)
i đặt thuật toán thực hiện phép chọn:
(Sử dụng ngôn ngữ ALGOL/ ngôn ngữ ta Pascal đ mô t cài đặt)
Algorithm Selection:
Input: R(U), E.
Output: Tính R(E) = ?
Actions:
Create(P,U);
For each tuple t in R do
If t(E) then
Add(P, t);
End if;
End for;
Return P;
End.
16
§2 PHÉP CHIẾU
2.2.1. Đnh nghĩa Cho quan h R(U) và tập thuộc tính X
U.
Phép chiếu quan h R trên X (k/h: R[X]) cho kết quả là quan hệ P có tập thuc nh X
và chứa các bộ ca R hạn chế trên X .
Nói gọn ta có: R[X] = P(X) = {t.X t
R}
2.2.2. Ví dụ
a) Cho quan h R n sau:
Khi đó ta có: R[AB] = P
b) Cho biết họ tên và quê quán ca các sinh vn?
P = SV[HT, QQ]
c) Cho biết ca những sinh viên thực tập tại nh Định và đạt kết qucao nhất là
8?
P = ST(NTT = „Bình Định‟ KQ <= 8)[MSV]
A
B
C
a
1
x
5
a
2
y
7
a
1
x
4
a
2
y
3
A
B
a
1
x
a
2
y
17
i đặt thuật toán thực hiện phép chiếu:
(Sử dụng ngôn ngữ ALGOL/ ngôn ngữ tựa Pascal để mô t cài đặt)
Algorithm Projection:
Input: R(U), X
U.
Output: Tính R[X] = ?
Actions:
Create(P, X);
For each tuple t in R do
If !(t.X in P) then
Add(P, t.X);
End if;
End for;
Return P;
End.
18
§3 PHÉP KẾT NỐI TNHIÊN
2.3.1. Đnh nghĩa Cho 2 quan hệ R(U) V) vS( ới U
V
.
Phép kết nối tnhiên 2 quan hệ R S (k/h: R*S) cho kết quả là quan hệ tập P
thucnh UV và chứa các bộ đƣợc xác định n sau:
R*S = P(UV) = { t.U R t t.V S}
2.3.2. Ví dụ
a) Cho 2 quan hệ sau
R S
Khi đó ta có: R*S = P
b) Cho biết hn và kết qu thực tập của những sinh vn thực tập tại quê nhà?
P = (SV*SVĐT)(QQ = NTT)[HT, KQ]
c) Cho biết mã của những sinh viên tui đời hiện nay dƣới 22 và thực tập đạt
kết quả trên 9?
P = (SV*SVĐT)(2012 NS < 22 KQ > [MSV] 9)
2.3.3. Chú ý
- Vì quan hệ là tập hợp n trong quan hệ không chứa 2 bộ giống nhau hoàn
toàn.
A
B
a
1
x
a
2
y
a
3
x
B
C
E
x
4
n
y
5
z
y
2
m
z
3
n
A
B
C
E
a
1
x
4
n
a
2
y
5
z
a
2
y
2
m
a
3
x
4
n
19
- Khi sử dụng đồng thời 2 phép toán chọn chiếu, thông thƣờng nên chn
trƣớc rồi chiếu sau.
- Nếu 2 quan hệ R(U) S(V) U
V
thì ta có phép toán Tích Đề các
đƣợc đnh nghĩa nsau:
R S = P(UV) = {(a,b) a
R
b
S}
i đặt thuật toán thực hiện phép kết nối tự nhiên 2 quan h:
(Sử dụng ngôn ngữ ALGOL/ ngôn ngữ ta Pascal đ mô t cài đặt)
Algorithm Natural Join:
Input: R(U), S(V), U
V
.
Output: Tính: R*S = ?
Actions:
Create(P, UV);
X:= U
V;
For each tuple t in R do
For each tuple s in S do
If t.X = s.X then
Add(P, ( s.V \ X) t, );
End if;
End for;
End for;
Return P;
End.
20
§4 PHÉP CHIA QUAN H
2.4.1. Đnh nghĩa Cho 2 quan hệ R(U) và S(V) với V U. Đặt X = U \ V.
Phép chia quan hệ R cho quan h S (k/h: R
S) cho kết quả là quan hP tp thuộc
tính là X và có các bộ của P đƣợc xác định nhƣ sau:
R
S = P(X) = {t.X t
R
s
S: (t.X, s)
R}
2.4.2. Ví dụ Cho 2 quan hệ sau:
R S Khi đó ta có: R
S = P
B
a
b
A
1
3
A
B
1
a
1
b
1
c
2
c
2
d
3
a
3
b
4
a
| 1/52

Preview text:

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC QUY NHƠN
ThS. Phạm Văn Phu
TÀI LIỆU GIẢNG DẠY
NHẬP MÔN CƠ SỞ DỮ LIỆU
(TRÌNH ĐỘ ĐẠI HỌC, NGÀNH CÔNG NGHỆ THÔNG TIN) Quy Nhơn, 6/2016
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC QUY NHƠN
ThS. Phạm Văn Phu
TÀI LIỆU GIẢNG DẠY
NHẬP MÔN CƠ SỞ DỮ LIỆU
(TRÌNH ĐỘ ĐẠI HỌC, NGÀNH CÔNG NGHỆ THÔNG TIN) SỐ TÍN CHỈ: 3
(LÝ THUYẾT: 45, THỰC HÀNH : 0, THẢO LUẬN: 0) Quy Nhơn, 6/2016 2 Mục lục
Chƣơng 1: CÁC KHÁI NIỆM VÀ MÔ HÌNH DỮ LIỆU CƠ BẢN................................5
MỞ ĐẦU ...............................................................................................................................5
§1 CÁC KHÁI NIỆM CƠ BẢN ........................................................................................6
§2 CÁC MÔ HÌNH DỮ LIỆU CƠ BẢN ........................................................................7
§3 CÁC KHÁI NIỆM CƠ BẢN CỦA MÔ HÌNH QUAN HỆ ...................................10
Chƣơng 2: ĐẠI SỐ QUAN HỆ VÀ CÀI ĐẶT ĐẠI SỐ QUAN HỆ .............................13
MỞ ĐẦU .............................................................................................................................13
§1 PHÉP CHỌN ................................................................................................................14
§2 PHÉP CHIẾU ...............................................................................................................16
§3 PHÉP KẾT NỐI TỰ NHIÊN......................................................................................18
§4 PHÉP CHIA QUAN HỆ .............................................................................................20
§5 QUAN HỆ TƢƠNG THÍCH ......................................................................................21
BÀI TẬP CHƢƠNG 2...........................................................................................................23
Chƣơng 3: PHỤ THUỘC HÀM ..........................................................................................25
MỞ ĐẦU .............................................................................................................................25
§1 PHỤ THUỘC HÀM VÀ CÁC TÍNH CHẤT CƠ BẢN .........................................26
§2 HỆ TIÊN ĐỀ ARMSTRONG CHO CÁC PHỤ THUỘC HÀM ...........................29
§3 BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM .........................................................30
§4 BAO ĐÓNG CỦA TẬP THUỘC TÍNH ..................................................................31
BÀI TẬP CHƢƠNG 3...........................................................................................................33
Chƣơng 4: KHOÁ CỦA LƢỢC ĐỒ QUAN HỆ VÀ HỆ SPERNER............................35
§1 KHOÁ VÀ CÁC TÍNH CHẤT CƠ BẢN.................................................................35
§2 HỆ SPERNER VÀ TẬP KHOÁ CỦA LƢỢC ĐỒ QUAN HỆ .............................37
BÀI TẬP CHƢƠNG 4...........................................................................................................38
Chƣơng 5: PHỦ CỦA TẬP PHỤ THUỘC HÀM.............................................................39
MỞ ĐẦU .............................................................................................................................39
§1 PHỦ CỦA TẬP PHỤ THUỘC HÀM ......................................................................40
§2 CÁC KẾT QUẢ QUAN TRỌNG VỀ PHỦ CỦA TẬP PHỤ THUỘC HÀM ...42
§3 CÀI ĐẶT THUẬT TOÁN TÌM PHỦ CỦA TẬP PHỤ THUỘC HÀM ..............43 3
BÀI TẬP CHƢƠNG 5...........................................................................................................45
Chƣơng 6: CHUẨN HÓA ....................................................................................................46
MỞ ĐẦU .............................................................................................................................46
§1 PHÉP TÁCH KHÔNG TỔN THẤT THÔNG TIN................................................ 4 . 7
§2 CÁC DẠNG CHUẨN CỦA QUAN HỆ ..................................................................47
§3 CÁC THUẬT TOÁN CHUẨN HÓA .......................................................................49
BÀI TẬP CHƢƠNG 6...........................................................................................................51
TÀI LIỆU THAM KHẢO.....................................................................................................52 4
Chƣơng 1: CÁC KHÁI NIỆM VÀ MÔ HÌNH DỮ LIỆU CƠ BẢN MỞ ĐẦU
Cơ sở dữ liệu (CSDL) là lĩnh vực của tin học nhằm nghiên cứu các cơ chế,
nguyên lí và phƣơng pháp tổ chức dữ liệu trên các thiết bị nhớ bên ngoài của máy tính,
nhằm phục vụ cho việc khai thác dữ liệu trong các hệ thống tin học ứng dụng.
Trong số 3 mô hình cơ bản - 3 cách tiếp cận cho việc tổ chức và khai thác các
CSDL là mô hình phân cấp, mô hình mạng và mô hình quan hệ thì mô hình quan hệ
đƣợc quan tâm hơn cả vì mô hình này đƣợc xây dựng trên một c
ơ sở toán học chặt chẽ
lý thuyết về các quan hệ và có hình ảnh trực quan gần với các quan niệm thông thƣờng của ngƣời dùng cuối. 5
§1 CÁC KHÁI NIỆM CƠ BẢN 1.1. CSDL
CSDL là một tập các dữ liệu về các đối tƣợng cần đƣợc quản lí, đƣợc lƣu trữ
đồng thời trên các vật mang tin (các thiết bị nhớ ngoài ) của máy tính điện tử và đƣợc
quản lí theo một cơ chế thống nhất gọi là hệ quản trị cơ sở dữ liệu nhằm thực hiện 3
chức năng sau đây một cách tối ƣu: i) Mô tả dữ liệu. ii) Cập nhật dữ liệu. iii) Tìm kiếm dữ liệu.
1.2
. HỆ QUẢN TRỊ CSDL
Hệ QTCSDL là một hệ thống phần mềm (các chƣơng trình) giúp cho ngƣời sử
dụng khai thác các CSDL theo 3 chức năng nói trên.
Chú ý: Các CSDL là đối tƣợng quản lí của các Hệ QTCSDL, chúng đƣợc tạo lập và
lƣu trữ trên các thiết bị nhớ ngoài của máy tính.
1.3. TẠI SAO CẦN CÓ CSDL?
CSDL là bộ phận không thể thiếu đƣợc trong các hệ lƣu trữ và tìm kiếm thông tin,
các hệ thống quản lí kinh tế các ngành, các cấp, các hệ thống quản lí kho tàng, tƣ liệu,
các hệ thống phục vụ công cộng nhƣ ngân hàng, bán vé máy bay, các phƣơng tiện giao
thông, các hệ thống thiết kế tự động,… 6
§2 CÁC MÔ HÌNH DỮ LIỆU CƠ BẢN
2.1. MÔ HÌNH MẠNG
Mô hình mạng đƣợc xây dựng trên các tập dữ liệu và các quan hệ.
Từ các tập dữ liệu rời nhau sau đó liên kết lại với nhau thành một mạng liên thông. Nhân sự Thành phố
Tập dữ liệu đƣợc tạo ra từ những dữ liệu cùng một kiểu, gọi là bản ghi.
Mỗi bản ghi đƣợc tạo bởi các trƣờng. Theo hình trên ta có hai tập dữ liệu là:
Nhân sự và Thành phố, với các bản ghi tƣơng ứng nhƣ sau:
- Mỗi phần tử của tập Nhân sự đƣợc mô tả qua 6 trƣờng (6 thuộc tính ):
Mã CB, Họ và tên, Năm sinh, Lƣơng, Số con, Chức vụ.
- Mỗi phần tử của tập Thành phố đƣợc mô tả qua 5 thuộc tính:
Mã thành phố, Tên gọi, Diện tích, Dân số, K
hoảng cách đến thủ đô.
Quan hệ xác lập một tƣơng quan - ánh xạ giữa 2 tập dữ liệu.
Theo hình trên ta có quan hệ:
Nơi sinh: Nhân sự  Thành phố
Mỗi nhân sự cụ thể của tập Nhân sự có một nơi sinh cụ thể.
Giữa hai tập trên còn có thể có quan hệ thứ hai, chẳng hạn:
Nơi đến công tác: Cho biết cán bộ X đến làm việc tại những thành phố nào.
Các quan hệ đƣợc phân loại theo kiểu ánh xạ, ví dụ:
Nơi sinh là ánh xạ đơn trị, đƣợc kí kiệu là: 1-1 (mỗi ngƣời có một nơi sinh ),
còn nơi đến công tác là một ánh xạ không đơn trị, kí hiệu là: 1-N (một ngƣời có thể tổ chức chuyến đ
i công tác ở nhiều thành phố).
Để tạo lập một CSDL theo mô hình mạng chúng ta cần các thao tác sau:
 Tạo lập một tập: Bao gồm việc khai báo tên tập và mô tả các thuộc tính của tập.
 Thiết lập một quan hệ giữa hai tập: Bao gồm việc khai báo tên quan hệ, tên
tập nguồn, tên tập đích và kiểu quan hệ. 7 Chú ý:
Mô hình mạng có những ƣu, nhƣợc điểm sau:
- Ƣu điểm: Mang lại cho ta một thông tin của sự hiểu biết, dễ bổ sung các lớp
đối tƣợng (tập dữ liệu) và các quan hệ.
- Nhƣợc điểm: Phức tạp, luôn đòi hỏi một hình ảnh trực quan, dễ sinh ra nhọc
nhằn bởi vì dễ sinh ra quan hệ giữa các đối tƣợng.
2.2. MÔ HÌNH PHÂN CẤP
Đây là một trƣờng hợp riêng của mô hình mạng, trong đó khái niệm tập đƣợc
giữ nguyên còn khái niệm quan hệ đƣợc giới hạn ở kiểu phân cấp.
Giữa 2 tập (nếu có) không quá một quan hệ và quan hệ này tuân thủ trật tự trên dƣới.
Loại mô hình phân cấp khá phù hợp với những hình thức tổ chức phân cấp
trong xã hội. Ví dụ một cơ sở dữ liệu quản lí chất lƣợng học tập của sinh viên
các trƣờng đại học và cao đẳng có thể có cấu tr úc phân cấp sau: BỘ GIÁO DỤC VÀ ĐÀ O TẠO ĐH QG HÀ NỘI ĐH QUY NHƠN …… Khoa Toán Khoa Lý ……
Một mô hình phân cấp thƣờng gặp trong các hệ thống máy tính là mô hình quản lí thƣ mục.
Đặc điểm nổi bật trong các thủ tục truy nhập tới một đối tƣợng trong mô hình
phân cấp là đƣờng dẫn - đƣờng đi từ gốc (đỉnh đầu tiên) tới phần tử cần xét trong cây phân cấp. Chú ý:
Mô hình phân cấp có những ƣu, nhƣợc điểm sau:
- Ƣu điểm: Thể hiện đƣợc nguyên lý nhìn theo từng mức và muốn chế ngự độ
phức tạp nên “chia để trị”.
- Nhƣợc điểm: Theo nguyên tắc này chỉ lên xuống 1 mức nên không nhìn thấy
những phần tử nằm ở những nhánh khác. 8
2.3. MÔ HÌNH QUAN HỆ
Mô hình này đƣợc E.F Codd đề xuất năm 1970.
Theo mô hình này: Một CSDL quan hệ đƣợc tạo lập từ các quan hệ có hình ảnh
trực quan là các bảng. Mỗi bảng bao gồm các cột đƣợc gọi là thuộc tính và các dòng đƣợc gọi là bộ.
Ví dụ: Giả sử ta có cơ sở dữ liệu THỰC TẬP, nhằm lƣu trữ thông tin về đợt
thực tập của sinh viên, đƣợc tạo từ 3 quan hệ sau đây: 1. Quan hệ Sinh viên (SV) Mã sinh Họ và tên Năm sinh Quê quán viên … … … …. 2. Quan hệ Đề tài (ĐT) Mã đề Tên đề tài Chủ Kinh phí tài nhiệm .... …. …. ….
3. Quan hệ Sinh viên đề tài (SVĐT) Mã sinh viên Mã đề tài Nơi thực tập Kết quả …. …. …. ….
2.4. CÁC ĐẶC ĐIỂM CỦA MÔ HÌNH QUAN HỆ
 Có cơ sở toán học chặt chẽ, cho phép áp dụng rộng rãi các công cụ đại số và logic.
 Khá tự nhiên, gần với quan niệm thông thƣờng của ngƣời sử dụng.
 Ngôn ngữ thao tác trong sáng và có khả năng tổ hợp cao.
 Dễ đảm bảo tính an toàn dữ liệu, có thể đặt mật khẩu truy nhập ở nhiều
mức: mức quan hệ, mức thuộc tính, mức bộ, mức thuộc tính - bộ.
 Dễ cập nhật tới các đơn vị dữ liệu.
 Dễ đảm bảo tính độc lập dữ liệu. Chú ý:
Khi xây dựng các mô hình dữ liệu cần phân biệt các thành phần cơ bản sau:
 Thực thể: là đối tƣợng có trong thực tế mà chúng ta cần mô tả các đặc trƣng của nó.
 Thuộc tính: là tính chất thuộc thực thể.
 Ràng buộc: là các mối quan hệ logic của các thực thể. 9
§3 CÁC KHÁI NIỆM CƠ BẢN CỦA MÔ HÌNH QUAN HỆ 3.1. QUAN HỆ
Cho tập hữu hạn U = {A1, A2, …,An}   (n >= 1). Các phần tử của U đƣợc gọi
là thuộc tính. Ứng với mỗi thuộc tính Ai, i =1,n ta đặt tƣơng ứng một tập di và gọi là
miền trị của thuộc tính Ai, kí hiệu: di = dom(Ai). Đặt n D = dom(Ai) i 1  Khi đó ta có 3.1.1. Định nghĩa
Quan hệ R với tập thuộc tính U (k/h: R(U)) là một tập các ánh xạ t: U  D sao
cho với mỗi Ai  U ta phải có t(Ai)  dom(Ai), i=1,n.
Các ánh xạ này đƣợc gọi là bộ của quan hệ R. 3.1.2. Định nghĩa
Quan hệ R(U) là một bộ phận của tích Đề Các những dom(A n n i), i=1..
(tức: R(U)  i =1 Xi dom(Ai)). 3.1.3. Chú ý
 Hai định nghĩa trên là tƣơng đƣơng.
 Về mặt trực quan, một quan hệ có thể biểu diễn nhƣ một bảng 2 chiều
gồm các cột là các thuộc tính và các dòng là các bộ và bảng phải thoả mãn 2 tính chất sau:
- Hữu hạn tại mọi thời điểm.
- Thứ tự của các hàng và cột là không quan trọng.
 Vì quan hệ là tập hợp nên trong quan hệ không có 2 bộ giống nhau hoàn toàn.
3.2. CƠ SỞ DỮ LIỆU QUAN HỆ
CSDLQH là một tập các quan hệ biến thiên theo thời gian và đƣợc quản lý bằng
một cơ chế thống nhất gọi là hệ quản trị cơ sở dữ liệu quan hệ.
3.3
. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN HỆ
Hệ QTCSDLQH là hệ thống phần mềm giúp chúng ta quán xuyến toàn bộ việc
tạo lập và khai thác các cơ sở dữ liệu quan hệ. 10
3.4
. RÀNG BUỘC DỮ LIỆU
Ràng buộc dữ liệu là những quy định mà dữ liệu trong một cơ sở dữ liệu phải thỏa mãn.
Mục đích của việc đặt ra các ràng buộc dữ liệu là nhằm đảm bảo cho dữ liệu trong cơ
sở dữ liệu phản ánh đúng thế giới hiện thực.
Các ràng buộc dữ liệu thƣờng đƣợc mô tả vào lúc tạo lập quan hệ và thuộc tính.
Có các loại ràng buộc dữ liệu cơ bản nhƣ:
 Ràng buộc về kiểu dữ liệu: Đây là loại ràng buộc thấp nhất và cũng là loại ràng
buộc tối thiểu, bắt buộc đối với hầu hết các CSDL.
Ví dụ: Khai báo dom(HOTEN) = C(25); dom(NAMSINH) = N(4);…
 Ràng buộc giải tích: Đây là loại ràng buộc giữa các thuộc tính với nhau và thể
hiện qua các biểu thức tính toán.
Ví dụ: ĐTB = (TOAN * 3 + TIN * 2)/5
 Ràng buộc logic: Ở mức độ tổng quát các ràng buộc loại này đƣợc mô tả dƣới
dạng các biểu thức logic.
Ví dụ: Mã sinh viên  Họ tê n, năm sinh, quê quán; ĐTB  XEPLOAI;…
3.5. CÁC KÝ HIỆU TRUYỀN THỐNG
Theo truyền thống của lý thuyết CSDL, chúng ta chấp nhận các quy định sau đây: - Các thuộc tính đ
ƣợc kí hiệu bằng các chữ Latinh hoa đầu bảng: A, B, C,…
- Tập thuộc tính đƣợc kí hiệu bằng các chữ Latinh hoa cuối bảng: X, Y, Z,…
- Các thuộc tính trong một tập đƣợc liệt kê nhƣ một xâu kí tự, không có các dấu
biểu diễn tập, chẳng hạn: U = ABC thay vì viết: U = {A, B, C}.
- XY biểu diễn cho hợp của 2 tập thuộc tính X và Y.
- Các bộ trong quan hệ đƣợc biểu diễn bằng các chữ Latinh thƣờng: s, t, u,…
- Với t R(U), A  U. Kí hiệu: t.A là gía trị của bộ t tại thuộc tính A.
- Với t R(U), X  U. Kí hiệu: t.X là hạn chế/ thu hẹp của ánh xạ t trên X.
(tức: t.X là bộ con của bộ t, chỉ lấy những giá trị trên X) 11
3.6. VÍ DỤ THỰC TẾ VỀ CƠ SỞ DỮ LIỆU QUAN HỆ
Giả sử ta có cơ sở dữ liệu quan hệ THỰC TẬP, nhằm lƣu trữ thông tin về đợt
thực tập của sinh viên, đƣợc tạo từ 3 quan hệ sau đây: 1. Quan hệ Sinh viên (SV) Mã sinh Họ và tên Năm sinh Quê quán viên … … … ….
Quan hệ SV lƣu trữ thông tin về sinh viên, bao gồm các thuộc tính sau:
Mã sinh viên (MSV); Họ và tên (HT); Năm sinh (NS); Quê quán (QQ) 2. Quan hệ Đề tài (ĐT) Mã đề Tên đề tài Chủ Kinh phí tài nhiệm .... …. …. ….
Quan hệ ĐT lƣu trữ thông tin về các đề tài do nhà trƣờng quản lý, bao gồm các thuộc tính sau:
Mã đề tài (MĐT); Tên đề tài (TĐT);Chủ nhiệm đề tài (CN); Kinh phí cấp cho
đề tài (KP) và giả sử đơn vị tính của cột Kinh phí là triệu đồng.
3. Quan hệ Sinh viên đề tài (SVĐT) Mã sinh viên Mã đề tài Nơi thực tập Kết quả …. …. …. ….
Quan hệ SVĐT lƣu trữ thông tin về việc thực tập của sinh viên: ai (MSV) tham
gia đề tài nào (MĐT) thực tập ở đâu (NTT) và kết quả thực tập đạt bao nhiêu điểm (KQ).
Và giả sử rằng các quan hệ của CSDLQH nói trên thỏa mãn các ràng buộc sau đây:
 Mỗi sinh viên chỉ tham gia một đề tài.
 Mỗi đề tài có thể đƣợc triển khai ở nhiều thành phố khác nhau.
 Chủ nhiệm đề tài chỉ đảm nhiệm duy nhất đề tài đó. 12
Chƣơng 2: ĐẠI SỐ QUAN HỆ VÀ CÀI ĐẶT ĐẠI SỐ QUAN HỆ MỞ ĐẦU
 Đại số quan hệ là một bộ đôi sắp thứ tự gồm B và P (kí hiệu  = (B,P)), ở đây
B là tập các quan hệ trong một CSDLQH cho trƣớc, còn P là tập các phép toán thao
tác trên các quan hệ của B, g ồm có c
ác phép toán cơ bản sau:
- Phép chọn kí hiệu: ( ) - Phép chiếu [ ]
- Phép kết nối tự nhiên * - Phép tích Đề Các x - Phép hợp + - Phép giao . - Phép hiệu - - Phép chia 
 Tập hợp các phép toán của đại số quan hệ sẽ tạo thành một cơ chế truy nhập linh hoạt, nhờ có c
ác phép toán này mà chúng ta có thể trích dữ liệu từ một hay
nhiều quan hệ cho trƣớc để tạo thành một quan hệ mới nhằm trả lời cho một
câu hỏi tìm kiếm đặt ra.
 Đại số quan hệ là một trong những ngôn ngữ con truy nhập dữ liệu (còn đƣợc
xem nhƣ một ngôn ngữ hỏi).
 Đại số quan hệ là cơ sở toán học để cài đặt cú pháp SQL và cho phép diễn đạt
các thao tác xử lý quan hệ. Chú ý:
- Những phép toán nói trên còn đƣợc gọi là các phép toán đại số quan hệ/ phép toán quan hệ.
- SQL (Structured Query Language): là một ngôn ngữ hỏi có cấu trúc. 13
§1 PHÉP CHỌN
2.1.1. Định nghĩa Cho quan hệ R(U). Xét một bộ t  R(U) và một biểu thức logic E
phát biểu trên U (E còn gọi là điều kiện chọn). K hi đó:
Bộ t thoả E (kh: t(E))  Thay mọi xuất hiện của thuộc tính A trong E bởi giá trị t.A
thì ta thu đƣợc một mệnh đề logic đúng.
2.1.2. Ví dụ Giả sử xét quan hệ SV, với bộ t = (2, Hồ Quý, 1985, Hà Nội ) SV và
xét điều kiện chọn E = “tuổi đời hiện nay trên 26 và có quê quán ở Huế ”.
Hỏi rằng: Bộ t này có thoả E hay không? Đs: Bộ t không thỏa E
2.1.3.
Định nghĩa Cho quan hệ R(U) và một biểu thức logic E phát biểu trên U.
Phép chọn quan hệ R theo E (k/h: R(E)) cho kết quả là một quan hệ P có tập thuộc tính
là U và có các bộ của R thoả E.
Nói gọn ta có: R(E) = P(U)= {t R t(E)} 2.1.4. Ví dụ a) Cho quan hệ R nhƣ sau: A B C a1 x 2 a2 y 5 a1 m 4 a3 x 1
và điều kiện chọn E = “A  a1  C - 3 >0” Khi đó ta có: R(E) = P A B C a2 y 5 a1 m 4 a3 x 1 14
b) Cho biết thông tin nói về những đề tài có kinh phí trên 5 triệu và dƣới 12 triệu?
P = ĐT(KP > 5  KP < 12)
c) Cho biết thông tin nói về việc thực tập của những sinh viên đạt kết quả ít nhất là
9 và thực tập tại Hà Nội? P = SVĐT( KQ >= 9  N TT = „Hà Nội‟)
Cài đặt thuật toán thực hiện phép chọn:
(Sử dụng ngôn ngữ ALGOL/ ngôn ngữ tựa Pascal để mô tả cài đặt) Algorithm Selection: Input: R(U), E. Output: Tính R(E) = ? Actions: Create(P,U); For each tuple t in R do If t(E) then Add(P, t); End if; End for; Return P; End. 15
§2 PHÉP CHIẾU
2.2.1. Định nghĩa Cho quan hệ R(U) và tập thuộc tính X  U.
Phép chiếu quan hệ R trên X (k/h: R[X]) cho kết quả là quan hệ P có tập thuộc tính X và chứa các
bộ của R hạn chế trên X.
Nói gọn ta có: R[X] = P(X) = {t.X t R} 2.2.2. Ví dụ a) Cho quan hệ R nhƣ sau: A B C a1 x 5 a2 y 7 a1 x 4 a2 y 3 Khi đó ta có: R[AB] = P A B a1 x a2 y
b) Cho biết họ tên và quê quán của các sinh viê n? P = SV[HT, QQ]
c) Cho biết mã của những sinh viên thực tập tại Bình Định và đạt kết quả cao nhất là 8?
P = SVĐT(NTT = „Bình Định‟  KQ <= 8)[MSV] 16
Cài đặt thuật toán thực hiện phép chiếu:
(Sử dụng ngôn ngữ ALGOL/ ngôn ngữ tựa Pascal để mô tả cài đặt) Algorithm Projection: Input: R(U), X U. Output: Tính R[X] = ? Actions: Create(P, X); For each tuple t in R do If !(t.X in P) then Add(P, t.X); End if; End for; Return P; End. 17
§3 PHÉP KẾT NỐI TỰ NHIÊN
2.3.1. Định nghĩa Cho 2 quan hệ R(U) và S(V) với U V   .
Phép kết nối tự nhiên 2 quan hệ R và S (k/h: R*S) cho kết quả là quan hệ P có tập
thuộc tính UV và chứa các bộ đƣợc xác định nhƣ sau:
R*S = P(UV) = {t t.U  R  t.V  S} 2.3.2. Ví dụ a) Cho 2 quan hệ sau R S A B B C E a1 x x 4 n a2 y y 5 z a3 x y 2 m z 3 n Khi đó ta có: R*S = P A B C E a1 x 4 n a2 y 5 z a2 y 2 m a3 x 4 n
b) Cho biết họ tên và kết quả thực tập của những sinh viên thực tập tại quê nhà?
P = (SV*SVĐT)(QQ = NTT)[HT, KQ]
c) Cho biết mã của những sinh viên có tuổi đời hiện nay dƣới 22 và thực tập đạt kết quả trên 9 ?
P = (SV*SVĐT)(2012 – NS < 22  KQ > 9)[MSV] 2.3.3. Chú ý
- Vì quan hệ là tập hợp nên trong quan hệ không chứa 2 bộ giống nhau hoàn toàn. 18
- Khi sử dụng đồng thời 2 phép toán chọn và chiếu, thông thƣờng nên “chọn
trƣớc rồi chiếu sau”.
- Nếu 2 quan hệ R(U) và S(V) có U  V   thì ta có phép toán Tích Đề các
đƣợc định nghĩa nhƣ sau:
R  S = P(UV) = {(a,b) aR  b S}
Cài đặt thuật toán thực hiện phép kết nối tự nhiên 2 quan hệ:
(Sử dụng ngôn ngữ ALGOL/ ngôn ngữ tựa Pascal để mô tả cài đặt)
Algorithm Natural Join:
Input: R(U), S(V), U  V   . Output: Tính: R*S = ? Actions: Create(P, UV); X:= U  V; For each tuple t in R do For each tuple s in S do If t.X = s.X then Add(P, (t, s.V \ X)); End if; End for; End for; Return P; End. 19
§4 PHÉP CHIA QUAN HỆ
2.4.1. Định nghĩa Cho 2 quan hệ R(U) và S(V) với V  U. Đặt X = U \ V.
Phép chia quan hệ R cho quan hệ S (k/h: R S) cho kết quả là quan hệ P có tập thuộc
tính là X và có các bộ của P đƣợc xác định nhƣ sau:
R S = P(X) = {t.X t  R  s S: (t.X, s)  R}
2.4.2.
Ví dụ Cho 2 quan hệ sau: R
S Khi đó ta có: R  S = P A A B B 1 1 a a 3 1 b b 1 c 2 c 2 d 3 a 3 b 4 a 20