Запрос 3

Запрос 2.

Запрос 1.

Операции на реляционной БД

Для полученной модели данных, состоящей из трех нормализованных отношений, составим запросы, запишем их в виде формул реляционной алгебры (п.6) и получим результаты.

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

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

Мы получим ответ на этот запрос, если из таблицы ПОСТАВЩИК выделим строку, содержащую сведения об имени поставщика П1. Это можно сделать, выполнив операцию сцепления отношения ПОСТАВЩИК с известной из запроса константой П1 (т.е. выполнив операцию сцепления отношения с одноэлементным множеством {П1}).

ПОСТАВЩИК * {П1}

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

П1 Восход Тула

Полученная строка содержит лишние сведения. Уточним ответ, применив к вновь полученному отношению операцию проекции на атрибут Имя поставщика. Полученная формула и является формулой запроса.

ПОСТАВЩИК * {П1} [Имя поставщика]

В результате будет выделен один столбец. Это и будет ответом на запрос.

Восход

В каком количестве поставляются изделия И2?

Искомые сведения находятся в таблице ПОСТАВКИ. Аналогично Запросу 1 применим к отношению ПОСТАВКИ операцию сцепления с известной константой И2, а затем спроектируем полученное отношение на атрибут Кол.

ПОСТАВКИ * {И2} [Кол]

Результаты выполнения операций.


П1 П2 И2 И2  
 

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

В этом запросе известными являются значения двух атрибутов: Имя поставщика - Заря и номер изделия - И2. Известные и искомые данные находятся в двух таблицах: ПОСТАВЩИК и ПОСТАВКИ, поэтому для ответа на запрос необходимо "привязать" сведения из одной таблицы к сведениям из другой таблицы. Это можно сделать, выполнив операцию сцепления отношений по атрибуту П#.

Запишем формулу запроса.

ПОСТАВЩИК * {Заря} * ПОСТАВКИ * {И2} [Кол]

Определим результаты выполнения каждой из операций.

1.В результате выполнения операции сцепления отношения ПОСТАВЩИК с одноэлементным множеством {Заря} получим новое отношение, содержащее единственный кортеж (т.е. новую таблицу, состоящую из одной строки).

П2 Заря Самара

2.Вторая операция выполняет сцепление полученного отношения, имеющего арность 3, с отношением ПОСТАВКИ, имеющим также арность 3, по одинаковому значению атрибута П#. В результате получим новое отношение арностью 5. В него войдут все кортежи сцепляемых отношений, у которых значение атрибута П# = П2.

П2 Заря Самара И1  
П2 Заря Самара И2  

3.В результате выполнения третьей операции из полученного отношения выберутся строки, в которых значение атрибута И# равно И2.

4.И, наконец, с помощью операции проекции уточним ответ, выделив столбец Кол.

П2 Заря Самара И2      

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: