Tải bản đầy đủ (.pdf) (28 trang)

Bài giảng CSDL chương 3 mô hình cơ sở dữ liệu quan hệ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (38.25 MB, 28 trang )

1


Giới thiệu
 Mô hình Cơ sở dữ liệu Quan hệ (gọi tắt là Mô

hình Quan hệ) do E.F Codd đề xuất năm 1971
 Mô hình Quan hệ thể hiện dữ liệu dưới góc độ logic
 Mô hình này bao gồm:
 Các khái niệm nhằm mô tả dữ liệu dưới dạng dòng và cột như

quan hệ, bộ, thuộc tính, khóa chính, khoá ngoại, ...
 Các phép toán thao tác với dữ liệu_ Đại số quan hệ
 Ràng buộc toàn vẹn quan hệ

 Các Hệ quản trị CSDL quan hệ (RDBMS) được xây dựng
dựa trên lý thuyết mô hình quan hệ.
2


Các khái niệm
 Quan hệ / bảng
 Thuộc tính
 Bộ
 Lược đồ quan hệ
 Khóa

3


Quan


hệ
 Dữ liệu lưu trữ trong CSDL Quan hệ được tổ chức thành các
Quan hệ (relation)
 Quan hệ (relation) thể hiện ra như là bảng (table)
 Một quan hệ có :
 Một tên
 Tập hợp các thuộc tính (attribute), có tên và kiểu dữ liệu
 Tập hợp các bộ (tuple), có thể thay đổi theo thời gian

4


Quan hệ và bảng
Thuật ngữ tương đương :
• Quan hệ, bộ, thuộc tính (Relation, tuple, attribute)
• Bảng, dòng, cột (Table, row, column)

MASV
99001
99002
99001
99005

MAMH
CSDL
CSDL
THVP
THVP

MAKHOA

CNTT
CNTT
CNTT
AV

DIEMTHI
3.0
8.0
6.0
5.0
5


Thuộc tính
Một thuộc tính bao gồm :
 Tên thuộc tính
 Tên phân biệt
 Giúp diễn giải ý nghĩa thuộc tính (thuộc tính của thực thể, hay
mối kết hợp)
 Kiểu dữ liệu thuộc tính
 Số nguyên, số thực, văn bản, logic,…
 Miền giá trị xác định
 Có thể bị áp đặt bởi qui tắc nghiệp vụ, hay ràng buộc dữ liệu
 Có thể NULL
6


Bộ và quan hệ



Mỗi bộ (dòng) là một tổ hợp các giá trị tương ứng với các
thuộc tính của quan hệ
mô tả về một thực thể , hay một mối kết hợp có trong thế giới thực





Một tập các bộ xác định tại một thời điểm, gọi là một
thể hiện của lược đồ quan hệ (hay quan hệ)
Ký hiệu: r(Ketqua)
Không có 2 bộ trùng nhau trong một quan hệ







khóa

Trật tự của các bộ (và các thuộc tính) là không quan trọng đối với
DBMS.

7


Lược
đồ
Quan

hệ
 Lược đồ quan hệ - relation schema
 Mô tả cấu trúc của quan hệ





Các thuộc tính và Mối liên hệ giữa các thuộc tính
Mỗi lược đồ quan hệ luôn kèm một tân từ để diễn tả ý nghĩa của
nó.
Vd, tân từ: Mỗi Sinh viên thuộc một khoa, học một môn học thì
có kết quả thi môn học đó.
Ký hiệu:

Ketqua( MASV, MAMH, MAKHOA, DIEMTHI)

 Lược đồ CSDL
 Tập hợp các lược đồ quan hệ trong cùng một CSDL
8


Khóa
(Key hay candidate key)
 Gọi S là một tập các thuộc tính của lược đồ quan hệ R
 S được gọi là một siêu khóa (superkey) của lược đồ quan hệ R, nếu









với hai bộ bất kỳ trong R thì giá trị của các thuộc tính trong S là khác
nhau
Siêu khoá có ít thuộc tính nhất được gọi là khóa (key) hay khóa dự
tuyển (candidate key)
 Một lược đồ quan hệ có thể có nhiều khóa (khóa dự tuyển)
Một khóa được chọn để cài đặt gọi là khóa chính (primary key)
 Không chứa giá trị NULL
khóa ngoại (foreign key) là thuộc tính của LĐQH này nhưng lại là
khóa chính của LĐQH khác
Khóa phức (composite key) là khóa có nhiều hơn một thuộc tính

 Thuộc tính khóa và thuộc tính không khóa
9


Khóa _ ví dụ 1
 Monhoc(Mamon, Tenmon, Sotiet)
rMonhoc
Mamon Tenmon
THVP
Tin hoc văn phòng
LTC
Lập trình C
CSDL1 Co so du lieu
CSDL2 Co so du lieu


Sotiet
30
60
45
45

Siêu khóa : {Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet},
{Mamon, Tenmon, Sotiet}
Khóa (khóa dự tuyển, khóa chính) : {Mamon}
10


Khóa _ ví dụ 2
 Ketqua(MaSV, MaMH, Makhoa, Diemthi)

rKQ

MASV
99001
99002
99001
99005

MAMH
CSDL
CSDL
THVP
THVP

MAKHOA

CNTT
CNTT
CNTT
AV

DIEMTHI
3.0
8.0
6.0
5.0

Siêu khóa: {MaSV, MaMH}, {MaSV,MaMH,MaKhoa},…
Khóa (khóa dự tuyển, khóa chính , khóa phức): {MaSV, MaMH}
Khóa ngoại : {Makhoa}
11


Khóa _ ví dụ 3
 Sinhvien(MaSV, Hoten, Phai, soCMND)

rSV

MaSV Hoten

Phai

99001 Nguyen van anh

Nam 01245012


99002 Tran Le Tuan

Nam 02209875

99003 Nguyen Thi Hong Nu
99004 Do van Thuan

soCMND

04563711

Nam

Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,
{soCMND} , {soCMND, Hoten},…
Khóa (khóa dự tuyển): {MaSV} , {soCMND}
Khóa chính : {MaSV}

12


Đại số quan hệ
 Khái niệm
 Các phép toán đại số quan hệ
 Ví dụ

13


Giới thiệu

 Đại số quan hệ (và phép tính quan hệ) được định nghĩa bởi
Codd 1971
 được xem như là nền tảng của các ngôn ngữ quan hệ khác
như SQL

 Là ngôn ngữ thủ tục bậc cao
 Được dùng để chỉ ra cách xây dựng một quan hệ mới từ một

hay nhiều quan hệ trong DB

 Bao gồm tập các phép toán thao tác trên các quan hệ

14


Phép tích Descartes
Cho quan hệ r trên lược đồ R(A1, A2,..,Am) và s trên
lược đồ S(B1,B2,…,Bn)
Nếu R và S có các thuộc tính trùng tên, thì phải đổi tên.
 Phép tích Descartes của r và s là 1 quan hệ trên lược đồ
T(A1, A2,.., Am, B1, B2, ….,Bn)
r x s ={ t |  tr  r và ts  s
với t[A1, A2,.., Am] = tr
và t[B1, B2, ….,Bn] = ts }

15

15



Phép tích Descartes – ví dụ 1
 Relations r, s:
MASV

MAMH

rxs
DIEM

MAMH

TENMH

99001

CSDL

5.0

CSDL

COSO DULIEU

99002

FOX

2.0

FOX


FOXPRO

99003

MANG

8.0

MASV

MAMH

DIEM

MAMH

TENMH

99001

CSDL

5.0

CSDL

COSO DULIEU

99001


CSDL

5.0

FOX

FOXPRO

99002

FOX

2.0

CSDL

COSO DULIEU

99002

FOX

2.0

FOX

FOXPRO

99003


MANG

8.0

CSDL

COSO DULIEU

99003

MANG

8.0

FOX

FOXPRO
16


Phép tích Descartes
 ứng dụng :
 phép tích Descartes là một phép tính vô nghĩa nếu đứng

riêng. Tuy nhiên, nếu kết hợp sau phép toán này một phép
chọn phù hợp , kết quả sẽ có nghĩa : kết hợp các bộ có liên
quan từ hai quan hệ.
 Vd : Hiển thị bảng điểm của các sinh viên. Bao gồm MaSV,


MaMH, Diem, TenMH
=> Viết biểu thức đại số quan hệ ?
(r x s) ( r.MaMH = s.MaMH)

1717


Ràng buộc toàn vẹn
 Ràng buộc tòan vẹn là gì
 Các loại ràng buộc toàn vẹn
 Biểu diễn ràng buộc toàn vẹn

18


Khái niệm
 Ràng buộc toàn vẹn (integrity constraint) là qui tắc mà tất cả các dữ

liệu trong CSDL phải thỏa mãn
 Nguồn gốc : xuất phát từ các qui tắc nghiệp vụ trong thế giới thực
và những đặc tính của mô hình quan hệ
 đảm bảo dữ liệu phản ánh đúng thế giới thực, đảm bảo những đặc
trưng của mô hình quan hệ
 Các dạng :
 Ràng buộc toàn vẹn thực thể (ràng buộc khóa chính)_ Entity

integrity
 Ràng buộc toàn vẹn tham chiếu (ràng buộc phụ thuộc tồn tại /
ràng buộc khóa ngọai)_ Referential integrity
 Ràng buộc toàn vẹn miền giá trị _ Domain integrity

 Ràng buộc toàn vẹn do người dùng định nghĩa _ User-defined
integrity
19


