56
CHƯƠN II. MÔ HÌNH DỮ LIỆU QUAN HỆ (RELATIONAL DATABASE MODEL) Information Systems FIT HNUE TS. Lê Thị Tú Kiên [email protected] http://fit.hnue.edu.vn/~kienltt/HeCSDL/ Dept. of IS - FIT - HNUE

(RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

CHƯƠN II. MÔ HÌNH DỮ LIỆU QUAN HỆ

(RELATIONAL DATABASE MODEL)

Information Systems – FIT – HNUE

TS. Lê Thị Tú Kiên

[email protected]

http://fit.hnue.edu.vn/~kienltt/HeCSDL/

Dept. of IS - FIT - HNUE

Page 2: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Giới thiệu

Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ:

Oracle, SQL server, …

Mô hình này dựa trên cơ sở bản ghi

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)

Dữ liệu được mô tả ở mức logic, không mô tả ở mức vật lý

Dept. of IS - FIT - HNUE

Page 3: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Nội dung

1. Các khái niệm cơ bản

2. Khóa của quan hệ

3. Các thao tác cơ bản trên các quan hệ

Dept. of IS - FIT - HNUE

Page 4: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

1. Các khái niệm cơ bản

Quan hệ (Relation)

Thuộc tính (Attribute)

Bộ (Tuple)

Miền (Domain)

Lược đồ quan hệ (Relation scheme)

Các tính chất đặc trưng của một quan hệ

Dept. of IS - FIT - HNUE

Page 5: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Quan hệ (relation)

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

Cột: thể hiện một thuộc tính của thực thể

Mỗi CSDL là một tập các quan hệ

Dept. of IS - FIT - HNUE

Page 6: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Quan hệ (relation)

Ví dụ quan hệ

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 7: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Quan hệ (relation)

Ví dụ quan hệ

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

phong

Dept. of IS - FIT - HNUE

Page 8: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Thuộc tính

Mỗi quan hệ có một số thuộc tính

Mỗi thuộc tính là tên của một cột

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

Dept. of IS - FIT - HNUE

Page 9: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Thuộc tính

Ví dụ, quan hệ phong có 3 thuộc tính: MADV, TEN_PHONG, MATP

Miền của MADV: tập các chuỗi có 2 kí tự, bắt đầu bằng chữ P

Miền của TEN_PHONG: tập các chuỗi có tối đa 30 kí tự

Miền của MATP: tập các số tự nhiên thuộc khoảng [0,1000]

Thuộc tính

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 Dept. of IS - FIT - HNUE

Page 10: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Bộ (tuple)

Mỗi dòng trong một quan hệ được gọi là một bộ

Kích thước cố định, là một danh sách có thứ tự của các giá trị

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ệ

Dept. of IS - FIT - HNUE

Page 11: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Bộ (tuple)

Ví dụ

Biến bộ t tham chiếu đến bộ đầu tiên trong quan hệ phong

t[MADV]=P1, t[TEN_PHONG]=Hành chính quản trị, t[MATP]=10

Bộ

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

Dept. of IS - FIT - HNUE

Page 12: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Miền

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 đó

Dept. of IS - FIT - HNUE

Page 13: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Miền

Ví dụ, trong quan hệ phong Miền của MADV kí hiệu D1, là tập các chuỗi có 2 kí tự, bắt đầu bằng chữ P

Miền của TEN_PHONG kí hiệu là D2, là tập các chuỗi có tối đa 30 kí tự

Miền của MATP kí hiệu là D3, là tập các số tự nhiên trong khoảng [1,1000]

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

phong

Dept. of IS - FIT - HNUE

Page 14: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Miền

Ví dụ,

Miền giá trị của các thuộc tính DIEN_THOAI, DIA_CHI không phải là

tập hợp các giá trị nguyên tố

MAD

V TEN_PHONG MATP

DIEN_THOA

I

DIA_CHI

PHUON

