Языки реляционных БД

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

/b>.

Замечательным достоинством этого языка является его реляционная полнота. Это означает, что язык позволяет составить любые запросы на манипулирование данными в БД.

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

Тремя наиболее важными реляционными языками БД являются: SQL - Structured Query Language (структурированный язык запросов), QBE - Query By Example (запрос по образцу) и QUEL - Query Language (язык запросов). Наибольшее распространение получили первые два.

 

2.Язык SQL - общие сведения

 

Язык SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры таблиц), и над данными (выборка, изменение, добавление, удаление данных). Он позволяет выполнять и некоторые дополнительные операции. Язык не содержит операторов управления и ввода-вывода, операторов организации подпрограмм и т.п. Поэтому язык SQL автономно не используется, он может работать только в среде конкретной СУБД.был создан и впервые использован в 1981 г. С тех пор появились различные версии языка, однако основные принципы составления запросов, основные операторы и правила их выполнения практически одинаковы для всех СУБД. В настоящее время принят международный стандарт SQL - SQL-92. Этот стандарт представляет собой обобщение всех известных его реализаций. Это означает, что ядро стандарта содержит операции, применяемые практически во всех известных коммерческих версиях языка, а полный стандарт включает усовершенствования, которые некоторым производителям еще только предстоит реализовать.

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

 

3.Язык запросов QBE

 

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

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

Рассмотрим основные возможности QBE, опираясь на первоначально разработанный вариант языка.

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

Запрос 1

Сообщить название фирмы-поставщика П1.

Поскольку известные и искомые данные хранятся в одной таблице ПОСТАВЩИК, нужно вывести образец для этой таблицы.

 

ПОСТАВЩИКП#Имя поставщикаГородП1Р.

Условием отбора является равенство значения, находящегося в столбце П# базовой таблицы, введенному значению П1.

В столбец П# помещаем условие отбора данных - номер поставщика П1. Для того, чтобы указать, что именно мы хотим вывести, в столбец Имя поставщика помещаем команду Р. (print - распечатать). Пустые столбцы можно удалить. Результат запроса будет представлен в виде так называемой ответной или целевой таблицы, содержащей все строки из базовой таблицы, в которых номер поставщика равен П1.

 

ПОСТАВЩИКП#Имя поставщикаП1Восход

Запрос 2

Сколько изделий И2 поставляет фирма Заря?

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

 

ПОСТАВЩИКП#Имя поставщикаГород_ПЗаря

ПОСТАВКИП#И#Кол__ПИ2Р.

Ответная таблица будет содержать все необходимые данные, пустые столбцы не выводятся.

 

Имя поставщикаИ#КолЗаряИ2500

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

Запрос 3 Какие изделия поставляются в количестве 200 или 300 единиц?

 

ПОСТАВКИП#И#КолР.200 300

 

Ответ: