KA 3 · Bài 4

Data Modeling & Design

Data Modeling & Design là knowledge area thứ ba của DAMA-DMBOK2 — quá trình khám phá, phân tích, mô tả và trực quan hoá yêu cầu dữ liệu dưới dạng mô hình chính xác (data model). Bài này đi qua ba cấp mô hình (Conceptual/Logical/Physical), sáu scheme mô hình (Relational, Dimensional, Object-Oriented, Fact-based, Time-based, NoSQL), normalization & denormalization, các notation, quy trình modeling và quản lý phiên bản mô hình.

1 · Định nghĩa & Mục tiêu
Data model là gì và vì sao cần

Data Modeling là quá trình khám phá (discovering), phân tích (analyzing), phạm vi hoá (scoping) và mô tả (representing) các yêu cầu dữ liệu trong một dạng chính xác gọi là data model. Data model là tập hợp có tổ chức các ký hiệu văn bản & ký hiệu đồ hoạ (text + symbols) mô tả dữ liệu và cách dữ liệu được tổ chức để giao tiếp giữa các bên (nghiệp vụ, kỹ thuật).

DMBOK2 nhấn mạnh modeling không chỉ là bước kỹ thuật mà là công cụ giao tiếp & khám phá yêu cầu. Mô hình mô tả những gì quan trọng với tổ chức (things, concepts) và quan hệ giữa chúng.

Mục tiêu (Goals):

Một mô hình gồm các thành phần cơ bản (building blocks): Entity (thực thể — cái mà ta muốn lưu dữ liệu), Attribute (thuộc tính — đặc điểm của entity), Relationship (quan hệ giữa các entity), và Domain (miền giá trị hợp lệ của attribute).

2 · Business Drivers
Vì sao mô hình hoá dữ liệu quan trọng
Ghi nhớ: DMBOK2 coi data model vừa là deliverable (kết quả) vừa là process (công cụ khám phá). Giá trị lớn nhất thường đến từ quá trình đối thoại và làm rõ yêu cầu khi xây mô hình, không chỉ từ bản vẽ cuối cùng.
3 · Ba cấp mô hình
Conceptual → Logical → Physical

DMBOK2 phân biệt ba cấp độ (level of detail) của mô hình dữ liệu, đi từ trừu tượng tới cụ thể:

Tiêu chíConceptualLogicalPhysical
Mục đíchNắm bắt phạm vi & khái niệm nghiệp vụ cốt lõiChi tiết hoá yêu cầu dữ liệu, độc lập công nghệTriển khai trên một DBMS/nền tảng cụ thể
Đối tượngEntity nghiệp vụ, quan hệ ở mức caoEntity, attribute, PK/FK, quan hệ chuẩn hoáTable, column, data type, index, view, partition
Độc lập công nghệ?Có (hoàn toàn)Có (độc lập DBMS)Không (phụ thuộc nền tảng)
Khán giảBusiness, executivesBA, Data ModelerDBA, Developer
Ví dụ chi tiết"Khách hàng" đặt "Đơn hàng"Customer(CustomerID, Name...), Order(OrderID, CustomerID FK...)bảng CUSTOMER VARCHAR(100), index trên customer_id
Lưu ý: Cùng một tập yêu cầu có thể được thể hiện qua nhiều scheme khác nhau (relational, dimensional...) ở cả ba cấp. "Cấp" (level) trả lời câu hỏi chi tiết tới đâu, còn "scheme" trả lời câu hỏi tổ chức theo kiểu gì.
4 · Các scheme (loại) mô hình
6 kiểu mô hình dữ liệu theo DMBOK2

DMBOK2 liệt kê sáu scheme chính — mỗi kiểu phù hợp một mục đích và tuân theo tập quy tắc riêng:

