Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
87
Добавлен:
23.11.2017
Размер:
76.29 Кб
Скачать

7. Реляционная алгебра

Описание информационных потребностей пользователей является одним из компонентов ИЛМ и отражает типы запросов к БД, которые могут поступать от пользователей.

7.1. Типы и языки запросов

Запрос формируется в терминах объектов Е, их атрибутов А и значений атрибутов V. Простые запросы можно разделить на 6 типов (табл.7.1).

Таблица 7.1

Типы простых запросов

п/п

Форма запроса

Тип запроса

Пример

1

A(E)=?

Обычный запрос значения атрибута

Определить год рождения жителя с номером 199

2

= A(?)V > <

Какие объекты имеют заданное значение атрибута?

Кто из жителей проживает по адресу 901-15?

3

= ?(E)V < >

Перечислить все атрибуты, имеющие заданное значение для данного объекта

Какие источники дохода дают жителю №199 больше 500руб.?

4

?(E)=?

Запрос на получение всей информации об объекте (выборка)

Сообщить все хранимые сведения о жителе №199

5

А(?)=?

Перечислить значения данного атрибута для каждого объекта (проекция)

Перечислить даты рождения и адреса для всех жителей

6

=

?(?)V

< >

Перечислить все атрибуты объектов, имеющие данное значение

Для каждого жителя определить источник дохода, дающий больше 500 руб.

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

Запросы могут формулироваться различными способами, в частности, с использованием операций реляционной алгебры или языка SQL.

7.2. Реляционная алгебра (алгебра отношений)

Реляционная алгебра служит математической основой реляционной ДЛМ. Так как отношение является множеством, то реляционная алгебра является алгеброй взаимосвязей между особыми множествами, называемыми отношениями.

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

7.2.1. Проекция

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

Рис.7.1. Отношение R (r - кортеж).

Пусть для конкретного кортежа r, являющегося элементом отношения R, r[x] обозначает расположенные в ряд составляющие кортежа, соответствующие подмножеству атрибутов Х. Например, если X={ЗавК, Нтел}, то r[X] = <Вернер, 2882>.

Проекцией отношения R на Х называют новое отношение

R[X] = {r[X] | r R}.

Так, проекции R[ЗавК, Нтел] и R[НП, ЗавК] показаны на рис.7.2.

R2 = R[ЗавК, Нтел] R1 = R[НП, ЗавК]

ЗавК

Нтел

НП

ЗавК

Шаньгин

2854

102

Шаньгин

Вернер

2882

104

Вернер

108

Вернер

125

Шаньгин

Рис.7.2. Проекция R[ЗавК, Нтел] и R[НП, ЗавК].

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

Проекция осуществляется командой SELECT языка SQL:

SELECT DISTINCT ЗавК,Нтел FROM R

Соседние файлы в папке БД лабы