Язык манипулирования данными это кратко

Обновлено: 04.07.2024

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

Здесь также строится правильно определенная формула, основой которой являются атомы.

I. Атомы имеют следующий вид:

a) r(x1x2…xn), где r – отношение, удовлетворяющее схеме R(A1A2…An) и каждое xi есть константа или переменная на домене;

b) u q v, где u и v – константы или переменные на домене, q – арифметическая операция сравнения ( , ³, ¹, £);

II. Формула реляционного исчисления y(t), а также свободные и связанные вхождения переменных определяются так же, как и для исчисления с переменными-кортежами.

Выражение исчисления с переменными на доменах, эквивалентное выражению исчисления с переменными-кортежами t | y(t)>, конструируется в соответствии со следующими правилами.

Пусть е6сть переменная-кортеж t(R), где R = (A1A2…An) имеет арность n. Тогда вместо переменной-кортежа t вводятся n новых переменных на доменах t1, t2, …, tn и заданное выражение исчисления с переменными-кортежами заменяется выражением 1, t2, …, tn | j΄(t1, t2, …, tn)>. Здесь j΄ представляет собой j, в которой:

Любой атом r(t) заменяется атомом r(t1, t2, …, tn);

Каждое свободное вхождение t[Ai] заменено переменной ti;

Для каждого квантора $u или "u вводится m новых переменных u1, u2, …, um, где m – арность u. Кванторы $u (или "(u)) заменяются кванторами $u1 $u2 … $um ("u1 "u2 … "um, соответственно), и в подчиненных кванторам выражениях u[Ai] заменяются на ui и r(u) на r(u1, u2, …, um).

Теорема

Для каждого безопасного выражения с переменными-кортежами существует эквивалентное безопасное выражение с переменными на доменах.

Пример:

Написать выражение реляционного исчисления, позволяющее получить имена поставщиков, поставляющих деталь с номером P2.

a) Выражение исчисления с переменными-кортежами:

b) Выражение исчисления с переменными на доменах:

Кодд предложил использовать реляционное исчисление с переменными-кортежами как эталон для оценки языков манипулирования данными, основанных на реляционной модели. Дело обстоит так, что едва ли не во все современные языки запросов встраивается одна из трех рассмотренных выше нотаций, а в некоторые языки – их комбинация.

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

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

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

SEQUEL (Structured English Query Language) – переход от алгебраических языков к языкам исчислений. Использует реляционную алгебру, но имеет синтаксис, напоминающий реляционное исчисление с переменными-кортежами. SEQUEL разработан в 1974 г. (первая публикация) в исследовательской лаборатории IBM в Сан-Хосе. Центральная возможность языка – отображение: специальный вид селекции с последующей проекцией.




В 1976 г. на базе переработанной версии языка SEQUEL/2 корпорация IBM выпустила прототип СУБД, получивший название System R. Назначение этой пробной версии состояло в проверке осуществимости реляционной модели. Помимо прочего, важнейшим из результатов выполнения этого проекта можно считать разработку собственного языка SQL (Structured Query Language).

QUEL – язык реляционного исчисления с переменными-кортежами. Язык запросов реляционной СУБД INGRES, разработанной в Калифорнийском университете в Беркли в конце 70-х г.г. Включает широкий спектр операторов реляционного исчисления с переменными-кортежами. Включает агрегатные функции. Этот язык является более структурированным, чем SQL, но его семантика менее близка к обычному английскому языку (позднее, когда язык SQL был принят как стандартный язык реляционных БД, СУБД INGRES была переведена на использование этого языка).

QBE (Query-By-Example) – язык исчисления с переменными на доменах. Язык разработан в Исследовательском центре IBM в Йорктаун-Хейтсе. Его специфика заключается в том, что он предназначен для работы с терминала. Клавиши терминала позволяют затребовать показ на экране одной или более форм таблиц. Необходимые запросы формулируются с использованием переменных на доменах и констант, как в реляционном исчислении с переменными на доменах. Включены агрегатные функции.

SQL (Structured Query Language) – язык, ориентированный на отображение: описывается отображение известного атрибута или множества атрибутов в искомый атрибут или множество атрибутов. В языке для указания роли имен отношений и атрибутов применяются ключевые слова. Первой из коммерческих реализаций СУБД, построенных на использовании языка SQL, была СУБД ORACLE, выпущенная в конце 70-х г.г. компанией, которая ныне превратилась в корпорацию ORACLE.

