Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы.


Информационный Канал Subscribe.Ru

Здравствуйте!
рассылки сайта РНР для всех!

Важная информация для подписчиков:

  • Сайт, который представляет всю информацию о нужном для вас хостинге с полной поддержкой PHP + MySQL - http://bel-host.info (от 5 у.е. за год включая панель управления + все, что необходимо для работы сайта + поддержка, все кроме места и трафика неограничено!). Регистрация доменов по низким ценам. Более 20 способов оплаты услуг!

  • Если вас интересует возможность быстрой разработки скриптов PHP и приложений для сети Интернет под ваши нужды, или вам необходима помощь специалиста в поддержке и развитии собственных систем (сайтов, страничек и т.д.), пишите на адрес: virtualphp@tut.by - с темой "разработка".

  • По поводу размещения информации в этой рассылке обращайтесь на адрес: virtualphp@tut.by
     

  • И САМОЕ ГЛАВНОЕ!!! Рассылка рассчитана в первую очередь на начинающих, тех, которые ничего вообще не понимают, но очень хотят разобраться.


Базы данных - быть или не быть

Собственно, не раз в своих произведениях я утверждал, что без баз данных обойтись можно, и доказывал это на различных примерах. И делал проекты, разрабатывая собственные базы данных для хранения той или иной информации. Выгода очевидна - чрезвычайная простота настройки скриптов (закачал, выставил права доступа на нужные каталоги и файлы, и работай...), легкая архивация данных (просто используется FTP-соединение), легкое обновление данных.

Но! Время идет, информации становится все больше, и вот наступает момент, когда такой подход уже не оправдывает себя, так как сказывается основной, и самый болезненный недостаток - скорость работы. Она катастрофически малая в этом случае. Не в пример, работа с любой из существующих баз данных (одна из самых распространенных в наши дни - MySQL) - это просто полет мысли! Скорость работы по обработке, поиску и обновлению информации просто огромная! Достигается это... Впрочем тем, кому захочется узнать, как и почему это происходит, я порекомендую другие источники, я же еще раз констатирую факт - база данных НУЖНА, и изучить ее основы разработчику нужно ОБЯЗАТЕЛЬНО!

Скажу сразу, вопрос этот не тривиальный. То есть, это не просто взял, выучил несколько команд и готово. Нет, все несколько сложнее. Информация в базе данных хранится в невизуальном виде. Это значит что вы не можете непосредственно видеть (без специальных программ, естественно), как и что там происходит. Вот эта виртуальность, мне кажется, и есть основной камень преткновения, который заставляет многих отказываться от такого мощного и полезного инструмента.

Так что давайте начнем именно с этого - наша задача: научиться представлять себе структуру и состояние базы данных. А исходя из этих данных, легко будет воспользоваться буквально десятком команд и начать программировать.

Первое. В своей основе база данных - это двумерный объект. У нее (базы) должно быть имя. К примеру, назовем нашу базу "baza_new". Имя может быть любым, часто оно ограничено префиксами, которые хостеры добавляют к вашему названию базы, но этот вопрос индивидуальный и выясняется в службе поддержки вашего хостинга. Базе данных должен соответствовать как минимум один (их может быть и больше, но не меньше) пользователь со своими уникальными правами доступа и именем. К примеру, по умолчанию, как правило, создается пользователь ROOT с неограниченными правами доступа, но вполне по силам создать любого другого с уникальными правами. То есть, один пользователь имеет право, к примеру, на запись информации в базу, а другой нет. ROOT имеет все мыслимые права.

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

Давайте сразу прописывать наши данные:

$host = "localhost";            // имя сервера
$user = "user";                 // имя пользователя
$passwd = "пароль";       // пароль
$dbname = "baza_new"; // имя базы данных

db_connect($host, $user, $passwd, $dbname);

----------------------------------------------------------------------------------------------------------

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

