Обзор языков программирования

Общая характеристика различных языков программирования. Реализация QBE в Access: добавление и удаление таблиц в запросе, перекрестные и корректирующие запросы. Операции вставки удаления и модификации языка QBE. Характеристика языков QBE современных СУБД.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.07.2012
Размер файла 39,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовая работа по дисциплине "Информационные технологии"

На тему "Обзор языков программирования"

Выполнил Кондратьев Владимир Александрович

Содержание

Введение

1. Общая характеристика языка

1.1 Задание сложных запросов

1.2 Переменные для примера

1.3 Описание ответа

1.4 Дополнительные возможности

2. Реализация QBE в Access

2.1 Добавление и удаление таблиц в запросе

2.2 Перекрестные запросы

2.3 Корректирующие запросы

3. Прочие операции с QBE

3.1 Операции вставки удаления и модификации языка QBE

3.2 Характеристика языков QBE современных СУБД

3.3 Включение средств формирования QBE

Заключение

Глоссарий

Список использованных источников

Введение

В литературе предлагается множество языков исчисления доменов. Наиболее известным из них, пожалуй, является QBE (Query-By-Example -- язык запросов по образцу), который впервые описан в статье М.М. Злуфа Query-By-Example: язык баз данных (журнал «СУБД» №3,1996); в действительности язык QBE является смешанным, поскольку в нем присутствуют и элементы исчисления кортежей. Существует несколько коммерческих реализаций языка QBE, или "QBE-подобного" языка . QBE был разработан компанией IBM в 1970-х годах и предназначался для пользователей, заинтересованных в выборке информации из баз данных. Этот язык получил у пользователей столь широкое признание, что в настоящее время в той или иной мере он реализован практически во всех популярных СУБД, включая и Microsoft Access. Средства языка QBE могут использоваться для ввода запросов к информации, сохраняемой в одной или нескольких таблицах, а также для определения набора полей, которые должны присутствовать в результирующей таблице. Отбор записей может проводиться по конкретному или общему критерию и предусматривать выполнение необходимых вычислений на основе информации, сохраняемой в таблицах. Кроме того, средства языка QBE можно использовать для выполнения различных операций над таблицами, например, для вставки и удаления записей, модификации значений полей или создания новых полей и таблиц. Для демонстрации всех этих возможностей мы воспользуемся соответствующими практическими примерами.

СУБД Microsoft Access при создании запроса с использованием средств QBE неявно формирует эквивалентный оператор языка SQL, предназначенный для выполнения указанных действий, Язык SQL широко используется для выполнения запросов, обновления и обслуживания реляционных баз данных.

На языке QBE можно задавать однотабличные и многотабличные (выбирающие или обрабатывающие данные из нескольких связанных таблиц) запросы. С помощью запросов на языке QBE можно выполнять следующие основные операции:

- выборку данных;

- вычисление над данными;

- вставку новых записей;

- удаление записей;

- модификацию (изменение) данных.

Результатом выполнения запроса является новая таблица, называемая ответной (первые две операции), или обновленная исходная таблица (остальные операции). В реальных приложениях баз данных QBE используется в основном для выборки данных. Выборка, вставка, удаление и модификация могут производиться безусловно или в соответствии с условиями, задаваемыми с помощью логических выражений. Вычисления над данными задаются с помощью арифметических выражений и порождают в ответных таблицах новые поля, называемые вычисляемыми. Запросная форма обычно имеет вид таблицы, имя и названия полей которой совпадают с именем и названиями полей соответствующей исходной таблицы. Чтобы узнать имена доступных таблиц БД, в языке QBE предусмотрен запрос на выборку имен таблиц. Названия полей исходной таблицы могут вводиться в шаблон вручную или автоматически. Во втором случае используется запрос на выборку заголовков столбцов. В современных СУБД, например, в Access и Visual FoxPro, многие действия по подготовке запросов с помощью языка QBE выполняются визуально с помощью мыши. В частности, визуальное связывание таблиц при подготовке запроса выполняется не элементами примеров, а просто «протаскиванием» мышью поля одной таблицы к полю другой.

Целью данной курсовой работы является обзор и исследование языка манипулирования данными Query-by-Example (QBE).

1. Общая характеристика языка

В современных СУБД широко используются табличные языки запросов. Наиболее распространенным среди них является язык QBE (Query-By-Example - запрос по примеру). Язык QBE предназначен для работы в интерактивном режиме и ориентирован на конечного пользователя. Язык QBE реализован во многих современных СУБД, например в dBase IV и более старших версиях этой системы, Paradox, Access и др. Конкретные реализации этого языка несколько отличаются друг от друга, но все они построены по единому принципу.

Суть подхода, воплощенного в языке QBE, заключается в следующем. В окне формирования запроса выделяются две зоны. В первой из них высвечивается «скелет» (образ, форма, структура) одной или нескольких таблиц, данные из которых будут участвовать в запросе. В качестве исходных для запроса могут указываться не только базовые таблицы, но и другие запросы.

Во второй зоне («скелете» запроса табличной формы) пользователь задает условия запроса. В этой зоне пользователь определяет, какие поля участвуют в формировании запроса, а также условия отбора и некоторые другие характеристики запроса. Например, если пользователю необходимо получить все записи с заданным значением конкретного атрибута, то в соответствующем столбце «скелета» указывается это значение.

Ниже представлен запрос к таблице(см. приложение А), содержащей сведения о сотрудниках (Kadr) и включающей следующие атрибуты:

FAM - фамилия;

IMIA - имя;

TABN - табельный номер;

VOZR - возраст;

POL - пол;

ADR - адрес.

Требуется выдать информацию обо всех сотрудниках в возрасте 40 лет. В соответствующем столбце таблицы (VOZR) указывается цифра 40. В столбце можно записывать не только значение атрибута, но и знак операции сравнения; по умолчанию принимается знак равенства («=»).

1.1 Задание сложных запросов

Допускается задание и простых запросов, включающих только один аргумент поиска, и сложных запросов, компоненты которых связаны операторами AND (И) или OR (ИЛИ). Операторы AND и OR в явном виде не указываются при формулировании запроса на QBE. При отображении запросов на экране используется следующее правило: если в сложном запросе его компоненты представляют разные атрибуты, которые должны быть связаны оператором AND, то они записываются в одной строке. Если компоненты запроса должны быть связаны операторами OR, то они записываются на разных строках.

В связи с тем, что интерпретация запроса зависит от взаимного расположения элементов сложного запроса на строках экрана, такого рода языки запросов называются табличными двухмерными. Как указывалось выше, при задании запроса в QBE экран обычно делится на две зоны: зона, в которой указываются данные, исходные для запроса, и зона, в которой описывается ответ. В некоторых реализациях языка при описании отдельных видов запросов появляются дополнительные зоны (например, в dBase IV при задании вычисляемого поля [19]). Вид, в котором представляются структуры исходных таблиц, а также то, где фиксируются условия поиска, могут различаться в конкретных системах. Так, в dBase IV таблицы как в зоне «запроса», так в зоне «ответа» представляются в табличном виде, а условия отбора записей указываются в таблицах зоны «запроса». В Access, FoxPro исходные таблицы представлены в анкетной форме (поля таблицы перечисляются один под другим), а в зоне «ответа» в табличной форме отображаются те атрибуты (поля), которые будут выдаваться в ответе. Условия отбора записей задаются в зоне «ответа».

1.2 Переменные для примера

В некоторых случаях при формулировке запроса необходимо использовать так называемые переменные для примера (или «наполнители»). Переменные для примера (example variables) также записываются в определенных графах таблицы, но они обозначают не какое-либо определенное значение, а любое. Конкретное значение наполнителя несущественно. Переменные для примера используются для установления связей между атрибутами в одной или нескольких таблицах. Переменные, применяемые для задания значений ключей поиска, и переменные, указываемые для примера, должны при записи запроса отличаться друг от друга. В разных СУБД «наполнители» и обычные значения атрибутов поиска различаются по-разному: в некоторых системах «наполнители» подчеркиваются, в других - используются специальные ограничители при указании переменных в запросе, в третьих - такое понятие вообще не вводится и т.п. В некоторых запросах могут потребоваться данные из нескольких таблиц. Например, в базе данных, кроме таблицы KADR, имеется таблица «Выработка» (VRBT) с полями:

TABN - табельный номер;

DAT - дата;

KODDET - код детали;

KOLV - количество.

В запросе «Выдать информацию о выработке рабочего Евгения Петрова» необходима совместная обработка таблиц VRBT и KADR, так как в таблице «Выработка» нет сведений о фамилиях и именах рабочих. «Скелеты» всех таблиц, которые нужны для реализации запроса (в нашем примере - двух таблиц), должны быть вызваны на экран. Дальнейшие действия, которые необходимо выполнить, чтобы осуществить связывание таблиц, будут зависеть от используемой СУБД. Так, в некоторых системах для связывания таблиц используются «наполнители». Их значения могут быть любыми, но они должны быть одинаковыми в обеих связываемых таблицах.

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

В настоящее время широко используются такие понятия, как «левое» и «правое» соединение, когда в результатную таблицу помещаются все записи из основной или зависимой таблицы соответственно, даже если для них нет связанных записей в другой таблице. Но не все системы позволяют в QBE реализовывать такие соединения. В случаях, когда возможно задание разных типов соединений, конкретный способ реализации отличается в разных СУБД.

Так, в Access «левое» и «правое» соединения можно определить, задав для связи «параметры объединения» или перейдя в SQL. В dBase IV никаких специфических терминов для обозначения такого типа соединений нет, но включение слова Every в запрос на QBE выполняет ту же роль. Работа с несколькими таблицами в конкретных СУБД различается не только тем, каким способом можно определить связь между таблицами. Так, например, некоторые системы обязывают пользователя связать те таблицы/файлы, которые указываются как исходные для запроса; другие автоматически связывают открытые файлы по тем полям, которые система воспринимает как поля связи (чаще всего это поля, имеющие одинаковые имена, тип и длину); третьи - оставляют эти таблицы изолированными, если пользователь не указал, как они должны быть связаны, четвертые - выполняют декартово произведение открытых таблиц. Например, в dBase IV вызвать несколько файлов БД на панель запросов и не связать их было нельзя. В MS Query, Access если таблицы не связаны, то при выполнении запроса это приводит к связыванию каждой записи одной таблицы с каждой записью другой. Ф.Д.Ролланд Основные концепции баз данных: Пер.с англ.- М.: Издательский дом «Вильямс», 2002 - 256с.

