Определение реляционной модели
Реляционной моделью данных (РМД) предметной области является совокупность отношений, которые изменяются во времени. В процессе создания информационной системы набор отношений предоставляет возможность хранить информацию об объектах предметной области и позволяет моделировать между ними связи.
Важнейшим понятием является отношение.
Отношением называется двумерная таблица, которая содержит некоторые данные.
Сущностью является объект любой природы, о котором в базе данных хранятся данные. В отношении хранятся данные о самой сущности.
Атрибуты являются свойствами, которые характеризуют сущность.
В структуре таблицы каждому атрибуту ставится в соответствие заголовок столбца таблицы и ему присваивают имя. На рисунке 1 отображен пример отношения СОТРУДНИК.
Обычно порядок кортежей в отношении не определяется, но в реляционной модели для обеспечения удобства кортежи упорядочиваются. Зачастую для упорядочивания выбирается некоторый атрибут, который используется системой для автоматической сортировки кортежей по возрастанию или убыванию.
Если пользователь не назначил атрибут упорядочения, то системой автоматически присваивается номер кортежам в том порядке, в котором они были введены.
Домен представляется множеством всех возможных значений, которые имеет определенный атрибут отношения.
На рисунке 1 отношение СОТРУДНИК содержит 4 домена.
Домен 1 включает фамилии сотрудников, в домене 2 содержатся номера отделов фирмы, в домене 3 – названия должностей, а домен 4 содержит даты рождения сотрудников. В каждом домене содержатся значения одинаковых типов данных, например, числовых или символьных.
В отношении СОТРУДНИК содержится 3 кортежа. Кортеж этого отношения включает 4 элемента, которые выбираются из соответствующего домена. Каждый кортеж представляет строку таблицы.
Схема отношения (или заголовок отношения) представлена списком имен атрибутов.
Например, в отношении СОТРУДНИК на рисунке 1 схемой отношения является вид СОТРУДНИК, который состоит из заголовков ФИО, Отдел, Должность, Д_Рождения. Множеством самих кортежей отношения является содержимое (или тело) отношения.
Первичный ключ (ключ отношения, ключевой атрибут) – это атрибут отношения, который однозначно идентифицирует каждый его кортеж.
Например, на рисунке 1 в отношении СОТРУДНИК атрибут ФИО является ключевым.
Если ключ состоит из нескольких атрибутов, то он называется составным (или сложным).
Каждое отношение обязательно состоит из комбинации атрибутов, которая может быть ключом.
Отношение не может иметь повторяющихся кортежей, что означает наличие у всей совокупности атрибутов свойства однозначной идентификации кортежей данного отношения. Многие СУБД допускают создание отношений без определения ключей.
Встречаются случаи, в которых отношение включает не одну комбинацию атрибутов, однозначно определяющих все кортежи отношения. Эти комбинации атрибутов – возможные ключи отношения. Любой из них можно выбрать в качестве первичного.
Если первичный ключ содержит минимально необходимый набор атрибутов, то его называют не избыточным.
Ключи обычно используются, чтобы:
- исключить дублирование значений в ключевых атрибутах (на остальные атрибуты не распространяется);
- упорядочить кортежи. Можно упорядочивать по убыванию или возрастанию значений всех ключевых атрибутов, к тому же выполнять смешанное упорядочение (по одним – убывание, а по другим – возрастание);
- ускорить работу с кортежами отношения;
- организовать связывание таблиц.
Если в отношении R1 есть не ключевой атрибут А1 и его значения являются значениями ключевого атрибута А2 другого отношения R2. В таком случае атрибут А1 отношения R1 называют внешним ключом.
Внешние ключи устанавливают связи между отношениями.
Например, есть 2 отношения:
- СТУДЕНТ, которое состоит из атрибутов ФИО, Группа, Специальность;
- ПРЕДМЕТ, состоящее из атрибутов Назв.Пр. и Часы.
Пусть их связывает отношение СТУДЕНТ_ПРЕДМЕТ, которое состоит из ФИО., Назв.Пр. и Оценка (рисунок 2). В этом отношении составным ключом будут атрибуты ФИО и Назв.Пр, которые являются внешними ключами и первичными ключами других отношений.
При использовании некоторых СУБД базой данных считают одну отдельную таблицу (отношение), а в других СУБД база данных может состоять из нескольких таблиц.
Основная единица обработки данных в реляционной модели – отношение.