|
2009 г.
Query-by-Example: язык баз данных
М.М. Злуф
Источник: журнал Системы Система (от др.-греч. — «сочетание»)— множество взаимосвязанных элементов, обособленное от среды и взаимодействующее с ней, как целое. Управления Управление— воздействие субъекта, направленное на достижение абстрактной (неконкретной), но вынужденно-корректируемой цели (задачи, идеи) в уже сложившихся рамках правил, которые неизбежно-совершенствуются когда субъект непротиворечивее познаёт реальность, с которой сосуществует. Базами Данных # 3/1996, издательский дом «Открытые системы»
Новая редакция: Сергей Кузнецов, 2009 г.
Оригинал: M. M. Zloof. Query-by-Example: a data base language. IBM Systems Journal, Vol.16, # 4, 1977.
Содержание
Выборка
Вставки, удаления, модификации
Создание таблицы
Заключение
Приложение
Благодарности
Литература
Обсуждается высокоуровневый язык управления базами данных, предоставляющий
пользователю удобный и унифицированный интерфейс для формирования запросов,
обновления, определения и контроля базы данных.
Чтобы выполнить некоторую операцию с базой данных, пользователь строит пример соответствующего
решения в схематических таблицах, которые можно ассоциировать с реальными
таблицами в базе данных. В настоящее время система используется в экспериментальном режиме
в нескольких приложениях.
Query-by-Example [1-4] – высокоуровневый язык управления базами данных,
предоставляющий удобный и унифицированный стиль для построения запросов,
обновления, определения и контроля базы данных. Согласно философии Query-by-Example,
от пользователя требуется весьма скромные знания для начала работы, и сводится
к минимуму количество концепций, которые он должен изучить для понимания
и использования всего языка. Синтаксис Синтаксис (от др.-греч. — «построение, порядок, составление»)— раздел лингвистики, изучающий строение предложений и словосочетаний. языка прост, но тем не менее он
охватывает широкий спектр сложных транзакций. Это достигается за счет использования
одних и тех же операций для извлечения, манипулирования, определения и контроля (насколько это возможно).
Операции языка имитируют, насколько возможно, ручное манипулирование
таблицами, сохраняя тем самым простоту, симметричность и нейтральность
реляционной модели [5,6]. Формулировка транзакции Транзакция (англ.transaction)— в информатике, группа последовательных операций, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта. Транзакции обрабатываются транзакционными системами, в процессе работы которых создаётся история транзакций. должна следовать мыслительному
процессу пользователя, предоставляя тем самым свободу при построении такой формулировки.
Система должна динамически создавать и уничтожать таблицы базы данных,
она должна также предоставлять пользователю возможности динамического определения
операторов контроля доступа и средств безопасности.
Архитектура Архитектура (лат.architectura от др.-греч. — старший, главный и — строитель, плотник) — искусство проектировать и строить здания и другие сооружения (также их комплексы), создающие материально организованную среду, необходимую людям для их жизни и деятельности, в соответствии с назначением, современными техническими возможностями и эстетическими воззрениями общества. Сами здания и сооружения также называют архитектурой. языка Query-by-Example направлена на удовлетворение сформулированных требований. Результаты различных психологических исследований
показывают, что для инструктирования непрограммистов требуется менее трех
часов, после чего они могут формулировать довольно сложные запросы. Без применения Query-by-Example для формулировки аналогичных запросов от пользователя потребовалось бы знание Знание— форма существования и систематизации результатов познавательной деятельности человека. Знание помогает людям рационально организовывать свою деятельность и решать различные проблемы, возникающие в её процессе. исчисления предикатов
первого порядка. Другими непроцедурными языками в этой области являются
SEQUEL [8] и QUEL [9].
Первая реализация Query-by-Example была выполнена Нибуром (K.E. Niebuhr Карстен Нибур (нем.Carsten Niebuhr, также Karsten Niebuhr, 17 марта 1733— 26 апреля 1815)— немецкий учёный на датской службе. Прославился как путешественник по арабским странам; его книги содержали ценнейшие для своего времени сведения о природе, истории и экономике арабского мира.) и Смитом (S.E.
Smith) [11]. В настоящее время язык в экспериментальном режиме используется в различных
приложениях, среди которых управление библиотечными файлами, ресурсами
компьютеров, файлами патентов, почтовыми файлами и платежными счетами.
Формальные синтаксис Синтаксис (от др.-греч. — «построение, порядок, составление»)— раздел лингвистики, изучающий строение предложений и словосочетаний. и семантика Семантика (от др.-греч. — обозначающий)— раздел языкознания, изучающий значение единиц языка. В качестве инструмента изучения применяют семантический анализ. В конце XIX— начале XX века семантика часто называлась также семасиологией (от др.-греч. smaino— указываю, означаю). Учёные, занимающиеся семантикой, до сих пор обычно называются семасиологами. Также «семантикой» может обозначаться сам круг значений некоторого класса языковых единиц (например, «семантика глаголов движения»)., обоснование полноты, спецификации авторизации и целостности
приведены в работе [12].
В следующих разделах на основе иллюстративных примеров выборки, манипулирования
и определения показываются возможности Query-by-Example.
Выборка
Часть языка, связанная с запросами, иллюстрируется примерами над следующими
таблицами:
- EMP (NAME, SAL, MGR, DEPT),
- SALES (DEPT, ITEM),
- SUPPLY (ITEM, SUPPLIER),
- TYPE (ITEM, COLOR, SIZE),
где таблица EMP определяет имя, зарплату, руководителя и отдел каждого
служащего, таблица SALES содержит список товаров, продаваемых каждым отделом,
таблица SUPPLY хранит список Список— письменный перечень, число, состав; документ, содержащий перечень каких-либо сведений; в переносном смысле— буквальное, точное воспроизведение, копия; рукописная копия древнего памятника письменности. товаров, поставляемых каждым поставщиком,
и таблица TYPE описывает цвет и размер каждого товара. Содержимое примерной базы данных и результаты запросов, демонстрируемых в примерах, приведены в Приложении.
В Query-by-Example фундаментальными являются две основные концепции.
Программирование производится внутри двумерных схематических таблиц.
Это делается путем заполнения соответствующих полей таблицы в примере решения.
Кроме того, проводится различие между константным элементом (constant element Хонда Элемент (англ.Honda Element) - компактный вседорожник класса SUV собираемый компанией Honda на заводе в Ист Либерти, штат Огайо (East Liberty, Ohio), США. Официальные продажи начались в 2003 году в США, Канаде и Японии. Элемент построен на базе Honda CR-V, но в совершенно иной, кубоподобной концепции дизайна кузова. Он короче на 300 мм, колесная база сокращена на 43 мм, выше на 198 мм и колея передних колёс уже на 43 мм.) и элементом
примера (example element). Элементы примера (переменные) подчеркиваются, а постоянные
элементы – нет.
Используя две эти концепции Концепция, или концепт, (от лат.conceptio— понимание, система)— определённый способ понимания (трактовки, восприятия) какого-либо предмета, явления или процесса; основная точка зрения на предмет; руководящая идея для их систематического освещения., пользователь может сформулировать широкий
спектр запросов. Рассмотрим, например, таблицу TYPE, которая содержит в
качестве заголовков столбцов ITEM, COLOR и SIZE. Допустим, пользователь
хочет сформулировать следующий запрос: "Вывести информацию обо всех зеленых товарах".
Изначально пользователю на экране предлагается схематическая таблица, как показано на рис. 1.

Рис. 1. Схематическая таблица
Пользователь Пользователь— лицо или организация, которое использует действующую систему для выполнения конкретной функции. вводит в поле имени таблицы имя таблицы, к которой будет адресоваться запрос: в данном случае имя таблицы – TYPE. Затем можно либо
ввести заголовки столбцов, либо позволить системе сделать это автоматически.
(Эта операция объясняется далее.) После этого пользователь формулирует
запрос, осуществляя ввод, показанный на рис. 2. Здесь P. означает <напечатать>,
и указывает на желаемый вывод. Элемент ROD, являющийся элементом примера
(переменной), подчеркнут и представляет пример возможно «Возможно» (фр.Peut-tre)— фильм режиссёра Седрика Клапиша 1999 года.го ответа. GREEN
(ЗЕЛЕНЫЙ) – это константный элемент, определяющий требуемое условие запроса; он не подчеркивается.

Рис. 2. Заголовок столбцов и необходимый ввод для получения товаров зеленого
цвета
Запрос можно перефразировать следующим образом: напечатать информацию обо всех товарах
– таких как ROD, – зеленым цвета . Элемент ROD не обязательно
должен содержаться в базе данных. Поскольку элемент примера является произвольным,
пользователь может обозначить его как X, 10, 11 или WATER без изменения
смысла и результатов запроса. Позднее Позднее (укр. Пізнє) — село в Козелецком районе Черниговской области Украины. Население 25 человек. Занимает площадь 0,203 км. мы увидем, что элементы примера, используются
для установления связей между двумя или более строками одной таблицы или
разных таблица. Там, где связи не нужны, элементы примера можно опускать.
Тем самым, допустима эквивалентная формулировка запроса на основе примера, показанная
на рис. 3. Другими словами, отдельно стоящий оператор P. по умолчанию означает P."Example Element". В следующих примерах мы используем P. или P."Example Element"
произвольным образом.
 Рис. 3. Альтернативная формулировка запроса для вывода зеленых деталей
После того, как пользователь сформулировал запрос, он нажимает клавишу Enter
для получения ответа. При использовании модельной базы данных, приведенной
в приложении, вывод запроса будет иметь вид, показанный на рис. 4. Выводится только столбец товаров, поскольку на рис. 3 P. было
введено только в столбец ITEM. Если бы P. было введено и в столбец
SIZE, система вывела бы и товары, и их размеры.

Рис. 4. Пример вывода на экран зеленых товаров
Когда пользователь представляет запрос (или любую другую операцию) в
схематической таблице, он осознает, что за этой схемой запроса находится реальная таблица с
теми же заголовками, что и таблица запроса, в которой содержатся реальные данные.
Другими словами, для выражения запроса он воспроизводит операцию ручного просмотра
таблиц. Если для выражения запроса пользователю требуются две или большее число
таблиц, он может образовать дополнительные пустые Пустые (яп. уро, «пустота»; с помощью фуриганы получает прочтение [хоро:], от англ.hollow— «пустой»), «минусы»— вымышленные существа, злые духи в аниме и манге «Блич». Пустые живут в альтернативной реальности Уэко Мундо, которая находится между Землей и Сообществом душ («раем»). Они иногда отправляются в реальный мир, чтобы питаться душами живых людей; особенно опасны, так как большинство людей не могут их видеть. Чтобы справляться с пустыми, земной мир патрулируют проводники душ. Как и проводники душ, пустые отличаются друг от друга по боевым способностям. Некоторые, наиболее сильные, могут пользоваться уникальными боевыми приёмами, а эволюционировавшие пустые— арранкары,— получив часть способностей проводников душ, получают и возможность владеть мечом. схемы (используя
специальные функциональные клавиши) и затем заполнить их заголовки.
Рассмотрим несколько типов запросов на иллюстративных примерах. Ответы на эти запросы приводятся в приложении.
Простая выборка. Вывести все цвета. Формулировка этого запроса
показана на рис. 5. Элемент примера WHITE может быть опущен. Дубликаты значений
цветов в этом случае выводиться не будут. (Метод вывода дубликатов приведен
в этой статье ниже.) В случае автоматического предоставления системой
заголовков столбцов, пользователь может (если это требуется) удалить неиспользуемые
столбцы. Таким образом, столбцы Столбцы (белор. Стоўбцы, польск. Stopce)— город в Минской области Белоруссии, административный центр Столбцовского района. Город спутник Минска. Расположен на правом берегу реки Нёман. Население— 15,4 тыс. человек (2011). Расположен в 65км к юго-западу от Минска на автомобильной дороге Минск— Барановичи. ITEM и SIZE можно было бы удалить.

Рис. 5. Простая выборка, см. результат запроса
Простая выборка с упорядочиванием. Вывести все цвета в алфавитном
порядке. Как показано на рис. 6, для вывода по возрастанию используется оператор AO.. Аналогично, для вывода по убыванию используется
оператор DO.. Там, где необходимы первичная и вторичная сортировки, для первичной сортировки Алгоритм сортировки — это алгоритм для упорядочения элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. На практике в качестве ключа часто выступает число, а в остальных полях хранятся какие-либо данные, никак не влияющие на работу алгоритма. ставится
AO(1)., а для
вторичной – AO(2)..

Рис. 6. Простая выборка с упорядочиванием, см. результат запроса
Простая выборка с множественным выводом. Вывести всю таблицу
TYPE. Эта операция показана на рис. 7. Здесь также могут быть использованы
элементы примера. Сокращенное представление этого же запроса показано на
рис. 8. Здесь оператор вывода P. применяется ко всей строке. Заметим, что
все системные операторы, такие как P., I. и AO., заканчиваются точкой.
Если таблица содержит много столбцов, пользователь может вывести все
необходимые, удалив предварительно ненужные столбцы и применив оператор
P. для всей строки Строки (укр. Строки) — село в Теофипольском районе Хмельницкой области Украины., представляющей только оставшиеся столбцы.
 Рис. 7. Простая выборка с множественным выводом

Рис. 8. Сокращенная простая выборка с множественным выводом
Выборка имен таблиц. Вывести список имен доступных таблиц базы
данных. Формулировка этого запроса приведена на рис. 9. Здесь оператор
вывода расположен в поле имени таблицы, запрашивая тем самым у системы
все доступные имена таблиц. Для нашей модельной базы данных результатом
этого запроса будет :
EMP
SALES
SUPPLY
TYPE
И снова элемент примера TAB является необязательным.

Рис. 9. Выборка имен таблиц
Выборка заголовков столбцов. Ранее говорилось, что вместо того, чтобы обязывать пользователя вводить
заголовки столбцов, система может сгенерировать их автоматически.
Как это делается, показано на рис. 10. В этом примере запрашиваются заголовки
столбцов таблицы TYPE. Здесь опять оператор p. применяется ко всей строке
заголовков, и в действительности, это пример является сокращенной формой
размещения нескольких операторов вывода в полях заголовков столбцов.
Автоматическая генерация Генерация — поколение, которое представлено более или менее одновозрастными особями, сменяемое последующим поколением, которое при дифференциации жизненного цикла может существенно отличаться от предыдущего. К примеру: при чередовании поколении (гетерагонии, метагенезе) у тлей (Aphidoidea), галлиц (Cecidomyiidae) и некоторых других насекомых. заголовков столбцов полезна, поскольку она освобождает
пользователя от необходимости запоминания этих заголовков (или нахождения
их в каталоге) и за счет этого предотвращает ошибки при вводе.
 Рис. 10. Выборка заголовков столбцов, см. результат запроса
Если пользователь введет в поле имени таблицы P. TAB P. (или P.P.), то система выведет каталог базы данных, т.е. имена таблиц и их соответствующие имена столбцов.
Ограниченная выборка. Вывести имена сотрудников, работающих
в отделе игрушек (toy) и получающих больше $10000. Этот запрос показан на рис.
11. Обратите внимание на условие "больше $10000".
Здесь возможно использование любого из следующих операторов сравнения:
≠, >, >=, <, <=. Если в качестве префикса не используется ни один из операторов сравнения, подразумевается оператор сравнения по равенству. Символ ≠ может
быть заменен символами ¬ или ¬=.
 Рис. 11. Ограниченная выборка Выборка или выборочная совокупность — множество случаев (испытуемых, объектов, событий, образцов), с помощью определённой процедуры выбранных из генеральной совокупности для участия в исследовании., см. результат запроса
Ограниченная выборка с частичным подчеркивание Подчёркивание, подчерк (_)— символ ASCII, имеющий код 0x5F (hex), 95 (dec). На стандартной компьютерной клавиатуре этот символ расположен совместно со знаком дефиса на клавише, находящейся справа от клавиши 0.м. Вывести названия
товаров зеленого цвета, начинающиеся с буквы I. Пример приведен на рис.
12. Символ I в конструкции "IKE" не подчеркнут и является
константой. Поэтому система выведет все зеленые товары, названия которых начинаются
с буквы I. Пользователь может применять частичное подчеркивание в начале,
середине или конце слова, предложения или абзаца, как в примере XPAY,
означающем слово, предложение или абзац, такие что где-то «Где-то» (англ.Somewhere)— художественный фильм Софии Копполы в жанре комедийной драмы по её собственному сценарию. 11 сентября 2010 года фильм получил «Золотого льва»— главный приз Венецианского кинофестиваля. В России фильм вышел на экраны 18 ноября 2010 года, в США— 22 декабря 2010 года. в них содержатся
буквы PA. Поскольку элементы примера могут быть пустыми, слова, предложения
и параграфы, начинающиеся или заканчивающиеся буквами PA, также удовлетворяют
этому условию.
 Рис. 12. Ограниченная выборка с частичным подчеркиванием, см. результат запроса
Возможность частичного подчеркивания полезна в том случае, когда хранимыми
данными является предложение или текст, и пользователю требуется найти
все примеры, содержащие определенное слово или корень Корень (лат.radix)— осевой, обычно подземный вегетативный орган высших растений, обладающий неограниченным ростом в длину и положительным геотропизмом. Корень осуществляет закрепление растения в почве и обеспечивает поглощение и проведение воды с растворёнными минеральными веществами к стеблю и листьям.. Если, например,
необходимо найти все данные, включающие слово Texas, формулировкой запроса будет
P.XTEXASY.
Ограниченная выборка с использованием связей. Вывести все
зеленые товары, продаваемые отделом игрушек. Формулировка запроса показана на рис. 13. В
этом случае пользователь использует и таблицу TYPE, и таблицу SALES, генерируя
две пустых схематических таблицы и заполняя их заголовками и требуемыми данными. В этом примере наилучшим образом иллюстрируется важность элементов примера. Здесь один и тот же элемент примера
должен быть применен в обеих таблицах, показывая,
что если товар из примера, такой как NUT, имеет зеленый цвет, то тот же товар
продается отделом игрушек. Только если одновременно выполняются оба условия, товар считается решением. Эквивалентом при ручной обработке была бы следующая процедура:
просмотр таблицы TYPE и нахождение товара зеленого цвета, с последующим
просмотром таблицы SALES для определения того, продается ли данный товар
отделом игрушек. Поскольку в формулировке запроса нет никаких указаний на то,
как должен обрабатываться запрос, и в каком порядке должен осуществляться
просмотр таблиц, она является нейтральной и симметричной.
 Рис. 13. Ограниченная выборка с использованием связей, см. результат запроса
Поняв концепцию связывания элементов примера пользователь может связывать любое число таблиц и любое число строк одной таблицы, как в следующем примере.
Элементы примера, связанные в одной таблице. Найти имена и
зарплаты сотрудников, получающих больше, чем Льюис (Lewis). Запрос показан на рис.
14. Пусть, например, зарплата Льюиса составляет S1, как тогда зовут служащих, зарплата которых больше S1? Порядок строк в примере несущественен: пользователь
не обязан каким-либо образом структурировать запрос. Вместо этого существует
возможность формулировать запрос в соответствии с особенностями мыслительного процесса конкретного пользователя.
 Рис. 14. Элементы примера, связанные в одной таблице, см. результат запроса
Другим средством Query-by-Example является возможность формирования
сложного запроса путем расширения существующего простого запроса. Такое
расширение предыдущего примера путем добавления дополнительного
условия показано на рис. 15. В этом запросе требуется найти имена и зарплаты служащих, получающих больше, чем Льюис, и работающих
в отделе, продающем ручки.
 Рис. 15. Расширение примера с рис. 14, см. результат запроса
Еще один запрос может состоять в нахождении имен служащих, получающих больше, чем их менеджеры.
Его можно переформулировать следующим образом: вывести имена служащих,
менеджером которых может быть Джонс (JONES,
например), и размер зарплаты которых больше S1 (например), где S1 – зарплата Джонса. Здесь
один и тот же элемент примера используется для связи менеджера в первой
строке и имени во второй строке, и один и тот же элемент примера применяется для
сравнения зарплат. Порядок строк, конечно, вновь несущественен. После
получения ответа пользователь имеет возможность вернуться назад и модифицировать
или исправить старый запрос. Если, например Пример рассматривается в риторике чаще всего в контексте доказательств и аргументов. Для Квинтилиана пример является одним из дополняющих, наглядных доводов к высказыванию, либо упоминанием полезного, настоящего или якобы существующего образца убеждения того, что определено тобой одним. Правда, в отличие от доказательств, связь с предметом обсуждения должна быть установлена прежде автором или оратором., пользователь не уверен, что
последний запрос верен, т.е. что запрос был правильно сформулирован, он
может снабдить каждый элемент операторами вывода, получив при этом имена
служащих, их зарплаты и имена их руководителей в первой строке и те же
имена руководителей и их зарплаты во второй строке. Таким способом пользователь
может проверить правильность выполнения запроса.
Рис. 16. Две связи в одной и той же таблице, см. результат запроса
Выборка с использованием отрицания. Вывести все отделы, в которых продается некоторый товар
товар, не поставляемый компанией Pencraft. Этот запрос показан на рис. 17.
Здесь использован оператор отрицания (¬) для всего выражения
запроса в таблице SUPPLY. Этот запрос может быть перефразирован следующим образом: вывести
названия отделов, продающих товары INK, такие что PENCRAFT не поставляет
товары INK. Другими словами, система должна просматривать пары (INK,
PENCRAFT) по всей таблице, и название соответствующего отдела выводится
только в том случае, если такой пары не находится. Этот запрос отличается
от того, который обсуждается в следующем абзаце.
 Рис. 17. Выборка с использованием отрицания, см. результат запроса
Выборка с использованием отрицания. Вывести все отделы, котрые продают товары,
поставляемые поставщиком, отличающимся от компании Pencraft. Этот запрос
проиллюстрирован на рис. 18. В этом примере система извлекает данные таблиц Богуслав Таблиц (словацк. Bohuslav Tablic (Tablicz); 6 сентября 1769, Ческе Брезово, Словакия — 21 января 1832, Костолне Моравце, Словакия) — чешско-словацкий писатель, священник, деятель возрождения словаков-лютеран, подобно тому как Бернолак является деятелем возрождения словаков-католиков. Таблиц учредил в Пресбурге «Общество чешско-словацкой литературы и языка» с целью издавать на понятном народу чешском языке простонародные и школьные книги. Учреждение этого общества было причиной если не процветания словацкой литературы, то появления в пресбургском лицее кафедры словацкого языка, для чего общество собрало большой капитал. Занять кафедру приглашен был Юрай Палкович. Общество скоро распалось, но кафедра продолжала существовать. Молодёжь имела возможность слушать историю своего народа на родном языке. В 1812 г. Таблиц был одним из основателей нового «Литературного общества Горных Городов» (Bergstdte), задававшегося прежней целью; результатом было открытие кафедры словацкого языка и в Банской Штьявнице. Это общество также скоро распалось. Таблиц писал очень много и по различным специальностям. Первое место занимают его «Poesie» (Вацов, 1806-1812). К ним приложены биографии известных словацких деятелей. Его «Sloventi verovci» (Вацов, 1805-1809) — отрывки из произведений древних словацких писателей, в то время почти уже позабытых. Перу Таблица принадлежит также много книг для народа, изданных двумя упомянутыми обществами.ы
SUPPLY для поставщиков, отличающихся от Pencraft, и затем выбирает соответствующие
отделы. Обратите внимание Внимание— избирательная направленность восприятия на тот или иной объект., что пара (INK, PENCRAFT) также может существовать.
 Рис. 18. Выборка с использованием отрицания, см. результат запроса
Выборка Выборка или выборочная совокупность — множество случаев (испытуемых, объектов, событий, образцов), с помощью определённой процедуры выбранных из генеральной совокупности для участия в исследовании. связанных данных из нескольких таблиц. Вывести названия
всех отделов вместе с названиями их поставщиков. Поскольку результатом вывода является новая
таблица, пользователь должен сгенерировать третью схематическую таблицу и заполнить
его элементами примеров из двух существующих таблиц, удовлетворяющими условиям запроса.
Так как эта таблица создается пользователем – и, следовательно, не содержит
хранимых данных – он может заполнить поля заголовков столбцов или оставить
их пустыми. Это показано на рис.19.
 Рис. 19. Выборка связанных данных из нескольких таблиц, см. результат запроса
Использование ZZZ, THING и XXX в качестве заголовков иллюстрирует тот
факт, что пользователь может выбирать свои собственные заголовки. В результирующую
таблицу из двух других таблиц передаются только связанные элементы
TOY
и IBM. Наличие элемента INK в обеих таблицах SALES и SUPPLY
означает, что TOY – это отдел, в который товар INK поставляется поставщиком IBM. Порядок таблиц не является существененным, т.е. результирующая таблица
не обязательно должна отображаться первой.
Если пользователь не сгенерирует третью таблицу, а снабдит префиксом
P. элементы TOY и IBM в двух исходных таблицах, то в результате появятся
две отдельные таблицы, одна из которых будет содержать отделы, а другая
– поставщиков. Тогда связь между отделами и их поставщиками будет утеряна.
Рассмотрим следующую таблицу: EMP1 (NAME, SAL, COMMISSION).
Арифметические операции. Для каждого служащего вывести его имя
и зарплату плюс комиссионное вознаграждение. Здесь пользователь вновь создает выводную
таблицу и выполняет в ней требуемую арифметическую операцию, как показано
на рис. 20. В этом случае пользователь создает таблицу OUTPUT и определяет
заголовок EARNING. Арифметическое выражение (S1 + S2) суммирует
зарплату и комиссионное вознаграждение каждого служащего. В таблице допускается любое арифметическое выражение.
 Рис. 20. Арифметические операции, см. результат запроса
Выборка с использованием блока условий. В Query-by-Example имеются
два двухмерных объекта. Первый из них – это уже обсуждавшаяся схематическая таблица. Второй Второй — второй по счёту альбом песен Владимира Высоцкого в исполнении Григория Лепса, записанный и вышедший в 2007 году объект
– это блок условий (condition box), представляющий собой блок с заголовком CONDITIONS.
Пустой блок условий может быть отображен по желанию пользователя в любое
время. Блок условий используется для выражения одного или нескольких требуемых
условий, которые трудно выразить в таблице.
Представление запроса "вывести имена служащих, зарплата которых больше суммы зарплат
служащих Джонса (Jones) и Нельсона (Nelson Эдвард Уильям Нельсон (англ.Edward William Nelson) — американский исследователь и этнолог.)" показано на рис. 21. Конечно,
это простое условие можно было бы выразить путем замены S1 на >(S2 + S3)
в первой строке таблицы EMP.
 Рис. 21. Использование блока условий, см. результат запроса
Знак равенства в блоке условий является условием сравнения по равенству, и его не
следует путать с оператором присваивания. Операторы Оператор (позднелат.operator— работник, исполнитель, от operor— работаю, действую)— то же, что отображение в математике. присваивания подразумевают
процедурность, а Query-by-Example – язык непроцедурный. Поэтому операторы Оператор (позднелат.operator— работник, исполнитель, от operor— работаю, действую)— то же, что отображение в математике.
присваивания не допускаются. Выражение "W=M+N",
например, может быть сформулировано как "M+N=W"
или "M=W-N". Выражение "M=M+1"
всегда «Всегда» — кинофильм. Детям рекомендуется просмотр совместно с родителями. является ложным. Разные условия в блоке условий вводятся на разных
строках, но должны выполняться одновременно, т.е. над результатами разных
условий выполняется логическая операция AND.
Выборка с использованием AND и OR. В Query-by-Example операции
AND и OR выражаются неявно. В большинстве приведенных примеров мы задавали
операцию AND над условиями, либо размещая более двух условий
на одной и той же строке (ограниченная выборка), либо связывая разные строки с помощью
элемента примера (ограниченная выборка с использованием связей). Запросы,
приведенные на рис. 22 и 23, демонстрируют неявное использование операций
AND и OR. На рис. 24 и 25 эти запросы переформулируются
с использованием блока условий.
Вывести имена служащих, зарплата которых составляет от $10000 до $15000
и не равна $13000. Этот запрос показан на рис. 22. Применение элемента
примера JONES во всех трех строках приводит к тому, что для слухащего
JONES для этих трех условий выполняется операция AND.

Рис. 22. Неявная операция AND, см. результат запроса
Вывести имена служащих, зарплата которых составляет $10000, $13000
или $16000. Этот запрос проиллюстрирован на рис. 23. В различных строках
используются разные элементы примера, поэтому эти три строчки выражают
независимые запросы. Результатом является объединение трех множеств ответов.
(В этом примере нельзя применить оператор P. без указания
элемента примера.)
 Рис. 23. Неявная операция OR, см. результат запроса
Переформулировка запросов с операциями AND и OR с использованием блока условий.
Рис. 24 иллюстрирует формулировку условия с применением операции AND в блоке условий.
Рис. 25 показывает формулировку условия с применением операции OR.
Для представления операции AND используется амперсенд (&), а символ | представляет операцию OR.

Рис. 24. Операция AND в блоке условий

Рис. 25. Операция OR в блоке условий
Пользователь может также указать операции AND и OR между упорядоченными парами
значений, как в следующем примере. Вывести имена сотрудников,
зарплата и отдел которых являются либо парой ($10000, Toy), либо парой ($20000,
Hardware). Зарплаты и отделы являются упорядоченными парами, и между этими парами может присутствовать OR, как показано на рис.26.

Рис. 26. Операция OR над упорядоченными парами, см. результат запроса
Заметим, что с использованием концепций элемента примера,
константного элемента, оператора вывода и применением этих конструкций в
схематических таблицах и блоках условий пользователь может выражать весьма
сложные запросы, включающие широкий спектр Спектр (лат.spectrum от лат.specter— видение, призрак) в физике— распределение значений физической величины (обычно энергии, частоты или массы). Графическое представление такого распределения называется спектральной диаграммой. Обычно под спектром подразумевается электромагнитный спектр— спектр частот (или, что то же самое, энергий квантов) электромагнитного излучения. операций над реляционными
базами данных, таких как проекции, выборки, соединения, проекции соединений,
объединение, разность, пересечение и арифметические операции.
В языке Query-by-Example имеются шесть встроенных фунций:
CNT. (count), SUM., AVG. (average), MAX. (maximum), MIN. (minimum) и
UN. (unique). Функция UN. может быть присоединена к функциям CNT.,
SUM. или AVG.. Например, CNT. UN. означает, что число только различных значений. Следующие примеры иллюстрируют применение
этих функций.
Выборка с использованием встроенных функций и оператора ALL.. Подсчитать общее число служащих. Этот запрос показан на рис.
27. Выражение ALL.JONES представляет собой мультимножество (множество,
содержащее дубликаты) всех имен в таблице EMP, и функция CNT. осуществляет
подсчет числа элементов этого множества. Здесь снова можно использовать
конструкцию P.CNT.ALL., опуская элемент примера JONES.

Рис. 27. Использование функции CNT, см. результат запроса
Подсчитать общее количество отделов в таблице SALES. Этот запрос проиллюстрирован
на рис. 28. Поскольку в столбце DEPT существуют дубликаты отделов (столбец
DEPT не является ключом), для удаления дубликатов присоединяется функция
UN.. Функция ALL. не удаляет дубликаты автоматически, так как она порождает
мультимножество. Заметим, что в случае использования конструкции
P.ALL.TOY будет получен список всех отделов с их дубликатами.

Рис. 28. Использование функций CNT. и UN., см. результат запроса
Ограниченная выборка с использованием встроенных функций.
Вывести сумму зарплат в отделе игрушек. Этот запрос показан на рис. 29. Конструкция
ALL.S1 порождает мультимножество всех зарплат, соответствующих TOY, т.е. мультимножество всех зарплат отдела игрушек. Таким образом, если
зарплата каждого из пятидесяти служащих составляет $12000, при суммировании
эта сумма будет учтена пятьдесят раз.

Рис. 29. Ограниченная выборка с использованием встроенных функций, см. результат запроса
Выборка с группированием. Для каждого отдела вывести его название
и сумму зарплат всех служащих. Этот запрос показан на рис. 30. Группирование
задается путем двойного подчеркивания TOY для явного указания
оператора group-by. Этот запрос может быть перефразирован следующим образом:
для каждого отдела TOY (например) просуммировать зарплаты всех его сотрудников.

Рис. 30. Выборка с группированием, см. результат запроса
Вывести отделы Тип (лат.phylum)— один из высших рангов таксономической иерархии в зоологии. В ботанических классификациях ему соответствует отдел (лат.divisio)., в которых работает более трех сотрудников. Этот запрос показан на рис. 31. Встроенные функции применимы только к выражениям, значениями которых являются множества,
поэтому необходимо использовать оператора ALL. или выражение-множество,
заключенное в скобки. Поэтому, например, при попытке использования вызова CNT.INK вызникнет
сообщение об ошибке.

Рис. 31. Условие на множество товаров, см. результат запроса
Выборка с использованием ALL., включающая "связи множеств"
Вывести названия отделов, продающих, по крайней мере, все товары зеленого
цвета. Этот запрос показан на рис. 32. Значением выражения ALL.INK в таблице TYPE
является мультимножество (т.е. множество, содержащее дубликаты)
всех зеленых товаров. Строки таблицы SALES означают, что производится
поиск отделов (таких как TOY), продающих это множество товаров и,
может быть, что-нибудь еще. Звездочка означает, что могут существовать
дополнительные товары, не входящие в это множество.

Рис. 32. Выборка, включающая "связи множеств", см. результат запроса
Вывести названия отделов, таких что все продаваемые ими товары имеют зеленый цвет. Запрос показан на рис. 33. В этом примере конструкция Конструкция — инженерное решение архитектурного сооружения, строения, машины относительно структуры, плана и взаимного расположения.
ALL.INK таблицы SALES представляет собой мультимножество всех товаров,
продаваемых отделом TOY. Звездочка в таблице TYPE означает, что,
несмотря на то, что товары ALL.INK должны быть зеленого цвета, могут
существовать другие товары зеленого цвета.

Рис. 33. Выборка, включающая "связи множеств", см. результат запроса
Вывести названия отделов, продающих все товары зеленого цвета и ничего
больше. Запрос показан на рис. 34. Здесь множества Множество— один из ключевых объектов математики, в частности, теории множеств и логики. в обеих таблицах совпадают.
Это означает, что не существует дополнительных товаров, не являющихся зелеными,
и не существует других товаров зеленого цвета, продаваемых другими отделами.

Рис. 34. Выборка, включающая "связи множеств", см. результат запроса
Вывести названия отделов, продающих все те товары, что и отдел аппаратуры (Hardware),
и, может быть, что-то еще. Исключить из этого списка сам отдел аппаратуры .
Запрос показан на рис. 35.

Рис. 35. Выборка с использованием блока условий, включающая "связи множеств", см. результат запроса
Несмотря на то что простая связь может быть выражена путем использования
одного элемента примера в двух или более строках, в связи множеств необходимо
различать равенство множеств и вхождение одного множества в другое.
Первое достигается указанием идентичных связей множеств, как показано на
рис. 34, второе – использованием звездочки.
В общем случае скобочное выражение может содержать одно или более множеств,
а также произвольное количество единичных элементов примера и константных
элементов. В него также может входить или не входить единичная звездочка.
Например, допустимым является следующее скобочное выражение:

В то же время выражение

не является правильным, поскольку оно не содержит множества.
Вставки, удаления, модификации
Вставки (I.), удаления (D.), модификации (U.) выполняются в том же стиле,
что и операции выборки. Основное различие заключается в использовании операторов
I., D. и U. вместо P., который употребляется в выражениях запросов. Этот
раздел состоит из двух частей: простые вставки, удаления
и модификации; операции, зависящие от запроса. Термин Термин (от лат.terminus— предел, граница)— слово или словосочетание, точно и однозначно именующее понятие и его соотношение с другими понятиями в пределах специальной сферы. Термины служат специализирующими, ограничительными обозначениями характерными для этой сферы предметов, явлений, их свойств и отношений. В отличие от слов общей лексики, которые зачастую многозначны и несут эмоциональную окраску, термины в пределах сферы применения однозначны и лишены экспрессии. "простая"
относится к операции, включающей только константные элементы.
Простая вставка. Вставить в таблицу служащих нового служащего
отдела игрушек по имени Джонс (Jones) зарплата которого составляет $10000, а менеджером является Генри (Henry). Эта операция показана на рис. 36. Так же, как оператор
P., когда он используется для целой строки, оператор I. применяется ко всей строке. Пустое поле при выполнении вставки интерпретируется как null-значение с тем ограничением, что не допускается ввод null-значений в поля первичного ключа; на рис. 36 это поле NAME. Такое ограничение согласуется с реляционной моделью
[5, 6] в том отношении, что поле первичного ключа должно однозначно идентифицировать
запись (кортеж). (Спецификация Спецификация— (позднелат.specificatio, от лат. species - род, вид, разновидность и facio - делаю) инженерный термин, обозначающий набор требований и параметров, которым удовлетворяет некоторая сущность. К примеру, мост через реку удовлетворяет таким параметрам, как максимальный общий вес нагрузки, максимальная нагрузка на ось, максимальная скорость ветра ит.д. поля первичного ключа показана ниже на рис.
45.)

Рис. 36. Простая вставка
Простое удаление. Удалить информацию обо всех служащих отдела
игрушек. Эта операция показана на рис. 37. В этом случае удаляются
все записи, которые содержат значение TOY в поле DEPT. Разумеется, допускается
заполнение полей NAME, SAL, MGR элементами примера.

Рис. 37. Простое удаление
Простая модификация Мод (сокр. от «модификация») — модификация или дополнение к компьютерной игре, написанное, как правило, сторонними разработчиками или любителями с помощью SDK, прилагающегося к игре или специальных, разработанных для модифицирования игр любительских программ. В отличие от адд-она, при его разработке часто радикально изменяет баланс сил (в стратегических играх) или набор оружия и возможности героя (в 3D-шутерах).. Установить в качестве нового значения зарплаты Генри (Henry) $50000. Эта операция показана на рис. 38. Query-by-Example
не позволяет изменять поле(я) первичного ключа. В примере на рис. 38 новое
значение зарплаты Генри устанавливается независимо от прежнего значения
этого поля. Поле(я) первичного ключа должно(ы) обязательно специфицироваться
для обеспечения уникальности. Пустое поле означает, что никакая модификация
не требуется. Если требуется изменить содержимое поля на null-значение, то
следует ввести слово NULL или специальный определяемый пользователем
символ; способ определения такого символа описан ниже.

Рис. 38. Простая модификация
Вставка, зависящая от выборки. Вставить в таблицу служащих нового
сотрудника отдела игрушек c именем Генри (Henry), менеджером которого является Ли (Lee), а зарплата
такая же, как у служащего с именем Льюис (Lewis). Эта операция представлена
на рис. 39. Это пример вставки, зависящей от выборки, поскольку система
должна сначала произвести произвести запрос к базе данных для нахождения зарплаты Льюиса, а затем
скопировать полученное значение для Генри. Хотя последовательность строк при формулировании операции несущественна,
в ней присутствует неявное упорядочение выполнения – вставку нельзя завершить
до выполнения запроса.

Рис. 39. Вставка, зависящая от выборки
Удаление, зависящее от выборки. Удалить всех служащих, работающих
в отделе продажи ручек. Эта операция показана на рис.
40. Заполнение поля NAME, SAL, MGR элементами примера здесь не требуется, хотя и не запрещается.

Рис. 40. Удаление, зависящее от выборки
Модификации, зависящие от выборки. Часто требуется модифицировать некоторое поле на основе его предыдущего значения. Это делается неявным образом. Пример: повысить зарплаты служащих отдела игрушек на 10
процентов. Эта операция показана на рис. 41. Выражение в
поле SAL в строке, содержащей U. задает новое значение
зарплаты; вторая строка специфицирует выборку прежнего значения. Операцию
можно переформулировать следующим образом: выбрать запись со значением
TOY в поле DEPT, найти значение поля зарплаты S1 и изменить его
на новое, равное 1,1*S1.

Рис. 41. Модификации, зависящие от выборки
Поскольку результатом выборки из отношения (таблицы) также является некоторое отношение (таблица), то пользователь может оперировать непосредственно с такой таблицей.
Например, получив результат выборки всех служащих отдела игрушек, он может
удалить любую запись, поставив напротив нее символ операции D. и нажав
клавишу ENTER.
Создание таблицы
Создание таблицы в языке Query-by-Example выполняется в том же стиле,
что и описанные ранее операции. Таблица определяется при помощи схематических таблиц
с константными элементами и элементами примера. Пользователю предоставляются
средства для создания новых таблиц и расширения Расширение имени файла (англ.filename extension, часто говорят просто расширение файла или расширение)— последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла. Это один из распространённых способов, с помощью которых пользователь или программное обеспечение компьютера может определить тип данных, хранящихся в файле. существующих, для определения
моментальных снимков (snapshot), представляющих собой выборки данных из нескольких таблиц,
выполненные в определенные моменты времени, или динамических представлений (view) данных,
выбираемых из множества таблиц. Все эти операции выполняются
неявно, без использования специальных ключевых слов, как это было в более
ранних версиях языка [2].
Создание новой таблицы. На рис. 42 продемонстрировано создание
таблицы с именем EMP и столбцами NAME, SAL, MGR, DEPT. Начиная с пустой схематической таблицы (как при формулировании запроса), пользователь заполняет заголовки
именами полей. Оператор I. справа от EMP относится ко всей строке заголовков
столбцов.

