Интерфейс для БД — это интерфейс пользователя, позволяющий создавать запросы в базу данных без применения самого языка запросов.
Введение
Сегодня много организаций применяют в своей деятельности информационные системы. Для того чтобы работать с такой системой необходимо настроить приложения и дополнительные ресурсы, а также требуется наличие умения у пользователя работать с данным программным обеспечением. А если использовать интерфейс, сформированный для базы данных, то это может существенно облегчить задачу для пользователей информационных систем. По этой причине организация подобного интерфейса при помощи языков программирования считается на текущий момент достаточно актуальной задачей.
Интерфейс для БД
Практически для всех функций системы управления базами данных (СУБД) имеются определенные, правда, менее развитые, аналоги в среде файловых систем. А вот присутствие целого набора методов работы с данными может считаться как принципиальное отличие СУБД от файловых систем. Осуществление выбора требуемой СУБД фактически часто обусловлено в основном наличием удобства ее использования, то есть, наличием простого доступа, высокоуровневых операций с данными, стандартного интерфейса и тому подобное, а не только уровнем производительности, надежности и совершенством архитектуры.
Аналогом доступа к файлам может считаться метод, именуемый прямым доступом к СУБД, а именно, или при помощи дополнительных библиотек языка, на котором создана СУБД, (как правило, это Си), или через специализированный язык программирования, программа компиляции и (или) интерпретации которого должна поставляться проектировщиками СУБД. Большое преимущество прямого доступа, естественно, заключается в его высокой производительности. Но поскольку собственные языки или библиотеки являются достаточно сложными и пригодными для работы только с одной СУБД, то обычно прямым доступом пользуются лишь сами проектировщики данной СУБД, для того чтобы написать законченные приложения, такие как, «дизайнер», «навигатор», «менеджеров» и другие графические оболочки БД. К сожалению, подобные приложения могут рассматриваться только как средства отладки, они являются неудобными для конечного пользователя, поскольку они не способны отражать специфику их данных.
Это означает, что каждая СУБД обязана осуществлять поддержку хотя бы одного универсального интерфейса, через который имеется возможность обращения к ней из приложений, созданных другими специалистами. Ближе всего к прямому доступу могут считаться интерфейсы, которые именуются языками баз данных. Их операторы могут компилироваться (в процессе работы с БД или заранее) в исполняемый код специального для любой СУБД языка.
Языки баз данных ранее подразделялись на языки определения данных (языки определения структуры) и языки манипулирования данными. Но сейчас две эти категории действий с базами данных объединяются в интегрированных языках типа SQL (Structured Query Language). Данные языки являются стандартизованными, хотя имеются отличия в реализации языков различными СУБД, и по этой причине пока достаточно редко случается, чтобы приложение, которое работало с одной СУБД, без модификаций может работать с другой. Инструкции языков баз данных могут последовательно исполняться в специальных программах типа Oracle SQL Plus или Microsoft Query, использующих доступ при помощи интерфейсов уровня обращения.
Наиболее часто языки баз данных применяются в так называемых интерфейсах уровня обращения CLI (Call Level Interface). Для современных языков программирования имеются библиотеки (драйверы), позволяющие выполнять обращение через данные интерфейсы к СУБД, отправляя туда инструкции языков баз данных и получая итоговые результаты отдельных запросов в форме специальных структур языка программирования.
Производители СУБД предоставляют свои библиотеки CLI, которые оптимизированы для их продукта, но в последнее время образовалась тенденция, предполагающая стандартизацию таких библиотек. В сфере реляционных СУБД самыми распространенными являются следующие стандартные протоколы программного доступа к базам данных:
- Протокол программного доступа ODBC (Open Database Connectivity) от Microsoft.
- Протокол программного доступа JDBC (Java Database Connectivity) от Sun.
- Протокол программного доступа OCI (Oracle Call Interface) от Oracle.
Когда программисты применяют стандартный интерфейс уровня обращения и опираются на стандарт языка баз данных, то их приложение способно функционировать с различными СУБД.
В отдельных средствах программирования имеются также библиотеки, базирующиеся на интерфейсах уровня обращения, которые являются значительно более простыми в применении в сравнении с данными интерфейсами. В качестве примеров можно привести компоненты DAO (Data Access Objects) от Microsoft (Visual Basic, Visual C++), Data Express от Borland (C++Builder, JBuilder, Delphi), или OCI/OCA (Open Client Adapter) от Oracle (C, C++). При применении подобных библиотек практически не обязательно знать языки баз данных. Но при этом платой за данное упрощение для программиста станет небольшой набор СУБД, которые могут быть поддержаны поставщиками библиотек.
Еще боле сильно зависит от конкретной СУБД иной метод программного доступа к базам данных (тоже часто базирующийся на CLI), а именно, интегрируемые в код языка программирования инструкции языка баз данных (например, embedded SQL). Собственные языки программирования, которые имеются для отдельных СУБД, всегда снабжаются синтаксисом встраивания, а производители других СУБД часто предоставляют программы трансляции для исходного кода существующих языков, которые могут заменить встроенные инструкции языка баз данных на вызовы операций из специализированных библиотек (к примеру, SQLJ для Java). В обоих вариантах совокупность операций, которые следует выполнять с данными, должна определяться на этапе компиляции программы, и поэтому рассматриваемый метод доступа к данным именуется статическим.