G QUAN

P1 Hành chính quản trị 10 0249567100 Vĩnh Tuy Hoàng Mai

P2 Nghiên cứu và phát

triển

2 0247895562 Trung Liệt Đống Đa

P3 Giám đốc 8 0247567128 Mai Dịch Cầu Giấy

P4 Kĩ thuật 4 0247568528

,

0247568529

Mai Dịch Cầu Giấy

phong

Dept. of IS - FIT - HNUE

Page 15: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Bộ và quan hệ

Một quan hệ trên một tập các thuộc tính là một tập con của tích

Descartes của một hay nhiều miền

Ví dụ,

D1 là miền của MADV

D2 là miền của TEN_PHONG

D3 là miền của MA_TP

PHONG D1D2 D3

Mỗi bộ trong quan hệ PHONG chỉ ra mối quan hệ giữa tập các giá trị

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

phong

Dept. of IS - FIT - HNUE

Page 16: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Bộ và quan hệ

Mỗi quan hệ là một tập các bộ

Mỗi bộ chỉ xuất hiện một lần

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ộ

Thứ tự của các bộ trong một quan hệ là không quan trọng

Dept. of IS - FIT - HNUE

Page 17: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Lược đồ quan hệ (relation schemas)

Quan hệ nào cũng có một lược đồ

Xác định kiểu thông tin cho các quan hệ

Nhiều quan hệ có thể có cùng một lược đồ

Một lược đồ quan hệ gồm:

Một tập các thuộc tính

Miền giá trị của mỗi thuộc tính

Cách viết

Tên của quan hệ được viết bằng chữ thường

Tên của lược đồ quan hệ được viết bằng chữ hoa

Cho quan hệ r và lược đồ quan hệ R:

Viết r(R) nghĩa là lược đồ của quan hệ r là R

Dept. of IS - FIT - HNUE

Page 18: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Lược đồ quan hệ (relation schemas)

Ví dụ

Lược đồ: PHONG(MADV, TEN_PHONG, MA_TP)

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

phong

Dept. of IS - FIT - HNUE

Page 19: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Các tính chất đặc trưng của một quan hệ

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ố

Mỗi thuộc tính trong quan hệ có một tên phân biệt

Các giá trị của một thuộc tính thuộc cùng một miền

Thứ tự các thuộc tính là không quan trọng

Không có 2 bộ giống hệt nhau trong một quan hệ

Thứ tự của các bộ không quan trọng về mặt lý thuyết

Dept. of IS - FIT - HNUE

Page 20: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Nội dung

1. Các khái niệm cơ bản

2. Khóa của quan hệ

3. Các thao tác cơ bản trên các quan hệ

Dept. of IS - FIT - HNUE

Page 21: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Siêu khóa

Khóa được sử dụng để phân biệt các bộ trong một quan hệ

Một siêu khóa là một tập các thuộc tính cho phép xác định duy nhất

một bộ trong mỗi quan hệ

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

Dept. of IS - FIT - HNUE

Page 22: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Siêu khóa

Ví dụ, trong quan hệ nhan_vien

{MANV} là siêu khóa

{CMND} là siêu khóa

{MANV, HO_TEN} là siêu khóa

{CMND, HO_TEN, NGAY_SINH} là siêu khóa

{HO_TEN} không là siêu khóa

{HO_TEN, NGAY_SINH, GIOI_TINH, MADV_LUONG} không là siêu khóa

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 23: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa (khóa dự tuyển)

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

Khóa là thuộc tính của một lược đồ quan hệ chứ không phải cho từng

bộ riêng

Nghĩa là nó áp dụng cho tất cả các bộ trong các quan hệ của lược đồ

Dept. of IS - FIT - HNUE

Page 24: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa (khóa dự tuyển)

Ví dụ, trong quan hệ nhan_vien

{MANV} là khóa (khóa dự tuyển)

{CMND} là khóa (khóa dự tuyển)

