Четверг, 16.05.2024, 14:30
DigitalBox
Приветствую Вас Гость | RSS
Главная Использование базы данных Регистрация Вход
Меню сайта

Использование базы данных



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


Системы управления базами данных

Базы данных (database) напоминают электронную картотеку, в которой хранится упорядоченная информация, извлекаемая по мере необходимости. База данных может быть небольшой, с простой структурой данных, например база данных имен, адресов и телефонных номеров всех ваших друзей. В свою очередь, в базе данных Amazon содержится огромное количество информации, которая имеет чрезвычайно сложную структуру.

Формально базу данных можно определить как файл или группу файлов, в которых хранятся данные. Доступ к этим данным можно получить с использованием системы управления базами данных (СУБД) (DBMS — Database Management System). В настоящее время практически все СУБД являются реляционными (relational), поддерживающими хранение данных в наборе взаимосвязанных таблиц.

Одно из значительных преимуществ языка РНР заключается в поддержке более двадцати возможных СУБД. К наиболее известным относятся следующие:

  • IBM DB2
  • Informix
  • Ingres
  • Microsoft SQL Server (MS SQL)
  • mSQL
  • MySQL
  • Oracle
  • PostgreSQL
  • Sybase

Кроме того, язык PHP поддерживает также и стандарт ODBC (Open Database Connectivity — открытый интерфейс доступа к базам данных) компании Microsoft. Его поддерживают практически все реляционные СУБД, особенно те из них, которые предназначены для использования в операционной системе Windows. Используя поддержку ODBC в языке РНР, можно обращаться к таким базам данных, как DB2 и Access. При использовании стандарта ODBC для взаимодействия с базой данных необходимо установить соответствующий драйвер. Более подробную информацию по этому вопросу можно получить в соответствующей документации.

После установки СУБД к ней можно обращаться из сценариев РНР, в которых информацию нужно сохранить или извлечь из базы данных. Выбор и установка системы управления базами данных выполняется независимо от РНР. После установки СУБД следует проверить ее работоспособность и научиться ее использовать. После этого можно приступать к ее использованию в сценариях РНР.

Выбор реляционной СУБД зависит от реальных потребностей. Одна из них может прекрасно подходить для решения одной задачи, тогда как при решении другой задачи, возможно, потребуется воспользоваться совершенно другим программным обеспечением. Следует взвесить все "за" и "против" и лишь после этого приступать к выбору системы управления базами данных, которая будет использоваться впоследствии. При выборе СУБД следует учитывать следующее:

  • Стоимость. Стоимость СУБД может быть достаточно разной. Она может быть как бесплатной, так и достаточно дорогостоящей. Так, системы управления базами данных MySQL, mSQL и PostgreSQL были разработаны как открытое программное обеспечение и, следовательно, являются бесплатными. Другие СУБД, например Sybase, MS SQL Server и Oracle, являются коммерческим программным обеспечением, приобретение которого связано с существенными денежными затратами.
  • Предоставляемые возможности. Различные системы управления базами данных предоставляют разные возможности. Например, система mSQL обладает ограниченным набором функций, однако в определенных условиях их может оказаться вполне достаточно. С другой стороны, Oracle позволяет выполнить практически любые действия, кроме, возможно, управления автомобилем. Кроме того, не следует забывать и о том, что чем больше возможностей предоставляет СУБД, тем больше она потребляет ресурсов и является более дорогостоящей. Поэтому не стоит устанавливать компоненты, которые в дальнейшем наверняка не понадобятся.
  • Потребляемые ресурсы. Некоторые СУБД потребляют гораздо больше ресурсов (например, дискового пространства и памяти), чем другие. Так, системы mSQL и MySQL не требуют больших ресурсов, а для функционирования Oracle в зависимости от установок может потребоваться достаточно много вычислительных ресурсов.
  • Поддержка. Вне всякого сомнения, при использовании коммерческого и открытого программного обеспечения предоставляется различная техническая поддержка.
  • Коммерческое программное обеспечение. Компании-разработчики предоставляют различную техническую поддержку потребителям своего коммерческого программного обеспечения. Иногда это связано с дополнительными денежными затратами, в других случаях— с потерей времени на ожидание связи со специалистами. Но в любом случае компания-разработчик всегда предоставляет помощь и помогает справиться с возникающими проблемами.
  • Программное обеспечение с открытым кодом. При использовании открытого программного обеспечения нельзя воспользоваться прямой телефонной связью с его разработчиком. Его развитие обеспечивается сообществом пользователей. При возникновении проблем можно обратиться к соответствующему списку рассылки или форуму. Иногда это позволяет получить ответ гораздо быстрее, чем при телефонном звонке в службу технической поддержки компании-разработчика.

После выбора системы управления базами данных необходимо установить соответствующее программное обеспечение, а затем научиться его использовать. Кроме того, нужно уметь проектировать и создавать базы данных, к которым впоследствии будут обращаться сценарии РНР.

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

