Использование баз данных в сайтостроении

На заре развития Web, сайты представляли собой зачастую статические странички гипертекста, которые располагались на сервере наряду с другими ресурсами. Даже при наличии динамики с использованием сценариев, например PHP или Perl скриптов, данные, отображаемые страницами сайта, формировались на основе тех или иных файлов, хранящихся рядом с кодом в папках http-сервера.

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

Выбор базы данных

На сегодняшний момент существуют несколько моделей баз данных:

  • Иерархическая модель.
  • Сетевая модель.
  • Реляционная модель.

Все современные СУБД используют в своей основе одну из этих моделей, либо комбинацию их. В сайтостоении наибольшую поддержку получили системы построенные на реляционной модели.
В свою очередь нет единой реляционной СУБД, каждая предлагаемая система (Oracle Database, Firebird, Interbase, MS SQL Server, PostgreSQL, MySQL,) имеет свои детали реализации и обладает как плюсами, так и минусами. Поэтому при разработке сайта следует изначально выбрать ту СУБД, которая оптимально отвечает требованиям будущего сайта. Впрочем, если первоначально для создания БД была использована одна из систем (например PostgreSQL), то в последствии существует возможность конвертировать базу данных в другой формат (например MySQL).

Определение сущностей и связей

Несомненно, одной из самых важных моментов при использование баз данных при разработке сайтов — это правильно продумать организацию данных, которые будут хранится в базе. Для этого необходимо четко определить каждую отдельную сущность, которая будет представлять близкие данные в таблице.
Возьмем, к примеру, данные о пользователе. Пусть у пользователя есть такие данные: имя, e-mail, пароль, комментарии (которые он оставил к статьям на сайте). С другой стороны есть данные статьи: текст, картинка, комментарии (оставленные пользователем). Совершенно не верно было бы объединить в таблице Users все данные пользователя, а в таблице Articles все данные статьи. Вместо этого мы добавим в каждую из таблиц еще одно поле ИД, которое будет идентифицировать каждую запись в таблице, а комментарии вообще можно вынести в отдельную сущность — таблицу Comments, а используя возможность реляционных баз данных ссылаться на записи в других таблицах по тому же идентификатору.
Данный подход позволяет избежать дублирование данных и построить более гибкую систему. Поэтому, уже на раннем этапе проектирования, является очень важным грамотно определить все таблицы и связи между ними.

Индексирование записей

Неоспоримым преимуществом баз данных является более быстрая выборка необходимых данных из большого объема по критериям запроса. Однако это верно будет лишь в том случае, если правильно использовать индексы по полям таблиц. Выше мы уже определяли поле ИД, которое будет уникально определять каждую запись в таблице, это отличный кандидат на первичный ключ. Во-первых, это гарантирует то, что значения поля не будет повторятся, таким образом будет доступна только одна запись по конкретному значению этого поля, а, во-вторых, записи будут проиндексированы по этому полю, поэтому запрос выборки будет происходить значительно эффективнее.
Но запросы не всегда бывают по одному полю с первичным ключом, поэтому существует возможность назначать индексы другим полям. Более того, также можно делать составные индексы по нескольким полям. Здесь, при разработке сайта, наравне с определением сущностей и связей, также важной частью является расставить индексы. Для этого надо хорошо проанализировать — какие запросы чаще всего используются к таблице.

Выводы

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

Успехов!