SQL | DDL, DML, TCL и DCL

Опубликовано: 18 Августа, 2021

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

DDL (язык определения данных):

Язык определения данных используется для определения структуры или схемы базы данных. DDL также используется для указания дополнительных свойств данных. Структура хранения и методы доступа, используемые системой баз данных с помощью набора операторов в специальном типе DDL, называемом языком хранения и определения данных. Эти операторы определяют детали реализации схемы базы данных, которые обычно скрыты от пользователей. Значения данных, хранящиеся в базе данных, должны удовлетворять определенным ограничениям согласованности.
Например, предположим, что университет требует, чтобы баланс счета отдела никогда не был отрицательным. DDL предоставляет средства для определения таких ограничений. Система базы данных проверяет эти ограничения каждый раз при обновлении базы данных. В общем случае ограничение может быть произвольным предикатом, относящимся к базе данных. Однако произвольные предикаты могут оказаться дорогостоящими для проверки. Таким образом, система базы данных реализует ограничения целостности, которые можно протестировать с минимальными накладными расходами.

  1. Ограничения домена: домен возможных значений должен быть связан с каждым атрибутом (например, целочисленные типы, типы символов, типы даты / времени). Объявление атрибута из определенного домена действует как ограничение на значения, которые он может принимать.
  2. Ссылочная целостность: есть случаи, когда мы хотим убедиться, что значение появляется в одном отношении для данного набора атрибутов, а также появляется в определенном наборе атрибутов в другом отношении, то есть ссылочной целостности. Например, для каждого курса должен быть указан факультет, который действительно существует.
  3. Утверждения: Утверждение - это любое условие, которому всегда должна удовлетворять база данных. Ограничения домена и ограничения целостности - это особая форма утверждений.
  4. Авторизация: мы можем захотеть различать пользователей в зависимости от типа доступа, который им разрешен для различных значений данных в базе данных. Эти различия выражаются в авторизации. Самые распространенные существа:
    авторизация на чтение - которая позволяет читать, но не изменять данные;
    авторизация вставки - которые позволяют вставлять новые данные, но не изменять существующие данные
    авторизация обновления - которая позволяет изменять, но не удалять.

Некоторые команды:

CREATE: для создания объектов в базе данных
ALTER: изменяет структуру базы данных
DROP: удалить объекты из базы данных
ПЕРЕИМЕНОВАТЬ: переименовать объекты

Следующий DDL-оператор SQL определяет таблицу отделов:

создать отдел стола
(dept_name char (20),
  строительный уголь (15),
  бюджет числовой (12,2));

Выполнение вышеуказанного оператора DDL создает таблицу отделов с тремя столбцами - dept_name, building и budget; с каждым из которых связан определенный тип данных.

DML (язык манипулирования данными):

Операторы DML используются для управления данными с помощью объектов схемы.
DML бывают двух типов -

  1. Процедурные DML : требуют, чтобы пользователь указал, какие данные необходимы и как их получить.
  2. Деклеративные DML (также называемые непроцедурными DML ): требуют, чтобы пользователь указал, какие данные необходимы, без указания способа их получения.

    Декларативные DML обычно легче изучать и использовать, чем процедурные DML. Однако, поскольку пользователю не нужно указывать, как получить данные, система базы данных должна найти эффективные средства доступа к данным.

Некоторые команды:

ВЫБРАТЬ: получить данные из базы данных
ВСТАВИТЬ: вставить данные в таблицу
ОБНОВЛЕНИЕ: обновить существующие данные в таблице
УДАЛИТЬ: удаляет все записи из таблицы, остается место для записей

Пример SQL-запроса, который находит имена всех преподавателей исторического факультета:

выберите имя инструктора
 от инструктора
 где инструктор.dept_name = 'История';

Запрос указывает, что те строки из инструктора таблицы, где dept_name имеет значение History, должны быть извлечены, а атрибуты имени этих строк должны быть отображены.

TCL (язык управления транзакциями):

Команды языка управления транзакциями используются для управления транзакциями в базе данных. Они используются для управления изменениями, внесенными DML-операторами. Это также позволяет группировать операторы в логические транзакции.

Примеры команд TCL -

COMMIT: команда фиксации используется для постоянного сохранения любой транзакции.
            в базу данных.
ROLLBACK: эта команда восстанавливает базу данных до последнего зафиксированного состояния.
            Он также используется с командой точки сохранения для перехода к точке сохранения.
            в сделке.
SAVEPOINT: команда точки сохранения используется для временного сохранения транзакции, чтобы
            что при необходимости вы можете вернуться к этой точке.

DCL (язык управления данными):

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

Примеры команд DCL:

GRANT: разрешить указанным пользователям выполнять указанные задачи.
REVOKE: отменить ранее предоставленные или отклоненные разрешения.

Операции, для которых привилегии могут быть предоставлены или отозваны пользователем или ролью, применяются как к языку определения данных (DDL), так и к языку обработки данных (DML) и могут включать в себя CONNECT, SELECT, INSERT, UPDATE, DELETE, EXECUTE и ПРИМЕНЕНИЕ.

В базе данных Oracle выполнение команды DCL вызывает неявную фиксацию. Следовательно, вы не можете откатить команду.


Ссылки: kakeboksen.td.org.uit.no