Словарь данных

Словарь данных — это совокупность метаданных или справочных данных, необходимых для проектирования реляционной базы данных. Словарь данных обладает особой стратегической важностью, поскольку служит общим понятийным аппаратом организации. В нём описываются такие ключевые данные, как клиенты, номенклатура продукции и услуг, справочники и другие информационные объекты. Таким образом, словарь данных является основным референтом предприятия, на который опираются принимаемые решения. Обычно он представлен в виде таблицы с четырьмя столбцами: названием, кодом, типом данных и комментариями.

Требования

Словарь данных должен соответствовать следующим требованиям:

Словарь данных, или репозиторий данных, согласно определению из IBM Dictionary — это «централизованное хранилище информации о данных, их значениях, взаимосвязях с другими данными, происхождении, целях использования и формате»[1]. В определении компании Oracle словарь данных — это совокупность таблиц с метаданными. Термин может иметь несколько схожих значений, связанных с базами данных и системами управления базами данных (СУБД):

  • Документ, описывающий базу данных или совокупность баз данных;
  • Программный компонент СУБД, необходимый для описания её структуры;
  • Часть промежуточного ПО (middleware), расширяющая или заменяющая встроенный словарь данных СУБД.

Документация

Термины «словарь данных» и «репозиторий данных» чаще обозначают универсальный программный инструмент, а не каталог. Каталог жёстко связан с программным обеспечением СУБД. Он предоставляет хранящуюся информацию пользователю и администратору базы данных (DBA), но в основном его используют внутренние программные модули самой СУБД: компиляторы DDL и DML, оптимизатор запросов, процессор транзакций, генераторы отчётов и обработчики ограничений.

В то же время словарь данных — это структура данных, содержащая метаданные, то есть структурированные данные о данных.

Отдельная прикладная программа-словари данных или репозиторий данных может взаимодействовать с модулями приложений СУБД, но чаще используется разработчиками, пользователями и администраторами информационных систем для управления информационными ресурсами. Такие системы содержат сведения о конфигурации аппаратного и программного обеспечения, документации, приложениях, пользователях и другую информацию для администрирования[2].

Если системой словаря данных пользуются только разработчики, пользователи и администраторы, а не сама СУБД, такой словарь называют «пассивным»; если же он интегрирован с СУБД, то — «активным» или просто словарём данных.

В пассивном словаре данные обновляются вручную и независимо от изменений структуры базы данных. В активном словаре сначала изменяют сам словарь, после чего соответствующие изменения автоматически вносятся в структуру базы данных.

Пользователи базы данных и разработчики приложений получают пользу от авторитетного словаря данных, который каталогизирует структуру, содержимое и соглашения одной или нескольких баз данных[3]. Обычно он включает имена и описания различных таблиц (записей, сущностей), их содержимого (полей), а также такие параметры, как тип и длина каждого элемента данных.

Ещё одним важным элементом словаря данных являются сведения о связях между таблицами. Это отражается, например, в ER-диаграммах или через зоны дескрипторов SQL, указывающие, в каком объёме участвует таблица в структуре БД.

В активных словарях данных могут быть реализованы ограничения на базовые данные. Например, задан определённый диапазон значений для числовых полей или осуществляется контроль участия записей таблиц во взаимосвязях с другими сущностями.

Кроме того, в распределённых СУБД словарь данных может содержать сведения о размещении: где физически хранятся те или иные таблицы.

Словарь данных содержит типы записей (таблиц), создаваемых в БД посредством командных файлов, генерируемых системой и соответствующих каждой поддерживаемой СУБД. В Oracle предусмотрен целый список специальных представлений для пользователя «sys», что позволяет находить нужную информацию. Командные файлы содержат SQL-запросы вида CREATE TABLE, CREATE UNIQUE INDEX, ALTER TABLE (для поддержки ссылочной целостности) и др., с использованием синтаксиса, характерного для конкретной СУБД.

Универсального стандарта детализации такого документа не существует.

Промежуточное ПО

