Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция № 5 Реляционная модель данных - копия.doc
Скачиваний:
9
Добавлен:
20.09.2019
Размер:
250.37 Кб
Скачать

4.5.Теоретические языки запросов

Операции, выполняемые над отношениями, можно разделить на две группы. Первую группу составляют классические теоретико-множественные операции над множествами, к которым относятся операции: объединение, пересечение, разность и декартово произведение. Вторую группу составляют специальные реляционные операции: проекция, соединение, деление и выбор.

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

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

    • Реляционная алгебра;

    • Реляционное исчисление.

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

В реляционной алгебре операнды и результаты всех действий являются отношениями. Языки реляционной алгебры являются процедурными, так как отношение, являющееся результатом запроса к реляционной БД, вычисляется при выполнении последовательности реляционных операторов, применяемым к отношениям. Операторы состоят из операндов, в роли которых выступают отношения и реляционные операции. Результатом реляционной операции является отношение.

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

При рассмотрении языков реляционной алгебры и исчислений используем БД, включающую в себя следующие таблицы:

    • S (поставщики);

    • P (Детали);

    • SP (поставки).

Первичными ключами этих таблиц являются соответственно: П# (код поставщика), Д# (код детали) и составной ключ (П#, Д#). Содержимое таблиц приведено на рис. 4.6. Предположим, что в рассматриваемых языках запросов нет ограничений на употребление символов русского алфавита в именах атрибутов. Каждое из полей П# и Д# таблицы SP в отдельности является внешним ключом по отношению к таблицам S и P соответственно.

Предположим, что имена доменов (множеств допустимых значений) совпадают с именами атрибутов. Исключение составляют атрибуты Город_П (город, в котором находится поставщик) и Город_Д (город, в котором выпускается деталь), которые имеют общий домен: множество названий городов. Имя этого домена может быть, например, просто Город. Характеристики доменов, как типов данных следующие: Д# - строка символов длиной 5, Имя – строка символов длиной 20, Статус – целое, Город – строка символов длиной 15, Д# - строка символов длиной 6, Тип – строка символов длиной 6, Вес – целое, Количество – целое.

S

П#

Имя

Статус

Город_П

S1

Сергей

20

Москва

S2

Иван

10

Иркутск

S3

Борис

30

Иркутск

S4

Николай

20

Москва

S5

Андрей

30

Чита

P

Д#

Название

Тип

Вес

Город_Д

P1

Гайка

Каленый

12

Москва

P2

Болт

Мягкий

17

Иркутск

P3

Винт

Твердый

17

Ангарск

P4

Винт

Каленый

14

Москва

P5

Палец

Твердый

12

Иркутск

P6

шпилька

каленый

19

Москва

SP

П#

Д#

Количество

S1

P1

300

S1

P2

200

S1

P3

400

S1

P4

200

S1

P5

100

S1

P6

100

S2

P1

300

S2

P2

400

S3

P2

200

S4

P2

200

S4

P4

300

S4

P5

400

Рис. 4.6. Таблицы поставщиков, деталей и поставок

15