Оптимальная структура базы данных корпоративного сайта
К базе данных корпоративного сайта предъявляются противоречивые требования по надежности, целостности и непротиворечивости данных с одной стороны, и по максимальной скорости выдачи данных (минимальной нагрузки сервера) с другой.
Максимальную надежность и непротиворечивость данных дает реляционная база данных, в которой таблицы базы жестко связаны между собой по ключевым полям и практически не имеют избыточности.
Рис.1. Реляционная база данных
Но извлечение данных из такой базы связано с применением вложенных запросов сразу к нескольким таблицам, причем нагрузка на сервер с увеличением числа таблиц растет в геометрической прогрессии.
Для уменьшения нагрузки на сервер при создании сайтов часто используют нереляционные базы, в которых все таблицы объединены в одну (или несколько). При этом обращение осуществляется только к одной таблице базы данных сайта и, естественно, обеспечивается малая нагрузка на сервер.
Рис.2. Два варианта нереляционных баз данных свернутых в одну таблицу
Но говорить о надежности, цостности и непротиворечивости данных при таком построении базы данных корпоративного сайта не приходится.
Так, при удалении строки в таблице высшего уровня, в реляционной базе автоматически удаляются и все дочерние строки всех других таблиц низших уровней (каскадное удаление). В нереляционной базе данных в этом случае остаются "висячие строки" - строки, не имеющие "родителей".
Выход из создавшегося положения дает современная теория хранилищ данных, которая объединяет оба подхода, обеспечивая предельную надежность, соответствующую реляционным базам данных и максимальное быстродействие, соответствующее нереляционным базам.
При этом все исходные данные хранятся в надежной реляционной базе данных, а извлечение данных осуществляется из специально организованных таблиц допускающих денормальзацию данных (витрин данных –Data Mart). Но это уже не оказывает никакого влияния на надежность и непротиворечивость данных, поскольку эти таблицы загружаются из реляционной базы данных. Такая загрузка осуществляется только при вводе новых данных на сайт и не дает большой нагрузки на сервер.
А поскольку каждая из витрин данных оптимизирована под свою конкретную страницу сайта, обеспечивается и предельно возможное быстродействие, и самая минимальная нагрузка на сервер.
Рис.2. Упрощенная схема хранилища данных корпоративного сайта
Практически хранилище данных корпоративного сайта будет иметь реляционную базу данных состоящую из десятков, а то и сотен связанных таблиц, а также иметь целый ряд витрин, оптимизированных под различные типы страниц корпоративного сайта. В крупных корпоративных сайтах каждая витрина данных может представлять собой не одну таблицу, а несколько таблиц организованных в виде «звезды» или «снежинки».
Кроме того, такая концепция создания базы данных позволяет разделить базу данных сайта на две: административную (доступную только администраторам) и пользовательскую (доступную и пользователям). И, тем самым, повысить защищенность сайта от взлома.
Использование технологии хранилищ данных в корпоративных сайтах нам неизвестно, и наша компания является пионером в данной области.
10.05.2007
__________________
Версия для печати