РМД/Список терминов

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Эту страницу также можно назвать, или альтернативные заголовки страницы:

  • Список терминов реляционной модели данных (РМД)
  • Отношение — таблица.
  • Атрибуты — столбцы/колонки/поля таблицы.
  • Кортежи — строки/ряды/записи.
  • Значения атрибутов кортежей — значения в ячейках таблицы.
  • Домен — тип данных, т.е. множество допустимых значений.
  • Агрегат — агрегирующие функции/процедуры. В базовых структурах данных РМД отсутствуют привычные для др. МД агрегаты. В РМД агрегатами явл. агрегирующие функции/процедуры.

Замечания

В строгой РМД отношение не является таблицей, кортеж — не строка, а атрибут — не столбец. Эти термины могут использоваться только в неформальном контексте, при условии полного понимания, что эти более «дружественные» термины являются всего лишь приближением и не дают точного представления о сути обозначаемых понятий.

Интересно, что в SQL используется именно неформальные определения. Напр., CREATE TABLE, ALTER TABLE, LOCK TABLE и т.д.

В соответствии с определением К. Дж. Дейта, таблица является прямым и верным представлением некоторого отношения, если она удовлетворяет следующим пяти условиям:

  1. Нет упорядочивания строк сверху-вниз (другими словами, порядок строк не несёт в себе никакой информации).
  2. Нет упорядочивания столбцов слева-направо (другими словами, порядок столбцов не несёт в себе никакой информации).
  3. Нет повторяющихся строк.
  4. Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
  5. Все столбцы являются обычными. «Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов, кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временны́х меток.