You are on page 1of 21

Học phần: Hệ thống cơ sở dữ liệu

Bài 1. Tổng quan về cơ sở dữ liệu và các mô hình dữ liệu


- Mục đích, yêu cầu: Cung cấp cho sinh viên kiến thức tổng quan về hệ thống cơ sở dữ
liệu.
- Hình thức tổ chức dạy học: Lý thuyết, tự học
- Thời gian: Lý thuyết( trên lớp: 3; online: 2) Tự học, tự nghiên cứu: 10
- Nội dung chính:
1. Khái niệm cơ bản về hệ cơ sở dữ liệu
1.1. Tại sao lại phát triển cơ sở dữ liệu ?
Trước đây mỗi chương trình ứng dụng có một file dữ liệu riêng. Việc xử lý dữ liệu trong
các chương trình này hoàn toàn là độc lập. Ví dụ công việc quản lý sinh viên gồm: hệ
thống quản lý danh sách sinh viên sẽ lưu trữ thông tin cá nhân của sinh viên (phòng quản
lý sinh viên quản lý), hệ thống quản lý điểm theo dõi thông tin về học tập của sinh viên
(phòng đào tạo quản lý). Hai chương trình này có các file dữ liệu riêng và chạy trên các
hệ thống khác nhau.
Một số nhược điểm:
⚫ Lãng phí bộ nhớ: Cũng là thông tin về sinh viên nhưng được lưu ở nhiều file
⚫ Dị thường do cập nhật: Vì các thông tin là một nên chúng có quan hệ với nhau. Khi
một ứng dụng sửa đổi thông tin sẽ làm ảnh hưởng đến thông tin của ứng dụng khác.
Hệ xử lý tệp truyền thống ra đời. Mỗi chương trình ứng dụng sẽ lựa chọn dữ liệu và tạo
ra một cấu trúc file phù hợp cho quá trình xử lý. Các file chuyên dùng cho mỗi ứng dụng
được tập hợp lại và được quản lý tập trung như một cơ sở dữ liệu (CSDL). Tuy nhiên lại
nảy sinh một số vấn đề:
⚫ Vẫn còn lãng phí bộ nhớ: Dữ liệu được sao lại ở một số file.
⚫ File quản lý phải làm việc nhiều: Khi một mẫu dữ liệu cần sửa đổi thì 2 hoặc nhiều
mẫu dữ liệu ở các file khác sẽ phải sửa đổi theo. Nếu các mẫu dữ liệu này không thay đổi
cùng nhau thì kết quả có thể sai.
⚫ Các file được tạo ra từ các ứng dụng. Nếu một ứng dụng bị thay đổi thì các file bị
ảnh hưởng của nó sẽ bị thay đổi theo. Do đó cần phải thay đổi tất cả các chương trình ứng
dụng liên quan đến file này.
Để giải quyết các vấn đề này: Mỗi ứng dụng sẽ có những file riêng chứa các thao tác tạo
ra liên kết giữa dữ liệu với ứng dụng. Một hệ thống CSDL gồm tất cả các bản ghi dữ liệu
được cất giữ ở một nơi và được quản lý tập trung. Tất cả các ứng dụng sẽ chia sẻ dữ liệu

Trang 1
Học phần: Hệ thống cơ sở dữ liệu

trong các xử lý.


1.2. Cơ sở dữ liệu là gì ?
Định nghĩa: CSDL (Database) là một bộ sưu tập những dữ liệu tác nghiệp được lưu trữ
lại và được các hệ ứng dụng của một "xí nghiệp" nào đó sử dụng.
"Xí nghiệp" ở đây là thuật ngữ quy ước để chỉ một tổ chức bất kỳ hoặc các hoạt động
có quy mô đủ lớn. (VD: Công ty côngnghiệp, ngân hàng, trường học, thư viện, bệnh
viện,...)
Dữ liệu tác nghiệp: Là các dữ liệu về hoạt động của mỗi xí nghiệp cụ thể được các
chương trình ứng dụng sử dụng. (VD: Thư viện có dữ liệu tác nghiệp phục vụ cho hệ ứng
dụng của thư viện như dữ liệu về sách, độc giả, mượn, trả...Trường học có dữ liệu tác
nghiệp về sinh viên, giáo viên, ..)
Chú ý: dữ liệu tác nghiệp không gồm dữ liệu vào và dữ liệu ra hoặc các thông tin thuần
tuý là tạm thời.
Dữ liệu vào là thông tin từ thế giới bên ngoài đi vào hệ thống có thể gây ra các biến đổi
trong dữ liệu tác nghiệp nhưng nó không là bộ phận của dữ liệu tác nghiệp. Dữ liệu ra liên
quan tới báo cáo mà hệ thống đưa ra, những báo cáo đó chứa thông tin được rút ra từ dữ
liệu tác nghiệp nhưng chúng không phải là bộ phận của CSDL.
Ví dụ: Trong thư viện giấy giới thiệu- dữ liệu vào gây ra sự thay đổi của dữ liệu về bạn
đọc. Giấy phạt -dữ liệu ra rút ra từ dữ liệu tác nghiệp. Thống kê sách được nhiều người ưa
thích - dữ liệu ra.
Dữ liệu tác nghiệp khá ổn định và tồn tại lâu dài trong CSDL.
1.3. Hệ quản trị cơ sở dữ liệu (Database Management System)

Người sử
Giao Hệ quản Cơ sở dữ
dụng
diện trị CSDL liệu

Hình 1. 1. Quá trình trước và sau khi kết thúc việc truy nhập cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu (HQTCSDL) là một phần mềm điều khiển mọi truy nhập đối với
CSDL.
Ví dụ: FOXPRO, M.ACCES, M.SQL SERVER, ORACLE, DB2, SYBASE ...

Trang 2
Học phần: Hệ thống cơ sở dữ liệu

Tính năng của HQTCSDL


⚫ Cung cấp ngôn ngữ định nghĩa dữ liệu.
⚫ Cung cấp các thao tác cơ sở: Bổ xung, xoá, sửa, tìm kiếm các dữ liệu.
⚫ Đảm bảo tính độc lập dữ liệu
⚫ Cung cấp các thủ tục cho phép sao chép và phục hồi đảm bảo tính an toàn dữ liệu.
1.4. Hệ cơ sở dữ liệu
Một hệ cơ sở dữ liệu gồm 4 thành phần:
- CSDL: Là tập tất cả các dữ liệu tác nghiệp của xí nghiệp còn gọi là CSDL hợp nhất
cho phép sử dụng chung với nhiều người sử dụng, nhiều chương trình ứng dụng
cùng chia sẻ.
- Người sử dụng (user):Là những người có nhu cầu truy nhập vào CSDL.
 Người sử dụng cuối làm việc tại thiết bị cuối thường chỉ tra cứu thông tin

 Người viết chương trình ứng dụng

 Người quản trị CSDL: Là một hoặc một nhóm người có nhiệm vụ điều khiển
toàn bộ hệ CSDL
- Phần mềm QTCSDL
- Phần cứng: Các thiết bị nhớ thứ cấp được sử dụng để lưu trữ CSDL.
2. Kiến trúc tổng quát của hệ cơ sở dữ liệu
2. 1. Kiến trúc một hệ CSDL
Ở đây xem như chỉ có một CSDL đơn giản và có một phần mềm QTCSDL. Kiến trúc của
hệ CSDL được chia làm nhiều mức. (hình 1.2)

Trang 3
Học phần: Hệ thống cơ sở dữ liệu

Hình 1.2. Kiến trúc CSDL


Thể hiện: Khi CSDL được thiết kế, người ta thường quan tâm tới "bộ khung" hay
còn gọi là "mẫu" của CSDL. Dữ liệu hiện có trong CSDL gọi là thể hiện của CSDL. Dữ
liệu có thể thay đổi trong một chu kỳ thời gian nhưng "bộ khung" của CSDL thì không
thay đổi.
Mô hình ngoài (hay còn gọi là khung nhìn của người sử dụng) là tập tất cả các dữ
liệu mà người sử dụng cụ thể có thể nhìn thấy và được phép truy nhập.
Ví dụ: Một người sử dụng ở phòng cán bộ có thể nhìn thấy CSDL là tập các xuất hiện bản
ghi về phòng và tập các xuất hiện của bản ghi về nhân viên. Có thể người đó hoàn toàn
không biết gì các xuất hiện của các bản ghi về hãng cung ứng và về các mặt hàng mà
người sử dụng từ phòng cung ứng vật tư nhìn thấy.
=> Có thể có nhiều mô hình ngoài khác nhau.

Trang 4
Học phần: Hệ thống cơ sở dữ liệu

Mô hình quan niệm gọi là mô hình dữ liệu: là tập tất cả các dữ liệu của CSDL được biểu
diễn dưới dạng ít nhiều trừu tượng so với cách lưu trữ vật lý của dữ liệu.
Mô hình trong: là tập toàn bộ dữ liệu của CSDL mà biểu diễn dưới dạng gần với lưu trữ
thực sự trên các thiết bị nhớ.
Ánh xạ quan niệm: Là sự tương ứng giữa các mô hình
Lược đồ: "Bộ khung" nêu trên bao gồm một số danh mục, chỉ tiêu hoặc một số kiểu của
các thực thể trong CSDL. Thuật ngữ "lược đồ " ở đây thay cho khái niệm "bộ khung".
Lược đồ khái niệm là bộ khung của CSDL khái niệm, lược đồ vật lý là bộ khung của
CSDL mức vật lý, khung nhìn được gọi là lược đồ con.
Kiến trúc được chia làm ba mức:
⚫ Mức ngoài: Sát với người sử dụng hơn cả là cách nhìn của người sử dụng cụ
thể ứng với hệ CSDL.
⚫ Mức trong sát với lưu trữ thực sự của dữ liệu trên các thiết bị nhớ thứ cấp
⚫ Mức quan niệm là mức trung gian không phụ thuộc người sử dụng cụ thể cũng
như lưu trữ thực sự trên máy.
2. 2. Tính độc lập dữ liệu
Một CSDL là độc lập dữ liệu nếu nó có hoặc có thể có khả năng phát triển mà không ảnh
hưởng tới các hệ ứng dụng.
Có hai mức độc lập dữ liệu .
⚫ Độc lập dữ liệu mức vật lý (quan hệ giữa mô hình quan hệ và mô hình trong): Có
thể thay đổi cách tổ chức, cách lưu trữ dữ liệu trên các thiết bị nhớ thứ cấp do đó làm thay
đổi hiệu quả tính toán của các chương trình ứng dụng nhưng không đòi hỏi phải viết lại
chương trình đó.
⚫ Độc lập dữ liệu logic (quan hệ giữa mô hình quan hệ và các khung nhìn): Có thể
thay đổi lược đồ khái niệm mà không cần thiết phải thay đổi các chương trình ứng dụng.
Có thể định nghĩa tính độc lập dữ liệu là " tính bất biến của các hệ ứng dụng đối với các
thay đổi trong cấu trúc lưu trữ và chiến lược truy nhập".
Tính độc lập dữ liệu là mục tiêu chủ yếu của các hệ CSDL.
3. Các loại mô hình dữ liệu
Một số mô hình dữ liệu cơ bản đang được sử dụng là:

Trang 5
Học phần: Hệ thống cơ sở dữ liệu

Hình1.3. Một số mô hình cơ bản


Mô hình flat file: dữ liệu được lưu trong các tập tin văn bản thường không chứa cấu
trúc. Vd:

Mô hình này không có khả năng truy xuất dữ liệu hiệu quả và việc tích hợp dữ liệu
không thể thực hiện khi không có bất kỳ mô hình hay cấu trúc xung quanh
Mô hình phân cấp (Hierachical model): Mô hình này được ra đời vào khoảng năm
60-65 của thế kỉ 20. Mô hình dữ liệu là một cây trong đó các nút biểu diễn các tập thực
thể, giữa các nút con và nút cha được liên hệ theo một mối quan hệ xác định. Mỗi nút
có một cha duy nhất, một nút cha có thể có nhiều nút con. Các khái niệm thường gặp
trong mô hình phân cấp là khái niệm bản ghi, móc nối, các phép toán thường gặp:GET,
GET UNIQUE, GET NEXT, GET NEXT WITHIN PARENT, ...

Hình 1.4. Ví dụ mô hình phân cấp


Ưu điểm của mô hình phân cấp là dễ xây dựng và dễ thao tác, có sự tương thích với

Trang 6
Học phần: Hệ thống cơ sở dữ liệu

các lĩnh vực tổ chức phân cấp (vd: tổ chức nhân sự trong các đơn vị…), ngôn ngữ thao
tác đơn giản. Nhược điểm của mô hình này là có sự lặp lại của các kiểu bản ghi dễ đến
dữ liệu dư thừa và không nhất quán, và do đặc trưng liên kết nên koong thể biểu diễn
được mối quan hệ nhiều-nhiều
⚫ Mô hình dữ liệu mạng (Network data model): được cho ra đời không lâu sau
mô hình phân cấp. Mô hình dữ liệu mạng hay còn gọi là mô hình mạng có cấu trúc dữ liệu
tổ chức thành một đồ thị hướng. Tại đây, các các đỉnh là các thực thể, các cung là quan hệ
giữa hai đỉnh, một kiểu bản ghi có thể liên kết với nhiều kiểu bản ghi khác. Một thực thể
con có thể có nhiều thực thể cha và có nhiều đường dẫn truy nhập đến một dữ liệu theo
cấu trúc của mô hình dữ liệu mạng đã được định sẵn từ trước. Khi sử dụng mô hình này,
người dùng sẽ có thể biểu diễn đa dạng các ngữ nghĩa theo kiểu bản ghi hay móc nối và
truy vấn nhanh chóng thông qua phép duyệt đồ thị Navigation. Mặc dù vậy, trên mô hình
dữ liệu mạng vẫn còn tồn tại những hạn chế như số lượng con trỏ lớn, hạn chế trong việc
biểu diễn ngữ nghĩa và móc nối giữa các bản ghi với nhau.

Hình 1.5. Ví dụ mô hình dữ liệu mạng


Ưu điểm của mô hình này là đơn giản, có thể biểu diễn ngữ nghĩa đa dạng với kiểu bản
ghi và kiểu móc nối. Có thể thực hiện truy vấn thông qua phép duyệt đồ thị. Tuy nhiên
nhược điểm của mô hình này là số lượng các con trỏ lớn, hạn chế trong biểu diễn ngữ
nghĩa của các móc nối giữa các bản ghi
⚫ Mô hình quan hệ (Relational model): Mô hình này dựa trên cơ sở khái niệm lý
thuyết tập hợp của các quan hệ, tức là tập các k-bộ với k cố định. Nhờ áp dụng điều này
mà mô hình dữ liệu quan hệ có tính chặt chẽ khá cao, mô tả dữ liệu một cách rõ ràng. Nó
được đánh giá là mô hình với nhiều ưu điểm, được sử dụng thông dụng nhất hiện nay.
Mô hình quan hệ được tổ chức dưới dạng bảng các phép toán thao tác trên dữ liệu dựa
trên lý thuyết tập hợp của toán học. Sử dụng các phép toán như hợp, giao, tích đề các,
chia, trừ, chiếu, chọn, kết nối,..để xây dựng mô hình.

Trang 7
Học phần: Hệ thống cơ sở dữ liệu

Hình 1.6. Ví dụ mô hình quan hệ


Ưu điểm cần được nhắc đến của loại mô hình này là khả năng tối ưu hóa đa dạng các xử
lý nhờ dựa trên lý thuyết tập hợp và đại số quan hệ. Còn về phần nhược điểm thì cấu trúc
này vẫn chưa linh hoạt và hạn chế trong việc biểu diễn ngữ nghĩa phức tạp của các quan
hệ thực tế.
Mô hình dữ liệu thực thể - liên kết ( Entity-Relational data model): Mô hình quan hệ
thực thể (Entity Relationship model - E-R) được CHEN giới thiệu vào năm 1976 là một
mô hình được sử dụng rộng rãi trong các bản thiết kế cơ sở dữ liệu ở mức khái niệm, được
xây dựng dựa trên việc nhận thức thế giới thực thông qua tập các đối tượng được gọi là
các thực thể và các mối quan hệ giữa các đối tượng này. So với mô hình mạng thì mô hình
quan hệ thực thể có nhiều ưu điểm hơn và nó thể hiện rõ hơn các thành phần trong thế
giới thực. Nếu như mô hình mạng chỉ biểu diễn các đối tượng chính chứ không mô tả
được các đặc điểm trong đối tượng đó thì trong mô hình quan hệ thực thể lại khắc phục
được những điểm yếu này. Mô hình này được biểu diễn bằng thực thể- liên kết gắn với
các khái niệm cơ bản: Thực thể: một đối tượng trong thế giới thực, thuộc tính: một đặc
tính của một tập thực thể, định danh (Khóa): xác định sự duy nhất của 1 thực thể, liên kết:
mối liên hệ có nghĩa giữa nhiều thực thể. Ưu điểm của mô hình này là dễ dàng biểu diễn
cái mà con người nhận thức từ thế giới thực, biểu diễn ngữ nghĩa phong phú của các thực
thể và quan hệ giữa các thực thể. Nhược điểm là không dễ dàng ánh xạ vào những cấu
trúc lưu trữ trên máy tính

Trang 8
Học phần: Hệ thống cơ sở dữ liệu

Hình 1.7. Mô hình thực thể liên kết


• Mô hình dữ liệu hướng đối tượng (Object Oriented model): Mô hình dữ liệu
hướng đối tượng được cho ra đời muộn hơn các mô hình kể trên. Nó ra đời vào khoảng
đầu những năm 90, trong đó các thuộc tính dữ liệu và các phương thức thao tác trên các
thuộc tính đó đều được đóng gói trong các cấu trúc nhất định.

Hình 1.8. Ví dụ mô hình dữ liệu hướng đối tượng


Mô hình này cho phép định nghĩa được các kiểu đối tượng phức tạp. Có nhiều tính chất
khác nhau như: bao đóng (encapsulation), kế thừa (heritage), đa hình (polymorphism).
Nhược điểm còn tồn tại là cấu trúc lưu trữ còn phức tạp, có thể cần sử dụng đến nhiều con
trỏ. Khả năng tối ưu hóa chưa tốt, còn bị hạn chế trong một vài trường hợp.
Trong các mô hình trên thì mô hình phổ biến nhất được các hệ quản trị cơ sở dữ liệu hỗ
trợ sử dụng nhiều nhất đó là mô hình cơ sở dữ liệu quan hệ

4. Mô hình cơ sở dữ liệu quan hệ- các khái niệm cơ bản


4. 1. Miền
Định nghĩa: Miền là một tập hợp các giá trị mà từ đó có thể rút ra những giá trị thực
sự.

Trang 9
Học phần: Hệ thống cơ sở dữ liệu

Ví dụ
⚫ Miền giá trị về màu quần áo là tập hợp D1 = {xanh, đỏ, tím, vàng,…}
⚫ Miền giá trị giới tính của người là tập hợp D2 = {nam,nữ}
⚫ Miền giá trị của lương công nhân là tập các số thực
⚫ Miền giá trị của tên người là tập hợp các xâu ký tự có độ dài không quá 30 ký tự
Ký hiệu: Miền giá trị của một đối tượng A ký hiệu là DOM(A)
VD: D1 = DOM (Tên), D2 = DOM (giới tính)

4.2. Tích Đề các


Định nghĩa: Tích đề các của các miền D1, D2,... Dn (ký hiệu D1 x D2 x...x Dn) là tập
các bộ (v1, v2, ..., vn) trong đó vi ẻ Di với i = 1..n
Ví dụ:

Lan
nam
Hùng
nữ

 (Lan, nam)  (Hùng, nam)  (Hà, nam)

 (Lan, nữ)  (Hùng, nam)  (Hà, nữ)

Hình 1.9. Minh hoạ tích đề các của hai tập hợp

DOM(Tên) = {Lan, Hùng, Hà} ; DOM(Giới tính) ={nam, nữ}