В 1982 г. Американский национальный институт стандартов (ANSI) начал работу над стандартом языка реляционных БД. В 1983 г. к этой работе подключился Международный комитет по стандартизации (ISO). Совместными усилиями в 1987 г. был выпущен первый стандарт языка SQL. В 1992 г. была выпущена первая, существенно пересмотренная версия стандарта ISO, которую иногда называют SQL2 или SQL-92.

Язык SQL имеет два основных компонента:

- язык DDL (Data Definition Language), предназначенный для определения структур базы данных;

- язык DML (Data Manipulation Language), предназначенный для выборки и обновления данных.

Язык SQL является примером языка с трансформирующей ориентацией – языка, предназначенного для работы с таблицами с целью преобразования входных данных к требуемому виду. Это не процедурный язык, поэтому в нем необходимо указывать, какая информация должна быть получена, а не как ее можно получить. Иначе говоря, язык SQL не требует указания методов доступа к данным.

Эквивалентность выражений реляционного исчисления с переменными-кортежами и исчисления с переменными на доменах

Реляционное исчисление с переменными на доменах

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

Здесь также строится правильно определенная формула, основой которой являются атомы.

I. Атомы имеют следующий вид:

a) r(x1x2…xn), где r – отношение, удовлетворяющее схеме R(A1A2…An) и каждое xi есть константа или переменная на домене;

b) u q v, где u и v – константы или переменные на домене, q – арифметическая операция сравнения ( , ³, ¹, £);

II. Формула реляционного исчисления y(t), а также свободные и связанные вхождения переменных определяются так же, как и для исчисления с переменными-кортежами.

Выражение исчисления с переменными на доменах, эквивалентное выражению исчисления с переменными-кортежами t | y(t)>, конструируется в соответствии со следующими правилами.

Пусть е6сть переменная-кортеж t(R), где R = (A1A2…An) имеет арность n. Тогда вместо переменной-кортежа t вводятся n новых переменных на доменах t1, t2, …, tn и заданное выражение исчисления с переменными-кортежами заменяется выражением 1, t2, …, tn | j΄(t1, t2, …, tn)>. Здесь j΄ представляет собой j, в которой:

Любой атом r(t) заменяется атомом r(t1, t2, …, tn);

Каждое свободное вхождение t[Ai] заменено переменной ti;

Для каждого квантора $u или "u вводится m новых переменных u1, u2, …, um, где m – арность u. Кванторы $u (или "(u)) заменяются кванторами $u1 $u2 … $um ("u1 "u2 … "um, соответственно), и в подчиненных кванторам выражениях u[Ai] заменяются на ui и r(u) на r(u1, u2, …, um).

Теорема

Для каждого безопасного выражения с переменными-кортежами существует эквивалентное безопасное выражение с переменными на доменах.

Пример:

Написать выражение реляционного исчисления, позволяющее получить имена поставщиков, поставляющих деталь с номером P2.

a) Выражение исчисления с переменными-кортежами:

b) Выражение исчисления с переменными на доменах:

Кодд предложил использовать реляционное исчисление с переменными-кортежами как эталон для оценки языков манипулирования данными, основанных на реляционной модели. Дело обстоит так, что едва ли не во все современные языки запросов встраивается одна из трех рассмотренных выше нотаций, а в некоторые языки – их комбинация.

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

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

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

SEQUEL (Structured English Query Language) – переход от алгебраических языков к языкам исчислений. Использует реляционную алгебру, но имеет синтаксис, напоминающий реляционное исчисление с переменными-кортежами. SEQUEL разработан в 1974 г. (первая публикация) в исследовательской лаборатории IBM в Сан-Хосе. Центральная возможность языка – отображение: специальный вид селекции с последующей проекцией.

В 1976 г. на базе переработанной версии языка SEQUEL/2 корпорация IBM выпустила прототип СУБД, получивший название System R. Назначение этой пробной версии состояло в проверке осуществимости реляционной модели. Помимо прочего, важнейшим из результатов выполнения этого проекта можно считать разработку собственного языка SQL (Structured Query Language).

QUEL – язык реляционного исчисления с переменными-кортежами. Язык запросов реляционной СУБД INGRES, разработанной в Калифорнийском университете в Беркли в конце 70-х г.г. Включает широкий спектр операторов реляционного исчисления с переменными-кортежами. Включает агрегатные функции. Этот язык является более структурированным, чем SQL, но его семантика менее близка к обычному английскому языку (позднее, когда язык SQL был принят как стандартный язык реляционных БД, СУБД INGRES была переведена на использование этого языка).

QBE (Query-By-Example) – язык исчисления с переменными на доменах. Язык разработан в Исследовательском центре IBM в Йорктаун-Хейтсе. Его специфика заключается в том, что он предназначен для работы с терминала. Клавиши терминала позволяют затребовать показ на экране одной или более форм таблиц. Необходимые запросы формулируются с использованием переменных на доменах и констант, как в реляционном исчислении с переменными на доменах. Включены агрегатные функции.

SQL (Structured Query Language) – язык, ориентированный на отображение: описывается отображение известного атрибута или множества атрибутов в искомый атрибут или множество атрибутов. В языке для указания роли имен отношений и атрибутов применяются ключевые слова. Первой из коммерческих реализаций СУБД, построенных на использовании языка SQL, была СУБД ORACLE, выпущенная в конце 70-х г.г. компанией, которая ныне превратилась в корпорацию ORACLE.

В 1982 г. Американский национальный институт стандартов (ANSI) начал работу над стандартом языка реляционных БД. В 1983 г. к этой работе подключился Международный комитет по стандартизации (ISO). Совместными усилиями в 1987 г. был выпущен первый стандарт языка SQL. В 1992 г. была выпущена первая, существенно пересмотренная версия стандарта ISO, которую иногда называют SQL2 или SQL-92.

Язык SQL имеет два основных компонента:

- язык DDL (Data Definition Language), предназначенный для определения структур базы данных;

- язык DML (Data Manipulation Language), предназначенный для выборки и обновления данных.

Язык SQL является примером языка с трансформирующей ориентацией – языка, предназначенного для работы с таблицами с целью преобразования входных данных к требуемому виду. Это не процедурный язык, поэтому в нем необходимо указывать, какая информация должна быть получена, а не как ее можно получить. Иначе говоря, язык SQL не требует указания методов доступа к данным.

Реализация в SQL концепции операций, ориентированных на табличное представление данных , позволила создать компактный язык с небольшим набором предложений. Язык SQL может использоваться как для выполнения запросов к данным, так и для построения прикладных программ.

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

Основные категории команд языка SQL :

  • DDL – язык определения данных;
  • DML – язык манипулирования данными;
  • DQL – язык запросов ;
  • DCL – язык управления данными;
  • команды администрирования данных;
  • команды управления транзакциями

Определение структур базы данных (DDL)

Язык определения данных (Data Definition Language, DDL) позволяет создавать и изменять структуру объектов базы данных , например, создавать и удалять таблицы . Основными командами языка DDL являются следующие: CREATE TABLE , ALTER TABLE , DROP TABLE , CREATE INDEX , ALTER INDEX , DROP INDEX .

Манипулирование данными (DML)

Язык манипулирования данными ( Data Manipulation Language , DML) используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT , UPDATE , DELETE .

Выборка данных (DQL)

Язык запросов DQL наиболее известен пользователям реляционной базы данных , несмотря на то, что он включает всего одну команду SELECT . Эта команда вместе со своими многочисленными опциями и предложениями используется для формирования запросов к реляционной базе данных .

Язык управления данными (DCL - Data Control Language)

Команды управления данными позволяют управлять доступом к информации, находящейся внутри базы данных . Как правило, они используются для создания объектов, связанных с доступом к данным, а также служат для контроля над распределением привилегий между пользователями. Команды управления данными следующие: GRANT , REVOKE .

Команды администрирования данных

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

Команды управления транзакциями

Существуют следующие команды, позволяющие управлять транзакциями базы данных : COMMIT , ROLLBACK , SAVEPOINT , SET TRANSACTION .

Что такое DDL, DML, DCL и TCL в языке SQL

Для начала давайте вспомним, что такое SQL, и для чего он нужен.

SQL – Structured Query Language

Structured Query Language (SQL) — язык структурированных запросов, с помощью него пишутся специальные запросы (SQL инструкции) к базе данных с целью получения этих данных из базы и для манипулирования этими данными.

Иными словами, язык SQL нужен для работы с базами данных, более подробно о языке SQL можете почитать в отдельной моей статье – Что такое SQL. Назначение и основа.

С точки зрения реализации язык SQL представляет собой набор операторов, которые делятся на определенные группы и у каждой группы есть свое назначение. В сокращенном виде эти группы называются DDL, DML, DCL и TCL.

Таким образом, эти непонятные буквы представляют собой аббревиатуру
названий групп операторов языка SQL.

DDL – Data Definition Language

Data Definition Language (DDL) – это группа операторов определения данных. Другими словами, с помощью операторов, входящих в эту группы, мы определяем структуру базы данных и работаем с объектами этой базы, т.е. создаем, изменяем и удаляем их.

