Обоснование выбора mysql php
На сегодняшний день СУБД MySQL является одной из самых известных, надежных и быстрых из всего семейства существующих СУБД.
Почему именно она? Одной из причин являются правила ее распространения — за нее не надо платить деньги и распространяется она вместе со своими исходными текстами, другая причина — это то, что MySQL относительно быстрая СУБД. PostgreSql, например, также распространяется под лицензией *GNU GPL, но она не получила столь широкого распространения. Одна из причин — это заметная медлительность. Итак, две главные причины популярности MySQL: цена и производительность.
MySQL — компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании.
MySQL был разработан компанией TcX для быстрой обработки очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 БД, которые содержат 10.000 таблиц, из которых около 500 имеют более 7 миллионов строк (24.01.2004).
MySQL является идеальным решением для малых и средних приложений. Исходники сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности.
На текущий момент MySQL все еще в стадии разработки, хотя версии 3.22 и более поздние полностью работоспособны.
MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД.
Краткий перечень возможностей MySQL:
— Поддерживается неограниченное количество пользователей, одновременно работающих с базой данных.
— Количество строк в таблицах может достигать 50 млн.
— Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих серверов.
— Простая и эффективная система безопасности.
— MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД. В MySQL отсутствуют:
— Поддержка вложенных запросов, типа SELECT * FROM table1 WHERE id IN (SELECT id FROM table2).
— Не реализована поддержка транзакций. Взамен предлагается использовать LOCK/UNLOCK TABLE.
По словам создателей именно эти пункты дали возможность достичь высокого быстродействия. Их реализация существенно снижает скорость сервера. Эти возможности не являются критичными при создании web-приложений, что в сочетании с высоким быстродействием и малой ценой позволило серверу приобрести большую популярность.
Принцип работы СУБД MySQL аналогичен принципу работы любой СУБД, использующей SQL (Structured Query Language, язык структурированных запросов) в качестве командного языка для создания/удаления баз данных, таблиц, для пополнения таблиц данными, для осуществления выборки данных.
MySQL, как и любая другая СУБД представляет собой программу-сервер, которая находится в памяти компьютера и обслуживает TCP порт. В случае с MySQL, номером порта будет являться число 3306. А клиентская программа, будь то CGI-приложение на Perl либо программа на PHP, соединяется с СУБД по этому порту и посылает ему строчки на SQL. Тот в свою очередь их интерпретирует, выполняя необходимые действия, и отсылает результаты запроса обратно клиенту. Таким способом происходит общение сервера баз данных с клиентскими программами.
При написании программы к данной работе выбран язык PHP, т. к. сегодня MySQL более широкое распространение получил на Web-серверах. А PHP как нельзя лучше других языков подходит для написания CGI-приложений. Взаимодействие сценария на языке PHP с MySQL можно изобразить схемой:
Сценарий PHP ->DBI ->DBD::MySQL->Cервер MySQL.
DBI обеспечивает единый интерфейс взаимодействия с различными системами управления базами данных. А DBD связывает этот интерфейс непосредственно с конкретной СУБД. В нашем случае это mysql. Для того, чтобы программа на PHP могла общаться и работать с базой данных, необходимо подключить модуль DBI и драйвер DBD.
Таким образом основными критериями выбора данной СУБД были:
— Многопоточность. Поддержка нескольких одновременных запросов.
— Оптимизация связей с присоединением многих данных за один проход.
— Записи фиксированной и переменной длины.
— Гибкая система привилегий и паролей.
— До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.
— Поддержка ключевых полей и специальных полей в операторе CREATE.
-Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строкпеременной длины и меток времени.
— Интерфейс с языками PHP и perl.
— Основанная на потоках, быстрая система памяти.
— Утилита проверки и ремонта таблицы (isamchk).
— Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.
— Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.
— Все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей.
— Легкость управления таблицей, включая добавление и удаление ключей и полей.
Итак, популярность MySQL сервера определяется не только тем, что пакет распространяется бесплатно и имеет высокую производительность, но ещё и тем, что имеет множество вышеперечисленных достоинств, многих из которых нет у других СУБД.
Разрабатываемый сайт нуждается в возможности обрабатывать и хранить большие объемы информации. MySQL предоставляет всем эту возможность совершенно бесплатно. Это действительно одна из самых мощных, быстрых и надежных СУБД.
Принципы работы MySQL-сервера
SQL является инструментом, предназначенным для обработки и чтения данных, содержащихся в компьютерной базе данных. MySQL (структурированный язык запросов) как следует из названия, является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. На самом деле SQL работает только с базами данных одного определенного типа, называемых реляционными.
На рисунке изображена схема работы MySQL. Согласно этой схеме, в вычислительной системе имеется база данных, в которой хранится важная информация. Если БД относится к сфере бизнеса, то в ней может храниться информация о материальных ценностях, выпускаемой продукции, объемах продаж и зарплате. В базе данных на персональном компьютере может храниться информация о выписанных чеках, телефонах и адресах или информация, извлеченная из более крупной вычислительной системы. Компьютерная программа, которая управляет базой данных, называется системой управления базой данных, или СУБД.
Если пользователю необходимо прочитать данные из базы данных, он запрашивает их у MySQL с помощью СУБД. SQL обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных: отсюда и название — структурированный язык запросов.
Глава 1. Выбор программных средств для реализации Интернет-комплекса «Знание»
Для реализации Интернет-комплекса «Знание» были выбраны СУБД MySQL, язык программирования Java, а также технология Struts, которая является каркасом web-приложения и значительно облегчает его создание.
1.1. Выбор субд (MySql).
Целью курсовой работы было создание интернет-системы, обрабатывающей информацию о людях, мероприятиях, лекциях. Естественно, возникает вопрос, в каком виде должна храниться эта информация и с помощью каких средств её следует обрабатывать. Так как, например, информация о каждом отдельном человеке представляет собой типичный набор данных (фамилия, имя, отчество, биография и т. д.), то очевидно, что в этом случае целесообразно хранить их в реляционной базе данных на сервере. Посредством запросов к базе данных пользователь может получать нужные ему сведения, а администратор может добавлять и изменять данные.
Выбор конкретной СУБД в качестве сервера баз данных осуществлялся исходя из тех преимуществ, которые она имеет перед другими, а также удобства работы с ней. В данном случае был выбрана клиент-серверная СУБД MySQL. Её архитектура изображена на рис.1.1.
Рис. 1.1. Клиент-серверная архитектура MySQL
Самая подходящая для MySQL сфера применения — это Интернет, благодаря хорошей системе безопасности этого пакета, стабильной работе и высокому быстродействию.Для создания скриптов был выбран язык программирования PHP, а MySQL – самая популярная СУБД, которая поддерживается этим языком. В PHP есть множество функций, которые позволяют удобно и эффективно работать с базами данных – и это одна из причин выбора данной СУБД.
Рассмотрим преимущества MySQL:
1) Быстродействие
Благодаря внутреннему механизму многопоточности быстродействие MySQL весьма высоко. Для разработчиков MySQL скорость всегда являлась ключевым параметром. Новые возможности добавлялись в пакет MySQL только после того, как их удавалось реализовать без ущерба для производительности. Иногда это означало, что некоторые возможности добавлялись не так быстро, как хотелось бы пользователям, но зато всегда гарантировало быструю работу MySQL.
Довольно высокий уровень безопасности обеспечивается благодаря базе данных mysql, создающейся при установке пакета и содержащей пять таблиц. При помощи этих таблиц можно описать, какой пользователь из какого домена с какой таблицей может работать и какие команды он может применять. Пароли, хранящиеся в базе данных, можно зашифровать при помощи встроенной в MySQL функции password().
Раньше лицензирование MySQL было немного запутанным; сейчас эта программа для некоммерческих целей распространяется бесплатно.
Благодаря этому программист может сам добавлять в пакет нужные функции, расширяя его функциональность так, как ему требуется. За отдельную плату это могут сделать и сами авторы MySQL.
5) Простота использования
Для начала работы с MySQL не требуется сложной процедуры конфигурации. MySQL Server начнёт работать соответствующим образом сразу. По умолчанию выбираются значения, соответствующие минимальному использованию ресурсов диска и памяти. Для получения оптимальной производительности и для специальных условий (например, для проверки входа в систему), конечно же, потребуется дополнительная настройка. Чтобы помочь выполнить такую настройку, предлагаются соответствующие примеры файлов типовой конфигурации.