Коллектив Авторов - Базы данных: конспект лекций
Здесь, как и в табличной форме представления, домены атрибутов не указываются, но подразумеваются.
Из определения следует, что схема отношения может быть и пустой (S = ∅). Правда, возможно это только в теории, так как на практике система управления базами данных никогда не допустит создания пустой схемы отношения.
Именованное значение кортежа на атрибуте (обозначается t(a))определяется по аналогии с атрибутом как упорядоченная пара, состоящая из имени атрибута и значения атрибута, т. е.:
t(a) = (name(a) : x), x ∈ dom(a);
Видим, что значение атрибута берется из домена атрибута.
В табличной форме представления отношения каждое именованное значение кортежа на атрибуте – это соответствующая ячейка таблицы:
Здесь t(a1), t(a2), t(a3) – именованные значения кортежа t на атрибутах а1, а2, а3.
Простейшие примеры именованных значений кортежей на атрибутах:
(Курс: 5), (Балл: 5);
Здесь соответственно Курс и Балл – имена двух атрибутов, а 5 – это одно из их значений, взятое из их доменов. Разумеется, хоть эти значения в обоих случаях равны друг другу, семантически они различны, так как множества этих значений в обоих случаях отличаются друг от друга.
4. Кортежи. Типы кортежей
Понятие кортежа в системах управления базами данных может быть интуитивно найдено уже из предыдущего пункта, когда мы говорили об именованном значении кортежа на различных атрибутах. Итак, кортеж (обозначается t, от англ. tuple – «кортеж») со схемой отношения S определяется как множество именованных значений этого кортежа на всех атрибутах, входящих в данную схему отношений S. Другими словами, атрибуты берутся из области определения кортежа, def(t), т. е.:
t ≡ t(S) = {t(a) | a ∈ def(t) ⊆ S;.
Важно, что одному имени атрибута обязательно должно соответствовать не более одного значения атрибута.
В табличной форме записи отношения кортежем будет любая строка таблицы, т. е.:
Здесь t1(S) = {t(a1), t(a2), t(a3), t(a4)} и t2(S) = {t(a5), t(a6), t(a7), t(a8)} – кортежи.
Кортежи в СУБД различаются по типам в зависимости от своей области определения. Кортежи называются:
1) частичными, если их область определения включается или совпадает со схемой отношения, т. е. def(t) ⊆ S.
Это общий случай в практике баз данных;
2) полными, в том случае если их область определения полностью совпадает, равна схеме отношения, т. е. def(t) = S;
3) неполными, если область определения полностью включается в схему отношений, т. е. def(t) ⊂ S;
4) нигде не определенными, если их область определения равна пустому множеству, т. е. def(t) = ∅.
Поясним на примере. Пусть у нас имеется отношение, заданное следующей таблицей.
Пусть здесь t1 = {10, 20, 30}, t2 = {10, 20, Null}, t3 = {Null, Null, Null}. Тогда легко заметить, что кортеж t1 – полный, так как его область определения def(t1) = { a, b, c} = S.
Кортеж t2 – неполный, def(t2) = { a, b} ⊂ S. И, наконец, кортеж t3 – нигде не определенный, так как его def(t3) = ∅.
Надо заметить, что нигде не определенный кортеж – это пустое множество, тем не менее ассоциируемое со схемой отношений. Иногда нигде не определенный кортеж обозначается: ∅(S). Как мы уже видели в приведенном примере, такой кортеж представляет собой строку таблицы, состоящую только из Null-значений.
Интересно, что сравнимыми, т. е. возможно равными, являются только кортежи с одной и той же схемой отношений. Поэтому, например, два нигде не определенных кортежа с различными схемами отношений не будут равными, как могло ожидаться. Они будут различными так же, как их схемы отношений.
5. Отношения. Типы отношений
И наконец дадим определение отношению, как некой вершине пирамиды, состоящей из всех предыдущих понятий. Итак, отношение (обозначается r, от англ. relation – «отношение») со схемой отношений S определяется как обязательно конечное множество кортежей, имеющих ту же схему отношения S. Таким образом:
r ≡ r(S) = {t(S) | t ∈r};
По аналогии со схемами отношений количество кортежей в отношении называют мощностью отношений и обозначают как мощность множества: |r|.
Отношения, как и кортежи, различаются по типам. Итак, отношения называются:
1) частичными, если для любого входящего в отношение кортежа выполняется следующее условие: [def(t) ⊆ S].
Это (как и с кортежами) общий случай;
2) полными, в том случае если ∀t ∈ r(S) выполняется: [def(t) = S];
3) неполными, если ∃t ∈ r(S) def(t) ⊂ S;
4) нигде не определенными, если ∀t ∈ r(S) [def(t) = ∅].
Обратим отдельное внимание на нигде не определенные отношения. В отличие от кортежей работа с такими отношениями включает в себя небольшую тонкость. Дело в том, что нигде не определенные отношения могут быть двух видов: они могут быть либо пустыми, либо могут содержать единственный нигде не определенный кортеж (такие отношения обозначаются {∅(S)}).
Сравнимыми (по аналогии с кортежами), т. е., возможно равными, являются лишь отношения с одной и той же схемой отношения. Поэтому отношения с различными схемами отношений являются различными.
В табличной форме представления, отношение – это тело таблицы, которому соответствует строка – заголовок столбцов, т. е. буквально – вся таблица, вместе с первой строкой, содержащей заголовки.
Лекция № 4. Реляционная алгебра. Унарные операции
Реляционная алгебра, как нетрудно догадаться, – это особая разновидность алгебры, в которой все операции производятся над реляционными моделями данных, т. е. над отношениями.
В табличных терминах отношение включает в себя строки, столбцы и строку – заголовок столбцов. Поэтому естественными унарными операциями являются операции выбора определенных строк или столбцов, а также смены заголовков столбцов – переименования атрибутов.
1. Унарная операция выборки
Первой унарной операцией, которую мы рассмотрим, является операция выборки – операция выбора строк из таблицы, представляющей отношение, по какому-либо принципу, т. е. выбор строк-кортежей, удовлетворяющих определенному условию или условиям.
Оператор выборки обозначается σ<P>, условие выборки – P<S>, т. е., оператор σ берется всегда с определенным условием на кортежи P, а само условие P записывается зависящим от схемы отношения S. С учетом всего этого сама операция выборки над схемой отношения S применительно к отношению r будет выглядеть следующим образом:
σ<P>r(S) ≡ σ<P>r = {t(S) |t ∈ r & P<S>t} = {t(S) |t ∈ r & 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);
На данном конкретном кортеже условие выборки не выполняется.
А вообще результатом этой конкретной выборки
σ<Предмет = 'Информатика' and Оценка > 3 > Сессия
будет таблица «Сессия», в которой оставлены строки, удовлетворяющие условию выборки.
2. Унарная операция проекции
Еще одна стандартная унарная операция, которую мы изучим, – это операция проекции. Операция проекции – это операция выбора столбцов из таблицы, представляющей отношение, по какому-либо признаку. А именно машина выбирает те атрибуты (т. е. буквально те столбцы) исходного отношения-операнда, которые были указаны в проекции.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Коллектив Авторов - Базы данных: конспект лекций, относящееся к жанру Базы данных. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


