TGTGInsightаналитика telegramLIVE / telegram public index
← Системный сдвиг
Системный сдвиг avatar

TGINSIGHT POST

Post #356

@systemswing

Системный сдвиг

Просмотры3,070Количество просмотров
Опубликован2 мая02.05.2024, 14:26
Содержимое поста

Содержимое

Удивительные локальные понятия иногда рождаются в местной языковой среде. Вот, например, "техническое задание", "ТЗ" — документ, содержательных аналогов которому трудно найти где-то кроме стран бывш. СССР. Или вот, например, "справочник" — применительно к типу таблиц в БД. С первого взгляда, вроде бы это dictionary, но есть нюансы. Во-первых, dictionary — это дословно "словарь", то есть хранилище пар "ключ":"значение". Во-вторых, это тип данных из языка Python, а не концепция из моделирования баз данных. В БД есть только entity/relation, иногда встречаются lookup tables или reference tables. Словосочетание database dictionary означает "словарь данных" — мета-описание структуры данных в БД. У нас же смысл "справочника" варьируется: ➡️ от, действительно, "словаря" (как отраженного в таблице перечислимого типа, чисто для производительности и компактности: чтобы не хранить в таблицах типовые тексты, а хранить только их коды, вытаскивая тексты только для отображения пользователю) — по-английски это будет dictionary или reference table. ➡️ до обозначения вообще любой сущности: "справочник сотрудников", "справочник клиентов", "справочник товаров". Это по смыслу близко к "основным данным" (master data) — сущностям, которые описывают структуру бизнеса, в отличие от транзакционных данных, фиксирующих события или действия в рамках структуры. В промежутке между словарями и основными данными могут лежать разнообразные виды данных, меняющихся с разной скоростью. Ну, скажем, валюты меняются редко, а сделки на Форексе совершаются ежедневно сотнями штук. А в другом бизнесе каждая сделка — это событие, потому что под неё заводится проект, и проект тоже считается справочником. Из-за таких нечетких определений бывает трудно установить единый язык в команде, если люди пришли их разных компаний, где справочниками называли разное, и объяснить новичкам, что же такое, всё-таки, справочник?.. Очень путающая концепция, как по мне. Всегда нужно уточнять, в каком смысле мы это слово используем. Или вот иногда говорят "справочники и классификаторы", имея в виду, что справочник может иметь множество полей (например, справочник адресов или справочник изделий, а классификатор — это справочник только с одним не-идентифицирующим полем, то есть словарь. А ведь есть ещё НСИ — "нормативно-справочная информация" и управление ей (RDM, Reference Data Managemanet), и управление основными данными (MDM, Master Data Management). Причем русский термин "Управление НСИ" часто переводят как MDM, хотя DAMA-DMBOK (свод знаний по управлению данными) их явно различает — справочные данные всегда описывают другие данные, а основные данные описывают реальные объекты. DAMA-DMBOK даже говорит, что цели управления НСИ и управления основными данными отличаются: ◀️ для основных данных это контроль идентификаторов и значений, решение вопросов идентификации ("это одна и та же сущность, или разные?") ◀️ для справочных данных — контроль допустимых множеств значений и их актуальности. Соответственно, формулирование бизнес-правил часто сводится к проверкам допустимости различных сочетаний основных данных, справочных данных и транзакционных (примеры: "в женское купе может купить билет только пассажир женского пола", "в списке студентов курса представитель вуза может увидеть только контактные студентов из своего вуза"). В общем, рекомендую в своих проектах четко определить, что вы называете справочником; что у вас относится к основным данным и к транзакционным (если вы используете такие термины), и чем вы управляете, когда говорите об управлении НСИ и основными данными.