Языки баз данных: DDL, DML, 4GL и другие

Обзор языков для Баз Данных

Внутренний язык СУБД для работы с данными состоит из двух частей: языка опре­деления Данных (Data Definition Language — DDL) и языка манипулирования Данны­ми (Data Manipulation Language — DML). Язык DDL используется для определения схемы базы данных, а язык DML — для чтения и обновления данных, хранимых в ба­зе.



Эти языки называются подъязыками Данных, поскольку в них отсутствуют конст­рукции для выполнения всех вычислительных операций, обычно используемых в язы­ках программирования высокого уровня, таких как условные операторы или операто­ры цикла. Во многих СУБД предусмотрена возможность внедрения операторов подъязыка данных в программы, написанные на таких языках программирования вы­сокого уровня, как СОВОL, Fortran, Pascal, Ada, С, С++, Java или Visual Basic. В этом случае язык высокого уровня принято называть базовым языком (host language). Перед компиляцией файла программы на базовом языке, содержащей внедренные операторы подъязыка данных, такие операторы удаляются и заменяются вызовами функций. За­тем этот предварительно обработанный файл обычным образом компилируется с по­мещением результатов в объектный модуль, который компонуется с библиотекой, со­держащей вызываемые в программе функции СУБД. После этого полученный про­граммный текст готов к выполнению. Помимо механизма внедрения, для большинства подъязыков данных предоставляются также средства интерактивного выполнения опе­раторов, вводимых пользователем непосредственно с терминала.

 

Язык определения данных - DDL

Язык DDL.  Описательный язык, который позволяет АБД или пользователю описать и именовать сущности и атрибуты, необходимые для работы некоторого приложения, а также связи, имеющиеся- между различными сущностями, кроме того, указать ограничения целостности и защиты.

Схема базы данных состоит из набора определений, выраженных на специ­альном языке определения данных — DDL. Язык DDL используется как для определения новой схемы, так и для модификации уже существующей. Этот язык нельзя использовать для управления данными.

Результатом компиляции DDL-операторов является набор таблиц, хранимый в особых файлах, называемых системным каталогом. В системном каталоге интегрированы метаданные т.е. данные, которые описывают объекты базы данных, а также позволяют упростить способ доступа к ним и управления ими. Метадан­ные включают определения записей, элементов данных, а также другие объекты, представляющие интерес для пользователей или необходимые для работы СУБД. Перед доступом к реальным данным СУБД обычно обращается к системному ката­логу. Для обозначения системного каталога также используются термины словарь Данных и каталог Данных, хотя первый из них (словарь данных) обычно относит­ся к программному обеспечению более общего типа, чем просто каталог СУБД. Системные каталоги более подробно обсуждаются в разделе 2. 7.

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

 

Язык управления данными - DML

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

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

  • вставка в базу данных новых сведений;
  • модификация сведений, хранимых в базе данных;
  • извлечение сведений, содержащихся в базе данных;
  • удаление сведений из базы данных.

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

Часть непроцедурного языка DML, которая отвечает за извлечение данных, называется языком запросов. Язык запросов можно определить как высокоуров­невый узкоспециализированный язык, предназначенный для удовлетворения различных требований по выборке информации из базы данных. В этом смысле термин "запрос" зарезервирован для обозначения оператора извлечения данных, выраженного с помощью языка запросов. Термины "язык запросов" и "язык управления данными" часто используются как синонимы, хотя с технической точки зрения, это некорректно.

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

Процедурные языки DML

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

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

Непроцедурные языки DML

Непроцедурный язык DML. Язык, который позволяет указать лишь то, какие данные требуются. но не то, как их следует  извлекать.

