Реляционная модель данных
Лекция 4. Реляционная модель данных. Основные понятия
Теоретической основой модели стала теория отношений, основу которой заложили два логика – американец Чарльз Содерс Пирс и немец Эрнст Шредер. Позднее, в 1970-1971 годах американский математик Э. Ф. Кодд, основываясь на трудах предшественников, сформулировал основные понятия и ограничения реляционной модели, ограничив набор операций семью основными и одной дополнительной. Предложения Кодда были настолько эффективны для систем баз данных, что он был удостоен премии Тьюринга в области теоретических основ вычислительной техники.
Реляционная модель данных (РМД) наиболее проста и имеет в основе развитый математический аппарат (реляционная алгебра или реляционное исчисление), поэтому она фактически стала стандартной моделью представления данных в СУБД.
Основными понятиями реляционных баз данных являются тип данных, домен, атрибут, кортеж, первичный ключ и отношение.
Базы данных, между отдельными таблицами которой существуют связи, называются реляционными (от relation – отношение). Таким образом, реляционная модель данных представляет информацию в виде совокупности взаимосвязанных таблиц, которые принято называть отношениями или реляциями.
Связанные отношения взаимодействуют по принципу главная (master) – подчиненная (detail). Главную таблицу часто называют родительской, а подчиненную – дочерней. Одна и та же таблица может быть главной по отношению к одной таблице БД и дочерней по отношению к другой.
Отношение – реляционная таблица.
Тип данных. Понятие тип данных в реляционной модели полностью эквивалентно соответствующему понятию в алгоритмических языках. Тип данных определяет возможные способы обработки данных и место, необходимое для их хранения. Набор поддерживаемых типов данных определяется СУБД и может сильно различаться в разных системах. Однако существуют типы данных общие для всех СУБД:
Рекомендуемые материалы
· целочисленный тип;
· вещественный;
· строковый;
· специализированный тип данных для денежных величин;
· специальные типы данных для хранения даты или даты и времени;
· типы двоичных объектов (данный тип не имеет аналога в языка программирования; обычно для его обозначения используется аббревиатура BLOB – Binary Large Object).
Домен – это множество атомарных значений одного и того же типа. Домены представляют собой пользовательский тип.
Атрибут – это характеристика объекта (сущности). Атрибуты имеют имена, через которые к ним производится обращение. Имя атрибута должно быть уникальным внутри отношения.
Схема отношения - это именованное множество пар {имя атрибута, имя домена (или типа, если понятие домена не поддерживается)}.
Степень отношения – это число атрибутов отношения. Отношение степени один называют унарным, степени два – бинарным, степени три – тернарным, степени n – n-арным.
Схема базы данных (в структурном смысле) - это набор именованных схем отношений с указанием взаимосвязей между ними.
Кортеж (схемы отношения) представляет собой множество пар (имя атрибута, значение), которое содержит одно значение каждого имени атрибута, принадлежащего схеме отношения. «Значение» является допустимым значением домена данного атрибута (или типа, если домены не поддерживается). Степень кортежа отношения (число элементов в нем) совпадает со степенью соответствующей схемы отношения.
Ключи отношения. Отношение с математической точки зрения является множеством и не может содержать совпадающих элементов, т.е. в любой момент времени никакие два кортежа отношения не могут быть дубликатами друг друга. Таким образом, в отношении должен присутствовать некоторый атрибут (или набор атрибутов), однозначно определяющий каждый кортеж отношения и обеспечивающий уникальность строк таблицы. Такой атрибут (или набор атрибутов) называют первичным ключом отношения.
Свойства первичного ключа:
· уникальность: в любой момент времени никакие два кортежа отношения не должны иметь одного и того же значения;
· минимальность: ни один из атрибутов не может быть исключен из набора атрибутов первичного ключа, без нарушения свойств уникальности.
Рисунок 4.1 – Основные понятия РМД, на примере фрагмента отношения «Студент» для медпункта.
В зависимости от количества атрибутов, ходящих в ключ, различают простые и сложные (составные) ключи.
Простой ключ – ключ, одержащий только один атрибут. Как правило, в качестве него используют самый короткий и простой из возможных типов данных (целочисленный тип), при этом операции использующие ключ (операции объединения) выполняются значительно быстрее.
Сложный (составной) ключ – ключ, состоящий из нескольких атрибутов.
Суперключ – сложный ключ, с большим числом столбцов, не удовлетворяющий свойству минимальности. Используется крайне редко, когда избыточность может оказаться полезной пользователю.
С точки зрения информативности атрибута (или нескольких атрибутов) составляющего первичный ключ, различают искусственные и естественные ключи.
Искусственный или суррогатный ключ – ключ создаваемый самой СУБД или пользователем с помощью некоторой процедуры, который сам по себе не одержит информации. Используется для создания уникальности идентификаторов строк. Им так же заменяют слишком сложные ключи. Как правило, пользователю они не показываются.
Естественный ключ – ключ, содержащий только значимые атрибуты, т.е. содержащий информацию.
К достоинствам естественных ключей можно отнести следующие: они несут вполне определенную информацию, и их использование не приводит к необходимости добавлять к таблице атрибуты, значения которых для пользователя не несут никакого смысла и используются только для связи между отношениями, что позволяет получить более компактную форму таблиц.
Основным же недостатком естественных ключей является то, что их использование весьма затруднительно в случае изменения предметной области. Значения атрибутов первичного ключа не должны изменяться, т.е. однажды заданное значение первичного ключа для кортежа не может быть изменено. Это требование необходимо для поддержания ссылочной целостности базы данных, т.к. связь между отношениями обычно устанавливается по первичному ключу. Как правило, для избежания подобных проблем в отношения водятся искусственные ключи.
Другим недостатком естественных ключей является то, что, как правило, они являются составными и содержат строковые атрибуты, что сказывается на скорости выполнения операций над данными и в этом случае так же удобнее бывает вводить суррогатные ключи.
В любой из таблиц может оказаться несколько наборов атрибутов, которые можно выбрать в качестве ключа, такие наборы называются потенциальными и альтернативными ключами.
Вторичные ключи – ключи, имеющие комбинации атрибутов отличные от комбинации атрибутов первичного ключа. Они могут не обладать свойством уникальности.
Перекрывающиеся ключи – сложные ключи, которые имеют один или несколько общих столбцов.
Контрольные вопросы
1. Для чего необходим тип данных?
2. Чем отличается домен от типа данных?
3. Что такое атрибут?
4. Как можно представить схему отношения?
5. Что такое схема базы данных?
6. Что такое картеж?
7. В чем заключается назначение первичного ключа?
8. Какие основные свойства первичного ключа вы знаете и в чем их смысл?
9. Назовите классификацию ключей по количеству входящих в него атрибутов.
10. Назовите классификацию ключей с точки зрения информативности входящих в них атрибутов.
В лекции "I. Чрезвычайные ситуации природного характера" также много полезной информации.
11. В чем причины использования искусственных ключей?
12. Что такое потенциальный ключ?
13. В чем различие вторичных и первичных ключей?
Задания для самостоятельной работы
Задание 1. Рассмотрите таблицу изображенную на рисунке 1.1 и определите атрибуты, кортежи, типы данных (домены) и ключи отношений.
Задание 2. Определите первичный ключ для таблицы изображенной на рисунке 1.1 и выполните его классификацию.