1.3 Описание ответа

Кроме задания условия отбора данных, при описании запроса должна быть возможность указать, какие атрибуты и в какой последовательности входят в ответ. В ответ могут выдаваться не только реальные поля, которые хранятся в одной из базовых таблиц, но и вычисляемые поля. Можно выделить два вида вычислений, которые могут выполняться в запросах, формах, отчетах: это агрегирующие операторы, которые выполняют операции над группой записей, и обычные вычисления, затрагивающие отдельные поля одной или нескольких связанных записей. Агрегирующие показатели могут быть включены не только в «Запросы», но и в «Отчеты». Возможности включения агрегирующих показателей в запросы и отчеты различаются между собой. Результатом запроса всегда является плоская таблица. Поэтому в запросах могут быть получены только одноуровневые итоги. В отчетах же может быть получено несколько степеней итогов. Набор агрегирующих функций может быть различным в разных системах. Обычно во всех реализациях СУБД включены следующие функции: Sum (сумма), Min (минимум), Мах (максимум), Avg (среднее), Count (подсчет). Некоторые системы включают дополнительные статистические функции, такие, как отклонение, стандартное отклонение, дисперсия и др. Использование агрегирующих функций предполагает, что таблица упорядочена по тому полю (полям), по которому ведется агрегирование. Некоторые СУБД сами автоматически выполняют упорядочение данных по необходимым полям, другие - нет. В последнем случае, если пользователь не задаст правильно требуемое упорядочение, результат, выводимый в ответ, будет искаженным. Результаты вычислений, выводящиеся в поле, не запоминаются в базовой таблице. Вместо этого вычисления снова проводятся всякий раз, когда выполняется запрос, поэтому результаты всегда представляют текущее содержимое базы данных. Обновить вычисленные результаты вручную невозможно (таблица, содержащая вычисляемое поле, имеет статус «только для чтения»). Для удобства восприятия ответа часто требуется определить упорядоченность данных в ответе. Язык QBE обеспечивает такую возможность. Опять-таки возможности задания упорядочения ответа различаются в разных СУБД: некоторые системы разрешают проводить упорядочение по произвольным полям, другие требуют, чтобы поле упорядочения стояло в ответе обязательно первым, а если упорядочение ведется по нескольким полям, то чтобы эти поля следовали в ответе друг за другом в порядке их старшинства; некоторые СУБД различают обычное и словарное упорядочение (когда учитывается и не учитывается регистр соответственно), другие - нет; в некоторых системах, даже если не задано никакое упорядочение, ответ всегда выдается упорядоченным по первому полю таблицы ответа и т.п.

1.4 Дополнительные возможности

язык программирование таблица запрос

Кроме собственно поисковых запросов язык QBE позволяет выполнять и другие операции, например корректировку данных. Набор допустимых операций, а также способы их задания несколько различаются в разных системах. Кроме того, некоторые СУБД позволяют формировать запросы специальных видов: параметрические, перекрестные и некоторые другие (не все из них, наверное, могут быть отнесены к QBE, но они реализованы одними и теми же компонентами СУБД и в связи с этим будут здесь рассмотрены). Запросы, сформулированные на QBE, могут быть запомнены для их последующего многократного использования. Некоторые языки запросов, которые носят название QBE, построены совсем на других принципах, чем те, что были изложены выше, и было бы хорошо найти для них другое название. Так, например, язык RQBE FoxPro не является табличным двухмерным языком запросов. Он является «построителем» запросов (в том числе SQL). Сложный запрос реализуется в нем просто вводом каждого элементарного условия на отдельной строке. Если две строки не разделены никакой операцией, то считается, что они соединяются операцией «И». Операцию «ИЛИ» нужно указывать явно между соединяемыми строками. Все языки запросов имеют много общего. Но, с другой стороны, даже языки, относящиеся к одному классу, отличаются в деталях своей реализации. Начиная работать с новой для вас СУБД, проведите серию экспериментов, чтобы убедиться, что ваше понимание логики реализации запросов соответствует той, что заложена в данной конкретной системе.

2. Реализация QВЕ в Access

После описания таблиц и заполнения их данными к базе данных можно формулировать разнообразные запросы. В табличном языке запросов в Access реализованы те общие принципы, о которых шла речь выше. Но, естественно, имеются и особенности реализации языка в этой конкретной системе. В явном виде понятие наполнителя в QBE в Access не вводится. Связывание таблиц выполняется визуально. Для задания в запросе соотношения полей внутри таблицы вместо наполнителя можно просто задать соответствующее выражение для вычисляемого поля и для этого выражения задать условия отбора. Для задания запроса в Access следует перейти к объекту Запросы в окне базы данных. Для создания нового запроса следует щелкнуть по кнопке Создать - появится окно Новый запрос. Для построения запросов могут быть использованы различные мастера. Но чаще всего используется возможность создания запроса с помощью Конструктора. Первым шагом при создании запроса является определение таблиц, которые содержат исходную информацию. Допускается также создание запроса на основании других запросов или одновременно и таблиц, и запросов. Использование предварительно созданных запросов при создании нового запроса может помочь сделать сложный запрос, содержащий большое число взаимосвязанных таблиц и много разнообразных условий отбора, более простым для его формулирования. Любой запрос можно сохранить для последующего использования.

Это можно сделать несколькими способами, например, выбирая позиции меню Файл/Закрыть, ответив «Да» на вопрос о сохранении файла и задав после этого имя запроса. Имя запроса не может совпадать не только с именем другого запроса, но и с именем какой-либо таблицы в данной базе данных. Сохраненный запрос можно впоследствии «открывать», что означает его выполнение. Сохраненный запрос может быть скорректирован, если открыть его в режиме Конструктор. Microsoft Access 2000. Шаг за шагом: Практическое пособие / Пер. с англ. - М.: ЭКОМ, 2000. - 352с.

2.1 Добавление и удаление таблиц в запросе

Возможно использование нескольких способов включения таблиц, на которых базируется запрос. Для добавления таблицы можно в режиме Конструктор запроса щелкнуть по кнопке Добавить таблицу на панели инструментов или выбрать в меню Запрос команду Добавить таблицу - открывается окно диалога Добавление таблицы. Пользователь имеет также возможность добавить в запрос таблицу или запрос, выбрав их имена в окне базы данных и переместив их с помощью мыши в верхнюю часть окна запроса. Кроме того, можно позиционироваться на свободное место в верхней части окна запроса, нажать правую кнопку мыши и в появившемся ниспадающем меню выбрать позицию Добавить таблицу.

Для добавления в запрос таблицы из другой базы данных или другого приложения следует сначала присоединить эту таблицу к активной базе данных. Это присоединение выполняется путем использования команды Присоединить таблицу (меню Файл). При создании нового запроса без помощи мастера по разработке запросов окно диалога Добавление таблицы выводится автоматически Для того чтобы указать, на чем будет базироваться создаваемый запрос (таблице, запросе или том и другом одновременно), нужно просто выбрать соответствующую вкладку. Установив в появившемся списке доступных таблиц/запросов указатель на имя добавляемой таблицы или запроса, нужно или выполнить двойной щелчок «мышью», или нажать клавишу [Enter].

Допускается одновременное добавление в запрос нескольких таблиц или запросов. Для этого следует, удерживая нажатой клавишу [Ctrl], выбрать имена добавляемых таблиц или запросов и щелкнуть по кнопке Добавить. В верхней части окна запроса выводится список полей добавленных таблицы или запроса.

Существует несколько способов удаления таблицы из запроса:

выбрать имя удаляемой таблицы или запроса в соответствующем списке и нажать клавишу [Del] или выбрать в меню Запрос команду Удалить таблицу;

двойным щелчком мыши выделить нужную таблицу в соответствующей зоне экрана и затем нажать клавишу [Del].

Имена полей удаленной таблицы или запроса удаляются из бланка запроса QBE. Удаление из запроса таблицы или запроса, на которых он базируется, не приводит к их удалению из базы данных. Различают несколько типов запросов: запрос на выборку (Select), перекрестный запрос (Crosstab), создание таблицы (Make-table), запрос на обновление (Update), добавление (Append), удаление (Delete). Наиболее часто используемым типом запросов является запрос на выборку. Именно с него мы и начнем изучение возможностей задания запросов в Access.

2.2 Перекрестные запросы

Перекрестные запросы служат для более компактного отображения информации (схожего с изображением в электронных таблицах). В перекрестном запросе отображаются результаты статистических расчетов (такие, как суммы, количество записей, средние значения), выполненных по данным из одного поля. Эти результаты группируются по двум наборам данных в формате перекрестной таблицы.

Первый набор выводится в левом столбце и образует заголовки строк, а второй - выводится в верхней строке и образует заголовки столбцов. Например, в таблице «Сотрудники» имеются сведения о зарплате каждого сотрудника, а также признаки, на какой кафедре и в какой должности работает каждый сотрудник. Требуется для каждой кафедры определить общий фонд зарплаты, а по каждой должности - среднюю по каждой кафедре зарплату. Для создания перекрестного запроса следует воспользоваться позицией «Перекрестный запрос» в окне Новый запрос или выбрать соответствующую строку в меню Запрос. Далее необходимо выполнить ряд шагов, предлагаемых мастером по созданию перекрестных запросов. При создании перекрестного запроса в качестве источника данных можно задать только одну таблицу. Если для реализации запроса требуются поля из разных таблиц, то надо предварительно создать вспомогательный запрос, который будет включать все требуемые поля. Так, если в создаваемом нами запросе требуется выводить название кафедры, то следует создать запрос, базирующийся на таблицах <<Кафедра>> и <<Сотрудник>>, и этот запрос выбрать в качестве источника для создаваемого перекрестного запроса. Будем выводить в ответ <<Код_кафедры>> и поэтому выберем таблицу <<Сотрудник>>.

2.3 Корректирующие запросы

К корректирующим запросам относятся запросы на обновление (Update) и на удаление (Delete) записей, а также добавление (Append, Insert)[†] записей из одной таблицы или нескольких связанных таблиц в конец другой таблицы. В документации по Access к типу «запросов на изменение» отнесены не только перечисленные выше запросы, но еще и «запрос на создание таблицы». Последний запрос все-таки отличается от названных ранее: первый круг запросов меняет содержание существующих таблиц, а последний - создает новую таблицу, т.е. фактически меняет имеющуюся структуру базы данных. Поэтому «запрос на создание таблицы» выделен в отдельную группу.

Корректирующие запросы на обновление и удаление могут изменять как все записи таблицы, так и определенное их подмножество - это будет зависеть от условия отбора. При выполнении корректирующих запросов система осуществляет контроль ограничений целостности. Так, например, если при описании таблицы было задано ограничение на максимально допустимое значение поля «Оклад», то при выполнении запроса в случае нарушения ограничения может быть выдано сообщение. Если выбрать вариант «Да», то для записей, нарушающих ограничение на значение, корректировка вообще выполнена не будет. В нашем примере такой выбор будет неправильным, поскольку в этом случае у одних сотрудников зарплата будет повышена, а у других - нет. Причем потом разобраться, у кого она была повышена, а у кого - нет, будет практически невозможно. В рассматриваемой ситуации следует отказаться от выполнения запроса, скорректировать при необходимости ограничение на значение и только после этого выполнить запрос. Конноллн, Томас, Бегг, Карелии. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. : Пер. с англ. -- М. : Издательский дом "Вильямс", 2003. -- 1440 с

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

Запрос на обновление. Для создания запроса на обновление необходимо сначала в режиме Конструктор выбрать таблицу(ы), поля которой будут корректироваться, а затем изменить тип запроса, выбрав позицию Обновление в меню Запрос (либо нажать стрелку рядом с кнопкой Тип запроса на панели инструментов и выбрать соответствующий тип). При этом вид бланка запроса изменится по сравнению с запросом на выборку: в бланке отсутствуют строки «Сортировка» и «Вывод на экран», но зато появилась строка «Обновление». В бланк запроса включаются те поля, значения которых будут изменяться. В строке «Обновление» соответствующего поля записывается его новое значение или выражение для его вычисления. При создании выражения можно воспользоваться построителем. Если обновление касается не всех записей таблицы, а только некоторых из них, то нужно обычным образом задать условия отбора. С целью убедиться, что условия отбора заданы верно, рекомендуется сначала посмотреть результаты отбора. Это можно сделать двумя способами:

1. просмотреть запрос в режиме таблицы;

2. выполнить запрос как запрос на выборку.

«Открытие» запроса на обновление означает изменение значений в базе данных. Каждое «Открытие» запроса на обновление будет означать обновление уже обновленных данных. Леонтьев Ю. Microsoft Office 2005: Краткий курс. - СПб.: Питер, 2001. - 288с.

Запрос на удаление используют для удаления группы записей, отбираемых с помощью указанных пользователем условий отбора. Сначала необходимо задать условие отбора. Перед выполнением запроса на удаление рекомендуется предварительно просмотреть результаты отбора. Для создания запроса на удаление следует в режиме Конструктор запроса выбрать соответствующую позицию «Удаление» в меню Запрос (либо нажать стрелку рядом с кнопкой Тип запроса на панели инструментов).

Если в запросе на удаление не указать условие отбора, то будут удалены все записи. В некоторых случаях запрос-удаление приводит к удалению записей в таблицах, не включенных в запрос. Это случается, если в запрос включена таблица, находящаяся на стороне «один» отношения «один ко многим», а целостность данных обеспечивается параметром «Каскадное удаление». При удалении записей из этой таблицы будут также удалены связанные записи из таблицы, находящейся на стороне «многие». В многотабличном запросе в бланк запроса QBE необходимо переместить символ звездочки (*) для каждой таблицы, из которой будут удаляться записи, и поля, используемые для задания условий отбора.

Запрос на добавление добавляет группу записей из одной или нескольких таблиц (таблиц-источников) в конец другой таблицы (результатной таблицы). Для задания запроса такого типа следует сначала создать запрос, содержащий таблицу (таблицы), записи из которой необходимо добавить в другую таблицу. Затем в режиме Конструктор запроса нужно нажать стрелку рядом с кнопкой Тип запроса на панели инструментов и выбрать команду Добавление (либо выбрать соответствующую позицию в меню Запросы). На экране появится диалоговое окно Добавление. В поле «Имя таблицы» следует ввести имя таблицы, в которую необходимо добавить записи. Дейт, К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. -- М.: Издательский дом "Вильямс", 2005. -- 1328 с.: ил. -- Парал. тит. англ

Таблица, в которую осуществляется добавление, может быть как в той же базе данных, так и в другой, причем это не обязательно должна быть база данных Access (это может быть Microsoft FoxPro, Paradox или dBASE, а также база данных SQL).

