Раздел 10 · Databases

Отношения, кортежи, атрибуты и домены

junior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Ты уже знаешь, что реляционная модель хранит данные в таблицах. Но «таблица» слово бытовое: таблицей называют и расписание уроков, и прайс-лист в Excel, и сводку в отчёте. Кодд ввёл для своих таблиц строгое понятие с особыми правилами. Этот урок про четыре слова, на которых стоит вся реляционная теория: отношение, кортеж, атрибут и домен. Без них дальше будет трудно.

Анкеты в коробке

Представь отдел кадров, где на каждого сотрудника заполняют бумажную анкету. Бланк у всех одинаковый: «Фамилия», «Отдел», «Дата рождения». Заполненные анкеты лежат в коробке.

У этой коробки есть несколько свойств, которые кажутся очевидными:

  • Порядок анкет не важен. Высыпь их на стол и сложи обратно в другом порядке, в коробке остались те же сотрудники.
  • Двух одинаковых анкет быть не должно. Если анкета Пети лежит дважды, это не два Пети, а ошибка.
  • У каждого поля есть название. Ты не говоришь «второе поле сверху», ты говоришь «Отдел». Поэтому порядок полей на бланке тоже не важен.
  • В поле пишут одно значение нужного вида. В «Дату рождения» не пишут «Москва», а в «Отдел» не перечисляют три отдела через запятую.

Отношение в реляционной модели это ровно такая коробка анкет. Осталось дать её частям точные имена.

Четыре слова

              атрибуты (заголовок)
        ┌───────────┬────────────┬──────────────┐
        │ name      │ department │ birth_date   │
        ├───────────┼────────────┼──────────────┤
кортеж →│ Петя      │ Склад      │ 1998-03-14   │
кортеж →│ Аня       │ Бухгалтерия│ 2001-11-02   │
кортеж →│ Олег      │ Склад      │ 1995-07-30   │
        └───────────┴────────────┴──────────────┘
                     отношение employees

Атрибут это поле анкеты: у него есть имя (department) и вид допустимых значений. В обиходе его называют колонкой.

Кортеж это одна заполненная анкета: набор значений, по одному на каждый атрибут. В обиходе это строка.

Отношение это вся коробка: множество кортежей с одинаковым набором атрибутов. В обиходе это таблица. Слово «реляционная» в названии модели происходит отсюда, от английского relation.

Домен это то, какие значения вообще можно написать в поле. Для birth_date домен это даты, для оценки фильма это целые числа от 1 до 5.

Ещё два слова пригодятся при чтении книг. Число атрибутов называют степенью отношения, а число кортежей его мощностью. У employees выше степень 3 и мощность 3. Степень меняется, только когда меняют структуру, а мощность при каждой вставке и удалении.

ТеорияSQL и обиходАнкеты
отношениетаблицакоробка анкет
кортежстрокаодна анкета
атрибутколонкаполе бланка
доментип и ограничения колонкичто можно писать в поле

дальше после входа

Урок целиком открыт всем, кто вошёл. Войди по своему email, чтобы читать дальше.

Вход пока по приглашению. Если хочешь учиться, напиши Vassiliy.