{MANV, HO_TEN} không là khóa

{MANV, HO_TEN, NGAY_SINH} là không là khóa

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 25: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa chính (primary key)

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

Dept. of IS - FIT - HNUE

Page 26: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa chính (primary key)

Ví dụ, trong quan hệ nhan_vien

Có 2 khóa dự tuyển:{MANV}, {CMND}

{MANV} được chọn làm khóa chính

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 27: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

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)

PHONG(MADV, TEN_PHONG, MATP)

Dept. of IS - FIT - HNUE

Page 28: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa chính (primary key)

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)

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 29: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa chính (primary key)

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)

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

1 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

nhan_vien

Dept. of IS - FIT - HNUE

Page 30: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Siêu khóa và quan hệ

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]

Dept. of IS - FIT - HNUE

Page 31: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa ngoài (foreign key)

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

Dept. of IS - FIT - HNUE

Page 32: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa ngoài (foreign key)

Ví dụ, NHAN_VIEN(MANV, HO_TEN, NGAY_SINH, GIOI_TINH, MADV,

LUONG, CMND)

Khóa ngoài là MADV

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

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 33: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Khóa ngoài (foreign key)

Ví dụ, PHONG(MADV, TEN_PHONG, MATP)

Khóa ngoài là MATP

MATP tham chiếu đến khóa chính (MANV) của lược đồ NHAN_VIEN

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

phong

Dept. of IS - FIT - HNUE

Page 34: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Ràng buộc của khóa ngoài

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

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 35: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Ràng buộc của khóa ngoài

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

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

phong

Dept. of IS - FIT - HNUE

Page 36: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Nội dung

1. Các khái niệm cơ bản

2. Khóa của quan hệ

3. Các thao tác cơ bản trên các quan hệ

Dept. of IS - FIT - HNUE

Page 37: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Các thao tác cập nhật dữ liệu trên các

quan hệ

Thêm bộ

Xóa bộ

Sửa đổi nội dung của bộ

Dept. of IS - FIT - HNUE

Page 38: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Thêm 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ệ

Một số ràng buộc có thể bị vi phạm khi thêm bộ

Ràng buộc khóa

Ràng buộc toàn vẹn thực thể

Ràng buộc về miền dữ liệu của thuộc tính

Ràng buộc toàn vẹn tham chiếu

Dept. of IS - FIT - HNUE

Page 39: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Cách ứng xử khi phép thêm bộ vi phạm

ràng buộc

Loại bỏ phép thêm bộ nếu nó vi phạm một hay nhiều ràng buộc

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

Dept. of IS - FIT - HNUE

Page 40: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Ví dụ phép thêm bộ

INSERT(phong; “P5”, “Kinh doanh”, 3)

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

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

P5 Kinh doanh 3

phong

Dept. of IS - FIT - HNUE

Page 41: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Vi phạm ràng buộc khóa

INSERT(phong; “P2”, “Kế toán”, 1)

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

P5 Kinh doanh 3

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

P5 Kinh doanh 3

P2 Kế toán 1

phong

Dept. of IS - FIT - HNUE

Page 42: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Vi phạm ràng buộc toàn vẹn thực thể

INSERT(phong; “null”, “Kế toán”, 1)

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

P5 Kinh doanh 3

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

P5 Kinh doanh 3

null Kế toán 1

phong

Dept. of IS - FIT - HNUE

Page 43: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Vi phạm ràng buộc về miền dữ liệu của

thuộc tính

INSERT(phong; 6, “Kế toán”, 1)

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

P5 Kinh doanh 3

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

P5 Kinh doanh 3

6 Kế toán 1

phong

Dept. of IS - FIT - HNUE

Page 44: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Vi phạm ràng buộc toàn vẹn tham chiếu

INSERT(phong; “P6”, “Kế toán”, 11)

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

P5 Kinh doanh 3

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

P5 Kinh doanh 3

