Слайд 2
Установка/ переустановка MySQL, администрирование
Разработка таблиц, миграция данных, запросы,
б/д «Клиент-заказ», SQLYog (2)
Разработка таблиц, сложных запросов, представлений, б/д
«Приборы», dbForge (2)
Разделение таблиц, разработка сохраненных процедур, триггеров (2)
Установка Денвера, настройка phpMyAdmin, б/д «ФирмаДоговор», разработка блока ввода/корректировки php клиента к б/д (2).
Слайд 3
6. Работа с массивами в php – MySQL,
разработка иерархической структуры.
7. VS 2012, SQLite, разработка толстого клиента,
массивы. (2)
8. VS 2012, MS SQL Server, asp страницы.
9. MongoDb, серверные JavaScript
10. Самостоятельная работа – полное Web приложение к б/д «ФирмаДоговор» (5)
(MySQL, PHP, PDO)
10. КУРСОВАЯ !!!!!!
Слайд 4
История.
В 1994 году компанией Hughes Technologies была
выпущена СУБД mSQL (она же MiniSQL) — легковесная клиент-серверная) — легковесная клиент-серверная реляционная СУБД.
Она заполнила
вакуум, образовавшийся между встроенными настольными СУБД типаMicrosoft AccessОна заполнила вакуум, образовавшийся между встроенными настольными СУБД типаMicrosoft Access и коммерческими СУБД уровня предприятия как OracleОна заполнила вакуум, образовавшийся между встроенными настольными СУБД типаMicrosoft Access и коммерческими СУБД уровня предприятия как Oracle и DB2.
С 1994 по 1997 год её популярность росла и mSQL стала популярной среди open source разработчиков. При этом исходный код самой mSQL не является открытым.
Слайд 5
История.
MySQL возникла как попытка применить mSQL к собственным
разработкам компании: таблицам, для которых использовались ISAM — подпрограммы низкого
уровня. В результате был выработан новый SQL — подпрограммы низкого уровня. В результате был выработан новый SQL-интерфейс, но API-интерфейс остался в наследство от mSQL.
С 1996 года развитие mSQL затормозилось, её место заняла MySQL. В 1999 году MySQL обогнала mSQL по популярности. Последняя версия mSQL — 3.11 — была выпущена 1 июня 2012 года.
Слайд 6
История.
Название «MySQL».
Разработчики дают два варианта:
либо потому, что практически все наработки компании начинались с
префикса My, либо в честь девочки по имени My, дочери Майкла Монти Видениуса, одного из разработчиков системы.
Логотип MySQL в виде дельфина носит имя Шакила «Sakila». Он был выбран из большого списка предложенных пользователями «имён дельфина».
Слайд 7
Сервер MySQL – современные реалии.
MySQL –
разработка шведской фирмы АВ. MySQL портирована на большое количество
платформ(~~26). MySQL является решением для малых и средних приложений.
26.2. 2008 года Sun Microsystems приобрела MySQL AB за 1 млрд долларов, 27.1.2010 года Oracle приобрела саму Sun Microsystems за 7, 4 млрд. долларов и включила MySQL в свою линейку СУБД. На сегодня MySQL распространяется как под свободной, так и под коммерческой лицензией Oracle.
Слайд 8
Сервер MySQL – современные реалии.
АВ :
Первый внутренний выпуск MySQL состоялся 23 мая 1995 года
Версия
для Windows систем (Windows 95 и NT) выпущена 8 января 1998.
Релиз версии 3.23 в январе 2001.
Версия 4.0 − март 2003, 4.1 − октябрь 2004.
Версия 5.0 − октябрь 2005, 5.1 − ноябрь 2008.
Oracle: версия 5.4 − апрель 2009, не была выпущена.
Версия 5.5 − декабрь 2010.
Версия 5.6 − февраль 2013.
Версия 5.7 − октябрь 2015.
Слайд 9
MySQL 5.5
1. Улучшена производительность на многоядерных процессорах.
2. Улучшена производительности движка InnoDB и особенно блокировки таблиц.
3. Команда SHOW
ENGINE INNODB STATUS.
4. Поддержка новых многобайтовых кодировок: utf16, utf32, utf8mb4.
5.Улучшена работа с XML, новый оператор LOAD XML.
6. Добавлена функция TO_SECONDS(). (Дата в секунды)
Слайд 10
MySQL 5.6
Улучшения в производительности
и масштабируемости,
Расширен функционал
InnoDB,
Новые возможности в механизмах репликации и инструментирования запросов.
Также
стало возможными получить быстрый доступ к данным в InnoDB
таблицах используя NoSQL интерфейс (Возможность работать с ключ-значение)
Полнотекстовый поиск в таблицах InnoDB
Слайд 11
MySQL 5.7
Поддержка манипуляции данными в формате JSON.
Компонент
MySQL Router, позволяющий организовать подключение приложений к нескольким БД
MySQL.
Проведена оптимизация производительности .
Поддержка режима репликации.
Улучшение движка InnoDB.
Расширены средства обработки состояния и диагностики работы СУБД .
Изменен ие в работе некоторых команд и др.
Слайд 12
Сервер MySQL – современные реалии
Сообществом разработчиков MySQL созданы
различные ответвления кода, такие как Drizzle (англ.), OurDelta, Percona
Server, и MariaDB. Все эти ответвления уже существовали на момент поглощения компании Sun корпорацией Oracle.
MariaDB — представляет собой разрабатываемое сообществом ответвление СУБД MySQL. Это ПО имеет статус свободной СУБД (лицензия GPL). Ведущий разработчик Майкл Видениус, автор оригинальной версии MySQL и основатель компании Monty Program AB.
Слайд 13
Движки MySQL совместимых СУБД
БД — это обертка вокруг
движка хранения данных:
прием запросов и управление запросами;
кэширование, обслуживающие
функции;
обеспечение работы с низкоуровневым API движка.
Движок:
хранение данных (на диске или в памяти);
работа с ОС;
обеспечение выдачи выборок по запросу от сервера.
Раньше связка "сервер + движок" была монолитная, теперь это структура с плагинами. Движок в этом случае просто модуль, а сервер не зависит от системы хранения данных.
Слайд 14
Движки MySQL совместимых СУБД
. InnoDB — основной движок для
мускула. Поддерживает транзакции, репликацию, построчную блокировку. Достаточно устойчив к
сбоям.
• MyISAM — проблемный движок, плохо переносящий крах сервера. Не поддерживает транзакции, но имеет полнотекстовые индексы и быстро работает. Самый популярный.
• Aria — замена для MyISAM с поддержкой транзакций и улучшенной работой с памятью. Движок гарантирует целостность данных и при этом не уступает в скорости MyISAM.
Слайд 15
Движки MySQL совместимых СУБД
• CVS — специализированный движок на
случай, когда требуется хранить и обрабатывать большие массивы строковых
данных, разделяемых запятой.
• Federated/FederatedX — этот движок специализируется на прозрачном разнесении данных по нескольким серверам (физическим) на уровне таблицы.
• PBXT — новый движок, замена InnoDB с новыми возможностями; оптимизирован для большого количества одновременных транзакций.
Слайд 16
Движки MySQL совместимых СУБД
• Blackhole — служебный движок, не
производящий никаких записей на диск. Используется для репликации.
• Archive —
движок, который максимально быстро работает на запись. Применяется для хранения больших массивов данных. Для эффективности хранения используется сжатие, что приводит к медлительности во время выборок.
• XtraDB — расширенная и исправленная в некоторых проблемных местах InnoDB от компании Percona.
Слайд 17
Движки MySQL совместимых СУБД
• MERGE — движок для представления
данных в одной таблице из нескольких однотипных разных.
• MEMORY —
движок, использующийся для хранения данных не на диске, а в памяти. Информация из базы доступна только во время работы сервера.
• BlitzDB — еще одна замена для MyISAM с хорошей производительностью за счет встроенного построчного кэширования и автоматического восстановления после сбоев. Движок не поддерживает транзакции.
Слайд 18
Движки MySQL совместимых СУБД
• NDB — движок для кластера,
имеет много проблем и плохую производительность.
• Falcon — легендарный движок
от компании MySQL AB, разрабатываемый еще со времен Sun, когда было принято решение заменить оракловский InnoDB.
• SphinxSE — полнотекстовый движок от создателя поискового сервера Sphinx. Лучший вариант для полнотекстового поиска и индексации по правилам русского языка. Легко оперирует терабайтами данных, обеспечивая при этом все возможности современной БД.
Слайд 19
Основные движки MariaDB
MySQL — два кита: движки InnoDB
и MyISAM.
MariaDB использует свои собственные движки. Aria пришел на
замену MyISAM, более производителен благодаря построчному кэшированию и оптимизированному формату упаковки данных, транзакционный. MariaDB использует улучшенные форматы хранения данных, поэтому быстрее восстанавливается после сбоев.
Принадлежащий Oracle движок InnoDB заменен на XtraDB, разработку компании Percona. Для обратной совместимости с MySQL движок XtraDB в MariaDB называется InnoDB.
Слайд 20
Подробнее о типах таблиц в MySQL
MyISAM – платформо-независимый
тип таблиц. Не транзакционные. Для MyISAM характерно наличие трех
файлов: *.MYI – индексные файлы, *.MYD – данные, *.frm – схема таблицы.
MySQL хранит счетчик подключений к таблице MyISAM. Когда таблица закрывается, счетчик сбрасывается в нуль. Это используется для диагностики повреждений таблиц.
Для автоинкрементных столбцов таблиц MyISAM программа MySQL ведет внутренний счетчик, значения этого столбца никогда не используются повторно.
Слайд 21
Таблицы MyISAM
Транзакции не поддерживаются; (MySQL 5.5)
Максимальный размер диска:
256 Тб;
Полнотекстовфй поиск;
Блокировка на уровне таблицы;
Не работает а кластере;
Не
поддерживаются внешние ключи;
Поддерживается репликация;
Максимальное количество индексов: 64;
Максимальное количество записей: 2^32;
Максимальная длина ключа: 1000 байт;
Масимальная суммарная длина полей VARCHAR та CHAR: 64 Кб.
Слайд 22
Таблицы MyISAM
Таблицы MyISAM могут быть фиксированные, динамические либо
сжатые. Таблица имеет записи фиксированной длины, если в ней
нет столбцов типа VARCHAR, BLOB или TEXT.
Фиксированный тип таблиц:
очень быстрый;
легко кешируется;
легко восстанавливается после повреждения;
не нужна дефрагментация;
требуют больше места, чем динамические таблицы.
Все записи таблицы будут динамическими, если в ней есть столбцы типа VARCHAR, BLOB или TEXT.
Слайд 23
Таблицы MyISAM
Динамический тип таблиц:
все текстовые столбцы – динамические;
при
хранении каждой строке ставится в соответствие «карта » ряда,
где отмечены пустые строки и столбцы с нулевым числовым значением длины;
занимают меньше места, чем фиксированные;
если строки становятся большими – они разбиваются на фрагменты и хранятся отдельно;
может возникать фрагментация диска- тяжело восстанавливать поврежденные таблицы;
по мере распределения записей по файлу время поиска данных возрастает.
Слайд 24
Таблицы MyISAM
Сжатые таблицы имеют формат Read Only. В
них могут храниться как фиксированные так и динамические таблицы.
Каждая запись сжимается отдельно с применением отдельной хэш-таблицы для каждого столбца. Сжатая таблица создается утилитой myisampack. С помощью утилиты myisamchk можно преобразовать сжатую таблицу обратно в фиксированный или динамический формат.
Слайд 25
Таблицы MyISAM
Таблицы типа myisam переносимы.
База данных должна содержать
таблицы одного типа, или этот вопрос должен быть хорошо
продуман.
БД с таблицами myisam представляет собой отдельную директорию с именем базы данных и файлами *.myi, *.myd, *.frm для каждой таблицы.
БД располагается в директории для данных пользователей.
Слайд 26
Таблицы MyISAM
Windows XP
c:\Documents and Settings\ All Users\
ApplicationData\ MySQL\Data
Windows 7, 8, 10
c:\Program Data\MySQL\Data
Папки ApplicationData
и Program Data – скрытые. Чтобы их увидеть, нужно установить в свойствах папки опцию «Показывать скрытые файлы и папки»
Слайд 27
Таблицы InnoDB
InnoDB – транзакционные (Оракл).
Данные InnoDB таблиц
всех пользователей хранятся в больших совместно используемых файлах. Размер
файлов определяется в конфигурационном файле.
Таблицы InnoDB блокируются на уровне записей. На случай отмены транзакций ведется журнал транзакций. Он подвержен внутренней ротации.
Имеет ряд ограничений на количество столбцов и на индексирование. Ряд недостатков устранен в последних версиях MySQL.
Слайд 28
Таблицы InnoDB
Максимальный размер диска 64 Тб;
Полная поддержка транзакций
(4 уровня изоляции);
Блокировка на уровне записи;
Полнотекстовый поиск с 5.6;
Поддержка
внешних ключей;
Поддержка организации доступа к данным без использования файловой системы;
Может использоваться на ОС с ограничением на размер файла.
Слайд 29
Таблицы Memory
Heap (Memory) – не транзакционные таблицы. Таблицы
Heap хранятся в памяти, доступ к ним осуществляется чрезвычайно
быстро. Для поиска записей применяется хэш-таблица.
Резидентные таблицы не могут иметь столбцы типа BLOB или TEXT. Нельзя использовать флаг AUTO_INCREMENT. Можно создавать индексы, но нельзя индексировать столбцы, допускающие значения NULL. Записи резидентных таблиц имеют фиксированную длину.
Доступ к резидентным таблицам имеют все пользователи. Эти таблицы уничтожаются при выключении сервера.
Слайд 30
Таблицы Memory
Пример 1. Создание таблицы в памяти для
суммирования количества подключений с определенного IP адреса в указанный
промежуток времени.
Create table TEST engine=memory
Select Ip, sum(DownLoads) as Down
From Log_table
Where (dt>= 2016-02-01)
and (dt<= 2016-02-28)
Group by Ip;
Слайд 31
Таблицы Merge
Merge – не транзакционный тип.
В таблице типа
Merge группируется несколько таблиц MyISAM одинаковой структуры. Программа MySQL
создает файл с расширением *.MRG, в котором содержится список таблиц с их структурой.
Недостатки объединенных таблиц:
в них нельзя вставлять записи;
извлечение данных из объединенных таблиц осуществляется медленнее, чем из таблиц других типов.
Слайд 32
Система привилегий сервера MySQL
Идентификатор (ID) доступа –
это имя пользователя.
Ключевое слово USER – Идентификатор доступа.
Основная функция
системы привилегий MySQL – аутентификация пользователя и ассоциирование его с привилегиями базы данных.
Дополнительные функции системы привилегий:
обслуживания анонимного пользователя;
предоставление привилегий для LOAD DATA INFILE;
предоставление привилегий для администрирования.
Слайд 33
Система привилегий сервера MySQL
При соединении с
сервером MySQL личность устанавливается по имени хоста и имени
пользователя.
Управление доступом в MySQL:
Этап 1: сервер проверяет, имеется ли у личности, запросившей соединение, разрешение на это.
Этап 2: если разрешение имеется, сервер проверяет каждый запрос, чтобы убедиться, что у личности имеется достаточно привилегий для его выполнения.
Слайд 34
Система привилегий сервера MySQL
Сервер использует таблицы user,
db и host из БД mysql для управления доступом.
Имя таблицы user db host
Поля контекста Host Host Host
User Db Db
Password User
Поля Select_priv … Select_priv … Select_priv …
привилегий
Наличие/отсутствие привилегии – 1 или 0.
Таблица user – глобальные привилегии.
Слайд 35
Система привилегий сервера MySQL
Привилегии доступа могут
быть установлены для отдельной таблицы и даже столбика. На
втором этапе управления доступом при верификации запросов сервер может дополнительно обратиться за этими привилегиями к таблицам tables_priv и columns_priv.
Использование сервером таблиц привилегий:
По полям host, user, рassword таблицы user – разрешить подсоединение или отказать в нем.
Условие соединения – нахождение в таблице user записи, в которой имя хоста, имя пользователя и пароль совпадают с введенными в запросе на подсоединение к серверу.
Слайд 36
Система привилегий сервера MySQL
Таблицы db и
host используются совместно:
Поля таблицы db определяют, каким
пользователям, при подсоединении с каких хостов разрешен доступ к каким базам данных.
Таблица host используется в качестве расширения таблицы db в случае, если необходимо применить некоторую запись из таблицы db к разным хостам.
Таблицы tables_priv и columns_priv подобны таблице db, но областью их действия является уровень таблиц и столбцов.
Слайд 37
Аутентификация пользователя
Значения в полях таблицы user :
В поле host ? имя хоста | IP-адрес
| 'localhost‘;
В поле host можно использовать шаблоны `%' и `_';
Значение '%' в поле host – любое имя хоста;
В поле user запрещено использовать шаблонные
символы, но пустое значение разрешено;
Поле рassword может быть пустым.
Слайд 38
Установка MySQL сервера
MySQL: http://dev.mysql.com/downloads.
Инсталляционные пакеты:
MySQL инсталляторы –
mysql-installer-community-5.6.30.0.msi
mysql-installer-commercial-5.6.30.0.msi,
Архив –
mysql-5.6.30-win32.zip
mysql-5.6.30-winx64.zip
Архив не включает
автоматический инсталлер, все действия выполняются вручную, с командной строки.
Рекомендован MySQL инсталлятор.
Слайд 39
Установка MySQL сервера
Действия, которые выполняет инсталлятор:
1.
Создает конфигурационный файл my.ini.
2. Импортирует пример базы данных.
3. По умолчанию добавляет MySQL как Windows сервис.
4. Создает учетные записи глобальных пользователей, роли у которых могут быть: БД Админ, БД Дизайнер, Backup Админ.
5. Создает файлы журналов ошибок, расписания, журнал медленных запросов
Слайд 41
Вид инсталляции
√ Developer: Инсталлирует все приложения разработчика,
работающего с MySQL. (По умолчанию)
Server only:
Только MySQL сервер.
Client only: Только MySQL клиент продукты, такие
как MySQL Workbench. Не включает сервер.
Full: Инсталлирует все доступные MySQL
продукты.
Custom: Конфигурация опций и инсталляционных
путей к директориям вручную.
Конфигурация: Сетевые установки
- Порт
3306
- TCP/IP
- Открыть доступ
к порту для Firewall
- Именованные каналы не назначать
- Разделяемую память не назначать
- Запросить дополнительные опции
Учетные записи и роли
Можно добавить
себя Add User
- Для Root ввести пароль root. Это для нас backdoor
Слайд 48
Дальнейшая конфигурация MySQL
1. Создать сервис. Имя MySQL56
2. Файлы журналов по умолчанию
3. Нажать Execute,чтобы применить
конфигурацию.
4. Соединиться с сервером, используя пароль root и проверить соединение
5. Инсталлировать дополнительные продукты (коннектор, верстак и т.д)
Слайд 49
MySQL Notifier
Остановить / стартовать сервис MySQL
В системном трее
значок дельфина
Слайд 50
MySQL Notifier
Возможности Notifier