Ты уже знаешь, что реляционная модель хранит данные в таблицах. Но «таблица» слово бытовое: таблицей называют и расписание уроков, и прайс-лист в 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.