23.9.3. Языки описания данных и манипулирования данными

Первая из этих функций обеспечивается языком описания данных (ЯОД). Его часто называют также языком определения данных. Описание базы данных средствами ЯОД называется схемой базы данных. Оно включает описание структуры базы данных и налагаемых на нее ограничений целостности данных. Помимо указанных функций, ЯОД некоторых СУБД обеспечивают также возможности задания в схеме ограничений доступа к данным или полномочий пользователей.

Схема базы данных представляет интенсиональную модель предметной области в среде системы базы данных. Язык манипулирования данными (ЯМД) позволяет выполнять операции манипулирования данными в базе данных. Характер этих операций зависит от конкретной модели данных. Но в любом случае в таких языках предусматриваются операции вставки новых данных в базу данных, удаление или обновление имеющихся данных. В некоторых моделях данных предусматриваются дополнительно навигационные операции, позволяющие перед выполнением операции позиционироваться на нужном экземпляре данных в базе данных. Этот экземпляр данных становится текущим. Возможны различные побочные эффекты ­распространение операции по структуре базы данных, автоматическое формирование новых свзей между экземплярами данных, вычисление производных данных и т.п. В так называемых графовых моделях данных (иерархической, сетевой) аргументом каждой операции манипулирования данными является единственный экземпляр данных. В то же время операции в реляционной модели имеют множественный характер.

ЯОД и ЯМД не всегда синтаксически оформляются в виде самостоятельных языков. Они могут быть составными частями единого языка данных, сочетающего возможности определения данных и манипулирования данными. Имеются многочисленные примеры языков СУБД, объединяющих возможности описания данных и манипулирования данными в единых синтаксических рамках. Наиболее распространенным среди языков такого рода является язык SQL. С 1987 г. был принят ряд версий международного стандарта этого языка как языка запросов для реляционных СУБД. Действующая версия этого стандарта SQL:2003 была принята в 2003 г.