Xem mẫu

  1. MỤC LỤC Lời mở đầu............................................................................................................7 Chương 1: .............................................................................................................8 Mô hình quan hệ- chuyển mô hình E-R sang mô hình quan hệ ......................8 A/Nhắc lại lí thuyết ..............................................................................................8 I. Các khái niệm của mô hình quan hệ ..............................................................8 1. Quan hệ ..............................................................................................................8 2. Lược đồ ..............................................................................................................8 3. Bộ .......................................................................................................................9 4. Miền giá trị .........................................................................................................9 5. Khóa ngoại .......................................................................................................12 6. Biểu diễn ràng buộc tham chiếu ......................................................................14 III. Các đặc trưng của quan hệ.........................................................................14 IV. Chuyển lược đồ E-R sang lược đồ quan hệ...............................................14 B/ Bài tập mẫu ....................................................................................................16 C/ Bài tập tự giải ................................................................................................20 Bài số1: Chuyển đổi từ mô hình dữ liệu mô hình dữ liệu quan hệ sang ER .......20 Bài số 2: Chuyển đổi từ mô hình dữ liệu mô hình dữ liệu quan hệ sang ER ......20 Bài số 3: Vẽ lược đồ quản lý đề án công ty .........................................................20 Chương 2: ...........................................................................................................22 Đại số quan hệ ....................................................................................................22 A. Nhắc lại lí thuyết ...........................................................................................22 I. Các phép toán đại số quan hệ .......................................................................22 1. Phép hợp: .........................................................................................................22 2. Phép giao: .........................................................................................................22 3. Phép hiệu: .........................................................................................................22 II. Các ví dụ ........................................................................................................23 Ví dụ 1: Đây là phép chiếu trên quan hệ R ..........................................................23 Ví dụ 2: Đây là phép kết nối trên hai quan hệ .....................................................24 Ví dụ 3: Đây là phép nối tự nhiên trên hai quan hệ .............................................25 Ví dụ 4: Đây là phép tích đề các trên hai quan hệ ...............................................25 Ví dụ 5: Đây là phép chia quan hệ R cho quan hê S ...........................................25 Ví dụ 6: Đây là phép chọn trên quan hệ R, biểuthức chọn là E = B≥ C khi đó: .26 III. Một số lưu ý .................................................................................................26 1
  2. B. Bài tập giải mẫu .............................................................................................26 Bài số 1: Thực hiện phép chọn trên quan hệ SV(Hoten, namsinh, CSDL, FOX).27 Bài tập 2: Kết hợp các phép toán của ngôn ngữ đại số quan hệ. .........................27 C. Bài tập tự giải ................................................................................................29 Bài số 3: Phép chia giữa hai quan hệ. ..............................................................30 Bài số 5: Tổng hợp các phép toán đại số quan hệ. ..............................................31 Bài số 6: Thao tác trên một cơ sở dữ liệu. ...........................................................32 Bài số 7: Thao tác trên một cơ sở dữ liệu. ...........................................................33 Bài số 8: Thao tác trên một cơ sở dữ liệu. ...........................................................34 Bài tập9: Tổng hợp các phép toán đại số quan hệ. ..............................................35 Bài số 10: Tổng hợp các phép toán đại số quan hệ. ............................................36 Bài số 11: .............................................................................................................36 Bài số 12: .............................................................................................................36 Bài số 13: .............................................................................................................37 Bài số 14: .............................................................................................................37 Chương 3: ...........................................................................................................38 Các vấn đề về phụ thuộc hàm ...........................................................................38 A/ Nhắc lại lí thuyết ...........................................................................................38 I. Một số định nghĩa, tính chất..........................................................................38 1. Định nghĩa phụ thuộc hàm ...............................................................................38 2. Một số tính chất của phụ thuộc hàm: ...............................................................39 3. Hệ tiên đề Amstrong ........................................................................................39 4. Định nghĩa suy dẫn theo hệ tiên đề..................................................................40 5. Định nghĩa suy dẫn theo quan hệ .....................................................................40 6. Bao đóng của tập thuộc tính ............................................................................41 Thuật toán 1 .........................................................................................................42 7. Phụ thuộc hàm dư thừa ....................................................................................43 8. Phủ không dư và thuật toán tìm phủ không dư................................................43 9. Phủ thu gọn ......................................................................................................44 10. Phủ tối thiểu ...................................................................................................45 II. Các ví dụ ........................................................................................................47 B/ Bài tập giải mẫu.............................................................................................48 Bài số 1: ...............................................................................................................48 Bài số 2: ...............................................................................................................48 Bài tập 3:Tìm bao đóng. ......................................................................................49 Bài tập 4: Cho lược đồ quan hệ R = (U, F)..........................................................51 2
  3. Bài tập 5: Phụ thuộc hàm dư thừa........................................................................51 Bài tập 6: Tìm phủ tối thiểu của tập phụ thuộc hàm T sau đây ...........................52 C/ Bài tập tự giải ................................................................................................53 Bài tập 1: ..............................................................................................................53 Bài tập 2: ..............................................................................................................53 Bài tập 3 ...............................................................................................................54 Bài tập 4 ...............................................................................................................54 Bài tập 5 ...............................................................................................................54 Bài tập 6 ...............................................................................................................54 Bài tập 7 ...............................................................................................................54 Bài tập 8 ...............................................................................................................54 Bài tập 9 ...............................................................................................................54 Bài tập 10 .............................................................................................................55 Bài tập 11 .............................................................................................................55 Bài tập 12 .............................................................................................................55 Bài tập 13 .............................................................................................................55 Bài tập 15 .............................................................................................................55 Bài tập 16 .............................................................................................................55 Bài tập 17 .............................................................................................................56 Bài tập 18 .............................................................................................................56 Bài tập 19 .............................................................................................................56 Bài tập 20 .............................................................................................................56 Bài tập 22 .............................................................................................................57 Bài tập 23 .............................................................................................................57 Bài tập 24 .............................................................................................................57 Chương 4: ...........................................................................................................58 Các vấn đề về khóa của lược đồ quan hệ........................................................ 50 A/ Nhắc lại lí thuyết ...........................................................................................58 I. Các định nghĩa, tính chất, thuật toán ...........................................................58 1. Họ Sperner .......................................................................................................58 2. Siêu khoá và khoá ............................................................................................58 II. Một số vấn đề về khóa ..................................................................................59 Bài toán 1: Cho K ⊆U hỏi rằng K có phải là khoá hay không? .........................59 Bài toán 2: Tìm một khoá của lược đồ. ...............................................................59 Bài toán 3: Tìm giao của tất cả các khoá Iα .........................................................60 3
  4. Bài toán 4: Cho lược đồ quan hệ α = (U, F). Hỏi rằng lược đồ có bao nhiêu khoá......................................................................................................................60 Bài toán 5: Cho lược đồ α = (U, F). Hãy tìm các khoá của lược đồ. ..................60 B/ Bài tập giải mẫu.............................................................................................62 Bài số 1: Kiểm tra một tập thuộc tính có phải là khoá của một lược đồ không? 62 Bài số 2:Tìm một khoá của lược đồ. ....................................................................62 Bài số 3: Hãy tìm giao của tấp cả các khoá của lược đồ α = (U, F)....................62 Bài số 4: ...............................................................................................................63 C/ Bài tập tự giải ................................................................................................63 Bài tập 1: ..............................................................................................................63 Bài tập 2: ..............................................................................................................63 Bài tập 3: ..............................................................................................................63 Bài tập 4 ...............................................................................................................63 Bài tập 5: ..............................................................................................................64 Bài tập 6: ..............................................................................................................64 Bài tập 7: ..............................................................................................................64 Bài tập 8: ..............................................................................................................64 Bài tập 9: ..............................................................................................................65 Bài tập 10: ............................................................................................................65 Bài tập 11: ............................................................................................................65 Bài tập 12: ............................................................................................................65 Bài tập 13: ............................................................................................................65 Bài tập 14: ............................................................................................................66 Bài tập 15: ............................................................................................................66 Bài tập 16: ............................................................................................................66 Bài tập 17: ............................................................................................................66 Bài tập 18: ............................................................................................................67 Bài tập 19: ............................................................................................................67 Chương 5: ...........................................................................................................68 Chuẩn hóa lược đồ quan hệ ..............................................................................68 A/ Nhắc lại lí thuyết ...........................................................................................68 I. Các định nghĩa, tính chất...............................................................................68 1. Dạng chuẩn 1 (1NF - first normal form) .........................................................68 2. Dạng chuẩn 2 (2NF- Second normal form) .....................................................68 3. Dạng chuẩn 3 (3NF- Second normal form) .....................................................69 4. Dạng chuẩn Boyce Codd (BCNF- Boyce Codd normal form)........................70 4
  5. 5. Tách lược đồ quan hệ .......................................................................................71 6. Thuật toán kiểm tra phép tách kết nối có mất thông tin hay không? ..............71 7. Phương pháp chuẩn hóa dữ liệu.......................................................................72 II. Một số lưu ý ...................................................................................................74 B/ Bài tập giải mẫu.............................................................................................75 Bài số 1: Kiểm tra lược đồ (U, F) có ở dạng chuẩn 2NF hoặc 3NF hay không? 75 Bài số 2: Kiểm tra phép tách có mất thông tin hay không? .................................75 C/ Bài tập tự giải ................................................................................................76 Bài tập 1: ..............................................................................................................76 Bài tập 2: ..............................................................................................................77 Bài tập 3: ..............................................................................................................77 Bài tập 4: ..............................................................................................................77 Bài tập 5: ..............................................................................................................77 Bài tập 6: ..............................................................................................................77 Bài tập 7: ..............................................................................................................77 Bài tập 8: ..............................................................................................................78 Bài tập 11: ............................................................................................................78 Bài tập 12: ............................................................................................................78 Bài tập 13: ............................................................................................................78 Bài tập 14: ............................................................................................................79 Chương 6: ...........................................................................................................79 Ngôn ngữ SQL ....................................................................................................79 A/ Nhắc lại lí thuyết ..........................................................................................79 I. Các nhóm lệnh của ngôn ngữ cơ sở dữ liệu. ................................................79 1. Các lệnh DDL: CREATE, ALTER, DROP. ..................................................79 2. Các lệnh DML: SELECT, UPDATE, INSERT, DELETE, …........................81 II. Các ví dụ ........................................................................................................83 Ví dụ 1: ................................................................................................................83 Ví dụ 2: ................................................................................................................83 III. Một số lưu ý .................................................................................................84 B/ Bài tập giải mẫu.............................................................................................84 Bài số 1: ...............................................................................................................84 Bài số 2: ...............................................................................................................84 Bài số 3: ...............................................................................................................86 C/ Bài tập tự giải ................................................................................................87 Bài tập 1: ..............................................................................................................87 5
  6. Bài tập 2: ..............................................................................................................88 Bài số 3 ................................................................................................................89 Bài số 4 ................................................................................................................89 Bài số 5 ................................................................................................................90 Bài số 6 ................................................................................................................90 Bài số 7 ................................................................................................................90 Bài số 8 ................................................................................................................90 Bài số 9 ................................................................................................................92 Bài số 10 ..............................................................................................................94 Bài số 11 ..............................................................................................................95 Bài số 12 ..............................................................................................................96 Bài số 13 ..............................................................................................................97 Bài số 14 ..............................................................................................................98 Tài liệu tham khảo .............................................................................................99 6
  7. LỜI MỞ ĐẦU Cơ sở dữ liệu là một lĩnh vực quan trọng của Công nghệ thông tin. Cùng với sự phát triển CNTT nước ta, việc sử dụng các kiến thức về cơ sở dữ liệu ngày càng cần thiết. Thật là thiệt thòi cho sinh viên và các bạn tự học, khi trong tủ sách nhà trường chỉ thấy đại đa số các sách bài tập về lập trình. Cuốn bài tập CSDL này là một tài liệu nhằm trợ giúp các bạn trẻ một phương thức tự kiểm tra kiến thức của mình về một lĩnh vực đang chiếm một vị trí quan trọng trong quá trình phát triển CNTT. Trong cuốn sách này, chúng tôi chọn lọc và đưa ra các bài tập với các nội dung được phân bố theo 5 chương: Chương 1. Đại số quan hệ; Chương 2. Các vấn đề về phụ thuộc hàm; Chương 3. Khóa của lược đồ quan hệ; Chương 4: Các vấn đề về chuẩn hóa lược đồ quan hệ; Chương 5: Ngôn ngữ SQL. Mỗi chương được trình bày thành 3 phần chính: Phần thứ nhất: Tóm tắt lý thuyết. Phần thứ hai: Bài tập giải mẫu. Phần thứ ba: Bài tập tự giải. Mục tiêu cuối cùng của cuốn sách này là cung cấp toàn bộ những kiến thức cơ bản về lý thuyết thiết kế CSDL và các ngôn ngữ thao tác CSDL. Phần cuối của mỗi chương là các bài tập tự giải giúp cho người học hiểu sâu và kỹ hơn các kiến thức đã học. Để đạt được điều mong muốn bạn đừng bỏ qua bài tập nào. Chúng tôi tin rằng bạn sẽ hoàn toàn làm chủ về các vấn đề có liên quan đến CSDL. Trong quá trình viết cuốn sách này, chắc chắn không tránh khỏi thiếu sót, mong các bạn hãy đóng góp ý kiến cho chúng tôi. Xin trân thành cảm ơn! 7
  8. CHƯƠNG 1: MÔ HÌNH QUAN HỆ - CHUYỂN MÔ HÌNH E-R SANG MÔ HÌNH QUAN HỆ A/NHẮC LẠI LÝ THUYẾT I. CÁC KHÁI NIỆM CỦA MÔ HÌNH QUAN HỆ 1. Quan hệ Một quan hệ (hoặc trạng thái quan hệ) r của lược đồ quan hệ R (A1, A2, ..., An) được kí hiệu là r (R), là tập hợp các n-bộ r= { t1, t2, ..., tn}. Mỗi n - bộ t là một danh sách có thứ tự của n giá trị, t = < v1, v2, ..., vn >, trong đó mỗi vi, 1
  9. Gồm nhiều lược đồ quan hệ. Ví dụ lược đồ CSDL NHANVIEN (MANV, TENNV, HONV, NS, DIACHI, GT, LUONG, PHG) PHONGBAN (MAPHG, TENPHG, TRPHG, NG_NHANCHUC) DIADIEM_PHG (MAPHG, DIADIEM) THANNHAN (MANV, TENTN, GT, NS, QUANHE) DEAN (TENDA, MADA, DIADIEM, PHG) 3. Bộ - Là các dòng của quan hệ (trừ dòng tiêu đề- tên của các thuộc tính). - Thể hiện dữ liệu cụ thể của các thuộc tính trong quan hệ. Dữ liệu cụ thể của thuộc tính 4. Miền giá trị Là tập các giá trị nguyên tố gắn liền với một thuộc tính. Kiểu dữ liệu cơ sở: - Chuỗi ký tự(string) - Số(integer) Các kiểu dữ liệu phức tạp: - Tập hợp(set) - Danh sách(list) - Mảng(array) - Bản ghi(record) 5. Định nghĩa hình thức - Lược đồ quan hệ Cho A1, A2, ..., An là các thuộc tính Có các miền giá trị D1, D2,..., Dn tương ứng 9
  10. Ký hiệu R (A1: D1, A2: D2, ..., An: Dn) là một lược đồ quan hệ Bậc của lược đồ quan hệ là số lượng thuộc tính trong lược đồ: NHANVIEN (MANV: integer, TENNV: string, HONV: string, NGSINH: date, DCHI: string, LUONG: integer, GT: string, DONVI: integer) NHANVIEN là một lược đồ bậc 8 mô tả đối tượng nhân viên MANV là một thuộc tính có miền giá trị là số nguyên TENNV là một thuộc tính có miền giá trị là chuỗi ký tự - Quan hệ (hay thể hiện quan hệ) Một quan hệ r của lược đồ quan hệ R (A1, A2,..., An), ký hiệu r(R), là một tập các bộ r = {t1, t2,...,tk} Trong đó mỗi ti là một danh sách có thứ tự của n giá trị ti= Mỗi vi là một phần tử của miền giá trị DOM (Ai) hoặc giá trị rỗng. TENNV HONV NGAYSINH DCHI PHAI LUON G Tùng Nguyễn 12/08/1955 638 NVC Q5 40000 Nam Hằng 07/19/1985 332 NTH Q1 Nữ 25000 Bùi Như Lê 06/20/1988 291 HVH Nữ 43000 QPN Hùng Nguyễn 09/15/1963 Null Nam 38000 Thể hiện mô hình quan hệ Mô hình quan hệ Các quan hệ Sự kiện về Sự kiện về thực liên kết thể Tóm tắt các ký hiệu - Lược đồ quan hệ R (A1, A2,..., An) 10
  11. - Tập thuộc tính của R R+ - Quan hệ (hay thể hiện quan hệ) R, S, P, Q - Bộ t, u, v - Miền giá trị của thuộc tính A DOM (A) hay MGT (A) - Giá trị của thuộc tính A tại bộ thứ t t.A hay t[A] II. RÀNG BUỘC TOÀN VẸN - RBTV (Integrity Constraint): Là những quy tắc, điều kiện, ràng buộc cần được thỏa mãn trong một thể hiện của CSDL quan hệ. - RBTV được mô tả khi định nghĩa lược đồ quan hệ. - RBTV được kiểm tra khi các quan hệ có thay đổi. 1. Siêu khóa Các bộ trong quan hệ phải khác nhau từng đôi một. Siêu khóa (Super Key) - Gọi SK là một tập con khác rỗng các thuộc tính của R - SK là siêu khóa khi ∀r, ∀t1, t2 Є r, t1 ≠ t2 => t1[SK] ≠ t2[SK] - Siêu khóa là tập các thuộc tính dùng để xác định tính duy nhất của mỗi bộ trong quan hệ. - Mọi lược đồ quan hệ có tối thiểu một siêu khóa. 2. Khóa Định nghĩa: - Gọi K là một tập con khác rỗng các thuộc tính của R - K là khóa nếu thỏa mãn đồng thời 2 điều kiện K là một siêu khóa của R ∀ K’ là tập con của K, K’ ≠ K, K’ không phải là siêu khóa của R Nhận xét: - Giá trị của khóa dùng để nhận biết một bộ trong quan hệ. - Khóa là một đặc trưng của lược đồ quan hệ, không phụ thuộc vào thể hiện quan hệ. - Khóa được xây dựng dựa vào ý nghĩa của một số thuộc tính trong quan hệ. 11
  12. - Lược đồ quan hệ có thể có nhiều khóa 3. Khóa chính Xét quan hệ: NHANVIEN (MAVN, TENNV, HONV, NS, DCHI, GT, LUONG, PHG) Có 2 khóa: MANV HONV, TENNV, NS Khi cài đặt quan hệ thành bảng (table) chọn một khóa làm cơ sở để nhận biết các bộ: - Khóa có ít thuộc tính hơn - Khóa được chọn làm khóa chính (PK_primary key) - Các thuộc tính khóa chính phải có giá trị khác null. - Các thuộc tính khóa chính thường được gạch dưới. NHANVIEN (MANV, TENNV, HONV, NS, DCHI, GT, LUONG, PHG) 4. Tham chiếu - Một bộ trong quan hệ R, tại thuộc tính A nếu nhận một giá trị từ một thuộc tính B của quan hệ S, ta gọi R tham chiếu S. - Bộ được tham chiếu phải tồn tại trước. S TENPHG MAPHG Nghiên cứu 5 Điều hành 4 Quản lý 1 R PHG TÊNNV HONV NGAYSINH DCHI LUONG 5 Tùng Nguyễn 12/08/1955 638 NVC Q5 40000 4 Hằng Bùi 07/19/1985 332 NTH Q1 25000 4 Như Lê 06/20/1988 291 HTV Q6 43000 5 Hùng Nguyễn 09/15/1963 Null 38000 5. Khóa ngoại Xét hai lược đồ R và S - Gọi FK là tập thuộc tính khác rỗng của R - FK là khóa ngoại (Foreign Key) của R khi 12
  13. - Các thuộc tính trong FK phải có cùng miền giá trị với các thuộc tính khóa chỉnh của S - Giá trị FK của một bộ t1 Є R + Hoặc bằng giá trị tại khóa chính của một bộ t2 Є R + Hoặc bằng giá trị rỗng Ví dụ : Quan hệ tham chiếu: NHANVIEN (MANV, TENNV, HONV, NS, DCHI, GT, LUONG, PHG) PHONGBAN (TENPHG, MAPHG) Khóa ngoại Quan hệ bị Khóa chính tham chiếu Nhận xét: - Trong một lược đồ quan hệ, một thuộc tính vừa có thể tham gia vào khóa chính, vừa tham gia vào khóa ngoại. - Khóa ngoại có thể tham chiếu đến khóa chính trên cùng một lược đồ quan hệ. - Có thể có nhiều khóa ngoại tham chiếu đến cùng một khóa chính. Ràng buộc tham chiếu = ràng buộc khóa ngoại. - Khóa ngoại bao gồm nhiều thuộc tính, nó không phải là khóa chính của bộ này nhưng là khóa chính của bộ kia. 13
  14. 6. Biểu diễn ràng buộc tham chiếu NHANVIEN HONV TENLOT TENNV MANV NS DCHI GT LUONG MA_NQL PHG PHONGBAN TENPHG MAPHG TRPHG NG_NHANCHUC DIADIEM_PHG MAPHG DIADIEM DEAN TENDA SODA DIADIEM_DEAN PHG PHANCONG MANV MADA THOIGIAN THANNHAN MANV TENTN NS GT QUANHE III. CÁC ĐẶC TRƯNG CỦA QUAN HỆ - Thứ tự các bộ trong quan hệ là không quan trọng. - Thứ tự giữa các giá trị trong một bộ là quan trọng. - Mỗi giá trị trong một bộ: + Hoặc là một giá trị nguyên tố. + Hoặc là một giá trị rỗng (null). - Không có bộ nào trùng nhau. IV. CHUYỂN LƯỢC ĐỒ E-R SANG LƯỢC ĐỒ QUAN HỆ Các quy tắc chuyển đổi 1. Tập thực thể 14
  15. Các tập thực thể (trừ tập thực thể yếu) chuyển thành các quan hệ có cùng tên và tập thuộc tính. 2. Mối quan hệ a.Một –Một Hoặc thêm vào quan hệ này thuộc tính khóa của quan hệ kia hoặc thêm thuộc tính khóa vào cả hai quan hệ b.Một – Nhiều Thêm vào quan hệ một thuộc tính khóa của quan hệ nhiều. c.Nhiều – Nhiều Tạo ra một quan hệ mới có: - Tên quan hệ là tên của mối quan hệ. - Thuộc tính là những thuộc tính khóa của các tập thực thể liên quan. 3. Thực thể yếu Chuyển thành một quan hệ có: - Cùng tên với thực thể yếu. - Thêm vào thuộc tính khóa của quan hệ liên quan. 4. Thuộc tính đa trị Chuyển thành một quan hệ: - Có cùng tên với thuộc tính đa trị. - Thuộc tính khóa của quan hệ này là khóa ngoại của quan hệ chứa thuộc tính đa trị. 5. Liên kết đa ngôi (n>2) Chuyển thành một quan hệ: - Có cùng tên với tên mối liên kết đa ngôi. - Khóa chính là tổ hợp các khóa của tập các thực thể tham gia liên kết. Tổng kết: E -R Mô hình quan hệ - Loại thực thể - Quan hệ thực thể - Quan hệ 1 ÷1, 1÷N - Khóa ngoài - Quan hệ N÷M - Quan hệ với 2 khóa ngoài - Quan hệ đa ngôi - Quan hệ với n khóa ngoài - Thuộc tính - Thuộc tính 15
  16. - Thuộc tính phức hợp - Tập các thuộc tính đơn - Thuộc tính đa trị - Quan hệ với khóa ngoài - Tập các giá trị - Miền giá trị - Thuộc tính khóa - Khóa chính (khóa dự tuyển) B/ BÀI TẬP GIẢI MẪU Bài số1: Chuyển đổi một mô hình công ty sang ER Giả sử chúng ta có kiểu liên kết ĐẠILÝ VẬTTƯ DỰÁN. Đây là một kiểu liên kết cấp ba. Giả sử rằng kiểu thực thể ĐẠILÝ có thuộc tính khoá là MãsốĐL, kiểu thực thể VẬTTƯ có thuộc tính khoá là MãsốVT, kiểu thực thể DỰÁN có thuộc tính khoá là MãsốDA còn kiểu liên kết có thuộc tính là Sốlượng để lưu số lượng vật tư mà một đai lý cung cấp cho môt dự án. Khi đó kiểu liên kết sẽ được chuyển thành một quan hệ có tên là CUNGCẤP với các thuộc tính MãsốĐL, MãsốVT , MãsốDA, Sốlượng và khoá chính gồm ba thuộc tính MãsốĐL, MãsốVT , MãsốDA. Trong những bài trước chúng ta đã phân tích và thiết kế mô hình ER cho bài toán CÔNGTY. Giả sử ta có kiểu thực thể ĐƠNVỊ với các thuộc tính là MãsốĐV, TênĐV, ĐịađiểmĐV trong đó các thuộc tính khoá là MãsốĐV, TênĐV (do mỗi đơn vị có một tên duy nhất), và ĐịađiểmĐV là một thuộc tính đa trị (do mỗi đơn vị có nhiều địa điểm). Khi đó kiểu thực thể ĐƠNVỊ được chuyển thành quan hệ ĐƠNVI với các thuộc tính MãsốĐV, TênĐV. Khoá chính của quan hệ là MãsốĐV (chọn một trong hai thuộc tính khoá của kiểu thực thể). Giả sử ta có kiểu liên kết NHÂNVIÊN CON trong đó NHÂNVIÊN là kiểu thực thể chủ với các thuộc tính MãsốNV, Họđệm, Tên, Ngàysinh, Giớitính. Thuộc tính khoá của NHÂNVIÊN là MãsốNV. CON là kiểu thực thể phụ thuộc (vào thực thể NHÂNVIÊN) với các thuộc tính là Họtêncon, Ngàysinh, Giớitính. Kiểu thực thể này không có thuộc tính khoá. Khi đó kiểu thực thể NHÂNVIÊN 16
  17. được chuyển thành quan hệ NHÂNVIÊN với các thuộc tính như trên. Kiểu thực thể CON được chuyển thành quan hệ CON với các thuộc tính MãsốNV, Họtêncon, Ngàysinh, Giớitính. Quan hệ này có khoá ngoài là MãsốNV, khoá chính là Mã sốNV, Họtêncon Giả sử ta có kiểu liên kết NHÂNVIÊN ĐƠNVỊ, với các thuộc tính của các kiểu thực thể giống như ở trên. Kiểu liên kết là một kiểu liên kết 1:1, đồng thời sự tham gia của NHÂNVIÊN vào kiểu liên kết là bộ phận (không phải nhân viên nào cũng quản lý đơn vị), sự tham gia của ĐƠNVỊ là đầy đủ (một đơn vị luôn luôn phải có một người quản lý). Khi đó, kiểu thực thể NHÂNVIÊN sẽ được chuyển thành quan hệ NHÂNVIÊN với các thuộc tính của nó, còn kiểu thực thể ĐƠNVỊ sẽ được chuyển thành quan hệ ĐƠNVỊ với các thuộc tính của kiểu thực thể ĐƠNVỊ cộng thêm với thuộc tính MãsốNV và thuộc tính của kiểu liên kết , nếu có. Thuộc tính MãsốNV sẽ là khoá ngoài cho quan hệ ĐƠNVỊ. Để làm rõ vai trò người quản lý, khi chuyển sang quan hệ ĐƠNVỊ, người ta đổi tên thuộc tính MãsốNV thành MãsốNQL (Mã số người quản lý). Ngoài ra, kiểu liên kết có một thuộc tính là Ngàybắtđầu, thuộc tính này cũng được đưa vào quan hệ ĐƠNVỊ Giả sử ta có kiểu liên kết NHÂNVIÊN ĐƠNVỊ, trong đó các kiểu thực thể NHÂNVIÊN, ĐƠNVỊ là các kiểu thực thể ở trên. Kiểu liên kết là kiểu liên kết N:1 (một nhân viên chỉ làm việc cho một đơn vị và mỗi đơn vị có nhiều nhân viên làm việc cho). Khi đó, Kiểu thực thể ĐƠNVỊ sẽ được chuyển thành quan hệ ĐƠNVỊ với các thuộc tính của kiểu thực thể ĐƠNVỊ còn kiểu thực thể NHÂNVIÊN sẽ được chuyển thành quan hệ NHÂNVIÊN với các thuộc tính của kiểu thực thể NHÂNVIÊN cộng thêm với thuộc tính MãsốĐV (là khoá chính của quan hệ ĐƠNVỊ). Thuộc tính MãsốĐV sẽ là thuộc tính khoá ngoài của quan hệ NHÂNVIÊN. Giả sử ta có kiểu liên kết NHÂNVIÊN DỰÁN. Kiểu thực thể NHÂNVIÊN có các thuộc tính như trên với thuộc tính khoá là MãsốNV. Kiểu thực 17
  18. thể DỰÁN có các thuộc tính là MãsốDA, TênDA, ĐịađiểmDA trong đó thuộc tính khoá là MãsốDA. Kiểu liên kết < làm việc với> là một kiểu liên kết N:M (một nhân viên có thể làm việc với nhiều dự án và mỗi dự án có nhiều nhân viên làm việc với). Kiểu liên kết này có một thuộc tính là Sốgiờ để lưu số giờ mà mỗi nhân viên làm việc cho một dự án. Khi đó kiểu liên kết sẽ được chuyển thành một quan hệ có tên là NHÂNVIÊN_DỰ ÁN với các thuộc tính MãsốNV, MãsốDA, Sốgiờ trong đó hai thuộc tính MãsốNV, MãsốDA tạo thành khoá chính (phức hợp) cho quan hệ. Xét kiểu thực thể ĐƠNVỊ ở trên. Thuộc tính ĐịađiểmĐV là một thuộc tính đa trị. Khi chuyển thành mô hình quan hệ nó sẽ được chuyển thành một quan hệ có khoá chính là MãsốĐV, Địa điểm và có thể có thêm một số thuộc tính khác lưu thông tin về địa điểm. Giả sử chúng ta có kiểu liên kết ĐẠILÝ VẬTTƯ DỰÁN. Đây là một kiểu liên kết cấp ba. Giả sử rằng kiểu thực thể ĐẠILÝ có thuộc tính khoá là MãsốĐL, kiểu thực thể VẬTTƯ có thuộc tính khoá là MãsốVT, kiểu thực thể DỰÁN có thuộc tính khoá là MãsốDA còn kiểu liên kết có thuộc tính là Sốlượng để lưu số lượng vật tư mà một đai lý cung cấp cho môt dự án. Khi đó kiểu liên kết sẽ được chuyển thành một quan hệ có tên là CUNGCẤP với các thuộc tính MãsốĐL, MãsốVT , MãsốDA, Sốlượng và khoá chính gồm ba thuộc tính MãsốĐL, MãsốVT , MãsốDA. Trong những bài trước chúng ta đã phân tích và thiết kế mô hình ER cho bài toán CÔNGT. Áp dụng các bước của thuật toán ở trên, chúng ta có mô hình quan hệ cho bài toán CÔNGTY như sau: NHÂNVIÊN (Họđệm, Tên, MãsốNV, Ngàysinh, Địachỉ, Giớitính, Lương, MãsôNGS, MãsốĐV) ĐƠNVỊ (TênĐV, MãsốĐV, MãsốNQL, Ngàybắtđầu) ĐƠNVỊ_ĐỊAĐIỂM (MãsốĐV, ĐịađiểmĐV) 18
  19. DỰÁN (TênDA, MãsốDA, ĐịađiểmDA, MãsốĐV) NHÂNVIÊN_DỰÁN (MãsốNV, MãsốDA, Sốgiờ) PHỤTHUỘC (MãsốNV, Têncon, Giớitính, Ngàysinh) Dưới đây là mô hình quan hệ thể hiện liên kết giữa các quan hệ trên: 19
  20. C/ BÀI TẬP TỰ GIẢI Bài số1 Chuyển đổi từ mô hình dữ liệu mô hình dữ liệu quan hệ sang ER DOCGIA (ma_docgia, ho, tenlot, ten, hinh). THEODOCGIA (ma_docg ia, ngaylapthe, ngayhethan) NGUOILON (ma_docgia, sonha, duong, quan, dienthoai, ngaysinh) TREEM (ma_docgia, ma_docgia_nguoilon, ngaysinh) TUSACH (ma_tuasach, tuasach, tacgia, tomtat) DAUSACH (isbn, ma_tuasach, ngonngu, bia, trangthai) CUONSACH (ma_cuonsach, isbn, tinhtrang) DANGKI (isbn, ma_docgia, ngay_dk, ghichu) PHIEUMUON (isbn, ma_cuonsach, ma_docgia , ngaymuon , ngaytra) PHIEUTRA (isbn, ma_cuonsach, ma_docgia , ngaymuon, ngaytrathatsu, tienphat) Bài số 2 Chuyển đổi từ mô hình dữ liệu mô hình dữ liệu quan hệ sang ER KHACH_HANG (SHKH, HOTEN, LOAI) RUOU_VANG (SHRV, VUNGNHO, NAMSX, DORUOU) NHA_SX (SHNSX, HOTEN, THANHPHO) SAN_PHAM (SHRV, SHNSX) (SHKH: số hiệu khách hàng SHRV: số hiệu rượu vang SHNSX: số hiệu nhà sản xuất ) Bài số 3 Vẽ lược đồ quản lý đề án công ty: CSDL đề án công ty theo dõi các thông tin liên quan đến nhân viên, phòng ban và đề án - Cty có nhiều phòng ban, mỗi phòng ban có tên duy nhất, mã phòng duy nhất, một trưởng phòng và ngày nhận chức. Mỗi phòng ban có thể ở nhiều địa điểm khác nhau. - Đề án có tên duy nhất, mã duy nhất, do 1 một phòng ban chủ trì và được triển khai ở 1 địa điểm. 20
nguon tai.lieu . vn