# 8. Реляционная и постреляционная модели данных: составы моделей, преимущества и недостатки
# Реляционная модель
Реляционная — relationship (таблица — отношение)
# Компоненты реляционной модели
Поле данных - неделимая, уникально адресуемая единица хранения данных
Отношение - совокупность множества полей данных
Связь - хранение с помощью ключа, хранение связи = пара ключей + вес
Один ко многим : добавляем ID на продукт (другую сущность)
Многие ко многим: отдельная сущность с ID_1, ID_2, другое поле
# Нововведения
Связи хранятся в отдельных отношениях (таблицах)
Фактически от сетевой модели к реляционной мы переходим, реорганизовав хранение связей (но не только)
Возникают предпосылки для избежания дублирования данных
Позволяет гарантировать целостность данных (при грамотной организации)
Позволяет гарантировать избежание дублирования данных (при грамотной организации)
Позволяет гарантировать эффективное время выполнения операций записи (при грамотной организации)
TIP
Сама таблица - тоже связь
Плюсы:
Более эффективное использование памяти, относительно сетевой и иерархической моделей
Более быстрое время выполнения CRUD операций, относительно сетевой и иерархической моделей
Проблемы:
- Поле - неделимый элемент данных, поэтому возникает проблема с определением типа данных и их хранением
# Постреляционная модель
TIP
Фактически это реляционная модель, но без целостности данных - поле данных может само по себе являться агрегатом (снимаем требование неделимости с отдельного поля)
Поле данных - агрегат
Плюсы:
- Представление данных становится наглядным и нет необходимости соединять таблицы.
Проблемы:
При нормализации отношений не гарантируется получение целостных данных, так как мы выносим данные из понятия отношений
Целостность данных ложится на плечи разработчиков
При большом количестве данных все алгоритмы в основном работают за
O(e)
TIP
Появилась идея о том, что скорость вычисления намного важнее, чем память.