double arrow

Основы реляционной алгебры


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

В теории реляционной алгебры отношение рассматривается как множество, строки таблицы называются кортежами, столбцы — атрибутами. Над отношениями выполняются традиционные операции теории множеств:

Ограничение отношения (выборка) — создает новое отношение, отбирая в него строки отношения-операнда, которые удовлетворяют условию ограничения.

Проекция отношения — создает новое отношение, отбирая в него определенные столбцы отношения-операнда.

Объединение отношений — создает новое отношение, содержащее все кортежи отношений операндов. Операнды должны иметь одинаковые атрибуты.

Пример 1. (объединение отношений).

Ежемесячно из цехов поступают отчеты о выпуске новой продукции за прошедший месяц, содержащие номер цеха, код продукции, дату выпуска и количество выпущенной продукции. Эти сведения добавляются в общую таблицу «ВЫПУСК ПРОДУКЦИИ» с такой же структурой, т. е. к кортежам

ВЫПУСК ПРОДУКЦИИ (Номер цеха, Код продукции, Дата выпуска. Количество)

добавляются кортежи

НОВАЯ ПРОДУКЦИЯ (Номер цеха, Код продукции, Дата выпуска, Количество)

Атрибуты операндов совпадают. Таблица «НОВАЯ ПРОДУКЦИЯ» объединяется с исходной.

Пересечение отношений — создает новое отношение, содержащее строки, общие для сравниваемых операндов. Операнды должны иметь одинаковые атрибуты.

Пример 2. (пересечение отношений с выполнением операций ограничения и проекции). Имеется набор экзаменационных ведомостей — отношений с совпадающими атрибутами:

 
 

ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ (Группа, Номер зачетной книжки, Фамилия студента, Дата, Дисциплина, Оценка)

Подготовить список студентов, получивших только отличные оценки, со столбцами «Номер зачетной книжки» и «Фамилия студента».

Для экзаменационных ведомостей нужной группы:

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

Оценка = «отлично».

Получили списки отличников группы по дисциплинам.

 
 

Результат операции ограничения для ведомости по математике

 
 

Результат операции ограничения для ведомости по физике

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

Результат операции проекции для ведомости по математике

 
 

Результат операции проекции для ведомости по физике

 
 

Пересечение последних даст нам искомое отношение — «СПИСОК ОТЛИЧНИКОВ», содержащее номера зачетных книжек и фамилии, общие для всех списков отличников.

Разность отношений — создает новое отношение, содержащее строки 1-го операнда, отсутствующие во 2-м операнде. Операнды должны иметь одинаковые атрибуты.

Пример 3. (разность отношений).

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

Для решения этой задачи выполняем ограничение отношения «ВЫПУСК ПРОДУКЦИИ».

Условие ограничения — «Дата выпуска меньше последней даты прошлого квартала».

Результат ограничения помещаем во временную Таблицу 1. Затем над той же исходной таблицей выполняем ограничение «Дата выпуска меньше первой даты прошлого квартала» и заносим результат во временную Таблицу 2.

Разность отношений 1 и 2 даст искомые сведения.

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

Пример 4

Результат произведения

Деление отношений — создает новое отношение, содержащее атрибуты 1-го операнда, отсутствующие во 2-м операнде, и кортежи 1-го операнда, которые совпали с кортежами 2-го. Для выполнения этой операции 2-й операнд должен содержать лишь атрибуты, совпадающие с атрибутами 1-го.

Пример 5. (деление отношений).

Список студентов факультета для каждого студента содержит: Ф.И.О., Дату рождения, Шифр группы и Признак наличия стипендии (да, нет).

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

Для этого:

1. Создаем вспомогательное отношение с атрибутами Шифр группы и Признак наличия стипендии.

2. Заполняем один кортеж этого отношения, поместив в него шифр заданной группы и отметку о получении стипендии (да).

3. Деление исходного списка на вспомогательное отношение создаст искомый список с атрибутами ФИО и Дата рождения.

Соединение отношений — создает новое отношение, кортеж которого является результатом сцепления кортежей операндов (исходных отношений). Соединение имеет две разновидности: естественное соединение и соединение по условию.

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

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

Пример 6.Соединить таблицы СТУДЕНТ и ОЦЕНКА. Общим для таблиц является поле № зач. книжки

СТУДЕНТ

 
 

Результат соединения

Лекция 8 (Базы данных)


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