Классика баз данных - статьи



РМ-предписания - часть 6


Каждая dbvar является предметом набора ограничений целостности (см. РМ-предписания 23 и 24). Значение данной dbvar в любой заданный момент времени представляет собой множество упорядоченных пар <R,r> (где R – имя relvar, а r

– текущее значение этой переменной) таких, что: a) в этой dbvar существует одна такая упорядоченная пара для каждой relvar; b) эти значения relvar одновременно удовлетворяют соответствующим ограничениям. Такое значение dbvar называется базой данных (иногда состоянием базы данных, но мы не используем этот более поздний термин).

Комментарии:

  • Стоит обратить внимание на то, что мы явно не считаем, что домены относятся к какой-либо конкретной dbvar.
  • Каждая транзакция взаимодействует в точности с одной dbvar. Однако разные транзакции могут взаимодействовать с разными dbvar, и разные dbvar не обязательно являются непересекающимися. Кроме того, транзакция может динамически изменять ассоциированную с нею dbvar, добавляя и/или удаляя relvar (см. РМ-предписание 17).

    Комментарии:

    • Одно из назначений понятия dbvar заключается в том, чтобы определить область действия реляционных операций. Другими словами, если dbvar X ассоциирована с транзакцией T, то в T не должны использоваться ссылки на какую-либо relvar, которая входит в какую-либо иную dbvar, а не в dbvar X.
    • Множество всех базовых relvar может рассматриваться как "базовая" dbvar. Однако отдельные транзакции взаимодействуют с "производными" или "пользовательскими" dbvar, которые, вообще говоря, состоят из комбинации базовых и производных relvar.
    • В данном манифесте не специфицируется механизм установления и разрыва связей между транзакцией и соответствующей ей единственной dbvar.
  • В языке D должен обеспечиваться операции для создания (create) и разрушения (destroy) доменов, переменных (в том числе relvar) и ограничений целостности. Каждые явно созданные домен, переменная или ограничение целостности должны быть именованными. Каждая базовая relvar должна иметь, по крайней мере, один возможный ключ (candidate key), явно специфицированный в той операции, которая создает эту базовую relvar.




    Содержание  Назад  Вперед