Your SlideShare is downloading. ×
Pttkhtttqlslide5
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Pttkhtttqlslide5

469
views

Published on

aaa

aaa


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
469
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Entity Relationship Diagram
    • DFD và Processing Logic chỉ ra làm thế nào, ở đâu và khi nào dữ liệu được xử lý, nhưng không chỉ ra định nghĩa, cấu trúc và các quan hệ của dữ liệu.
    • Entity Relationship Diagram (ERD) là lược đồ thể hiện cấu trúc trừu tượng hóa của dữ liệu trong tổ chức, dựa trên khái niệm thực thể (entity) và quan hệ (relationship) giữa các thực thể, để nhằm thể hiện nội dung, ý nghĩa của dữ liệu trong hệ thống.
  • 2. Thực thể (Entity)
    • Thực thể: là một tập hợp tất cả các đối tượng trong thế giới thực có chung một số đặc điểm hoặc tính chất nào đó.
      • Ví dụ các thực thể:
        • “ Nhân viên” (Ma so_NV, Ten_NV, Ngay sinh_NV, So_CMND,Hoc vi_NV, Bac luong_NV).
        • “ Sinh viên” (Ma so_SV, Ten_SV, He dao tao_SV, nien khoa_NV).
        • “ Môn học” (ten_MH, noi dung_MH, thoi luong_MH).
        • “ Thành phố ”(Ten_TP, quoc gia).
      • Một thực thể bao gồm nhiều thể hiện.
    • Thể hiện: là đối tượng cụ thể được mô tả trong thực thể.
      • Ví dụ :
        • Môn “ Anh văn ” là một thể hiện của thực thể “ Môn học ”.
        • TP.HCM, Hà Nội là các thể hiện của thực thể “ Thành phố ”.
  • 3. Thực thể (Entity)
    • Thuộc tính: là đặc điểm, tính chất của thực thể mà người ta muốn biết khi nghĩ về thực thể.
      • Ví dụ:
        • Các thuộc tính của thực thể “Sinh viên” là Ma so_SV, Ten_SV, He dao tao_SV, nien khoa_NV.
        • Các thuộc tính của thực thể “Nhân viên” là Ma so_NV, Ten_NV, Ngay sinh_NV, So_CMND,Hoc vi_NV, Bac luong_NV.
      • Miền giá trị của thuộc tính (MGT): là tập hợp các giá trị hợp lệ của thuộc tính đó. Ví dụ:
        • Ngày sinh_NV : Date.
        • MGT(Ngay sinh_NV) là tập hợp 01/01/1900 đến 01/01/1995.
  • 4. Thực thể (Entity)
    • Khóa: là 1 hoặc 1 bộ gồm nhiều thuộc tính của thực thể mà giá trị của nó được dùng để phân biệt các thể hiện của thực thể. Ví dụ:
      • Ma so_NV là 1 thuộc tính dùng để phân biệt các nhân viên (là các thể hiện) của thực thể NhânViên. Nếu biết Ma so_NV của 1 nhân viên, ta sẽ tìm được các thông tin khác về nhân viên đó dựa trên các thuộc tính còn lại của thực thể Nhân viên, như Ten_NV, Ngay sinh_NV, So_CMND,Hoc vi_NV, Bac luong_NV.
      • Giá trị của khóa không được rỗng, trùng nhau, hoặc thay đổi khi thể hiện tương ứng với khóa vẫn còn tồn tại trong thực thể.
  • 5. Các ký hiệu trong lược đồ ERD Ví dụ: một nhân viên có 1 mã nhân viên dùng để phân biệt. Cơ quan chỉ quan tâm quản lý tên nhân viên, địa chỉ nhà riêng, và các kỹ năng của từng nhân viên. Thực thể nhân viên được diển tả như sau: Nhân viên Emp_ID Emp_Name Emp_Adress Emp_Skill Entity Attribute Key Multivalue attribute Emp_ID EMPLOYEE Emp_Name Emp_Address Emp_Skill
  • 6. Thuộc tính đa trị
    • là một thuộc tính có nhiều giá trị được sử dụng đồng thời để mô tả cho một thể hiện của thực thể.
    • Ví dụ: thuộc tính “Emp_Skill” trong thực thể Nhân viên gồm Emp_ID, Emp_Name, Emp_Skill: Một nhân viên có thể có nhiều kỹ năng, khi đó EMP_skill có nhiều giá trị khác nhau
      • EMP_ID EMP_Name EMP_Skill
      • 0210-67 Susan Language
      • 0210-67 Susan Interpersonal
    Emp_ID EMPLOYEE Emp_Name Emp_Address Emp_Skills
  • 7. Quan hệ (Relationship)
    • Là mối liên kết giữa một hoặc nhiều thực thể, để chỉ ra sự liên quan về nội dung (và ý nghĩa) giữa các thể hiện trong quan hệ. Ví dụ:
      • “ Mỗi SINH VIÊN đăng ký nhiều MÔN HỌC”: Quan hệ giữa thực thể Sinh viên và thực thể Môn học là việc đăng ký môn học của sinh viên.
      • Nơi sinh là mối quan hệ giữa thực thể Nhân viên và Thành Phố.
    • Bản số của quan hệ (cardinality): là số lượng thể hiện của thực thể tối thiểu và tối đa tham gia vào mối quan hệ. Do đó chúng ta có trường hợp sau : [0,1];[0,n];[1,1],[1,n];[m,n],isa với m<=n.
  • 8. Cardinality Mỗi thể hiện của A có đúng 1 thể hiện tương ứng ở B theo quan hệ R1 (cardinality = [1,1]). Mỗi thể hiện của A chỉ có 1 thể hiện tương ứng ở B, hoặc không có thể hiện tương ứng theo quan hệ R2 (cardinality = [0,1]). Mỗi thể hiện của A có ít nhất là 1 và tối đa là N thể hiện tương ứng ở B theo quan hệ R3 (cardinality = [1,N]). Mỗi thể hiện của A có tối đa là N thể hiện tương ứng ở B, hoặc không có thể hiện tương ứng theo quan hệ R4 (cardinality = [0,N]). R1 B A R2 B A R3 B N A R4 B N A
  • 9. Quan hệ bộ đôi EMPLOYEE Has a NAME CARD One to One (1:1) “ Một nhân viên phải có (duy nhất) 1 bảng tên.” PRODUCT LINE Contains PRODUCT One to Many (1:N) “ Một dây chuyền sản phẩm phải chứa 1 hoặc nhiều sản phẩm. Một sản phẩm phải thuộc 1 dây chuyền sản xuất.” STUDENT Registers COURSE Many to Many (M:N) “ Một sinh viên phải đăng ký 1 hoặc nhiều môn học. Một môn học có thể có nhiều sinh viên đăng ký, hoặc không có sinh viên đăng ký”
  • 10. Quan hệ bộ đôi Nhân viên Nơi sinh Thành Phố One to One (1:1) “ Một nhân viên chỉ sinh ra (duy nhất) tại một thành phố.” Thành Phố Nơi sinh Nhân viên One to Many (0:N) “ Tại một thành phố có thể không có ai sinh ra cả và cũng có thể có n người sinh ra.” Nhân viên Hộ khẩu Thành Phố Many to Many (M:N) “ Một nhân viên có hộ khẩu tại một hoặc nhiều thành phố. Tại một thành phố có thể không có hoặc nhiều nhân viên có hộ khẩu.”
  • 11. Cách diễn đạt khác của Bản số Bản số (1,1): Một sinh viên học ít nhất là 1 lớp và nhiều nhất là 1 lớp. Bản số (1,n): Một lớp có ít nhất là 1 sinh viên và nhiều nhất là n sinh viên. Một người phải ở và chỉ ở trong một nhà, khi đó bản số của các tập thực thể NGƯỜI và NHÀ qua mối quan hệ Ở là (1,1)-------(1,n)
  • 12. Quan hệ bộ 3 VENDOR Sell CUSTOMER GOODS “ Một nhà cung cấp có thể bán nhiều mặt hàng cho nhiều khách hàng; khách hàng có thể mua hàng từ nhiều nhà cung cấp khác nhau ”
  • 13. Quan hệ bộ 3 sinh viên A thi một môn học B lần thứ mấy và được bao nhiêu điểm.
  • 14. Quan hệ đệ quy “ Một người chỉ được kết hôn với một người khác” “ Một nhân viên có duy nhất một thủ trưởng trực tiếp và người thủ trưởng này không có cấp trên, một nhân viên là thủ trưởng có tối đa n nhân viên quản lý”
    • Là mối quan hệ được định nghĩa trên một thực thể
    PERSON Is Married to One to One EMPLOYEE Manages One to Many
  • 15. Quan hệ đệ quy
  • 16. ISA Entity (thực thể cha-con)
    • Cho hai tập thực thể A và B. Ta nói A có mối quan hệ ISA với B nếu mỗi thực thể trong A cũng là một thực thể trong B (còn gọi là A là con của B).
    • Ký hiệu
  • 17. ISA Entity (thực thể cha-con)
    • Ví dụ: Tập thực thể NHÂNVIÊN có tập thực thể ĐẢNGVIÊN, BỘĐỘI là tập thực thể con.
    • Vậy: ĐẢNGVIÊN ISA NHÂNVIÊN
    • BỘĐỘI ISA NHÂNVIÊN
    • Kí hiệu:
  • 18. Cách thiết lập lược đồ ERD
    • Định nghĩa các thực thể , dựa trên vai trò, ý nghĩa của thực thể đối với hệ thống. Nên chọn danh từ để dùng làm tên cho thực thể, vd: MONHOC, SINHVIEN, KHOA,..
    • Định nghĩa các quan hệ giữa các thực thể . Tên của các quan hệ thường được diễn tả bằng động từ để chỉ các hành động, sự kiện liên kết các thể hiện trong các thực thể có quan hệ nhau.
    • Xác định các thuộc tính của thực thể và quan hệ . Thuộc tính của thực thể (hoặc quan hệ) là những đặc tính mà tất cả các thể hiện của thực thể (hoặc quan hệ) đều có. Thêm thuộc tính để tăng tính mô tả, hoặc để có thê dữ liệu phân biệt các thể hiện. Bỏ bớt thuộc tính nếu chúng dư thừa hoặc không liên quan đến vai trò, ý nghĩa của thực thể trong hệ thống.
    • Xác định cardinality cho mỗi quan hệ.
  • 19. Bài tập vẽ ERD
    • Mỗi bệnh nhân có một hồ sơ bệnh án, mỗi hồ sơ bệnh án chỉ thuộc về 1 bệnh nhân.
    • Mỗi nhân viên thuộc 1 phòng, một phòng có ít nhất 1 hay nhiều nhân viên. Không có nhân viên nào không thuộc phòng nào.
    • Một tác phẩm phải thuộc 1 thể loại. Một thể loại có nhiều tác phẩm.
    • Một nhân viên (có thể) tham gia 1 hoặc nhiều dự án. Một dự án có nhiều nhân viên tham gia.
    • Một giảng viên dạy nhiều môn học. Một môn học có thể có nhiều giảng viên dạy.
    • Mỗi sinh viên sau mỗi lần thi một môn học sẽ có một điểm xác định cho lần thi đó.
    • Trong siêu thị, các quầy hàng bán nhiều mặt hàng, mỗi mặt hàng có một gía niêm yết tại quầy hàng đó.
  • 20. Bài tập vẽ ERD Bệnh nhân Hồ sơ bệnh án Có (1,1) (1,1) Phòng Thuộc (1,1) (1,n) Tác phẩm Thể loại Thuộc (1,1) (1,n) Dự án Tham gia Nhân viên Nhân viên (1,n) (1,n) Gỉang viên Môn học Dạy (1,n) (1,n) Sinh viên Môn học Thi Điểm,Lần (1,1) (1,n)
  • 21. Bài tập vẽ ERD Bán Quầy hàng Mặt hàng Giá (1,1) (1,n) (1,1) Có (1,1)
  • 22. Bài tập vẽ ERD Hàng hóa được xuất cảng trong các container và mỗi container được định danh bởi số của container, đích đến và kích cở của nó. Đại lý vận chuyển (Shipping Agent) chịu trách nhiệm gom nhóm các container vào một lô hàng và cho lô hàng một số định danh và giá trị của lô. Các con tàu , xác định bởi số của con tàu và quốc gia đăng ký, thực hiện các chuyến hải trình , mỗi chuyến hải trình mang một số lô hàng đi đến đích của chúng. Mỗi chuyến hải trình được cho số hải trình và trọng tải. Hãy vẽ luợc đồ ERD chỉ ra tất cả các thực thể, thuộc tính, và quan hệ. Để vẽ các ERD, chúng ta cần xác định các thực thể trước, sau đó là quan hệ giữa các thực thể, và cuối cùng là các thuộc tính cho thực thể và quan hệ. Các từ gạch dưới là các thực thể, và các động từ in nghiêng là các quan hệ giữa các thực thể. Trong mô tả không nêu rõ cardinality (số quan hệ), do đó số quan hệ có thể được cho bằng cách suy diễn hợp lý.
  • 23. Bài tập vẽ ERD Xuất cảng Hàng hoá Shipping Agent Con tàu No_tau Country_tau Container No_Con Dest_Con Size_Con Lô hàng MS_lohang Value_lohang Chuyến hải trình Gom nhóm Mang Thực hiện (1,1) (1,n) (1,n) (1,n) (1,n) (1,n) (1,n) (1,n) (1,n) Chứa (1,n)
  • 24. Ví dụ về lược đồ ERD
  • 25. Thiết kế hệ thống Inputs Outputs Transform Mnagement Standards Information processor Computer Based Information System Information System Feedback loop Forms DBMS Reports
  • 26. Thiết kế forms/reports
    • Forms : khuông mẫu nhận dữ liệu vào hệ thống.
    • Reports : khuông mẫu thông tin cho người sử dụng.
    • Xác định thông tin nội bộ hoặc bên ngoài tổ chức
      • Mẫu biểu (forms/reports) phải phù hợp với phạm vi sử dụng (bên trong/bên ngoài tổ chức).
    • Tài liệu xoay vòng : Là tài liệu sử dụng cho cả nội bộ và bên ngoài, từ tổ chức ra khách hàng và quay về.
      • Phiếu bảo hành, thẻ tín dụng, hóa đơn định kỳ.
      • Barcode, vạch từ, vi mạch là phương tiện hổ trợ tự động hóa đọc hoặc ghi dữ liệu cho các loại tài liệu này.
    CBIS SOURCE Inputs SINK Outputs (Users) (Users) forms reports
  • 27. Tương tác trên form Customer Information Number 1273 Phone 19087541358 Name Contemporary Design 1 Hotdog – Size U 0.5 Item # Product U.Price 2.5 Total 5 Amount Prev Next First Last Search Add item Delete item Update Cancel New Order list Price 2.5 (23 MAY 1998)
  • 28. Tương tác trên form
    • Nội dung và thứ tự nhập liệu phải phù hợp với thông tin trên các loại tài liệu bằng giấy mà người sử dụng có.
    • Dữ liệu phải có khuông mẫu để kiểm tra khi nhập liệu:
      • Dữ liệu phải thuộc miền giá trị hợp lệ.
      • Phải bảo toàn các liên kết giữa các bảng.
    • Dữ liệu và các điều khiển nhập liệu phải nhất quán.
      • Mỗi ô nhập liệu (và điều khiển) trên form phải có tên gọi (nhãn, label) để phân biệt dữ liệu hoặc điều khiển khác nhau.
      • Nếu dữ liệu (hoặc điều khiển) xuất hiện trên nhiều form khác nhau thì tên gọi của nó vẫn không thay đổi.
      • Các điều khiển nhập liệu phải phù hợp với nội dung của dữ liệu và các quy tắc quản lý của tổ chức.
  • 29. Tương tác trên report Pine Valley Furniture Detail customer account information Page : 2 of 2 Today : 11-OCT-98 Customer number: 1273 Name: Contemporary Design DATE PURCHASE PAYMENT CURRENT BALANCE 21-JAN-98 (22,000.00) (22,000.00) 21-JAN-98 13,000.00 (9,000.00) 02-MAR-98 (16,000.00) (25,000.00) 02-MAR-98 15,500.00 (9,500.00) 23-MAY-98 5,000.00 (4,500.00) 12-JUN-98 (9,285.00) (13,785.00) 12-JUN-98 3,785.00 (10,000.00) 21-SEP-98 5,371.65 (4,628.35) YTD-SUMARY (47,285.00) 42,656.65 (4,628.35) High light Columns Navigation Subject Update Conclusion (support details)
  • 30. Thiết kế cơ sở dữ liệu
    • Chuyển đổi từ ERD sang các bảng quan hệ (table) và các quan hệ giữa các bảng (relationship) , để phù hợp với các hệ quản trị CSDL phổ biến hiện nay là loại Relational Database( RD ).
    • Thiết lập các cơ chế ràng buộc toàn vẹn dữ liệu để ngăn chặn các thao tác có thể gây sai sót trên CSDL
    • Chuẩn hóa các bảng quan hệ để bảo đãm toàn vẹn dữ liệu
    • Trộn các bảng quan hệ để tránh trùng lặp dữ liệu giữa các bảng.
    • Mã hóa hoặc nén dữ liệu lưu trữ , để giữ bí mật thông tin, tránh trùng lặp dữ liệu, hoặc giảm bớt không gian lưu trữ dữ liệu.
    • Tổ chức lưu trữ để thuận tiện truy xuất và sao lưu phục hồi khi có sự cố, hư hỏng trên CSDL
  • 31. Relation (bảng quan hệ)
    • Là một cấu trúc bảng mô tả cho 1 thực thể
      • Mỗi cột ứng với mỗi thuộc tính, gọi là Field (trường)
      • Mỗi hàng ứng với mỗi thể hiện, gọi là Record (mẫu tin)
      • Vd: EMPLOYEE2 ( Emp_ID , Name, Dept_Name, Salary, Course_Title , Date_Complete). Emp_ID , Course_Title là một khóa chính kết hợp từ 2 thuộc tính của bảng quan hệ.
  • 32. Relation (bảng quan hệ)
    • Không phải tất cả các bảng dữ liệu đều là quan hệ; nó phải thoả mãn các điều kiện sau:
      • Mỗi bảng có 1 tên duy nhất
      • Mỗi thuộc tính trong bảng có 1 tên duy nhất .
      • Mỗi dòng là duy nhất . Không thể có 2 dòng có tất cả các cột đều giống nhau.
      • Mỗi giá trị của thuộc tính là nguyên tố . Thuộc tính ‘composite’ là thuộc tính kết hợp nhiều thuộc tính. Vd: Địa_chỉ = Số_nhà + Đường + Phường + Quận + Tp
    • Các bảng quan hệ được tạo ra từ việc chuyển đổi lược đồ ERD sang bảng.
  • 33. Chuyển thực thể sang bảng
      • Quy tắc 1 : Mỗi tập thực thể trong mô hình quan niệm dữ liệu được chuyển thành một bảng quan hệ có :
        • Tên: là tên của tập thực thể.
        • Thuộc tính và khoá: thuộc tính và khóa là thuộc tính và khóa của tập thực thể.
        • Khoá ngoại: có thể có thêm.
  • 34. Thực thể sang bảng: 1.Single attribute Customer_ID Customer_Address Customer_Name Customer_ID Customer_Name Customer_Address CUSTOMER CUSTOMER
  • 35. Thực thể sang bảng: 2.Composite attribute Customer_ID Customer_Name CUSTOMER Street City State Zip Customer_Address Customer_ID Customer_Name Street CUSTOMER City State Zip
  • 36. Thực thể sang bảng: 3.Multivalue attribute Employee_ID Employee_Name Skills Employee_Address EMPLOYEE Employee_ID Employee_Name EMPLOYEE Employee_ID Employee_Skill EMPLOYEE_SKILL Khóa ngoại Employee_Address
  • 37. Thực thể sang bảng: 4.Weak-entity Emp_ID Dept_Name Dept_DOB Dept_Gender “ Weak entity” “ Strong entity” Emp_Name EMPLOYEE DEPENDENT Emp_ID Employee_Name EMPLOYEE Emp_ID Dept_Name Dept_DOB DEPENDENT Dept_Gender Khóa phụ Khóa ngoại
  • 38. Chuyển quan hệ 2 ngôi 1:N
    • Qui tắc 2: Tập thực thể tham gia vào mối quan hệ hai ngôi không có thuộc tính riêng, có quan hệ R[1,N] (mối quan hệ một - nhiều) thì quan hệ sinh ra bởi tập thực thể ở nhánh 1 sẽ nhận thuộc tính khóa của tập thực thể ở nhánh N làm khóa ngoại .
    Customer_ID Customer_Address Customer_Name CUSTOMER Submits Order_ID Order_Date ORDER 1 N
  • 39. Chuyển quan hệ 2 ngôi 1:N Customer_ID Customer_Name Customer_Address CUSTOMER Order_ID Customer_ID Order_Date ORDER Foreign key
  • 40. Chuyển quan hệ 2 ngôi 1:N
  • 41. Chuyển quan hệ 2 ngôi M:N
    • Qui tắc 3: Tập thực thể tham gia vào mối quan hệ hai ngôi có quan hệ R[M,N] thì bảng quan hệ mới sinh ra có:
      • Tên: là tên của mối quan hệ.
      • Khoá: là khóa của tất cả các tập thực thể tham gia vào mối quan hệ - có thể có khóa riêng của mối quan hệ - có thuộc tính là các thuộc tính riêng của nó (nếu có).
  • 42. Chuyển quan hệ 2 ngôi M:N Material_ID Standard_Cost Unit_Of_Measure RAW MATERIALS Supplies Vendor_ID Vendor_Name VENDOR 0,N 1,M Vendor_Address Unit_Price
  • 43. Chuyển quan hệ 2 ngôi M:N Material_ID Standard_Cost Unit_Of_Measure RAW MATERIALS Material_ID Vendor_ID Unit_Price QUOTE Vendor_ID Vendor_Name Vendor_Address VENDOR
  • 44. Chuyển tập thực thể con trong mối quan hệ ISA
    • Qui tắc 4: Tập thực thể con trong mối quan hệ ISA của mô hình thực thể mối quan hệ được chuyển thành một quan hệ: có tên là tên của tập thực thể con; có các thuộc tính là các thuộc tính của tập thực thể con; và có khóa là khóa của tập thực thể cha.
    • Ví dụ :
  • 45. Chuyển quan hệ 2 ngôi 1:1 Optional Mandatory Nurse_ID Date_Of_Birth Name NURSE In_Charge Center_Name Location CARE CENTER Date_Assigned
  • 46. Chuyển quan hệ 2 ngôi 1:1 Nurse_ID Name Date_Of_Birth NURSE Center_Name Location Nurse_In_Charge CARE CENTER Date_Assigned Foreign key Mandatory 1
  • 47. Chuyển thực thể quan hệ Customer_ID Customer_Name CUSTOMER Vendor_ID Address VENDOR Shipment_No Amount Date SHIIPMENT
  • 48. Chuyển thực thể quan hệ Customer_ID Customer_Name CUSTOMER Shipment_No Date SHIPMENT Vendor_ID Address VENDOR Amount Customer_ID Vendor_ID
  • 49. Ràng buộc toàn vẹn
    • Ràng buộc trên miền giá trị của mỗi field
      • Mỗi thuộc tính của thực thể được quy định một miền gía trị hợp lệ. Các giá trị nằm ngoài miền giá trị này là các giá trị vô nghĩa đối với thực thể, cần phải loại bỏ.Ví dụ: thuộc tính Nam/Nữ chỉ có 2 gía trị
    • Ràng buộc toàn vẹn thực thể (và bảo toàn các liên kết)
      • Không có khóa chính nào có thể rỗng – tất cả các khóa chính phải có chứa dữ liệu để phân biệt các dòng (mẫu tin) trong bảng
      • Bảo toàn liên kết khi thêm, xoá, sửa dữ liệu để không mất dữ liệu
    • Để tăng tính toàn vẹn dữ liệu, đồng thời các bảng quan hệ có cấu trúc tốt (chứa tối thiểu dữ liệu dư thừa + cấu trúc cho phép thiết lập các ràng buộc toàn vẹn thực thể), người ta cần phải chuẩn hóa các bảng quan hệ.
  • 50. Các bước chuẩn hóa bảng quan hệ Bảng có các thuộc tính đa trị Bỏ thuộc tính đa trị Bảng ở dạng chuẩn 1 (1 st normal form) Bảng ở dạng chuẩn 2 (2 nd normal form) Bảng ở dạng chuẩn 3 (3 rd normal form) Bỏ phụ thuộc hàm từng phần Bỏ phụ thuộc hàm Bắc cầu
  • 51. Chuẩn 1 (First Normal Form)
    • Bảng quan hệ dạng chuẩn 1 là bảng quan hệ không chứa thuộc tính đa trị (multivalued attribute).
    • Đặc điểm: có nhiều dữ liệu bị trùng lặp giữa các mẫu tin
    1 st -NF relation
  • 52. Chuẩn 2 (Second Normal Form)
    • Bảng dạng chuẩn 2 là bảng ở dạng chuẩn 1 và mọi thuộc tính không khoá phải là phụ thuộc hàm hoàn toàn vào khóa chính
      • Mỗi thuộc tính không khóa được xác định bởi toàn bộ khóa chính, không phải chỉ một phần của khóa chính
      • Không có sự phụ thuộc từng phần trên khóa chính
    DateCompleted phụ thuộc hàm hoàn toàn vào ( EmpID, CourseTitle ) Name, DeptName, Salary chỉ phụ thuộc vào ( Emp_ID ) EmpID CourseTitle Name DeptName Salary DateCompleted NOT 2 nd NF !!
  • 53. Biến đổi thành chuẩn 2 EmpID Name DeptName Salary (2 nd NF) EmpID CourseTitle DateCompleted (2nd NF) 2. Các thuộc tính phụ thuộc hoàn toàn vào khóa chính kết hợp với khóa chính để tạo thành 1 bảng chuẩn 2 1. Các thuộc tính chỉ phụ thuộc vào 1 phần khóa chính là EmpID kết hợp với EmpID để tạo thành 1 bảng chuẩn 2 3. Đặt quan hệ giữa 2 bảng mới
  • 54. Chuẩn 3 (Third Normal Form)
    • Bảng dạng chuẩn 3 là bảng dạng chuẩn 2 và không tồn tại thuộc tính không khoá phụ thuộc hàm bắt cầu vào khoá . Phụ thuộc hàm bắc cầu: một thuộc tính C phụ thuộc hàm vào thuộc tính B, thuộc tính B lại phụ thuộc hàm vào thuộc tính A, ký hiệu là A  B  C).
    Cust_ID  Salesperson  Region : phụ thuộc bắc cầu Cust_ID Name Salesperson Region
  • 55. Biến đổi thành dạng chuẩn 3 Cust_ID  Name, Salesperson Salesperson  Region SPERSON SALES1 (bảng không chứa thuộc tính phụ thuộc bắc cầu ‘Region’) (bảng chứa thuộc tính phụ thuộc bắc cầu ‘Region’ và khóa của nó) Cust_ID Name Salesperson Region Salesperson
  • 56. Trộn các bảng quan hệ
    • Sau khi thực hiện normalization, một số bảng quan hệ có thể dư thừa vì cùng mô tả cùng một hoặc một số thực thể tương tự nhau, có thể trộn (merge) thành 1 bảng
      • EMPLOYEE1( Emp_ID , Name , Address ,Phone)
      • EMPLOYEE2( Emp_ID , Name , Address , Jobcode, Number_of_years)
      • Sau khi trộn, ta được:
      • EMPLOYEE( Emp_ID , Name , Address , Phone, Jobcode, Number_of_years)
    • Việc trộn các bảng phải bảo toàn ý nghĩa của dữ liệu
      • Trường hợp đồng nghĩa
      • Trường hợp đồng âm, dị nghĩa
      • Có thể sinh ra phụ thuộc hàm bắc cầu, cần loại bỏ
  • 57. Trộn các bảng quan hệ
      • Ví dụ : 1.Đồng nghĩa
      • STUDENT1( Stu_ID , Name)
      • STUDENT2( Matriculation_number , Name,Address)
    • Nếu Stu_ID và Matriculation_number cùng được dùng để diễn tả cùng một nội dung là số an sinh xã hội (Social Security Number), hai bảng này có thể trộn lại và sử dụng khóa mới là SSN :
      • STUDENT ( SSN , Name, Address)
  • 58. Trộn các bảng quan hệ
      • Ví dụ : 2.Đồng âm, dị nghĩa
      • STUDENT1( Stu_ID , Name, Address )
      • “ Address”: địa chỉ của SV trong khuôn viên trường
      • STUDENT2( Stu_ID, Name, PhoneNumber, Address )
      • “ Address”: địa chỉ nhà riêng của SV
    • Vì Address ở 2 bảng mô tả cho 2 nội dung khác nhau, nên khi trộn 2 bảng, 2 thuộc tính này cần đặt lại 2 tên khác nhau để phân biệt:
      • STUDENT ( Stu_ID , Name, Campus_Address , Permanent_Address )
  • 59. Trộn các bảng quan hệ
      • Ví dụ: 3.Phụ thuộc hàm bắc cầu
      • STUDENT1 ( Stu_ID , Major) là bảng 3 rd NF
      • STUDENT2 ( Stu_ID, Advisor) là bảng 3 rd NF
    • Sau khi trộn 2 bảng, sẽ có bảng mới là
      • STUDENT ( Stu_ID , Major, Advisor)
    • Tuy nhiên, nếu Major  Advisor thì bảng trên không là bảng chuẩn 3 rd NF, cần phải bỏ phụ thuộc hàm bắc cầu một lần nữa để tạo ra 2 bảng:
      • STUDENT ( Stu_ID , Major )
      • MAJOR_ADVISOR ( Major , Advisor)
  • 60. Nén dữ liệu bằng Lookup Table Street Ref LOOKUP_STREET Plainfield Ave 1001 Cust_No Block_no Street BILLING_ADDRESS 1273 2226 Plainfield Ave 6390 2110 Plainfield Ave City_State NJ NJ Cust_No Block_no Ref 1273 2226 1001 6390 2110 1001 City_State NJ NJ BILLING_ADDRESS Oak 7024 Range: 0 .. 9999 40 bytes 4 bytes
  • 61. Bài tập
    • Giả sử ta có bảng quan hệ R( A, B , C, D, E) với khóa chính A,B và phụ thuộc hàm C  D và D  E.
    • Hãy chuyển quan hệ sang dạng chuẩn 3NF.
    • 2. Quan hệ MEETING có các thuộc tính và khóa như sau:
    • MEETING( CourseName , CourseTitle, Day , Time , BuildingName, Room#, Address). Giả sử có 2 phụ thuộc hàm trên quan hệ này:
      • Address phụ thuộc hàm vào BuildingName
      • CourseTitle phụ thuộc hàm vào CourseName
    • Hãy chuyển quan hệ sang dạng 3NF.
    • 3. Quan hệ BUILDING có các thuộc tính và khóa như sau:
    • BUILDING( Street , Street# , City , OwnerName, OwnerAddress, PropertyTax). Giả sử có 3 phụ thuộc hàm trên quan hệ này:
      • OwnerName phụ thuộc hàm vào street, street#, city
      • PropertyTax phụ thuộc hàm vào street, street#, city
      • OwnerAddress phụ thuộc hàm vào ownerName
    • Hãy chuyển quan hệ sang dạng 3NF.
  • 62. Bài tập
    • 4. Một hãng xe hơi có CSDL lưu các thông tin sau:
    • Thông tin vê nhà cung cấp (Suppliers)
    • Mỗi nhà cung cấp được hãng xe hơi gán một số định danh Supplier# để phân biệt nhau
    • Mỗi nhà cung cấp có tên (SupplierName), và thành phố (SupplierCity)
    • Mỗi nhà cung cấp cung cấp 1 hoặc nhiều phụ tùng cho xe
    • Thông tin vê phụ tùng xe (Parts)
    • Mỗi phụ tùng xe có một tên (PartName), số định danh (Part#) và giá (PartPrice)
    • Mỗi phụ tùng được cung cấp bởi 1 hay nhiều nhà cung cấp
    • Part# là số dùng để phân biệt các phụ tùng xe với nhau
    • Thông tin vê đợt cung cấp (Supply)
    • Mỗi đợt cung cấp có nhà cung cấp cung cấp một phụ tùng
    • Mỗi đợt cung cấp có số lượng(quantity), ngày (date), tên bộ phận (partName), thành phố của nhà cung cấp (SupplierCity), và mã vùng của nhà cung cấp (Supplier_Postal)
  • 63. Bài tập
    • Giả sử hãng đã biết được các quan hệ phụ thuộc như sau:
    • Số lượng trong mỗi đợt cung cấp hàng phụ thuộc hoàn toàn vào supplier#,part#,date
    • PartName được xác định bởi Part#
    • SupplierCity,SupplierPostal phụ thuộc vào Supplier#
    • Nếu biết SupplierPostal, ta sẽ biết được SupplierCity
    • a) Hãy vẽ lược đồ ERD cho CSDL.
    • b) Chuyển lược đồ ERD sang bảng quan hệ và chuẩn hóa thành dạng 3NF.
  • 64. Bài tập
    • Chuẩn hoá bảng 3NF:
      • Bảng R là bảng chuẩn 2 NF vì mọi thuộc tính không khoá phụ thuộc hoàn toàn vào khoá chính.
      • Loại bỏ thuộc tính bắc cầu  chuẩn 3NF
      • R1( A,B , C ) (C: khoá ngoại).
      • R2( C , D ) (D: khoá ngoại) và R3( D ,E).
    • Chuẩn hoá bảng 3NF:
      • Loại bỏ thuộc tính phụ thuộc hàm  chuẩn 2NF
        • MEETING( CourseName , Day , Time , BuildingName, Room#, Address).
        • COURSE( CourseName , CourseTitle).
      • Loại bỏ thuộc tính bắc cầu  chuẩn 3NF
        • MEETING( CourseName , Day , Time , BuildingName , Room#).
        • BUILDING( BuildingName , Address).
        • COURSE( CourseName , CourseTitle).
  • 65. Bài tập
    • Chuẩn hoá bảng 3NF:
      • Quan hệ BUILDING đã được chuẩn 2NF.
      • Loại thuộc tính bắc cầu  3NF
        • BUILDING( Street , Street# , City , OwnerName , PropertyTax).
        • OWNER( OwnerName , OwnerAddress).
  • 66. Bài tập Supply Quantity Date PartName SupplierCity Supplier_Postal (1,n) Suppliers Supplier# SupplierName SupplierCity Parts Part# PartName PartPrice (1,n) 4.1 Lượt đồ ERD (1,1) (1,1)
  • 67. Bài tập
    • 4.2 Chuyển lượt đồ ERD thành các bảng quan hệ:
    • Suppliers ( Supplier# , SupplierName, SupplierCity).
    • Parts ( Part# , PartName, PartPrice).
    • Supply ( Part# , Supplier# , Date , Quantity, PartName, SupplierCity,Supplier_Postal).
    • 4.3 Chuẩn hoá bảng 3NF:
    • Ta có Suppliers và Parts là các quan hệ chuẩn 3NF.
    • Chuyển quan hệ Supply sang 2NF:
    • Supply1 ( Part# , Supplier# , Date , Quantity).
    • Supply2 ( Supplier# , SupplierCity,Supplier_Postal).
    • Supply3( Part#, PartName).
      • Ta có Supply1 và Supply3 đã là chuẩn 3NF.
    • Chuyển quan hệ Supply2 sang 3NF:
      • Supply21 ( Supplier# , Supplier_Postal).
      • Supply22 ( Supplier_Postal , SupplierCity).