Разработка при помощи Apache Derby -- тройной выигрыш: Введение в Apache Derby

Не откладывайте, сразу начните работать с программой и оцените простоту использования

В данном выпуске постоянной рубрики "Разработка при помощи Apache Derby - тройной выигрыш" рассказывается об Apache Derby - компактной системе баз данных с открытым исходным кодом, построенной на основе Java и стандартов в сравнении с другими системами баз данных; рассматриваются вопросы, связанные с ее загрузкой и установкой. После ознакомления с данной статьей вы будете готовы начать разработку приложений баз данных при помощи Derby.

Роберт Бруннер , ученый-исследователь NCSA, старший преподаватель астрономии, Университет штата Иллинойс, г. Урбана-Шампейн

Роберт Дж.  Бруннер (Robert J. Brunner)Роберт Дж. Бруннер (Robert J. Brunner) занимается научными исследованиями в Национальном центре по приложениям для суперкомпьютеров и является старшим преподавателем астрономии в университете штата Иллинойс, город Урбана-Шампейн. Автор нескольких книг и множества статей и практических руководств на различные темы.



14.02.2006

Проект Apache Derby

Эта статья - первая из нового цикла статей "Разработка при помощи Apache Derby - тройной выигрыш", которая посвящена изучению технологии программного обеспечения, разработанной в рамках проекта Apache Derby project. Программа, выпущенная в рамках открытого проекта Apache Derby project, представляет собой систему баз данных с открытым исходным кодом, которая разработана на основе технологии, предоставленной организацией Apache Software Foundation корпорации IBM. Система базы данных Apache Derby написана на языке программирования Java,™ поэтому она отличается высокой степенью переносимости, но при этом предоставляет заметную производительность при малом размере.

В базе данных Derby реализованы также несколько стандартов баз данных, поэтому можно без лишних сложностей начать работать с Derby, если у вас уже есть опыт работы с базами данных, или перенести уже имеющееся приложение базы данных Derby на другие соответствующие стандартам системы базы данных, если возникнет такая необходимость. Поскольку с момента официального выхода Derby прошло не более года, пользователи испытывают нехватку полезной информации. Сайт IBM developerWorks восполняет этот недостаток информации рядом статей и учебных руководств. Этот цикл предназначен для пользователей, у которых не слишком много опыта работы с системами баз данных. Другие статьи на Web-сайте developerWorks предлагают более углубленное изучение программы баз данных Apache Derby и информацию о том, как интегрировать ее в стек программ Java Enterprise.

Как и в остальных статьях данного цикла, в этой статье сначала рассказывается о системах баз данных вообще, а затем более подробно рассматривается Apache Derby.


Краткое отступление о системах баз данных

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

  • Любой информационный портал, например, developerWorks Open source project area, который показан на рисунке 1;
  • Новостной Web-сайт, на котором можно ознакомиться с местными или спортивными новостями;
  • Web-сайт финансового учреждения (банка или инвестиционного учреждения), на котором можно изучить состояние ваших финансов;
  • Web-сайт с картой, где можно выбрать маршрут движения;
  • Поисковую машину, где вы можете найти интересующие вас Web-сайты и ознакомиться с более подробной информацией по теме.
Рисунок 1. Раздел сайта developerWorks Open source project area
Раздел сайта developerWorks Open source project area

Каждый из этих сайтов использует базы данных для динамичного хранения, размещения и извлечения информации. В каждом из приложений Web-сайт собирает необходимую информацию о пользователе (например, домашний адрес), запрашивает базу данных приложения и представляет данные, которые были запрошены, в виде соответствующего наглядного результата.

Многие системы баз данных имеют огромный размер и очень сложны - представьте себе, например, обработку всей информации топографических карт, необходимой для предоставления точных маршрутов движения с изображением! Понятно, что хранение данных и обеспечение их доступности для приложений - это непростая задача, которую пытались решить многие разработчики, в том числе IBM, выпустившая IBM DB2,® и Microsoft® с ее СУБД Microsoft SQL Server. Эти коммерческие системы баз данных обеспечивают всеобъемлющие средства корпоративного класса. В результате этого, они могут обрабатывать огромные объемы данных, параллельно взаимодействовать с большим количеством пользователей и расти в пределах нескольких крупных вычислительных систем.

Роли базы данных

Очевидно, что работу с этими системами трудно назвать обыденной; она может быть сопряжена с большими затратами ресурсов. По традиции, задачи, относящиеся к работе с базами данных, делятся на три группы. Хотя роли иногда накладываются, индивидуальные обязанности понять несложно:

  1. Администратор базы данных (DBA) -- отвечает за работу базы данных в целом, а именно: за выбор и размещение используемого аппаратного обеспечения, установку и оптимизацию сервера базы данных (особенно используемого аппаратного обеспечения) и повседневную работу сервера базы данных, в том числе, резервное копирование и восстановление данных;
  2. Разработчик базы данных -- отвечает за базы данных в процессе работы, в том числе, проектирует базы данных, схемы, таблицы, отношения между таблицами и индексы, а также отвечает за оптимизацию запросов;
  3. Разработчик приложений базы данных -- отвечает за интеграцию кода приложения в базу данных путем использования при необходимости интерфейсов программирования приложений (API), например, интерфейс JDBC или ODBC, для хранения и извлечения данных.

