Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

БЕЛОРУСКИЙ ГОСУДАРСТВЕННЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра НАУЧНАЯ РАБОТА

Работа добавлена на сайт samzan.net:


МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УО «БЕЛОРУСКИЙ ГОСУДАРСТВЕННЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра

НАУЧНАЯ РАБОТА

Студенты

ФФБД, 2-й курс, ДФК-1

Руководитель

канд. экон. наук,

доцент

Д.Д. Кузьмич

Н.Н. Бондарь

МИНСК 2013


СОДЕРЖАНИЕ


ВВЕДЕНИЕ

В наши дни люди часто говорят о базах данных. Одной из функций баз данных является упорядочение и индексация информации. Как и в библиотечной картотеке, не нужно просматривать половину архива, чтобы найти нужную запись. Все выполняется гораздо быстрее. Не все базы данных создаются на основе одних и тех же принципов, но традиционно в них применяется идея организации данных в виде записей. Каждая запись имеет фиксированный набор полей. Записи помещаются в таблицы, а совокупность таблиц формирует базу данных. В настоящее время на рынке существует большое количество как баз данных, так и СУБД. По данным статистики использования различных программных продуктов лидирующую позицию занимает СУБД MySQL - посредством нее управляются 47 % всех баз данных в Европе. Таким образом, СУБД MySQL является достаточно популярным средством для управления БД, что, соответственно, позволяет сделать вывод о большом числе пользователей этой системы.

На сегодняшний день СУБД MySQL является одной из самых известных, надежных и быстрых из всего семейства существующих СУБД.

MySQL написан под десятки видов операционных систем. Это и FreeBSD, OpenBSD, MacOS, OS/2, SunOS, Win9x/00/NT и Linux. Сегодня MySQL особенно распространена на платформах Linux и Windows. Причем на последней встречается гораздо реже.

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

Целью данной работы является описание конфигурирования, администрирования и программирования СУБД MySQL и создание программы иллюстрирующей возможности MySQL.

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

Задачами работы являются следующие:

• изучение теоретического материала, касающегося общих сведений о СУБД MySQL, синтаксиса, а также ее характеристик, особенностей и возможностей;

• формулировка и обоснование различных ограничений семантической и ссылочной целостности, реализуемых в информационных системах;

• реализация фрагмента информационной системы в СУБД MySQL с учетом необходимых ограничений целостности.

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

1 SQL – язык реляционных баз данных: основные особенности и применение

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

SQL - это сокращенное название структурированного языка запросов (Structured Query Language). Как следует из названия, SQL является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. На самом деле SQL работает только с базами данных одного определенного типа, называемых реляционными.

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

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

  1.  Организация данных. SQL дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между элементами базы данных.
  2.  Чтение данных. SQL дает пользователю или приложению возможность читать из базы данных содержащиеся в ней данные и пользоваться ими.
  3.  Обработка ванных. SQL дает пользователю или приложению возможность изменять базу данных, т.е. добавлять в нее новые данные, а также удалять или обновлять уже имеющиеся в ней данные.
  4.  Управление доступом. С помощью SQL можно ограничить возможности пользователя по чтению и изменению данных и защитить их от несанкционированного доступа.
  5.  Совместное использование данных. SQL координирует совместное использование данных пользователями, работающими параллельно, чтобы они не мешали друг другу.
  6.  Целостность данных. SQL позволяет обеспечить целостность базы данных, защищая ее от разрушения из-за несогласованных изменений или отказа системы.

Таким образом, SQL является достаточно мощным языком для взаимодействия с СУБД и в то же время относительно легкий для изучения язык. Но SQL — это слабо структурированный язык, особенно по сравнению с такими сильно структурированными языками, как С или Pascal. Операторы SQL напоминают английские предложения и содержат "слова-пустышки", не влияющие на смысл оператора, но облегчающие его чтение. В SQL почти нет нелогичностей.

Достоинства SQL

SQL — это легкий для понимания язык и в то же время универсальное программное средство управления данными.

Успех языку SQL принесли следующие его особенности:

  1.  независимость от конкретных СУБД, что является одной из наиболее важных причин его популярности;
  2.  переносимость с одной вычислительной системы на другую;
  3.  наличие стандартов;
  4.  одобрение компанией IBM (СУБД DB2);
  5.  поддержка со стороны компании Microsoft (протокол ODBC);
  6.  реляционная основа;
  7.  высокоуровневая структура, напоминающая английский язык;
  8.  возможность выполнения специальных интерактивных запросов:
  9.  обеспечение программного доступа к базам данных;
  10.  возможность динамического определения данных;
  11.  поддержка архитектуры клиент/сервер.

Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, мини-компьютерах и больших ЭВМ.

Высокоуровневая структура, напоминающая английский язык

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

Интерактивные запросы

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

Полноценный язык для работы с базами данных

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

Динамическое определение данных

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

Влияние SQL

Будучи стандартным языком доступа к реляционной базе данных, SQL оказывает большое влияние на все сегменты компьютерного рынка. Компания IBM приняла SQL в качестве унифицирующей технологии баз данных для линии своих продуктов. Все поставщики мини-компьютеров предлагают реляционные базы данных; такие базы данных доминируют и на рынке компьютерных систем, работающих под управлением UNIX. По мере того как отдельные персональные компьютеры уступают дорогу сетям с архитектурой клиент/сервер, SQL видоизменяет рынок баз данных для персональных компьютеров. SQL применяется даже при оперативной обработке транзакций, опровергая бытовавшее ранее мнение, что из-за низкого быстродействия реляционные базы данных никогда не смогут использоваться в приложениях для обработки транзакций.

Рисунок 1 – Применение SQL для доступа к базе данных

Примечание – Источник: [].

Согласно схеме, представленной на рисунке 1, в вычислительной системе имеется база данных, в которой хранится важная информация. Если вычислительная система относится к сфере бизнеса, то в базе данных может храниться информация о материальных ценностях, выпускаемой продукции, объемах продаж и зарплате. В базе данных на персональном компьютере может храниться информация о выписанных чеках, телефонах и адресах или информация, извлеченная из более крупной вычислительной системы. Компьютерная программа, которая управляет базой данных, называется системой управления базой данных, или СУБД.

Если пользователю необходимо прочитать данные из базы данных, он запрашивает их у СУБД с помощью SQL. СУБД обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных: отсюда и название — структурированный язык запросов.

Сам по себе SQL не является ни системой управления базами данных, ни отдельным программным продуктом. Нельзя пойти в компьютерный магазин и "купить SQL". SQL — это неотъемлемая часть СУБД, инструмент, с помощью которого осуществляется связь пользователя с ней. На рисунке 2 изображена структурная схема типичной СУБД, компоненты которой соединяются в единое целое с помощью SQL (своего рода "клея").

Рисунок 2 – Компоненты типичной СУБД

Примечание – Источник: [].

Ядро базы данных является сердцевиной СУБД; оно отвечает за физическое структурирование и запись данных на диск, а также за физическое чтение данных с диска. Кроме того, оно принимает SQL-запросы от других компонентов СУБД (таких как генератор форм, генератор отчетов или модуль формирования интерактивных запросов), от пользовательских приложений и даже от других вычислительных систем. Как видно из рисунка, SQL выполняет много различных функций:

  1.  SQL — интерактивный язык запросов. Пользователи вводят команды SQL в интерактивные программы, предназначенные для чтения данных и отображения их на экране. Это удобный способ выполнения специальных запросов.
  2.  SQL — язык программирования баз данных.Чтобы получить доступ к базе данных, программисты вставляют в свои программы команды SQL. Эта методика используется как в программах, написанных пользователями, так и в служебных программах баз данных (таких как генераторы отчетов и инструменты ввода данных).
  3.  SQL — язык администрирования баз данных.Администратор базы данных, находящейся на мини-компьютере или на большой ЭВМ, использует SQL для определения структуры базы данных и управления доступом к данным.
  4.  SQL — язык создания приложений клиент/сервер,и программах для персональных компьютеров SQL используется для организации связи через локальную сеть с сервером базы данных, в которой хранятся совместно используемые данные. В большинстве новых приложений используется архитектура клиент/сервер, которая позволяет свести к минимуму сетевой трафик и повысить быстродействие как персональных компьютеров, так и серверов баз данных.
  5.  SQL — язык распределенных баз данных.В системах управления распределенными базами данных SQL помогает распределять данные среди нескольких взаимодействующих вычислительных систем. Программное обеспечение каждой системы посредством использования SQL связывается с другими системами, посылая им запросы на доступ к данным.
  6.  SQL — язык шлюзов базы данных. В вычислительных сетях с различными СУБД SQL часто используется в шлюзовой программе, которая позволяет СУБД одного типа связываться с СУБД другого типа.


