Phân cấp mã (hierarchical reference data): mã có cấp cha – con
Một danh mục mã (code list) ở dạng đơn giản chỉ là một danh sách phẳng: mỗi dòng một mã, mỗi mã một mô tả. Nhưng rất nhiều danh mục trong thực tế không phẳng — chúng có tầng. Một phường nằm trong một quận, quận nằm trong một tỉnh, tỉnh nằm trong một vùng. Một mặt hàng thuộc một ngành con, ngành con thuộc một ngành lớn. Phân cấp mã (hierarchical reference data) là cách mô tả đúng cái cấu trúc tầng đó: một danh mục mã trong đó mỗi mã biết mã cha của mình, để cả bộ mã xếp thành một cây cha – con. Trang này giải thích khái niệm cho người mới và vì sao nó quan trọng với data governance.
Phân cấp mã là gì?
Phần tiêu đề “Phân cấp mã là gì?”Hãy bắt đầu từ một danh mục mã phẳng. Danh mục mã tỉnh/thành ở dạng đơn giản nhất chỉ gồm hai cột: mã và tên — mỗi tỉnh một dòng, không dòng nào “thuộc về” dòng nào. Đó là một danh sách ngang hàng.
Phân cấp mã thêm vào đó một ý tưởng: mỗi mục có thể thuộc về một mục khác cao hơn. Khi đã có quan hệ “thuộc về” này, các mã không còn nằm ngang hàng nữa mà xếp thành nhiều tầng:
- Ở đỉnh là các mục lớn nhất, bao trùm (ví dụ: vùng kinh tế).
- Mỗi mục lớn có nhiều mục con nằm dưới (mỗi vùng có nhiều tỉnh).
- Mỗi mục con lại có thể có mục con của nó (mỗi tỉnh có nhiều quận/huyện), cứ thế đi xuống tới tầng nhỏ nhất (phường/xã).
Hình dung dễ nhất là một cây lật ngược: gốc ở trên, cành tỏa xuống. Mỗi nút trên cây là một mã; mỗi đường nối thể hiện quan hệ cha – con. Một mã cha có nhiều mã con, nhưng mỗi mã con chỉ có một cha trực tiếp — đó là dạng cây phổ biến nhất.
Vài cụm từ hay gặp, nói cho dễ:
- Mã cha (parent) = mã ở tầng trên, bao mã con (tỉnh là cha của huyện).
- Mã con (child) = mã ở tầng dưới, thuộc về một mã cha (huyện là con của tỉnh).
- Mã lá (leaf) = mã ở tầng dưới cùng, không còn con (thường là phường/xã).
- Tầng / cấp (level) = các mã cùng độ sâu trên cây (tất cả các tỉnh ở cùng một cấp; tất cả các huyện ở cấp dưới).
Điểm cần nhớ: phân cấp không tạo ra dữ liệu mới — vẫn là những mã đó. Nó chỉ thêm thông tin về quan hệ giữa chúng, để máy tính biết mã nào nằm trong mã nào.
Vì sao phân cấp mã hữu ích?
Phần tiêu đề “Vì sao phân cấp mã hữu ích?”Một danh sách mã phẳng đủ để tra cứu từng mã. Nhưng ngay khi bạn muốn nhìn dữ liệu theo nhóm thay vì từng mục lẻ, bạn cần cấu trúc cây. Dưới đây là những giá trị rõ nhất.
Báo cáo cuộn lên theo cấp (roll-up)
Phần tiêu đề “Báo cáo cuộn lên theo cấp (roll-up)”Đây là lợi ích lớn nhất. Dữ liệu giao dịch thường được ghi ở tầng chi tiết nhất — ví dụ doanh thu ghi theo từng quận/huyện. Nhưng người quản lý lại muốn xem báo cáo ở tầng cao hơn: theo tỉnh, theo vùng, theo cả nước.
Nếu danh mục đã có phân cấp, việc này tự nhiên: hệ thống biết huyện nào thuộc tỉnh nào, nên cộng dồn (roll-up) doanh thu từ huyện lên tỉnh, từ tỉnh lên vùng một cách chính xác. Người dùng có thể mở rộng – thu gọn từng nhánh: xem tổng cả vùng, rồi bung ra xem từng tỉnh, rồi từng huyện. Không có cây này, mỗi lần đổi mức tổng hợp là một lần phải tự dựng bảng quy đổi tay — dễ sai, dễ sót.
Lọc và khoanh vùng theo nhánh
Phần tiêu đề “Lọc và khoanh vùng theo nhánh”Cây phân cấp cho phép chọn cả một nhánh chỉ bằng một thao tác. “Cho tôi xem mọi đơn hàng ở vùng Đông Nam Bộ” — hệ thống tự hiểu là gồm tất cả tỉnh trong vùng đó và tất cả huyện trong các tỉnh đó. Người dùng không phải liệt kê thủ công hàng chục mã con. Với cây ngành nghề cũng vậy: “tất cả doanh nghiệp thuộc ngành nông – lâm – thủy sản” sẽ tự bao gồm mọi phân ngành bên dưới.
Phân quyền theo vùng (data access by branch)
Phần tiêu đề “Phân quyền theo vùng (data access by branch)”Phân cấp còn là cơ sở tự nhiên để giới hạn quyền xem dữ liệu. Một giám đốc vùng chỉ nên thấy số liệu trong vùng mình; một trưởng phòng tỉnh chỉ thấy tỉnh mình. Khi danh mục địa lý đã có cây, việc gán quyền trở nên gọn: cấp quyền ở một nút cha là tự động bao trùm mọi nút con bên dưới. Quyền “vùng Tây Nam Bộ” tự kéo theo mọi tỉnh, mọi huyện trong vùng — không phải khai báo lại từng cái.
Một định nghĩa nhánh dùng chung
Phần tiêu đề “Một định nghĩa nhánh dùng chung”Khi cây phân cấp được quản lý tập trung, mọi phòng ban dùng chung một cách gom nhóm. Phòng bán hàng, phòng tài chính và ban giám đốc đều hiểu “miền Trung” gồm đúng những tỉnh như nhau. Nếu mỗi phòng tự vẽ cây riêng trong Excel, con số “doanh thu miền Trung” của ba phòng sẽ khác nhau — và không ai biết bản nào đúng.
Ataccama ONE quản lý quan hệ cha – con thế nào?
Phần tiêu đề “Ataccama ONE quản lý quan hệ cha – con thế nào?”Trong RDM của Ataccama ONE, phân cấp không phải thứ gắn ngoài mà là một thuộc tính của chính danh mục mã — quản lý cùng chỗ, cùng quy trình với bản thân các mã.
- Lưu quan hệ ngay trong danh mục. Ngoài mã và mô tả, mỗi mục còn có thể tham chiếu tới mã cha của nó. Chính cột “cha” này biến một danh sách phẳng thành một cây, mà không cần một bảng riêng tách rời.
- Dựng và xem dưới dạng cây. Người phụ trách danh mục (data steward) nhìn thấy cấu trúc dạng cây để kiểm tra trực quan: nhánh nào đang ở đâu, mục nào còn thiếu cha, cây có bị lệch tầng không.
- Một danh mục có thể có nhiều cách gom nhóm. Cùng tập tỉnh/thành, có nơi muốn gom theo vùng kinh tế, nơi khác theo miền (Bắc – Trung – Nam). RDM cho phép quản lý các cách phân nhóm song song trên cùng bộ mã, tùy nhu cầu báo cáo.
- Phân cấp cũng được quản trị và lập phiên bản. Thay đổi cây (gắn một huyện sang tỉnh khác, thêm một cấp mới) đi qua quy trình duyệt và được ghi vết như mọi thay đổi mã khác. Điều này đặc biệt quan trọng ở Việt Nam khi sáp nhập đơn vị hành chính: cây cũ vẫn tra được cho dữ liệu lịch sử, cây mới có hiệu lực từ ngày quy định mới áp dụng.
- Phân phối kèm cấu trúc. Khi danh mục được xuất bản về các hệ thống tiêu thụ, quan hệ cha – con đi kèm — nên hệ thống nhận cũng cộng dồn và lọc theo cùng một cây, đảm bảo nhất quán toàn tổ chức.
Vì cây phân cấp nằm chung với danh mục mã chuẩn, nó thừa hưởng mọi thứ tốt của RDM: có chủ, có duyệt, có phiên bản, có một nguồn đúng duy nhất.
Ví dụ Việt Nam
Phần tiêu đề “Ví dụ Việt Nam”Cây đơn vị hành chính. Danh mục địa lý Việt Nam là ví dụ kinh điển của phân cấp nhiều tầng: vùng → tỉnh/thành phố → quận/huyện → phường/xã. Một doanh nghiệp bán lẻ ghi doanh thu ở tầng quận/huyện, nhưng ban giám đốc xem báo cáo ở tầng vùng. Nhờ cây phân cấp, hệ thống cuộn doanh thu từ huyện lên tỉnh, từ tỉnh lên vùng tự động và chính xác. Khi cần “doanh thu vùng Đồng bằng sông Cửu Long”, chỉ một thao tác chọn nhánh là gồm đủ mọi tỉnh, mọi huyện bên dưới. Đến kỳ sáp nhập tỉnh, danh mục được lập phiên bản: báo cáo của năm cũ vẫn dùng cây cũ, báo cáo từ thời điểm sáp nhập dùng cây mới — không phá hỏng số liệu lịch sử.
Cây ngành nghề kinh tế. Hệ thống mã ngành nghề (theo chuẩn phân ngành kinh tế) cũng là cây: ngành lớn → phân ngành → ngành chi tiết. Một ngân hàng phân loại khách hàng doanh nghiệp theo cây này. Nhờ phân cấp, ngân hàng tính được dư nợ theo cả ngành lớn — ví dụ tổng dư nợ cho “nông – lâm – thủy sản” gồm mọi phân ngành con — để theo dõi mức tập trung rủi ro theo ngành, một yêu cầu quan trọng trong quản trị tín dụng. Cùng cách đó, báo cáo có thể bung xuống từng phân ngành chi tiết khi cần soi sâu.
Tiếp theo
Phần tiêu đề “Tiếp theo”- Hiểu nền tảng mà phân cấp xây lên: Danh mục mã / bộ mã (code list) — cấu trúc.
- Khi mỗi hệ thống dùng một bộ mã riêng, cần “phiên dịch” giữa chúng: Ánh xạ / crosswalk giữa các bộ mã.
- So sánh với phân cấp ở tầng dữ liệu chủ (gom hộ gia đình, cây công ty mẹ–con): Phân cấp và quan hệ trong dữ liệu chủ.