Professional Documents
Culture Documents
Chuong3 Phan1 MoHinhQuanHe
Chuong3 Phan1 MoHinhQuanHe
Chuyển đổi các thiết kế CSDL mức khái niệm sang mô hình
dữ liệu của hệ quản trị CSDL đã lựa chọn
CSDL là tập hợp các bảng, mỗi bảng là tập các bản ghi
Khuôn dạng của các bản ghi là cố định (hiếm khi thay đổi)
II. Chuyển đổi mô hình thực thể liên kết sang mô hình
dữ liệu quan hệ
II. Chuyển đổi mô hình thực thể liên kết sang mô hình
dữ liệu quan hệ
Quan hệ (Relation)
Bộ (Tuple)
Miền (Domain)
Mỗi quan hệ là một bảng giá trị gồm các hàng và cột
Hàng: biểu diễn thông tin của một thực thể hay một mối quan hệ
trong thế giới thực
Ví dụ quan hệ
nhan_vien
MANV HO_TEN NGAY_SINH GIOI_TINH MADV LUONG CMND
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215
Ví dụ quan hệ
phong
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10
P2 Nghiên cứu và phát triển 2
P3 Giám đốc 8
P4 Kĩ thuật 4
Mỗi thuộc tính có một Miền chỉ ra tập các giá trị của thuộc tính
Một biến bộ có thể tham chiếu đến bất kì một bộ hợp lệ nào
trong quan hệ
Ví dụ
Biến bộ t tham chiếu đến bộ đầu tiên trong quan hệ phong
phong
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10
Bộ P2 Nghiên cứu và phát triển 2
P3 Giám đốc 8
P4 Kĩ thuật 4
Miền của một thuộc tính là một tập hợp các giá trị nguyên tố,
mỗi giá trị trong miền không thể phân chia trong phạm vi mô
hình quan hệ
Để đặc tả một miền: cần chỉ ra tên miền, kiểu dữ liệu và khuôn
dạng dữ liệu
Miền của một thuộc tính có thể chứa giá trị null
Giá trị của một số bộ tại một số thuộc tính nào đó có thể chưa biết
Không có giá trị nào thích hợp cho một thuộc tính của bộ nào đó
Miền của MATP kí hiệu là D3, là tập các số tự nhiên trong khoảng [1,1000]
phong
DIA_CHI
MAD DIEN_THOA
TEN_PHONG MATP PHUON
V I QUAN
G
P1 Hành chính quản trị 10 0249567100 Vĩnh Tuy Hoàng Mai
Nếu 2 bộ t1, t2 bằng nhau trên tất cả các thuộc tính thì t1, t2 là cùng một bộ
Cách viết
Tên của quan hệ được viết bằng chữ thường
Ví dụ
Lược đồ: PHONG(MADV, TEN_PHONG, MA_TP)
phong
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10
P2 Nghiên cứu và phát triển 2
P3 Giám đốc 8
P4 Kĩ thuật 4
Một quan hệ có một tên phân biệt với tên các quan hệ khác
Mỗi ô trong bảng (quan hệ) chứa một giá trị nguyên tố
Các giá trị của một thuộc tính thuộc cùng một miền
1. Siêu khóa
2. Khóa
3. Khóa chính
Thêm các thuộc tính vào một siêu khóa, ta sẽ được một siêu khóa
khác
Khóa (khóa dự tuyển) của một lược đồ quan hệ là siêu khóa của
lược đồ này sao cho mọi tập con thực sự của nó không là siêu
khóa
Một trong số các khóa dự tuyển được chọn làm khóa chính để xác
định tính duy nhất của các bộ trong một quan hệ
Việc chọn khóa dự tuyển nào làm khóa chính là tùy thuộc vào ngữ
nghĩa dữ liệu mà lược đồ mô tả và mục đích của người sử dụng
CSDL
nhan_vien
MANV HO_TEN NGAY_SINH GIOI_TINH MADV LUONG CMND
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215
Dept. of IS - FIT - HNUE
Khóa chính (primary key)
Các thuộc tính của khóa chính thường được liệt kê ở đầu danh sách,
trong lược đồ quan hệ. Các thuộc tính thuộc khóa chính được gạch
chân
Những thuộc tính không thuộc khóa chính không được gạch chân
Ví dụ
NHAN_VIEN(MANV, HO_TEN, NGAY_SINH, GIOI_TINH, MADV,
LUONG, CMND)
Trong một quan hệ, không có hai bộ bất kỳ có cùng khóa chính
Ví dụ (không vi phạm)
nhan_vien
MANV HO_TEN NGAY_SINH GIOI_TINH MADV LUONG CMND
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215
Trong một quan hệ, không có hai bộ bất kỳ có cùng khóa chính
Ví dụ (vi phạm)
nhan_vien
MANV HO_TEN NGAY_SINH GIOI_TINH MADV LUONG CMND
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
Siêu khóa của một lược đồ là một tập thuộc tính cho phép xác định
duy nhất một bộ trong mỗi quan hệ trên lược đồ
U: tập thuộc tính, R(U): lược đồ quan hệ trên U, quan hệ r: một thể
hiện của lược đồ R(U), KU là một siêu khóa của R(U)
t1, t2 r, nếu t1[K]= t2[K] thì t1[U]= t2[U]
Khóa ngoài của một lược đồ quan hệ là một tập hợp gồm một hay
nhiều thuộc tính là khóa chính của một lược đồ quan hệ khác
Thuộc tính MADV của lược đồ NHAN_VIEN tham chiếu đến khóa chính
(MADV) của lược đồ PHONG
nhan_vien MANV HO_TEN NGAY_SINH GIOI_TINH MADV LUONG CMND
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215
Khóa ngoài (foreign key)
MATP tham chiếu đến khóa chính (MANV) của lược đồ NHAN_VIEN
Các giá trị của MADV trong quan hệ nhan_vien phải là tập con
của các giá trị của MADV trong quan hệ phong
Tập các giá trị của MATP trong quan hệ phong phải là tập con
của tập các giá trị MANV trong quan hệ nhan_vien
Thêm bộ
Xóa bộ
Phép thêm bộ được dùng để thêm một hay nhiều bộ mới vào
một quan hệ
Hệ quản trị CSDL kiểm tra nguyên nhân loại bỏ phép thêm bộ,
để thông báo cho người dùng. Từ đó, người dùng sẽ tự điều
chỉnh thông tin của bộ mới cho phù hợp
Phép xóa dùng để loại bỏ một hay nhiều bộ trong một quan hệ
Xóa lan truyền. Nghĩa là, xóa các bộ tham chiếu đến bộ được chỉ
định xóa ban đầu
Phép sửa đổi được dùng để thay đổi các giá trị tại một số thuộc
tính của một số bộ
Hệ quản trị CSDL kiểm tra nguyên nhân loại bỏ phép sửa đổi
nội dung bộ, để thông báo cho người dùng. Từ đó, người dùng
sẽ tự điều chỉnh thông tin cập nhật cho phù hợp
phong phong
MADV TEN_PHONG MATP MADV TEN_PHONG MATP
P1 Hành chính quản trị 10 Hành chính tổng hợp
P1 10
P2 Nghiên cứu và phát triển 2 P2 Nghiên cứu và phát triển 2
P3 Giám đốc 8 P3 Giám đốc 8
P4 Kĩ thuật 4 P4 Kĩ thuật 4
phong phong
MADV TEN_PHONG MATP
MADV TEN_PHONG MATP
P1 Hành chính tổng hợp 10
P1 Hành chính tổng hợp 10
P2 Nghiên cứu và phát triển 2 null Nghiên cứu và phát triển 2
P3 Giám đốc 8
P3 Giám đốc 8
P4 Kĩ thuật 4
P4 Kĩ thuật 4
phong phong
MADV TEN_PHONG MATP
MADV TEN_PHONG MATP
P1 Hành chính tổng hợp 10
P1 Hành chính tổng hợp 10
8 Nghiên cứu và phát triển 2
P2 Nghiên cứu và phát triển 2
P3 Giám đốc 8
P3 Giám đốc 8
P4 Kĩ thuật 4
P4 Kĩ thuật 4
Nhận biết được sự tương đương giữa hai ngôn ngữ hình thức đại số
quan hệ và ngôn ngữ tân từ
Hai ngôn ngữ hình thức là cơ sở của ngôn ngữ SQL
Hai quan hệ là khả hợp nếu chúng cùng xác định trên một tập
thuộc tính.
r1 r2
STT Ho Ten GioiTinh STT Ho Ten GioiTinh
3 Trần C Nam
r1 r2 = { t | t r1 hoặc t r2}
STT Ho Ten GioiTinh
r1 r2
r1
STT Ho Ten GioiTinh
1 Trần A Nam
3 Trần C Nam
STT Ho Ten GioiTinh
r2
1 Trần D Nữ
1 Trần D Nữ
2 Trần E Nữ
2 Trần E Nữ Dept. of IS - FIT - HNUE
Phép giao
r1 r2 = { t | t r1 và t r2}
r1 Ho Ten GioiTinh r2 Ho Ten GioiTinh
Ho Ten GioiTinh
r1 r2 Trần B Nam
Trần E Dept. of IS Nữ
- FIT - HNUE
Phép hiệu
r1 - r2 = { t | t r1 và t r2}
r1 Ho Ten GioiTinh r2 Ho Ten GioiTinh
r1 - r2 r2 – r1
Ho Ten GioiTinh Ho Ten GioiTinh
Trần C Nam Trần
Dept. of IS - FIT - HNUE C Nữ
Phép tích đề các
Bộ ghép nối
r1 xác định trên U1 và r2 xác định trên U2
r1/U1 và r2/U2
r1 r2
MaSV MaMonHoc Diem MaMonHoc
HP1
SP1 HP1 5.0
HP2
SP1 HP2 7.5
HP3
SP2 HP3 4.5
r1 r3 MaSV, MaMonHoc(r1)
r3 r2
MaSV MaMonHoc
MaMonHoc
HP1
SP1 HP1
HP2
SP1 HP2
HP3
SP2 HP3
r3 r2
SP1 HP3
MaSV
SP2 HP2
SP1
Dept. of IS - FIT - HNUE
Phép chiếu
Bộ thu gọn
r: xác định trên tập thuộc tính U
X: một tập con thuộc tính của tập U
tr
t[X]: chỉ một thu gọn của bộ t trên tập thuộc tính X
Ví dụ
U={Ho, Ten, GioiTinh}
X={Ho, Ten} t[X]=(Trần, A)
t=(Trần, A, Nam) Dept. of IS - FIT - HNUE
Phép chiếu
Trần E Nữ Trần E
Trần C Nam
Trần C Nam
r1 NamLenLuong MocTangLuong r2
r1 r2
Ho Ten NamLenLuong MocTangLuong GhiChu
Trần E 2001 2001
Trần B 2000
Trần C 2004
r1 NamLenLuong MocTangLuong r2
r1 NamLenLuong MocTangLuong r2
Ho Ten NamLenLuong MocTangLuong
r1<ABr2 = {(t,q) ABr2 hoặc ((t, null, … , null)qr 2, t[A] q[B] sai)}
Dept. of IS - FIT - HNUE
Phép kết nối ngoài phải
r1>ABr2 = {(t,q) r1ABr2 hoặc ((null, … , null, q)tr1, t[A] q[B] sai)}
r1 r2
Ho Ten NamLenLuong MocTangLuong
Trần E 2001 2001
Trần B 2000
2005
Trần C 2004
r1 NamLenLuong MocTangLuong r2
Ho Ten NamLenLuong MocTangLuong
KQ
KQTG r1*r2 SBD Họ Tên
KQ(SBD, Họ, Tên) (SBD, Ho, Ten)KQTG SP1 Trần A
SP2 Trần B
SP3 Trần C
Dept. of IS - FIT - HNUE
Ví dụ minh họa
Sử dụng các biểu thức đại số quan hệ biểu diễn câu hỏi
NHAN_VIEN PHONG
CHAM_CONG
DU_AN
TEN_DA(MA_DA=“D4”(DU_AN))
MA_DA=“D4”(DU_AN)
NHAN_VIEN * PHONG
Cách 2:
HOTEN, LUONG(NHAN_VIEN*
(MA-DV(TEN-PHONG=“Nghiên cứu và phát triển”(PHONG))))
Với mỗi dự án thực hiện ở “TT khí tượng thủy văn HN”, hãy cho biết mã số
dự án đồng thời cho biết họ tên, ngày sinh của trưởng phòng quản lý dự án
này?
Cách 1
KQTG MA-DA, MA-DV(DIA-DIEM-DA=“TT Khí tượng thủy văn HN” (DU_AN))
Cách 2
KQTG NHAN_VIEN⋈MA-NV=MA-TP (DU_AN * PHONG)
KETQUA MA-DA, HO-TEN, NG-SINH( DIA-DIEM-DA=“TT Khí tượng thủy văn HN” (KQTG))
PHONG*(KQTG)
[<các thuộc tính cơ sở để gộp nhóm>] F <danh sách hàm kết tập> (r)
[<các thuộc tính cơ sở để gộp nhóm>] F <danh sách hàm kết tập> (r)
FAVERAGE(LUONG)(NHAN_VIEN)
MA_DVFAVERAGE(LUONG)(NHAN_VIEN)
Cho biết trung bình lương của các nhân viên nam và trung bình
lương của các nhân viên nữ trong từng phòng?
MA_DV, GIOI_TINHFAVERAGE(LUONG)(NHAN_VIEN)
{x | ĐK(x)}
x là một biến bộ và có miền giá trị là một quan hệ của CSDL
ĐK(x) là một biểu thức lôgic có chứa biến bộ x
Quan hệ kết quả:
các bộ t của quan hệ là miền giá trị cho biến x và làm cho biểu thức ĐK(x) đúng
Ví dụ 1
Ví dụ 2
Trong đó:
x1, x2, …, xn, xn+1, …, xn+m : các biến bộ
Aq: một thuộc tính của quan hệ (q = 1…n)
ĐK(): công phức phép tính bộ
r(x): miền giá trị của biến bộ x là tập tất cả các bộ trên quan hệ r
xi.A xj.B với : <, <=,>, >=,, =
xi.A c hoặc c xj.B với c là hằng số
Cho biết họ tên và lương của các nhân viên làm việc ở phòng
„Nghiên cứu và phát triển‟?
Với mỗi dự án thực hiện ở „TT khí tượng thủy văn HN‟, hãy cho biết
mã số dự án đồng thời cho biết họ tên, ngày sinh của trưởng phòng
quản lý dự án này?
Xi là biến miền, có miền giá trị là tập giá trị của một thuộc tính trong
một quan hệ
ĐK(X1,X2, ... ,Xn, Xn+1,…Xn+m) là công thức phép tính miền
ma_dvX, luongX))}
Với mỗi dự án thực hiện ở “TT khí tượng thủy văn HN”, hãy cho biết
mã số dự án đồng thời cho biết họ tên, ngày sinh của trưởng phòng
quản lý dự án này?
{ma_daX, ho_tenX ten_daX ma_dvX ten_phongX ma_tpX
ngay_sinhX gioi_tinhX luongX
(DU_AN (ma_daX, ten_daX, “TT khí tượng thủy văn HN”, ma_dvX)
AND PHONG (ma_dvX, ten_phongX, ma_tpX)
AND NHAN_VIEN (ma_tpX, ho_tenX, ngay_sinhX, gioi_tinhX, ma_dvX, luongX)) }
Tính phi thủ tục ở ngôn ngữ tân từ cao hơn ngôn ngữ đại số
quan hệ.
Khả năng biểu thị câu hỏi của ngôn ngữ đại số quan hệ và ngôn
ngữ tân từ là tương đương nhau.
Hầu hết các ngôn ngữ hỏi của CSDL quan hệ ngoài các phép
toán cơ bản còn có thêm một số phép toán mở rộng như hàm
kết tập, phép gộp nhóm.
II. Chuyển đổi mô hình thực thể liên kết sang mô hình
dữ liệu quan hệ