2 Анализ функциональных возможностей MySQL

2.1 История развития

Достаточно часто встречается вопрос: "Какая разница между SQL и MySQL?"

SQL - это язык запросов для управления СУБД. А MySQL - это одна из таких СУБД. В частности, помимо MySQL существуют и другие СУБД: Oracle, MS SQL Server, PostgreSQL и много других. И чтобы работать с любой из этих СУБД необходим язык запросов, и таким языком и является SQL.

 MySQL — свободная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

26 февраля 2008 года Sun Microsystems приобрела MySQL AB за $1 млрд, 27 января 2010 года Oracle приобрела Sun Microsystems и включила MySQL в свою линейку СУБД.

Сообществом разработчиков MySQL созданы различные ответвления кода, такие как Drizzle (англ.), OurDelta, Percona Server, и MariaDB. Все эти ответвления уже существовали на момент поглощения компании Sun корпорацией Oracle.

Логотип MySQL в виде дельфина носит имя «Sakila». (рисунок 3) Он был выбран из большого списка предложенных пользователями «имён дельфина». Имя «Sakila» было отправлено Open Source-разработчиком Ambrose Twebaze.

Рисунок 3 – Логотип MySQL

Примечание – Источник: [http://ru.wikipedia.org/wiki/MySQL].

Теперь о том, зачем нужен MySQL:

  1.  Для создания базы данных.
  2.  Для управления базой данных.
  3.  Для выборки записей из базы данных.

MySQL - одна из самых популярных СУБД в современных интернет-технологиях. Web-мастера даже придумали альтернативное название MySQL – «мускул».

В конце 1970-х годов будущий создатель СУБД MySQL Монти Видениус (Monty Widenius) работал в шведской компании ТсХ, занимающейся информационными технологиями и предоставлением консультаций в области обработки данных. Работая в компании ТсХ, Монти разработал программу формирования терминальных интерфейсов UNIREG, предназначенную для непосредственного подключения к хранилищам данных в формате ISAM. В течение следующих 15 лет программное обеспечение UNIREG успешно эксплуатировалось в компании, приспосабливаясь ко все более крупным наборам данных благодаря использованию сложных преобразований и расширений.

С 1994 года компания ТсХ приступила к работе над приложениями, предназначенными для обработки данных, поступающих через Web. С этого времени в программном обеспечении UNIREG стали обнаруживаться недостатки, в основном обусловленные большими издержками в работе данного приложения. Это вынудило Монти и его коллег приступить к поиску других инструментальных средств. Наибольшее внимание этих специалистов привлекло простое и быстродействующее приложение Hughes mSQL, предназначенное для поддержки баз данных, которое было разработано Дэвидом Хьюсом (David Hughes). Программа mSQL обладала такими явными преимуществами, как невысокая стоимость и определенная известность на рынке. Кроме того, для этого серверного программного обеспечения был предусмотрен довольно хорошо разработанный клиентский API-интерфейс. Но в ряде версий 1.0 программы mSQL отсутствовала возможность индексации, а это средство крайне необходимо для повышения производительности работы с большими хранилищами данных. Средства поддержки индексации появились в ряде версий 2.0 программы mSQL 2.0, но данная конкретная применяемая реализация не была совместимой с возможностями программы UNIREG, основанной на использовании индексов типа В+. Именно с этого момента началась разработка проекта MySQL, по крайней мере концептуальная. И сам Монти, и другие специалисты компании ТсХ решили воспользоваться значительными наработками, созданными в рамках проекта UNIREG, и вместе с тем разработать новый API-интерфейс, в основном аналогичный используемому в программе mSQL, если не считать того, что в нем должна была применяться более эффективная схема индексации из программы UNIREG. К началу 1995 года в компании ТсХ была готова версия 1.0 этого нового программного продукта. Разработчики присвоили новому программному продукту имя MySQL и выпустили его позже в том же году, применив сочетание схем лицензирования с открытым исходным кодом и коммерческого лицензирования, позволившего продолжить разработку программного продукта и в то же время обеспечить приток прибылей для компании MySQL АВ, в которую была преобразована компания ТсХ.

В течение последних десяти лет СУБД MySQL действительно прошла большой путь развития, превратившись в программный продукт мирового класса. В наши дни MySQL успешно конкурирует даже с такими наиболее полнофункциональными коммерческими приложениями, предназначенными для поддержки баз данных, как Oracle и Informix. А в ряде версий 4.x, кроме прочих дополнений, были включены такие долгожданные средства, как транзакции и поддержка внешних ключей. Благодаря всему этому СУБД MySQL превратилась в программное обеспечение баз данных с открытым исходным кодом, наиболее широко применяемое во всем мире – число загрузок её дистрибутива составляет более 50 тыс. в день.

Основные положительные стороны MySQL:

  1.  Многопоточность. Поддержка нескольких одновременных запросов.
  2.  Оптимизация связей с присоединением многих данных за один проход.
  3.  Записи фиксированной и переменной длины.
  4.  ODBC драйвер в комплекте с исходником
  5.  Гибкая система привилегий и паролей.
  6.  До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.
  7.  Поддержка ключевых полей и специальных полей в операторе .
  8.  Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени.
  9.  Интерфейс с языками C и perl.
  10.  Основанная на потоках, быстрая система памяти.
  11.  Утилита проверки и ремонта таблицы (isamchk).
  12.  Все данные хранятся в формате ISO8859_1.
  13.  Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.
  14.  Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.
  15.  Все поля имеют значение по умолчанию. можно использовать на любом подмножестве полей.
  16.  Легкость управления таблицей, включая добавление и удаление ключей и полей.

В 1998 году была выпущена версия для Windows систем (Windows 95 и NT). В январе 2001 года была выпущена версия 3.23.

Версии 4.0 – 5.5 рассмотрим подробнее.

Версия 4.0 – 2003 год содержит следующие основные нововведения:

  1.  межплатформенная совместимость;
  2.  независимые типы таблиц;
  3.  кэширование запросов;
  4.  поддержка SSL – протокола, который обеспечивает установление безопасного соединения между клиентом и сервером;
  5.  внедрённая библиотека базы данных;
  6.  поддержка Юникода (UTF-8);
  7.  встроенный сервер, позволяющий включать MySQL в автономные приложения.

Версия 4.1 – 2004 год:

  1.  новая система кодировок и сортировок;
  2.  более быстрый и гибкий протокол клиент-сервер с поддержкой подготовленных запросов, обеспечивающих их оптимальное исполнение;
  3.  новая программа установки для Microsoft Windows и Linux;
  4.  полноценная поддержка Юникода (UTF-8 и UCS2);
  5.  улучшенный полнотекстовый поиск и система помощи.

Версия 5.0 – 2005 год: в данной версии значительно расширена функциональность, которая ставит MySQL в один ряд с коммерческими СУБД. Также появилась практически полная поддержка стандарта SQL. Основные нововведения:

  1.  хранимые процедуры и функции;
  2.  обработчики ошибок;
  3.  курсоры - получаемые при выполнении запроса результирующие наборы и связанные с ними указатели текущей записи;
  4.  представления – виртуальные таблицы, представляющие собой поименованные запросы, которые будут представлены как подзапросы при использовании представления;
  5.  информационная схема (так называемый системный словарь, содержащий метаданные).

Версия 5.1 – 2008 год: данная версия продолжает путь к стандарту SQL2003. Нововведения данной версии:

  1.  новый тип таблиц Maria. Maria представляет собой расширенную версию хранилища MyISAM, с добавлением средств сохранения целостности данных после краха. Основные достоинства Maria:
  2.  В случае краха производится откат результатов выполнения текущей операции или возврат в состояние до команды LOCK TABLES. Реализация через ведение лога операций.
  3.  Возможность восстановления состояния из любой точки в логе операций, включая поддержку CREATE/DROP/RENAME/TRUNCATE.
  4.  Поддержка всех форматов столбцов MyISAM, расширена новым форматом «rows-in-block», использующим страничный способ хранения данных, при котором данные в столбцах могут кэшироваться.
  5.  В будущем будет реализовано два режима: транзакционный и без отражения в логе транзакций, для не критичных данных.
  6.  Размер страницы данных равен 8Кб (в MyISAM 1Кб), что позволяет достичь более высокой производительности для индексов по полям фиксированного размера, но медленнее в случае индексирования ключей переменной длины.
  7.  сегментирование – возможность разбить одну таблицу на несколько частей. Таким образом была существенно увеличена масштабируемость;
  8.  изменены некоторые операторы (приближение к стандарту SQL2003);
  9.  построчная репликация – механизм синхронизации нескольких копий объекта;
  10.  встроенный планировщик периодически запускаемых работ;
  11.  упрощение операции обновления;
  12.  новые средства диагностики проблем и утилиты для анализа производительности;
  13.  API для плагинов, которые позволяют загружать сторонние модули, расширяющие функциональность.

Версия 5.5 – 2010 год: Ветка MySQL 5.5 базируется на невыпущенной серии MySQL 5.4 и содержит ряд значительных улучшений, связанных с повышением масштабируемости и производительности, среди которых:

  1.  использование по умолчанию движка InnoDB;
  2.  поддержка полусинхронного (semi-synchronous) механизма репликации, основанного на патчах к InnoDB от компании Google;
  3.  улучшение функций по секционированию данных. Расширенный синтаксис для разбиения больших таблиц на несколько частей, размещенных в файловых системах (partitioning). Добавлены операции RANGE, LIST и метод оптимизации «partition pruning»;
  4.  новый механизм оптимизации вложенных запросов и JOIN-операций;
  5.  переработана система внутренних блокировок;
  6.  интегрированы патчи Google с оптимизацией работы InnoDB на процессорах с большим количеством ядер.

Версия MySQL 6.0 была заморожена на стадии альфа-тестирования. Первоначально было принято решение о создании версии 5.2, вскоре эта версия была переименована в 6.0. Однако, позже информация о MySQL 6.0 исчезла с сайта, а разработчики сосредоточились на версии 5.5 и следующей за ней версии 5.6. Одним из основных нововведений версии 6.0 планировался новый тип таблиц Falcon, разработанный в качестве потенциальной замены для InnoDB компании Innobase, приобретённой компанией Oracle.

Последняя на данный момент версия 5.5.28 была выпущена 28 сентяря 2012г.

Устройство MySQL

MySQL состоит из двух частей: серверной и клиентской.

Сервер MySQL постоянно работает на компьютере. Клиентские программы (например, скрипты PHP) посылают серверу MySQL SQL-запросы через механизм сокетов (то есть при помощи сетевых средств), сервер их обрабатывает и запоминает результат. То есть скрипт (клиент) указывает, какую информацио он хочет получить от сервера баз данных. Затем сервер баз данных посылает ответ (результат) клиенту (скрипту).

Почему всегда передается не весь результат? Очень просто: дело в том, что размер результирующего набора данных может быть слишком большим, и на его передачу по сети уйдет чересчур много времени. Да и редко когда бывает нужно получать сразу весь вывод запроса (то есть все записи, удовлетворяющие выражению запроса). Например, нам может потребоваться лишь подсчитать, сколько записей удовлетворяет тому или иному условию, или же выбрать из данных только первые 10 записей. Механизм использования сокетов подразумевает технологию клиент-сервер, а это означает, что в системе должна быть запущена специальная программа — MySQL-сервер, которая принимает и обрабатывает запросы от программ. Так как вся работа происходит в действительности на одной машине, накладные расходы по работе с сетевыми средствами незначительны


2.2. Технические характеристики

В данном разделе мы перечислим технические характеристики СУБД MySQL. Основные из них:

  1.  написана данная система на языках C/C++, протестирована на множестве компиляторов;
  2.  имеет API для работы с различными языками программирования: C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl;
  3.  система кроссплатформенная;
  4.  СУБД многопоточная с использованием потоков ядра. Это означает, что, если такая возможность обеспечивается, можно легко организовать работу с несколькими процессорами;
  5.  очень быстрые дисковые таблицы на основе В-деревьев со сжатием индексов;
  6.  очень быстрая базирующаяся на потоках система распределения памяти;
  7.  очень быстрые соединения, использующие оптимизированный метод однопроходного мультисоединения (one-sweep multi-join);
  8.  хеш-таблицы в памяти, используемые как временные таблицы.
  9.  SQL-функции реализованы при помощи хорошо оптимизированной библиотеки классов, поэтому они выполняются настолько быстро, насколько это возможно. Обычно после инициализации запроса распределения памяти не происходит вообще;
  10.  MySQL-код протестирован с использованием Purify (коммерческий детектор утечки памяти), а также Valgrind, одного из GPL-инструментов.

Типы столбцов в СУБД MySQL:

  1.  целочисленные со знаком/беззнаковые, длиной   1, 2, 3, 4 и 8 байтов: FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET и ENUM.
  2.  c записями фиксированной и переменной длины.
  3.  все столбцы имеют значения по умолчанию. С помощью INSERT можно вставить подмножество столбцов таблицы; столбцы, для которых явно не заданы значения, устанавливаются в значения по умолчанию.

Команды и функции.

Полная поддержка операторов и функций в SELECT- и WHERE- частях запросов. Например:

mysql> SELECT CONCAT(first_name, " ", last_name)

   -> FROM tbl_name

   -> WHERE income/dependents > 10000 AND age > 30;

Полная поддержка для операторов SQL GROUP BY и ORDER BY с выражениями SQL. Поддержка групповых функций:

  1.  COUNT (рассчитывает количество от заданного параметра);
  2.  AVG (рассчитывает среднее от заданных параметров);
  3.  SUM (подсчет суммы);
  4.  MAX (нахождение максимума от заданных параметров);
  5.  MIN (нахождение минимума от заданных параметров);

Поддержка LEFT OUTER JOIN и RIGHT OUTER JOIN с синтаксисом ANSI SQL и ODBC

DELETE, INSERT, REPLACE, и UPDATE возвращают число строк, которые были изменены. Вместо этого можно задать возвращение совпавших строк. Для этого следует установить флаг при соединении с сервером.

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

Имена функций не конфликтуют с именами таблиц и столбцов. Например, ABS является корректным именем столбца. Для вызова функции существует только одно ограничение: между именем функции и следующей за ним открывающей скобкой '(' не должно быть пробелов.

В одном и том же запросе могут указываться таблицы из различных баз данных (с версии 3.22).

Безопасность.

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

Масштабируемость и ограничения.

Управляет очень большими базами данных. Компания MySQL AB. использует MySQL для работы с несколькими базами данных, которые содержат 50 миллионов записей, кроме того, существуют пользователи, использующие MySQL для работы с 60000 таблицами, включающими около 5 млрд строк.

 Максимальный размер таблиц в MySQL 3.22 до 4 ГБ, в последующих версиях максимальный размер до 8 млн ТБ (263 байт). Размер таблицы ограничен её типом.Для каждой таблицы разрешается иметь до 32 индексов. Каждый индекс может содержать от 1 до 16 столбцов или частей столбцов. Максимальная ширина индекса 500 бит (это значение может быть изменено при компиляции MySQL). Для индекса может использоваться префикс поля CHAR или VARCHAR.

Установка соединений.

Клиенты могут соединяться с MySQL, используя сокеты TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT).

