Основные понятия реляционной теории баз данных
Домен
Отношение
Тип данных
Атрибут
Кортеж
Ключ
Основными объектами реляционной модели данных являются отношения и домены. Базовой структурой данных в модели является отношение, основанное на декартовом произведении доменов.
Домен – это множество значений, которое может принимать элемент данных (например, множество целых чисел, множество дат, множество комбинаций символов длиной N и т.п.). Домен может задаваться перечислением элементов, указанием диапазона значений, функцией и т.д.
Отношение – подмножество декартова произведения доменов. В реляционной модели данных отношение (таблица) – это некоторая регулярная структура, состоящая из конечного набора однотипных записей.
Тип данных характеризует вид хранящихся данных. Традиционное (нестрогое) определение типа данных состоит из трех основных компонентов:
определение множества значений данного типа;
определение набора операций, применимых к значениям типа;
определение способа внешнего представления значений типа (литералов).
Каждая запись одного отношения состоит из конечного числа полей, причем конкретное поле каждой записи одной таблицы может содержать данные только одного типа.
В отношении выделяют следующие элементы: кортежи и атрибуты.
Элементы отношения называются кортежами (записями). Каждый кортеж отношения соответствует одному экземпляру сущности определённого типа и представляет отдельную строку таблицы (отношения).
Элементы кортежа принято называть атрибутами. Атрибут – это информационное отображение свойств объекта. Каждый объект характеризуется рядом основных атрибутов. Каждый атрибут в модели должен иметь уникальное имя – идентификатор. Атрибут при реализации информационной модели на каком-либо носителе информации часто называют элементом данных или полем данных.
Объектом называется элемент информационной системы, информация о котором сохраняется. В реляционной теории баз данных объект называется сущностью.
Свойства отношений:
Отсутствие кортежей-дубликатов. Действительно, тело отношения есть математическое множество кортежей и, как всякое множество, не может содержать неразличимые элементы. Таблицы в отличие от отношений могут содержать одинаковые строки. (К большому сожалению, стандарт SQL позволяет, чтобы таблицы содержали одинаковые строки). Важным следствием этого свойства является наличие у каждого значения отношения первичного ключа. Первичный ключ – это уникальный идентификатор для таблицы, то есть столбец или такая комбинация столбцов, что в любой момент времени не существует двух строк, содержащих одинаковое значение в этом столбце или комбинации столбцов.
Кортежи не упорядочены (сверху вниз). Это свойство также следует из того, что тело отношения – это математическое множество, а простые множества в математике не упорядочены. Строки в таблицах, как правило, упорядочены (идут в определенном порядке). Одно и то же отношение может быть изображено разными таблицами, в которых строки идут в различном порядке.
Атрибуты не упорядочены (слева направо). Т.к. каждый атрибут имеет уникальное имя в пределах отношения, то порядок атрибутов не имеет значения. Столбцы в таблице обычно упорядочены. Одно и то же отношение может быть изображено разными таблицами, в которых столбцы идут в различном порядке.
Все значения атрибутов неразделимы (атомарны). Это следует из того, что лежащие в их основе атрибуты имеют атомарные значения. Главное в атомарности значений атрибутов состоит в том, что реляционная СУБД не должна обеспечивать пользователям явной видимости внутренней структуры значения. Со всеми значениями можно обращаться только с помощью операций, определенных в соответствующем типе данных. Из этого свойства следует понятие нормализации отношений. Отношение, удовлетворяющее этому условию, называется нормализованным отношением. Принято говорить, что в реляционных базах данных допускаются только нормализованные отношения, или отношения, представленные в первой нормальной форме. Математическое отношение не всегда нормализовано.
Ключевым элементом данных (ключом) называется такой элемент, по которому можно определить значения других элементов данных.
Первичные ключ – это атрибут (или группа атрибутов), которые единственным образом идентифицируют каждую запись отношения. Понятие первичного ключа является исключительно важным в связи с понятием целостности баз данных.
Альтернативный ключ – это атрибут (или группа атрибутов), несовпадающий с первичным ключом и уникально идентифицирующий экземпляр объекта.
Внешний ключ – это атрибут (столбец), значения которого однозначно характеризуют сущности, представленные строками некоторого другого отношения, т.е. задают значения их первичного ключа. Говорят, что отношение, в котором определен внешний ключ, ссылается на соответствующее отношение, в котором такой же атрибут является первичным ключом.
Связь – это функциональная зависимость между сущностями.
Родительская сущность является главной (справочной), дочерняя сущность является зависимой, производной от главной (сводной).
Типы связей: идентифицирующая, неидентифицирующая, полная/неполная категория, неспецифическая связь (многие-ко-многим).
Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется (однозначно определяется) через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой.
Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав не ключевых атрибутов дочерней сущности.
В зависимости от того, все или не все возможные сущности дочерней категории (сущности-подтипы) включены в модель, категорийная связь является полной или неполной. Примеры таких связей представлены на следующих рисунках.
Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n.
Есть несколько видов связи:
Один-к-одному (1:1) – означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице.
Один-ко-многим (1:М) – одной записи в одной таблице (родительской) соответствует несколько записей в другой (дочерней).
Много-ко-многим (М:М) – нескольким записям в одной таблице соответствуют несколько записей в другой (например, список товаров и покупателей – несколько товаров могут быть куплены несколькими покупателями).
Типа ограничений целостности:
целостность сущностей и
целостность ссылок или ссылочная целостность.