Пусть, например, необходимо разработать интерактивный каталог товаров, который позволял бы клиентам делать заказы. Для этого можно создать базу данных Catalog (Каталог), в состав которой входила бы таблица Product (Товар). Каждая строка таблицы Product соответствует одному товару. В данном случае товаром являются рубашки. Тогда каждый столбец будет соответствовать их различным характеристикам: название (тенниска, белая рубашка к вечерь ему костюму, спортивная рубашка с короткими рукавами и т.д.), описание, размер, цвет и т.п.

При создании таблицы каждому столбцу нужно присвоить название, т.е. имя поля (field папе). Так, таблица Product будет содержать столбцы со следующими именами:

  • Туре (тип)
  • Description (описание)
  • Size (размер)
  • Color (цвет)
  • Price (цена)

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

Кроме проектирования и создания базы данных, необходимо решить также и вопросы, связанные с обеспечением безопасности. Обеспечение требуемого уровня защиты данных является одной из отличительных возможностей системы управления базами данных. В то же время это может существенно усложнить сохранение и извлечение информации.

Так, доступ к данным может получить лишь зарегистрированный пользователь. При этом, если база данных размещается на сервере Web-хостинговой компании, ее администраторы должны создать и предоставить соответствующие учетные записи. Если же вы сами обеспечиваете работоспособность системы управления базы данных, все эти действия придется научиться делать самостоятельно.

После выполнения всех действий по проектированию и созданию базы данных можно приступать к ее использованию. Соответствующие средства языка РНР позволяют существенно упростить решение этой задачи.


Поддержка баз данных в РНР

Для взаимодействия с базами данных в языке РНР предназначены специальные функции. Причем каждой поддерживаемой СУБД соответствует свой собственный набор средств. Например, для взаимодействия с базой данных MySQL версии 4.0 или ниже следует воспользоваться функциями mysgl_connect() и mysql_query(), а для подключения к базе данных MySQL версии 4.1 или выше — mysgli_connect () и mysqli_cruery(). Для работы с базой данных Sybase предназначены функции sybase_connect() и sybase_guery().

В РНР по умолчанию поддерживается стандарт ODBC, поддержку других баз данных нужно активизировать самостоятельно. При работе с Web-хостинговой компанией такую поддержку должны обеспечить ее администраторы. Если же база данных размещается на вашем компьютере, все требуемые настройки придется выполнить самостоятельно (подробности — в следующем разделе).


Поддержка баз данных в системах Unix/Linux/Mac

Поддержка баз данных обеспечивается при использовании в процессе компиляции модуля РНР соответствующего параметра.  Например, для включения поддержки mSQL в процессе компиляции нужно воспользоваться командой:

./configure --with-msql=/usr/msgl

В таблице ниже приведены параметры, включающие поддержку других систем управления базами данных. Помните о том, что если база данных устанавливается в каталоге по умолчанию, параметр DIR указывать не нужно. Например:

./configure --with-msql

СУБДПараметр компиляцииЗначение DIR по умолчанию
IBM DB2with-ibm-db2=DIR/home/db2instl/sqllib
Informixwith_informix=DIRЗначение по умолчанию отсутствует
Ingres IIwith-ingres=DIR/II/ingres
mSQLwith-msql=DIR/usr/local/Hughes
MySQL 4.0 или нижеwith-mysql=DIR/usr/local/mysql
MySQL 4.1 или вышеwith-mysqli=DIRЗначение по умолчанию отсутствует. Значение параметра DIR должно совпадать с путем к файлу mysql_config, который устанавливается вместе с MySQL 4.1 или выше
Oracle 7 или более новые версииwith-oci8Значение по умолчанию содержится в переменной окружения ORACLE_HOME
Ранние версии Oraclewith-oracle=DIRЗначение по умолчанию содержится в переменной окружения ORACLE_HOME
PostgreSQLwith-pgsql=DIR/usr/local/pgsql
Sybasewith-sybase=DIR/home/Sybase
Sybase-CTwith-sybase-сt=DIR/home/sybase

После компиляции модуля РНР с соответствующим параметром нужно удостовериться в успешном завершении процесса компиляции. Это можно осуществить с помощью функции phpinfо(), которая предоставит всю необходимую для этого информацию.


Поддержка баз данных в системе Windows

Включение режима поддержки баз данных в модуле РНР для системы Windows предполагает выполнение двух следующих этапов:

  1. Копирование одной из динамически подключаемых библиотек (Dynamic Link Library — DLL) в основной каталог.
  2. Активизация режима поддержки базы данных.

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


Копирование dll-библиотеки

Все необходимые dll-библиотеки можно найти в архивном zip-файле, который ранее был загружен с Web-узла РНР.  После установки в каталоге, в котором был установлен пакет PHP, можно найти также и каталог ext (например, c:\php\ext). Именно в этом каталоге и будут содержаться динамические библиотеки поддержки баз данных.