Непроцедурные языки DML позволяют определить весь набор требуемых дан­ных с помощью одного оператора выборки или обновления. С помощью непроце­дурных языков DML пользователь указывает, какие данные ему нужны, без оп­ределения способа их получения. СУБД транслирует выражение на языке DML в процедуру (или набор процедур), которая обеспечивает манипулирование затре­бованным набором записей. Такой подход освобождает пользователя от необхо­димости знать подробности внутренней реализации структур данных и особенно­сти алгоритмов, используемых для извлечения и возможного преобразования данных. В результате работа пользователя становится в определенной степени независимой от данных. Непроцедурные языки часто также называют Деклара­тивными языками. Реляционные СУБД в той или иной форме обычно включают поддержку непроцедурных языков манипулирования данными — чаще всего это язык структурированных запросов SQL (Structured Query Language) или язык запросов по образцу QBE (Query-by-Example). Непроцедурные языки обычно проще понять и использовать, чем процедурные языки DML, поскольку пользо­вателем выполняется меньшая часть работы, а СУБД — большая. Более подроб­но язык SQL рассматривается в главах 5, 6 и 21, а язык QBE — в главе 7.

 

Языки 4GL

Аббревиатура 4GL представляет собой сокращенный английский вариант на­писания термина язык четвертого поколения (Fourth-Generation Language). Четкого определения этого понятия не существует, хотя, по сути, речь идет о некотором стенографическом варианте языка программирования. Если для орга­низации некоторой операции с данными на языке третьего поколения (3GL) типа COBOL потребуется написать сотни строк кода, то для реализации этой же опе­рации на языке четвертого поколения достаточно 10-20 строк.

В то время как языки третьего поколения являются процедурными, языки 4GL выступают как непроцедурные, поскольку пользователь определяет, что должно быть сделано, но не сообщает, как именно должен быть достигнут же­лаемый результат. Предполагается, что реализация языков четвертого поколе­ния будет в значительной мере основана на использовании компонентов высоко­го уровня, которые часто называют "инструментами четвертого поколения". Пользователю не требуется определять все этапы выполнения программы, необ­ходимые для решения поставленной задачи, а достаточно лишь задать нужные параметры, на основании которых упомянутые выше инструменты автоматиче­ски осуществят генерацию приложения. Ожидается, что языки четвертого поко­ления позволят повысить производительность работы на порядок, но за счет ог­раничения типов задач, которые можно будет решать с их помощью. Выделяют следующие типы языков четвертого поколения:

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

В качестве примеров языков четвертого поколения можно указать упоминав­шиеся выше языки SQL и QBE. Рассмотрим вкратце некоторые другие типы языков четвертого поколения.

Генераторы форм

Генератор форм представляет собой интерактивный инструмент, предназна­ченный для быстрого создания шаблонов ввода и отображения данных в экран­ных формах. Генератор форм позволяет пользователю определить внешний вид экранной формы, ее содержимое и место расположения на экране. С его помо­щью можно задавать цвета элементов экрана, а также другие характеристики, например полужирное, подчеркнутое, мерцающее или реверсивное начертание шрифта и т.д. Более совершенные генераторы форм позволяют создавать вычис­ляемые атрибуты с использованием арифметических операторов или агрегирую­щих функций, а также задавать правила проверки вводимых данных.

Генераторы отчетов

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

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

Генераторы графического представления данных

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

Генераторы приложений

Генератор приложений представляет собой инструмент для создания про­грамм, взаимодействующих с базой данных. Применяя генератор приложений, можно сократить время, необходимое для проектирования полного объема тре­буемого прикладного программного обеспечения. Генераторы приложений обыч­но состоят из предварительно созданных модулей, содержащих фундаменталь­ные функции, которые требуются для работы большинства программ. Эти моду­ли, обычно создаваемые на языках высокого уровня, образуют "библиотеку" доступных функций. Пользователь указывает, какие задачи программа должна выполнить, а генератор приложений определяет, как их следует выполнить.

Вас заинтересует / Intresting for you:

База данных как объект правово...
База данных как объект правово... 1589 просмотров Денис Wed, 27 Mar 2019, 03:16:24
Перенос корпоративных баз данн...
Перенос корпоративных баз данн... 2814 просмотров Дэн Fri, 27 Sep 2019, 07:52:18
Что такое база данных  и СУБД?
Что такое база данных и СУБД? 9123 просмотров Светлана Mon, 21 Oct 2019, 17:58:45
Что такое базы данных? Назначе...
Что такое базы данных? Назначе... 12968 просмотров Ирина Светлова Mon, 28 Oct 2019, 05:41:34
Войдите чтобы комментировать