войти зарегистрироваться

Персональные блоги [Вебинар] Представление иерархических структур в реляционных БД: Materialized Path

imageСергей Томулевич (phoinixrw), руководитель группы разработки UGС-сервисов компании Рамблер, продолжает делиться опытом проектирования баз данных. Предметом следующего вебинара станет еще один метод хранения и выборки деревьев в реляционных базах данных Materialized Path.

В своем роде, Materialized Path — это компромисс между базой данных, приложением и разработчиком, в котором база данных не догадывается о том, что в ней хранится. Приложение может относительно просто оперировать ветками, а разработчик может визуально понять, что происходит.

Дата проведения вебинара — пятница, 18 февраля с 14:00 до 16:00 часов. Участие абсолютно бесплатно, предварительная регистрация доступна на сайте developers.rambler.ru.

РазработкаИерархические структуры данных и производительность

Введение



В своей предыдущей статье я дал краткий обзор основных моделей хранения иерархических структур в реляционных БД. Как и положено тому быть, у многих читателей стал вопрос ребром о производительности представленных алгоритмов.

В данной статье я постараюсь приоткрыть завесу над этим животрепещущим вопросом, а в следующей обещаю коснуться вопросов оптимизации и поисков нестандартных решений.

РазработкаИерархические структуры данных и Doctrine

Введение



Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.

В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.