Базы данных: конспект лекций. Коллектив авторов. Читать онлайн. Newlib. NEWLIB.NET

Автор: Коллектив авторов
Издательство:
Серия:
Жанр произведения: Базы данных
Год издания: 0
isbn: 978-5-699-23778-4
Скачать книгу
В отличие от кортежей работа с такими отношениями включает в себя небольшую тонкость. Дело в том, что нигде не определенные отношения могут быть двух видов: они могут быть либо пустыми, либо могут содержать единственный нигде не определенный кортеж (такие отношения обозначаются {∅(S)}).

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

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

      Лекция № 4. Реляционная алгебра. Унарные операции

      Реляционная алгебра, как нетрудно догадаться, – это особая разновидность алгебры, в которой все операции производятся над реляционными моделями данных, т. е. над отношениями.

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

      1. Унарная операция выборки

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

      Оператор выборки обозначается σ<P>, условие выборкиP<S>, т. е., оператор σ берется всегда с определенным условием на кортежи P, а само условие P записывается зависящим от схемы отношения S. С учетом всего этого сама операция выборки над схемой отношения S применительно к отношению r будет выглядеть следующим образом:

      σ<P>r(S) σ<P>r = {t(S) |tr & P<S>t} = {t(S) |tr & IfNull(P<S>t, False};

      Результатом этой операции будет новое отношение с той же схемой отношения S, состоящее из тех кортежей t(S) исходного отношения-операнда, которые удовлетворяют условию выборки P<S>t. Понятно, что для того, чтобы применить какое-то условие к кортежу, необходимо подставить значения атрибутов кортежа вместо имен атрибутов.

      Чтобы лучше понять принцип работы этой операции, приведем пример. Пусть дана следующая схема отношения:

      S: Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка).

      Условие выборки возьмем такое:

      P<S> = (Предмет = ‘Информатика’ and Оценка > 3).

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

      Пусть также дан следующий кортеж из этого отношения:

      t0(S) ∈ r(S): {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Оценка: 5)};

      Применяем наше условие выборки к кортежу t0, получаем:

      P<S>t0 = (‘Базы данных’ = ‘Информатика’ and 5 > 3);

      На данном конкретном кортеже условие