[BÀI ĐỌC THÊM - BỔ SUNG KIẾN THỨC]
Dịch từ bài báo cùng tên của Rajeev Kaula đăng vào January 1, 2007
nguyên văn: http://tdan.com/normalizing-with-entity-relationship-diagramming/4583
Người dịch: sonnt5@fpt.edu.vn
1. Giới Thiệu
Sơ đồ mối quan hệ thực thể (ERD) là một trong những kỹ thuật được sử dụng rộng rãi nhất cho mô hình hóa dữ liệu. Mô hình hóa dữ liệu là một thành phần thiết yếu của thiết kế và phát triển cơ sở dữ liệu. Nó cung cấp phương tiện để phân tích các yêu cầu nghiệp vụ để chuẩn hóa các từ vựng trong tổ chức, thực thi các quy tắc nghiệp vụ, và đảm bảo chất lượng dữ liệu. Do dữ liệu đã trở thành tài nguyên quan trọng của công ty (Adelman et al., 2005, Dyche, 2000, Liataud & Hammond, 2001), các mô hình dữ liệu tốt có thể đóng góp đáng kể cho thành công trong tương lai của tổ chức.
Mô hình hóa dữ liệu được thực hiện trong các giai đoạn ban đầu của quá trình phát triển cơ sở dữ liệu (còn gọi là chu kỳ của cơ sở dữ liệu) như trong Hình 1 (Mannino, 2006; Rob & Coronel, 2006). Trong quá trình này, hai giai đoạn đầu liên quan đến nội dung thông tin của cơ sở dữ liệu, trong khi hai giai đoạn cuối cùng liên quan đến việc triển khai cơ sở dữ liệu về một số DBMS thương mại.
Hình 1: Database Development Process
Trong giai đoạn xây dựng conceptual data , các yêu cầu về dữ liệu được thể hiện qua ERD. Giai đoạn conceptual data modelling nói chung là độc lập với một DBMS. Giai đoạn logical design biến đổi conceptual data model thành một định dạng dễ hiểu đối với DBMS. Giai đoạn này cũng có thể nâng cao hoặc tinh chỉnh mô hình dữ liệu (ERD) của giai đoạn trước để đảm bảo sử dụng hiệu quả cơ sở dữ liệu. Vì hầu hết các DBMS thương mại được dựa trên mô hình quan hệ, sản phẩm cuối cùng của giai đoạn này là relational model design.
Một trong những cách ERD được tăng cường trong giai đoạn logical design là thông qua quá trình normalization. Normalization là một trong những nguyên lý chính trong thiết kế mô hình quan hệ. Đó là quá trình loại bỏ sự dư thừa trong một bảng để bảng dễ dàng sửa đổi hơn (Bala & Martin, 1997; Codd, 1970, Date, 2003, Mannino, 2006, Rob & Coronel, 2006). Nó thường liên quan đến việc chia một bảng thực thể thành hai hay nhiều bảng và xác định các mối quan hệ giữa các bảng. Mục đích là để cô lập dữ liệu để bổ sung, xóa, và sửa đổi của một thuộc tính có thể được thực hiện trong một bảng và sau đó tuyên truyền thông qua phần còn lại của cơ sở dữ liệu thông qua các mối quan hệ được xác định.
Việc chuẩn hóa sử dụng sự liên kết giữa các thuộc tính trong một bảng để đạt được mục tiêu của nó. Vì ERD cũng sử dụng sự liên kết giữa các thuộc tính làm cơ sở để xác định cấu trúc của thực thể, nên có thể áp dụng nguyên tắc Normalization trong giai đoạn conceptual data modelling. Thực hiện Normalization trong quá trình phát triển ERD có thể cải thiện conceptual model và đẩy nhanh tiến độ thực hiện (implementation). Bài viết này vạch ra việc áp dụng các nguyên tắc của normalization đối với phát triển ERD trong giai đoạn conceptual modelling. Có nhiều tiêu chuẩn cho ERD. Trong bài báo này, ký hiệu chân của Crow được sử dụng.
ERD đã được nâng cấp , mở rộng và có nhiều biến thể, thường được gọi là mô hình EER (Lepre Entity Relationship - EER) (Lenzerini & Santucci, 1983, Lenzerini & Nobili, 1990, Thalheim, 1998, Balaban & Shoval, 1999, Balaban & Shoval, 2002) . Trong vài năm gần đây, Unified Modeling Language (UML) xuất hiện và trở thành tiêu chuẩn ngành công nghiệp defacto cho nhiều khía cạnh của mô hình đối tượng (Bock & Ryan, 1993; Booch, 1994, Fowler, 1997, Booch, Rumbaugh & Jacobson, 1999). Mô hình EER là một phần không thể tách rời của UML vì tất cả các cấu trúc của các lược đồ EER được bao gồm, ngoại trừ các loại thực thể yếu, để đại diện cho phần tĩnh của mô hình đối tượng. Tuy nhiên, ERD vẫn là phổ biến cho conceptual data modelling.
2. Áp dụng chuẩn hóa cho ERD
Mô hình hóa dữ liệu là một quá trình lặp. Nói chung một mô hình dữ liệu sơ bộ được xây dựng sau đó được tinh chế nhiều lần. Có nhiều hướng dẫn (quy tắc) để tinh chỉnh ERD. Một số quy tắc này như sau (Mannino, 2006):
Chuyển các thuộc tính thành các loại thực thể. Sự chuyển đổi này liên quan đến việc bổ sung một Entity Type và quan hệ 1-M (một-nhiều).
Chia các thuộc tính phức thành thành các thuộc tính nhỏ hơn. Thuộc tính phức hợp chứa nhiều loại dữ liệu.
Mở rộng các Entity Types thành hai Entity Types và một Relationship. Sự chuyển đổi này có thể hữu ích để ghi nhận mức độ chi tiết tốt hơn về một Entity.
Chuyển đổi một loại thực thể yếu thành một loại thực thể mạnh. Sự chuyển đổi này hữu ích nhất cho các loại thực thể kết hợp.
Thêm các chi tiết lịch sử vào mô hình dữ liệu. Chi tiết lịch sử có thể là cần thiết cho các yêu cầu về luật pháp cũng như các strategic reporting requirements. Sự chuyển đổi này có thể được áp dụng cho các thuộc tính và mối quan hệ.
Thêm cấu trúc kế thừa phân cấp generalization bằng cách chuyển các Entity Type sang cấu trúc phân cấp generalization
Áp dụng các nguyên tắc Normalization đối với việc phát triển ERD tăng cường các hướng dẫn này. Để hiểu ứng dụng này:
(i) mô tả các khái niệm phụ thuộc trong ERD được vạch ra,
(ii) tiếp theo là biểu diễn các Normal Form đối với sự phát triển của cấu trúc của entity type.
Hướng dẫn để xác định các phụ thuộc khác nhau được tránh trong bài viết này để tập trung nhiều hơn vào ứng dụng của chúng. Chỉ có bốn Normal Form đầu tiên và Boyce-Codd Normal Form được xem xét [Lưu Ý TÔI CHỈ DỊCH TỚI 3NF].
2.1 Representation of Dependencies
Functional dependency trong một Entity Type xảy ra nếu người ta quan sát sự liên quan giữa các Key và các thuộc tính khác như được phản ánh trong một entity instance. Mỗi entity instance đại diện cho một tập hợp các giá trị của các thuộc tính thường (ko phải là key). Vì vậy, một cấu trúc của entity instance cũng phản ánh một khái niệm của Functional Dependency. Ví dụ, thể loại sinh viên của Hình 2 có thể thể hiện SID phụ thuộc chức năng Tên, đường phố, thành phố, Zip.
Hình 2
Mỗi entity instance sẽ trình bày Functional Dependency giữa các thuộc tính như thể hiện trong hình 3
Hình 3