CƠ SỞ DỮ LIỆU - exercise

Download Report

Transcript CƠ SỞ DỮ LIỆU - exercise

LÝ THUYẾT CƠ SỞ DỮ LIỆU
Chương 5. Thiết kế CSDL luận lý
(Logical Database Design) và Mô hình
quan hệ (Relational Model)
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Phần I
Thiết kế CSDL luận lý và mô hình quan
hệ
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Giới thiệu

Thiết kế CSDL luận lý

Chuyển mô hình dữ liệu mức ý niệm sang mức
luận lý



Mức ý niệm: biểu diễn các yêu cầu dữ liệu của tổ chức
Mức luận lý: dữ liệu có thể được hiện thực bằng một
DBMS nào đó
CSDL phải đáp ứng nhu cầu chia xẻ dữ liệu, tính
mềm dẻo, dễ dàng truy xuất
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 3
Giới thiệu (tt)

CSDL luận lý trong chương này dựa trên mô
hình quan hệ



Mô hình quan hệ (relational model) được xây dựng
trên khái niệm quan hệ (relation) và đưa ra năm
1970 bởi E.F.Codd.
CSDL quan hệ (relation database) bao gồm một số
quan hệ
DBMS dựa trên mô hình quan hệ gọi là RDBMS
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 4
Quan hệ

Định nghĩa:

Một quan hệ (relation) là một bảng dữ liệu có tên
hai chiều (two-dimensional)


Bảng được tạo thành từ hàng – row (bảng ghi - record)
và cột – column (thuộc tính – attribute, hoặc trường –
field)
Không phải tất cả các bảng đều là quan hệ
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 5
Quan hệ (tt)

Yêu cầu:






Tất cả các quan hệ đều có một tên duy nhất
Tất cả các giá trị thuộc tính là đơn trị (atomic),
không phải đa trị (multivalue), tổ hợp (composite)
Tất cả các hàng là duy nhất (không thể có hai hàng
có cùng giá trị ở tất cả các thuộc tính)
Các thuộc tính (cột) trong một bảng đều có tên duy
nhất
Thứ tự của các cột là không quan trọng
Thứ tự các hàng là không quan trọng
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 6
Quan hệ (tt)

Sự tương ứng với mô hình ER



Các quan hệ (relation, bảng - table) tương ứng với
các kiểu thực thể (entity type) và mối quan hệ
nhiều-nhiều (many-many relationship)
Các hàng (row) tương ứng với các thể hiện
(instance) của thực thể và các thể hiện của mối
quan hệ nhiều-nhiều
Các cột (column) tương ứng với các thuộc tính
(attribute)
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 7
Quan hệ (tt)

Chú ý:


Tất cả các quan hệ là ở dạng chuẩn một (First
Normal Form - 1NF)
Từ quan hệ (relation) trong CSDL quan hệ không
giống với từ mối quan hệ (relationship) trong mô
hình ER.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 8
Các trường khoá

Khóa chính (primary key):



Là danh hiệu duy nhất (unique) của quan hệ (cho
phép đảm bảo là tất cả các hàng là duy nhất).
Ví dụ: mã số nhân viên (employee number), số an
sinh xã hội (social security number), …
Khoá ngoại (foreign key):


Là danh hiệu cho phép một quan hệ phụ thuộc
(phía đầu nhiều của mối quan hệ) tham khảo đến
quan hệ cha (phía đầu một của mối quan hệ).
Ví dụ: mã số phòng ban của nhân viên
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 9
Các trường khoá (tt)

Đặc điểm:


Khóa có thể là đơn (simple - một trường đơn) hay
tổ hợp (composite - nhiều trường ghép lại)
Khoá thường được sử dụng như là chỉ mục (index)
để tăng tốc độ xử lý cho các câu truy vấn của người
sử dụng
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 10
Các trường khoá (tt) – Ví dụ
Khoá chính
Khóa ngoại (hiện thực mối
quan hệ 1:N giữa CUSTOMER
và ORDER)
Khoá chính là tổ hợp (ngoài ra chúng còn
là khóa ngoại tham khảo đến ORDER và
PRODUCT)
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 11
Các ràng buộc toàn vẹn

Ràng buộc toàn vẹn (integrity constraint)



Ràng buộc miền trị (domain): các giá trị cho phép
của một thuộc tính.
Toàn vẹn thực thể: thuộc tính khoá chính hoặc
thuộc khóa chính không được NULL.
Ràng buộc tác vụ: các qui tắc nghiệp vụ
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 12
Các ràng buộc toàn vẹn (tt)

Toàn vẹn tham chiếu (Referencial integrity
constraint):


Giá trị của khoá ngoại là NULL hoặc phải tương
ứng với một giá trị khoá chính của quan hệ được
tham chiếu.
Ví dụ: qui tắc xoá dữ liệu