Из списка полей таблиц-источников в бланк запроса необходимо переместить поля, которые должны входить в состав добавляемых записей, а также те, которые будут использованы при определении условия отбора. Если все поля таблицы-источника должны быть перенесены в целевую таблицу и поля в таблице-источнике и целевой таблице имеют одинаковые имена, то можно просто переместить с помощью мыши символ «звездочка» (*) в бланк запроса. Однако при работе с репликой базы данных добавлять придется все поля. Кроме того, при использовании символа «звездочка» (*), даже если структуры обеих таблиц полностью совпадают, могут возникнуть проблемы с ключами (если ключевое поле имеет тип «Счетчик», то для автоматического добавления значений счетчика не следует при создании запроса перемещать поле счетчика в бланк запроса). Если в обеих таблицах выделенные поля имеют одинаковые имена, соответствующие имена автоматически вводятся в строку «Добавление». Если имена полей двух таблиц отличаются друг от друга, в строку «Добавление» необходимо ввести имя поля целевой таблицы, которое соответствует полю таблицы-источника. Следует быть внимательным при создании запроса на добавление записей в таблицу. Все поля целевой таблицы, которые имеют либо свойство «Обязательное поле», либо заданные «условия на значение», должны быть включены в состав добавляемых полей, иначе ни одна запись добавлена не будет по причине нарушения ограничений целостности. Дейт, К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. -- М.: Издательский дом "Вильямс", 2005. -- 1328 с.: ил. -- Парал. тит. англ

3. Прочие операции с QBE

Запрос QBE представляет собой одну или несколько таблиц, строки которых содержат требования к значениям строк таблицы, получаемой в результате выполнения запроса. В соответствии с синтаксисом запроса наименование таблицы (отношения) помещают в заголовок первого столбца (сам столбец остается пустым всегда, кроме случая краткой записи включения в результат всех столбцов таблицы - см. ниже). Для каждого атрибута, участвующего в запросе (для значений результата, значений образца или для связи таблиц) в таблицу включается свой столбец, в заголовок которого помещается имя атрибута. Значения атрибутов (образец, переменная или результат запроса) помещаются в соответствующие столбцы. Для описания переменных в условиях отбора записей, а также для связывания шаблонов в запросах используются переменные - элементы примера.

Элемент примера играет роль идентификатора переменной (как в языке программирования) и задается с помощью символьно-цифровой последовательности. Константные значения, которые и составляют тот самый «образец» из термина QBE (запрос по образцу) берутся в кавычки. Для указания искомых атрибутов значение соответствующего столбца - переменную, константное выражение или пустое значение (когда необходимо включить столбец в результат, но значение не используется для связи с другими таблицами) предваряют символом «Р» (что означает «напечатать») с точкой. Занесение «Р.» во все столбцы шаблона можно заменить записью Р. в первом столбце шаблона под именем таблицы.

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

Пример. Запрос на выборку. Найти всех студентов 3-го курса

Студент Имя Курс

Р. Имя «3»

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

Для упорядочения выводимых значений по возрастанию или по убыванию, значения требуемых атрибутов в запросе предваряются символами «АО.» и «DO.» соответственно. Если требуется выполнить упорядочивание по нескольким столбцам, применяют конструкции вида: «АО(1)» (для первого столбца упорядочивания), «АО(2)» (для второго столбца упорядочивания) и так далее.

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

1. Точное совпадение задается вводом констант в соответствующих полях шаблона.

2. Частичное совпадение задается с помощью элементов примера. В частности, для формулировки запроса о выводе списка всех студентов, фамилии которых начинаются с буквы «А», а заканчиваются на «ов», можно воспользоваться конструкцией P.«А»name«ов», записанной в поле Фамилия таблицы Студент (name -переменная).

3. Условие сравнения записывается с помощью операций сравнения: равно (=), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=), не равно (!), не больше (!>), не меньше (!<).

Пример.

Запрос списка студентов со значением рейтинга, большим или равным 90, наименование группы которых начинается с «ИВТ», а заканчивается на «4». Список должен быть упорядочен по значению ФИО.

В результате выполнения запроса будет получена таблица (выполнено эквисоединение по номеру зачетной книжки). В операциях сравнения можно использовать и элементы примера.

Пример.

Найти всех студентов с номером зачетной книжки, меньшим чем у Иванова А. П., и большим, чем у Петрова И. С.

Здесь таблица запроса включает четыре строки, налагающие на результирующие строки логическое условие, получаемое из логических условий каждой строки, объединенных связкой «И». Порядок строк не важен. В случаях, когда условия отбора записей для выборки представляют большие выражения, которые неудобно или трудно задать в шаблоне, можно использовать блок условий. Он по виду напоминает пустой шаблон с одним полем и именем CONDITIONS. Блок условий предназначен для записи логических выражений.

Записанные в одном шаблоне логические выражения, в общем случае, могут включать в себя операции логического умножения (операция AND) и логического сложения (операция OR).

Пример.

Приведенный выше запрос можно сформировать следующим образом.

Студент-ФИО-Номер зачетной книжки

P.-Имя-Номер

CONDITIONS

Номер = (>5345674 AND <6523456)