Поддержка ODBC (Open-DataBase-Connectivity) для Win32 (с исходным кодом). Все функции ODBC 2.5 и многие другие. Например, для соединения с MySQL можно использовать MS Access. See section 8.3 Поддержка ODBC в MySQL.

Локализация.

Сервер может обеспечивать сообщения об ошибках для клиентов на различных языках. See section 4.6.2 Сообщения об ошибках на языках, отличных от английского.

Полная поддержка нескольких различных кодировок, включая ISO-8859-1 (Latin1), немецкий, big5, ujis и многие другие. Например, скандинавские символы разрешены в именах таблиц и столбцов.

Для хранения всех данных используется выбранный набор символов. Все сравнения для столбцов с нормальными строками проводятся с учетом регистра символов.

Сортировка производится согласно выбранному алфавиту (по умолчанию используется шведский). Эту установку можно изменить при запуске сервера MySQL. Чтобы ознакомиться с примером очень грамотной сортировки, можно обратиться к коду сортировки для чешского языка. MySQL поддерживает много различных кодировок, которые можно задавать во время компиляции и в процессе работы.

Клиенты и инструментарий.

Включает myisamchk, очень быструю утилиту для проверки, оптимизации и восстановления таблиц. Все функциональные возможности myisamchk также доступны через SQL-интерфейс.

