Продолжается подписка на наши издания! Вы не забыли подписаться?

Теория и практика Java: запросы к БД без БД

Автор: Brian Goetz
Quiotix
Опубликовано: 27.02.2006

Недавно я выступал консультантом в проекте, задачей которого было сканирование Web-страниц и сбор информации по ним. Обходя различные Web-сайты, программа должна была создавать базу данных посещенных сайтов, страниц, ссылок, содержащихся на каждой странице, результатов анализа страниц и т.д. Конечным результатом должен был быть набор отчетов о посещенных сайтах и страницах, переходах по ссылкам, битым ссылкам, ошибкам на страницах, параметрам страниц и т.д. Сначала никто не знал точно, какие отчеты и в каком формате потребуются – но что отчеты нужны, было известно наверняка. Это предполагало итеративную разработку отчетов, с несколькими этапами получения результатов, настройки, а возможно, даже нескольких циклов такой разработки. Единственным требованием к отчетам был XML или, возможно, HTML-формат. В результате процесс разработки и изменения отчетов должен был быть легковесным.

База данных не нужна

"Очевидный" подход к решению проблемы – положить все в SQL БД – страницы, ссылки, метрики, HTTP-код результатов и прочие метаданные. Проблема хорошо соответствовала реляционному подходу, особенно учитывая, что хранить содержимое посещенных страниц не было нужно – только их структуру и метаданные.

До сих пор проект выглядел как типичное приложение, работающее с БД, и недостатка в предлагаемых стратегиях хранения не было. Но лучше было обойтись без БД и сложностей ее использования – приложение-краулер (crawler- "червь", жаргонное название поискового приложения – прим.пер.) должно было посетить всего несколько десятков тысяч страниц. Это достаточно мало, чтобы уместить всю БД в памяти, а сохранять данные, если это понадобится, с помощью сериализации (да, операции загрузки и сохранения будут долгими, но это нечастые операции). Лень дает еще один выигрыш – отсутствие необходимости хранения данных значительно сокращает время разработки приложения, что позволяет существенно сэкономить. Создание и манипуляции структурами данных в памяти намного проще, чем обращения к БД при каждой выборке, сохранении или анализе данных. Любая из моделей персистентности накладывает ограничения на структуру кода, работающего с данными...

........................
"С полным содержанием данной статьи можно ознакомиться в печатной версии журнала"

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

Copyright © 1994-2016 ООО "К-Пресс"