Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOS.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.66 Mб
Скачать

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

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

  • Структурный аспект (составляющая) — данные в базе данных представляют собой набор отношений.

  • Аспект (составляющая) целостности — отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных.

  • Аспект (составляющая) обработки (манипулирования) — РМД поддерживает операторы манипулирования отношениями (реляционная алгебрареляционное исчисление).

Кроме того, в состав реляционной модели данных обычно включают теорию нормализации.

Реляционная модель данных является приложением к задачам обработки данных таких разделов математики как теория множеств и формальная логика.

Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими».

Для лучшего понимания РМД следует отметить три важных обстоятельства:

  • модель является логической, то есть отношения являются логическими (абстрактными), а не физическими (хранимыми) структурами;

  • для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим;

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

Рассмотрим семантику идентифицирующих и не идентифицирующих отношений связи: Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется только через ее связь с родительской сущностью. (При этом атрибуты первичного ключа родительской сущности мигрируют в первичный ключ дочерней сущности.)

Связь называется не идентифицирующей, если экземпляр дочерней сущности идентифицируется не через связь с родительской сущностью (при этом атрибуты первичного ключа родительской сущности мигрируют в область не ключевых атрибутов дочерней сущности).

Специфическое отношение связи (идентифицирующие связи, не идентифицирующие связи) изображается линией, проводимой между сущностью-родителем и сущностью-потомком с точкой на конце линии у сущности-потомка. Идентифицирующее отношение между сущностью-родителем и сущностью- потомком изображается сплошной линией, при этом сущность-потомок всегда является зависимой. Не идентифицирующее отношение между сущностью-родителем и сущностью-потомком изображается пунктирной линией, при этом сущность потомок является независимой.

- экземпляр сущности-потомка всегда должен быть связан с одним экземпляром сущности- родителя;

  • экземпляр сущности-родителя может быть связан с любым числом экземпляров сущности-потомка, где это число зависит от указанной мощности ;

  • в идентифицирующем отношении сущность-потомок всегда является зависимой сущностью;

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

Отношение категоризации - отношение между двумя и более сущностями, в котором каждый экземпляр общей сущности (сущность-супертип) связан в точности с одним экземпляром одной и только одной из сущностей-категорий (сущности-подтипы).

Значение некоторого атрибута - дискриминатора отношения - в экземпляре общей сущности определяет с какой из возможных сущностей-категорий он связан. Сущности-категории, связанные с общей сущностью, всегда взаимоисключающие. Пример: Общая сущность

СОТРУДНИК (#Таб.номер, Год поступления на работу, Код подразделения, ФИО, Должность, Статус работника),

Сущности-категории - ШТАТНЫЙ (#Таб.номер, Оклад);

СОВМЕСТИТЕЛЬ (#Таб.номер, Основное место работы, Почасовая оплата, Количество часов). Рассмотрим синтаксис отношений категоризации:

Отношение категоризации изображается линией, ведущей от общей сущности к подчеркнутому кругу. Отдельные линии ведут из подчеркнутого круга к каждой из сущностей-категорий, для которых мощность не указывается (= 0 или1). Сущности-категории всегда зависимы, общая сущность независима, если ее идентификатор не наследуется через другое отношение.

Неспецифические отношения, то есть отношения «многиекомнЬнш»;—это связь между двумя сущностями, при которой каждый экземпляр первой сущности связан с произвольным количеством экземпляров второй сущности и наоборот.

Сущности, введенные для разрешения неспецифического отношения, называются сущностями пересечения или ассоциативными.

Рассмотрим синтаксис неспецифических отношений:

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

Неспецифическому отношению дается двойное имя. Имена отношений выражаются грамматическими оборотами глаголов (глагол, дополненный, возможно, наречиями и предлогами, размещаемыми рядом с линией отношения и разделенными косой чертой.

  • Экземпляр одной из сущностей может быть связан с любым (в т.ч. нулевым) количеством экземпляров другой сущности в зависимости от указанной мощности.

  • Для полной разработки модели неспецифические отношения должны быть заменены специфическими.

Возможный (потенциальный) ключ сущности - это один или несколько атрибутов, чьи значения однозначно определяют каждый экземпляр сущности.

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

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

Каждому альтернативному ключу присваивается уникальный целый номер. Этот ключ указывается справа от атрибута ключа, например (АК1); (АК2). Атрибут первичного ключа может служить также частью альтернативного ключа.

Сформулируем правила первичных и альтернативных ключей:

  • Каждая сущность должна обладать первичным ключом.

  • Каждая сущность может обладать любым числом альтернативных ключей.

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

  • Отдельный атрибут может быть частью более чем одного ключа, первичного или альтернативного.

  • Атрибуты, входящие в первичные или альтернативные ключи сущности, могут быть собственными для сущности или наследоваться через отношения.

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

  • Если первичный ключ состоит более чем из одного атрибута, то значение любого не ключевого атрибута должно функционально зависеть от всего первичного ключа (правило полной функциональной зависимости).

Сформулируем правила внешних ключей:

    • Каждая сущность должна содержать отдельный внешний ключ для каждого специфического отношения связи или категоризации, в котором эта сущность является сущностью потомком или сущностью категорией.

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

    • Каждый наследуемый атрибут сущности-потомка или сущности-категории должен представлять атрибут из первичного ключа связанной родительской или общей сущности. Наоборот, каждый атрибут первичного ключа родительской сущности должен быть наследуемым атрибутом в связанной сущности-потомке или сущности-категории.

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

Завершающим этапом моделирования является документирование модели.

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

Примечание: правила 7 и 8 подробно рассматривались в п. 3.2.6. «Нормализация отношений».

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

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

Если все атрибуты первичных ключей сущности-родителя наследуются в качестве части первичного ключа сущности-потомка, то отношение, через которое эти атрибуты были унаследованы, называется идентифицирующим отношением.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]