DOM(Tên) x DOM(Giới tính) = {(Lan, nam), (Lan, nữ), (Hùng, nam), (Hùng, nữ), (Hà,
nam), (Hà, nữ)} (hình 2.1)
D1 ={0,1,2}; D2 = {a,b,c}

D1 x D2 = {(0,a); (0,b); (0,c); (1,a); (1,b); (1,c); (2,a); (2,b); (2,c)}

D1 = {A}; D2 ={a,b}; D3 = {1,2}

D1 x D2 x D3 = {(A,a,1); ((A,a,2); (A,b,1); (A,b,2)}

Trang 10
Học phần: Hệ thống cơ sở dữ liệu

4. 3. Quan hệ
Ví dụ: Giả sử thông tin về nhân viên trong một công ty được thể hiện ở tên và giới tính.
Các thông tin đó được biểu diễn trong một quan hệ như sau:
R = {(Lan, nữ), (Hùng, nam), (Hà, nữ)}
DOM(Tên) = {Lan, Hùng, Hà}; DOM(Giới tính) = {nam, nữ}
Nhận xét: R € DOM(Tên) x DOM(Giới tính)
Tên và Giới tính được gọi là các thuộc tính của quan hệ
Định nghĩa quan hệ
Gọi U ={A1, A2,…, An} là một tập hữu hạn các thuộc tính, mỗi thuộc tính Ai có miền
giá trị tương ứng là DOM(Ai); (i =1,..,n). Quan hệ R trên tập các thuộc tính U là một tập
con của tích Đề các R € DOM(A1) x DOM(A2) x ... x DOM(An).

Định nghĩa trực quan về quan hệ:


Có thể quan niệm quan hệ là một bảng 2 chiều có các dòng và các cột. Các cột có giá trị
ứng với các miền, các dòng ứng với các bộ của tích Đề các
Thuộc tính của quan hệ là cột của bảng quan hệ. Giá trị của cột thuộc thuộc tính thuộc
miền giá trị của thuộc tính đó.
Một quan hệ có 2 yếu tố cơ bản:
Cấu trúc dữ liệu của quan hệ mô tả các cột lưu trữ trong các bảng như tên cột, miền giá
trị, một số quy định…(còn gọi là lược đồ quan hệ)
Dữ liệu của quan hệ là giá trị của các cột tạo thành các dòng.
R A B C
a1 b1 c1

Tên bảng a2 b2 c2

(quan hệ)
1 cột = thuộc tính
1 dòng = một bộ
(các giá trị lấy ra từ Dom(A)

Hình 1.10. Biểu diễn quan hệ

Trang 11
Học phần: Hệ thống cơ sở dữ liệu

Xe Số xe Mác Màu
A349 xanh
A374 Dream đỏ
Tên quan hệ
T297 Wave xanh

1 bộ
ThuộcVítính
dụ
SINH VIÊN Mã SV Tên SV Ngày sinh Mã lớp
XE Số xe Mác Màu
SV025 Nguyễn Văn Anh 16 - 7 - 1980 T1
Honda
SV027 Nguyễn Thị Bình 1 - 3 - 1981 T2
SV379 Nguyễn An 5 - 10 - 1980 T1
SV030 Đỗ Văn Hà 7 - 9 - 1980 T3

Chú ý: Trong một quan hệ không có các thuộc tính trùng tên và không có các bộ trùng
nhau.
⚫ Miền giá trị của các thuộc tính không nhất thiết khác nhau.
⚫ Nếu số cột thuộc tính là n thì quan hệ gọi là có bậc n.
⚫ Số các bộ trong một bảng quan hệ gọi là lực lượng của quan hệ. Số các bộ trong
quan hệ là hữu hạn.
⚫ Các mẫu quan hệ được tạo ra theo một quy tắc nào đó tuỳ thuộc HQTCSDL.
Trong đại số quan hệ: Quan hệ - thuộc tính - n-bộ
Trong FOX : Tệp DBF - trường - bản ghi
Trong SQL,ACCESS: Bảng - cột - dòng
4.4. Cơ sở dữ liệu quan hệ
Một CSDL quan hệ gồm một hay nhiều bảng quan hệ. Dữ liệu của một CSDL là các bộ
trong bảng.
Định nghĩa: CSDL quan hệ là CSDL mà lược đồ là tập các lược đồ quan hệ và các thể
hiện là các n-bộ của những quan hệ này.
Ví dụ: Một cơ sở dữ liệu gồm có ba quan hệ:
⚫ S là quan hệ các hãng cung ứng gồm các thuộc tính số hiệu hãng, tên hãng, tình
trạng và địa chỉ: S (S#, SNAME, STATUS, CITY)
⚫ P là quan hệ các mặt hàng gồm các thuộc tính số hiệu mặt hàng, tên mặt hàng, màu

Trang 12
Học phần: Hệ thống cơ sở dữ liệu

sắc, khối lượng và nơi lưu kho: P (P#, PNAME, COLOR, WEIGHT, CITY)
⚫ SP là quan hệ các mặt hàng đã cung cấp gồm các thuộc tính số hiệu hãng, số hiệu
mặt hàng và khối lượng hàng đã cung cấp: P (S#, P#, QTY).

S S# SNAME STATUS CITY


S1 Nguyễn Văn Anh 20 Hà nội
S2 Nguyễn Thị Bình 10 Hà tây
S3 Nguyễn An 30 Thái bình

P P# PNAME COLOR WEIGHT CITY


P1 A Đỏ 12 Hà nội
P2 B Xanh 17 Hà tây
P3 C Đỏ 14 Hà nội
P4 A Vàng 17 Hải phòng

SP S# P# QTY
S1 P1 300
S1 P2 200
S1 P3 400
S2 P1 300
S2 P2 400
S3 P3 200
4. 5. Khoá
4.5.1. Định nghĩa trực quan
Định nghĩa: Khoá của một quan hệ là một hoặc một số các thuộc tính của quan hệ có
thể dùng để phân biệt hai bộ bất kỳ trong quan hệ.
Ví dụ:
Trong quan hệ S có:
⚫ S# là khoá của quan hệ.
⚫ SNAME không là khoá vì có thể có hai bộ có SNAME trùng nhau.
⚫ {S#, SNAME} là khoá của quan hệ.
⚫ Trong quan hệ SP có khoá là {S#,P#} hay {S#,P#, QTY}
Chú ý: Khoá bao gồm tất cả các thuộc tính của một quan hệ là một khoá tầm thường.
Một quan hệ có ít nhất một khoá đó là khoá tầm thường.

Trang 13
Học phần: Hệ thống cơ sở dữ liệu

• Khóa chính (Primary key - PK): Là một hoặc một nhóm thuộc tính xác định duy
nhất một bộ trong quan hệ.
• Khóa ghép (Composite key): Là một khóa có từ hai thuộc tính trở lên.
• Khóa ngoài (Foreign key - FK): Khi khóa chính của một quan hệ được đặt trong
một quan hệ khác để thể hiện liên kết giữa hai bản ghi của các quan hệ thì nó được
gọi là một khóa ngoài
• Khóa giả: Thuộc tính thêm vào để xác định duy nhất một bản ghi. Được sử dụng
làm khóa chính để thay thế cho khóa chính có nhiều thuộc tính (từ 3 thuộc tính trở
lên)
• Khóa thứ cấp (Secondary key): Thường được xem xét sử dụng trong tìm kiếm
khi giá trị một khóa chính không thể đáp ứng.
• Khóa tối thiểu: K là khóa tối thiểu của quan hệ R nếu K là khóa của R và mọi K’
là tập con thực sự của K đều không là khóa của R
4.5.2. Định nghĩa hình thức
Định nghĩa: Cho quan hệ R xác định trên tập thuộc tính U = {A1,A2,..., An}. K là một tập
con của U. K được gọi là khoá của R nếu với mọi bộ t1,t2 thuộc R luôn tồn tại thuộc tính
A thuộc K sao cho giá trị của bộ t1 trên A khác giá trị của bộ t2 trên A.
Nhận xét:

⚫ Nếu K là khoá của R thì mọi K' chứa K cũng là khoá của R. VD: S# là khoá của
quan hệ S => {S#, CITY} là khoá của S.
⚫ Thường thì bắt buộc không một giá trị nào của khoá là không xác định.
Khoá tối thiểu: K là khoá tối thiểu của quan hệ R nếu K là khoá của R và mọi K' là tập
con thực sự của K đều không là khoá của R.

K là khoá tối thiểu của R khi và chỉ khi K là khoá của R và K'  K
Ví dụ:
{S#,P#} và {S#,P#, QTY} đều là khoá của SP. {S#,P#} là khoá tối thiểu của SP vì S# hay
P# đều không phải là khoá của SP.
Quan hệ SINH_VIEN (Mã SV, Tên SV, Năm sinh, Địa chỉ)
⚫ K1={Mã SV} là khoá tối thiểu

Trang 14
Học phần: Hệ thống cơ sở dữ liệu

⚫ K2={Tên SV, Năm sinh, Địa chỉ}à khoá tối thiểu


⚫ K3={Mã SV, Tên SV}à khoá không tối thiểu
Có thể có nhiều khoá tối thiểu trong một quan hệ R, thường chọn một khoá tối thiểu làm
khoá chính còn các khoá khác làm khoá dự bị.
⚫ Khoá ngoài: Một tập thuộc tính K là khoá ngoài của một quan hệ R nếu K không
là khoá chính của quan hệ R nhưng lại là khoá chính của một quan hệ khác.

K  U, K là khoá ngoài của R khi và chỉ khi K không là khoá của R và K là khoá của R'.
Ví dụ: S# là khoá ngoài của quan hệ SP vì là khoá của quan hệ S
P# là khoá ngoài của quan hệ SP vì là khoá của quan hệ P
5. Khái niệm về đại số quan hệ
Ví dụ cho hệ CSDL với các dữ liệu sau:
S S# SName Status City SP S# P# Qty
S1 Hùng 20 Hà nội S1 P1 300
S2 Lan 10 Hà tây S1 P2 200
S3 Lan 30 Hà tây S1 P3 400
S2 P1 300
S2 P2 400
S3 P2 200

P P# PName Color Weught City


P1 A Đỏ 12 Hà nội
P2 B Xanh 17 Hà tây
P3 C Vàng 17 TBình
P4 C Đỏ 14 Hà nội

Yêu cầu
Tìm địa chỉ của hãng có số hiệu là S1. Câu trả lời là 'Hà nội' chính xác hơn câu trả lời là
một bảng (một quan hệ) có một hàng và một cột. Cột là thuộc tính CITY và hàng là giá trị
duy nhất của cột 'Hà nội'.

Trang 15
Học phần: Hệ thống cơ sở dữ liệu

Kết quả City


Hà nội

-Tìm số hiệu hãng và tình trạng các hãng cung ứng ở 'Hà Tây': Kết quả là một bảng có hai
hàng và hai cột
S S S# SName Status → Kết quả S# Status
S2 Lan 10 Hà Tây S3 30
S3 Lan 30 Hà Tây

-Tìm tên mặt hàng do hãng S1 cung ứng


SP S# P# P P# PName → Kết quả PName
S1 P1 P1 A A
S1 P2 P2 B B
S1 P3 P3 C C

Kết quả lại là một bảng. Nhưng khi xây dựng bảng này phải duyệt qua hai bảng. Kết quả
là tập con của một bảng.

-Tìm số hiệu mặt hàng của mỗi mặt hàng được cung ứng và địa chỉ của các hãng cung ứng
mặt hàng đó.
SP S# P# S S# City → Kết quả P# City
S1 P1 S1 Hà nội P1 Hà nội
S1 P2 S2 Hà tây P2 Hà nội
S1 P3 S3 Hà tây P3 Hà nội
S2 P1 P1 Hà tây
S2 P2 P2 Hà tây
S3 P2 P2 Hà tây

Phải duyệt qua hai bảng, các giá trị trong bảng kết quả được thực sự rút ra từ hai bảng.
Hàng thừa, trùng lặp bị bỏ đi (hàng cuối cùng) vì trong quan hệ không có hai bộ trùng
nhau.
Nhận xét:

Trang 16
Học phần: Hệ thống cơ sở dữ liệu

⚫ Để thực hiện được các công việc trên phải thực hiện một tập các phép toán. Ví dụ: để
tìm các bộ trên một bảng có thể thực hiện phép toán chọn, để tìm kiếm trên hai bảng trước
tiên phải dùng phép nối hai bảng thành một sau đó mới có thể thực hiện công việc tìm
kiếm...
⚫ Vì kết quả của các phép toán trên dữ liệu quan hệ đều là các bảng (các quan hệ) nên
tập hợp các phép toán trên một tập các quan hệ (CSDL) hình thành đại số quan hệ. mỗi
phép toán của đại số quan hệ lấy một hoặc hai quan hệ làm toán hạng của nó và sản sinh
ra một quan hệ mới.
Hai quan hệ r và s được gọi là khả hợp nếu chúng được xác định trên cùng một tập các
miền trị (Có nghĩa là chúng được xác định trên cùng một tập các thuộc tính).
Đại số quan hệ: tập hợp các phép toán trên một tập các CSDL quan hệ
Với mỗi phép toán:
Đầu vào: một hay nhiều quan hệ
Đầu ra: một quan hệ
6. Một số phép toán đại số quan hệ
6.1. Phép chọn (phép cắt ngang quan hệ)
Phép chọn là phép toán lọc ra một tập con các bộ của quan hệ đã cho theo biểu thức chọn
F.
⚫ Biểu thức chọn F là một tổ hợp logic các toán hạng, mỗi toán hạng là một phép so sánh
đơn giản giữa hai thuộc tính hoặc giữa một thuộc tính và một giá trị hằng.
⚫ Phép toán logic: ^(và), V(hoặc), ơ (phủ định).
⚫ Phép toán so sánh: <, >, =, >=, <=, <>
Phép chọn trên quan hệ r với biểu thức chọn F (Phép chọn tác động trên một quan hệ nên
là phép toán một ngôi)
σF(r) = { t thuộc r / F(t) đúng}

Ví dụ1: r (A ,B) ; F1 = (A=a1) V (B=3) → σF1(r) = r' (A ,B)


a1 1 a1 1
a2 2 a3 3
a3 3
F2 =(A=a1) ^ (B=2) → σF2(r) = r''(A,B) = Ø.
Bậc r = bậc r' ; lực lượng của r >= lực lượng của r'

Trang 17
Học phần: Hệ thống cơ sở dữ liệu

Phép chọn trên quan hệ là lấy ra các dòng của bảng quan hệ thoả mãn một điều kiện nào
đó trên tập các cột thuộc tính.
Ví dụ 2: Chọn trên quan hệ NV3 các nhân viên thuộc phòng có Mã ph =P001
σFMã Ph = ‘P001’(NV3) Mã NV Tên NV Mã Ph
NV001 Hoàng P001
NV003 Huy P001
6.2. Phép chiếu (phép cắt dọc quan hệ)
Phép chiếu là phép toán loại bỏ đi một số thuộc tính và chỉ giữ lại một số thuộc tính được
chỉ ra của một quan hệ
Cho quan hệ r(R), X là tập con của tập thuộc tính R. Phép chiếu của quan hệ r trên X:
ΠX(r) = { t[X]/ thuộc r}; t[X] là bộ t lấy trên tập thuộc tính X.

Ví dụ 1: Cho r(A,B) như ví dụ 1 mục 6.1 chương này , X={A};


ΠX(r) = k(A)

a1
a2
a3
Bậc của r > bậc của k; lực lượng của r > lực lượng của k
Phép chiếu trên quan hệ là lấy một số cột thuộc tính nào đó của bảng quan hệ.
Ví dụ 2: Lấy danh sách mã NV của quan hệ NV3
ΠMa NV(NV3) Mã NV

NV001
NV002
NV003

6.3. Phép tích đề các


Cho quan hệ r(R), R={A1,A2,...,An} và quan hệ s(U), U={B1,B2,...,Bm}

Tích đề các r x s ={t=(a1,a2,...,an, b1,b2,...,bm) / a1,a2,...,an Єr và b1,b2,...,bm Єs}

Ví dụ:

Trang 18
Học phần: Hệ thống cơ sở dữ liệu

r (A , B ); s(C , D) ; r x s = k (A, B, C, D)
a1 1 1 d1 a1 1 1 d1
a2 2 2 d2 a1 1 2 d2
a3 3 a2 2 1 d1
a2 2 2 d2
a3 3 1 d1
a3 3 2 d2
Chú ý: Bậc k = bậc r + bậc s , lực lượng k = lực lượng r x lực lượng s
Phép tích đề các là phép toán đắt nhất trong các phép toán của đại số quan hệ.
6.4. Phép kết nối
6.4.1 Phép kết nối thường
Cho hai quan hệ r(R), R={A1,A2,...,An} và quan hệ s(U), U={B1,B2,...,Bm}.

Phép xếp cạnh nhau: cho hai bộ d = (d1,d2,...,dn) và e = (e1,e2,...,em) phép xếp cạnh
nhau của d và e là: (d ^ e) = (d1, d2, ..., dn, e1, e2, ..., em)

Phép kết nối giữa quan hệ r với thuộc tính A và quan hệ s với thuộc tính B với một phép
so sánh θ là: r  s = {a^b / a  r, b  s vµ a(A) θ b(B)}
(AθB)
Ví dụ: Xét quan hệ r và s trong ví dụ 6.3

r  s = k' (A, B, C, D)
(B>=C) a1 1 1 d1
a1 2 1 d1
a2 2 2 d2
a3 3 1 d1
a3 3 2 d2
Lực lượng của phép kết nối k' <= lực lượng của phép tích đề các k.

k' = σB>=C(k) → r  s = σF(r x s)


Chú ý:
⚫ Để phép kết nối có nghĩa, miền trị dom(A) phải so sánh được qua phép so sánh θ với
miền trị dom(B)
⚫ Nếu phép so sánh θ là "=" thì phép kết nối gọi là kết nối bằng.

Trang 19
Học phần: Hệ thống cơ sở dữ liệu

Ví dụ: r  s = k' ( A, B, C, D)
(B=C) a1 1 1 d1
a2 2 2 d2
6.4.2 Phép kết nối tự nhiên
Phép toán kết nối bằng trên những thuộc tính cùng tên của hai quan hệ và sau khi kết nối
thì cắt bỏ đi một thuộc tính cùng tên bằng phép chiếu của đại số quan hệ được gọi là phép
kết nối tự nhiên ký hiệu *.
Ví dụ: r(A, B, C) s(C, D, E) r*s = (A, B, C, D, E)
a1 1 1 1 d1 e1 a1 1 1 d1 e1
a2 2 1 2 d2 e2 a2 2 1 d1 e1
a1 2 2 3 d3 e3 a1 2 2 d2 e2
r*s = ΠABCDE( r  s)
C=C
Ví dụ: Cho hai quan hệ NHANVIEN và PHONG tương ứng như sau:
Mã NV Tên NV Mã Ph Mã Ph Tên Ph
NV001 Hoàng P001 P001 Tổ chức
NV002 Thiện P002 P002 Kinh doanh
NV003 Huy P001 P003 Nhân sự
NV004 Thiện P003 P004 Tiếp thị

Kết nối tự nhiên của hai quan hệ là quan hệ sau:


Mã NV Tên NV Mã Ph Tên Ph
NV001 Hoàng P001 Tổ chức
NV002 Thiện P002 Kinh doanh
NV003 Huy P001 Tổ chức
NV004 Thiện P003 Nhân sự

Trang 20
Học phần: Hệ thống cơ sở dữ liệu

Yêu cầu sinh viên chuẩn bị:


Đọc trước đề cương bài giảng chi tiết và slides bài giảng, xem video bài giảng, làm bài
trắc nghiệm bài 1. Đọc tài liệu tham khảo số [1] chương 1, 2, 3 và tài liệu tham khảo số
[2] chương 1
Tài liệu tham khảo:
[1] Nguyễn Thị Thanh Huyền, Giáo trình cơ sở dữ liệu, NXB Giáo Dục, 2011
[2] Phạm Thị Thanh Hồng, Cơ sở dữ liệu, NXB Lao động xã hội, 2000

Trang 21

You might also like