Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3)

Các nội dung chính

1. Giới thiệu về các bất thường trong một quan hệ

2. Các phụ thuộc hàm

3. Khái niệm các khóa

4. Các nguyên nhân gây ra các bất thường

5. Phép tách lược đồ QH

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 1

Trang 1

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 2

Trang 2

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 3

Trang 3

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 4

Trang 4

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 5

Trang 5

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 6

Trang 6

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 7

Trang 7

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 8

Trang 8

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 9

Trang 9

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3) trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 27 trang xuanhieu 6520
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3)

Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3)
Kỹ thuật phần mềm 
ứng dụng
Chương 3
 Mô hình dữ liệu quan hệ
 (Phần 3)
 9/6/2017
Mục đích
 Nắm được các vấn đề và khái niệm
 . Các bất thường trong một quan hệ (Anomalies)
 . Phụ thuộc hàm (Functional Dependencies)
 . Khóa
 . Sự tách lược đồ quan hệ (Decomposition)
 2/26
Các nội dung chính
 1. Giới thiệu về các bất thường trong một quan hệ
 2. Các phụ thuộc hàm
 3. Khái niệm các khóa
 4. Các nguyên nhân gây ra các bất thường
 5. Phép tách lược đồ QH
 3/26
 1. Các bất thường trong quan hệ
 . Hãy quan sát bảng Student
 ID Name Class Department Subject Mark
1 E1-001 Nguyen Van A E1 Electronics Electronic Circuit 8
2 E1-001 Nguyen Van A E1 Electronics Digital Technique 7
3 E1-002 Tran Thi B E1 Electronics Digital Technique 9
4 E1-002 Tran Thi B E1 Electronics Electronic Circuit 8
5 E2-001 Nguyen Ho C E2 Electronics Digital Technique 6
6 IT1-001 Tran Thi B IT1 IT Electronic Circuit 10
7 IT1-002 Le Van D IT1 IT Digital Technique 8
 4/26
1. Các bất thường trong quan hệ
 Từ bảng trên có thể nhận thấy một số bất thường:
 . Dư thừa (Redundancy): giá trị của một số thành phần 
 trong các bộ bị lặp lại không cần thiết như : Name, Class, 
 Department
 . Bất thường khi cập nhật (Update Anomalie): xuất 
 hiện khi cập nhật giá trị cho một bộ hiện có, vì thực tế 
 thực hiện của thao tác có vẻ phức tạp hơn rất nhiều so với 
 logic của thao tác đó. 
 . Bất thường khi bổ sung (Insertion Anomalie): xuất 
 hiện khi bổ sung thêm một bộ mới. 
 . Bất thường khi xóa (Deletion Anomalie): xuất hiện 
 khi xóa một bộ hiện có trong quan hệ.
 5/26
1. Các bất thường trong quan hệ
Hậu quả của các bất thường trên
. Sự không nhất quán dữ liệu có nguy cơ rất cao
. Tốn chỗ lưu trữ do dư thừa
. Các thao tác cơ bản trên CSDL không hiệu quả
 6/26
1. Các bất thường trong quan hệ
 . Vậy nguyên nhân của các bất thường này là gì? 
 Khái niệm Phụ thuộc hàm có thể giúp chúng ta 
 hiểu nguyên nhân, cũng như giúp tìm ra giải pháp 
 cho vấn đề trên.
 7/26
2. Phụ thuộc hàm
 . Định nghĩa
 . Ý nghĩa của PTH
 . Hệ tiên đề Amstrong
 . Một số loại PTH đặc biệt
 . Khóa và thuộc tính khóa
 8/26
2. Phụ thuộc hàm
 . Định nghĩa về PTH (Functional Dependency)
 – Cho lược đồ quan hệ R(A1,A2,An), và A = A1A2  
 An, và 2 tập các thuộc tính X và Y  A. Chúng ta nói 
 rằng:
  X Y (X xác định hàm Y, hay Y phụ thuộc hàm 
 vào X), nếu  thể hiện r của R, thì không tồn tại 2 
 bộ t1, t2, sao cho t1[X]=t2[X] và t1[Y] t2[Y]
  Nói cách khác: tập các thuộc tính Y phụ thuộc 
 hàm vào tập các thuộc tính X khi và chỉ khi ứng 
 với mỗi bộ giá trị của X trong R chỉ xác định đúng 
 một giá trị của Y tại mọi thời điểm 
 – X được gọi là Quyết định (determinant) 
 của PTH.
 9/26
2. Phụ thuộc hàm– ví dụ
 – Một số PTH từ bảng Student: 
  ID Name; 
  ID Class; 
  Class Department; 
  ID,Subject Mark
 10/26