Если предшествующее описание вас напугало, то в этом нет ничего необычного - работа с базами данных всегда отличалась сложностью. Почему? Чтобы понять это, давайте изучим конкретный пример более подробно; возьмем, например, банковские операции в реальном времени. При подключении к Web-сайту банка вы вводите свои учетные данные (чаще всего имя пользователя и пароль), благодаря чему получаете доступ к вашей финансовой информации: вы можете просмотреть информацию, оплатить счета и перевести средства. База данных, которую использует банк, должна быстро найти соответствующую информацию, надежно обработать транзакции, безопасно провести взаимодействие с пользователями и, самое важное, - не допустить потери любых данных! При этом банк должен выполнить все эти операции для большого количества пользователей одновременно.

Но не все приложения требуют этого, особенно, если вы только начинаете. Если вы только учитесь работать с базами данных или хотите быстро создать проект приложения базы данных, то многие коммерческие системы баз данных могут оказаться слишком сложными. К счастью, использовать базу данных Apache Derby для разработки приложений, работающих с базой данных, проще, чем вы думаете. Далее в статье вкратце рассказывается о проекте Apache Derby. Материалы в следующих выпусках этой рубрики расскажут, как создавать приложения при помощи базы данных Apache Derby.


Проект Apache Derby project

Проект Apache Derby project имеет целью создание базы данных с открытым исходным кодом, полностью написанной на языке программирования Java, простой в применении, но при этом подходящей для большинства приложений. Как известно, разработка баз данных не относится к простым задачам, и база данных Apache Derby - не исключение (поскольку это программа с открытым исходным кодом, вы можете сами в этом убедиться). Но проект Derby project начинался не на пустом месте. В 1996 году новой компании под названием Cloudscape, Inc. были выделены средства на проект по созданию сервера базы данных, написанного на языке Java. Первый продукт компании был выпущен через год, и со временем название продукта было изменено на Cloudscape. В 1999 году компания Cloudscape, Inc. была куплена корпорацией Informix Software, Inc., крупным разработчиком баз данных. В 2001 году Informix Software была приобретена корпорацией IBM, и система управления базами данных IBM Cloudscape™ использовалась в качестве встроенного механизма базы данных в нескольких продуктах IBM. В апреле 2004 года IBM безвозмездно передала программу управления базами данных Cloudscape фонду Apache Software Foundation; так родился проект Apache Derby project (см. рисунок 2).

Рисунок 2. Web-сайт проекта Apache Derby
Web-сайт проекта Apache Derby

К тому времени база данных Cloudscape насчитывала приблизительно полмиллиона строк Java-кода, поэтому потребовалось некоторое время, чтобы преобразовать ее в Apache Derby project. По окончании инкубационного периода состоялся официальный выпуск Derby в июле 2005 года. Таким образом, хоть Derby и может показаться новичком в группе программ, этот проект разрабатывался более 10 лет.

IBM продолжает вести базу данных Cloudscape, которая создана на базе исходного кода Apache Derby. IBM предлагает базу данных Cloudscape для бесплатной загрузки, а также предоставляет бесплатные консультации для клиентов, которые хотят дополнительной поддержки. Кроме того, корпорация Sun Microsystems объявила о том, что исправленная версия Apache Derby будет включена в список продуктов Java DB. В этом серьезном соглашении между IBM и Sun говорится о блестящем будущем базы данных Apache Derby. База данных Derby также соответствует нескольким стандартам для баз данных, например, SQL-92 и JDBC, версия 3.0; таким образом, приложение, первоначально разработанное при помощи системы баз данных Derby, можно с легкостью перенести на другую систему баз данных, например, IBM DB2 Universal Database™.

Описание базы данных Apache Derby

Apache Derby написана на языке Java, поэтому может выполняться в любой системе, где есть подходящая виртуальная машина Java (JVM). Это означает, что Derby может выполняться практически в любой операционной системе, включая платформы Microsoft Windows®, Macintosh, Linux®и UNIX® . Derby может также выполняться на любой из трех Java-платформ: Java 2 Platform, Micro Edition (J2ME); Java 2 Platform, Standard Edition (J2SE); и Java 2 Platform, Enterprise Edition (J2EE). Программное обеспечение Derby упаковано в файл Java-архива (JAR), размер которого составляет всего 2 Мбайт. Вследствие своего небольшого размера, база данных Derby может быть без затруднений включена в любое приложение.

Базу данных Derby можно использовать двумя способами:

  • Как встраиваемую базу данных, при этом пользователь не знает о существовании базы данных. Приложение использует базу данных; как приложение, так и база данных выполняются в одной и той же виртуальной машине; база данных сохраняет данные в локальной файловой системе. В соответствии с этой моделью база данных взаимодействует только с приложением, которое выполняется в этой же виртуальной машине;
  • Как соединение клиент-сервер; это самая традиционная модель, используется большинством коммерческих разработчиков. В соответствии с данной моделью приложение взаимодействует с базой данных через сетевое соединение, при этом приложение и база данных выполняются в разных виртуальных машинах. Сервер базы данных может осуществлять коммуникации с несколькими клиентскими приложениями.