Рис. 42. Создание заголовков столбцов новой таблицы
Для спецификации типов данных, размеров, доменов, ключей и т.д. используются атрибуты строк (ключевые слова). Для упрощения работы
пользователя эти атрибуты подсоединяются ко всем схематическим таблицам, и пользователю не нужно
вставлять их самому. Например, он может запросить имена атрибутов, как
это показано на рис. 43. Данная операция создает новую таблицу и затем
выполняет вывод всех атрибутов строк в системе. Результат этого оператора
показан на рис. 44. Пользователь затем определяет атрибуты таблицы, заполняя соответствующие
строки схематической таблицы, как показано на рис. 45. Поскольку атрибуты строк уже встроены в эту таблицу, вводить I. справа от них не требуется, но это и не повредит.

Рис. 43. Выборка имен атрибутов строк

Рис. 44. Отображение Функция— математическое понятие, отражающее связь между элементами множеств. Можно сказать, что функция это «закон», по которому каждому элементу одного множества (называемому областью определения) ставится в соответствие некоторый элемент другого множества (называемого областью значений). имен атрибутов строк

Рис. 45. Определения атрибутов
Ниже приведены описания атрибутов строк для таблиц.
- TYPE задает тип элемента данных, например, CHAR, FLOAT, FIXED и т.д.
- LENGTH задает длину соответстующего поля. (По умолчанию ширина
Длина— физическая величина, числовая характеристика протяжённости линий. В узком смысле под длиной понимают линейный размер предмета в продольном направлении (обычно это направление наибольшего размера), то есть расстояние между его двумя наиболее удалёнными точками, измеренное горизонтально, в отличие от высоты, которая измеряется в вертикальном направлении, а также ширины или толщины, которые измеряются поперёк объекта (под прямым углом к длине). В физике термин «длина» обычно используется как синоним «расстояния» и обозначается L или l. равна длине заголовка
столбца.)
- KEY специфицирует поля, которые должны считаться
полями первичного ключа. (K обозначает Key – ключ, NK означает NonKey –
не ключ.) Как уже говорилось, поля первичного ключа не могут содержать null-значения,
а также значения-дубликаты. Для полей, специфицированных как ключевые,
гарантируется поддержка этих ограничений. Система также не позволяет изменять
значения этих полей.
- DOMAIN задает имя домена, т.е. множества значений, из которого берутся значения элементой данных. Например, данные столбцов NAME и MGR
берутся из домена NAMES. Спецификация атрибута DOMAIN полезна в тех случаях,
когда нужно знать, какие столбцы принадлежат к одному и тому же домену.
Для этого не всегда оказываются достаточными имена столбцов. Например, столбцы NAME
и MGR в таблице EMP определены на одном и том же домене. Следовательно, элементы
NAME и MGR могут быть связаны.
- SYSNULL (System Null) задает необязательный символ, обозначающий системное
null-значение. В данном примере используется символ "–".
Задав значения всех или части атрибутов из примера Примера Дивизион (исп.Primera Divisin) профессиональной футбольной лиги Испании (исп.Liga de Ftbol Profesional, LFP), известный также как Примера и Ла Лига (исп.La Liga), является профессиональным футбольным турниром клубов высшего уровня в системе футбольных лиг Испании. Ла Лига считается одной из лучших футбольных лиг в мире. на рис.
45, пользователь может в той же самой схематической таблице ввести данные Данные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе.. Вставив
данные, можно через ту же схематическую таблицу формулировать запросы, относящиеся как к каталогу определения
данных, так и к самим данным.
Расширение таблицы. Владелец таблицы может расширить ее определение в той же манере, как при создании новой таблицы. Например, можно добавить к таблице EMP столбец COMMISSION. Сначала пользователь
запрашивает из таблицы EMP все данные, относящиеся к атрибутам строк (рис. 46). Результатом
этого запроса будет полный каталог таблицы, как он был определен ранее.
Затем пользователь вставляет имя нового столбца и новые значения значения
атрибутов, как показано на рис. 47. Если в данной таблице уже присутствуют данные, то считается, что в существующих строках столбец COMMISSION содержит null-значения до тех пор, пока
пользователь не модифицирует таблицу.

Рис. 46. Выборка данных, касающихся атрибутов строк

Рис. 47. Определение нового столбца в таблице
Модификация Модификация — (позднелат.modificatio — установление меры, от лат.modus — мера, вид, образ, преходящее свойство и лат.facio — делать), преобразование, усовершенствование, видоизменение чего-либо с приобретением новых свойств. Модификации — качественно различные состояния или разновидности чего-либо. каталога таблицы. Оператор U. изменяет каталог таблицы
– будь то заголовки или спецификации атрибутов – подобно тому, как при помощи оператора
I. осуществляется вставка. Например, если нужно изменить имя таблицы с
EMP на EMP1, то указать U. перед именем таблицы оператор и ввести
новое имя поверх старого. Нажатие клавиши ENTER приведет к изменению имени таблицы.
Удаление информации из каталога таблицы и ликвидация таблицы. Оператор D. используется для удаления элементов каталога точно так же, как и для удаления обычных
данных. Например, поместив оператор D. в запись, содержащую спецификации ключевых/неключевых
полей, вы удалите эти спецификации.
Чтобы уничтожить столбец таблицы, достаточно указать D. перед
его именем. Фактически, это является сокращенным способом
удаления всех данных столбца, а затем и имени столбца. Аналогично,
указание оператора D. перед именем таблицы является сокращенным способом удаления всех строк таблицы, информации каталога, заголовков столбцов
и имени таблицы.
Создание моментального снимка (snapshot). Ранее мы показали, как можно получить новую таблицу,
состоящую из данных других таблиц. Эта таблица отображалась на экране,
но не сохранялась системой. Пользователь может сохранить такую таблицу,
создав для нее заголовок (как при создании новой таблицы).
Воспроизведем пример, показанный на рис. 19,
но сохраним результирующую таблицу под именем SS, определив заголовки ее
столбцов: DEPT и SUPPLIER. Это показано на рис. 48.
Таблица SS является моментальным снимком данных, хранившихся в исходных таблицах
в момент его создания. Поскольку теперь это новая таблица в нашей базе
данных, то по отношению к ней можно выполнять операции вставки, удаления,
модификации.

