Lý thuyết Cơ sở Dữ liệu – Phần 2 (Mô hình CSDL quan hệ)

Mô hình CSDL quan hệ

Mô hình CSDL quan hệ là mô hình bao gồm một hệ thống các kí hiệu để mô tả dữ liệu dưới dạng bảng (các hàng, các cột) như quan hệ bộ, thuộc tính, khoá chính, khoá ngoại. Trong mô hình bao gồm một tập hợp các phép toán tập hợp, các phép toán quan hệ, các ràng buộc toàn vẹn quan hệ.

¨    Thuộc tính (trường) là đặc điểm của đối tượng cần quản lý.

Ví dụ:    Đối tượng Sinh Viên có các thuộc tính như: Mã SV, Tên SV, Ngày Sinh, …

¨    Lược đồ quan hệ là tập hợp tất cả các thuộc tính cần quản lý của một đối tượng với mối liên hệ giữa chúng.

Ví dụ:    SinhVien(MaSV,TenSV,NgaySinh,Lop)

¨    Nhiều lược đồ quan hệ cùng nằm trong một hệ thống quản lý gọi là 1 lược đồ CSDL.

Ví dụ:    Để quản lý Điểm của sinh viên, ta có 1 lược đồ CSDL sau:

SinhVien(MaSV,TenSV,NgaySinh,DiaChi,Lop)

Diem(MaSV,MaMH,DiemTB)

MonHoc(MaMH,TenMH,HeSo,HocKi)

¨    Bản ghi (cách gọi khác: bộ) là tập nội dung của các thuộc tính nằm trên cùng một hàng trong lược đồ quan hệ.

Ví dụ: Trong đối tượng SinhVien chúng ta có nhiều sinh viên, mỗi sinh viên là 1 bộ bao gồm các thuộc tính liên quan đến sinh viên đó.

MaSV

TenSV

NgaySinh

NoiSinh

001

Nguyễn Văn Anh

01/11/1990

Đà Nẵng

002

Lê Văn Bình

01/11/1991

Quảng Nam

003

Nguyễn Văn Anh

01/11/1990

Đà Nẵng

004

Trần Thy Anh

05/07/1990

Quảng Ngãi

005

Trương Quang Bình

01/11/1990

Đà Nẵng

006

Võ Duy Minh

07/07/1989

Đà Nẵng

007

Lê Thị Ngọc Minh

25/07/1989

Quảng Nam

Chú ý:

–      Các thuộc tính phân biệt với nhau qua tên gọi. Mỗi thuộc tính phải thuộc kiểu dữ liệu nhất định và tương ứng với một miền trị.

Ví dụ: thuộc tính DiemTB thuộc kiểu số nguyên và có giá trị từ 0-10

–      Trong các thuộc tính của mỗi đối tượng phải có ít nhất một thuộc tính là nét đặc trưng để phân biệt các thành phần khác nhau của đối tượng đó (khoá).

Ví dụ: đối tượng sinh viên có thể giống nhau về TenSV,NgaySinh,… nhưng MaSV phải khác nhau

–      Thứ tự thuộc tính trong lược đồ nên sắp xếp cho gần gũi với thực tế, với người khai thác dữ liệu.

Ví dụ:    SinhVien(MaSV,TenSV,NgaySinh,DiaChi,Lop) à hợp lý

                            SinhVien(NgaySinh,Lop,TenSV,MaSV,DiaChi) à không hợp lý, khó nhìn

Thêm vào lược đồ r một bộ mới là t, với giá trị các thuộc tính tương ứng của t là A1=d1, A2=d2, …, An=dn

r = r∪t

Insert( r ; A1=d1, A2=d2, …, An=dn )

Ví dụ: Insert( Diem ; MaSV=”001″, MaMH=”LTC01″,DiemTB=7 )

Các yếu tố phụ xảy ra trong phép thêm:

– Thêm 1 bộ không phù hợp với lược đồ ban đầu

Ví dụ:

Insert( Diem ; masv=’001′, mahp=”LTC”, luong=500000 )

à ko phù hợp vì trong Diem ko có thuộc tính luong

– Thêm 1 bộ mà giá trị của nó vượt khỏi miền trị tương ứng

Ví dụ:

Insert( Diem ; masv=”001″, mahp=”LTC”,diem=15 )

à diem chỉ nằm từ 0-10

– Thêm 1 bộ có khoá trùng với giá trị thuộc tính khoá của bộ khác đã có trong CSDL

Ví dụ: Trong lược đồ đã có masv=’003′ mà ta lại thêm vào 1 bộ có masv=’003′ àtrùng lặp

– Thêm 1 bộ mà ngữ nghĩa ko phù hợp

Ví dụ: luong=1 tỷ

 

r = (r-t)∪t’

Change( r ; A1=d1, A2=d2, …, An=dn ; C1=c1, C2=c2, …, Cn=cn ; )

Các yếu tố phụ xảy ra trong phép sửa giống như phép thêm

Xoá khỏi lược đồ r một bộ t, với giá trị các thuộc tính tương ứng của t là A1=d1, A2=d2, …, An=dn

r = r-t

