Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

 

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

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

 

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

 

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

Оператор выборки обозначается σ < 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).

 

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

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

 

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

 

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

 

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

 

На данном конкретном кортеже условие выборки не выполняется.

А вообще результатом этой конкретной выборки

 

σ <Предмет = 'Информатика' and Оценка > 3 > Сессия

 

будет таблица «Сессия», в которой оставлены строки, удовлетворяющие условию выборки.

 

Унарная операция проекции

 

Еще одна стандартная унарная операция, которую мы изучим, – это операция проекции. Операция проекции – это операция выбора столбцов из таблицы, представляющей отношение, по какому‑либо признаку. А именно машина выбирает те атрибуты (т. е. буквально те столбцы) исходного отношения‑операнда, которые были указаны в проекции.

Оператор проекции обозначается [ S' ] или π<S'>. Здесь S' – подсхема исходной схемы отношения S, т. е. ее некоторые столбцы. Что это означает? Это означает, что у S’ атрибутов меньше, чем у S, потому что в S' остались только те из них, для которых выполнилось условие проекции. А в таблице, представляющей отношение r (S'), строк столько же, сколько их у таблицы r (S), а столбцов – меньше, так как остались только соответствующие оставшимся атрибутам. Таким образом, оператор проекции π< S'> применительно к отношению r (S) дает в результате новое отношение с другой схемой отношения r (S'), состоящее из проекций t (S) [ S' ] кортежей исходного отношения. Как определяются эти проекции кортежей? Проекция любого кортежа t (S) исходного отношения r (S) на подсхему S' определяется следующей формулой:

 

t (S) [ S’ ] = { t (a)| adef (t) ∩ S ’}, S ' ⊆ S.

 

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

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

 

π < S' > r (S) ≡ π < S’ > rr (S) [ S ’] ≡ r [ S' ] = { t (S) [ S’ ] | tr };

 

Рассмотрим пример, иллюстрирующий принцип работы операции выборки.

Пусть дано отношение «Сессия» и схема этого отношения:

 

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

 

Нас будут интересовать только два атрибута из этой схемы, а именно «№ зачетной книжки» и «Фамилия» студента, поэтому подсхема S' будет выглядеть следующим образом:

 

S': (№ зачетной книжки, Фамилия).

 

Нужно исходное отношение r (S) спроецировать на подсхему S'.

Далее, пусть нам дан кортеж t 0(S) из исходного отношения:

 

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

 

Значит, проекция этого кортежа на данную подсхему S' будет выглядеть следующим образом:

 

t 0(S) S': {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’)};

 

Если говорить об операции проекции в терминах таблиц, то проекция Сессия [№ зачетной книжки, Фамилия] исходного отношения – это таблица Сессия, из которой вычеркнуты все столбцы, кроме двух: № зачетной книжки и Фамилия. Кроме того, все дублирующиеся строки также удалены.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 483; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.176.238 (0.006 с.)