// подключение к СУБД и открытие базы данных
function db_connect($host, $user, $passwd, $dbname)
{
$link = @mysql_connect($host, $user, $passwd);
if (!$link) { echo '<p>Не могу подключиться к серверу баз данных с параметрами: $host, $user, $passwd<br>'; mysql_error(); }

@mysql_select_db($dbname);
if (mysql_error()) { echo '<p>Не могу открыть базу данных &laquo;'.$dbname.'&raquo;<br>'; mysql_error(); }

return $link;
}

----------------------------------------------------------------------------------------------------------

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

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

Я говорю о phpMyAdmin. Это - специальная программная оболочка, позволяющая визуализировать состояние базы данных, одна из лучших и несомненно - самая распространенная. Как правило, любо уважающий себя хостер (интересно, есть ли в природе не уважающие себя?) имеет ее в своем ассортименте полезных программ. Как работать с этой программой - несколько позже, пока немного потеоретизируем.

Второе, не менее важное. База состоит из таблиц, каждая таблица имеет имя (произвольное). Количество таблиц по-моему не ограничено, хотя не уверен. Но это и не важно. Главное, что таблица - это не есть конечный элемент, она в свою очередь состоит из строк и колонок. Вот тут давайте поподробнее. Что есть строки, а что колонки?

Представьте себе EXCEL. Уж его-то все видели, думаю. И многие успешно в нем работают. Так вот, структура таблицы - полная аналогия этой распространенной программы. Сверху вниз - это у нас строки, а слева на право - это колонки. Вот так примерно:

a b c d f g h ...
1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

Итак, то что буквы - это у нас колонки, а то, что циферки - строки. Уяснили? Резонный вопрос, как это все обозначается. А вот так и обозначается, как я вам нарисовал. То есть у колонок есть имена (ну, куда же без них), и кроме имен, у каждой колонки есть еще и свои строго определенные свойства, которые соответствуют той информации, которая будет храниться в данной колонке. Другими словами, одно дело большие по объему и разнородные тексты, а другое - простые числа, к примеру какой-то порядковый номер. И конечно, не имеет смысла использовать во втором случае тот же тип колонки, что и в первом, так как это есть неразумная трата ресурсов базы банных. Запомним раз и навсегда - у колонок есть имя, и есть определенные, заранее заданные при создании колонки свойства.

Что есть у строк? Ничего. Изначально, и самих строк нет, пока в базу данных ничего не добавили. Но, как только в нее что-то попадает, это что-то тут же становится новой строкой, причем все делается так, что самой первой колонкой, как правило, идет номер. То есть, мы сами в нашей таблица должны отвести какую-то колонку (хотя это иногда не обязательно) под нумерацию. Как правило, первую. И как правило, имя ей дается - ID. Важно, что нумерация ведется базой автоматически, и нам не надо что-либо делать для ее (нумерации) поддержки. Мы просто добавляем данные в базу, а уже дело базы отследить, какой номер был перед этим, и не повторяется ли он и т.д.

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

Автор: Андрей Кухарчик  ноябрь, 2005 г.
Распространение текста допускается только с
сохранением имени автора и ссылки на сайт: http://virtual.brest.by

 

Рекомендуем посетить:

http://virtual.brest.by - Виртуальный Брест. Региональный информационно - развлекательный портал города Бреста. Чат, форум, статьи, услуги, объявления, недвижимость, каталог сайтов - это и многое другое ждет Вас на страницах сайта.
http://bel-host.info - хостинг по самым низким ценам - от 5 у.е. за 1 год! Ограничены только место и трафик, все остальное в любых количествах!
http://204040.com - Интернет-магазин компьютерного салона Успех г. Брест
Международный Интернет-банк - прием и оплата более чем 20-тью способами.
Книги с доставкой по республике Беларусь -  - а так же софт, и много других товаров

автор рассылки Андрей Кухарчик / http://php.virtualbrest.com


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: inet.webbuild.php3programm
Архив рассылки
Отписаться
Вспомнить пароль

В избранное