Словарь данных или репозиторий метаданных , как определено в IBM Dictionary of Computing , представляет собой «централизованный репозиторий информации о данных, такой как значение, связь с другими данными, происхождение, использование и формат». [1] Oracle определяет его как набор таблиц с метаданными. Термин может иметь одно из нескольких тесно связанных значений, относящихся к базам данных и системам управления базами данных (СУБД):
Термины словарь данных и репозиторий данных указывают на более общую программную утилиту, чем каталог. Каталог тесно связан с программным обеспечением СУБД. Он предоставляет хранящуюся в нем информацию пользователю и администратору баз данных, но к нему в основном обращаются различные программные модули самой СУБД, такие как компиляторы DDL и DML , оптимизатор запросов, процессор транзакций, генераторы отчетов и исполнитель ограничений. С другой стороны, словарь данных — это структура данных, которая хранит метаданные , т. е. (структурированные) данные об информации. Программный пакет для автономного словаря данных или репозитория данных может взаимодействовать с программными модулями СУБД, но в основном он используется проектировщиками, пользователями и администраторами компьютерной системы для управления информационными ресурсами. Эти системы хранят информацию о конфигурации аппаратного и программного обеспечения системы, документации, приложениях и пользователях, а также другую информацию, относящуюся к системному администрированию. [2]
Если система словаря данных используется только разработчиками, пользователями и администраторами, а не программным обеспечением СУБД, она называется пассивным словарем данных. В противном случае она называется активным словарем данных или словарем данных. Когда пассивный словарь данных обновляется, это делается вручную и независимо от любых изменений в структуре СУБД (базы данных). При активном словаре данных сначала обновляется словарь, и в результате изменения в СУБД происходят автоматически.
Пользователи баз данных и разработчики приложений могут извлечь выгоду из авторитетного документа словаря данных, который каталогизирует организацию, содержимое и соглашения одной или нескольких баз данных. [3] Обычно это включает в себя имена и описания различных таблиц ( записей или сущностей ) и их содержимое ( полей ), а также дополнительные сведения, такие как тип и длина каждого элемента данных . Другой важной частью информации, которую может предоставить словарь данных, является связь между таблицами. Это иногда упоминается в диаграммах сущностей-связей (ERD) или, если используются дескрипторы наборов, идентифицирует, в каких наборах таблиц базы данных участвуют.
В активном словаре данных ограничения могут быть наложены на базовые данные. Например, диапазон может быть наложен на значение числовых данных в элементе данных (поле), или запись в таблице может быть принудительно включена в заданную связь с другим типом записи. Кроме того, распределенная СУБД может иметь определенные особенности местоположения, описанные в ее активном словаре данных (например, где физически расположены таблицы).
Словарь данных состоит из типов записей (таблиц), созданных в базе данных с помощью системных командных файлов, адаптированных для каждой поддерживаемой внутренней СУБД. Oracle имеет список определенных представлений для пользователя "sys". Это позволяет пользователям искать точную необходимую информацию. Командные файлы содержат SQL-выражения для CREATE TABLE
, CREATE UNIQUE INDEX
, ALTER TABLE
(для ссылочной целостности) и т. д., использующие определенное выражение, требуемое этим типом базы данных.
Универсального стандарта относительно уровня детализации такого документа не существует.
При построении приложений баз данных может быть полезным введение дополнительного уровня программного обеспечения словаря данных, т. е. промежуточного программного обеспечения , которое взаимодействует с базовым словарем данных СУБД. Такой «высокоуровневый» словарь данных может предлагать дополнительные функции и степень гибкости, которая выходит за рамки ограничений собственного «низкоуровневого» словаря данных, чьей основной целью является поддержка основных функций СУБД, а не требований типичного приложения. Например, высокоуровневый словарь данных может предоставлять альтернативные модели сущностей-связей , адаптированные для различных приложений, которые совместно используют общую базу данных. [4] Расширения словаря данных также могут помочь в оптимизации запросов к распределенным базам данных . [5] Кроме того, функции DBA часто автоматизируются с помощью инструментов реструктуризации, которые тесно связаны с активным словарем данных.
Программные фреймворки, нацеленные на быструю разработку приложений , иногда включают в себя высокоуровневые средства словаря данных, которые могут существенно сократить объем программирования, необходимый для создания меню , форм , отчетов и других компонентов приложения базы данных, включая саму базу данных. Например, PHPLens включает в себя библиотеку классов PHP для автоматизации создания таблиц, индексов и ограничений внешнего ключа, переносимых для нескольких баз данных. [6] Другой словарь данных на основе PHP, часть инструментария RADICORE, автоматически генерирует программные объекты , скрипты и код SQL для меню и форм с проверкой данных и сложными объединениями . [7] Для среды ASP.NET словарь данных Base One предоставляет кросс-СУБД-средства для автоматизированного создания баз данных, проверки данных, повышения производительности ( кэширование и использование индексов), безопасности приложений и расширенных типов данных . [8] Функции Visual DataFlex [9] предоставляют возможность использовать DataDictionaries в качестве файлов классов для формирования промежуточного слоя между пользовательским интерфейсом и базовой базой данных. Цель состоит в создании стандартизированных правил для поддержания целостности данных и обеспечения соблюдения бизнес-правил в одном или нескольких связанных приложениях.
Некоторые отрасли используют обобщенные словари данных в качестве технических стандартов для обеспечения взаимодействия между системами. Например, отрасль недвижимости придерживается словаря данных RESO, которому Национальная ассоциация риэлторов предписывает [10] ее MLS соответствовать посредством своего руководства по политике. [11] Этот промежуточный уровень отображения для собственных баз данных MLS поддерживается компаниями-разработчиками программного обеспечения, которые предоставляют услуги API организациям MLS.
Разработчики используют спецификацию описания данных (DDS) для описания атрибутов данных в описаниях файлов, которые являются внешними по отношению к прикладной программе, обрабатывающей данные, в контексте IBM i . [12] Таблица sys.ts$ в Oracle хранит информацию о каждой таблице в базе данных. Она является частью словаря данных, который создается при создании базы данных Oracle . [13] Разработчики также могут использовать контекст DDS из свободного и открытого программного обеспечения (FOSS) для структурированных и транзакционных запросов в открытых средах.
Вот неполный список типичных элементов, которые можно найти в словаре данных для столбцов или полей: