Эч. Язык запросов по образцу qbe
Скачать 70.5 Kb.
|
Основные данные о работе
Основная частьГлава основной частиЯзык QBE был разработан фирмой IBM в 1970-х годах и предназначался для пользователей, заинтересованных в выборе информации из баз данных. Данный язык приобрел у пользователей столь широкое признание, что в настоящее время в той или иной мере он реализован практически во всех известных СУБД, включая и Microsoft Access. Средства поддержки языка QBE в СУБД Microsoft Access очень просты в эксплуатации и в то же время представляют пользователям достаточно широкий спектр возможностей работы с данными. Средства языка QBE могут применяться для ввода запросов к информации, сохраняемой в одной или нескольких таблицах, а также для определения набора полей, которые должны находиться в результирующей таблице. Отбор записей может, проводится по конкретному или общему критерию, и предусматривать исполнение необходимых вычислений на основе информации, сохраняемой в таблицах. Кроме того, средства языка QBE возможно использовать для выполнения разных операций над таблицами, например, для вставки и удаления записей, модификации значений полей или создания новых полей и таблиц. В языке QBE (Query-by-Example - язык запросов по образцу) используется визуальный подход для организации доступа к информации в базе данных, основанный на применении шаблонов запросов. Использование QBE осуществляется путем задания образцов значений в шаблоне запроса, предусматривающем такой тип доступа к базе данных, который необходим на текущий момент, к примеру, получение ответа на некий вопрос. Структурированный язык запросов SQL - это гибкий язык, являющийся самым известным инструментом, который используется для связи с реляционной базой данных. Данный язык нужен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и состоит из ограниченного количества команд, специально предназначенных для управления над данными. По возможностям манипулирования данными при описании запросов указанные языки практически эквивалентны. Главное отличие между ними, заключается в способе формирования запросов: язык QBE предполагает ручное или визуальное формирование запроса, в то время как использование SQL означает программирование запроса. Реляционная модель представляет данные в базе данных как набор отношений. Отношение — это математический термин, представляющий простую двумерную табличную структуру, состоящую из n строк и m столбцов, содержащих значения данных. Другими словами, реляционная база данных представляет собой набор связанной информации или значений данных, хранящихся в двумерных таблицах. Реляционная база данных имеет собственную терминологию, которая обычно используется в СУБД. Примеры включают отношение, атрибут, кортеж. домен, степень, кардинальность, первичный ключ, ключи-кандидаты и внешний ключ. Рассмотрим следующее краткое объяснение этих терминов: • Отношение соответствует тому, что мы обычно называем таблицей. • Кортеж соответствует строке в такой таблице, а атрибут соответствует таблице. столбец. • Первичный ключ — это уникальный идентификатор таблицы, т.е. столбец или столбец сочетании со свойством, состоящим в том, что в любой момент времени ни одна из двух строк таблицы не содержит одно и то же значение в этом столбце или комбинации столбцов. • Ключи-кандидаты — это наборы атрибутов в отношении, которые могут быть выбраны в качестве ключа. • Внешний ключ — это набор атрибутов в одном отношении, которые составляют первичный ключ таблица другого отношения (или, возможно, та же самая). Свойства отношений Отношения обладают определенными свойствами, и все они являются непосредственными следствиями определения "отношения". Есть четыре свойства, как показано ниже [Дата 90a]: • Нет повторяющихся кортежей; это следует из того факта, что отношение является математическим множеством (т.е. набором кортежей), а множества в математике по определению не включают повторяющиеся элементы. Важным следствием является то, что в отношении всегда существует первичный ключ. Поскольку каждый кортеж уникален, из этого следует, что по крайней мере комбинация всех атрибутов отношения обладает свойством уникальности. • Кортежи неупорядочены внутри отношения (сверху вниз), что следует из того факта, что множества в математике не упорядочены. Все значения атрибутов являются атомарными. В каждой позиции строки и столбца в таблице всегда существует ровно одно значение, а не список значений. Однако в качестве значения столбца определенного кортежа используется специальное значение "null", которое либо "неизвестно", либо "атрибут не применяется", либо "не имеет значения". • Атрибуты неупорядочены (слева направо), что следует из того факта, что заголовок отношение также определяется как набор (т.е. набор атрибутов или, точнее, пар атрибут- домен). 1. Реляционная алгебра Реляционная алгебра - это метод объединения математических множеств, обладающих свойством быть отношениями (таблицами); он был предложен Коддом [Codd70]. Говорят, что это "процедурный" язык, что означает, что пользователь должен не только знать, чего он хочет при выполнении операций над отношениями, но и знать, как это получить. Пользователь может указать последовательность (шаг за шагом) реляционных операций, которые должны выполняться над таблицами схемы для получения желаемого результата. Результат каждой операции формирует новое отношение, которым можно в дальнейшем манипулировать. Другими словами, реляционные операторы могут быть вложенными. Операциями, включенными в Реляционную модель, являются: ОБЪЕДИНЕНИЕ, ПЕРЕСЕЧЕНИЕ, РАЗЛИЧИЕ, ДЕКАРТОВО ПРОИЗВЕДЕНИЕ, ВЫБОР, ПРОЕКТ и ОБЪЕДИНЕНИЕ. Как и SQL, QBE также оснащен встроенными функциями, такими как CNT. (для подсчета), SUM., MAX., MIN. и AVG. Однако в QBE функции SUM., CNT. и AVG. применяются к значениям "distinctr". Если пользователь хочет, чтобы эта функция применялась ко всем желаемым значениям, ее следует ввести, используя префикс "ALL" 4. QBE предоставляет оператор "G." в качестве агрегирующей функции группировки. Это аналогично предложению SQL GROUP BY, а "поле условия" в QBE используется таким же образом, как и предложение в SQL. QBE также использует те же операторы сравнения, что и SQL, за исключением равенства (=). Поэтому пользователь явно вводит >, 2, < , S, прежде чем вводить постоянное значение. QBE также имеет символ отрицания (=), который используется аналогично символу NOT EXISTS в SQL, но тот же эффект также может быть получен с помощью оператора "4". Кроме того, QBE также имеет префиксы "AO." (для порядка возрастания) и "DO." (для порядка убывания), чтобы получить упорядоченный список кортежей. роблемы с QBE Как упоминалось выше, QBE очень интуитивно понятен даже для начинающих пользователей. Это позволяет относительно неопытным пользователям начать задавать простые запросы, даже если они не имеют предварительных знаний о языках программирования. К сожалению, он становится все менее и менее полезным по мере увеличения сложности запросов и имеет проблемы с более сложными запросами [Ozso93]. Выражение универсальной количественной оценки в QBE, первоначально предложенное Zloof [Zloo77], действительно включало поддержку "НЕ СУЩЕСТВУЕТ", но это было сложно и всегда несколько хлопотно [Date90a]. Однако сегодняшний QBE, выпущенный в качестве коммерческого продукта, не может реализовать универсальную количественную оценку. Фактически, QBE, который мы обсуждаем здесь (QBE в рамках IBM QMF), не поддерживает универсальную или экзистенциальную количественную оценку формы "v" или "3". Таким образом, запросы, которые включают универсальные количественная оценка не может быть указана [Date90a] [Elma89] [Ozso89]. Следовательно, она не является относительно полной. Список использованных интернет-ресурсов
Список использованных источниковДанный раздел необязателен для заполнения
ПриложенияДанный раздел необязателен для заполнения
|