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

## 2.1 Введение в реляционную модель.

При логическом проектировании физические характеристики ЭВМ и особенности программ отдельных пользователей не учитываются. Логическое проектирование осуществляется в рамках некоторой заранее принятой модели абстрагирования, которую называют модель данных . Точнее говоря, под ней понимают основные понятия и способы, используемые при выполнении абстрагирования. При создании БД (база данных) всегда следует учитывать логические ограничения на значения данных и их соотношения. Они обычно представляют собой условия при которых имеют смысл те или иные данные. Так, например, если бы рассмотреть значение стоимости детали, то оно не может превышать значение стоимости изделия, в которое детали входят составной частью. Отсюда возникает понятие целостности данных , т.е. данные , хранимые в БД не должны противоречить заданным логическим ограничениям, которые называются ограничениями целостности. Они обычно задаются для множества объектов. К явным ограничениям целостности можно отнести ограничения на значения атрибутов объекта. Естественно, что ограничения в явном виде задаются не только для атрибутов, но и для типов объектов (сущностей) и связей. Рассмотрим основные типы связей.

Связь один к одному (1:1). Она определяет такой вид связи между двумя типами объектов А и В, при котором каждому экземпляру А соответствует только один В и наоборот. Например, связь студент курса - номер зачетной книжки.

Связь один ко многим (1:М). Соответствует случаю, когда для двух типов А и В, одному экземпляру А соответствует несколько (0,1,2,...,М) экземпляров В. Однако каждому В соответствует только один экземпляр А, например связь группа - фамилия, имя, отчество студента.

Связь многие к одному (М:1). Является вариантом связи, обратных к связи 1:М, т.е. в этом случае многим экземплярам А соответствует только один В. Например, Ф.И.О. студента - группа.

Связь многие ко многим (М:M). Соответствует случаю, когда каждому экземпляру А может соответствовать несколько экземпляров В, и наоборот. Например, телевизор - резистор.

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

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

Сетевые и иерархические СУБД получили наибольшее распространение на больших и малых ЭВМ. Исторически вначале появились иерархические модели данных, поддерживающие древовидные структуры на диске. Затем получили распространение сетевые модели данных, использующие модель представления данных в виде произвольного графа. Практически все СУБД персональных компьютеров поддерживают реляционную модель данных, в которой данные представляются в виде таблиц (отношений). Языковым стандартом реляционных систем считается язык SQL.

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

В основе РМД (реляционная модель данных) лежит математическая теория отношений. Для представления данных математическое отношение используется двояко:

1. Для представления набора объектов,
2. Для представления связей между наборами объектов.

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

R1(А11, А21,..., Ак1);
R2(А12, А22,..., Аl2);
. . . . . . . . . . . . . . . .
Rm(А1m, А2m,..., Аnm);

где Аi j - имя атрибута, Rj - имя отношения.

### Элементы реляционной модели

Элементы реляционной модели | Форма представления
Отношение | Таблица
Схема отношения | Строка заголовок столбцов таблицы (заголовок таблицы)
Кортеж | Строка таблицы
Сущность | Описание свойств объекта
Атрибут | Заголовок столбца таблицы
Домен | Множество допустимых значений атрибута
Значение атрибута | Значение поля в записи
Первичный ключ | Один или несколько атрибутов
Тип данных | Тип значений элементов таблицы

Пример: Представление отношения «сотрудник».

Одним из основных типов зависимостей, рассматриваемых в РБД, являются функциональные зависимости. Пусть А и В атрибуты отношения R . Говорят, что атрибут В отношения R функционально зависит от атрибута А, если в каждый момент времени каждому значению а соответствует не более одного значения b. Функциональную зависимость f атрибута В от атрибута А обозначают : f : А → В. Эту зависимость f можно также представить множеством упорядоченных пар {< а, b>/ а ∈ А, b ∈ В }, в которых каждому значению а соответствует только одно значение b. При этом говорят, что В функционально зависит ( или просто зависти ) от А, а А функционально определяет ( или просто определяет) В. Если существует единственная функциональная зависимость В от А, то её обозначают просто А → В. В случае отсутствия между ними функциональной зависимости вводят обозначение А ≠ В. Если А → В и одновременно В → А , то между А и В существует взаимно однозначное соответствие, что записывается как А ↔ В. Пусть имеется множество атрибутов А1, А2,...,Аn отношения R, а также множество F Ф.З. Х → Y, где Х и Y - подмножества атрибутов множества А1, А2,...,Аn. Тогда из Ф.З. (функциональные зависимости), входящих в F, могут быть выведены другие Ф.З., присущие отношению R. Обозначим через F+ замыкание множества ФЗ F, т.е. полное множество зависимостей, которое можно получить из F.

## 2.3 Правила вывода ФЗ.

1. Правило ФЗ 1 (свойство рефлексивности). Если Х ≤ U, Y ≤ U и Y ≤ Х, то имеет место Ф.З. Х → Y.
2. Правило ФЗ 2 (свойство пополнения). Если Х ≤ U, Y ≤ U и Z ≤ U и имеет место Ф.З. Х → U, X ∪ Z → Y ∪ Z. В отличии от правила ФЗ 1 данное говорит о том, что для его применения несу щественно выполнение условий Y ≤ Х. Т.е. любые атрибуты из множества U можно одновременно подставлять в левую и правую части выражения Ф.З. F. Например, имеется универсальное отношение U(A1, A2, A3, A4, A5) и заданы наборы атрибутов X={A1, A3}, Y={A2, A4}, Z={A5}, тогда из условия, что существует Ф.З. Х → Y : {A1, A3}→ {A2, A4}, следует, что имеет место зависимость: {A1, A3, А5} → {A2, A4, А5},
3. Правило ФЗ 3 (свойство транзитивности). Если Х ≤ U, Y ≤ U и Z ≤ U и имеют место зависимости Х → Y и Y → Z, то Х → Z . Например, имеются подмножества атрибутов X={A1, A3}, Y={A2, A4}, Z={A5}. Тогда из условия существования зависимостей {A1, A3}→ {A2, A4}, {A2, A4}→ {A5} следует, что имеет место зависимость {A1, A3}→ {A5}. Кроме этих правил часто используют дополнительные правила следствия ФЗ 1, ФЗ 2, и ФЗ 3.
4. Правило ФЗ 4 (свойство расширения). Если Х ≤ U, Y ≤ U и задана ФЗ, Х → Y , тогда для любого Z ≤ U имеет место Ф.З. X ∪ Z → Y.
5. Правило ФЗ 5 (свойство продолжения). Если Х ≤ U, Y ≤ U, W ≤ U, Z ≤ U и задана Ф.З. Х → Y, то для любых W ≤ Z имеет место зависимость X ∪ Z → Y ∪ W.
6. Правило ФЗ 6 ( свойство псевдотранзитивности). Если Х ≤ U, Y ≤ U, W ≤ U, Z ≤ U и заданы Ф.З. Х → Y, Y ∪ W → Z , то имеет место Ф.З. X ∪ W → Z.
7. Правило ФЗ 7 (свойство аддитивности). Если Х ≤ U, Y ≤ U, Z ≤ U, и заданы Ф.З. Х → Y, Х → Z, то имеет место Ф.З. X → Y ∪ Z.
8. Правило ФЗ 8 (свойство декомпозиции). Если Х ≤ U, Y ≤ U, Z ≤ U, и при этом Z ≤ Y и заданы Ф.З. Х → Y, то имеет место Ф.З. Х → Z.