P2 Kế toán 11

phong

Dept. of IS - FIT - HNUE

Page 45: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Xóa bộ

Phép xóa dùng để loại bỏ một hay nhiều bộ trong một quan hệ

Một số ràng buộc có thể bị vi phạm khi xóa bộ

Ràng buộc toàn vẹn tham chiếu

Dept. of IS - FIT - HNUE

Page 46: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Cách ứng xử khi phép xóa bộ vi phạm

ràng buộc toàn vẹn tham chiếu

Có 3 cách ứng xử:

Loại bỏ phép xóa bộ

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

Thay đổi giá trị của thuộc tính gây ra vi phạm

Dept. of IS - FIT - HNUE

Page 47: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Ví dụ phép xóa bộ

DELETE<phong; TEN_PHONG=“Kinh doanh”>

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

P5 Kinh doanh 3

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

phong

Dept. of IS - FIT - HNUE

Page 48: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Phép xóa bộ vi phạm ràng buộc tham

chiếu

DELETE<phong; MADV=“P1”>

MADV TEN_PHON

G

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

phong

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

nhan_vien

Dept. of IS - FIT - HNUE

Page 49: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Sửa đổi nội dung của bộ

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ộ

Một số ràng buộc có thể bị vi phạm khi sửa bộ

Ràng buộc khóa

Ràng buộc toàn vẹn thực thể

Ràng buộc về miền dữ liệu của thuộc tính

Ràng buộc toàn vẹn tham chiếu

Dept. of IS - FIT - HNUE

Page 50: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Cách ứng xử khi phép sửa đổi nội dung

bộ không phù hợp

Loại bỏ phép sửa đổi nội dung bộ nếu nó vi phạm một hay

nhiều ràng buộc

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

Dept. of IS - FIT - HNUE

Page 51: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Ví dụ phép sửa đổi nội dung bộ

MODIFY<phong; MADV=“P1”; TEN_PHONG=“Hành chính tổng hợp”>

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

phong MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

P2 Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong

Dept. of IS - FIT - HNUE

Page 52: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Phép sửa đổi nội dung bộ không hợp lệ

MODIFY<phong; TEN_PHONG=“Nghiên cứu và phát triển”;

MADV=“P1”>

MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

P2 Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

P1 Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong

Dept. of IS - FIT - HNUE

Page 53: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Phép sửa đổi nội dung bộ không hợp lệ

MODIFY<phong; TEN_PHONG=“Nghiên cứu và phát triển”;

MADV=“null”>

MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

P2 Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

null Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong

Dept. of IS - FIT - HNUE

Page 54: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Phép sửa đổi nội dung bộ không hợp lệ

MODIFY<phong; TEN_PHONG=“Nghiên cứu và phát triển”;

MADV=8>

MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

P2 Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

null Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong

Dept. of IS - FIT - HNUE

Page 55: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Phép sửa đổi nội dung bộ không hợp lệ

MODIFY<phong; MADV=“P2”; MATP=11>

MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

P2 Nghiên cứu và phát triển 2

P3 Giám đốc 8

P4 Kĩ thuật 4

phong MADV TEN_PHONG MATP

P1 Hành chính tổng hợp 10

P2 Nghiên cứu và phát triển 11

P3 Giám đốc 8

P4 Kĩ thuật 4

phong

Dept. of IS - FIT - HNUE

Page 56: (RELATIONAL DATABASE MODEL)fit.hnue.edu.vn/~kienltt/HeCSDL/Chuong2-MoHinhQuanHe.pdfGiới thiệu Nhiều hệ quản trị cơ sở dữ liệu dùng mô hình CSDL quan hệ: Oracle,

Tóm tắt Chương 3

Các nội dung của Chương 3:

Các khái niệm cơ bản của mô hình quan hệ

Khóa của quan hệ

Các thao tác cơ bản trên các quan hệ

Dept. of IS - FIT - HNUE