SchemeĐặc điểmDùng khi
RelationalDữ liệu tổ chức thành bảng (relation) gồm hàng/cột; quan hệ qua khoá; hướng tới giảm dư thừa (normalization).Hệ thống giao dịch OLTP, dữ liệu có cấu trúc.
DimensionalTối ưu cho truy vấn phân tích: Fact (số đo) + Dimension (bối cảnh). Star / Snowflake schema.Data warehouse, BI, OLAP.
Object-OrientedMô hình hoá theo class/object, kế thừa, encapsulation; ánh xạ tốt với ngôn ngữ OO.Ứng dụng hướng đối tượng, ODBMS.
Fact-Based (Object-Role Modeling)Biểu diễn dữ liệu bằng các fact nguyên tử & role, không dùng attribute; gồm ORM, FCO-IM.Phân tích yêu cầu chi tiết, verbalization với người dùng.
Time-BasedXử lý dữ liệu thay đổi theo thời gian & lịch sử: Data Vault, Anchor Modeling, temporal/SCD.Kho dữ liệu cần theo dõi lịch sử, audit, temporal.
NoSQLMô hình cho CSDL phi quan hệ; schema linh hoạt, tối ưu scale ngang. Bốn dạng chính bên dưới.Big data, dữ liệu bán cấu trúc/phi cấu trúc, scale lớn.

Bốn dạng NoSQL:

DạngMô hình lưu trữVí dụ
DocumentLưu tài liệu (JSON/BSON/XML) tự mô tả, schema linh hoạt.MongoDB, Couchbase
Key-ValueCặp khoá–giá trị đơn giản, truy cập cực nhanh theo key.Redis, DynamoDB, Riak
Column-Family (Wide-Column)Lưu theo họ cột, tối ưu ghi/đọc lượng lớn, thưa (sparse).Cassandra, HBase
GraphNode + edge + property; tối ưu cho quan hệ nhiều bậc, traversal.Neo4j, Amazon Neptune
Ghi nhớ: Dimensional (Kimball) tối ưu đọc/phân tích; Relational (chuẩn hoá) tối ưu ghi/toàn vẹn giao dịch; Data Vault (time-based) tối ưu audit & lịch sử; NoSQL tối ưu scale & linh hoạt schema.
5 · Normalization & Denormalization
Chuẩn hoá dữ liệu quan hệ

Normalization (chuẩn hoá) là quá trình áp dụng quy tắc để tổ chức dữ liệu nhằm giảm dư thừa (redundancy) và tránh các bất thường khi thêm/sửa/xoá (update anomalies). Mỗi attribute phụ thuộc vào khoá — "the key, the whole key, and nothing but the key".

Dạng chuẩnQuy tắc
1NF (First Normal Form)Mỗi ô chứa một giá trị nguyên tử (atomic); không có nhóm lặp (repeating groups); có khoá chính xác định hàng.
2NF (Second Normal Form)Đạt 1NF và mọi attribute không khoá phụ thuộc toàn bộ khoá chính (loại bỏ partial dependency với khoá phức hợp).
3NF (Third Normal Form)Đạt 2NF và không có transitive dependency (attribute không khoá không phụ thuộc attribute không khoá khác).
BCNF (Boyce-Codd NF)Phiên bản chặt hơn 3NF: mọi determinant (vế trái của phụ thuộc hàm) phải là một candidate key.
4NF / 5NFXử lý multi-valued dependency (4NF) và join dependency (5NF) — hiếm dùng trong thực tế thường ngày.

Denormalization là việc chủ ý đưa dữ liệu dư thừa trở lại (gộp bảng, lặp cột) để tăng tốc truy vấn đọc — đánh đổi giữa hiệu năng và toàn vẹn/không gian lưu trữ. Rất phổ biến trong dimensional modeling và data warehouse.

Đánh đổi: Chuẩn hoá cao → toàn vẹn tốt, ít dư thừa, nhưng nhiều JOIN → chậm đọc. Denormalize → đọc nhanh nhưng rủi ro dữ liệu không nhất quán và tốn dung lượng. OLTP thiên về chuẩn hoá; OLAP/warehouse thiên về denormalize.
6 · Notations & ví dụ ERD
Các ký pháp mô hình hoá

DMBOK2 giới thiệu nhiều notation (ký pháp) để vẽ mô hình; chọn notation tuỳ scheme và công cụ:

NotationDùng choĐặc trưng
IE (Information Engineering) / Crow's FootRelational ERDKý hiệu "chân quạ" thể hiện cardinality (one/many, optional/mandatory). Phổ biến nhất.
IDEF1XRelational (chuẩn liên bang Mỹ)Phân biệt independent/dependent entity, identifying vs non-identifying relationship.
UML Class DiagramObject-OrientedClass, attribute, method, association, generalization/inheritance.
ORM / Fact-based notationFact-based (Object-Role Modeling)Object + role + fact type, verbalization thành câu tự nhiên.
Dimensional (Star schema)DimensionalFact ở trung tâm, dimension toả ra xung quanh như ngôi sao.

Ví dụ ERD (crow's foot) — mô tả bằng chữ: Một Khách hàng (CUSTOMER) có thể đặt nhiều Đơn hàng (ORDER); mỗi Đơn hàng thuộc đúng một Khách hàng. Mỗi Đơn hàng gồm nhiều dòng (ORDER_LINE); mỗi dòng tham chiếu một Sản phẩm (PRODUCT).

Quan hệ (crow's foot):
  CUSTOMER  ||──────o<  ORDER        (1 khách : 0..n đơn)
  ORDER     ||──────|<  ORDER_LINE   (1 đơn : 1..n dòng)
  PRODUCT   ||──────o<  ORDER_LINE   (1 sản phẩm : 0..n dòng)

CUSTOMER                 ORDER                    ORDER_LINE
 ─────────────           ─────────────            ───────────────
 PK customer_id          PK order_id             PK order_id  (FK)
    name                    order_date           PK line_no
    email                FK customer_id          FK product_id
    phone                   status                  quantity
                                                    unit_price

Ký hiệu:  ||  = one (mandatory)   o< = zero-or-many   |< = one-or-many

Ví dụ Star schema (dimensional):

        DIM_DATE            DIM_CUSTOMER
             \                 /
              \               /
            ┌───────────────────┐
            │   FACT_SALES(bảng fact ở trung tâm)
            │  date_key   (FK)  │
            │  cust_key   (FK)  │
            │  product_key(FK)  │
            │  amount (measure) │
            │  quantity(measure)│
            └───────────────────┘
              /               \
             /                 \
        DIM_PRODUCT          DIM_STORE
Mẹo đọc crow's foot: đầu "chân quạ" (nhánh chẻ ba) = "nhiều"; vòng tròn = "không" (optional/zero); vạch thẳng = "một" (mandatory/one).
7 · Quy trình modeling, quản lý & Metrics
Activities, versioning & đo lường

Quy trình modeling (Activities theo DMBOK2):

Data model management & versioning: mô hình là tài sản sống, cần được quản lý phiên bản như code. DMBOK2 khuyến nghị lưu mô hình trong repository, gắn version, ghi lại thay đổi (change log), và đồng bộ giữa mô hình logical/physical với database thực (drift detection). Naming standards nhất quán là điều kiện bắt buộc để tái sử dụng và tích hợp.

Metrics đo chất lượng mô hình (Data Model Scorecard® của Steve Hoberman gồm 10 tiêu chí):

Nhóm tiêu chíVí dụ
CorrectnessMô hình có phản ánh đúng yêu cầu nghiệp vụ không?
CompletenessĐủ entity/attribute/metadata cần thiết chưa?
Scheme & StructureĐúng cấu trúc (level of detail) và tuân thủ scheme đã chọn?
StandardsTuân thủ naming & notation standards?
Readability / DefinitionsDễ đọc; định nghĩa (definitions) rõ ràng, đầy đủ?
Data reuse & consistencyCó tái sử dụng cấu trúc chung, nhất quán với enterprise model?
8 · Vai trò, Best practices & Pitfalls
Data Modeler và các lưu ý

Vai trò Data Modeler: chuyên gia chịu trách nhiệm khám phá yêu cầu dữ liệu, xây và duy trì mô hình ở cả ba cấp, đảm bảo tuân thủ chuẩn và đồng bộ với enterprise data model. Phối hợp với Data Architect (định hướng), Business SME (yêu cầu), DBA (triển khai physical) và Data Steward (định nghĩa & quy tắc).

Vai tròTrách nhiệm
Data ModelerXây conceptual/logical/physical model; áp dụng normalization & chuẩn.
Data ArchitectCung cấp bối cảnh EDM & chuẩn kiến trúc (từ KA2).
DBAHiện thực physical model, tối ưu index/partition.
Business SME / StewardCung cấp yêu cầu, quy tắc nghiệp vụ, định nghĩa dữ liệu.

Best practices:

Pitfalls:

Kết nối KA khác: Data Modeling hiện thực hoá Enterprise Data Model từ KA2 (Data Architecture) và là đầu vào trực tiếp cho KA4 (Data Storage & Operations) — nơi physical model được triển khai và vận hành trên DBMS.
← Bài trước
KA2: Data Architecture