Delete( r ; A1=d1, A2=d2, …, An=dn )

 

Trong CSDL, tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bản ghi. Sự liên hệ này có thể xảy ra trong 1 lược đồ quan hệ hoặc giữa các lược đồ quan hệ với nhau trong cùng 1 CSDL. Các mối quan hệ này là điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan trong CSDL điều phải thoả mãn ở mọi thời điểm. Những điều kiện bất biến đó gọi là ràng buộc toàn vẹn.

Ràng buộc toàn vẹn được xem là công cụ để diễn đạt ngữ nghĩa của 1 CSDL

Công việc ràng buộc toàn vẹn thường được tiến hành vào thời điểm cập nhật dữ liệu (thêm, sửa, xoá). Những ràng buộc phát sinh phải được ghi nhận và xử lý bởi 1 hàm hay 1 đoạn chương trình.

Là sự ràng buộc giữa các bản ghi trong cùng 1 quan hệ (còn gọi là ràng buộc toàn vẹn về khoá chính).

Là sự ràng buộc liên quan đến miền giá trị của các thuộc tính trong 1 quan hệ (tức là tính hợp lệ của giá trị dữ liệu nhập vào cho thuộc tính).

Là mối liên hệ giữa các thuộc tính trong 1 lược đồ quan hệ

Mô tả sự phát sinh ràng buộc

R

Thêm

Sửa

Xoá

r

+

+

Dấu cộng “+”   à ràng buộc phát sinh, yêu cầu phải ghi nhận và có phương pháp xử lý

Dấu trừ “–”      à không quan tâm

Ví dụ: Với lược đồ CSDL sau:

SinhVien(MaSV,TenSV,NgaySinh,DiaChi,Lop,NgayNhapHoc)

Diem(MaSV,MaMH,DiemTB)

MonHoc(MaMH,TenMH,HeSo,HocKi)

      Gọi t là bản ghi bất kỳ:

” t1, t2 Î SinhVien ; t1[MaSV] ¹ t2[MaSV]                                  è ràng buộc toàn vẹn liên bộ (khoá)

” t1, t2 Î Diem         ; t1[MaSV,MaMH] ¹ t2[MaSV,MaMH]    è ràng buộc toàn vẹn liên bộ (khoá)

” t Î Diem                 ; t[DiemTB]≥0 and T[DiemTB]≤10       è ràng buộc toàn vẹn miền giá trị

” t Î SinhVien          ; t[NgaySinh]<t[NgayNhapHoc]             è ràng buộc toàn vẹn liên thuộc tính

Là sự ràng buộc về khoá ngoại

Khoá ngoại hay khoá tham chiếu là tập thuộc tính (các thuộc tính không khoá hoặc chỉ là một phần của khoá chính) của lược đồ này nhưng là khoá chính cho lược đồ khác.

Nói cách khác: một khoá chính của lược đồ này nhưng trong lược đồ kia nó không phải là khoá hoặc chỉ là một phần của khoá chính. Thì trong lược đồ kia nó là khoá ngoại.

Khoá ngoại dùng để liên kết các lược đồ quan hệ.

R

Thêm

Sửa

Xoá

r

+

+

s

+

+

Ví dụ:

Gọi     r là quan hệ của lược đồ Diem(MaSV,MaMH,Diem)

            s là quan hệ của lược đồ MonHoc(MaMH,TenMH)

Thì r[MaMH] Í s[MaMH]

Là mối quan hệ giữa các thuộc tính trong nhiều lược đồ quan hệ.

R

Thêm

Sửa

Xoá

r

+

+

+

s

+

+

+

 Ví dụ:

Gọi     r là quan hệ của lược đồ DatHang(MaH,NgayDat)

    s là quan hệ của lược đồ XuatHang(MaH,NgayXuat,ThanhTien)

Với mọi t1Îr và t2 tương ứng (cùng MaH với t1) Îs thì t1[NgayDat] ≤ t2[NgayXuat]

Là ràng buộc được xác định trong trường hợp thuộc tính A của một lược đồ quan hệ Q được tính toán giá trị từ các thuộc tính khác của Q hoặc của các lược đồ quan hệ khác.

R

Thêm

Sửa

Xoá

r

+

+

s

 Ví dụ:

Với r & s là quan hệ của PhongKS & HoaDon, TienTra là thuộc tính thuộc lược đồ HoaDon thì:

TienTra=(HoaDon.NgayDi – HoaDon.NgayDen)*PhongKS.GiaTien

Chú ý:

Giả sử ngân hàng có 2 lược đồ quan hệ là     Gui(MaKH, TienGui, NgayGui)

                                                                                và   Nhan(MaKH,TienNhan,NgayNhan)

NgayGui<NgayNhan à là ràng buộc toàn vẹn liên thuộc tính liên quan hệ

TienGui<TienNhan         

à

 không phải là ràng buộc toàn vẹn liên thuộc tính liên quan hệ vì TienNhan là ràng buộc toàn vẹn về thuộc tính tổng hợp, TienNhan được máy tính toán nên luôn thoả mãn ràng buộc về việc TienGui<TienNhan