Структурные ограничения
Кратность – количество (заданное как одно значение или как диапазон значений) возможных экземпляров сущности некоторого типа, которые могут быть связаны с одним экземпляром сущности другого типа с помощью определенной связи.
Кратность сложной связи – количество (заданное как одно значение или как диапазон значений) экземпляров сущности определённого типа в n-ой связи определяемая после фиксации остальных n-1 значений.
Ограничение кратности фактически состоит из двух отдельных ограничений:
Кардинальность – определяет максимальное количество возможных экземпляров связи для каждой сущности участвующей в связи конкретного типа
Степень участия – определяет, участвуют ли в связи все или только некоторое экземпляры сущности
Наиболее распространённая связь 1:* (один ко многим). Также есть 1:1, *:*
Группа 1-* студент
Группа 1:1 староста
Расширенная модель сущность-связь (eer)
ERR - ER модель, оснащенная дополнительными семантическими концепциями
Уточнение/обобщение
Понятие уточнение/обобщение связано со специальными типами сущности, которые принято называть суперклассами и подклассами, а также с процессом наследования атрибута
Типы сущности могут быть объединены в иерархии, состоящие из суперклассов и подклассов
Суперкласс – тип сущности, включающий одну или несколько различимых вспомогательных группировок ее экземпляра
Подкласс – различимая вспомогательная группировка экземпляров типа сущности
Типы сущности, в которые включают различные подклассы, называются суперклассами.
Каждый элемент подкласса является также элементом суперкласса, иными словами сущность, которая относится к подклассу, является той же сущностью, которая относится и к суперклассу, но выполняет в суперклассе и подклассе разные роли. Связь между суперклассом и подклассом является связью один к одному 1:1 и называется связью суперкласс-подкласс.
Уточнение – процесс подчеркивания различий между элементами сущности путем выявления их отличительных особенностей (нисходящий подход)
Обобщение – процесс стирания различий между элементами сущности путем выявления их общих особенностей (восходящий подход)
Синоним связи – является (проверка)
Контрагент – его подклассы (физические лица) + (юридические лица)
Ограничение степени участия – определяет должен ли быть отнесен к какому-то подклассу каждый элемент суперкласса (связь может быть обязательной и необязательной)
Ограничение не пересечения – описывает связь между элементами подклассов, и указывает, может ли элемент суперкласса принадлежать только к одному или нескольким подклассам (пересекающиеся и непересекающиеся)
Композиция - Особая форма агрегирования, представляющая зависимость между сущностями, которая характеризуется полной принадлежностью и совпадением срока существований между целым и частью
Реляционная модель
Сама реляционная модель была предложена в 70 году. (Кодд)
Особенность реляционной модели – потребность в запросах –> предпосылка сознания
Большинство БД – реляционные
Реляционные модели имеют математическую основу
Отношение – плоская таблица, состоящая из столбцов и строк
Атрибут – именованный столбец отношений
Домен – набор допустимых значений одного или нескольких атрибутов
Картеж – строка отношений
Свойства отношений:
Степень отношений – количество атрибутов, которое оно содержит
Кардинальность – количество картежей, которые содержатся в отношении
Реляционная БД – набор нормализованных отношений, которые различаются по именам
Свойства отношений:
Отношение имеет имя, которое отличается от имен всех других отношений в реляционной схеме
Каждая ячейка отношения содержит только одно элементарное неделимое значение
Каждый атрибут имеет уникальное имя
Значения атрибутов берутся из одного и того же домена
Каждый картеж является уникальным, то есть дубликатов картежей быть не может
Порядок следования атрибутов не имеет значения
Теоретически порядок следования картежей в отношении не имеет значения
Реляционные ключи
Супер ключ – атрибут или множество атрибутов, который единственным образом идентифицирует картеж данного отношения
Потенциальный ключ – супер ключ, который не содержит подмножества, так же являющиеся супер ключом данного отношения
Основные свойства потенциального ключа:
Уникальность – в каждом картеже отношения значение ключа единственным образом идентифицирует данный картеж
Неприводимость – никакое допустимое подмножество потенциального ключа не обладает свойством уникальности
Первичный ключ – потенциальный ключ, который выбран для уникальной идентификации картежей внутри отношений
Внешний ключ – атрибут или множество атрибутов внутри отношения, которые соответствуют потенциальному ключу некоторого отношения, возможного того же самого
Реляционная целостность
Пустое значение – указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этого картежа
Сущностная целостность - в базовом отношении ни один атрибут первичного ключа не может содержать пустых значений (NULL)
Потенциальные ключи можно оставлять пустыми
Ссылочная целостность – если в отношении существует внешний ключ, то значение внешнего ключа должно либо соответствовать значению потенциального ключа некоторого картежа в его базовом отношении, либо внешний ключ должен полностью состоять из значений NULL
Корпоративные ограничения целостности (бизнес правила) – дополнительные правила поддержки целостности данных
Основная цель проектирования реляционной БД заключается в группирование атрибутов в отношения, таким образом, чтобы минимизировать избыточность данных и тем самым сократить объем памяти, необходимый для физического хранения отношений представленных в виде таблиц.
При работе с отношениями, содержащих избыточные данные, могут возникать проблемы, которые называются аномалиями обновлений, и подразделяются на аномалии вставки, удаления и модификации.
С декомпозицией крупного отношений на более мелкие связаны 2 важных свойства:
Свойство соединения без потерь гарантирует, что любой экземпляр первоначального отношения может быть определен с помощью соответствующих экземпляров более мелких отношений.
Свойство сохранения зависимости гарантирует, что ограничение на первоначальное отношение можно поддерживать, просто применяя такие же ограничения каждому из более мелких отношений, иными словами, для проверки того, не нарушается ли ограничение, которое распространялось на первоначальное ограничение, нет необходимости выполнять операции соединения на более мелких отношениях.
Функциональная зависимость – описывает связь между атрибутами отношений. Например если в отношении R, которое содержит атрибуты А и Б, атрибут Б функционально зависит от атрибута А, то каждое значение атрибута А связано только с одним значением атрибута Б. Причем атрибуты А и Б могут состоять из одного или нескольких атрибутов.
Детерминант функциональной зависимости – атрибут или группа атрибутов, расположенные на диаграмме функциональной зависимости слева от стрелки.
При выявлении функциональных зависимостей между атрибутами отношения, необходимо проводить четкое различие между значениями, хранящимися в атрибуте в определенный момент времени и множеством всех возможных значений, которые могут храниться в атрибуте в тот или иной момент времени. Иными словами функциональная зависимость является свойством реляционной схемы, то есть абстрактной структурой, а не свойством конкретного экземпляра схемы, то есть ее реализацией. В процессе нормализации должны учитываться следующие основные характеристики функциональных зависимостей:
Определяют связь 1:1 между атрибутами, приведенными в левых и правых частей выражения зависимости.
Остаются справедливыми при любых условиях.
Являются не тривиальными
Нормализация – формальный метод анализа отношений на основе их первичного ключа (или потенциальных ключей) и существующих функциональных зависимостей.
Говорят, что атрибут Б функционально полно зависит от атрибута А, тогда и только тогда, когда в любой момент времени одному значению атрибута А соответствует только одно значение атрибута Б.
Ненормализованная форма – отношение, содержащее одну или несколько повторяющихся групп данных
Первая нормальная форма (1НФ) – отношения, в которых на пересечении каждой строки и каждого столбца содержится одно и только одно значение
Полная функциональная зависимость – если А и Б атрибуты отношения, то атрибут Б находится в полной функциональной зависимости от атрибута А, если атрибут Б является функционально зависимым от А, но не зависит ни от одного собственного подмножества атрибута А.
2НФ – отношения, которые находятся в 1НФ, и каждый атрибут которого, не входящий в состав первичного ключа, характеризуется полной функциональной зависимостью от этого первичного ключа.
Транзитивная зависимость – если для атрибутов А, Б и С некоторого отношения существуют зависимости вида А->Б и Б->С это означает что атрибут С транзитивно зависит от атрибута А через атрибута Б при условии, что атрибут А функционально не зависит ни от атрибута Б, ни от атрибута С.
3НФ – отношения, которые находятся в первой и во второй нормальных формах и не имеют атрибутов, не входящих в первичный ключ атрибутов, которые находились бы в транзитивной функциональной зависимости от этого первичного ключа – отсутствие транзитивных зависимостей от первичного ключа.
Нормальная форма Бойса Кода – отношения находятся в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом.
