Funnybluejeans : другие произведения.

14

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
 Ваша оценка:

  Язык запросов - это искусственный язык, на котором делаются запросы к базам данных и другим информационным системам.
  Запрос представляет собой специальным образом описанное требование, определяющие состав производимых над базой данных операций по выборке, удалению или модификации хранимых данных. Для подготовки запросов с помощью различных СУБД чаще всего используются два основных языка описания запросов: язык QBE (Query By Example) - язык запросов по образцу; язык SQL (Structured Query Language) -структурированный язык запросов.
  SQL
  SQL  - формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).
  История создания.
  В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД.
  Когда в 1986 году первый стандарт языка SQL был принят ANSI.
  Стандартизация.
  Поскольку к началу 1980-х годов существовало несколько вариантов СУБД от разных производителей, причём каждый из них обладал собственной реализацией языка запросов, было принято решение разработать стандарт языка, который будет гарантировать переносимость ПО с одной СУБД на другую (при условии, что они будут поддерживать этот стандарт).
  В 1983 году Международная организация по стандартизации (ISO) и Американский национальный институт стандартов (ANSI) приступили к разработке стандарта языка SQL. В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесёнными позже (SQL:2008). Стандарт имеет модульную структуру - основная часть стандарта была вынесена в раздел "SQL/Foundation", все остальные были выведены в отдельные модули. Соответственно, остался только один уровень совместимости - Core, что означало поддержку этой основной части. Поддержка остальных возможностей оставлена на усмотрение производителей СУБД.
  Описание
  Язык SQL представляет собой совокупность:
  1. Операторов
  DDL (операторы определения данных):
  CREATE - создать объект БД
  ALTER - изменить объект БД
  DROP - удалить объект БД
  DML (операторы манипуляции данными) :
  SELECT - считать данные, удовлетворяющие условию запроса
  INSERT - добавить новые данные
  UPDATE - изменить существующие данные
  DELETE - удалить данные
  DCL (операторы управления доступа к данным):
  GRANT - предоставляет разрешение
  REVOKE - отзывает разрешение
  DENY - задает запрет, имеющий приоритет над разрешением
  TCL (операторы управления транзакциями):
  COMMIT - применяет транзакцию
  ROLLBACK - откатывает
  SAVEPOINT - делит транзакцию на более мелкие участки
  2. Вычисляемых функций
  AVG() Функция возвращает среднее значение столбца.
  COUNT() Функция возвращает число строк в столбце.
  MAX() Функция возвращает самое большое значение в столбце.
  MIN() Функция возвращает самое маленькое значение в столбце.
  SUM() Функция возвращает сумму значений столбца.
  Статический, динамичский SQL.
  Обычно при разработке программ все используемые в них SQL-операторы явно записываются в исходном коде. Такой вариант использования SQL-операторов обычно называют статический SQL. Многие полезные программы, однако, до момента запуска не "знают", какие именно SQL-операторы будут выполняться. Именно так и появляется динамический SQL - программа при запуске выполняет SQL-операторы, неизвестные вовремя компиляции. Например, программа генерирует запросы по ходу работы на основе введенных пользователем условий.
  
  
  
  
  Преимущества и недостатки
  +
  Независимость от конктретной СУБД
  Наличие стандартов
  Декларативность (не задумываешься как СУБД выполнит запрос //не всегда +)
  -
  Создатели реляционной модели данных Кодд и Дейт указывают на то, что SQL не явл истинным реляционным языком
  Сложность
  Наличие диалектов
  Реляционная алгебра, исчисления
  Реляционная алгебра базируется на теории множеств и является основой логики работы баз данных. 
  Стандартные операции теории множеств
  Объединение
  А объединяется с B = Кортежи из А, Кортежи из B, удаление дублей.
  Пересечение
  А пересекается с B = одинаковые кортежи A и B
  Вычитание
  A / B = Кортежи из А без кортежей из B
  Декартово произведение
  A x B = атрибуты А + атрибуты B
  Проекция (вертикальная вырезка)
  Проекция (A,(имя,фамилия)) = С, в С только имя и фамилия, удаление дублей
  Селекция
  Селекция (A,(имя = Иван)) = С, в С - имеет атрибуты А, содержит записи имя = Иван
  Соединение
  Соединение (A,B, (N фак = N фак)) = Селекция (А х B, (N фак = N фак))
  
  QBE
  QBE  - способ создания запросов к базе данных, с использованием образцов значений полей в виде текстовой строки. Реализации QBE преобразуют пользовательский ввод в формальный запрос к базе данных, что позволяет пользователю создавать сложные запросы без необходимости изучать более сложные языки запросов, такие как SQL.
  Данный метод отбора данных впервые предложен Моше Злуфом сотрудником исследовательского центра IBM в 1970 году.
  Эксплуатационным преимуществом поиска QBE является то, что для формирования запроса не требуется использовать специализированный язык запросов, синтаксис которого может быть сложен и недоступен конечному пользователю. Пользователю выводится окно, в котором указаны все поля данных, встречающиеся в каждой записи данных; введение информации в конкретное поисковое поле ограничит поиск совпадением (полным или частичным, в зависимости от договорённости реализации) по данному полю. Проверка условий осуществляется только по заполненным условиям на поля, а поля, условия на которые указаны не будут, могут соответствовать чему угодно. Многие практические реализации QBE допускают также не только конъюнктивное соединение условий в заполненных полях, но и другие варианты соединения условий (например, дизъюнкцию, отрицание, существование или несуществование связанных записей и другие).
   Примеры использование (много скринов) http://inf8.gym5cheb.ru/p30aa1.html
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"