Все MySQL-программы можно запускать с опциями --help или -? для получения помощи.

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


3 Практическое применение

В качестве примера работы с этой системой управления базами данных создадим базу аудиодисков. Наша база данных будет состоять из 3 таблиц.

Создадим таблицу дисков, которая будет включать в себя 3 поля:

  1.  уникальный номер диска;
  2.  название диска;
  3.  год выпуска диска.

Следующая таблица – это таблица песен:

  1.  уникальный номер песни;
  2.  название песни;
  3.  исполнитель;
  4.  описание, или жанр.

Третья таблица, которую мы создадим, это таблица друзей:

  1.  уникальный номер;
  2.  имя;
  3.  адрес;
  4.  телефон;
  5.  адрес электронной почты.

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

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

Структура базы данных готова. Для реализации проекта необходимо набрать несколько команд. Все команды будем выполнять в командном интерпретаторе mysql.

Для начала создадим базу данных. Запускаем командный интерпретатор и набираем команду. (рисунок 4)

Рисунок 4 – Создание базы данных

Примечание – Источник: [собственная разработка].

Следующие коды создадут таблицы для нашей базы данных. (рисунок 5)

Рисунок 5 – Создание таблиц для базы данных

Примечание – Источник: [собственная разработка].

Мы можем просмотреть созданные таблицы. (рисунок 6)

