Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НИРС_new.doc
Скачиваний:
2
Добавлен:
21.11.2019
Размер:
399.87 Кб
Скачать

3.2 Средства создания запросов, управление бд

Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных" (СУБД).

Основная особенность СУБД – это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банки данных, а затем "Базы данных" (БД).

Язык запросов СУБД позволяет обращаться за данными как из программ, так и с терминалов (рис.).

Рисунок 3.4 -Связь программ и данных при использовании СУБД

СУБД MySQL предоставляет подмножество языка SQL, соответствующее спецификации ANSI SQL 92. Sql - символизирует собой Структурированный Язык Запросов. Это - язык, который дает вам возможность создавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах. 

Реляционная база данных - это тело связанной информации, сохраняемой в двухмерных таблицах. Напоминает адресную или телефонную книгу.

Программы реляционной базы данных разрабатывались для того чтобы обрабатывать большие и сложные совокупности данных такого типа, что, очевидно, является более универсальным методом в деловом мире. Даже если бы база данных содержала сотни или тысячи записей - как это вероятно и бывает на практике - одна команда sql могла бы выдать именно ту запись, в которой сейчас нуждаются, почти немедленно. Язык sql достаточно сложен и многогранен. При работе же небольшой фирмы, или базы данных в сети internet круг задач ограничен. Поэтому была создана небольшая, но очень быстрая и функциональная реляционная СУБД mysql. Тоесть, как вы уже догадались в mysql задействован не весь язык sql, а только необходимая его часть.

MySQL является относительно небольшой и быстрой реляционной СУБД. SQL - это сокращение от Structured Query Language (структурированный язык запросов). SQL создан для работы с реляционными базами данных. Он позволяет пользователям взаимодействовать с базами данных (просматривать, искать, добавлять и управлять данными).

Достоинства MySQL:

- многопоточность. Поддержка нескольких одновременных запросов;

- оптимизация связей с присоединением многих данных за один проход;

- записи фиксированной и переменной длины;

- ODBC драйвер в комплекте с исходником;

- гибкая система привилегий и паролей;

- до 16 ключей в таблице. Каждый ключ может иметь до 15 полей;

- поддержка ключевых полей и специальных полей в операторе CREATE;

- поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени;

- интерфейс с языками C и perl;

- основанная на потоках, быстрая система памяти;

- утилита проверки и ремонта таблицы ( isamchk);

- все данные хранятся в формате ISO8859_1;

- все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках;

-псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице;

- все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей;

- легкость управления таблицей, включая добавление и удаление ключей и полей.[8]

Конкурентные преимущества MySQL:

- производительность (из-за чего Google и Yahoo используют именно MySQL);

- масштабируемость (в компании Omniture в реальном масштабе времени используется 7000 серверов MySQL);

- надежность (в коде проприетарных продуктов содержится в десять с лишним раз больше уязвимостей);

- простота использования, простота внедрения (за 15 минут можно скачать и запустить систему);

- открытая и модульная разработка;

- низкие совокупные затраты (платить нужно только при потребности в поддержке);

- производительность (из-за чего Google и Yahoo используют именно MySQL);

- масштабируемость (в компании Omniture в реальном масштабе времени используется 7000 серверов MySQL);

- надежность (в коде проприетарных продуктов содержится в десять с лишним раз больше уязвимостей);

- простота использования, простота внедрения (за 15 минут можно скачать и запустить систему);

- открытая и модульная разработка;

- низкие совокупные затраты (платить нужно только при потребности в поддержке).[9]

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

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

Кроме сложностей с управлением несколькими сотнями таблиц в одной базе, можна столкнуться с необходимостью ограничивать доступ разных пользователей к таблицам, базам и даже отдельным столбцам конкретной таблицы. Однако разработчики СУБД MySQL уже позаботились о подобной ситуации – в MySQL есть очень гибкий и мощный механизм управления и разграничения доступа пользователей к базам и таблицам. [10]

MySQL - Система Управления Базами Данных (СУБД). Основное отличие от всех остальных СУБД это то, что она является бесплатной. В силу того, что MySQL бесплатна, она поддерживается очень многими хостинг провайдерами.

Итак, как получить данные из базы данных MySQL в PHP скрипт.

Ну вообще-то это не так сложно. Всё, что нужно знать:

Хост - адрес сервера баз данных MySQL:

-имя базы данных;

-имя пользователя;

-пароль - пароль для доступа к БД;

-некоторые SQL команды.

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

Итак, алгоритм такой:

-устанавливаем соединение с сервером;

-выбираем нужную базу данных ;

-делаем запрос к серверу баз данных (SQL запрос);

-обрабатываем результат запроса, если это необходимо;

-закрываем соединение (отключаемся от сервера БД).[11]

По части PHP, чтобы работать с БД надо знать несколько функций:

mysql_connect()-устанавливает сетевое соединение с базой данных MySQL, расположенной на хосте $hostname (по умолчанию это localhost, т. е. текущий компьютер), и возвращает идентификатор открытого соединения;

mysql_select_db()-если нужно открывать только одно соединение с базой данных за все время работы сценария, то можно не сохранять возвращенное значение, а также не указывать идентификатор соединения при вызове всех остальных функций;

mysql_query()-возвращает она не что иное, как идентификатор результирующего набора данных;

mysql_fetch_array()-возвращает очередную строку результата в виде ассоциативного массива, где каждому полю сопоставлен элемент с ключом, совпадающим с именем поля;

mysql_close()-соединение с MySQL-сервером будет автоматически закрыто при вызове функции.[17]

Это тот минимум, который позволит нам устанавливать соединение с сервером MySQL, выбирать базы данных и делать запросы к серверу баз данных.[11]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]