Скопируйте требуемый dll-файл в основной каталог РНР, такой как с:\php. Далее, для активизации поддержки баз данных, например PostgreSQL в системе Windows 2000, скопируйте файл с:\php\ext\php_pgsql.dll в основной каталог РНР. (Для этого вполне подойдут команды cd и сору.)

Если для установки модуля РНР использовалась автоматическая процедура инсталляции, то dll-файлы поддержки баз данных по умолчанию не устанавливаются. Поэтому после завершения автоматической процедуры установки все требуемые действия понадобится выполнить вручную, как описывалось выше.

Активизация режима поддержки баз данных

Для включения режима поддержки баз данных нужно внести изменения в конфигурационный файл php.ini. Найдите в этом файле строки следующего вида:

;extension=php_pgsql.dll
;extension=php_msql.dll

Каждый элемент этого перечня соответствует одной из баз данных, которая поддерживается языком РНР. Легко заметить, что в начале каждой строки содержится точка с запятой. Это означает, что все строки закомментированы и, следовательно, неактивны. Для включения режима поддержки требуемой базы данных найдите соответствующую строку и удалите в её начале точку с запятой. Например:

extension=php_pgsql.dll

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

Если в файле php.ini был включен режим поддержки базы данных, а соответствующая динамическая библиотека не была скопирована, то при попытке запуска сценария будет выведено сообщение об ошибке примерно такого вида:

Unknown(): Unable to load dynamic library 'php_pgsql.dll'. The specified module could not be found.
(Unknown () : He удается подключить динамическую библиотеку 'php_pgsql.dll . Указанный модуль не найден.)

Если оба этапа были выполнены корректно (копирование dll-библиотеки и активизация соответствующего расширения в файле php.ini), но при этом не было установлено программное обеспечение баз данных, будет выведено следующее сообщение об ошибке:

The dynamic linklibrarymsql.dll could not be found in the specified pati
(Динамически подключаемая библиотека msql.dll отсутствует по указанному пути)

Для пользователей MS SQL. Кроме сервера баз данных необходимо также установить набор средств MS SQL Server Client Tools. Его можно найти на установочном компакт-диске MS SQL.

Для пользователей MySQL. Убедитесь, что вы используете файл php_mysql.dll для MySQL версии 4.0 или ниже или файл php_mysqli.dll для MySQL версии 4.1 или выше.


Взаимодействие с базой данных

Большинством систем управления базами данных поддерживается язык SQL (Structured Query Language — язык структурированных запросов). Оператор SQL, называемый также запросом (query), определяет те действия, которые должна выполнить система управления базой данных. Например, SQL-запрос может быть предназначен для создания базы данных или таблицы, сохранения информации в базе данных, извлечения или удаления данных и т.д.

Несмотря на то что практически все системы управления базами данных предоставляют возможность использования языка SQL, при его использовании все же могут возникнуть определенные нюансы. Так, сервер mSQL поддерживает только ограниченный набор операторов SQL. В то же время Oracle и Sybase поддерживают свои собственные расширения SQL, которые даже не определены в соответствующем стандарте.

Рассмотрим несколько простых SQL-запросов, которые ниже будут использоваться в реальных примерах сценариев РНР. Получить информацию из базы данных можно с помощью запроса:

SELECT * FROM ммя_таблицы

Этот запрос позволяет извлечь все данные, содержащиеся в таблице имя_таблицы. Символ * является специальным символом-заполнителем (wild card), который позволяет выбрать все поля таблицы. Предположим, необходимо извлечь информацию из базы данных Catalog (см. выше раздел "Системы управления базами данных"). В этой базе данных содержится одна таблица Product с информацией обо всех товарах из каталога. Для получения всех данных из таблицы Product можно воспользоваться запросом:

SELECT * FROM Product

Для того чтобы добавить запись в таблицу, можно воспользоваться следующим SQL-запросом:

INSERT INTO имя_таблицы (имя_поля1, имя_поля2, ...)
            VALUES (значение1, значение2, ...)

При выполнении этого запроса в таблице имя_таблицы будет создана новая запись, в которой в соответствующих столбцах будут размещены заданные значения. Например, добавить новый товар в каталог можно с помощью следующего запроса:

INSERT INTO Product (Type, Description, Size, Color, Price)
            VALUES ("Тенниска", "100% хлопок", "L", "Черный", 20)

Обратите внимание на то, что все строки помещаются в двойные кавычки, а числа — нет. Кроме того, следует заметить, что для каждого указанного поля задано соответствующее значение. В противном случае будет сгенерировано сообщение об ошибке. В следующем разделе вы узнаете, как сценарии РНР взаимодействуют с базами данных.

Форма входа

Мини-чат

Календарь новостей
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Поиск

Друзья сайта
Скажи сайту спасибо
ЯндексЯндекс. ДеньгиХочу такую же кнопку



Получить WMR-бонус на свой кошелек!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024 Бесплатный конструктор сайтов - uCoz