Декартовым (или прямым) произведением называется выборка всех возможных комбинаций строк из двух таблиц.



       Отношение – произвольное конечное подмножество декартова произведения одного или нескольких доменов.

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

       Схема отношения представляется:

1. Перечнем имен отношения и атрибутов в виде R(A1,A2,…,Ak), где R – имя отношения, Ai – имена атрибутов

2. Описанием доменов для каждого атрибута

3. Условиями ограничения целостности.

Степень («арность») схемы отношения – мощность этого множества.

Кортеж схемы отношения – это множество пар (имя атрибута, имя домена), которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения. Значение является допустимым значением домена данного атрибута.

Т.о. можно переопределить отношение – это множество кортежей, соответствующих экземпляру схемы отношения.

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

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

1. Отношение, таблица, файл

Кортеж, строка, запись

Атрибут, столбец, поле

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

Фундаментальные свойства отношений:

1. Однородность атрибутов (элементы атрибута принимают значения на одном домене)

2. Отсутствие кортежей-дубликатов (т.е. нет одинаковых строк)

3. Отсутствие упорядоченности кортежей (при работе с такой таблицей её строки и столбцы могут просматриваться в любом порядке и любой последовательности)

4. Отсутствие упорядоченности атрибутов (для ссылки на значение атрибута в кортеже всегда указывается имя атрибута)

5. Атомарность значений атрибутов (все атрибуты отношения атомарны).

Принципы нормализации

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

       В теории реляционных БД выделяют следующие НФ (нормальные формы):

  1. 1НФ
  2. 2НФ
  3. 3НФ
  4. нормальная форма Бойса-Кодда
  5. 4НФ
  6. 5НФ (нормальная форма проекции - соединения)

При переходе от одной НФ к другой сохраняются свойства предыдущих НФ и, каждая последующая НФ, улучшает свойства предыдущей.

Нормальные формы отношений на практике основываются на фундаментальном понятии в теории реляционных БД функциональной зависимости.

Пусть R(A1, …, An) схема отношения R. Функциональная зависимость означает, что атрибут Aj отношения R функционально зависит от атрибута Ai того же отношения, если в каждый момент времени каждому значению атрибута Ai соответствует не более чем одно значение атрибута Aj, связанного с Ai в отношении R (т.е. функциональная зависимость Aj от Ai означает, что если в любой момент времени известно значение Ai, то можно однозначно получить и значение Aj).

На практике достаточно первых трех форм.

1. Первая НФ (устранение повторяющихся групп)

Простой атрибут – атрибут, значения которого неделимы.

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

       Отношение называет приведенным к 1НФ, если все его атрибуты являются атомарными (простыми). Т.е. на пересечении строки и столбца находится только одно значение.

(пример на презентации)

2. Вторая НФ (удаление частично зависимых атрибутов)

Отношение находится во второй НФ, если оно находится в 1НФ и все неключевые атрибуты функционально полно зависят от составного ключа.

(пример на презентации) Первичный ключ в отношении: {Код поставщика, Код товара}.

Как видим, отношение обладает большой избыточностью:

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

Чтобы устранить это необходимо разбить наше отношение на проекции:

Функциональные зависимости:

{Код поставщика, Код товара} -> { Количество},

{Код поставщика} -> {Город},
{Код поставщика} -> {Статус},
{Город} -> {Статус}

Разбиваем исходное отношение на проекции…

3. Третья НФ (удаление транзитивно зависимых атрибутов)

Пусть X, Y и Z – три атрибута некоторого отношения. При этом X -> Y и Y -> Z, но обратное соответствие отсутствует Z->Y и Y -> X. Тогда говорят, что Z транзитивно зависит от X.

       Отношение находится в 3НФ, если оно находится во 2НФ и в нем отсутствуют транзитивные зависимости неключевых атрибутов от ключа.

(пример на презентации)

       Т.о разбиение информации на более мелкие компоненты с одной стороны, способствует повышению надежности и непротиворечивости БД, а с другой стороны, снижает её производительность, т.к. требуются дополнительные затраты процессорного времени.

           


Дата добавления: 2021-03-18; просмотров: 52; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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