
Лекция 3 . Реляционная модель данных
План лекции
-
Исторические сведения.
-
Основные понятия, связанные с реляционной моделью.
-
Свойства отношений.
-
Реляционные ключи.
-
Ссылочная целостность.
-
Правила внешних ключей,
-
Целостность реляционных данных.
Текст лекции
Реляционная модель была предложена Э.Ф.Коддом в 1970 году в его основополагающей статье “Реляционная модель для больших совместно используемых банков данных”.
В настоящее время существует несколько сотен реляционных СУБД.
Примеры: Access и FoxPro фирмы Microsoft;
Paradox и Visual dBase фирмы Borland и ряд других.
В любой реляционной СУБД предполагается, что пользователь воспринимает БД как набор таблиц. Это восприятие относится только к внешнему и концептуальному уровню архитектуры.
На физическом уровне, данные могут быть организованы другими способами.
Реляционная модель данных некоторой предметной области представляет собой набор отношений, изменяющихся во времени.
Отношение – это плоская таблица, состоящая из столбцов и строк.
Строки соответствуют записям, а столбцы – атрибутам. При этом атрибуты и строки могут располагаться в любом порядке.
Независимо от изменения их порядка отношения будут оставаться одними и теми же.
Домен – это набор допустимых значений для одного или нескольких атрибутов. Не следует путать это понятие с типом данных. Каждый атрибут определяется на некотором домене. Два или более атрибутов могут определятся на одном или боле доменов.
Таблица 1
Атрибут |
Имя домена |
Содержание домена |
Определение домена |
Город |
CITY |
Множество всех названий городов в России |
Символьный: размер 15 |
Понятие домена имеет большое значение, т. к. пользователь может централизованно определить смысл и источник значений, которые могут получать атрибуты.
Кортеж - соответствует строке этой таблицы, атрибут – столбцу.
Степень отношения – количество атрибутов, которое оно содержит.
Отношения с одним атрибутом, называются унарными отношениями, отношения с двумя атрибутами – бинарными отношениями, в общем случае – n-арными.
Кардинальность отношения – количество кортежей, которые содержит отношение. Эта характеристика меняется при добавлении или удалении записей. Кортежи могут располагаться в произвольном порядке, при этом отношение будет оставаться тем же самым. Однако, практически весьма важно, как расположены кортежи.
Для уникальной идентификации кортежей отношения используется понятие реляционного ключа. Существуют различные варианты ключей: потенциальный (возможный), первичный, альтернативный, внешний.
Первичный ключ – уникальный идентификатор для таблицы, т. е. столбец или группа столбцов таких, что в любой момент времени не существует двух строк, содержащих одинаковое значение в этом столбце или комбинации столбцов.
Рис. 1. Пример реляционной модели
Отношение R, определенное на множестве доменов D1, D2, …, Dn (не обязательно различных) содержит заголовок и тело.
Заголовок содержит фиксированное множество атрибутов или, точнее, пар <имя - атрибута: имя - домена > :
{<А1:D1>, < А2:D2>, …,< Аn:Dn>},
причем каждый атрибут соответствует одному и только одному домену. Все имена атрибутов А1, А2, …, Аn разные. На практике заголовок, это просто набор атрибутов. Имена доменов иногда опускаются.
Тело отношения содержит множество кортежей. Каждый кортеж, в свою очередь, содержит множество пар
<имя - атрибута: значение - атрибута >:
{<А1:Vi1>, < А2:Vi2>, …,< Аn:Vin>}
i=1, 2, …, m, где m – количество кортежей (строк) в этом множестве , т.е. m – кардинальность отношения;
n – степень отношения.
Таким образом, если мы принимаем эти правила, то можно считать, что таблица – это приемлемое изображение отношений.
Таблица 2 . Альтернативная терминология
Официальные термины |
Альтернативный вариант 1 |
Альтернативный вариант 2 |
Отношение |
Таблица |
Файл |
Кортеж |
Строка |
Запись |
Атрибут |
Столбец |
Поле |
Реляционная база данных – набор нормализованных отношений.
Реляционная схема отношения – это имя отношения, за которым следует множество пар имен атрибутов и доменов.
Например, R {А1:D1, А2:D2, …, Аn:Dn}.
Иногда используется упрощенное обозначение реляционной схемы отношения, включающее имя отношения, за которым (в круглых скобках) располагаются имена атрибутов. При этом атрибуты первичного ключа подчеркиваются.
Например:
ЛЕКЦИЯ ( ТЕМА_ЛЕКЦИИ, ДАТА_ПРОВЕДЕНИЯ, КОЛИЧЕСТВО_СЛУШАТЕЛЕЙ )
Концептуальная модель (концептуальная схема) – это множество всех реляционных схем отношений.
R1 (A11, A12,…, A1k1)
R2 (A21, A22,…, A2k2)
- - - - - - - - - - - - - - -
Rm (Am1, Am2,…, Amkm)
Пример концептуальной модели:
РАБОЧИЙ (Шифр _рабочего, Фамилия, Адрес)
НАЗНАЧЕНИЕ (Шифр _рабочего, Шифр _ задания, Дата, Продолжительность)
ЗАДАНИЕ (Шифр _ задания, Адрес _ задания, Тип, Статус)
Ясно, что значения атрибутов Шифр_рабочего и Шифр_задания в отношении НАЗНАЧЕНИЕ должны соответствовать значениям присутствующим в отношениях РАБОЧИЙ и ЗАДАНИЕ.
Атрибуты Шифр_рабочего и Шифр–задания в отношении НАЗНАЧЕНИЕ являются примерами того, что мы называем внешними ключами.
Отношению соответствуют следующие свойства:
-
отношение имеет имя, которое отличается от имен других отношений;
-
в любом отношении нет одинаковых кортежей;
-
кортежи отношения могут быть не упорядочены;
-
каждый атрибут имеет уникальное имя;
-
атрибуты могут быть не упорядочены;
-
все значения атрибутов атомарные;
-
значения атрибута берутся из одного и того же домена.
Null – значения. Часто говорят, что для некоторого человека «Дата рождения не известна», «В настоящее время адрес проживания не известен» и т.п.
В 1970 г. Коддом был сформулирован подход к этой проблеме: для представления отсутствующей информации предложено использовать специальные маркеры, называемые Null – значениями. Это не пробелы или числовые нули, это некоторые маркеры.