Giới thiệu 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, .... Dữ liệu cụ thể của thuộc tính Bộ Tupl
Trang 1Chương 3
Mô hình dữ liệu quan hệ
Trang 2Mô hình CSDL Quan hệ
DBMS
DB
Trang 3Giớ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 Cung cấp một cấu trúc dữ liệu đơn giản và đồng bộ
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ệ
Trang 4Giới thiệu
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ệ
Trang 5• Các thông tin lưu trữ trong CSDL được tổ chức thành bảng (table) 2 chiều gọi là quan hệ
Quan hệ (Relation)
Trang 6Quan hệ (thể hiện cho một tập thực thể ) gồm:
- Tên của quan hệ: NHANVIEN
- Tập hợp các cột (thể hiện các thuộc tính ): Cố định, được đặt tên, có kiểu
TENNV HONV NGSINH DCHI PHAI LUONG PHG
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5
Tên quan hệ là NHANVIEN
Trang 7Thuộc tính (Attribute)
Tên các cột của quan hệ
Mô tả ý nghĩa cho các giá trị tại cột đó
Tất cả các dữ liệu trong cùng 1 một cột đều có chung một
kiểu dữ liệu
TENNV HONV NGSINH DCHI PHAI LUONG PHG
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5
Thuộc tính
Trang 8Dữ liệu cụ thể của thuộc tính
Bộ (Tuple)
• Là các dòng của quan hệ (trừ dòng tiêu đề - tên của các thuộc tính)
• Thể hiện dữ liệu cụ thể của các thuộc tính trong quan hệ
<Tung, Nguyen, 12/08/1955, 638 NVC, Q5, Nam, 40000, 5>
Trang 9* Thứ tự các bộ trong quan hệ là không quan trọng
• Thứ tự giữa các giá trị trong một bộ là quan trọng
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
TENNV HONV NGSINH DCHI PHAI LUONG PHG
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
Nhu
Le 06/20/1951 291 HVH QPN Nu 43000 4
Hung Nguyen 09/15/1962 null Nam 38000 5
Bộ <Nguyen, Tung, 12/08/1955, 638 NVC Q5, Nam, 40000, 5>
khác
Bộ <Nguyen, Tung, 12/08/1955, 638 NVC Q5, 40000, Nam, 5>
Bộ (Tuple)
Trang 10- Mỗi giá trị trong một bộ:
+ Hoặc là một giá trị nguyên tố
+ Hoặc là một giá trị rỗng (null)
- Không có bộ nào trùng nhau
Bộ (Tuple)
Trang 11Lược đồ quan hệ
Lược đồ (relation schema)
Lược đồ quan hệ:
Ký hiệu: R(A1, A2, , An)
R: Tên của quan hệ
A1, A2,…, An: Danh sách các thuộc tính của quan hệ
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)
Tập hợp các thuộc tính
Trang 12Lược đồ (relation schema)
- Mỗi lược đồ quan hệ luôn kèm một tân từ để diễn tả ý
Trang 13- Lược đồ Cơ sở dữ liệu : Tập hợp các lược đồ quan hệ trong cùng một Cơ sở dữ liệu
Lược đồ CSDL
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)
PHONGBAN(MAPHG, TENPHG, TRPHG, NG_NHANCHUC)
DIADIEM_PHG(MAPHG, DIADIEM)
THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE)
DEAN(TENDA, MADA, DDIEM_DA, PHONG)
Lược đồ (relation schema)
Trang 14- Các thuộc tính được phân biệt qua tên gọi và phải thuộc vào một kiểu dữ liệu nhất định (số, chuỗi, ngày tháng, logic, hình ảnh,…) Kiểu dữ liệu ở đây là kiểu đơn Trong cùng một đối tượng không được có hai thuộc tính cùng tên
-Thông thường mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con của kiểu dữ liệu và tập hợp con đó gọi là miền giá trị của thuộc tính đó
- Ví dụ :
Thuộc tính ngày trong tháng thì có kiểu dữ liệu là số nguyên, miền giá trị của nó là 1 đến (tối đa là) 31
Điểm thi của sinh viên chỉ là các số nguyên từ 0 đến 10
Họ tên: Tập hợp các dãy chữ cái cĩ độ dài <= 30
Tuổi: Tậ p các số nguyên nằm trong khoảng từ 1 đến 80
Giới tính: Tập hợp gồm hai giá trị “Nam”, “N ữ”
Kiểu dữ liệu và Miền giá trị (Domain)
Trang 15Ký hiệu
• Lược đồ quan hệ
– Cho A1, A2, …, An là các thuộc tính
– Có các miền giá trị D1, D2, …, Dn tương ứng
– Ta có:
Ký hiệu: R(A1:D1, A2:D2, …, An:Dn) là một lược đồ quan hệ
Bậc của lược đồ quan hệ là số lượng thuộc tính trong lược đồ
Ví dụ:
NHANVIEN(MANV:integer, TENNV:string, HONV:string,
NGSINH:date, DCHI:string, PHAI:string, LUONG:integer, PHONG:integer)
NHANVIEN là một lược đồ bậc 8 mô tả đối tượng nhân
viên
MANV là một thuộc tính có miền giá trị là số nguyên
TENNV là một thuộc tính có miền giá trị là chuỗi ký tự
Trang 16- Một quan hệ r của lược đồ quan hệ R(A1, A2, …, An),
ký hiệu r(R), là một tập các bộ r = {t1, t2, …, tk}
-Trong đó mỗi ti là 1 danh sách có thứ tự của n giá trị
ti=<v1, v2, …, vn>
-Mỗi vj là một phần tử của miền giá trị DOM(Aj) hoặc giá trị rỗng
- Giá trị thứ i của bộ t, tương ứng với thuộc tính Ai được ký hiệu là t[Ai]
TENNV HONV NGSINH DCHI PHAI LUONG PHG
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
Trang 17Khóa (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
Trang 18* Lược đồ: Monhoc(Mamon, Tenmon, Sotiet)
* Quan hệ: rMonhoc
THVP Tin hoc văn phòng 30
CSDL1 Co so du lieu 45 CSDL2 Co so du lieu 45
{Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet},
{Mamon, Tenmon, Sotiet}
Khóa (Key)
Siêu khóa:
Trang 19MaSV MaMH Makhoa Diemthi
Trang 20MaSV Hoten Phai soCMND
Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,
{soCMND} , {soCMND, Hoten},…
Khóa (Key)
* Lược đồ: Sinhvien(MaSV, Hoten, Phai, soCMND)
* Quan hệ: rSinhvien
Trang 21Khóa (Key)
Gọi S là một tập các thuộc tính của lược đồ quan hệ R
Siêu khoá có ít thuộc tính nhất được gọi là khóa (Primary 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
Khóa phức (composite key) là khóa chính có nhiều hơn một thuộc tính
Trang 22MaSV Hoten Phai soCMND
Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,
{soCMND} , {soCMND, Hoten},…
Trang 23* Lược đồ: Monhoc(Mamon, Tenmon, Sotiet)
* Quan hệ: rMonhoc
THVP Tin hoc văn phòng 30
CSDL1 Co so du lieu 45 CSDL2 Co so du lieu 45
Siêu khóa : {Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet},
{Mamon, Tenmon, Sotiet}
Khóa (Key)
Khóa (khóa dự tuyển, khóa chính) : {Mamon}
Trang 24MaSV MaMH Makhoa Diemthi
Trang 25Khóa chính (Primary key)
Tính chất:
- Khóa chính là cơ sở để nhận biết các bộ
- Các thuộc tính khóa chính phải có giá trị khác null
- Các thuộc tính khóa chính thường được gạch dưới
Ký hiệu:
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHONG)
Trang 26Khóa ngoại (Foreign key)
Khoá ngoại: Trong trường hợp 2 quan hệ liên kết với nhau
thông qua 1 thuộc tính nếu thuộc tính này đóng vai trò là khoá chính (Primary key) trong một quan hệ đã xác định thì nó chính
là khoá ngoại ( Foreign key ) của quan hệ còn lại
Trang 27Khóa ngoại (Foreign key)
Trang 28Khóa ngoại (Foreign key)
Trang 29Khóa ngoại (Foreign key)
TENNV HONV NGSINH DCHI PHAI LUONG PHG
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5
TENPHG MAPHG Nghien cuu 5
Dieu hanh 4 Quan ly 1
R
S
Trang 30Khóa ngoại (Foreign key)
Trang 31Các qui tắc chuyển đổi
từ mô hình ER sang mô hình RL
(1,1) (1,n)
(1,1) (1,1)
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG)
PHONGBAN(MAPHG ,TENPHG)
Trang 32(2) Mối quan hệ : Nhiều-Nhiều
Tạo một quan hệ mới với:
+ Tên quan hệ là tên của mối quan hệ
+ Thuộc tính là những thuộc tính khóa của các tập thực thể
PHANCONG(MANV, MADA, THOIGIAN )
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, MAPHG)
DEAN(MADA, TENDA, DDIEM_DA)
Các qui tắc chuyển đổi
từ mô hình ER sang mô hình RL
Trang 33(2) Mối quan hệ: Một-Nhiều
- Thêm vào quan-hệ-một thuộc tính khóa của quan-hệ-nhiều
MANV
MAPHG TENPHG
(1,1) (1,n)
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, MAPHG)
PHONGBAN(MAPHG, TENPHG)
Các qui tắc chuyển đổi
từ mô hình ER sang mô hình RL
Trang 34Chuyển khóa chính từ bên một sang làm khóa
Trang 35(2) Mối quan hệ: Một-Một
- Hoặc thêm vào quan hệ này thuộc tính khóa của quan hệ kia
- Hoặc thêm thuộc tính khóa vào cả 2 quan hệ
NG_NHANCHUC
PHONGBAN(MAPHG, TENPHG, MANV, NG_NHANCHUC)
Các qui tắc chuyển đổi
từ mô hình ER sang mô hình RL
Trang 36NGƯỜI LÁI XE BẰNG LÁI
Sở hữu
NGƯỜI LÁI XE (Mã người lái xe, tên, địa chỉ, ngày sinh)
BẰNG LÁI (Mã bằng lái, lọai bằng lái, ngày hết hạn, Mã người lái xe)
Hay
NGƯỜI LÁI XE (Mã người lái xe, tên, địa chỉ, ngày sinh, Mã bằng lái)
BẰNG LÁI (Mã bằng lái, lọai bằng lái, ngày hết hạn)
Chuyển khóa chính từ quan hệ 1 sang quan hệ 2 hoặc ngược lại
Mối kết hợp Một-Một
Trang 37(3) Thực thể yếu:
- Chuyển thành một quan hệ:
+ Có cùng tên với thực thể yếu
+ Thêm vào thuộc tính khóa của quan hệ liên quan
NGSINH
QUANHE
Co_than_nhan
(1,1) (1,n)
Các qui tắc chuyển đổi
từ mô hình ER sang mô hình RL