|
|
|||||||||||||||||||||||||||||
|
Моделирование и проектирование баз данных в информационных системах.Часть 1Источник: ca.com Джош Джонс (Josh Jones) и Эрик Джонсон (Eric Johnson)
Процессу моделирования баз данных в сфере информационных технологий долго не придавали особого значения. Считалось, что если необходимо протестировать или уточнить код приложения, вполне достаточно просто перебросить данные в любую базу данных. Это мнение глубоко ошибочно. Правильно построенные модели данных не только способствуют повышению производительности приложений за счет более быстрого извлечения и записи данных, но и обеспечивают масштабируемость и гибкость дальнейшей разработки. В наши дни даже секунды решают многое, поэтому пользователи, которым приходится терять время в ожидании ответа от медленных приложений, стремятся найти альтернативные решения. Если вы хотите, чтобы ваши приложения были лучшими в своем роде, придется выделить время и ресурсы на создание моделей данных. В этом техническом описании мы расскажем, что такое моделированием данных, почему оно имеет такое значение, и какие концепции и методы лежат в основе моделирования данных.
РОЛЬ БАЗ ДАННЫХ В РАЗРАБОТКЕ ПРИЛОЖЕНИЙ Базы данных играют очень важную роль в процессе разработки приложений. Большинству приложений необходимо хранить определенные данные для дальнейшего использования. Когда дело доходит до сохранения этих данных, в большинстве случаев выбор самым логичным образом падает на реляционные базы данных. Существуют и другие варианты - плоские файлы, XML, персистентные наборы записей или даже пользовательские форматы файлов, но, ни один из этих вариантов не обладает надежностью и защищенностью базы данных. Базы данных позволяют анализировать собранную информацию при помощи таких инструментов, как отчеты и хранилища данных. Кроме того, большинство реляционных систем управления базами данных (РСУБД) позволяют восстановить базу данных из резервной копии в случае отказа и предлагают способы реализации решений высокой готовности для минимизации времени простоя вследствие отказа. Даже сами по себе эти преимущества могут подтолкнуть к решению об использовании баз данных в качестве решения для хранения и управления информацией при разработке приложений. ОСНОВЫ МОДЕЛИРОВАНИЯ БАЗ ДАННЫХ На самом деле, моделирование баз данных не отличается сложностью - это процесс отображения реальной информации на логическое представление этих данных. Другими словами, как информация о клиентах хранится в модели данных? Здесь многое зависит от специалиста, создающего модель, но есть ряд ключевых концепций, которые помогут такому специалисту принимать правильные решения в процессе разработки. Итак, при моделировании нужно воспринимать данные с точки зрения логики, не заботясь о том, как именно будут выглядеть в базе данных таблицы и столбцы. Такой подход называется логическим моделированием, и его единственная задача - создать модель, представляющую реальные объекты. После создания логической модели можно перейти к проектированию физической модели данных. Разделение логической и физической модели гарантирует создание надежной базы данных. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ +В процессе разработки приложения в самой ранней фазе проекта проектировщики и разработчики обычно тратят много времени на сбор требований к создаваемому приложению. Эту информацию обычно собирают при помощи интервьюирования пользователей и руководителей, а также путем наблюдения за существующей системой (даже если это совершенно неавтоматизированная система). Конечный результат представляет собой довольно детализированный набор требований, включающий прецеденты, диаграммы системы и макеты интерфейса приложения. После того, как требования всех основных заинтересованных в проекте сторон будут удовлетворены, начинается разработка приложения. Одно из первых действий, которое приходится выполнять большинству разработчиков приложений - это создание репозитория для данных, с которыми будет работать новое приложение, другими словами - базы данных приложения. Во многих случаях разрабатывается база данных, которая будет удовлетворять физическим требованиям интерфейса приложения. То есть, при наличии проекта, описывающего способ получения и отображения данных приложением, разработчики приложения могут создать в РСУБД пустую базу данных. Если имеется таблица или набор таблиц, которые полностью определяют все данные, получаемые от интерфейса, то разработчик приложения может начать разработку механизма хранения данных и создание кода, при помощи которого приложение будет взаимодействовать с только что созданной базой данных. Хотя этот подход далек от совершенства, он может работать, особенно для краткосрочных проектов. Если все будет сделано с достаточной тщательностью, то готовая база данных даже может функционировать, при условии небольшого объема хранящихся в ней данных и отсутствия необходимости в изменениях. Однако разработанные этим способом базы данных неизбежно будут испытывать серьезные проблемы с масштабируемостью, и по прошествии некоторого времени их будет чрезвычайно трудно изменить. Известно, что приложения, в конце концов, приходится изменять и даже полностью переписывать, чтобы добавить в них новые (или убрать устаревшие) функции; но при этом обычно нужно сохранить устаревшие данные. Значит, мы приходим к необходимости частичного перепроектирования "устаревшей" базы данных для добавления новых функций без риска потери каких-либо данных. Это ведет к снижению производительности, поскольку зачастую мы добавляем новые структуры базы данных (таблицы и представления), а также сложную логику SQL для представления устаревших и новых данных в рамках все того же интерфейса. Создание эффективной логической модели данных до выполнения любых реальных действий по разработке базы данных поможет предотвратить описанные проблемы и выяснить любые неучтенные требования на уровне данных до того, как будет написана хотя бы строка программного кода. СРАВНЕНИЕ МОДЕЛЕЙ ДАННЫХ И БАЗ ДАННЫХ Модели данных создаются на ранних стадиях фазы проектирования, обычно ближе к завершению фазы сбора требований данного проекта. После завершения всех интервью и наблюдений создается модель данных, предназначенная для документирования данных, которыми будет управлять приложение. Эта модель будет логически представлять все порции информации, необходимые приложению, и описывать, как различные порции данных связаны с другими порциями данных. Модель также предусматривает представление данных для пользователей, не обладающих достаточными техническими знаниями, и может быть очень полезна для получения одобрения проекта приложения в целом конечными пользователями. Строго говоря, реляционная база данных представляет собой упорядоченный набор таблиц, в которых хранятся данные. На практике база данных представляет собой набор таблиц, представлений и хранимых процедур (в зависимости от конкретной СУБД), которые хранят данные и выполняют с ними различные действия. Эти структуры определены при помощи встроенного языка программирования данной РСУБД, который обычно представляет собой один из диалектов языка SQL. Любая РСУБД хранит данные в файлах операционной системы и оснащена функциями по управлению файлами, управлению безопасностью и отладке производительности запросов, которые используются для манипуляций с данными. С точки зрения приложения, база данных - это место, откуда поступают данные. В отличие от базы данных, модель данных не является представлением физического хранилища данных. Если база данных определяет способ хранения данных, способ использования реальных отношений между ними для манипулирования данными и обеспечивает программный доступ к данным, то модель данных просто перечисляет, какие данные существуют и как различные биты информации связаны между собой. Хорошо спроектированная модель данных, в конце концов, превращается в логическую схему разрабатываемой базы данных. По этой причине модели данных обязательно должны быть платформенно-независимыми; и любая модель данных может использоваться для создания физической базы данных в Oracle 10g, SQL Server 2005 или MySQL. И все же не следует думать, что при моделировании не нужно учитывать, с какой РСУБД будет работать приложение. В ряде ситуаций предварительная осведомленность о РСУБД, которая будет использоваться для управления базой данных, может повлиять на процесс моделирования данных. Ссылки по теме
|
|