Ключ, первичный ключ, внешний ключ
Каждый экземпляр сущности должен быть уникален и отличаться от других атрибутов.
Первичный ключ (primary key) - это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности. Атрибуты первичного ключа на диаграмме находятся в списке атрибутов сущности выше горизонтальной лилии.
Потенциальный ключ. В одной сущности могут оказаться несколько атрибутов или наборов атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами (candidate key).
Ключи могут быть сложными, т. е. содержащими несколько атрибутов.
Для того чтобы стать первичным, потенциальный ключ должен удовлетворять ряду требований:
а) уникальность: два экземпляра не должны иметь одинаковых значений возможного ключа;
б) компактность: сложный возможный ключ не должен содержать ни одного атрибута, удаление которого не приводило бы к утрате уникальности;
в) содержательность: атрибуты первичного ключа не могут содержать нулевых значений;
г) постоянность: значение атрибутов ключа не должно меняться в течение всего времени существования экземпляра сущности.
Альтернативный ключ (Alternate Key) - это потенциальный ключ, не ставший первичным. Каждая сущность должна иметь по крайней мере один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные - альтернативными ключами.
Инверсные входы. При заботе ИС часто бывает необходимо обеспечить доступ к нескольким экземплярам сущности, объединенным каким-либо одним признаком. Для повышения производительности в этом случае используются неуникалънье индексы (вторичные, инверсные).
Внешний ключ включается в дочернюю сущность и служит для отождествления экземпляра зависимой сущности с экземпляром родительской. Поэтому он совпадает с первичным ключом родительской сущности. Атрибуты внешнего ключа обозначаются символом (FK) после своего имени. Сущность может иметь один и тот же внешний ключ из нескольких родительских сущностей. При этом сущность может также получить один и тот же внешний ключ несколько раз от одного и того же родителя через несколько последовательных связей.
ИМЯ РОЛИ
Имя роли - это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности.
Полное имя атрибута состоит из функционального и базового имени, разделенных точкой.
Обязательным является применение имен ролей в том случае, когда два или более атрибута имеют одинаковую область значений, но разный смысл, что обычно случается, когда между сущностями есть две и более связей по одному набору атрибутов.
Другим примером обязательности присвоения имен ролей являются рекурсивные связи, когда одна и та же сущность является и родительской и дочерней одновременно. При задании рекурсивной связи атрибут должен мигрировать в качестве внешнего ключа в состав неключевых атрибутов той же сущности. Атрибут не может появиться дважды в одной сущности под одним именем, поэтому обязательно должен получить имя роли. Рекурсивная связь может быть только неидентифицирующей. В примере сущность сотрудник связана с собой же связью «Руководит/Подчиняется».
Рекурсивная связь называется иерархической рекурсией, если каждая сущность связана с несколькими дочерними сущностями, но имеет только одну родительскую
Другим видом рекурсии является сетевая рекурсия (network recursion), когда каждая сущность может быть связана с несколькими как в роли родительской, так и в роли дочерней.
ДОМЕН
Домен атрибута можно определить как совокупность возможных значений атрибута. Таким образом, в понятие домена входит и тип данных, и область их возможных значений. Для каждого атрибута может быть задан только один домен, но на каждом домене может быть определено множество атрибутов.
На уровне инфологической модели домены можно описать без конкретных физических свойств. На физическом уровне они автоматически получают специфические свойства, которые можно изменить вручную. Так, домен "Возраст" может иметь на логическом уровне тип Number, на физическом уровне колонкам домена будет присвоен тип INTEGER.
Лекция 7-8
РЕЛЯЦИОННЫЙ ПОДХОД
Потребность в создании простой, универсальной, эффективно реализуемой модели данных привели к созданию реляционной модели. В 1970 году американский математик Кодд 1970 предложил схему представления данных на основе реляционных таблиц (отношений, реляций) и набор формальных операций, обеспечивающий решение большинства стандартных задач обработки данных за счет преобразования таблиц. Предложенные решения были настолько эффективны для систем баз данных, что он был удостоен престижной премии Тьюринга в области теоретических основ вычислительной техники.
ОСНОВНЫЕ ПОНЯТИЯ
Реляционная модель данных некоторой предметной области представляет собой набор отношений, изменяющихся во времени.
Отношение представляет собой двумерную таблицу с данными, соответствующую некоторой сущности в предметной области.
Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждому атрибуту соответствует заголовок некоторого столбца таблицы.
Каждому экземпляру сущности соответствует строка таблицы – кортеж.
Домен представляет собой множество всех возможных значений определенного атрибута отношения.
Схема отношения (заголовок отношения) представляет собой список имен атрибутов. Множество кортежей отношения часто называют содержимым (телом) отношения.
Первичным ключом (ключом отношения, ключевым атрибутом) называется атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Ключ может быть составным (сложным), т. е. состоять из нескольких атрибутов.
Если отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения, то все эти комбинации атрибутов являются возможными (потенциальными) ключами отношения. Любой из возможных ключей может быть выбран как первичный.
Если выбранный первичный ключ состоит из минимально необходимого набора атрибутов, говорят, что он является компактным или не избыточным.
Ключи используют для достижения следующих целей:
- 1) исключения дублирования значений в ключевых атрибутах;
- 2) упорядочения кортежей. Возможно упорядочение по возрастанию или по убыванию значений всех ключевых атрибутов, а также смешанное упорядочивание - по одним — возрастание, по другим — убывание;
- 3) ускорения работы к кортежами отношения;
- 4) организации связывания таблиц.
Пусть в отношении R1 имеется не ключевой атрибут А, значения которого являются значениями ключевого атрибута В другого отношения R2. Тогда говорят, что атрибут А отношения R1 есть внешний ключ.
Реляционная модель накладывает на внешние ключи ограничение для обеспечения целостности данных, называемое ссылочной целостностью. Это означает, что каждому значению внешнего ключа должны соответствовать строки в связываемых отношениях.
Поскольку не всякой таблице можно поставить в соответствие отношение, приведем условия, выполнение которых позволяет таблицу считать отношением.
- 1. Все строки таблицы должны быть уникальны, т. е. не может быть строк с одинаковыми первичными ключами.
- 2. Имена столбцов таблицы должны быть различны, а значения их простыми, т. е. недопустима группа значений в одном столбце одной строки.
- З. Все строки одной таблицы должны иметь одну структуру, соответствующую именам и типам столбцов.
- 4. Порядок размещения строк в таблице может быть произвольным.
ФОРМАЛЬНОЕ ОПРЕДЕЛЕНИЕ
Пусть даны n множеств Dl, D2, ... Dn, тогда отношение R есть множество упорядоченных кортежей dl, d2, ... dn, где dk Dk, dk — атрибут, a Dk — домен отношения R.
Порядок кортежей в отношении, как и в любом множестве, не определен. Два отношения, отличающиеся только порядком атрибутов рассматриваются как одинаковые.
Любое отношение является динамической моделью некоторого реального объекта внешнего мира. Поэтому вводится понятие экземпляра отношения, которое отражает состояние данного объекта в текущий момент времени, и понятие схемы отношения, которая определяет структуру отношения.
Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, к которому они относятся
Схемы двух отношений называются эквивалентными, если они имеют одинаковую степень и возможно такое упорядочение имен атрибутов в схемах, что на одинаковых местах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие значения из одного домена.
Над таблицами определены операции в рамках формальных языков запросов – реляционной алгебры и реляционного исчисления, результатом которых являются новые таблицы. Решение информационных задач в реляционной модели заключается в построении такой последовательности запросов, что в результате ее выполнения будет получена одна или несколько таблиц с искомыми данными в нужном сочетании.