Введение
в базы данных
Последнее,
что мы рассмотрим в данной главе, — это базы данных и работу с ними. Поскольку
львиная доля серверных программ работает именно с базами данных, нам эти знания
очень пригодятся. Конечно, мы не будем рассматривать все технологии баз данных
во всех подробностях, а, как и раньше, ограничимся кратким ликбезом. Вы сами
можете поискать нужные книги и тексты в Сети, если заинтересуетесь этим.
Что
такое база данных? Ничего особенного, обычный файл или группа файлов, содержащих
данные, организованные особым образом. Если база данных состоит из множества
файлов, она все равно остается единым целым. Данные, содержащиеся в базе, обрабатываются
при помощи особой программы, называемой процессором баз данных. Процессор баз
данных может быть как совершенно отдельной программой, работающей на том же
компьютере, что и использующая данные программа, так и входить в ее состав.
Базы
данных могут быть организованы по-разному. Но подавляющее большинство баз данных,
эксплуатируемых в настоящее время, являются реляционными. Данные в таких базах
организуются в виде таблиц. Каждая такая база данных может включать в себя одну
или большее количество таблиц; сложные базы данных, как правило, имеют много
таблиц, связанных между собой.
Каждая
таблица в свою очередь состоит из набора строк, разделенных на ячейки, причем
в каждой ячейке содержатся данные определенного типа: текст, числа, логические
величины, даты и т. д. Строки таблиц баз данных называются записями, а ячейки,
на которые делится каждая запись, — полями. Как уже говорилось, каждое поле
имеет определенный тип и обязательно снабжено именем, по которому программа,
работающая с данными, и осуществляет доступ к этому полю.
На
рис. 15.1 приведен пример такой таблицы. Как видите, эта таблица имеет три поля:
- NAME — название
технологии создания серверных страниц, текстовое;
- PRICE — цена
программы-обработчика, числовое;
- USING — поддерживается
ли эта технология в настоящее время, логическое ("да-нет").
Кроме
того, эта таблица имеет четыре записи, соответствующие технологиям, поддерживаемым
Dreamweaver MX: ASP, ASP.NET, PHP и ColdFusion.
Очень
часто одно из полей таблицы делается ключевым. Значение ключевого поля используется
для однозначной идентификации какой-либо записи. Разумеется, ключевые поля всех
записей таблицы должны в этом случае содержать уникальные значения. Иногда ключевое
поле называется полем счетчика.
Рис.
15.1. Пример таблицы, входящей в базу данных
Как
получить доступ к отдельному полю, вы уже знаете, — по его имени. А как получить
доступ к нужной записи?
Дело
в том, что в один момент времени программа, использующая данные базы, может
работать только с одной записью, называемой текущей. Она может извлекать данные
из полей этой записи и, возможно, изменять их. Но чтобы получить данные другой
записи, программа должна выполнить команду перемещения. При этом процессор баз
данных перемещает особый указатель текущей записи на нужную запись, и программа
получает возможность работать с ней.
Также
программа может использовать поиск нужной записи по какому-либо критерию. Очень
часто такой поиск выполняется по значению ключевого поля.
Также
программа имеет возможность добавлять новые и удалять ненужные записи таблицы.
Чтобы добавить новую запись, программа выполняет команду добавления записи и
заносит в ее поля необходимые данные. Чтобы удалить запись, программа сначала
должна сделать ее текущей, а потом выполнить команду удаления.
В
общем случае, последовательность работы с данными, содержащимися в базе, выглядит
так:
- Программа
открывает базу данных, выполняя операцию открытия. Это необходимая операция,
без которой невозможно получить доступ к базе.
- Программа
открывает нужную таблицу базы. После этого процессор возвращает ей так называемый
набор записей (по-английски -- recordset), с которым и работает программа.
- Программа
выполняет собственно работу с данными.
- Программа
закрывает таблицу, после чего процессор убирает соответствующий этой программе
набор записей из памяти.
- Программа закрывает
базу данных, разрывая все связи с ней.
Учтите,
что две последние операции — закрытие таблицы и базы данных -выполнять так же
необходимо, как и открытие. Дело в том, что набор записей и прочие структуры
данных, формируемые процессором в памяти для программы, работающей с данными,
отнимают много системных ресурсов. Поэтому, как только вы закончили работу с
таблицей или базой данных, сразу же закройте ее, чтобы освободить ресурсы для
других пользователей.
В
последнее время большую популярность- приобрели серверы баз данных. Это обычные
процессоры данных, но реализованные в виде серверных программ и работающие на
серверных компьютерах. Их преимущества перед обычными процессорами данных:
- они работают
на серверном компьютере, который, как правило, мощнее клиентского, поэтому
их производительность выше;
- они обеспечивают
большую защищенность данных за счет разграничения доступа и некоторых других
механизмов;
- они просто
мощнее, в смысле, поддерживают больше различных нововведений, появившихся
в последнее время.
Чтобы
получить доступ к серверу баз данных и самим данным, клиентская программа посылает
ему особые команды. Для составления таких команд был разработан язык описания
запросов SQL (Structured Query Language -язык структурированных запросов). С
помощью команд, составленных на этом языке, клиентская программа может открыть
нужную таблицу, считать данные, добавить, изменить, удалить запись и, в конечном
счете, закрыть базу данных, когда нужда в ней отпадет.
Серверы
баз данных применяются сейчас очень часто, а в Web-программировании — почти
повсеместно. К наиболее популярным можно отнести Oracle, Microsoft SQL Server,
Sybase, мощнейший IBM DB2, Borland InterBase (в России он продается под названием
IBase), набирающий популярность PostgressSQL и бесплатный сервер MySQL, распространяющийся
с открытыми исходными текстами. Последний сервер, кстати, очень часто используется
в связке с Web-сервером Apache и технологией серверных страниц РНР.
На
этом рассказ о базах данных и о серверном программировании можно считать законченным.
Содержание раздела