Рисунок 6 – Просмотр созданных таблиц

Примечание – Источник: [собственная разработка].

А также конфигурацию каждой из них. (рисунок 7)

Рисунок 7 – Просмотр конфигурации таблиц

Примечание – Источник: [собственная разработка].

Далее заполняем базу данными.

Для начала добавим в нее несколько дисков с песнями. Для примера возьмем диск группы Pink Floyd.

Итак, добавляем диск 1983 года - "The Final Cut". И добавляем в этот альбом песни. (рисунок 8)

Рисунок 8 – Добавление диска и песен

Примечание – Источник: [собственная разработка].

Теперь мы можем просмотреть с помощью команды select содержимое таблицы дисков и таблицы песен. (рисунок 9)

Рисунок 9 – Просмотр таблиц

Примечание – Источник: [собственная разработка].

Затем нам нужно присоединить эти песни к диску - для этого заполним таблицу songs_on_cd. Песни с номерами 1-12 добавляем к диску номер 1. (рисунок 10)

Рисунок 10 – Присоединение песен к диску

Примечание – Источник: [собственная разработка].

Теперь, если возникнет необходимость посмотреть, какие песни на каком диске находятся, можно воспользоваться sql-командой select. Например, нам нужно посмотреть, что находится на диске The Final Cut. Мы набираем следующую команду. И видим результат. (рисунок 11)

