Реферат: Средства доступа к базам данных - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Средства доступа к базам данных

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 1753 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Средства доступа к базам данных в Internet и свободно доступная СУБ Д POSTGRES95 Средства доступа к базам данных на стороне сервера · CGI · API · FastCGI CGI Common Gateway Interface - это спецификация интерфейса взаимодейств ия Web-сервера с внешними прикладными программами . Главное назначение CGI - обеспечение единообразного потока данных между сервером и работающим на нем приложением . CGI определяет : 1. порядок взаимодействия сервера с прикладной программой , в котором серве р выступает инициирующей стороной ; 2. механизм реального обмена данными и управляющими командами в этом взаимодействии , что не определено в протоколе HTTP. Такие понятия , как метод доступа , переменные заголовка , MIME, типы данных , заимствованы из HTTP и д елают спецификацию прозрачной для тех , кто знаком с самим протоколом . Обычно гипертекстовые документы , возвращаемые по запросу клиента WWW сервером , содержат статические данные . CGI обеспечивает средства создания динамических Web-страниц на основе данных, полученных от пользователя . Программы , написанные в соответствии со спецификацией CGI, называются CGI-скриптами или шлюзами . Шлюз - это CGI-скрипт , который используется для обмена данными с другими информационными ресурсами Internet или приложениями-демо н ами такими , как , например , система управления базами данных . Обычная CGI-программа запускается Web-сервером для выполнения некоторой работы , возвращает результаты серверу и завершает свое выполнение (рис . 1). Рис . 1. Схема взаимодействия CGI-скрипта. Шлюз выполняется точно также , только , фактически , он инициирует взаимодействие в качестве клиента с треть ей программой (рис . 2). Если эта третья программа является сервером БД , то шлюз становится клиентом СУБД , который посылает запрос по определенному порту соединения с системой управления базами данных , а после получения ответа пересылает его WWW-серверу . Рис .2. Схема взаимодействия CGI-шлюза. Обмен данными по спецификации CGI реализуется обычно через пер еменные окружения и стандартный ввод /вывод . Выбор механизма передачи параметров определяется методом доступа , который указывается в форме в атрибуте METHOD. Если используется метод GET, то передача параметров происходит с помощью переменных окружения , кот о рые сервер создает при запуске внешней программы . Через них передается приложению как служебная информация (версия программного обеспечения , доменное имя сервера и др .), так сами данные (в переменной QUERY_STRING). При методе POST для передачи используетс я стандартный ввод . А в переменных окружения фиксируется тип и длина передаваемой информации (CONTENT_TYPE и CONTENT_LENGTH). Стандартный вывод используется скриптом для возврата данных серверу . При этом вывод состоит из заголовка и собственно данных . Резу льтат работы скрипта может передаваться клиенту без каких-либо преобразований со стороны сервера , если скрипт обеспечивает построение полного HTTP-заголовка , в противном случае сервер модифицирует заголовок в соответствии со спецификацией HTTP. Обязательн ы м для скриптов при генерировании документов "на лету ", когда реального документа в файловой системе сервера не остается является только HTTP-заголовок Content-type , в котором указывается тип возвращаемого документа для правильной интерпретации браузером . О бычно в Content-type указывают текстовые типы text/plain и text/html. При использовании такого вида скриптов следует учитывать , что не все серверы и клиенты отрабатывают так , как представляется разработчику скрипта . Так , при указании Content-type: text/ht m l, некоторые клиенты не реализуют сканирования полученного текста на предмет наличия в нем встроенной графики При применение спецификаци CGI для обмена данными с внешними прикладными программами можно выделить следующие преимущества : · Прозрачность испол ьзования ; · "Языковая " независимость - CGI-программы могут быть написаны на любом языке программирования или командном языке , имеющим средства работы со строками ; · Процессная изолированность - при запуске CGI-програмы на сервере порождается отдельный пр оцесс и ошибочный CGI-скрипт не может сломать Web-сервер или получить доступ к закрытой информации ; · Открытость стандарта - CGI интерфейс применим на каждом Web-сервере ; · Архитектурная независимость - CGI не зависит от особенностей реализации архитекту ры сервера (однопоточности , многопоточности и т.д .); Но CGI имеет также и существенные недостатки . Главная проблема заключается в затратах на выполнение CGI-приложений : поскольку на сервере для каждого очередного запроса порождается новый процесс , который завершается после его выполнения , то это приводит к невысокому быстродействию CGI-скрипта и снижает эффективность работы сервера . При использовании CGI-программ для доступа к базам данных из-за неподдержки непрерывного соединения Web-сервера и соответств у ющей СУБД очень сложно произвести процесс "ведения " пользователя базой данных , так как каждый раз при генерации очередного запроса требуется новое подключение . Но в то же время закрытие соединения после обработки каждого запроса сильно осложняет деятельно с ть хакеров , так как при отсутствии постоянного подключения к БД проникнуть в нее гораздо сложнее . Другое достоинство этого "недостатка " состоит в том , что связь с Web-сервером устанавливается только на короткий промежуток времени , в результате чего он не п ерегружается и может выполнять другие задачи . CGI`также ограничен по способности функционирования - спецификация предусматривает только простую "ответную " роль скрипта при генерации результата на запрос пользователя . CGI-программы не имеют взаимосвязей с установлением аутентификации пользователя и проверки его входных данных . API В ответ на ограничения и недостатки спецификации CGI была разработана спецификация прикладных модулей API, встроенных в сервер . Данное расширение Web-сервера запускается как дин амическая библиотека и выполняет обработку каждого вызова сервера по отдельной структуре памяти , что значительно проще , чем создание отдельного процесса для каждого клиентского запроса . Наиболее известны два API-интерфейса - NSAPI компании Netscape и ISAP I компании Microsoft. Свободно распространяемый популярный Unix-сервер Apache также имеет модуль PHP, реализующий данный интерфейс . Приложения , работающие через API, соединяются с сервером значительно быстрее , чем CGI-программы , так как API выполняется в о с новном процессе сервера и постоянно находится в состоянии ожидания запросов , поэтому время на запуск программы и порождения нового процесса не требуется . API-интерфейс предоставляет и большую функциональность , чем CGI - можно написать дополнительные проце д уры , осуществляющие контроль доступа к файлам , получающие доступ к log-файлам сервера и связывающиеся с другими этапами обработки запроса сервером . Тем не менее спецификация API не имеет преимуществ CGI-интерфейса и поставщики API-модулей тоже сталкиваютс я с целым рядом проблем : · "Языковая " зависимость - прикладные программы могут быть написаны только на языках , поддерживаемых в данном API (обычно это С /C++); Perl, наиболее популярный язык для CGI-скриптов , как правило , не используется в существующих пос тавляемых API-модулях . · Неизолированность процесса - так как приложения выполняются в адресном пространстве сервера , то ошибочные программы могут "уронить " сервер или какое-либо приложение . Таким образом вполне возможно (намеренно или нет ) сломать систем у безопасности сервера . · Ограниченность применения - написанные программы в соответствии с данным API могут использоваться только на данном сервере . · Архитектурная зависимость - API-приложения зависимы от архитектуры сервера : если сервер поддерживает о днопоточность , то многопотоковые приложения не получают никакого преимущества в быстродействии при выполнении . Также при изменении производителем архитектуры сервера , модуль API обычно тоже подвергается изменениям , и прикладные программы соответственно то ж е требуют переделки или даже могут быть написаны заново . FastCGI Интерфейс FastCGI сочетает в себе наилучшие аспекты спецификаций CGI и API. Взаимодействие в соответствии с FastCGI происходит сходным образом с CGI. FastCGI-приложения запускаются отдельным и изолированными процессами . Отличие состоит в том , что эти процессы являются постоянно работающими и после выполнения запроса не завершаются , а ожидают новых запросов . Вместо использования переменных окружения операционной системы и стандартных потоков в в ода /вывода протокол FastCGI объединяет информацию среды , стандартный ввод , вывод и сообщения об ошибках в единственное дуплексное соединение . Это позволяет FastCGI-программам выполняться на удаленных машинах , используя TCP-соединения между Web-сервером и F asstCGI-модулем . Таким образом , преимущества FastCGI состоят в следующем : · Быстродействие - благодаря постоянному функционированию FsatCGI-процессов обеспечивается обслуживание одним процессом многих запросов , что решает задачу и связанные с ней проблем ы порождения нового процесса на отдельный клиентский запрос . · Простота применения и легкость миграции из CGI. · "Языковая " независимость - как и CGI, FastCGI-приложения могут быть написаны на любых языках программирования или командных языках . · Изолир ованность процессов - "неисправные " FastCGI-программы не могут разрушить ядро сервера или какие-либо другие приложения , а также получить секретную служебную информацию . · Совместимость - FastCGI поддерживается во всех открытых продуктах , включая коммерчес кие серверы Netscape и Microsoft, NCSA сервер и свободно распространяемый Apache. · Архитектурная независимость - FastCGI интерфейс не зависит от особенностей реализации серверной архитектуры и прикладные программы могут быть как одно -, так и многопоточны ми . · Распределенность - FastCGI обеспечивает возможность выполнять приложения удаленно , что используется для распределенной загрузки и управления внешними Web-сайтами . Доступ к базам данных на стороне клиента . Java-технология Для обеспечения доступа к б азам данных на стороне Web-клиента применяется Java-технология . Java - это современный объектно-ориентированный язык программирования для разработки приложений , созданный специально для распределенных сред . Технология Java позволяет создавать полноценные п риложения для работы с компьютерной графикой , файловыми системами и компьютерными сетями . Одно из важных свойств Java-технологии - это мобильность , суть которой заключается в том , что написанный на Java код может исполняться на любой компьютерной платформ е . Java-приложения компилируются в особый код (так называемый байт-код ), исполняемый на виртуальной машине (Java Virtual Machine). Байт-код является универсальным форматом программы , единым для всех аппаратных платформ - и для рабочих станций , и для больш и х универсальных ЭВМ , и для персональных компьютеров . Java-технология обеспечивает быстрый цикл компиляции и отладки программ . Еще на стадии компиляции проводится выявление многих ошибок и частичная оптимизация программ . Средства разработки , содержащие вир т уальную машину внутри себя , обеспечивают контроль приложений на стадии исполнения (переполнение стека , отслеживание границ массивов , поиск резервов для оптимизации и др .). Пользователю готовых Java-приложений достаточно иметь клиентскую программу , имитиру ющую работу виртуальной машины . Виртуальная машина представляет собой довольно компактный интерпретатор байт-кода Java. Перед первым запуском нового приложения виртуальная машина проверяет его код на принадлежность к байт-коду (на правильность инструкций J ava), безопасность команд для компьютера и локальной сети , соответствие разрешенным операциям , а также на целый ряд дополнительных условий . Это необходимо , поскольку приложения , распространяемые по сети , создаются разными людьми с различными намерениями , п ричем дурные намерения тоже не исключены . Непосредственно перед запуском виртуальная машина производит сборку модулей и устанавливает связи между именами , при этом поиск недостающих модулей производится не только в системе , но и на серверах Internet. Зате м , собственно , и начинается работа приложений . Технология разработки HTML-документа позволяет написать произвольное количество дополнительных Java-программ , откомпилировать их в мобильные коды и поставить ссылки на соответствующие коды в теле HTML-документ а . Такие дополнительные Java-программы называются апплетами (Java-applets). Получив доступ к документу , содержащему ссылки на апплеты , клиентская программа просмотра запрашивает у Web-сервера все мобильные коды . Коды могут начать выполняться сразу после р а змещения в компьютере клиента или быть активизированы с помощью специальных команд . Поскольку апплет представляет собой произвольную Java-программу , то , в частности , он может быть специализирован для работы с внешними базами данных . Опираясь на использова ние классов , апплет может получить от пользователя информацию , характеризующую его запрос к базе данных , в том же виде , как если бы использовался стандартный механизм форм языка HTML, а может применять какой-либо другой интерфейс . Для взаимодействия Java- апплета с внешним сервером баз данных разработан специализированный протокол JDBC, который , фактически , сочетает функции шлюзования между интерпретатором мобильных Java-кодов и интерфейсом ODBC (Open Data Base Connectivity). JDBC - это разработанный JavaS o ft прикладной программный SQL интерфейс API JDBC к базам данных . Этот API позволяет использовать стандартный набор процедур высокого уровня для доступа к различным БД . JDBC базируется на интерфейсе уровня вызовов X/Open SQL CLI - основе ODBC. Прикладной п рограммный интерфейс JDBC реализуется поверх других SQL-API, включая ODBC. То есть , все базы данных , допускающих работу с ODBC, будут взаимодействовать с JDBC без изменений . При использовании JDBC Internet-пользователи подключаются к Web-серверу и загружа ю т HTML-документ с апплетом . Апплет выполняется на клиентской ЭВМ в среде браузера и устанавливает связь с сервером базы данных . Механизм связи с базами данных является классом Java. Архитектура JDBC состоит из двух уровней : JDBC API, который обеспечивает связь между приложением и менеджером JDBC и драйвер JDBC API, который поддерживает связь между JDBC менеджером и драйвером (рис .3). Разработчики имеют возможность взаимодействовать напрямую с ODBC посредством моста JDBC-ODBC. Рис .3. Схема взаимодействия Java-приложений с сервером БД JDBC API представляет собой набор классов (пакет или package) для устан овки соединений с базами данных , создания SQL-выражений , обработки результатов . JDBC-драйвера могут быть написаны на Java и загружены как часть апплета или быть написаны используя "родной " код компьютера (как шлюз к существующим библиотекам СУБД API). При м ером такого шлюза является JDBC-ODBC мост (JDBC-ODBC bridge). Он транслирует JDBC запросы в вызовы ODBC, что позволяет получить доступ к огромному множеству существующих ODBC драйверов . Использование Java-апплетов в общем обеспечивает более гибкое решение .Так как апплет - это часть HTML-документа , то для включения нового апплета нужно всего-навсего перекомпоновать документ без задействия Web-cервера . Апплеты передаются по сети только в тот момент , когда их нужно выполнять . При этом они могут загружаться и з разных мест и после загрузки взаимодействовать друг с другом . С другой стороны , байт-код Java исполняется интерпретатором , а не является откомпилированной на данной платформе программой . Отсюда возникает первый очевидный недостаток - это скорость выполне ния кода , так как интерпретатор работает гораздо медленнее откомпилированной программы . Собственно , и другие свойства технологии (объектная ориентируемость , использование многопоточности , отсутствие адресной арифметики и т.п .) в большинстве случаев при ст а ндартной комплектации оборудования , только тормозят выполнение программы . Основной протокол обмена апплетами - HTTP. Это значит , что они передаются по сети точно также , как и другие ресурсы Website, и приобретают свое особое значение только в момент получ ения их браузером . Учитывая неэффективность реализации HTTP поверх TCP, можно сказать , что и обмен апплетами тоже неэффективен , если для каждого обмена устанавливается свое TCP-соединение . В любом случае загрузка страниц с Java происходит гораздо медленне е , чем без Java. Java-технология является еще технологией , находящейся в стадии разработки . Интерфейс взаимодействия прикладных программ CGI имеет уже достаточный опыт в применении для обработки данных и доступа к БД . По сравнению с Java, он является не то лько отлаженным механизмом , но и более простым и удобным средством для разработчиков CGI-программ , так как они могут быть созданы на любом языке , имеющим средства работы со строками . Выбор средства доступа к базам данных во многом определяется не только э ффективностью того или иного механизма , но также и наилучшим его сопряжением с соответствующей СУБД . От того , какие средства предоставляет сама СУБД для доступа к своим базам данных из внешних прикладных программ может зависеть выбор предпочтения . Сейчас р азработано достаточно много коммерческих СУБД , но все же хочется обратить внимание на свободно распространяемые продукты , которые часто оказываются не менее эффективными , но из-за "неизвестности " не достаточно широко используются . Одним из таких некоммерч е ских продуктов является СУБД POSTGRES95, которая устанавливается на большинстве существующих платформ -DEC Alpha AXP on OSF/1 2.0, HP PA-RISC on HP-UX 9.0, i386 Solaris, SUN SPARC on Solaris 2.4, SUN SPARC on SunOS 4.1.3, DEC MIPS on Ultrix 4.4, Intel x86 on Linux 1.2 and Linux ELF, BSD/OS 2.0, 2.01, 2.1, IBM on AIX 3.2.5, SGI MIPS on IRIX 5.3, DG/UX 5.4R3.10 и др . Постреляционная СУБД POSTGRES95 СУБД POSTGRES95 была спроектирована и разработана в Калифорнийском университете г . Беркли под руководством изве стного специалиста в области баз данных профессора Стоунбрейкера , который в 1975-1980 гг . создал довольно популярную реляционную СУБД Ingres. Направление POSTGRES принадлежит к числу так называемых постреляционных систем - к следующему этапу в развитии ре л яционных СУБД . В настоящее время основным предметом критики последних является не их недостаточная эффективность , а присущая этим системам некоторая ограниченность (прямое следствие простоты ) при использовании в нетрадиционных областях , в которых требуютс я предельно сложные структуры данных . Другим , часто отмечаемым недостатком реляционных баз данных , является невозможность адекватного отражения семантики предметной области . Поэтому современные исследования в области постреляционных систем , главным образом, посвящены устранению именно этих недостатков , и во многом требования к этим системам означают просто необходимость реализации свойств , отсутствующих в большинстве текущих реляционных СУБД . В их число , например , входит полнота системы типов , поддержка иер а рхии и наследования типов , возможность управления сложными объектами и т.д . СУБД POSTGRES95, являясь постреляционной системой , сохраняет основные свойства реяционных СУБД и в то же время имеет свои , отличные от других , возможности . СУБД POSTGRES95 поддерж ивает темпоральную модель хранения и доступа к данным . То есть для любого объекта данных , созданного в момент времени t1 и уничтоженного в момент времени t2, в БД сохраняются (и доступны пользователям ) все его состояния во временном интервале (t1,t2). Обы ч ные же БД хранят мгновенный снимок модели предметной области , и любое изменение в момент времени t некоторого объекта приводит к недоступности этого объекта в предыдущий момент времени . Хотя , на самом деле , в большинстве развитых СУБД предыдущее состояние объекта сохраняется в журнале изменений , но осуществления доступа со стороны пользователя нет . В связи с этим , в POSTGRES95 пересмотрен механизм журнализации изменений , откатов транзакций и восстановления БД после сбоя . Особенность системы управления памя тью заключается в том , что не ведется обычная журнализация и мгновенно обеспечивается корректное состояние БД с утратой состояния в оперативной памяти . Также система управления памятью поддерживает исторические данные , соответствующие возможности работы с которыми заложены в язык POSTQUEL. Запросы могут содержать выборку данных в определенное время , в определенном интервале времени . Например , результатом запроса SELECT city, population FROM cities['epoch','now'] WHERE city='Moscow'; будет являться след ующая таблица : city population Moscow 7 360 000 Moscow 8 950 000 Кроме этого , имеется возможность создавать версии отношений и допускается их последующая модификация с учетом изменений основных вариантов . Основное решение этих аспектов состоит в том , что при модификации кортежа изменения производятся не на месте его хранения , а заводится новая запись , куда помещаются измененные поля . Эта запись , содержащая также и данные , характеризующие транзакцию , производившую изменения (в том числе и время ее заве р шения ), подшивается в список к изменявшемуся кортежу . Одним из основных положений реляционной модели данных является требование нормализации отношений : поля кортежей могут содержать лишь атомарные значения . Приведение исходного табличного представления пр едметной области к первой нормальной форме является основным шагом в процессе проектирования реляционной базы данных . В СУБД POSTGRES95 реализована "ненормализованная " реляционная модель данных , которая допускает хранение в качестве элемента кортежа много м ерных массивов фиксированной и переменной длины , и других данных , в том числе абстрактных , определенных пользователями типов : CREATE TABLE salary (name text,pay_by_quarter int4[ ], schedule char16[ ][ ]); Это свойство POSTGRES95 сближает ее со свойств ами объектно-ориентированных СУБД , хотя семантические возможности модели данных POPSTGRES95 существенно слабее . Язык запросов СУБД POSTGRES95 - POSTQUEL- является вариантом нового стандарта языка SQL-3. Он имеет операторы для определения схемы базы данных (CREATE TABLE, ALTER TABLE), манипулирования данными (UPDATE- заменить , DELETE - удалить , SELECT- выбрать , INSERT- вставить и др .), операторы управления транзакциями , предоставлений и ограничений доступа и др . POSTQUEL, кроме этого , предоставляет много д о полнительных возможностей . В их число входят расширенная система типов (кроме обычных типов int, float, real, smallint, char(N), varcha(N), date, time и др . реализована возможность создания пользователями произвольного числа своих типов ), поддерживается и е рархия и наследование классов , предоставляется возможность определения собственных функций , операторов и агрегатов . В таблицах могут храниться данные размером более 8 KB. Это позволяет осуществлять , так называемый , интерфейс больших объектов (Large Object s Interface), который применяет файл-ориентированный доступ к данным , объявленных как тип large. POSTQUEL не поддерживает подзапросы , но они могут легко быть осуществлены с помощью самостоятельно написанных SQL-функций . POSTQUEL поддерживает два типа функц ий : SQL-функции и функции , написанные на языке программирования , например , на Си . Кроме функций , пользователь может создавать свои агрегаты и операторы . POSTGRES95 позволяет легко вводить новые структуры , используя не физическую , а логическую модель хране н ия данных . В системных каталогах POSTGRES95, в отличие от стандартных реляционных систем , хранится информация не только об отношениях и атрибутах , но также и информация о типах , функциях , методах доступа и т.п . В POSTGRES95 системные каталоги представлены следующими классами : pg_database - базы данных ; pg_class - отношения ; pg_attribut - атрибуты ; pg_proc - процедуры (и на Си , и на SQL); pg_type - типы ; pg_aggregate - функции и агрегаты ; и др . Каждый класс располагается в файле с соответствующим именем , ко т орое начинается с pg_, куда помещаются все вносимые пользователем изменения при создании таблиц , типов , функций и т.д . Между классами установлены отношения , которые позволяют связывать различные структуры и осуществлять внутренние операции между ними. Архи тектура СУБД POSTGRES95 Архитектура СУБД POSTGRES95 основана на модели "клиент-сервер ". Сессия с СУБД состоит из следующих взаимодействующих процессов : · postmaster - управляющий процесс-демон , который руководит взаимодействием между внешними и внутренним и процессами ; он выделяет совместно используемый буффер динамической памяти и выполняет другие инициализации во время запуска . · postgres - внутренний серверный процесс базы данных , исполняющий запросы клиента . Postmaster всегда запускает новый postgres-п роцесс для каждого клиентского приложения . Этот серверный процесс выполняется на машине сервера . · внешняя прикладная программа , которая может находиться на другом компьюторе (например , рабочей станции ). Она соединяется с postgres через postmaster. Один раз запущенный процесс-демон postmaster управляет установленным набором баз данных на серевере . Внешняя прикладная программа , желающая получить доступ к одной из этих баз данных , вызывает библиотеку функций прикладного программного интерфейса LIBPQ (рис .4 ) . С помощью этих функций запрос по сети передается postmaster'у , который порождает серверный процесс и соединяет внешнюю программу с сервером . С этого момента клиентские и серверные процессы взаимодействуют без помощи postmaster'a. Таким образом , postmast e r постоянно работает , ожидая запросов , в то время , как происходят и завершаются соединения с внешними приложениями . Прикладной программный интерфейс LIBPQ позволяет одной клиентской программе совершать во время одной сессии множественные соединения с серв е ром БД . Но тем не менее , внешняя программа - это однопотоковый процесс . Многопоточность процессов библиотекой LIBPQ не поддерживается . Другой особенностью архитектуры СУБД POSTGRES95 является то , что postmaster и postgres серверные процессы всегда выполня ю тся на одной и той же машине - сервере базы данных , тогда как внешние программы могут находиться на любых машинах сети . Рис . 4. Схема взаимодействия процессов POSTGRES95 Таким образом , СУБД POSTGRES95 позволяет осуществлять доступ клиентским прикладным программам к своим базам данных не только в локальном , но и удаленном режиме . Но система безопасности СУБД не предоставляет эту возможность всем пользователям . Для разрешения удаленного соединения с базами данных необходимо установить режим аутентификации для данного пользователя . По умолчанию в файле конфигурации этот режим отключен , и доступ разрешен то л ько программам , расположенным в директории на машине сервера БД . Для установления аутентификации необходимо в файле pq_hba указать имена машин , с которых возможен удаленный доступ прикладным программам , и соответствующие базы данных , к которым разрешается удаленный доступ : #
all 127.0.0.1 0.0.0.0 all 194.85.135.66 0.0.0.0 После этого необходимо произвести заново компиляцию системы . Доступ к базам данных под управлением СУБД POSTGRES95 В СУБД POSTGRES95 реализованы две основные возможности доступа к своим базам данных : · через psql - интерфейс командной строки командной оболочки Shell; · из прикладной про граммы , написанной на языке программирования Си (или другом языке ) с использованием функций прикладного интерфейса LIBPQ. Psql - это интерактивный терминальный монитор , позволяющий пользователю формулировать , редактировать и выполнять наборы команд - опер аторов языка POSTQUEL. Он запускается в режиме командной строки ОС UNIX с указанием имени базы данных : % psql polyn Пользователь может непосредственно из командной строки монитора вводить одну за другой SQL-команды , а может передавать запрос в виде файла с SQL-операторами через командную строку ОС UNIX: % psql <> Интерфейс командной строки psql обычно используют администраторы баз данных для создания , модификации и удаления отношений , заведения и предоставления прав новым пользователям и т.д . Он достаточно удобен для ввода больших массивов информации в базу данных и вывода простых отчетов . Интерактивный монитор не позволяет генерировать сложные формы отчетов , так как с его помощью нельзя сделать разборку полученного результата для формирован и я новых запросов , и поэтому его использование в прикладных программах достаточно ограниченно . LIBPQ - прикладной программный интерфейс POSTGRES95. Он представлен набором библиотечных функций (подпрограмм ), которые позволяют клиентским программам посылать запросы серверу СУБД и получать от него соответствующие результаты . Для этого в прикладную программу включают главный файл библиотеки libpq-fe.h , встраивают функции LIBPQ и производят компиляцию кода программы с библиотеками POSTGRES95. Схема доступа к б а зам данных из внешних программ достаточно простая . С помощью специальной функции PQsetdb устанавливается TCP-соединение по определенному порту (как правило , - 5432) прикладной программы с процессом-демоном postmaster'ом . При этом функции передаются параме т ры значений имени базы данных , IP-адреса сервера , порта соединения . Далее при успешном соединении происходит выполнение в рамках функции PQexec SQL-операторов языка запросов POSTQUEL - открытие транзакции с базой данных , выполнение запроса и закрытие тран з акции . После этого происходит завешение соединения с базой данных . При выполнении запроса по выбору данных из БД POSTGRES95 создает временную таблицу , в которую помещает полученный результат . Используя SQL-операторы , связанные с курсорами , и специальные ф у нкции LIBPQ по работе с кортежами , полями отношений , достаточно просто осуществляется доступ к элементам результирующей таблицы , что приводит к генерации произвольных отчетов по запросам пользователей . Ниже приведен фрагмент Cи-программы , реализующей запр о с к базе данных "polyn": pghost= "ns.polyn.kiae.su" pgport= "5432"; pgoptions=NULL; pgtty=NULL; dbname= "polyn" /*установка соединения с базой данных */ conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbname); /* проверка статуса выполнения соединения */ if (PQstatus(conn)== CONNECTION_BAD) printf("connection to database '%s' failed", dbname); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); /* начало транзакции с БД */ res=PQexec(conn,"BEGIN"); /* проверка статуса вы полнения функции */ if (PQresultStatus(res)!=PGRES_COMMAND_OK) printf("BEGIN command failed"); PQclear(res); PQfinish(conn); exit(1); PQclear(res); /* выполнение SQL-опреатора установки курсора на результат запроса выбора по ля isotop из отношения isotop */ res=PQexec(conn,"DECLARE myportal CURSOR FOR select isotop.isotop from isotop "); /* выполнение оператора чтения по курсору */ res=PQexec(conn,"FETCH ALL in myportal"); /* определение количества кортежей и атрибутов в рез ультирующей таблице */ ntups = PQntuples(res); nflds = PQnfields(res); /* вывод имен атрибутов */ for (i=0; i %s ",PQfname(res,i)); /* вывод элементов результирующего отношения */ for(i=0; i%s\n",PQgetvalue(res,i,j)); PQclear(res); /* закр ытие курсора */ res=PQexec(conn,"CLOSE myportal"); PQclear(res); /* закрытие транзакции */ res=PQexec(conn,"END"); PQclear(res); /* закрытие соединения */ PQfinish(conn); Для осуществления доступа к базам данных POSTGRES95 из World Wide Web можн о использовать любые описанные выше механизмы - CGI, FastCGI, API, Java. Например , API-модуль сервера Apache PHP поддерживает взаимодействие с библиотеками POSTGRES95, а также разработаны два ODBC-драйвера , PostODBC и OpenLink ODBC, которые упрощают разра б отку программ-шлюзов . Но все же не стоит забывать и о достаточно удобном и простом средстве построения интерактивных приложений - Common Gataway Interface, который не требует никакого дополнительного программного обеспечения и достаточно легок в применени и . В качестве примера использования CGI для доступа к базам данных под управлением POSTGRES95 можно привести созданную для РНЦ "Курчатовский институт " информационную систему базы численных данных о радиационном загрязнении 30-км зоны вокруг ЧАЭС "Проба " на Web-сервере Apache. Создание информационной системы было направлено на выполнение следующих задач : 1. Ввод новой информации в БД для ведения базы данных . 2. Генерация отчетов по запросам пользователей . Структура взаимодействия программного обеспечения и нформационной системы выглядит следующим образом (рис . 5). Согласно технологии WWW, сервер протокола HTTP Apache, работающий , как правило , по 80-му порту стека протоколов TCP-IP, принимает запросы от пользователя с помощью клиентских программ просмотра ги п ертекстовых документов (Netscape Navigator, Internet Explorer, Lynx и др .). Формализованный доступ к данным в рамках информационной системы осуществляется на основе HTML-форм . С их помощью введенные в поля формы данные передаются на сервер Apache, который вызывает указанную в форме CGI-программу для обработки этих параметров и передает ей управление . CGI-скрипт с помощью функций прикладного интерфейса СУБД POSTGRES95 преобразует данные в SQL-запрос , устанавливает соединение с сервером СУБД и передает ему з а прос на выполнение . Сервер СУБД выполняет запрос , обращаясь к БД "Проба " и возвращает результат CGI-скрипту , который , в свою очередь , формирует "на-лету " HTML-документ и через сервер Apache передает его клиенту . Рис . 5. Структура взаимодействия программного обеспечения информационной системы Все навигационные HTML-страницы информационной системы сгенери рованны CGI-программами , так как все HTML-формы - для введения поисковых критериев (рис .6) и ввода новых данных для обновления БД (рис .7)- содержат значения из файлов словарей , что обеспечивает более удобный интерфейс и более быстрое заполнение форм . Для данной информационной системы недостатки CGI, связанные с порождением нового процесса не так существенны - потеря происходит лишь в незначительных затратах времени на ожидание ответа сервера . Но если необходима аутентификация каждого пользователя и его ве д ение во время сеанса взаимодействия с базой данных , то , на взгляд автора , FastCGI является наилучшим решением этого вопроса . То есть использование того или иного средства зависит прежде всего от поставленной задачи для реализации - что необходимо в первую очередь обеспечить при ее решении Рис . 6. Интерфейсная страница для поиска данных Рис . 7. HTML-страница для обновления базы данных Заключение Таким образом , на сегодняшний день существует достаточно средств , обеспечивающих как хранение накопленных массивов информации , так и осуществляющих удобный доступ к ним через интерфейс World Wide Web. И не всегда их необходимо приобретать по коммерческим расценкам . Internet предоставляет много ресурсов бесплатн о - необходимо иметь только желание и определенную настойчивость для их получения . Свободно распространяемая СУБД POSTGRES95 является тому очевидным примером . А средства доступа из WWW выбирайте сами - все они достаточно функциональны и выбор зависит в осн о вном от целей , которые вы преследуете . Список литературы 1. С.Д . Кузнецов . Введение в СУБД . "СУБД " 2-3,1996г . 2. С.Д.Кузнецов . Доступ к ба зам данных с использованием технологии WWW . "СУБД " 5-6, 1996 г . 3. http://oozoo.vnet.net/postgres95/ 4. http://www.fastcgi.com
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Если вы уверены, что магнитная буря бред, подарите на юбилей супруге,
вместо давно обещанного брильянтового колечка, магнитик на холодильник.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Средства доступа к базам данных", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2017
Рейтинг@Mail.ru