База данных

Автор работы: Пользователь скрыл имя, 06 Января 2014 в 21:03, лекция

Описание работы

Системы управления базами данных (СУБД) – это специализированные программные продукты, позволяющие:
1) постоянно хранить сколь угодно большие (но не бесконечные) объемы данных;
2) извлекать и изменять эти хранящиеся данные в том или ином аспекте, используя при этом так называемые запросы;

Файлы: 1 файл

1.docx

— 453.70 Кб (Скачать файл)

 

Важно, что одному имени  атрибута обязательно должно соответствовать  не более одного значения атрибута.

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

 

Здесь 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).

 

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

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

 

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

 

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

 

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

 

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

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

 

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

 

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

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

 

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

Оператор проекции  обозначается [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 )|a  ∈ def (t ) ∩ S ’}, S ' ⊆S .

 

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

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

 

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

 

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

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

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

 

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

3. Унарная  операция переименования

 

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

Оператор переименования  выглядит следующим образом: ρ<φ >, здесь φ –  функция переименования .

Эта функция устанавливает  взаимно-однозначное соответствие между именами атрибутов схем S  и Ŝ,  где соответственно S –  схема исходного отношения, а Ŝ –  схема отношения с переименованными атрибутами. Таким образом, оператор ρ <φ>  в применении к отношению r (S ) дает новое отношение со схемой Ŝ , состоящее из кортежей исходного отношения только с переименованными атрибутами.

Запишем операцию переименования атрибутов в терминах систем управления базами данных:

 

ρ <φ > r (S ) ≡ ρ <φ >r  = {ρ <φ > t (S )| t  ∈ r };

 

Приведем пример использования  этой операции:

Рассмотрим уже знакомое нам отношение Сессия, со схемой:

 

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

 

Введем новую схему  отношения Ŝ, с другими именами  атрибутов, которые мы бы хотели видеть вместо имеющихся:

 

Ŝ :  (№ ЗК, Фамилия, Предмет, Балл);

 

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

 

φ  : (№ зачетной книжки, Фамилия, Предмет, Оценка) → (№ ЗК, Фамилия, Предмет, Балл);

 

Фактически, требуется поменять имя только у двух атрибутов, поэтому  законно будет записать следующую  функцию переименования вместо имеющейся:

 

φ  : (№ зачетной книжки, Оценка) → (№ ЗК, Балл);

 

Далее, пусть дан также  уже знакомый нам кортеж принадлежащий  отношению Сессия:

 

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

 

Применим оператор переименования к этому кортежу:

 

ρ<φ> t 0(S ):  {(№ ЗК: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Балл: 5)};

 

Итак, это один из кортежей нашего отношения, у которого переименовали  атрибуты.

В табличных терминах отношение

 

ρ  < № зачетной книжки, Оценка → «№ ЗК, Балл > Сессия –

 

это новая таблица, полученная из таблицы отношения «Сессия», переименованием  указанных атрибутов.

4. Свойства  унарных операций

 

У унарных операций, как  и у любых других, есть определенные свойства. Рассмотрим наиболее важные из них.

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

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

Итак:

1) соотношение мощностей:

а) для операции выборки: | σ <P >r  |≤ |r |;

б) для операции проекции: | r [S' ] | ≤ |r |;

в) для операции переименования: | ρ <φ >r  | = |r |;

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

В случае же операции переименования, мощность отношения не изменяется, за счет того, что при смене имен никакие кортежи из отношения  не исключаются;

2) свойство идемпотентности:

а) для операции выборки: σ <P > σ <P >r  = σ <P >;

б) для операции проекции: r  [S’ ] [S’ ] = r  [S' ];

в) для операции переименования в общем случае свойство идемпотентности  неприменимо.

Это свойство означает, что  двойное последовательное применение одного и того же оператора к какому-либо отношению равносильно его однократному применению.

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

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

Информация о работе База данных