При разработке прикладных баз данных может быть полезно внедрить дополнительный уровень — программное обеспечение-словарь данных, то есть слой middleware, взаимодействующий с базовым, «низкоуровневым» словарём данных СУБД. Высокоуровневый словарь данных обеспечивает дополнительные функции и большую гибкость по сравнению со встроенным, основная цель которого — обеспечение базовой работы СУБД, а не всех потребностей приложений. Например, такой словарь может предоставлять альтернативные модели «сущность—связь», адаптированные для решения разных задач в одной общем БД[4]. Доработки словаря данных также способствуют оптимизации запросов в распределённых базах данных[5]. Кроме того, административные функции автоматизируются с помощью инструментов перестройки данных, тесно интегрированных с активным словарём данных.

Многие фреймворки для ускоренной разработки приложений включают функции высокоуровневого словаря данных, что позволяет значительно сократить программирование при создании меню, форм, отчётов и других компонентов БД, включая саму БД. Например, PHPLens предоставляет библиотеку для PHP для автоматизации создания таблиц, индексов и внешних ключей с обеспечением портируемости между несколькими СУБД[6]. Аналогичный словарь данных на PHP, компонент инструментария RADICORE, генерирует объекты программы, скрипты и SQL-код для меню и форм с поддержкой валидации данных и сложных соединений[7]. Для ASP.NET словарь данных Base One International реализует функции, унифицирующие создание баз данных, валидацию, ускоряющие доступ (за счёт кеша и индексации), безопасность и расширения типов данных[8]. В ПО Visual DataFlex реализована возможность использовать словари данных как файловые классы, формирующие промежуточный уровень между пользовательским интерфейсом и БД. Это позволяет стандартизовать правила обеспечения целостности и бизнес-логику во всех связанных приложениях[9].

Примеры для платформ

В среде IBM System i разработчики используют спецификации описания данных (англ. DDS) для задания атрибутов данных в описаниях внешних файлов, используемых соответствующими приложениями[10]. В Oracle таблица sys.ts$ содержит сведения обо всех таблицах базы данных. Эта таблица создаётся как часть словаря данных при инициализации базы данных Oracle[11].

Содержание словаря данных

Любой каталог данных включает ряд типовых модулей и стандартных функций[12]:

  1. Метасловарь, позволяющий описывать каждую используемую или генерируемую предприятием единицу данных и визуализировать их взаимосвязи.
  2. Ясная система меток, группирующая наборы данных по категориям с помощью тегов или ключевых слов.
  3. Поисковый механизм, позволяющий находить нужную информацию по названию, тегу, ключевому слову и др.
  4. Управление доступом и правами, защищающее права на изменение записей каталога. Возможна фильтрация доступа по различным параметрам (роль, уровень иерархии и др.) с индивидуальной настройкой прав на просмотр и изменение.

Использование словаря данных

Словарь данных позволяет:

  • демократизировать доступ к данным,
  • обеспечить достоверность и актуальность информации,
  • контролировать качество данных,
  • эффективно сотрудничать благодаря единому взгляду на данные внутри организации,
  • упростить принятие решений на основе интерпретируемых и применимых сведений.

Каталогизация данных помогает превратить разрозненную информацию в инструмент для принятия решений.

Примечания

  1. ACM, IBM Dictionary of Computing, 10-е издание, 1993
  2. Рамез Элмассри, Шамкант Б. Наваше: Fundamentals of Database Systems, 3-е издание, параграф 17.5, с. 582
  3. TechTarget, SearchSOA, Что такое словарь данных?
  4. Патент США 4774661, Database management system with active data dictionary, 19 ноября 1985, AT&T
  5. Патент США 4769772, Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases, 28 февраля 1985, Honeywell Bull
  6. PHPLens, ADOdb Data Dictionary Library for PHP
  7. RADICORE, Что такое словарь данных?
  8. Base One International Corp., Base One Data Dictionary
  9. VISUAL DATAFLEX, features
  10. DDS documentation for IBM System i V5R3 (англ.). IBM. Дата обращения: 7 июня 2024.
  11. Oracle Concepts — Data Dictionary (англ.). www.dba-oracle.com. Дата обращения: 7 июня 2024. Архивировано 3 октября 2025 года.
  12. Qu'est-ce qu'un Data Catalogue ? Définition et enjeux (фр.). DataGalaxy (20 января 2021). Дата обращения: 7 июня 2024. Архивировано 19 октября 2021 года.

Литература

Ссылки

Категории