2. Phụ thuộc hàm– Ý nghĩa
. Ý nghĩa của một PTH X Y trong lược đồ R:  thể 
 hiện r của R thì:
 – Hoặc không có bất kỳ 2 bộ t1, t2 nào, sao cho t1[X]=t2[X] 
 – Hoặc nếu tồn tại 2 bộ t1, t2 mà t1[X]=t2[X], thì t1[Y]=t2[Y]
 Trong cả hai trường hợp,  bộ t, với mỗi giá trị của t[X] thì chỉ 
 có một giá trị của t[Y], do đó nếu biết trước giá trị t[X], thì có 
 thể xác định giá trị t[Y]. 
 11/26
2. Phụ thuộc hàm– Ý nghĩa
 . Ý nghĩa của PTH X Y:
 – Thế thì PTH đến từ đâu?
  Nó xuất phát các quy tắc nghiệp vụ (hay 
 logic nghiệp vụ) của cơ sở dữ liệu. Các quy tắc 
 nghiệp vụ này sẽ quy định các phụ thuộc giữa 
 các thuộc tính, và từ đó sẽ tạo ra các phụ thuộc 
 hàm. 
 12/26
2. Phụ thuộc hàm– Ý nghĩa
. Ví dụ: một số quy tắc nghiệp vụ trong lược đồ 
 Student:
 – r1: Mỗi sinh viên có một ID duy nhất. 
 – r2: Mỗi sinh viên chỉ có duy nhất 1 tên và chỉ thuộc về một 
 lớp. 
  Từ r1 và r2, ta có các PTH sau:
 ID Name; ID Class
 – r3: Với mỗi môn học, mỗi sinh viên chỉ thi một lần
  Từ r3, ta có PTH: (ID, Subject) Mark;
 13/26
2. Phụ thuộc hàm
 . Hệ tiên đề Amstrong
 – Tính phản xạ:  Y  X thì X Y (PTH tầm 
 thường)
 – Tính tăng trưởng:  X, Y, Z, nếu X Y thì XZ 
 YZ (XZ = X  Z)
 – Tính bắc cầu: X, Y, Z, nếu X Y và Y Z thì X 
 Z
 . Các hệ quả:
 – Tính hợp : nếu X Y và X Z thì X YZ
 – Tính tách: nếu X Y và Z  Y thì X Z
 – Tính tựa bắc cầu: nếu X Y và YW Z thì XW 
 Z 14/26
2. Phụ thuộc hàm
. Một số loại PTH đặc biệt
 – PTH bộ phận và PTH đầy đủ: X Y được gọi là PTH bộ 
 phận nếu X’  X sao cho X’ Y. Trái lại, nếu không tồn tại 
 X’ như trên thì PTH này là đầy đủ. 
 – PTH bắc cầu và PTH trực tiếp: X Y được gọi là PTH 
 bắc cầu (hay gián tiếp) nếu  Z  XY sao cho X Z và Z 
 Y. Trái lại, nếu không tồn tại Z như trên thì PTH này là 
 trực tiếp.
 15/26
 3. Khóa
Có một số loại khóa như sau:
 – Siêu khóa (Super Keys).
 – Khóa ứng viên (Candidate Kyes).
 – Khóa chính (Primary Kyes).
 – Khóa nói chung (Keys).
 – Khóa ngoại.
 1
 6
 3. Khóa
Siêu khóa
. Là một hay một tập các cột xác định duy nhất một hàng trong
 bảng
. SK là siêu khóa của R khi với mọi t1, t2 thuộc bất kỳ thể hiện r 
 của R ta luôn có t1[SK] ≠ t2[SK]
