lÝ thuyẾt cƠ sỞ dỮ liỆu

51
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 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)

Upload: jalena

Post on 25-Jan-2016

57 views

Category:

Documents


0 download

DESCRIPTION

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). Phần I. Thiết kế CSDL luận lý và mô hình quan hệ. 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ý - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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)

Page 2: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Phần I

Thiết kế CSDL luận lý và mô hình quan hệ

Page 3: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 3

Khoa Công nghệ Thông tinTrườ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

Page 4: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 4

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 5: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 5

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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ệ

Page 6: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 6

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 7: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 7

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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)

Page 8: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 8

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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.

Page 9: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 9

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 10: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 10

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 11: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 11

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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)

Page 12: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 12

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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ụ

Page 13: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 13

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 14: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 14

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 15: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 15

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 16: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 16

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 17: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 17

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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ỉ

Page 18: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 18

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Chuyển đổi EERD sang các QH (tt)

(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

(a) Thực thể EMPLOYEE với thuộc tính đa trị

Page 19: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 19

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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)

Page 20: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 20

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Chuyển đổi EERD sang các QH (tt)(a) Thực thể yếu DEPENDENT

Foreign key

(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 đủ)

Chú ý: khóa ngoại Employee_ID không được NULL

Page 21: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 21

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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.

Page 22: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 22

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Chuyển đổi EERD sang các QH (tt)

Khoá ngoại

(a) Mối quan hệ 1:N

(b) Tạo thành khóa ngoại

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)

Page 23: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 23

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Chuyển đổi EERD sang các QH (tt)

Mối quan hệ Supplies sẽ trở thành một quan hệ riêng

Khoá ngoại Khoá ngoại

Khoá chính tổ hợp

Quan hệ mới

(a) Mối quan hệ M:N

(b) Tạo thành quan hệ mới

Page 24: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 24

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 25: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 25

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 26: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 26

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

CUSTOMER VENDOR

Shipment_No

NameCustomer_ID AddressVendor_ID

Amount

Date

textSHIPMENT

Chuyển đổi EERD sang các QH (tt)(a)Thực thể kết hợp

(b) Tạo thành quan hệ mới

Page 27: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 27

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 28: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 28

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 29: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 29

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 30: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 30

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 31: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 31

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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_ID ...

Part_ID ...

Warehouse_ID ...

Vendor_ID Part_ID Warehouse_ID Shipping_mode Unit_cost

VENDOR

PART

WAREHOUSE

SUPPLIES

Page 32: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 32

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 33: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 33

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Chuyển đổi EERD sang các QH (tt)(b) Chuyển thành một quan hệ mới

Chú ý rằng khoá chính PHẢI duy nhất

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?

Page 34: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 34

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 35: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 35

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Chuyển đổi EERD sang các QH (tt)(a) Mối quan hệ thực thể cha/con

Page 36: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 36

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 37: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Phần II

Chuẩn hoá dữ liệu (Data Normalization)

Page 38: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 38

Khoa Công nghệ Thông tinTrườ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

Page 39: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 39

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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ể

Page 40: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 40

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Giới thiệu (tt)Hỏi: Đây có phải là một quan hệ không?

Đáp: Phải: các hàng là duy nhất và không có các thuộc tính đa trị

Hỏi: Khóa chính là gì?

Đá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

Page 41: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 41

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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à AB 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

Page 42: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 42

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 43: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 43

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Các bước chuẩn hóa

Page 44: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 44

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 45: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 45

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 46: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 46

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 47: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 47

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Dạng chuẩn 2 – 2ndNF (tt)

Phân rã thành 2 quan hệ riêng biệt có quan hệ với nhau

EmpID, CourseTitle DateCompleted

EmpID Name, DeptName, Salary

Page 48: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 48

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

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

Page 49: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 49

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Dạng chuẩn 3 – 3rdNF (tt)

CustID Salesperson Region

Transitive dependency (not 3rd NF)

CustID NameCustID SalespersonCustID Region

All this is OK(2nd NF)

(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

Page 50: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 50

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Dạng chuẩn 3 – 3rdNF (tt)

CustID Name

CustID Salesperson

(c) Phân rã quan hệ SALES

(d) Quan hệ ở dạng chuẩn 3

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

Page 51: LÝ THUYẾT CƠ SỞ DỮ LIỆU

Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệ

Slide 51

Khoa Công nghệ Thông tinTrường ĐH Bách Khoa Tp.HCM

Các dạng chuẩn khác Dạng chuẩn Boyce-Codd (BCNF)

Tất cả các yếu tố xác định (determinant) là khóa dự tuyển

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)

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