Рис. 48. Создание моментального снимка
Создание представления (view). Часто возникает потребность Потребность, нужда— внутреннее состояние психологического или функционального ощущения недостаточности чего-либо и проявляются в зависимости от ситуационных факторов. создать одну
таблицу на основе нескольких других, в которой бы динамически отражались
изменения данных из исходных таблиц. Такая таблица называется представлением;
в представлении отображаются все изменения, производимые в таблицах, из
которых оно получено. Чтобы создать представление, нужно
указать перед именем таблицы ключевое слово VIEW, что отличает эту операцию его от создания
моментального снимка.
Воспроизведем предыдущий пример, но вместо моментального снимка создадим представление с
именем ST, как показано на рис. 49. Данные Данные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. представления физически не хранятся
в базе данных. В системе хранятся лишь указатели его на исходные составные
части, а данные материализуются лишь тогда, когда пользователь адресует запрос к этому представлению.

Рис. 49. Создание представления.
Заключение
В статье приведен обзор средств языка Query-by-Example для выполнения
выборки, манипулирования и определения данных. Одно из уникальных свойств языка
заключается в том, что для его первоначального освоения и использования
достаточно освоить лишь минимальное число основных понятий.
В отличие от англоподобных языков, где пользователь должен придерживаться
определенной фразовой структуры, в среде Query-by-Example можно ввести
любое выражение, если только оно синтаксически
корректно. Иначе говоря, поскольку элементы привязаны к схематическим таблицам, пользователь имеет возможность вводить лишь допустимые запросы. С другой стороны, в англоподобных языках ползователь может сформулировать запрос, не соответствующий фразовой структуре языка.
Поскольку порядок заполнения таблиц неважен, то формулировании операции
предоставляется множество степеней свободы Посёлок Свободы (неофициально Нахаловка)— посёлок городского типа в Ставропольском крае России. Входит в состав городского округа Город-курорт Пятигорск..
Мы показали, как пользователь может строить запрос, постепенно доопределяя
новые условия; таким образом, можно постепенно переходить от простых запросов
к более сложным.
Операции выборки, манипулирования, определения данных выполняются единообразно,
с минимальными различиями в синтаксических правилах.
Приложение
Ниже приведено содержимое таблиц базы данных, которая использовалась в примерах этой статьи.



Далее следуют ответы к некоторым запросам, приведенным в тексте.

Результат запроса с рис. 5

Результат запроса с рис. 6

Результат запроса с рис. 7

Результат запроса с рис. 10
 Результат запроса с
рис. 11
 Результат запроса с
рис. 12
 Результат запроса с
рис. 13
 Результат запроса с
рис. 14
 Результат запроса с
рис. 15

Результат запроса с
рис. 16

Результат запроса с
рис. 17

Результат запроса с
рис. 18

Результат запроса с
рис. 19
Запрос с рис. 20 не соответствует примерной базе данных.

Результат запроса с
рис. 21

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

Результат запроса с
рис. 23

Результат запроса с
рис. 26

Результат запроса с
рис. 27

Результат запроса с
рис. 28

Результат запроса с
рис. 29

Результат запроса с
рис. 30

Результат запроса с
рис. 31

Результат запроса с
рис. 32

Результат запрос Запрос— это формулирование своей информационной необходимости пользователем некоторой базы данных, как, например, поисковой системы. Для составления запроса используется язык поисковых запросов.а с
рис. 33

Результат запроса с
рис. 34

Результат запроса с
рис. 35
Благодарности
Автор выражает признательность С.П. де Йонгу (S.P. deJong) и К.К. Нибуру (K.K. Nieburh) за их полезные
предложения в процессе разработки Query-by-Example. Автор также благодарен С.Е. Смиту (S.E. Smith), Р.Р. Джонсу (R.R. Jones) и Р. Дж. Берду (R.J. Byrd) за полезные обсуждения.
Литература
1. M.M. Zloof, "Query by Example", AFIPS Conference Proceedings,
National Panasonic Corporation (яп. панасоникку кабусикигайся)— крупная японская машиностроительная корпорация, один из крупнейших в мире производителей бытовой техники и электронных товаров. Штаб-квартира— в городе Кадома префектуры Осака (Япония). В 2007 году компания заняла 59-е место по объёму выручки в глобальном рейтинге компаний Fortune Global 500. Computer Conference 44, 431-438 (1975).
2. M.M. Zloof, "Query by Example. The Invocation and Definition
of Tables and Forms", Proceedings of The International Conference
on Very Large Data Bases, Boston, Massachusetts, September 22-24, 1975,
pp. 1-24.
3. M.M. Zloof, "Query-by-Example: Operations on the Transitive
Closure", Research Report RC 5526, IBM Thomas J. Watson Research Center,
Yorktown Heights, New York, 1975.
4. M.M. Zloof, "Query-by-Example: Operation on Hierarchical
Data Bases", AFIPS Conference Proceedings, National Computer Conference
45, 845-853 (1976).
5. E.F. Codd, "A Relational Model of Data for Large Shared Data
Banks", Communications of the ACM 13, No.6, 377-387 (1970). Перевод на русский язык.
6. E.F. Codd, "Further Further— седьмой студийный альбом The Chemical Brothers, выпущенный 14 июня 2010 года. Название альбома и дата релиза была объявлена на официальном сайте группы 30 марта 2010. Все 8 композиций с альбома сопровождаются соответствующими клипами, снятыми специально для их сопоставления, Адамом Смитом и Марком Лайалом. Normalization of the Data Base Relational
Model", Courant Computer Science Symposia Vol.6, Data Base Systems,
Prentice-Hall, Inc., New York, NY (1971).
7. J.C. Thomas and J.D. Gould, "A Psychological Study of Query
by Example", Proceedings of the National Computer Conference 44, 439-445
(1975).
8. D.D. Chamberlin et al., "SEQUEL 2: A Unified Approach to
Data Definition, Manipulation and Control Ctrl (сокращение от Control, произносится /kntrl/)— системная кнопка (клавиша) на компьютерной клавиатуре.", IBM Journal of Research
and Development 20, 560-575 (1976). Перевод на русский язык
9. G.D. Held, M.R. Stonebraker, and E. Wang, "INGRES: A Relational
Data Base System", Proceedings of the National Computer Conference
44, (1975).
10. C.J. Date, An Introduction to Data Base Systems, Addison-Wesley
Publishing Co., Inc., Reading, MA (second edition , 1977).
11. K.E. Niebuhr, and S.E. Smith, "Implementation of Query-by-Example
on VM/370", Research Report, IBM Thomas J. Watson Research Center,
Yorktown Heights, New York, in preparation.
12. M.M. Zloof, "Query-by-Example: A Data Base Management Language",
IBM Research Report available upon request from the author, IBM Thomas
J. Watson Research Center, Yorktown Heights, New York.
13. M.M. Zloof and S.P. deJong, "The system for business automation
(SBA): Programming Language", Communications of the ACM 20, No.6,
385-396.
14. S.P. deJong and M.M. Zloof, "Application design within the
system for business automation (SBA)", Proceedings of the Twelfth
Design Automation Conference, Boston Boston — американская рок-группа, которая за тридцать лет своего существования выпустила всего пять студийных альбомов., Massachusetts, June, 1975, pp.69-76.
|