. SK là siêu khóa củaR SK xác định hàm mọi thuộc tính của
 R (SK -> R).
 Ví dụ: Ta có lược đồ DMSV(MaSV, SoCMTND, Ho_ten_sv, 
 Ngay_Sinh, Dia_chi, Que_quan). Ta có thể có siêu khóa sau
 (DMDV(MaSV, SoCMTND, Ho_ten_sv), khi đó một khóa
 nói chung là thành phần tối thiểu của siêu khóa.
 1
 7
 3 Khóa (tiếp)
. Khóa ứng viên (khóa ứng cử): Là một tập con của siêu khóa (cũng là một siêu
 khóa), nhưng không thể thu lại thành một siêu khóa khác được gọi là khóa
 ứng viên hay khóa dự tuyển, Ví dụ ta có tập các khóa ứng viên{ 
 (MaSV),(SoCMTND)}.
. Khóa chính:Là một khóa được lựa chọn một cách tùy ý từ tập các khóa ứng
 viên, và được sử dụng trong các chỉ mục của bảng đó.
 Khóa ngoại: Một thuộc tính của quan hệ R1 được gọi là một
 khoá ngoại lai nếu nó không phải là khoá chính của quan hệ
 R1 nhưng các giá trị của nó là các giá trị của khoá chính
 trong một quan hệ R2 nào đó (quan hệ R1 và R2 không nhất thiết
 phải khác nhau). 
 Khóa ngoại lai dùng để chứa dữ liệu dùng cho việc liên kết với các bảng khác
 trong CSDL.
 1
 8
Ví dụ
 1
 9
3. Khóa (tiếp)
 – Thuộc tính khóa (Prime attribute): 1 thuộc tính A là 
 thuộc tính khóa nếu nó tham gia vào thành phần của 
 khóa chính hoặc khóa ứng cử. Trái lại, thì nó là thuộc 
 tính không khóa (hay thuộc tính mô tả)
 20/26
 4. Nguyên nhân gây ra các bất thường
 ID Name Class Department Subject Mark
1 E1-001 Nguyen Van A E1 Electronics Electronic Circuit 8
2 E1-001 Nguyen Van A E1 Electronics Digital Technique 7
3 E1-002 Tran Thi B E1 Electronics Digital Technique 9
4 E1-002 Tran Thi B E1 Electronics Electronic Circuit 8
5 E2-001 Nguyen Ho C E2 Electronics Digital Technique 6
6 IT1-001 Tran Thi B IT1 IT Electronic Circuit 10
7 IT1-002 Le Van D IT1 IT Digital Technique 8
 21/26
4. Nguyên nhân gây ra các bất thường
 . Khóa chính của quan hệ Student:
 K = (ID, Subject)
 . Nhận xét: các thuộc tính dư thừa là các thuộc tính 
 phụ thuộc hàm bộ phận hoặc bắc cầu vào Khóa chính, 
 ví dụ như: 
 – (ID, Subject) Name, Class, Department; PTH bộ phận vì 
 ID Name, ID Class, ID Department
 22/26
4. Nguyên nhân gây ra các bất thường
 . Là sự tồn tại của các phụ thuộc bộ phận hoặc bắc cầu 
 vào khóa chính
 . Giải pháp: Cần loại bỏ các loại PTH này trong quan 
 hệ, nhưng làm thế nào? 
 Phép tách lược đồ!
 23/26
4. Phép tách
 . Định nghĩa: cho một LĐQH R. Một phép tách R là 
 sự thay thế nó bằng các LĐ con (sub-schema) R1, R2, 
 , Rn sao cho R = R1R2 Rn. Ký hiệu phép tách 
 là: (R) = (R1,R2, ..., Rn) ( called rho)
 . Một số tính chất muốn có của phép tách:
 – Tách nối không mất thông tin (Loseless-join decomposition) 
 – Bảo toàn các PTH (Preservation of FDs)
 24/26
4. Phép tách
 . Tách nối không mất thông tin: giả sử cho = 
 (R1,R2, ..., Rn) là 1 phép tách R. được gọi là tách nối 
 không mất thông tin nếu nó thỏa mãn:
  thể hiện r của R thì biểu thức sau luôn thỏa mãn: : 
 r = R1(r) R2(r) ... Rn(r)
 . Bảo toàn các PTH: cho LĐ R với tập các PTH F. 
 Phép tách = (R1,R2, ..., Rn) được gọi là bảo toàn PTH 
 nếu nó thỏa mãn:
 F = R1(F)  R2(F)    Rn(F)
 Với Ri(F) = {X Y | X Y and XY  Ri}
 25/26
Ví dụ: tách bảng Student thành 3 bảng S1, S2 và S3
 S1 S3
 ID Name Class ID Subject Mark
 E1-001 Nguyen Van A E1 E1-001 Electronic Circuit 8
 E1-002 Tran Thi B E1
 E1-001 Digital Technique 7
 E2-001 Nguyen Ho C E2
 E1-002 Digital Technique 9
 IT1-001 Tran Thi B IT1
 E1-002 Electronic Circuit 8
 IT1-002 Le Van D IT1
 E2-001 Digital Technique 6
 S2
 IT1-001 Electronic Circuit 10
 Class Department
 E1 Electronics IT1-002 Digital Technique 8
 E2 Electronics
 IT1 IT
 26/26
4. Phép tách
. Một phép tách tốt cần phải::
 – Loại bỏ tất cả các bất thường
 – Lưu giữ được các tính chất mong muốn
. Làm thế nào đạt được?
 Quá trình chuẩn hóa và các dạng chuẩn (Normalization and 
 Normal Forms)
 27/26

File đính kèm:

  • pdfbai_giang_ky_thuat_phan_mem_ung_dung_chuong_3_mo_hinh_du_lie.pdf