Воспользуйтесь поиском к примеру Реферат        Грубый поиск Точный поиск
Вхід в абонемент


Интернет реклама УБС






Базы данных в Internet

Базы данных были естественно соединены с WWW и CGI изначально Web. Фактически, Web является необъятной всемирной базой данных, коллекцией данных и ресурсов, доступных с помощью щелчка мышкой.

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

Так что в течение транзакции с базой данных взаимодействие в реальном времени обычно не требуется, одной из главных препятствий CGI (отсутствие постоянной связи) избегают сразу. Кроме того, размер базы данных почти не влияет на скорость транзакции, так как к клиенту посылаются только результаты запроса. (Любой, кто использовал один из поисковиков Web - например, AltaVista или Lycos, может подтвердить это.)

Хотя любой вид базы данных доступен через CGI, несколько типов баз данных, стали очень популярными на Паутине:

Небольшие текстовые базы данных. Они являются самыми легкими для создания и полезными для многих малых и средних задач. Эти базы данных просто файлами ASCII с разграничением или записями фиксированной длины. Адресные книги, списки, и такие другие базы данных с ограниченным рядом элементов хорошо соответствуют требованиям именно этого метода.

Базы данных Web. Естественными кандидатами для баз данных Web является непосредственно Web. Службы, которые контролируют большие порции Паутины (например, Usenet, Gopher и т.д.) возникают очень часто. Это можно применить к локальным сетям и единых машин. Индексный программное обеспечение, вроде freeWais или Ice может создать базу данных полного сайта, который затем будет доступен через программы CGI.

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

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

Интерфейсы Баз данных

Для эффективного сочетания вашей базы данных с Web без каких-либо потерь, CGI должен использоваться как в интерфейсе так и в реализации взаимодействия базы данных.

Интерфейс CGI

Во-первых, необходимо рассмотреть то, как пользователь собирается ввести запросы к базе данных. Форма HTML является наиболее общим путем для пользователя, чтобы представить информацию, хотя есть и другие пути. Как пример, рассмотрим интерфейс в адресную книгу. Простая форма могла бы быть сходной с этим:

My Address Book

Welcome to my address book


To find addresses that match a certain category, fill in that category and
then press 'submit'.

Name:

Phone:

Street Address:

City: State:
Zip:

Эта форма вызывает CGI-скрипт address.cgi. Это интерфейс взаимодействия с базой данных. Намерение интерфейса - забрать данные из формы, проанализировать их и передать запрос к базе данных. Если база данных текстовым ASCII-файлом, интерфейс также и реализацией. Он должен сделать поиск, интерпретировать данные, и затем передать результаты обратно к клиенту. Для серверов баз данных (включая такие индексы Web, как freeWais и Ice), интерфейс должен предоставить запрос форму, которую сервер поймет, и затем передать запрос к серверу. CGI-программа должна затем забрать результаты и передать их к пользователю. Очень часто в этом случае интерфейсы и реализации содержащихся в той же программе. На системах, которые поддерживают это (UNIX, Amiga, и другие), для этого можно применять ветвления процесса. В Windows-среде, необходимы специальные программы, которые используют OLE или некоторый другой тип связи.

Чтобы вернуться к примеру адресной книги, можно создать в данный момент программу CGI, которая ответит запросу клиента.

Во-первых, нам нужно знать формат базы данных непосредственно. Малый текстовый формат достаточно для наших потребностей. Мы должны использовать разграничены данные, хотя записи фиксированной длины должны также работать. Запись примера следует:

0: Elmer J. Fudd :555-1234: 42 Jones Lane: Chuckville: CA: 90210

Этот формат будет хорошо осведомлен в любого, кто видел файл пароля UNIX. Есть два препятствия к этому формату. Сумма всех полей не может превысить никаких ограничений линейной длины на любой системе, которую вы используете (в нашем случае, это не должно быть проблемой). Также, разделитель (двоеточие) не должен появляться в любом поле, или это будет воспринято как начало нового поля. В идеальном мире, это не должно быть проблемой (, если не кто-нибудь, кто живет там "Нью-Йорк Город"). Фактически, люди делают памылкы. Таким образом, нужно быть ознакомленным с этой потенциальной проблемой.

Теперь, когда мы знаем форму базы данных, мы можем начать программу CGI, чтобы собрать информацию от формы. Любой язык может использоваться для написания CGI, но в этом примере используется Perl для использования возможностей обработки текста.

#! /bin /perl

require cgi_head; # Достать данные из формы и распечатать заголовок.

!!

Во всех CGI, написанных на Perl в этом разделе, модуль cgi_head.pm используется для сбора информации от формы и напечатать необходимый заголовок HTML. Этот модуль размещает вход формы с именем 'foo' в ассоциативный вход с именем $ FORM {'foo'}. Существует несколько свободной продаже программ для нескольких языков, для выполнения этого, включая CGI.pm для Perl:

Теперь, когда данные из формы были прочитаны, надо прочитать записи в базе данных напрямую. Так как мы используем разграниченную базу данных, легче прочитать полной базы данных. База данных поля фиксированной длины должна дать нам возможность продвигаться по базе данных без чтения информации, но этот метод имеет собственные препятствия (наиболее очевидно то, что данные не должны превышать неизменную длину). Мы читаем базу данных, как плоский ASCI файл и анализируем это полинийно, используя удобную Perl-конструкцию while () <>.

!!

Этот пример требовал Perl 5.001 или выше, из-за использования обращений, которые не включались в Perl 4 (или раньше). Perl 5 содержит множество улучшений и новых возможностей и


Страницы: 1 2 3 4 5 6