В самом общем случае это собственно база данных, которая пред- полагает какой либо метод сохранения информации на диске и воз- можности доступа и манипуляции с нею, и набор программных про- дуктов, предоставляющий пользователю все допустимые в базе средства работы с данными. Набор программных средств манипуляции данными СУБД удовлетворя- ет свойствам полноты (консистентности). Полагаю, что коммерчес- кие варианты СУБД стремятся быть еще и замкнутыми, т.е. само- достаточными, не требующими и не поддающимися расширению. +------------------------------------------+ | ВИДЫ СУБД И ДЛЯ КОГО ОНИ ПРЕДНАЗНАЧЕНЫ. | +------------------------------------------+ а. Итерактивные средства обработки данных для конечных пользо- вателей. Они же пользовательские прикладные программы, они же customer applications. Пример - в наших условиях наиболее, по- жалуй, изветены всякие АРМы - "АРМ Бухгалтерия" и т.п. б. Интерактивные средства разработки и администрирования данных для подготовленных пользователей. Системы поддержки базы данных для Администратора БД. в. Специализированные Системы проектирования и создания прик- ладных программ. Расчитаны на разработку конкретных пользова- тельских приложений. Например "Пакеты для программирования бан- ковских операций". г. Универсальные Системы проектирования и создания прикладных программ. Они же Системы Программирования Баз Данных, они же "Инструментальные средства разработки прикладных систем для ко- нечных пользователей". Работать с ними должны подготовленные программисты разработчики. д. БД-серверы. Программы обеспечивающие нижний уровень работы базы данных - фактическое хранение и обработку данных. е. Внешние интерфейсы БД-серверов ж. Все вышеперечисленное в различных комбинациях. +---------------------------------+ |СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ.| | DBMS DataBase Managment System. | +---------------------------------+ Давайте сперва дадим несколько определений и слегка поговорим о терминах. Не удивительно, что всвязи с программированием СУБД возникает такое понятие, как Язык запросов базы данных. SQL. Пользовательские прикладные программы. 4GL. ┐│┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐┌ ┐┼Языки программирования баз данных┐┼ ┐┐┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐▀┐└ Четыре уровня программирования: 1. Программирование на Си 2. Пакет с методом доступа. Программирование на Си. Обращение к данным - вызов пакета подпрограмм. 3. Язык запросов + Си. Обращение к данным на SQL, программирование на Си. 4a. Специализированые разнородные средства программирования: Язык запросов, программирование, организация пользовательского интерфейса - все делается с помощью отдельных средств СУБД. 4. Специализированый язык программирования. SQL, программирование, экранный пользовательский интерфейс - в одном интегрированном языке. 5. Удобные генераторы и средства порождения программ. Как оказалось, под определением "язык программирования баз дан- ных" могут понимать весьма разные понятия и разные уровни реа- лизации этого языка. Здесь я буду рассматривать собственно то, на чем можно напи- сать программу, использующую или обрабатывающую базу данных, и, возможно, поддерживающую еще и пользовательский интерфейс. Итак первый уровень программирования: Это, когда никаких специальных средств для организации данных нет, и все пишется на обыкновенном языке программирования (нап- ример, ради простоты, Си или Паскале), а данные хранят в обыч- ных файлах, и доступ к ним самый стандартный : open, close, read, write. Хотя такая примитивность некоторым может показать- ся смешной, но, и ничего в этом странного нет, некоторые задачи обработки достаточно сложной информации можно (и нужно) решать именно на этом уровне, не привлекая никаких СУБД. Второй уровень: Все программирование опять же исполняется на обычном языке третьего поколения. Однако уже введена некоторая организация данных, и для обращения к ним используется специально для этого написанный пакет подпрограмм. Сами эти подпрограммы могут реа- лизовать уже очень сложный метод доступа и поиска в данных, ин- дексацию, защиту, разделение в многопользовательском режиме. Собственно, когда возникает метод доступа и подпрограммы, его обслуживающие, имеет смысл говорить уже о СУБД. Ну, а интерфейс программиста с данными принимает вид пачки вызовов подпрограмм, в которые нужно засунуть кучу параметров. И выглядят они при- мерно так: call open_cursor_for_read(curs,,Ncol,buf1,buf2,pole3,pole4,,1) Примером таких СУБД может служить СУБД "Сфера", СУБД DBWISTA, а так же пакет подпрограмм индексно-последовательного метода дос- тупа Informix называемый C-ISAM. Третий уровень: Для обращения к базе данных вводится специальный язык запросов. Язык этот бывает разный, все зависит от фирм, реализующих эти СУБД. Это может быть QL, DQL, ANSI-SQL... или какой нибудь еще. Наиболее удобным и мощным (для реляционных баз данных) среди них является, на данный момент, язык SQL. Его синтаксис гораздо более понятен для программиста, чем выписывание вызовов фукций с сорокасложными названиями и дюжинами параметров. Обычно пред- ложения языка запросов можно прямо вставлять в текст программы. Естественно, что при этом возникает необходимость "компилято- ра"-препроцессора, который будет читать текст программы с вставленными в нею предписаниями языка запросов и подставлять вместо них в те самые вызовы функций СУБД первого уровня, кото- рые, на самом деле и реализуют этот язык запросов. Полученная после этого программа отдается обычному компилятору, который присоединяет к ней библиотеку подпрограмм, реализующих этот са- мый метод доступа. Само программирование ведется опять же на обычном языке программирования третьго поколения. Примерами СУБД третьго уровня являются: INFORMIX-ESQL, UNIFY (в России - БАРС). Четвертый уровень. Для программирования создается специализированный язык. В него интегрируется (и это естественно) язык запросов, средства по- рождения отчетов, средства обычного программирования, и средст- ва порождения пользовательского интерфейса (экранные формы, ме- ню, окна, горячие ключи). Обычно на таком языке достаточно лег- ко (буквально в одну - пять команд) реализовывать всякие краси- вые картинки на экране, расчитанные на конечного пользователя, а так же используя компактный и мощный язык запросов активно манипулировать с данными, поэтому нередко такие языки называют гордым словом "языки четвертого поколения". Надо согласиться, что доля истины в таком названии есть, хотя, конечно, отнюдь не вся. Примером может являться всем небезызвестный DBase и его произ- водные, INFORMIX-4GL (с реализованным в нем языком запросов SQL), системы программирования фирмы ORACLE (так же использую- щие SQL в качестве языка запросов). Пятый уровень. Средства, позволяющие создавать программу не занимаясь непос- редственно кодированием, а используя диалоговый режим, с по- мощью меню, мыши, и клавиш типа <стрелки> и ENTER позволяют по- лучить на выходе окончательный вариант программы, иногда на языке СУБД четвертого уровня, а иногда даже и без него. Примеры мне назвать достаточно сложно, сам я с ними не встре- чался, но, видимо, таковыми являются некоторые средства разра- ботки программ FOX-Professional, Paradox, а так же INFORMIХ╜ QuickStep