SQLite - 3 - декомпозиция таблицы

Опубликовано: 30 Июль 2026
на канале: Антон Рябенко / PYWEB
267
2

НОРМАЛИЗАЦИЯ ДАННЫХ, ДЕКОМПОЗИЦИЯ ТАБЛИЦЫ - done.

Рассмотрим данные работы ветеринарной клиники за два месяца

что не так с данными?

1) явная избыточность (многократное дублирование сведений)
2) невозможность создать, например, отдельно сведения о процедуре
(название, цена) без заполнения всей строки - питомец, доктор, дата

что делать?
производить декомпозицию, т.е. разделение на связанные таблицы
меньшего размера без потерь общих данных

содержание таблиц:
сведения о питомцах
сведения о процедурах
сведения о докторах
журнал процедур
(в котором сойдутся все эти сведения с привязкой к датам)

обратим внимание, что в каждую таблицу добавлен первичный ключ id

логическая связь между таблицами осуществляется связкой
"первичный ключ - внешний ключ"

так, например, чтобы связать запись журнала процедур с конкретным
питомцем, в журнале есть поле cat_id,
значения которого совпадают со значениями первичного ключа id
из таблицы питомцев cats

Схематически эту связь можно представить в виде стрелки от
первичного ключа к внешнему