Loại trừ - không cho phép xoá bên phía quan hệ cha nếu
có các hàng liên quan bên phía quan hệ phụ thuộc.
Cascade - tự động xoá các hàng liên quan bên phía quan
hệ phụ thuộc tương ứng
Set-to-Null – gán giá trị của khóa ngoại là NULL  điều
này không cho phép áp dụng cho các thực thể yếu
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 13
Các ràng buộc toàn vẹn (tt)
Các ràng buộc toàn vẹn
tham khảo được vẽ bằng các
mũi tên từ bên phụ thuộc
vào bảng cha
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 14
Chuyển đổi EERD sang các quan hệ

Bước 1: Chuyển các thực thể thường



1. Thuộc tính đơn: chuyển trực tiếp thành các thuộc
tính bên quan hệ
2. Thuộc tính phức hợp: chỉ sử dụng thuộc tính đơn
là các thành phần của nó
3. Thuộc tính đa trị: chuyển thành một quan hệ
riêng lẻ với một khoá ngoại tham khảo đến quan hệ
ban đầu
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 15
Chuyển đổi EERD sang các QH (tt)
(a) Thực thể CUSTOMER với các thuộc tính đơn
(b) Quan hệ CUSTOMER
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 16
Chuyển đổi EERD sang các QH (tt)
(a) Thực thể CUSTOMER với một thuộc tính tổ hợp
(b) Quan hệ CUSTOMER với các thuộc tính đơn là chi tiết của địa chỉ
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 17
Chuyển đổi EERD sang các QH (tt)
(a) Thực thể EMPLOYEE với thuộc tính đa trị
(b) Thêm vào một quan hệ và một mối quan hệ 1:N giữa quan hệ
gốc và quan hệ mới tạo ra
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 18
Chuyển đổi EERD sang các QH (tt)

Bước 2: Chuyển các thực thể yếu


Chuyển đổi thành một quan hệ riêng lẻ với một
khoá ngoại tham khảo đến quan hệ tạo ra từ thực
thể mạnh của nó
Khoá chính bao gồm:


Danh định riêng phần của nó
Khoá chính của quan hệ định danh (của thực thể mạnh)
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 19
Chuyển đổi EERD sang các QH (tt)
(a) Thực thể yếu DEPENDENT
(b) Quan hệ DEPENDENT với khóa riêng phần cộng khóa ngoại (tham
khảo đến quan hệ cha) làm khoá chính (danh định đầy đủ)
Foreign key
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Chú ý: khóa ngoại
Employee_ID không
được NULL
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 20
Chuyển đổi EERD sang các QH (tt)

Bước 3: Chuyển các mối quan hệ hai ngôi



Một-nhiều: Khoá chính ở phía quan hệ một làm
khoá ngoại ở phía quan hệ nhiều
Nhiều-nhiều: tạo một quan hệ mới với khoá chính là
tổ hợp các khoá chính của các thực thể tham gia
vào mối quan hệ (và đồng thời cũng có các khoá
ngoại tương ứng)
Một-một: Khoá chính ở phía bắt buộc làm khoá
ngoại ở phía tuỳ chọn.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 21
Chuyển đổi EERD sang các QH (tt)
(a) Mối quan hệ 1:N
(b) Tạo thành khóa ngoại
Khoá ngoại
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Chú ý: Khóa ngoại không được
rỗng vì ràng buộc lượng số tối
thiểu (ở đầu tham khảo đến)
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 22
Chuyển đổi EERD sang các QH (tt)
(a) Mối quan hệ M:N
(b) Tạo thành quan hệ mới
Mối quan hệ Supplies sẽ trở thành
một quan hệ riêng
Khoá chính tổ hợp
Khoá ngoại
Khoá ngoại
Quan hệ mới
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 23
Chuyển đổi EERD sang các QH (tt)
(a) Mối quan hệ 1:1
(b) Tạo thành khóa ngoại
Chú ý: tất cả các thuộc tính
của mối quan hệ đều được
mang sang quan hệ đích
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 24
Chuyển đổi EERD sang các QH (tt)

Bước 4. Chuyển các thực thể kết hợp

Không có danh hiệu riêng:


Giống quan hệ nhiều-nhiều
Có danh hiệu riêng:


Khoá chính là danh hiệu của thực thể
Các mối quan hệ hai ngôi khác chuyển đổi bình thường
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 25
Chuyển đổi EERD sang các QH (tt)
(a)Thực thể kết hợp
Customer_ID
CUSTOMER
(b) Tạo thành quan hệ mới
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Vendor_ID
Date
Name
SHIPMENT
text
Shipment_No
Address
VENDOR
Amount
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 26
Chuyển đổi EERD sang các QH (tt)

Bước 5. Chuyển các mối quan hệ một ngôi

Một-nhiều:


Tạo ra khóa ngoại đệ qui tham khảo đến khoá chính
trong cùng một quan hệ
Nhiều-nhiều:

Tạo ra hai quan hệ


Một cho kiểu thực thể đó
Một cho một quan hệ kết hợp với hai thuộc tính là khoá ngoại
cùng tham khảo đến khoá chính của quan hệ kia và khoá chính
của nó là tổ hợp của hai thuộc tính đó
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 27
Chuyển đổi EERD sang các QH (tt)
(a) Thực thể EMPLOYEE với mối quan
hệ một ngôi
(b) Quan hệ EMPLOYEE với khóa ngoại đệ qui
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 28
Chuyển đổi EERD sang các QH (tt)
(a) Mối quan hệ Bill-of-materials (M:N)
(b) Tạo ra quan hệ COMPONENT
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 29
Chuyển đổi EERD sang các QH (tt)

Bước 6. Chuyển các mối quan hệ ba ngôi (và
n-ngôi)

Tạo ra n+1 quan hệ


n quan hệ cho n kiểu thực thể tham gia vào quan hệ
Một quan hệ kết hợp với các khoá ngoại tham khảo đến
khoá chính của các quan hệ kia
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 30
Chuyển đổi EERD sang các QH (tt)
(a) Mối quan hệ ba ngôi
(b) Tạo ra quan hệ SUPPLIES
VENDOR
Vendor_ID
...
PART
Part_ID
...
WAREHOUSE
Warehouse_ID
SUPPLIES
Vendor_ID
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
...
Part_ID
Warehouse_ID
Shipping_mode
Unit_cost
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 31
Chuyển đổi EERD sang các QH (tt)
(a) Mối quan hệ ba ngôi đã được chuyển thành thực thể kết hợp
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 32
Chuyển đổi EERD sang các QH (tt)
(b) Chuyển thành một quan hệ mới
Quan trọng:
-Xác định khóa chính trong trường
hợp này ra sao?
- Có khi nào những người khác
nhau xác định khóa chính khác
nhau cho cùng một ERD?
Chú ý rằng khoá chính PHẢI duy nhất
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 33
Chuyển đổi EERD sang các QH (tt)

Bước 7. Chuyển các mối q/hệ thực thể cha/con





Tạo ra các quan hệ cho các thực thể cha và thực
thể con
Các thuộc tính của thực thể cha (cả danh hiệu và
yếu tố phân biệt) trở thành các thuộc tính của quan
hệ cha
Các thuộc tính của thực thể con trở thành các thuộc
tính của quan hệ con.
Khoá chính của quan hệ cha trở thành khoá chính
của các quan hệ con.
Tạo ra các quan hệ 1:1 giữa thực thể cha với tất cả
các thực thể con với thực thể cha là bảng chính
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 34
Chuyển đổi EERD sang các QH (tt)
(a) Mối quan hệ thực thể cha/con
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 35
Chuyển đổi EERD sang các QH (tt)
(b) Chuyển thành các quan hệ tương ứng
Vừa là khoá
chính, vừa là
khóa ngoại
tham khảo đến
bảng cha
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 36
Phần II
Chuẩn hoá dữ liệu (Data Normalization)
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Giới thiệu


Là một công cụ cơ bản để kiểm tra và cải tiến
một thiết kế CSDL luận lý để thỏa mãn các ràng
buộc toàn vẹn giúp tránh sự trùng lắp dữ liệu
(data duplication) không cần thiết.
Là quá trình phân rã các quan hệ không bình
thường (anomaly) thành các quan hệ có cấu
trúc tốt (well-structured) nhỏ hơn

Quan hệ có cấu trúc tốt


Có sự dư thừa dữ liệu tối thiểu
Cho phép người dùng thêm vào, xoá đi và cập nhật các
hàng (row) mà không gây ra sự mâu thuẫn dữ liệu nào
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 38
Giới thiệu (tt)

Mục tiêu để tránh sự dị thường




Dị thường khi thêm vào (Insertion anomaly) – thêm
các hàng mới đòi hỏi người dùng tạo ra các dữ liệu
trùng lắp
Dị thường khi xoá (Deletion anomaly) – xoá các
hàng đã có gây ra sự mất dữ liệu cần thiết cho các
hàng khác
Dị thường khi hiệu chỉnh (Modification anomaly) –
thay đổi dữ liệu ở một hàng đòi hỏi thay đổi dữ liệu
của các hàng khác vì trùng lắp
Luật cơ bản: một bảng không nên thuộc về
nhiều hơn 1 kiểu thực thể
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 39
Giới thiệu (tt)
Hỏi: Đây có phải là một quan hệ không?
Hỏi: Khóa chính là gì?
Đáp: Phải: các hàng là duy nhất và
không có các thuộc tính đa trị
Đáp: Tổ hợp: Emp_ID,
Course_Title
Sự bất thường ở bảng này



Thêm vào – không thể thêm vào 1 nhân viên mới mà không tham gia lớp nào
Xoá đi – nếu xoá bỏ nhân viên 140, ta sẽ mất thông tin về lớp Tax Acc
Hiệu chỉnh – để tăng lương cho nhân viên 100, đòi hỏi phải cập nhật 2 hàng
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 40
Phụ thuộc hàm

Phụ thuộc hàm (function dependency - FD)




Là một ràng buộc giữa hai (tập) thuộc tính: Trong
quan hệ R, B là phụ thuộc hàm vào A nếu với mọi
thể hiện đúng của A, giá trị của nó xác định duy
nhất giá trị của B
Biểu diễn là AB
A là yếu tố xác định (determinant)
Ví dụ:



Emp_ID, Course_Name  Date_Completed
SS#  Name, Address, Birthday
ISBN  Title, First_Author_Name
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 41
Khóa dự tuyển

Khoá dự tuyển (candidate key)




Là một hoặc bộ các thuộc tính xác định qui nhất 1
hàng của quan hệ
Một trong các khóa dự tuyển sẽ trở thành khóa
chính
Các thuộc tính không là khóa sẽ phụ thuộc hàm vào
mọi khoá dự tuyển
Ví dụ:



xét quan hệ Employee(Emp_ID, Emp_Name, SS#)
Cả Emp_ID và SS# là các khóa dự tuyển
Emp_ID là khóa chính
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 42
Các bước chuẩn hóa
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 43
Dạng chuẩn 1 – 1stNF

First Normal Form – 1stNF


Không có các thuộc tính đa trị
Tất cả các quan hệ là ở dạng chuẩn 1
(a) Bảng EMPLOYEE với các nhóm dữ liệu lặp lại
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 44
Dạng chuẩn 1 – 1stNF (tt)

Chuyển thành 1stNF

Giải quyết tất cả các thuộc tính đa trị
(b) Quan hệ EMPLOYEE2
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 45
Dạng chuẩn 2 – 2ndNF

Second Normal Form – 2ndNF


Là 1stNF
Tất cả các thuộc tính không là khóa phải phụ thuộc
hàm hoàn toàn vào toàn bộ khóa



Chứ không phải 1 phần của khóa
Không có các phụ thuộc hàm riêng phần
Phụ thuộc hàm riêng phần (partial dependency)


Một thuộc tính phụ thuộc hàm vào 1 phần của khóa
chính
Ví dụ:


RB
A  R. A  B
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 46
Dạng chuẩn 2 – 2ndNF (tt)
EmpID, CourseTitle
 DateCompleted
EmpID
 Name,
DeptName, Salary
Phân rã thành 2 quan
hệ riêng biệt có quan hệ
với nhau
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 47
Dạng chuẩn 3 – 3rdNF

Third Normal Form – 3rdNF



Là 2ndNF
Không có các quan hệ bắt cầu
Quan hệ bắt cầu (transitive dependency)



Một thuộc tính phụ thuộc hàm vào thuộc tính khác
Thuộc tính này lại phụ thuộc hàm vào thuộc tính
khác nữa
Ví dụ: A  B, B  C  A  C
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 48
Dạng chuẩn 3 – 3rdNF (tt)
(a) Quan hệ SALES với các dữ liệu mẫu
(b) Quan hệ SALES với phụ thuộc hàm bắt cầu
CustID  Name
CustID  Salesperson
CustID  Region
All this is OK
(2nd NF)
CustID  Salesperson  Region
Transitive dependency (not 3rd NF)
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 49
Dạng chuẩn 3 – 3rdNF (tt)
(c) Phân rã quan hệ SALES
Không còn phụ thuộc
hàm bắt cầu nữa …
Cả hai quan hệ bây giờ
là ở dạng chuẩn 3
(d) Quan hệ ở dạng chuẩn 3
CustID  Name
CustID  Salesperson
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 50
Các dạng chuẩn khác

Dạng chuẩn Boyce-Codd (BCNF)


Dạng chuẩn 4 (Fourth NF - 4th NF)


Không có các phụ thuộc hàm đa trị (multivalued
dependency)
Dạng chuẩn 5 (Fifth NF - 5th NF)


Tất cả các yếu tố xác định (determinant) là khóa dự
tuyển
Không có các “lossless join”
Dạng chuẩn miền trị-khóa (Domain-key NF)

Thực sự không có các dị thường nào
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Lý thuyết Cơ sở dữ liệu
Chương 5: Thiết kế CSDL luận lý và mô hình quan hệ
Slide 51