Khái niệm
Mô tả một ràng buộc toàn vẹn (RBTV): thông qua 3
yếu tố
Bối cảnh : nêu ra tên một hay một số quan hệ mà RBTV đó có
hiệu lực
Biểu diễn : nội dung của một RBTV được biểu diễn bằng
ngôn ngữ tự nhiên hoặc bằng một ngôn ngữ hình thức
Bảng tầm ảnh hưởng: xác định thời điểm (cập nhật dữ liệu)
cần phải tiến hành kiểm tra RBTV

20


Ràng buộc toàn vẹn thực thể
 Ràng buộc khóa chính
 Thể hiện: giá trị của khóa chính là duy nhất và NOT NULL
 Mục tiêu: mỗi dòng sẽ được nhận diện duy nhất

 VD: cho Sinhvien(MaSV, Hoten, Phai, Ngaysinh)
Tân từ : Mỗi sinh viên có một Mã sinh viên duy nhất, xác định một họ
tên, phái và ngày sinh.
Mô tả R1 ”Mỗi sinh viên có một Mã sinh viên duy nhất” như sau
Bối cảnh : Sinhvien
Biểu diễn : rSV  SINHVIEN,
t1,t2  rSV

t1.MASV  t2.MASV
Bảng tầm ảnh hưởng
R1
Söûa
Xoùa
Theâm
rSV

+

+ (MASV)

-

21


Ràng buộc tòan vẹn tham chiếu
 Ràng buộc khóa ngoại
 Thể hiện: gía trị của khóa ngoại có thể NULL, hoặc phải là

một trong những giá trị của khóa chính của một bảng khác
 Mục tiêu : duy trì tính nhất quán (consistency) giữa các bộ
của 2 quan hệ.
 Được thể hiện thông qua 3 quy tắc sau:




Không thể thêm các bản ghi vào bảng quan hệ nếu không có bản

ghi tương ứng trong bảng chính.
Không thể thay đổi giá trị trong bảng chính nếu làm cho các bản
ghi tương ứng trong bảng quan hệ bị mất tham chiếu
Không thể xóa các bản ghi trong bảng chính nếu nó được tham
chiếu bởi 1 số bản ghi trong bảng quan hệ

22


Ràng buộc tòan vẹn tham chiếu
 VD: cho lược đồ CSDL , bao gồm

Khoa(Makhoa, Tenkhoa)
Tân từ : Mỗi khoa có một mã khoa duy nhất, một tên khoa
Sinhvien(MaSV, Hoten, Phai, Ngaysinh, Makhoa)
Tân từ : Mỗi sinh viên có một Mã sinh viên duy nhất, xác định một
họ tên, phái và ngày sinh. Mỗi sinh viên thuộc một khoa
Mô tả R2 “Mỗi sinh viên thuộc một khoa” như sau
Bối cảnh: Khoa, Sinhvien
Biểu diễn : rSV  SINHVIEN , rKhoa  KHOA
rSV[MAKHOA]  rKHOA[MAKHOA]
Bảng tầm ảnh hưởng :
R2
rSV
rKhoa

Theâm

+
-


Söûa

Xoùa

+
+

+

23


Ràng buộc toàn vẹn miền giá trị
 Thể hiện : giá trị của một thuộc tính phải nằm trong một miền giá

trị xác định
 Mục tiêu : tuân thủ các qui tắc nghiệp vụ trong thế giới thực
 VD: Hocbong(MaSV, Namhoc, Xeploai, Sotien)
Tân từ : Hàng năm, nếu đạt kết quả học tập lọai khá trở lên thì sinh
viên được học bổng. Học bổng có 2 mức: loại khá được 500 , loại
giỏi được 700.
Mô tả R3 “học bổng có 2 mức: loại khá được 500 , loại giỏi được 700
” như sau
Bối cảnh : Hocbong
Biểu diễn : rHbong  HOCBONG,
t  rHbong ,
t.Sotien = 500 or t.Sotien = 700
Bảng tầm ảnh hưởng
R3


rHocbong

Theâm

+

Söûa

+ (Sotien)

Xoùa

- 24


Ràng buộc do user định nghĩa
 Bao gồm các ràng buộc không thuộc các loại trên , như :
 ràng buộc liên bộ / liên thuộc tính trong một quan hệ;
 ràng buộc liên thuộc tính giữa các quan hệ;
 ràng buộc do thuộc tính tính toán,…

 VD1: cho lược đồ quan hệ

Hoadon(MaHD, MaKH, Điachi, Ngaylap, NgayXuat )
Tân từ : Mỗi hóa đơn có một mã Hóa đơn duy nhất, bán cho một khách
hàng có Mã KH, có địa chỉ. Ngày lập HD phải trước hoặc trùng ngày
xuất hàng
Bối cảnh : Hoadon
Biểu diễn:

R4 :  t  rHoaDon
t.NGAYLAP <= t.NGAYXUAT
Bảng tầm ảnh hưởng :

25


×