Рисунок 11 – Просмотр необходимых данных

Примечание – Источник: [собственная разработка].

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

Вводим координаты. (рисунок 12)

Рисунок 12 – Ввод координат

Примечание – Источник: [собственная разработка].

Теперь, если мы просмотрим таблицу друзей, то увидим в ней информацию о только что добавленном человеке. (рисунок 13)

Рисунок 13 – Просмотр таблицы

Примечание – Источник: [собственная разработка].

Передаем диск. (рисунок 14)

Рисунок 14 – Передача диска

Примечание – Источник: [собственная разработка].

И теперь, если нам нужно будет узнать, у кого в данный момент находится наш диск The Final Cut, мы вводим следующий запрос и мгновенно получаем результат. (рисунок 15)

Рисунок 15 – Просмотр необходимых данных

Примечание – Источник: [собственная разработка].

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

На сайте mysql.com можно скачать различные графические оболочки и приложения, которые удобны для отображения таблиц, находящихся в базе, осуществления администрирования сервера MySQL, запуска команд SQL.


ЗАКЛЮЧЕНИЕ

На сегодняшний день СУБД MySQL является одной из самых известных, надежных и быстрых из всего семейства существующих СУБД. Наиболее широко она используется для обслуживания разнообразных веб-сайтов. MySQL — свободная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей.

