3. Реляционная модель данных: структурная, целостная, манипуляционная части. Реляционная алгебра. Исчисление кортежей

Реляционная модель состоит из трех частей: структурной, целостностной и манипуляционной.

  1. Структурная часть — описывает, из каких объектов состоит реляционная модель. Основными понятиями структурной части реляционной модели являются
    1. тип данных
    2. домен (Можно считать уточнением типа данных. Домен можно рассматривать как подмножество значений некоторого типа данных, имеющих определенный смысл)
    3. атрибут отношения — это пара вида <имя_атрибута, имя_домена >. Имена атрибутов должны быть уникальны в пределах отношения. Часто имена атрибутов отношения совпадают с именами соответствующих доменов.
    4. схема отношения — это именованное множество упорядоченных пар <имя_атрибута, имя_домена>
    5. схема базы данных — это множество именованных схем отношений. Понятие схемы отношения близко к понятию структурного типа в языках программирования (например, record в языке Pascal или struct в языке C).
    6. кортеж — это множество упорядоченных пар <имя_атрибута, значение_атрибута>, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения.
    7. отношение — определенное на множестве из n доменов (не обязательно различных), содержит две части: заголовок (схему отношения) и тело (множество из m кортежей). Значения n и m называются соответственно степенью и кардинальностью отношения.
    8. потенциальный, первичный и альтернативные ключи
      1. Непустое подмножество множества атрибутов схемы отношения будет потенциальным ключом тогда и только тогда, когда оно будет обладать свойствами уникальности (в отношении нет двух различных кортежей с одинаковыми значениями потенциального ключа) и неизбыточности (никакое из собственных подмножеств множества потенциального ключа не обладает свойством уникальности).
      2. В реляционной модели по традиции один из потенциальных ключей должен быть выбран в качестве первичного ключа, а все остальные потенциальные ключи будут называться альтернативными.
    9. реляционная база данных — это набор отношений, имена которых совпадают с именами схем отношений в схеме базы данных.
  2. Целостная часть — фиксируются два базовых требования целостности, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и ссылочная целостность (или целостность внешних ключей).
    1. Требования для целостности сущностей:
      1. при добавлении записей в таблицу проверяется уникальность их первичных ключей
      2. не позволяется изменение значений атрибутов, входящих в первичный ключ.
    2. Требования для ссылочной целостности:
      1. для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись кортеж с таким же значением первичного ключа.
  3. Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными — реляционную алгебру и реляционное исчисление. Реляционная алгебра в явном виде предоставляет набор операций, а реляционное исчисление представляет систему обозначений для определения требуемого отношения в терминах данных отношений.

Реляционная алгебра

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

  1. Традиционные операции над множествами: объединение (UNION), пересечение (INTERSECT), разность (MINUS) и декартово произведение (TIMES). Все операции модифицированы, с учетом того, что их операндами являются отношения, а не произвольные множества.
  2. Специальные реляционные операции: ограничение (WHERE) , проекция (PROJECT), соединение (JOIN) и деление (DIVIDE BY).

Результат выполнения любой операции реляционной алгебры над отношениями также является отношением. Эта особенность называется свойством реляционной замкнутости.

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

Упрощенный синтаксис выражений

реляционное_выражение ::=унарное_выражение | бинарное_выражение

унарное_выражение ::=переименование | ограничение | проекция

переименование ::=терм RENAME имя_атрибута AS имя_атрибута

терм ::=имя_отношения | ( реляционное_выражение )

ограничение ::=терм WHERE логическое_выражение

проекция ::=терм | терм [ список_имен_атрибутов ]

бинарное_выражение ::=проекция бинарная_операция реляционное_выражение

бинарная_операция :: =UNION | INТERSECT | MINUS | TIМES | JOIN | DIVIDEBY