Khó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.
Tính chất:
- Trong một lược đồ quan hệ, một thuộc tính vừa có thể tham
gia vào khóa chính, vừa tham gia vào khóa ngoại.
-Khóa ngoại có thể tham chiếu đến khóa chính trên cùng 1 lược đồ quan hệ.
-Có thể có nhiều khóa ngoại tham chiếu đến cùng một khóa chính.
37 trang |
Chia sẻ: vutrong32 | Lượt xem: 1273 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Cơ sở dữ liệu - Chương 3 Mô hình dữ liệu quan hệ (The Relational Database Model), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 3
Mô hình dữ liệu quan hệ
(The Relational Database Model)
1
Quá trình thiết kế CSDL
Bài
toán
Thực tế
Mô hình
E-R
Mô hình
CSDL
Quan hệ
DBMS
DB
2
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. 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ệ.
3
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, ...
• 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ệ.
4
• 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)
5
Quan 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
dữ liệu riêng.
- Tập hợp các dòng (thể hiện một thực thể): có tính chất thay đổi theo
thời gian.
Quan hệ (Relation)
6
1 cột là 1 thuộc tính của nhân viên
1 dòng là 1 nhân viên
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
Thuộ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
7
Dữ 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ệ.
8
* 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ộ
khác
Bộ
Bộ (Tuple)
9
- 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)
10
Lượ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
11
Lược đồ (relation schema)
- Mỗi lược đồ quan hệ luôn kèm một tân từ để diễn tả ý
nghĩa của nó.
Ví dụ:
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)
12
- 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)
13
- Caùc thuoäc tính ñöôïc phaân bieät qua teân goïi vaø phaûi thuoäc vaøo moät
kieåu döõ lieäu nhaát ñònh (soá, chuoãi, ngaøy thaùng, logic, hình aûnh,).
Kieåu döõ lieäu ôû ñaây laø kieåu ñôn. Trong cuøng moät ñoái töôïng khoâng
ñöôïc coù hai thuoäc tính cuøng teân.
-Thoâng thöôøng moãi thuoäc tính chæ choïn laáy giaù trò trong moät taäp con
cuûa kieåu döõ lieäu vaø taäp hôïp con ñoù goïi laø mieàn giaù trò cuûa thuoäc tính
ñoù.
- Ví dụ :
Thuoäc tính ngaøy trong thaùng thì coù kieåu döõ lieäu laø soá nguyeân,
mieàn giaù trò cuûa noù laø 1 ñeán (toái ña laø) 31.
Đieåm thi cuûa sinh vieân chæ laø caùc soá nguyeân töø 0 ñeá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)
14
Ký 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ự 15
- 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=
-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
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
t1
t2
t3
t4
vi
Ký hiệu
16
Khó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.
17
18
* Lược đồ: Monhoc(Mamon, Tenmon, Sotiet)
* Quan hệ: rMonhoc
Mamon Tenmon Sotiet
THVP Tin hoc văn phòng 30
LTC Lập trình C 60
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:
19
MaSV MaMH Makhoa Diemthi
99001 CSDL CNTT 3.0
99002 CSDL CNTT 8.0
99001 THVP CNTT 6.0
99005 THVP AV 5.0
Siêu khóa: {MaSV, MaMH}, {MaSV,MaMH,Makhoa},
Khóa (Key)
* Lược đồ: Ketqua(MaSV, MaMH, Makhoa, Diemthi)
* Quan hệ: rKetqua
20
MaSV Hoten Phai soCMND
99001 Nguyen van anh Nam 01245012
99002 Tran Le Tuan Nam 02209875
99003 Nguyen Thi Hong Nu 04563711
99004 Do van Thuan Nam
Siêu khóa : {MaSV} , {MaSV, Hoten}, ,
{soCMND} , {soCMND, Hoten},
Khóa (Key)
* Lược đồ: Sinhvien(MaSV, Hoten, Phai, soCMND)
* Quan hệ: rSinhvien
Khó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
key). Không chứa giá trị NULL.
Khóa phức (composite key) là khóa chính có nhiều hơn một
thuộc tính
21
22
MaSV Hoten Phai soCMND
99001 Nguyen van anh Nam 01245012
99002 Tran Le Tuan Nam 02209875
99003 Nguyen Thi Hong Nu 04563711
99004 Do van Thuan Nam
Siêu khóa : {MaSV} , {MaSV, Hoten}, ,
{soCMND} , {soCMND, Hoten},
Khóa (Key)
* Lược đồ: Sinhvien(MaSV, Hoten, Phai, soCMND)
* Quan hệ: rSinhvien
Khóa (khóa dự tuyển): {MaSV} , {soCMND}
Khóa chính : {MaSV}
23
* Lược đồ: Monhoc(Mamon, Tenmon, Sotiet)
* Quan hệ: rMonhoc
Mamon Tenmon Sotiet
THVP Tin hoc văn phòng 30
LTC Lập trình C 60
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}
24
MaSV MaMH Makhoa Diemthi
99001 CSDL CNTT 3.0
99002 CSDL CNTT 8.0
99001 THVP CNTT 6.0
99005 THVP AV 5.0
Siêu khóa: {MaSV, MaMH}, {MaSV,MaMH,Makhoa},
Khóa (Key)
* Lược đồ: Ketqua(MaSV, MaMH, Makhoa, Diemthi)
* Quan hệ: rKetqua
Khóa (khóa dự tuyển, khóa chính , khóa phức): {MaSV, MaMH}
Khó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)
25
Khó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.
Tính chất:
- Trong một lược đồ quan hệ, một thuộc tính vừa có thể tham
gia vào khóa chính, vừa tham gia vào khóa ngoại.
-Khóa ngoại có thể tham chiếu đến khóa chính trên cùng 1 lược
đồ quan hệ.
-Có thể có nhiều khóa ngoại tham chiếu đến cùng một khóa
chính.
26
Khóa ngoại (Foreign key)
Ký hiệu:
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)
PHONGBAN(TENPHG, MAPHG)
Khóa chính
Khóa ngoại
27
Khóa ngoại (Foreign key)
28
Khó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
29
Khóa ngoại (Foreign key)
30
Các qui tắc chuyển đổi
từ mô hình ER sang mô hình RL
(1) Tập thực thể:
– Các tập thực thể (trừ tập thực thể yếu) chuyển thành các
quan hệ có cùng tên và tập thuộc tính.
NHANVIEN TENNV
NGSINH DCHI
PHAI
LUONG
HONV
MANV
Lam_viec
La_truong_phong
PHONGBAN
MAPHG TENPHG
(1,1) (1,n)
(1,1) (1,1)
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG)
PHONGBAN(MAPHG ,TENPHG)
31
(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ể
liên quan.
DEAN
TENDA
DDIEM_D
A
MADA
NHANVIEN TENNV
NGSINH DCHI
PHAI
LUONG
HONV
MANV
Phan_cong
(1,n) (1,n)
THOIGIAN
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
32
(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.
NHANVIEN TENNV
NGSINH DCHI
PHAI
LUON
G
HONV
MANV
Lam_viec PHONGBAN
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
33
34
Mã học viên
Tên học viên
Địa chỉ
Ngày sinh
Số điện thoại
Ngày nhập học.
Mã môn học
Tên môn học
Thời lượng
HOCVIEN MONHOC Ghi danh
Mối kết hợp Một-Nhiều
1 M
HOCVIEN (Mã học viên, Tên học viên, địa chỉ, ngày sinh, số điện thọai,
ngày nhập học, Mã môn học)
MONHOC (Mã môn học, Tên môn học, thời lượng )
Chuyển khóa chính từ
bên một sang làm khóa
ngoại bên nhiều
(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ệ
NHANVIEN TENNV
NGSINH DCHI
PHAI
LUONG
HONV
MANV
La_truong_phong
PHONGBAN
MAPHG TENPHG
(1,1) (1,1)
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
35
36
NGƯỜI LÁI XE BẰNG LÁI
Mã người lái xe
Tên
Địa chỉ
Ngày sinh
Mã bằng lái
Loại bằng lái
Ngày hết hạn
Sở hữu
1 1
(1,1) (1,1)
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
(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.
NHANVIEN TENNV
NGSINH DCHI
PHAI
LUONG
HONV
MANV
THANNHAN(MANV, TENTN, PHAI, NGSINH, QUANHE)
THANNHAN
TENTN
PHAI
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
37
Các file đính kèm theo tài liệu này:
- tran_dac_phi_hungchuong_3_mo_hinh_du_lieu_quan_he_v2_4842.pdf