Как загрузить Apache Derby

Лучший способ оценить простоту работы с Apache Derby - это, не теряя времени, приступить к работе. В заключение мы приводим общие инструкции по загрузке и проверке вашей копии Apache Derby (см. ссылку на официальный Web-сайт Apache Derby, соответствующую вашей операционной системе, в разделе Ресурсы . Эти инструкции предполагают, что вы успешно установили соответствующую среду JRE. Подойдет любая версия JRE после 1.3, но в нашем цикле статей используется Java 1.4.2 или более поздняя версия.

Выполнив все эти необходимые условия, можно перейти к первому шагу - загрузке Apache Derby. Как показано на рисунке 3, можно загрузить три различные версии: исходный код, библиотеку и двоичную версию. Версия source (исходный код) содержит исходный код. Чтобы пользоваться этой версией, следует откомпилировать исходный код и создать собственный .jar-файл. Версия library (библиотека) включает только необходимый jar-файл для базы данных Derby. Двоичная версия содержит файл .jar и документацию Derby.

Чтобы не усложнять задачу, загрузите двоичную версию. Обязательно проверьте целостность загруженного файла; проверьте PGP-сигнатуру, которая гарантирует, что загруженный файл представляет собой официальную версию, и сигнатуру MD5 (Message-Digest algorithm 5), которая гарантирует, что загруженный файл не был поврежден.

Рисунок 3. Загрузка базы данных Apache Derby
Загрузка базы данных Apache Derby

Установка Apache Derby

После успешной загрузки и проверки целостности архива, содержащего файлы базы данных Derby, установка не представляет сложности (хотя и несколько зависит от платформы):

  1. Выберите подходящее место для файлов, например C:\Apache системе Windows или /opt/Apache в UNIX-системах;
  2. Откройте окно терминала (или командной строки в Windows), перейдите в этот новый каталог и распакуйте архив, содержащий базу данных Derby. При этом создается новый каталог, который получает имя по номеру версии базы данных Derby, которая у вас установлена, например, db-derby-10.1.2.1-bin;
  3. Добавьте .jar-файл Derby в переменную окружения CLASSPATH. Если вы не очень уверенно работаете с командной строкой, то же самое можно сделать непосредственно, добавив файл derby.jar, который находится в каталоге db-derby-10.1.2.1-bin/lib subdirectory, в переменную окружения CLASSPATH. В качестве альтернативы вы можете выполнить сценарий setEmbeddedCP, который находится в каталоге db-derby-10.1.2.1-bin\frameworks\embedded\bin subdirectory. Перед запуском сценария необходимо либо настроить переменную окружения DERBY_INSTALL, либо изменить сценарий так, чтобы переменная DERBY_INSTALL указывала на каталог, в который установлена база данных Derby;
  4. Проверьте свою установку при помощи инструмента sysinfo, как показано в листинге 1.
Листинг 1. Проверка установки Derby при помощи sysinfo
rb$ java org.apache.derby.tools.sysinfo
------------------ Java Information ------------------
Java Version:    1.4.2_09
Java Vendor:     Apple Computer, Inc.
Java home:       /System/Library/Frameworks/JavaVM.framework/
                         Versions/1.4.2/Home
Java classpath:  /opt/Apache/db-derby-10.1.2.1-bin/lib/derby.jar:/
                          opt/Apache/db-derby-10.1.2.1-bin/lib/derbytools.jar:.
OS name:         Mac OS X
OS architecture: ppc
OS version:      10.4.3
Java user name:  rb
Java user home:  /Users/rb
Java user dir:   /opt/Apache/db-derby-10.1.2.1-bin
java.specification.name: Java Platform API Specification
java.specification.version: 1.4
--------- Derby Information --------
JRE - JDBC: J2SE 1.4.2 - JDBC 3.0
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derby.jar] 10.1.2.1 - (330608)
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derbytools.jar] 10.1.2.1 - 
   (330608)
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derby.jar] 10.1.2.1 - (330608)
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derbytools.jar] 10.1.2.1 - 
   (330608)
------------------------------------------------------
----------------- Locale Information -----------------
------------------------------------------------------

С этого момента у вас есть рабочая система базы данных, которую можно либо запустить на автономном сервере сети, либо установить как встроенную в приложение базу данных. В следующих выпусках рубрики мы покажем, как запускать Derby в обеих моделях и расширим ваше понимание базы данных.

Работа с Apache Derby

Работа с системой баз данных не должна быть сложной. При помощи Apache Derby вы сможете быстро начать работать с полнофункциональными системами баз данных. А благодаря тому, что Apache Derby - это база данных, соответствующая стандартам, приложения, которые разработаны с использованием Apache Derby, можно при необходимости без лишних сложностей перенести на более мощную систему баз данных.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source, Технология Java, Information Management
ArticleID=164110
ArticleTitle=Разработка при помощи Apache Derby -- тройной выигрыш: Введение в Apache Derby
publish-date=02142006