Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Программирование баз

Хотя SQL играет важную роль в стандартизации связей между различными РСУБД, есть один еще не описанный момент, касающийся тех, кто хочет писать приложения, работающие с программным обеспечением баз данных. Это интерфейс прикладного программирования (Application Prograrnming Interface, API) баз данных, который используется для передачи инструкций SQL в РСУБД и для получения результатов их обработки из РСУБД. Хотя все описываемые в этой книге платформы баз данных предлагают свои собственные интерфейсы для разработчиков приложений, в этой главе мы сконцентрируемся на двух распространенных API, которые предоставляют единый интерфейс для работы с разными платформами баз данных. В частности, в этой главе мы познакомим вас со следующими API.

ADO.NET — это высокоуровневый интерфейс прикладного программирования баз данных от компании Microsoft, работающий на платформе NET. API ADO.NET представляет собой коллекцию интерфейсов NET, доступ к которым осуществляется с помощью любого языка с поддержкой NET. Главное преимущество ADO.NET — это простота использования, переносимость в пределах платформы NET, интеграция с XML и доступ к источникам данных, отличным от реляционных баз данных. Примеры работы с ADO.NET, обсуждаемые в этой книге, написаны на С#, однако доступ к ADO.NET возможен и при помощи Visual Basic, и при помощи других языков с поддержкой NET.

Интерфейс JDBC, или Java Database Connectivity, был разработан компанией Sim Microsystems в первую очередь как API баз данных для языка Java. JDBC является наиболее популярным интерфейсом прикладного программирования баз данных на языке Java. Он предоставляет возможность перенесения кода с одной операционной системы на другую, предлагает приемлемую производительность для большинства областей применения, и он достаточно хорошо документирован. Кроме того, драйверы для большинства баз данных распространяются, как правило, бесплатно. В этой главе рассматривается JDBC версии 3.0.

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

Общий обзор программирования баз данных

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

  • Как связать данные в приложении, которые, как правило, имеют объектно-ориентированный характер, с реляционной базой данных.
  • Как лучше всего обрабатывать ошибки.
  • Как увеличить производительность и расширяемость приложения.

Для типичного приложения базы данных потребуется много различных инструкций SQL. Процесс управления таким количеством инструкций упрощает то, что инструкции SQL в приложении выполняются примерно по одной схеме. На 5.1 приведена диаграмма состояний, показывающая, каким образом инструкции SQL подготавливаются, выполняются, а затем обрабатываются приложением базы данных в процессе взаимодействия с системой управления реляционной базой данных. Диаграмма состояний разделена на 11 этапов, четыре из которых являются необязательными (на диаграмме выделены отступом).

Ниже приводится подробное описание каждого из этапов, показанных на 5.1.

  • Установление связи. Установление связи — это первый этап в каждом успешном приложении базы данных. Именно на этом этапе клиент, то есть приложение базы данных, устанавливает физическое соединение с базой, которое будет использоваться для передачи инструкций SQL в базу и для возврата результатов обратно в клиентское приложение. На деле физическое соединение может осуществляться через LAN, WAN или даже через простое логическое соединение в тех случаях, когда сервер и приложение базы данных работают на одной и той же машине. За дополнительной информацией об установлении соединений обращайтесь к разделу «Открытие соединения с базой данных» ниже в этой главе.
  • Запуск транзакции (не обязательно). Транзакция может быть запущена таким образом, чтобы можно было произвести откат вносимых изменений в случае сбоя или их фиксацию в случае успеха. За дополнительной информацией об управлении транзакциями через API базы данных обращайтесь, пожалуйста, к разделу «Управление транзакциями» ниже в этой главе.
  • Создание объекта-инструкции. Большинство современных API баз данных являются объектно-ориентированными и, следовательно, используют объект, представляющий инструкцию SQL. Как правило, в приложении одна инструкция SQL соответствует одному объекту-инструкции. Объект-инструкция содержит информацию о состоянии, необходимую для выполнения инструкции SQL, саму инструкцию SQL, а также входные параметры, если таковые существуют.
  • Связывание кода SQL с объектом-инструкцией. После того как объект-инструкция создан, с ним нужно связать инструкцию SQL. Как только это будет сделано, объект-инструкцию можно будет выполнять.
  • Связывание входных параметров (не обязательно). Хотя возможность привязывать параметры к «заменителям» в инструкции SQL и не входит в стандарт ANSI SQL, она поддерживается всеми платформами, описываемыми в этой книге. Если инструкция SQL имеет «заглушки» для входных параметров, объект-инструкция должен иметь программные переменные, связанные с каждым из входных параметров. Если инструкция SQL не имеет входных параметров, то этот этап можно пропустить. Входные параметры используются для оптимизации производительности в том случае, если одна инструкция SQL выполняется многократно, поскольку обработка инструкции на серверной стороне соединения будет производиться только один раз, при первом выполнении инструкции. Еще одна причина использования входных параметров — встраивание в инструкции SQL (такие, как INSERT я UPDATE) двоичных данных, например BLOB.
  • Выполнение объекта-инструкции. После того как объект-инструкция был успешно создан и проинициализирован инструкцией SQL, этот объект можно передавать на выполнение. На этом этапе инструкция SQL выполняется на сервере базы данных.
  • Обработка результатов (не обязательно). После того как сервер базы данных вернет результирующий набор данных, приложение может произвести его обработку. Этот этап является необязательным, поскольку он обычно не требуется для инструкций, которые вставляют или обновляют данные в базе.
  • Повторное выполнение. Если та же самая инструкция должна быть выполнена заново (в случае ошибки или для выполнения с другими значениями входных параметров), приложение может вернуться к этапу 6. Если приложению не требуется повторное выполнение той же инструкции, оно переходит к этапу 9.
  • Выполнение другой инструкции SQL. Если в приложении нужно выполнить другую инструкцию и возможно повторное использование объекта-инструкции, то предложение может вернуться к этапу 4, иначе нужно перейти к этапу 10.
  • Останов транзакции (не обязательно). Предположим, транзакция была запущена на этапе 2 и теперь ее нужно либо зафиксировать, либо откатить. Если транзакция откатывается, то все изменения, которые внес в базу данных объект-инструкция, будут удалены из базы.
  • Высвобождение ресурсов. После успешного выполнения инструкции и обработки результатов ресурсы на стороне клиента и сервера нужно освободить, чтобы их могли использовать другие приложения.
  • В оставшихся разделах этой главы приводятся примеры того, как следует использовать такие API баз данных, как ADO.NET и JDBC, для создания приложений, которые выполняют шаги, перечисленные на 5.1.

    Источник