Danh mục mã (code list): cấu trúc một bộ dữ liệu tham chiếu
Ở phần trước, ta đã biết dữ liệu tham chiếu là các danh mục mã chuẩn dùng chung. Bây giờ hãy mở một danh mục ra xem bên trong nó có gì. Đơn vị cơ bản của RDM là bộ danh mục mã — tiếng Anh gọi là reference data set hoặc code list. Hiểu một bộ mã được cấu tạo thế nào là bước nền để sau này nói tới phân cấp, ánh xạ hay phiên bản. Trang này dành cho người mới: một bộ mã gồm những thành phần nào, nhiều bộ mã được tổ chức ra sao, và vì sao chuẩn hóa cấu trúc danh mục lại quan trọng đến vậy.
Một bộ danh mục mã gồm những gì
Phần tiêu đề “Một bộ danh mục mã gồm những gì”Cách dễ hình dung nhất: một bộ danh mục mã giống một cái bảng tra. Mỗi dòng là một mục trong danh mục, và các cột mô tả mục đó. Lấy ví dụ quen thuộc — bộ mã tỉnh/thành ở Việt Nam:
- Một dòng có mã là
79, mô tả là “TP. Hồ Chí Minh”. - Một dòng khác có mã là
01, mô tả là “Hà Nội”.
Từ đó rút ra các thành phần cơ bản mà gần như bộ mã nào cũng có:
- Mã (code). Đây là định danh ngắn gọn, duy nhất trong bộ — thứ mà máy tính và các hệ thống dùng để tham chiếu. Ví dụ
79,VND, hayDangGiao. Mã nên ổn định: một khi đã gán cho một ý nghĩa thì không nên đem dùng lại cho ý nghĩa khác. - Mô tả (description / label). Đây là tên dễ đọc cho con người ứng với mã đó:
79tới “TP. Hồ Chí Minh”,VNDtới “Đồng Việt Nam”. Mô tả thường có thể hiển thị bằng nhiều ngôn ngữ (tiếng Việt, tiếng Anh) trong khi mã giữ nguyên. - Thuộc tính bổ sung (attributes). Ngoài mã và mô tả, một mục có thể mang thêm vài cột thông tin. Ví dụ bộ mã tiền tệ có thể thêm thuộc tính “số chữ số thập phân”; bộ mã tỉnh có thể thêm “vùng kinh tế”. Đây là chỗ để danh mục giàu thông tin hơn mà không phá vỡ cặp mã–mô tả lõi.
- Trạng thái hiệu lực (validity / status). Mỗi mục thường có dấu hiệu cho biết nó còn dùng được hay đã ngừng: đang hoạt động, đã ngưng (deprecated), hoặc kèm mốc thời gian hiệu lực. Nhờ đó, khi một mã cũ không còn dùng cho dữ liệu mới nhưng vẫn cần để tra cứu dữ liệu cũ, hệ thống vẫn xử lý đúng. Đây là cầu nối sang khái niệm phiên bản và hiệu lực theo thời gian.
Vậy có thể tóm gọn: một bộ danh mục mã = tập các mục, mỗi mục gồm một mã + một mô tả + (tùy chọn) thuộc tính bổ sung + trạng thái hiệu lực.
Tổ chức nhiều bộ mã
Phần tiêu đề “Tổ chức nhiều bộ mã”Một doanh nghiệp không chỉ có một danh mục. Sẽ có rất nhiều bộ mã cùng tồn tại: bộ mã tỉnh, bộ mã ngành nghề, bộ mã tiền tệ, bộ mã trạng thái đơn hàng, bộ mã loại khách hàng… Mỗi bộ là một danh mục độc lập, có ranh giới rõ ràng, phục vụ một mục đích riêng.
Trong một nền tảng RDM, nhiều bộ mã thường được sắp xếp gọn gàng để dễ tìm và dễ quản lý:
- Mỗi bộ mã có tên và phạm vi rõ ràng, để không lẫn lộn “đây là danh mục tỉnh” với “đây là danh mục vùng”.
- Mỗi bộ có người sở hữu (chủ danh mục / steward) riêng — người am hiểu danh mục đó chịu trách nhiệm cập nhật.
- Các bộ liên quan có thể được nhóm lại (ví dụ các danh mục địa lý gom thành một nhóm) để người dùng dễ duyệt.
- Các bộ có thể nối với nhau qua hai cơ chế sẽ bàn ở các trang sau: phân cấp (một bộ có quan hệ cha–con bên trong, như vùng chứa tỉnh) và ánh xạ (nối mã của bộ này sang bộ khác, như mã nội bộ sang mã quốc tế).
Điểm cần nhớ cho người mới: bộ danh mục mã là viên gạch cơ bản. Phân cấp và ánh xạ chỉ là cách liên kết các viên gạch lại với nhau — nên hiểu vững một bộ mã đứng riêng trước đã.
Vì sao chuẩn hóa cấu trúc danh mục lại quan trọng
Phần tiêu đề “Vì sao chuẩn hóa cấu trúc danh mục lại quan trọng”Có thể ai đó nghĩ: “danh mục thì cứ liệt kê ra là xong, cần gì cấu trúc?”. Nhưng chính việc mọi bộ mã đều theo một cấu trúc chuẩn (mã – mô tả – thuộc tính – trạng thái) mới là thứ tạo ra giá trị. Lý do:
- Máy đọc được (machine-readable). Khi mọi danh mục có cùng khung — đâu là cột mã, đâu là cột mô tả — thì các hệ thống có thể tự động nạp và sử dụng mà không cần đoán. Một danh mục bày bừa, mỗi bộ một định dạng, sẽ không thể tích hợp tự động.
- Đối chiếu được (so khớp được). Cấu trúc rõ ràng cho phép so một giá trị với danh mục chuẩn: giá trị tỉnh trong bản ghi có nằm trong bộ mã tỉnh hợp lệ không? Không có cấu trúc thì không có cái gì để đối chiếu.
- Tách bạch định danh và cách hiển thị. Vì mã (định danh) tách khỏi mô tả (tên hiển thị), ta có thể đổi cách viết tên, thêm bản dịch tiếng Anh, mà các hệ thống bên dưới vẫn chạy ổn — chúng tham chiếu theo mã, không theo chuỗi chữ.
- Quản lý vòng đời gọn gàng. Nhờ có trạng thái hiệu lực, danh mục biết mục nào còn dùng, mục nào đã ngừng — thay vì xóa thẳng (làm hỏng dữ liệu lịch sử) hay để lẫn lộn mã cũ mã mới.
Hệ quả thực tế: cấu trúc chuẩn chính là thứ biến một danh mục thành công cụ kiểm tra chất lượng dữ liệu.
Bộ mã làm “lookup” cho chất lượng dữ liệu
Phần tiêu đề “Bộ mã làm “lookup” cho chất lượng dữ liệu”Đây là chỗ một bộ danh mục mã được chuẩn hóa phát huy tác dụng rõ nhất. Trong kiểm tra chất lượng dữ liệu, một dạng luật rất phổ biến là đối chiếu danh mục (lookup): lấy giá trị trong dữ liệu thật và kiểm tra xem nó có thuộc danh mục chuẩn hay không.
Ví dụ cụ thể với bộ mã tỉnh:
- Một bản ghi khách hàng ghi tỉnh là
79— đối chiếu thấy79có trong bộ mã tỉnh, mô tả “TP. Hồ Chí Minh”. Hợp lệ. - Một bản ghi khác ghi tỉnh là
99— đối chiếu thấy không có mã99. Sai, cần xem lại. - Một bản ghi ghi tỉnh bằng chữ tự do “Sài Gòn” thay vì mã chuẩn — cũng bị đánh dấu là không khớp danh mục, gợi ý cần chuẩn hóa.
Nhờ vậy, bộ danh mục mã trở thành “danh sách đúng” duy nhất để soi chiếu. Càng nhiều trường trong dữ liệu được kiểm theo danh mục chuẩn, dữ liệu càng sạch và nhất quán. Cơ chế luật đối chiếu này được nói kỹ ở trang Quy tắc chất lượng dữ liệu (DQ rules). Đây cũng là một trong những lý do RDM, MDM và chất lượng dữ liệu gắn chặt với nhau.