В процессе написания данной работы были выяснены следующие свойства MySQL сервера:

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

• Оптимизация связей с присоединением многих данных за один проход.

• Записи фиксированной и переменной длины.

• Гибкая система привилегий и паролей.

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

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

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

• Интерфейс с языками C и perl.

• Основанная на потоках, быстрая система памяти.

• Утилита проверки и ремонта таблицы (isamchk).

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

• Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.

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

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

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

И виртуальный магазин, и сервер знакомств, и всевозможные сайты, предоставляющие платные услуги, — все нуждаются в возможности обрабатывать и хранить большие объемы информации. MySQL предоставляет всем эту возможность совершенно бесплатно. Это действительно одна из самых мощных, быстрых и надежных СУБД.

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


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ




1. 20 року слідчий посада найменування органу ініціали п2
2. Нижноватомэнергосбы
3. En для существительных общего рода и ~et для существительных среднего рода
4. методические рекомендации по организации учебных и производственных практик студентов очного и заочного
5. Аудит материально-производственных запасов
6. Николай Иванович Кареев
7. Введение Правовое положение человека и гражданина в полном объеме характеризуется совокупностью прав св
8. Subjects Stop chttering nd open your books
9. постановка проблемы и актуальные направления социальной политики Социальный прогресс и смены периодо
10. тема нормативного регулирования бухгалтерского учета
11. Тема-Гідравлічний розрахунок системи водяного опалення за методом характеристик опору
12. деятельность специально формируемая
13. 93 ВІДНОСИНИ РАДЯНСЬКОЇ ДЕРЖАВИ ТА ПРАВОСЛАВНОЇ ЦЕРКВИ В КРИМУ в кінці 40х ~на початку 60х
14. Обоснование необходимости выведения на рынок разработанного программного обеспечения
15. Моделирование систем электроснабжения 1
16. Сумах дубильный
17. Базовая культура личности Понятие и история возникновения
18. Эволюция V Клубного Чемпионата Красноярского края по настольным играм Время проведения- 15 декабря с 11
19.  Понятие правонарушения4 Глава 2
20. Тема- Таблицы. Создание таблиц