При записи логических выражений на языке QBE могут применяться итоговые функции, такие как: CNT. (счетчик или количество), SUM. (сумма), AVG. (среднее), MIN. (минимум), МАХ. (максимум), UN. (уникальный) и ALL. (все значения, в том числе повторяющиеся). Первые пять из них являются статистическими, а последние две определяют характер выборки; включать или не включать в выборку повторяющиеся значения. Информатика. Учебное пособие /Под ред. В.Г. Кирия. - Иркутск: ИрГТУ ,1998 часть 2. - 382с.

Функцию UN. можно присоединять к функциям CNT., SUM., и AVG. Так, запись CKT.UN. означает количество только различающихся значений. В противоположность этому, запись CNT.ALL будет означать количество всех значений. Очевидно, функции MAX.UN. и MAX.ALL. дадут одинаковый результат. Вычисления в группах выполняются с помощью конструкции GB. (Group-by).

3.1 Операции вставки удаления и модификации языка QBE

Отличие от рассмотренных операций, операции вставки, удаления и модификации приводят к изменению исходной таблицы. Вид операции (вставка -- I., удаление -- D., модификация -- U.) записывается в шаблоне под именем таблицы, а константы и условные выражения указываются по тем же правилам, что в операциях выборки.

Пример.

В таблицу Студент необходимо добавить нового студента

Студент-ФИО-Группа-Номер зачетной книжки

I.-Сидоров К. С.-ИВТ-163-7754321

Пример.

Удаление студентов шестого курса, как закончивших обучение.

Студент-Группа

D.-Группа_имя«-6»Группа_цифра

Пример.

Изменение наименования группы у студентов ИВТ - 364 (перевод на следующий курс)

Студент-Группа-ФИО

U.-«ИВТ-364»-ФИО

«ИВТ-464»

Сначала должно быть определены значения переменной - найдены все студенты группы «ИВТ-364», затем во всех найденных строках меняется наименование группы на «ИВТ-464». Пустое поле означает, что оно не подлежит изменению. Если требуется изменить некоторое значение на «пустое», используется ключевое слово NULL.

3.2 Характеристика языков QBE современных СУБД

Основные отличия языков QBE современных СУБД от языка, предложенного Злуффом М. М., как правило, сводятся к незначительным изменениям в интерпретации отдельных реляционных операций, введению дополнительных операций и изменению формы представления языка.

Например, в системе Paradox for Windows вместо операции печати Р. применен метод отметки выбираемых в запросной форме (шаблоне) полей. Для этого в начале каждого из полей запросной формы располагаются флажки для выбора поля. Отмечая поля, пользователь может указать последовательность сортировки в ответной таблице. Для связывания нескольких запросных форм в один многотабличный запрос, а также в логических выражениях условий отбора записей применяются элементы примера. Наглядными являются запросные формы в Microsoft Access. Диалоговое окно при подготовке запросных форм состоит из двух частей: в верхней части располагается модель взаимосвязи исходных таблиц, а в нижней -- остальная информация о запросе по каждому из полей (необходимость вывода значений, вид сортировки, условие отбора и т.д.).

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

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

а) повышение наглядности и удобства;

б) появление средств, соответствующих новым возможностям СУБД, например, формулировка неточных или нечетких запросов, манипулирование большими объемами данных;

в) в более отдаленной перспективе использование речевого ввода запросов.

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

3.3 Включение средств формирования QBE

Конечные приложения БД, разработанные для определенной структуры БД, включающие определенные наборы форм ввода/отображения данных, в большинстве своем не нуждаются во включении в их состав полноценных средств формирования QBE - запросов. Несмотря на то, что в обычных приложениях БД обычно неактуально требования формирования произвольных по структуре запросов, приложение очень выигрывает, если средства построения запроса в приложении позволяет хотя бы построения логических выражений с применением логических связок И, ИЛИ, НЕ на значениях атрибутов таблиц БД. Данная возможность значительно усиливает поисковый аппарат БД и увеличивает сферу применения и стоимость системы.

При этом применение в той или иной форме рассмотренного QBE языка позволяет при сохранении достаточно простой реализации добиться весьма больших возможностей. Так, например, чтобы программно (в виде экранных форм, полей ввода и кода) предусмотреть возможность выполнения запроса вида «Найти всех студентов, с рейтингом, больше > 75 и меньше 90, которые учатся на первом или третьем курсе», требуется как минимум очень серьезный этап проектирования системы и трудоемкая реализация. В то же время, реализация запроса средствами, близкими к средствам Access (при фиксированном наборе таблиц, под ввод запроса в которые можно предусмотреть отдельные формы), позволяет добиться как относительной простоты реализации, так и необходимого уровня универсальности (кроме приведенного запроса, могут быть выполнено большое количество других, изначально неизвестных, запросов). Отдельно следует отметить случай, когда разрабатываемое приложение предполагает частую смену базовой структуры данных или, более того, специально ориентировано на так называемую «гибкую» структуру данных, изменяемую, например, средствами самого приложения. В этом случае создание форм под запрос и вывод данных экономически не эффективен, в то время как полное применение всех возможностей QBE позволяет построить универсальную систему самого высокого уровня. Query-by-Example: язык баз данных / М.М. Злуф [Электронный ресурс]. - Режим доступа:http://www.lib.csu.ru/dl/bases/prg/dbms/1996/03/source/149.html

Заключение

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

Архитектура языка QBE направлена на удовлетворение только что сформулированных требований. Результаты различных психологических исследований показывают, что достаточно для инструктирования непрограммистов менее трех часов, после чего они могут формулировать довольно сложные запросы, которые в противном случае требуют от пользователя знания исчисления предикатов первого порядка. Другими непроцедурными языками в этой области являются SEQUEL и QUEL.

Первая реализация QBE была выполнена K.E. Niebuhr и S.E. Smith. В настоящее время язык экспериментально используется в различных приложениях, среди которых управление библиотечными файлами, ресурсами компьютеров, файлами патентов, почтовыми файлами и платежными счетами.

В современных СУБД, например, в Access и Visual FoxPro, многие действия по подготовке запросов с помощью языка QBE выполняются визуально с помощью мыши. В частности, визуальное связывание таблиц при подготовке запроса выполняется не элементами примеров, а просто «протаскиванием» мышью поля одной таблицы к полю другой.

Глоссарий

№ п/п

Понятие

Определение

1.

Архитектура

Структура программы или вычислительной системы, которая включает программные компоненты, видимые снаружи свойства этих компонентов, а также отношения между ними.

2.

Переменная

Идентификатор, определяющий данные.

3.

СУБД

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

4.

Язык запросов

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

5.

dBASE

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

6.

Microsoft Access

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

7.

MS Query

Приложение, которое просматривает, отбирает и организует данные из базы данных.

8.

Paradox for Windows

СУБД Paradox для DOS первоначально разрабатывалась компанией Ansa-Software, которая была поглощена фирмой Borland в сентябре 1987 года. Наиболее распространены были версии 3.5 и 4.5. Версии до 3.5 включительно основывались на исходной 1.0; версии 4.0 и 4.5 были созданы заново с использованием Borland C++, и включали новую схему использования памяти.

9.

SQL

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

10.

Visual FoxPro

Объектно-ориентированный и процедурный язык программирования систем управления реляционными базами данных, разработанный корпорацией Майкрософт. Основой для данного программного продукта послужил язык программирования FoxPro. Относится к семейству языков XBase, разработанных на базе синтаксиса языка программирования dBase. Другими членами данного семейства являются Clipper и Recital.

Список использованных источников

1..Дейт, К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. -- М.: Издательский дом "Вильямс", 2005. -- с.1328: ил. -- Парал. тит. англ

2..Иллюстрированный самоучитель по Access2002: электронный учебник, 2004.

3..Информатика. Учебное пособие /Под ред. В.Г. Кирия. - Иркутск: ИрГТУ ,1998 часть 2. - с.382

4..Конноллн, Томас, Бегг, Карелии. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. : Пер. с англ. -- М. : Издательский дом "Вильямс", 2003. -- с.1440

5..Леонтьев Ю. Microsoft Office 2005: Краткий курс. - СПб.: Питер, 2001. - с.288

6..Материалы справки по Access 2004, предоставленные на странице http://office.microsoft.com/ru-ru/access/FX100646931049.aspx?CTT=96&Origin=CL100570041049

7..Ф.Д.Ролланд Основные концепции баз данных: Пер.с англ.- М.: Издательский дом «Вильямс», 2002 - с.256

8..Microsoft Access 2000. Шаг за шагом: Практическое пособие / Пер. с англ. - М.: ЭКОМ, 2000. - с.352

9..Query-by-Example: язык баз данных / М.М. Злуф [Электронный ресурс]. - Режим доступа:http://www.lib.csu.ru/dl/bases/prg/dbms/1996/03/source/149.html

10..wikipedia.org

Размещено на Allbest.ru


Подобные документы

  • Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.

    реферат [463,6 K], добавлен 07.09.2009

  • Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.

    курсовая работа [759,5 K], добавлен 04.11.2014

  • Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.

    курсовая работа [345,6 K], добавлен 13.11.2009

  • Особенности и суть языков программирования, способы их задания, цепочки символов и операции над ними. Классификация языков и грамматик, форма Бэкуса-Наура. Определение и свойства регулярных выражений, конечные автоматы и грамматики, описание программы.

    курсовая работа [231,5 K], добавлен 23.06.2011

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

    презентация [873,4 K], добавлен 23.01.2013

  • Основные концепции языков программирования, механизмы типизации данных. Описание языков программирования и методов трансляции. Конечные автоматы и преобразователи. Общие методы синтаксического анализа. Формальные методы описания языкового перевода.

    курс лекций [5,5 M], добавлен 04.12.2013

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

  • Характеристика языков программирования: краткая история, хронология. Основные виды языков программирования: ассемблер; бейсик. Создание и использование формул в Excel. Применение операторов в формулах. Использование функций в Excel. Сайт дома отдыха.

    отчет по практике [139,1 K], добавлен 03.06.2011

  • Оценка современного этапа развития компьютерных технологий. История развития, классификации, сведения и уровни языков программирования. Обзор современных языков программирования: Си, его разовидности, Паскаль, Фортран, Бейсик - тенденция их развития.

    курсовая работа [46,5 K], добавлен 22.12.2010

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

    курсовая работа [400,6 K], добавлен 10.11.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.