Chương III: DATABASE(P2)

Chia sẻ: Bui Duc To | Ngày: | Loại File: PPT | Số trang:34

0
64
lượt xem
8
download

Chương III: DATABASE(P2)

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Gọi R = {A1, A2, ... , An} là tập hữu hạn của các thuộc tính, mỗi thuộc tính Ai với i = 1, 2,..., n có miền giá trị tương ứng là dom(Ai) (các miền không nhất thiết là phải khác nhau)

Chủ đề:
Lưu

Nội dung Text: Chương III: DATABASE(P2)

  1. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Khoa Điện tử Viễn Thông – Bộ môn Điện tử Tin học KỸ THUẬT PHẦN MỀM Chương III: DATABASE    
  2. 3.2.Mô hình CSDL quan hệ 3.2.1. Các khái niệm cơ bản. a. Quan hệ, bộ. b. Miền và thuộc tính. 3.2.2. Khoá. 3.2.3. Kết luận. 3.2.4. Các phép toán trên CSDL quan hệ.    
  3. 3.2.1. Các khái niệm cơ bản.  Khái niệm toán học của mô hình quan hệ:  hiểu theo nghĩa lý thuyết tập hợp, đó là tập con của tích Đề-Các của các miền  Miền (domain) là một tập các giá trị  Ví dụ của miền:  tập các số nguyên  tập các xâu ký tự tạo thành tên các tỉnh, thành phố ở Việt Nam có độ dài không quá 30 ký tự  tập hai giá trị {True, False}    
  4. 3.2.1. Các khái niệm cơ bản. 1. Quan hệ, bộ.  Tích Đề - Các của n miền:  D1 x D2 x... x Dn là tập tất cả n-bộ (n-tuples) (ν 1, ν 2,... ν n) sao cho ν i ∈ Di với i = 1, 2, ... n  Ví dụ:  n=2  D1 = {False, True}  D2 = {a, b, c}, khi đó:  D1 x D2 = {(False, a), (False, b), (False, c), (True, a), (True, b), (True, c)}    
  5. 3.2.1. Các khái niệm cơ bản.  Quan hệ (Relation)  Một tập con của tích Đề-Các của một hoặc nhiều miền  Như vậy, mỗi quan hệ có thể là vô hạn  ở đây luôn luôn giả thiết rằng, quan hệ là một tập hữu hạn  Quan hệ là tập con của tích Đề-Các D1 x D2 x ... x Dn được gọi là quan hệ n-ngôi  Các thành phần của các bộ trong quan hệ gọi là các thuộc tính (attributes)  Sự khác nhau giữa miền và thuộc tính:  Một thuộc tính biểu thị cách sử dụng một miền trong một quan hệ    
  6. 3.2.1. Các khái niệm cơ bản. Quan hệ được định nghĩa một cách hình thức như sau:  Gọi R = {A1, A2, ... , An} là tập hữu hạn của các thuộc tính, mỗi thuộc tính Ai với i = 1, 2,..., n có miền giá trị tương ứng là dom(Ai) (các miền không nhất thiết là phải khác nhau)  Quan hệ r trên tập thuộc tính R = {A1, A2, ..., An} là tập con của tích Đề - Các được biểu diễn như sau:  r ⊆ dom (A1) x dom (A2) x... dom (An)  Ví dụ: Hình 3.6, ba quan hệ được gọi là S, P, SP  Quan hệ P là quan hệ 5-ngôi được định nghĩa trên 5 miền:  P#, PNAME, COLOR, WEIGHT, CITY  Ví dụ, miền COLOR là tập của tất cả các màu sắc hợp lệ của các mặt hàng  Ta có p1 = (P1, Nut, Red, 12, London) là một bộ (tuple, row) của quan hệ P      Bộ (tuples)
  7. 3.2.1. Các khái niệm cơ bản. Hình 3.6 Dữ liệu mẫu trong dạng quan hệ. Supplier   cung  ấp  ­Hãng  c S S# SNAME STATUS CITY Shipment  Gửi  –  hàng S1 Smith 20 London S2 Jones 10 Paris SP S# P# QT Y S3 Blake 30 Paris S1 P1 300 Part   ặt  ­M hàng  S1 P2 200 P P# PNAME COLOR WEIGH CITY T S1 P3 400 P1 Nut Red 12 London S2 P1 300 P2 Bolt Green 17 Paris S2 P2 400 P3 Screw Blue 17 Rome S3 P2 200 P4   Screw Red 14 London  
  8. 3.1. Các khái niệm cơ bản. 2. Miền và thuộc tính.  Cần phân biệt rõ sự khác nhau giữa miền và các thuộc tính - hay còn gọi là các cột - được rút ra từ miền này  Một thuộc tính biểu thị sự sử dụng một miền trong một quan hệ (các thành phần của các bộ trong quan hệ gọi là các thuộc tính)  Để nhấn mạnh sự khác nhau này, chúng ta có thể đặt tên cho thuộc tính khác với tên của miền đã cho, ví dụ như trên Hình 2.1.    
  9. 3.2.1. Các khái niệm cơ bản. Ví dụ: Hình 3.7, Khai báo lược đồ mẫu DOMAIN PARTNO CHARACTER (6) DOMAIN PARTNAME CHARACTER (20) DOMAIN COLOR CHARACTER (6) DOMAIN WEIGHT NUMERIC (4) DOMAIN ADDRESS CHARACTER (15) ... RELATION PART (P# DOMAIN PARTNO PNAME DOMAIN PARTNAME COLOR DOMAIN COLOR WEIGHT DOMAIN WEIGHT CITY DOMAIN ADDRESS)    
  10. 2.1. Các khái niệm cơ bản.  Hình 3.7 là một phần của lược đồ khái niệm, trong đó có:  Năm miền (P#, PNAME, COLOR, WEIGHT, CITY)  Một quan hệ (PART) đã được khai báo  Quan hệ PART này được định nghĩa với năm thuộc tính: • PARTNO • PARTNAME • COLOR • WT • LOC và  Mỗi thuộc tính được chỉ rõ đã rút ra từ miền tương ứng nào    
  11. 3.2.1. Các khái niệm cơ bản.  Để thuận tiện, người ta thường bỏ qua phần khai báo tên miền ("DOMAIN name") khi khai báo thuộc tính nếu tên thuộc tính giống tên miền  Tuy nhiên, không phải luôn có thể đặt tên thuộc tính trùng với tên miền Hình 3.8 Quan hệ COMPONENT    
  12. 3.2.1. Các khái niệm cơ bản.  Trong ví dụ này, chúng ta có một quan hệ với ba thuộc tính nhưng chỉ có hai miền khác nhau  ý nghĩa của một bộ (tuple) trong quan hệ COMPONENT là một mặt hàng chính (MAJOR_P#) có kèm theo mặt hàng phụ (MINOR_P#) và số lượng các mặt hàng phụ này (QUANTITY)  Ví dụ này cũng minh hoạ một sự thuận tiện thông thường khác:  Cách tạo tên thuộc tính khác nhau bằng cách đặt phần tiền tố (MAJOR, MINOR) trước tên miền chung (P#) để phân biệt vai trò của các thuộc tính có cùng chung một miền (P#)    
  13. 3.2.1. Các khái niệm cơ bản.  Khái niệm "chuẩn hoá":  Mô hình quan hệ chỉ chấp nhận duy nhất các quan hệ thoả mãn điều kiện “Mọi giá trị trong quan hệ - nghĩa là tất cả các giá trị của các thuộc tính trong tất cả các bộ - đều phải là nguyên tố (atomic) (nghĩa là không chia nhỏ được nữa)” .  Nói một cách khác, tại mỗi vị trí cắt nhau của một hàng và một cột trong bảng tồn tại đúng một giá trị và không bao giờ là một tập các giá trị.  Quan hệ thoả mãn điều kiện trên được gọi là “đã được chuẩn hoá”.    
  14. 3.2.1. Các khái niệm cơ bản.  Ví dụ:    
  15. 3.2.1. Các khái niệm cơ bản.  Luôn có thể chuyển một quan hệ chưa chuẩn hoá sang dạng chuẩn hoá tương đương  Quan hệ BEFORE (hình 2.3) được định nghĩa trên các miền:  S# (Supplier number: số hiệu hãng cung cấp) và  PQ (Part-Quantity: mặt hàng - số lượng)  Các phần tử của PQ chính là các quan hệ được định nghĩa trên các miền:  P# (số hiệu mặt hàng) và  QTY (Quantity: số lượng hàng)  ⇒ do đó, quan hệ BEFORE là chưa được chuẩn hoá  Quan hệ AFTER là quan hệ tương đương đã được chuẩn hoá  Về mặt toán học: BEFORE là quan hệ hai ngôi nhưng không phải tất cả các miền đều là đơn giản (Miền đơn giản là miền mà trong đó tất cả các phần tử là nguyên tố)  AFTER là quan hệ ba ngôi tương đương về mặt ngữ nghĩa với quan hệ BEFORE nhưng tất cả các miền của các thuộc tính của nó đều là đơn   giản.  
  16. 3.2.2. Khoá 1. Khoá chính (Primary key). 2. Khóa ứng cử (Candidate key). 3. Khóa ngoại lai (Foreign key). 4. Khóa phụ (Sub-Key).    
  17. 3.2.2. Khóa 1. Khóa chính (Primary key) • Khóa chính là một thuộc tính hoặc một kết hợp tối thiểu các thuộc tính cho phép ta nhận diện duy nhất một thực thể riêng biệt nào đó.  Tính “nhận diện duy nhất”: • Trong một quan hệ đã cho luôn có một thuộc tính hoặc một kết hợp các thuộc tính với các giá trị cho phép nhận dạng duy nhất các bộ của quan hệ này. • Trong lược đồ quan hệ có thể có rất nhiều khoá • Việc tìm tất cả các khoá của lược đồ quan hệ là rất khó khăn  Tính “tối thiểu”:  Không phải thường xuyên cần đến tất cả các thuộc tính.      Không một thuộc tính thành phần nào của khoá chính là thừa với
  18. 3.2.2. Khóa 2. Khoá ứng cử (Candidate key)  Khóa ứng cử là thuộc tính hoặc kết hợp các thuộc tính có tính chất như khóa chính.  Đôi khi có thể gặp một quan hệ trong đó có hơn một kết hợp các thuộc tính có khả năng nhận diện duy nhất và tối thiểu như khóa chính ⇒ do đó có hơn một khoá ứng cử (candidate key)    
  19. 3.2.2. Khóa  Ví dụ: Giả thiết, tên hãng cung cấp là duy nhất     => Khóa ứng cử: S#; SNAME
  20. 3.2.2. Khóa 3. Khoá ngoại lai (Foreign key) 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 đó Các khoá chính và khoá ngoại lai cho ta các phương tiện để biểu diễn các liên kết giữa các bộ. Tuy nhiên, cần lưu ý là không phải tất cả các thuộc tính có thể biểu diễn các liên kết như vậy đều là khoá    
Đồng bộ tài khoản