Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_BD.doc
Скачиваний:
49
Добавлен:
17.09.2019
Размер:
1.74 Mб
Скачать

17.Языки запросов. Понятие. Классификация

Запрос – специальным образом описанное требование, определяющее состав производимых над БД операций по выборке, удалению или модификации хранимых данных.

Языки запросов — это искусственные языки, на которых делаются запросы к базам данных и другим информационным системам, особенно к информационно-поисковым системам.

Языки запросов – языки высокого уровня, ориентированные на конечного пользователя и предназначенные для формирования запросов к БД.

Примеры:

  • SQL — де-факто стандартный язык запросов к реляционным базам данных.

  • Language Integrated Query — расширение для некоторых языков программирования в .NET Framework, добавляющее к ним SQL-подобный язык запросов.

  • XQuery — язык запросов, разработанный для обработки данных в формате XML.

  • XPath — язык запросов к элементам XML-документа.

Для подготовки запросов с помощью различных СУБД чаще всего используются два основных языка описания запросов:

  • Табличные – язык QBE (Query By Example) – язык запросов по образцу. Часто используется не только как самостоятельный ЯЗ, но и как построитель запросов на SQL.

  • Аналитические – язык SQL (Structurend Query Language) – структурированный язык запросов. Графические элементы используются частично. Использование дополнительных возможностей, выходящих за рамки языка данного класса.

По возможностям манипулирования данными при описании запросов указанные языки практически эквивалентны. Главное отличие между ними существует в способе формирования запросов: язык QBE предлагает ручное или визуальное формирование запроса, в то время как использование SQL означает программирование запроса.

Разделение SQL (это не различные языки, а разделы команд SQL сгруппированных по их функциям):

  • DDL (Язык Определения Данных) — так называемый Язык Описания Схемы в ANSI, состоит из команд, которые создают объекты (таблицы, индексы, просмотры, и так далее) в базе данных.

  • DML (Язык Манипулирования Данными) — это набор команд, которые определяют, какие значения представлены в таблицах в любой момент времени.

  • DCD (Язык Управления Данными) состоит из средств, которые определяют, разрешить ли пользователю выполнять определенные действия или нет. Они являются составными частями DDL в ANSI.

ЯЗ используются: в интерактивном режиме; встраиваются в программы.

* ЯЗ обычно не являются функционально-полными языками.

* Возможности языка зависят то его типа.

* Часто включают в себя дополнительные возможности: определения данных; корректировки данных.

ЯЗ зависят от СУБД: реляционные языки запросов; объектные языки запросов. В реляционных языках запросов источниками данных являются плоские таблицы (реальные или виртуальные (запросы, представления)) и результатом является плоская таблица.

Любой запрос определяет: - источник(и) информации; - поля, выводимые в ответ (обязательно); - условие отбора (не обязательно).

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

  • Процедурные языки обработки данных. Требуют от программиста кодирования программной логики, необходимой для навигации по физической структуре данных для идентификации и доступа к требуемым данным. Например, при использовании ADABAS программист должен написать код для спецификации записей данных (FIND), получить специфицированное множество данных и организовать цикл его просмотра (GET), а также предоставить код для актуализации полученных данных для пользователя.

Кроме того, процедурные языки обработки данных обычно являются контекстно-зависимыми в реализации. Следовательно, прикладные программы становятся полностью привязанными к конкретной системе БД, для которой они и были разработаны. Такая привязка прикладных программ к конкретным системам БД значительно ограничивает их мобильность.

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

Язык поисковых запросов (информационно-поисковый язык) – язык, на котором формулируются запросы к поисковым системам.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]