В эту группу входят следующие операторы:

  • CREATE – используется для создания объектов базы данных;
  • ALTER – используется для изменения объектов базы данных;
  • DROP – используется для удаления объектов базы данных.

DML – Data Manipulation Language

Data Manipulation Language (DML) – это группа операторов для манипуляции данными. С помощью этих операторов мы можем добавлять, изменять, удалять и выгружать данные из базы, т.е. манипулировать ими.

В эту группу входят самые распространённые операторы языка SQL:

  • SELECT – осуществляет выборку данных;
  • INSERT – добавляет новые данные;
  • UPDATE – изменяет существующие данные;
  • DELETE – удаляет данные.

DCL – Data Control Language

Data Control Language (DCL) – группа операторов определения доступа к данным. Иными словами, это операторы для управления разрешениями, с помощью них мы можем разрешать или запрещать выполнение определенных операций над объектами базы данных.

  • GRANT – предоставляет пользователю или группе разрешения на определённые операции с объектом;
  • REVOKE – отзывает выданные разрешения;
  • DENY– задаёт запрет, имеющий приоритет над разрешением.

TCL – Transaction Control Language

Transaction Control Language (TCL) – группа операторов для управления транзакциями. Транзакция – это команда или блок команд (инструкций), которые успешно завершаются как единое целое, при этом в базе данных все внесенные изменения фиксируются на постоянной основе или отменяются, т.е. все изменения, внесенные любой командой, входящей в транзакцию, будут отменены.

Группа операторов TCL предназначена как раз для реализации и управления транзакциями. Сюда можно отнести:

  • BEGIN TRANSACTION – служит для определения начала транзакции;
  • COMMIT TRANSACTION – применяет транзакцию;
  • ROLLBACK TRANSACTION – откатывает все изменения, сделанные в контексте текущей транзакции;
  • SAVE TRANSACTION – устанавливает промежуточную точку сохранения внутри транзакции.

А язык обработки данных (DML) это компьютер язык программирования используется для добавления (вставки), удаления и изменения (обновления) данных в база данных. DML часто подъязык более широкого язык базы данных Такие как SQL, при этом DML включает некоторые операторы языка. [1] Выбор данных только для чтения иногда выделяется как часть отдельного язык запросов данных (DQL), но он тесно связан и иногда также считается компонентом DML; некоторые операторы могут выполнять как выбор (чтение), так и запись.

Популярным языком манипулирования данными является язык Структурированный язык запросов (SQL), который используется для извлечения и управления данные в реляционная база данных. [2] Другие формы DML используются IMS/ DLI, КОДАСИЛ базы данных, такие как IDMS и другие.

Содержание

В SQL язык обработки данных включает в себя Изменение SQL-данных заявления, [3] которые изменяют сохраненные данные, но не схема или объекты базы данных. Манипулирование постоянными объектами базы данных, например, таблицами или хранимые процедурычерез операторы схемы SQL, [3] а не данные, хранящиеся в них, считается частью отдельного язык определения данных (DDL). В SQL эти две категории похожи по своему подробному синтаксису, типам данных, выражениям и т. Д., Но отличаются по своей общей функции. [3]

В Изменение SQL-данных утверждения являются подмножеством SQL-данные заявления; это также содержит ВЫБРАТЬ оператор запроса, [3] который, строго говоря, является частью DQL, а не DML. Однако в обычной практике это различие не проводится и ВЫБРАТЬ широко считается частью DML, [4] так что DML состоит из всех SQL-данные заявления, не только Изменение SQL-данных заявления. В ВЫБРАТЬ . В . form сочетает в себе как выбор, так и манипулирование, и поэтому строго считается DML, потому что он манипулирует (то есть модифицирует) данными.

Функциональные возможности языков манипулирования данными организованы по начальному слову в операторе, что почти всегда глагол. В случае с SQL это глаголы:

Например, команда вставить строку в таблицу сотрудники:

Варианты

Большинство реализаций баз данных SQL расширяют свои возможности SQL, предоставляя императив, то есть процедурные языки. Примеры таких Oracleс PL / SQL и DB2с SQL_PL.

Языки манипулирования данными, как правило, имеют множество разновидностей и возможностей у разных поставщиков баз данных. Для SQL был установлен ряд стандартов ANSI, [2] но производители по-прежнему предоставляют свои собственные расширения к стандарту, не внедряя при этом весь стандарт.

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

Читайте также: