4.1. Реляционная модель данных

4.2. Основные операции реляционной алгебры

4.3. Переход от ER-диаграмм к системе отношений (таблиц)

4.4. Понятие первичного и внешнего ключа

4.5. Ограничительные условия, поддерживающие целостность

4.6. Аномалии хранения данных

4.7. Функциональная зависимость

4.8. Нормальные формы отношений

4.1. Реляционная модель данных

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

Основные понятия реляционной МД.

Атомарное значение – неделимое значение.

Домен – множество атомарных значений одного и того же типа. Если значения принадлежат одному и тому же домену, то имеет смысл их сравнение. А1, А5, А7, Аi – атрибуты отношения, т.е. набор значений принадлежащих к одному и тому же домену.

Заголовок (схема отношений) – это набор его атрибутов.

Математическое определение отношений. Если V1, V2…, Vi – это набор множеств именуемых доменами, тогда отношение R (V1, V2, .., Vi) представляет собой подмножество декартовых произведений доменов (V1*V2*…*Vi). Каждому домену приписывается имя, в качестве отношения рассматривается отношение этих имён. Элементом отношения является кортеж.

Кортеж – это множество пар имён атрибутов, значений атрибутов (это строка таблицы).

Мощность отношения – это число его кортежей.

Степень отношения – это число его атрибутов (число столбцов в таблице).

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

Уникальность – значения ключевых атрибутов не могут повторяться.

Минимальность – ни один из атрибутов не может быть исключён из набора без нарушения уникальности.

Свойства отношений:

  1. Отношение имеет своё уникальное имя.
  2. Уникальность имён атрибутов.
  3. Отсутствие кортежей-дубликатов.
  4. Атомарность значений атрибутов.
  5. Отсутствие упорядоченности атрибутов и кортежей.

4.2. Основные операции реляционной алгебры

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

Условные обозначения:

X, Y – отношения-операнды.
R – отношение-результат.
Mx, My, Mr – мощности отношений X,Y,R.
А, B – подмножества схем отношений.

Все операции можно разбить на 2 группы:

  1. Теоретико-множественные.
  2. Операции, учитывающие структуру решений как модель данных.
    1. Объединение.
      R=X+Y
      Max(Mx,My) ≤ Mr ≤ Mx+My
      Схемы кортежей и операндов должны быть одинаковы.
    2. Разность.
      R=X-Y
      0 ≤Mr ≤ Mx
    3. Пересечение
      R=X Y=X-(X-Y)
      0 ≤ Mr ≤min(Mx,My)
    4. Декартово произведение.
      R=X*Y
      Mr=Mx*My

X:

A

B

15

7

8

11

Y:

W

Z

6

4

2

3

R=X*Y:

A

B

W

Z

15

7

6

4

8

11

6

4

15

7

2

3

8

11

2

3

    1. Проекция (ограничение).
      R=X(A), где Aсхема X.
      Результатом проекции является отношение со схемой А, где каждый кортеж составлен из значений соответствующего кортежа Х.
      Пример:

Х:

Ф.И.О.

Отдел

должность

Оклад

Иванов

ОГЭ

Слесарь

1000

Петров

ОГМ

Электрик

2000

Сидоров

ОГЭ

Мастер

3000

R=X(Ф.И.О.)
R:

Ф.И.О.

Иванов

Петров

Сидоров

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

  1. Селекция (выбор).
    R=X(A B), где А Х, В- множество констант,
    Нужно, чтобы А и В были сравнимы по смыслу с .
    Для всякого Ai,j Bi,j должно иметь смысл.
    Результатом операции селекции является отношение, состоящее из тех кортежей Х, которые удовлетворяют заданным условиям. Селекция часто используется в комбинации с проекцией.
  2. Деление.

R=X(B)Y; Bсхема Y

Результатом операции деления является минимальное множество кортежей таких, что декартово произведение этого множества с Y присутствует в X.
Y(B)X

  • R1=X(A-B)*Y(B)-X(A)
  • R=X(A-B)-R1(A-B)

Пример: Найти преподавателя, который проводит занятия по каждой дисциплине.

8. Соединение.

R=X(A B)Y Aсхема Х
Всхема Y, или множество констант.

Результатом операции соединения является селекция по заданному условию декартова произведения операндов.
R1=X*Y R=R1(A B)
Пример: соединить отношения Х и У по условию W>5:

X(W>5)Y
R1: W Z C D W Z C D
5 10 12 13 6 4 8 7
6 4 8 7 6 4 12 13
5 10 8 7
6 4 12 13

9. Переименование.

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

4.3. Переход от ER-диаграмм к системе отношений (таблиц)

При создании системы отношений необходимо выполнить следующие условия:

  1. Информация в таблицах не должна повторяться.
  2. Поля таблиц не должны принимать неопределённых (пустых) значений.

ШАГ 1

  1. Преобразование сущностей. Каждая простая сущность становится таблицей.
  2. Каждый атрибут сущности становится столбцом в таблице.
  3. Уникальный идентификатор сущности становится первичным ключом таблицы.
  4. Если в ER-диаграмме присутствовали подтипы сущностей, они выносятся в отдельные столбцы.

ШАГ 2

Переход от ER-диаграмм к системе отношений.

Значность связи

Членство

Число таблиц

1:1

Обязательная

1

Возможная

2

Необязательная

3

1:m

Обязательная

2

Возможная

2

Необязательная

3

m:m

Обязательная

3

Возможная

3

Необязательная

3

4.4. Понятие первичного и внешнего ключа

Ключ – это минимальный набор атрибутов, который однозначно определяет кортеж.

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

Суперключ – это любой набор атрибутов, который однозначно определяет кортеж.

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

Первичный ключ – это ключ наиболее удобный для поиска строк таблицы.

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

Рекурсивный внешний ключ – это внешний ключ, который ссылается на своё собственное отношение.

Набор схем отношений с определёнными первичными и внешними ключами называется схемой данных.

4.5. Ограничительные условия, поддерживающие целостность

Целостность – это согласованность данных в базе данных.

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

  • Существует 2 вида целостности:
  • Категорная целостность
  • Целостность на уровне ссылок

Категория – это конкретный объект, информация о котором хранится в БД.

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

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

Каскадное обновление – это автоматическое обновление данных в таблице при изменении данных связанных с ней.

4.6. Аномалии хранения данных

Аномалия обновления – это противоречивость данных, связанная с избыточностью и частичным обновлением.

Аномальное удаление – непреднамеренная потеря данных в связи с удалением других данных.

Аномалии ввода – это невозможность ввести данные в таблицу ввиду отсутствия других данных.

Декомпозиция – это разделение таблиц на 2 или несколько таблиц с целью устранения аномалий.

Подход создания БД с помощью декомпозиции называется аналитическим.

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

4.7. Функциональная зависимость

R(X,Y) ; X,Y схема R.

Если не может существовать более одного кортежа R, совпадающего по всем значениям из Х и отличающегося хотя бы по одному значению по Y, то зависимость называют функциональной зависимостью по Х.

Классификация функциональных зависимостей.

  1. Полная функциональная зависимость(ФЗ).
    Y зависит от Х, но не зависит от любого подмножества Х.
  2. Неполная ФЗ.
    Y зависит от Х и от какого-нибудь подмножества Х.
  3. Тривиальная ФЗ.
    Y является подмножеством Х.
  4. Транзитивная ФЗ.
    R(X,Y,Z); X,Y,Z R
    X Z, Z Y, X Y.
    В этом случае Х функционально определяет Z, Z определяет Y, когда Х не определяет функцию Y.
  5. Многозначная ФЗ.

Говорят, что в отношении R с наборами атрибутов X,Y,Z имеется многозначная ФЗ, если существует множество значений Z, соответствующее паре значений X и Y, которое зависит функционально от Y, но не зависит функционально от Z.

Правила вывода или аксиомы Армстронга.

Сформулируем правила вывода:

  1. Рефлексивность.
    X,Y схема R
    Если XY, то Y X.
  2. Присоединение.
    X,Y,Z
    W Z
    XZ=X Z
    Если X Y, то XZ YW.
  3. Транзитивность.
    X,Y,Z
    Если X Y и Y Z, то X Z
  4. Псевдотранзитивность.
    X,Y,Z,W
    X W=XW
    Y W=YW
    Если X Y, XW YW, YW Z, то YW Z
  5. Объединение.
    X,Y,Z
    Если X Y, X Z, то X YZ
  6. Декомпозиция.
    X,Y,Z
    Если X YZ, то X Y и X Z

4.8. Нормальные формы отношений

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

Каждая таблица делится до тех пор, пока она не станет обладать некоторыми определёнными свойствами.

Свойства нормальных форм:

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

Первая нормальная форма (1НФ).

При первой нормальной форме значения всех её атрибутов атомарные.

Сотрудники – отделы – проекты.

№сотрудника

Зарплата

№отдела

№проекта

Задание

Ключом являются №сотрудника и №проекта
Функциональная зависимость (ФЗ):
№сотрудника зарплата (*)
№сотрудника, №проекта задание (**)
№сотрудника №отдела (***)
(*) и (***) – это неполные ФЗ.
Чтобы избежать аномалий, нужно данную таблицу разделить на 2 таблицы: удаляются все неполные ФЗ.

Вторая нормальная форма (2НФ).

Сотрудники – отделы

№сотрудника

Зарплата

№отдела

Сотрудники – проекты

№сотрудника

№проекта

Задание

ФЗ:
зарплата отдел
отдел зарплата
сотрудник зарплата

Третья нормальная форма (3НФ).

Сотрудники – отделы

№сотрудника

№отдела

Отдел – зарплата

№отдела

Зарплата

Отношение находится в 3НФ, когда удалены транзитивные ФЗ.

Нормальная форма Бойса-Кодда (НФБК).

№сотрудника

Имя сотрудника

№проекта

Задание

ФЗ:
№сотрудника имя сотрудника
№сотрудника, №проекта задание
№сотрудника №проекта
Имя сотрудника №проекта
Исходная таблица разделяется на 2 таблицы:

№сотрудника

Имя сотрудника

№сотрудника

№проекта

Задание

Отношение находится в НФБК, если любая нетривиальная зависимость в нём есть зависимость от ключа
№сотрудника, №проекта задание

Четвёртая нормальная форма (4НФ).

Отношение находится в 4НФ, если любая многозначная зависимость в ней есть зависимость от ключа.

Достаточным условием для 4НФ является наличие в отношении не более 2 атрибутов.

№сотрудника

№проекта

Задание

Исходная таблица разделяется на 2 таблицы:

№сотрудника

№проекта

№проекта

Задание

Пятая нормальная форма (5НФ).

Отношение находится в 5НФ тогда, когда в любой её полной декомпозиции все проекции содержат возможный ключ.

№сотрудника

№отдела

№проекта

Ключ: №сотрудника, №отдела, №проекта

№сотрудника

№отдела

№сотрудника

№проекта

№отдела

№проекта

Общие правила нормализации:

1.T(k1,k2,F), k2 F , где Т, Т1,Т2 – это таблицы, k1, k2 – ключи.

T1(k1, k2), T2(k2, F).
3.T(k,F1,F2), F1 F2

T1(k, F1), T2(k, F2).