Программы
ВХОД
Логин:    

Пароль:  

   Запомнить меня
Вам нужно авторизоваться.
Забыли пароль? / Регистрация
Статьи


   Статьи
   Интернет
   Web и сайты
   CMS с базой данных и без

CMS с базой данных и без

Добавлено: 15.01.2013

Прочитано: 1801

Файлы или СУБД – старые споры

В свое время Н. Вирт, создатель Паскаля, Модулы и прочих интересных вещей, отметился книгой «Программы = Алгоритмы + Структуры данных» – в то время программирование предполагало основательную теорию. Можно использовать любые языки, но идеи этой книги будут полезны всем.

Не касаясь алгоритмов – каждый реализует их самостоятельно – надо отметить именно важность поддержки данных в программах. К примеру, в книге «Жемчужины программирования» приводились примеры, когда правильно составленный файл данных помогал увеличить скорость программы в сотни раз. От проблемы оптимизации данных и сегодня трудно уклониться. В старые времена программы могли использовать для работы либо файлы, либо СУБД. СУБД по большей части были «самописными», в лучшем случае могли использовать CALL-интерфейс, иначе легче было просто писать программы в оболочке баз данных. Файлы по типам делились на текстовые и файлы прямого доступа. Хранить данные в текстовых файлах было невыгодно, так как в них удобно было только добавлять информацию, а для поиска приходилось последовательно считывать весь файл заново – он не имел четкой структуры. Зато файлы прямого доступа почти в точности соответствовали аналогичным файлам СУБД. И частенько работа с ними была быстрее, так как не нужно было подгружать большие объемы поддерживающих библиотек и модулей.

CMS с базой данных

Программирование в web-среде не сняло полностью вопросы выбора источника данных. Многие думают, что PHP полностью завязан на MySQL и другие СУБД лишь по факту своего существования, но это далеко не так: есть примеры удачных скриптов и даже целых CMS, где MySQL совершенно не используется, а данные хранятся в файлах на сервере. Давайте рассмотрим, в каких случаях есть смысл отходить от общепринятой практики и использовать спорные альтернативы управления данными.

Плюсы СУБД для CMS

СУБД выгодна тем, что стандартизирует работу программиста, и он вынужден планировать данные в рамках ограничений базы данных: типах данных, ограничениях полей. Зато СУБД за это предоставляет ему готовый инструментарий доступа к данным, где каждая команда (обычно SQL языка) оптимизирована и проверена в работе миллиарды раз на любом оборудовании. Как правило, изучить форматы запросов к БД можно за пару вечеров, причем не вникая в то, как они работают на физическом уровне. Кроме того, программиста не волнуют такие вещи, как коллизии – ситуации, когда несколько модулей пытаются обратиться к одной и той же записи с разными задачами. Работа с СУБД в PHP и других языках реализована достаточно компактно и естественно, как если бы то были вызовы обычных функций.

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

Есть, конечно, и минусы СУБД для CMS

Их немного, перечислим их кратко:

  1. Высокая нагрузка СУБД на сервер, для плохо выглядит для простеньких проектов на слабых хостингах.
  2. Большее время отклика СУБД даже при работе с БД небольшого размера (по сравнению с файлами).
  3. Неоптимальное использование СУБД при хранении неформатных объектов – картинок, видео и музыки.

Последнее нужно пояснить. Представьте, что вы решили хранить графику в полях СУБД (там есть тип данных BLOB для этих объектов). Даже если эти картинки небольшие (скажем, аватарки пользователей), размер СУБД будет расти очень высокими темпами, что замедлит доступ к другим записям и затруднит архивирование БД. При этом для мультимедиа-данных, к сожалению, не предназначены функции поиска, сравнения или любой внутренней обработки. По логике, в БД должны были быть ссылки на файлы, хранящиеся отдельно на хостинге, но СУБД такие модели данных поддерживает крайне редко. В этом случае разумно использовать обычные файлы для CMS.

На их количество нет ограничений, их легко проверять, независимо копировать и обрабатывать. Текстовые файлы вообще можно просматривать в обычных редакторах, если нет возможности писать специальные утилиты обработки. Для ускорения работы редко изменяемые файлы с данными можно оптимизировать вручную или программно – к примеру, отсортировать. А для проектов, где важна защита данных, файлы можно хранить и обрабатывать с использованием криптоалгоритмов. Важно лишь заранее спланировать их будущий объем и среднюю скорость операций с файлами.

Примеры в студию!

Сначала отметим, что наиболее известные CMS используют СУБД, так как являются универсальными: WordPress, Drupal, UMI.CMS, Joomla, Amiro.CMS, MODX, NetCat, uCoz, TYPO3 – их сотни! Со списком лучше знакомиться, начиная со статей в Википедии.

CMS, которые не используют БД, не так известны, хотя во многих случаях они были бы удобнее в настройках, чем универсальные «братья»: exBB (форум!), Limbo, GuppY, CMSimple, Fixe CMS, Kandidat CMS, Rumba и другие. Чтобы иметь представление об их возможностях, советуем посетить сайт с выразительным названием cmswithoutmysql.ru.



обновить программы бесплатно

<<  CMS для сайта – что это такое Самые популярные движки для сайтов  >>


Добавить Комментарий

Скачать программу для проверки на ошибки
Скачать программу автоматического обновления программ
Статьи
Новые Программы
Новые статьи
Популярные Программы
Самые читаемые статьи
Copyright © Дай Прогу 2011 Контакты ¤ Статистика