Upload
jalena
View
57
Download
0
Embed Size (px)
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
Citation preview
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)
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ệ
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
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
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ệ
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
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)
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.
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
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
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)
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ụ
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
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
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
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
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ỉ
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ị
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)
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
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.
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)
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
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
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
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
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 đó
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
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
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
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
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
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?
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
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
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
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)
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
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ể
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
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
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
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
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
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
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
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
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
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
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
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