Giáo trình Toán rời rạc
Trang 1Chương V
QUAN HỆ
I QUAN HỆ VÀ CÁC TÍNH CHẤT
o Khái niệm và tính chất :
Định nghĩa: Cho A và B là các tập hợp Một quan hệ hai ngôi ℜ từ A đến B là một tập con của tích Descartes AxB
Chúng ta dùng cách kí hiệu: aℜb để chỉ (a,b) ∈ℜ và
nói rằng a có quan hệ ℜ với b Khi A=B ta nói ℜ là một quan
hệ hai ngôi trên A
Ví dụ 1: Xét tập A={ 1; 2; 3; 4; 5 }
và tập B={ 1; 2; 3; 4; 5; 6 } với quan hệ ℜ định nghĩa như sau:
∀(a,b)∈AxB: aℜb⇔a chia hết b.
Ta thấy:
ℜ={ (1,1); (1,2); (1,3); (1,4); (1,5); (1,6); (2,2);
(2,4); (2,6); (3,3); (3,6); (4,4); (5,5) } (là một tập con của tập AxB)
Các tính chất của quan hệ :
Định nghĩa: Cho ℜ là một quan hệ hai ngôi trên tập A ta nói ℜ có tính chất:
Phản xạ (reflexivity) nếu và chỉ nếu :
∀a ∈ A : a ℜ a
Đối xứng (symmetric) nếu và chỉ nếu :
∀ a,b ∈ A : a ℜ b ⇒b ℜ a
Phản đối xứng (antisymmetric) nếu và chỉ nếu :
∀ a,b ∈ A : (a ℜ b) ∧ (b ℜ a) ⇒ (a=b)
Bắc cầu (transitivity) nếu và chỉ nếu :
∀ a,b,c ∈ A : (a ℜ b) ∧ (b ℜ c) ⇒ (a ℜ c)
Ví dụ 2:
Xét tập Z các số nguyên và quan hệ hai ngôi trên Z định nghĩa bởi:
∀(a,b)∈ZxZ: aℜb⇔a ≡ b (mod 5)
Trang 2Ta có:
1) ∀(a,a)∈ZxZ: a ≡ a (mod 5)
2) ∀(a,b)∈ZxZ: a ≡ b (mod 5) ⇒ a ≡ b (mod 5)
3) ∀ a,b,c ∈ Z : [a ≡ b (mod 5)] ∧ [b ≡ c (mod 5)] ⇒ a ≡ c (mod 5)
Vậy quan hệ đồng dư modulo 3 xác định trên tập Z là một quan hệ hai ngôi có các tính chất phản xạ, đối xứng và bắc cầu Quan hệ này không có tính phản đối xứng vì, chẳng hạn, : [10 ≡ 15 (mod 5)] ∧ [15 ≡ 10 (mod 5)] nhưng rõ ràng là 15≠10
Ví dụ 3:
Cho X là một tập khác ∅ và P là tập các ánh xạ đi từ X đến tập các số thực R Xét
quan hệ p trên P như sau:
∀f,g ∈ P : fp g ⇔(∀x∈ X , f(x) ≤ g(x)) Có thể chứng minh rằng quan hệ p là một quan hệ hai ngôi có các tính chất: phản xạ, phản đối xứng và bắc cầu
o Định nghĩa khái niệm “hàm” nhờ quan hệ :
Một hàm f từ tập A đến tập B cho phép thiết lập mối quan hệ f giữa mỗi phần tử a ∈ A
với một phần tử b ∈ B tương ứng Đồ thị của f:
Γ(f)={( , ) (a b a A∈ ∧ ∈ ∧ =) (b B) (b f a( ))} là một tập con của AxB nên f cũng có thể xem như một quan hệ hai ngôi từ A đến B Ngược lại nếu ℜ là một quan hệ hai ngôi từ A đến B sao cho mọi phần tử trong A là phần tử thứ nhất của chỉ một cặp có sắp xếp trong ℜ thì có thể định nghĩa hàm f với ℜ như là đồ thị của nó
Ví dụ 4:
Cho ℜ là quan hệ 2-ngôi từ A = { 1; 2; 3; 4; 5 } đến B = { 1; 2; 3; 4; 5; 6 } xác định như sau:
ℜ={ (1,1); (2,4); (3,3); (4,4); (5,5) } Khi đó ℜ có thể xem như đồ thị của hàm f
Trang 3o Quan hệ n-ngôi và cơ sở dữ liệu :
Ta có thể mở rộng định nghĩa về quan hệ nói trên lên nhiều tập như sau:
Định nghĩa: Cho A1,A2, ,An là các tập hợp Một quan hệ n-ngôi ℜ xác định trên các tập này là một tập con của tích Descartes A1xA2x xAn
Ví dụ 5:
Cho ℜ là quan hệ gồm các bộ sáu (T,N,P,Q,K,B) biểu diễn thông tin về mỗi sinh viên, trong đó T là họ và tên, N là ngày sinh, P là phái tính, Q là quê quán,
K là lớp, B là số danh bộ Chẳng hạn nam sinh viên Trần Dạ Lan sinh ngày 12-2-1987 tại Mỏ cày lớp K1 CNTT có số danh bộ là K1_9110 thì:
(Trần Dạ Lan, 12-2-1987, Nam, Mỏ cày, K1 CNTT,K1_9110) ∈ ℜ
Khi đó ℜ là quan hệ 6-ngôi xác định trên các tập dữ liệu về Họ và tên, Ngày sinh, Phái tính, Danh sách lớp, Sổ danh bộ
Một quan hệ ℜ kiểu như vậy, như trong phần trình bày dưới đây, được gọi là một bảng Tập các bảng chứa các thông tin có liên quan với nhau (dữ liệu) được gọi là một cơ sở dữ liệu (CSDL) Trong công nghệ thông tin các CSDL được lưu trữ trong các bộ nhớ và được truy
xuất, xử lí bởi các chương trình máy tính đặc biệt gọi là các hệ quản trị CSDL
Thời gian cần thiết để thao tác các thông tin trong một CSDL tùy thuộc vào việc các thông tin đó đã được lưu trữ như thế nào Nhìn chung các thao tác xử lí thông tin trên các CSDL bao gồm: Tạo lập CSDL, bổ sung / xóa bớt/điều chỉnh/sắp xếp/tìm kiếm các mẫu tin và tổ hợp các mẫu tin từ các CSDL Các CSDL thường bao gồm rất nhiều bảng (table) có liên kết với nhau Các CSDL như vậy thường được gọi bằng thuật ngữ CSDL quan hệ
Ta dùng thuật ngữ mẫu tin (record) để chỉ là một bộ gồm n phần tử dữ liệu có liên quan
với nhau theo một nghĩa nào đó
Ví dụ 6:
Bộ 6 phần tử:
(Trần Dạ Lan, 12-2-1987, Nam, Mỏ cày, K1 CNTT,K1_9110) là một mẫu tin chứa các dữ liệu liên quan về sinh viên (Trần Dạ Lan) Một mẫu tin gồm các phần tử tạo nên các trường (field) Trong mẫu tin cụ thể nói trên có các trường: Họ và Tên, Ngày sinh, Phái tính, Nơi sinh, Sinh viên lớp, Số danh bộ (HoTen, NgaySinh, Phai, Noisinh, Lop, và SDBo)
Mô hình CSDL quan hệ biểu diễn một CSDL gồm các mẫu tin dưới dạng một quan hệ n-ngôi Các quan hệ được dùng để biểu diễn CSDL còn gọi là các bảng (table) vì những quan hệ đó thường được thể hiện dưới dạng một hoặc nhiều bảng Ví dụ bảng sau đây mô tả CSDL về sinh viên
Trang 4Đặng Trụi 27-05-1980 Nam Thị xã K20 Sinh K20_1012
Bảng như thế chính là một quan hệ 6-ngôi trên các tập HoTen, NgaySinh, Phai, Noisinh, Lop, và SDBo
Có một tập mà quan hệ n-ngôi xác định trên đó có một tính chất là:
a) Khác ∅ b) Không có hai mẫu tin nào có cùng giá trị tại trường (filed) này
Tập đó gọi là Khóa (key) của bảng dữ liệu Tuy nhiên một tập hợp các trường cũng có thể xác định một biểu thức thỏa mãn hai tính chất a) và b) nói trên khi đó ta có một khóa phức
hợp
Ví dụ 7:
Trong ví dụ 5, trường HoTen không thể lấy làm khóa được mặc dù ai cũng phải có họ và tên (ie: khác∅) tuy nhiên có thể có nhiều sinh viên có cùng họ và tên Tương tự như vậy có thể có rất nhiều sinh viên có cùng ngày tháng năm sinh do đó trường Ngaysinh cũng không thể là một khóa Trường số danh bộ SDBo có thể được lấy làm khóa vì mỗi sinh viên đều bắt buộc phải có một số danh bộ và hơn nữa số danh bộ này không trùng lắp giữa hai sinh viên khác nhau Một khóa là nhằm để phân biệt các mẫu tin khác nhau vì vậy đối với một bảng không cần thiết phải có hơn một khóa1 , tuy nhiên nếu tin tưởng chắc rằng trên các tập HoTen, NgaySinh, Phai, Noisinh, Lop, và SDBo đang xét không thể có hai người cùng họ tên, cùng ngày sinh và nơi sinh thì bộ
“HoTen+NgaySinh+Noisinh” có thể lấy làm một khóa được (khóa phức hợp)
Có nhiều phép toán trên các quan hệ n-ngôi để tạo nên các quan hệ n-ngôi mới, ta xét một số trong các phép toán đó:
Định nghĩa: Phép chiếu Pi1,i2, ,im ánh xạ bộ n phần tử (a1,a2, ,an) thành bộ m phần tử (ai1,ai2, ,aim), trong đó m≤n
Nói cách khác phép chiếu Pi1,i2, ,im cho phép lọc và giữ lại n-m phần tử (ai1,ai2, ,aim) trong bộ (a1,a2, ,an)
Ví dụ 8:
Phép chiếu P1,4,5 ánh xạ bộ (Trần Dạ Lan, 12-2-1987, Nam, Mỏ cày, K1 CNTT,K1_9110) thành bộ
(Trần Dạ Lan, Mỏ cày, K1 CNTT) Qua ví dụ này ta có thể thấy phép chiếu Pi1,i2, ,im đã biến đổi một quan hệ n-ngôi thành một quan hệ khác chỉ gồm n-m ngôi Qua phép chiếu một bảng ta sẽ nhận được một bảng mới
1 Một số hệ quản trị CSDL, như Visual Foxpro, dùng thuật ngữ PRIMARY KEY để chỉ khóa này.
Trang 5mà số mẫu tin có thể bị giảm đi nếu có một số mẫu tin có các giá trị như nhau trong tất cả m phần tử của phép chiếu
Ví dụ 9:
Phép chiếu P2,3 sẽ biến bảng ℜ thành bảng ℜ’ như sau:
Ngược lại với phép chiếu làm số cột của một bảng có thể giảm đi thì phép hợp nói sau đây cho phép tổ hợp hai bảng thành một bảng mới khi hai bảng này có một số trường giống nhau.
Định nghĩa: Cho ℜ là quan hệ bậc m và S là quan hệ bậc n Phép hợp Jp(ℜ,S), với p≤
m và p≤n là một quan hệ bậc (m+n-p) chứa tất cả các bộ (m+n-p) phần tử (a1,a2, ,am-p,
c1 ,c2, ,cp,b1,b2,bn-p) trong đó bộ m phần tử (a1,a2, ,am-p, c1 ,c2, ,cp) thuộc ℜ và bộ n phần tử
c1 ,c2, ,cp,b1,b2,bn-p) thuộc S
Nói cách khác toán tử hợp Jp tạo một quan hệ mới từ hai quan hệ cũ bằng cách tổ hợp tất cả các bộ m phần tử của quan hệ thứ nhất với tất cả các bộ n phần tử của quan hệ thứ hai, trong đó p phần tử cuối cùng của bộ m phần tử phù hợp với p phần tử đầu tiên của bộ n phần tử.2
Ví dụ 10:
Xét hai bảng:
Bảng 1
Giảng viên Khoa Mã số môn
học
Nhiên
T345
Nhiên
T367 Trần thị Bạch
Huệ
2 Trong thuật ngữ của ngôn ngữ SQL toán tử này còn được gọi là toán tử Left Outer Joint
Bảng ℜ
Sinh viên Ngành
học
Môn học
Khoai
Bảng ℜ’
Ngành học Môn học
Toán học Đại số
Bảng 2
Khoa Mã số môn
học Phòng học Giờ dạy
Mầm
Trang 6Toán tử J2 áp trên hai Bảng 1 và Bảng 2 sẽ cho ra Bảng 3 sau đây:
Bảng 3
Giảng viên Khoa Mã số môn
học Phòng học Giờ dạy
Nhiên
Trần Thị Bạch
Nhiều vấn đề về các toán tử này sẽ còn được nghiên cứu sâu hơn trong môn Cơ Sở Dữ Liệu Quan Hệ và ngôn ngữ SQL (Structured Query Language)
II QUAN HỆ THỨ TỰ VÀ QUAN HỆ TƯƠNG ĐƯƠNG
1 Quan hệ thứ tự:
Định nghĩa: Một quan hệ ℜ trên A gọi là quan hệ thứ tự nếu ℜ thỏa các tính chất: phản hồi, phản đối xứng, bắc cầu
Ví dụ 11: Quan hệ nói trong ví dụ 3 là một quan hệ thứ tự.
o Quan hệ tương đương và sự chia lớp
Định nghĩa: Một quan hệ ℜ trên A gọi là quan hệ tương đươngï nếu ℜ thỏa các tính chất: phản hồi, đối xứng, bắc cầu
Ví dụ 12:
Quan hệ nói trong ví dụ 2 là một quan hệ tương đương
Ví dụ 13:
Xét các tập X và Y, f là một ánh xạ từ X đến Y Định nghĩa một quan hệ ≈ trên X như sau:
∀x1,x2∈X: (x1 ≈x2) ⇔(f(x1) = f(x2)).
Dễ dàng thấy rằng ≈ là một quan hệ tương đương xác định trên X.
Sự chia lớp:
Cho ℜ là một quan hệ tương đương xác định trên A, với mỗi a ∈ A đặt L(a) là tập con
của A chứa các phần tử có quan hệ ℜ với a, ie:
L(a)={b b A( ∈ ∧ ℜ) (a b)}
Trang 7Ta thấy L(a) có các tính chất sau:
2) ∀a,b ∈ L(a) : aℜb ⇒ L(a) = L(b)
Thật vậy:
∀x∈ L(a) : aℜx (1)
Vì b ∈ L(a) nên : aℜb (2)
Do tính đối xứng của ℜ nên từ (1) suy ra: xℜa (3)
Do tính bắc cầu củaℜ nên từ (2) và (3) ta có: xℜb Vậy x∈ L(b).
Do đó ∀a,b ∈ L(a) : aℜb ⇒ L(a) ⊂ L(b) Phần còn lại (∀a,b ∈ L(a) : aℜb ⇒ L(a) ⊃ L(b) ) chứng minh tương tự.
3) ∀a,b ∈ A: Nếu a không có quan hệ ℜ với b thì: L(a) ∩ L(b) = ∅
Thật vậy, giả sử L(a) ∩ L(b) ≠ ∅ thì :
∃c ∈L(a) ∩ L(b)
Vì c∈L(a) nên : aℜc (1)
Vì c∈L(b) nên : cℜb (2) Từ (1) và (2) và do tính bắc cầu của ℜ ta có: aℜb Trái với giả thiết là a và b không có quan hệ ℜ với nhau
x A
∈
Thật vậy:
∀a∈ A : a∈ L(a) nên a ∈ ( )
x A
L x
∈
U Chiều ngược lại là hiển nhiên
Ta sẽ gọi L(a) là lớp tương đương với a xác định bởi quan hệ tương đương ℜ Do các nhận xét trên ta thấy nếu ℜ là một quan hệ tương đương trên A thì ℜ cũng xác định một tập các lớp tương đương thỏa mãn các tính chất:
i) Mỗi lớp tương đương là khác rỗng
ii) Các lớp tương đương hoặc là phân biệt hoặc là trùng nhau
iii) Hợp tất cả các lớp tương đương chính là A
Tập các lớp tương đương như vậy gọi là tập thương của A xác định bởi ℜ, và được kí
hiệu: Aℜ
Ví dụ 14: Xét tập Z các số nguyên và quan hệ tương đương trên Z định nghĩa bởi:
∀(a,b)∈ZxZ: aℜb⇔a ≡ b (mod 3)
Trang 8Ta có:
L(0) = { ; -6; -3; 0; 3; 6; 9; 12; }
L(1) = { ; -5; -2; 1; 4; 7; 10; 13; }
L(2) ={ ; 5; 8; 11; 14; }
L(3) ={ ; -6; -3; 0; 3; 6; 9; 12; } = L(0)
Thông thường lớp L(a) sẽ được kí hiệu là a , và tập thương Zℜ sẽ được kí hiệu là Z3
Vậy Z3 ={ 0;1;2 }
III THUẬT TOÁN TRÊN CÁC QUAN HỆ
1 Đồ thị có hướng Biểu diễn quan hệ trên máy tính
Có nhiều cách để biểu diễn các quan hệ giữa các tập hữu hạn Ta đã xét cách biểu diễn bằng cách liệt kê tất cả các phần tử của nó Cũng có thể biểu diễn quan hệ bằng cách dùng đồ thị hoặc thuận tiện hơn cho cách biểu diễn trên máy tính là bằng cách hiện thực nó thành một ma trận
Đồ thị:
Định nghĩa: Một đồ thị có hướng G là một bộ ba có thứ tự <V,E,I> trong đó:
V là một tập hợp, gọi là tập các đỉnh (Vertex)
E là một tập hợp, gọi là tập các cạnh (Edge)
I là quan hệ giữa hai tập V và E, I là tập con của tập VxExV, gọi là
“quan hệ tới”
và nếu V=∅ thì E=∅
Ví dụ 1: V = { A; B; C; D; E } và E ={ e; f; g; h; i; j }
I= { (A,e,C); (A,i,A); (B,f,C); (B,g,D); (C,h,D); (C,j,D) }
A,B,C,D,E là các đỉnh
e,f,g,h,i,j là các cạnh
(A,e,C) là phần tử của quan hệ tới:”A đi tới C theo cạnh e” Trong quan hệ giữa A và C ta gọi A là đỉnh bắt đầu và C là đỉnh kết thúc Đôi khi ta cũng ghi vắn tắt (A,C) thay cho
(A,e,C) Đỉnh không có đỉnh nào nối tới, như đỉnh E, gọi là đỉnh
cô lập Cạnh nối một đỉnh đến chính nó, như cạnh i gọi là một vòng (hay một khuyên) Hai cạnh cùng nối tới hai đỉnh phân
biệt, như cạnh h và cạnh j gọi là hai cạnh song song
Trang 9Nếu với mọi X,Y ∈ V và với mọi e ∈ E ta không phân biệt
các phần tử (X,e,Y) và (Y,e,X) của I thì đồ thị G trở thành đồ thị vô
hướng và thường được biểu diễn như hình bên
Bằng cách định nghĩa như trên ta có thể biểu diễn một quan
hệ hai ngôiℜ trên tập V bằng một đồ thị G mà các đỉnh là các
phần tử của V và các cặp (A,B)∈ℜ như là các cạnh Cách biểu
diễn này tạo nên mối quan hệ 1-1 giữa các quan hệ hai ngôi trên tập V và các đồ thị có hướng Như thế mỗi khai báo về các quan hệ hai ngôi ℜ trên V tương ứng với với một đồ thị có hướng
G (và ngược lại)
Ví dụ 2: Cho tập V= { 3;7;4;10;9;6;12;5 } và quan hệ hai ngôi ℜ xác định trên V bởi:
∀a,b ∈ V: aℜb ⇔a chia hết cho b
Ta thấy: ℜ ={ (3,3);(7,7);(4,4);(10,10);(9,9); (6,6);(12,12);(5,5); (10,5);(9,3); (6,3);(12,3);(12,4) } tương ứng với đồ thị có hướng G sau đây:
Ma trận kề:
Có thể biểu diễn một đồ thị bằng cách dùng
ma trận như sau:
Giả sử đồ thị G có n đỉnh, mỗi đỉnh sẽ được
gán một nhãn số trong miền [1 n] Dùng một ma
trận vuông A kích thước nxn được xác định như sau:
A[i,j] = 1 nếu có một cạnh nối từ đỉnh i đến
đỉnh j và A[i,j]= 0 trong trường hợp ngược lại
Ví dụ 3: Trong ví dụ 2 nói trên đồ thị có hướng G sẽ được biểu diễn bởi ma trận kề:
trong đó các đỉnh được đánh số thứ tự lại như sau:
1 → 5 2 → 10 3 → 6
4 → 3 5 → 9 6 → 7
7 → 12 8 → 4
Nhận xét: Nếu G không phải là một đồ thị có hướng thì ma trận kề là một ma trận đối xứng
Ví dụ 4: Ma trận sau đây biểu diễn cho đồ thị nào (và quan hệ nào)?
1 5 2 10 3 6 4 3 5 9 6 7 7 12 8 4
Trang 10A =
1 1 1 0
0 0 0 1
1 0 0 0
0 1 0 0
Giải:
Đặt các đỉnh là [1], [2], [3], [4] thì ma trận kề nêu trên ứng với đồ thị G tương ứng với quan hệ hai ngôi xác định trên tập
V = { [1]; [2]; [3]; [4] } xác định bởi
ℜ ={ ([1],[1]); ([1],[2]);([1],[3]);([2],[4]);([3],[1]);([4],[2]) }
o Bao đóng của các quan hệ:
Giả sử ta có một mạng máy tính có các trung tâm dữ liệu ở Hà Nội, Huế, Đà Nẳng, tp
Hồ Chí Minh, Đà Lạt, Cần Thơ, An Giang, Cà Mau Phương thức kết nối là Dial-up (ie: dùng đường điện thoại) có các đường dây điện thoại một chiều trực tiếp từ Hà Nội đến Huế, từ Huế đến Đà Lạt, từ Huế đến tp Hồ Chí Minh, từ tp Hồ Chí Minh đến Cần Thơ,ø từ tp Hồ Chí Minh đến Đà Nẳng, từ Đà Lạt đến
An Giang, từ An Giang dến Cà Mau, từ Cà Mau đến Hà Nội và từ Cần Thơ đến Huế Cho ℜ là một quan hệ hai ngôi trên tập các trung tâm dữ liệu nói trên, ℜ chứa cặp (a,b) nếu có một đường dây điện thoại trực tiếp từ trung tâm dữ liệu a đến trung tâm dữ liệu b, chẳng hạn (Cần Thơ, Huế) ∈ℜ Câu hỏi đặt ra là: “Liệu có một đường dây liên lạc nào đó dù là gián tiếp hay trực tiếp giữa một trung tâm dữ liệu này với một trung tâm khác hay không?” Vì không phải mọi đường liên lạc là trực tiếp, eg: đường liên lạc giữa Đà Lạt và Hà Nội hay giữa tp Hồ Chí Minh và Cà Mau đều phải đi qua An Giang, nên không thể dùng trực tiếp ℜ để trả lời cho câu hỏi đó Để giải quyết vấn đề đó ta cần thiết lập tập nhỏ nhất gồm tất cả các cặp trung tâm có đường liên lạc ngắn nhất (có thể là gián tiếp!) với nhau Rõ ràng tập đó phải chứa ℜ Một tập như vậy, nếu có, cũng là một quan
hệ và sẽ được gọi là bao đóng bắc cầu của ℜ
Định nghĩa: Cho một quan hệ ℜ trên tập V Nếu một quan hệ S trên V, S⊃ ℜ, S có tính chất P (P có thể là phản xạ/đối xứng hay bắc cầu) và nếu mọi quan hệ S’ có cùng những tính chất đó thì S’⊃ S thì S được gọi là một bao đóng có tính chất P của ℜ
Theo như định nghĩa đó, cho một quan hệ ℜ của V ta có thể có bao đóng phản xạ, bao đóng đối xứng và bao đóng bắc cầu của ℜ.3
3 Tuy nhiên cũng cần lưu ý là bao đóng của một quan hệ ℜ đối với một tính chất nào đó có thể không tồn tại.