Многие компании создают различные многофункциональные приложения для облегчения управления, разработки и администрирования баз данных.
Большинство реляционных баз данных, за исключением MS Access, состоят из двух отдельных компонентов: «back-end», где хранятся данные и «front-end» - пользовательский интерфейс для взаимодействия с данными. Этот тип конструкции достаточно умный, так как он распараллеливает двухуровневую модель программирования, которая отделяет слой данных от пользовательского интерфейса и позволяет сконцентрировать рынок ПО непосредственно на улучшении своих продуктов. Эта модель открывает двери для третьих сторон, которые создают свои приложения для взаимодействия с различными базами данных.
В Интернете каждый может найти много продуктов для разработки и администрирования баз данных MySQL. Мы решили собрать 10 самых популярных инструментов в одной статье, чтобы вы смогли сэкономить свое время.
1. Workbench
Первое место, по праву принадлежит инструменту Workbench (разработка компании Sun Systems/Oracle), который может работать на платформах Microsoft Windows, Mac OS X и Linux. Workbench объединяет в себе разработку и администрирование баз данных и является преемником DBDesigner4.MySQL Workbench распространяется под свободной лицензией - Community Edition и с ежегодной оплачиваемой подпиской - Standard Edition. Последняя включает в себя дополнительные возможности, которые способны существенно улучшить производительность, как разработчиков, так и администраторов баз данных.
Стоимость - бесплатно.
Что делает Workbench популярным?
- возможность представить модель БД в графическом виде, а также редактирование данных в таблице;
- наличие простого и функционального механизма по созданию связей между полями таблиц, среди которых реализована связь «многие-ко-многим» с возможностью создания таблицы связей;
- функция Reverse Engineering позволяет восстанавливать структуру таблиц и связей из той, которая была реализована ранее и хранится на сервере БД;
- наличие редактора SQL-запросов, который дает возможность при отправке на сервер получать ответ в табличном виде и другие возможности.
2. Navicat
Второе место занимает Navicat (разработка компании PremiumSoft CyberTech Ltd) - инструмент для разработки и администрирования баз данных, который работает на любом сервере MySQL, начиная с версии 3.21. Для MySQL, Navicat доступен для работы на платформах Microsoft Windows, Mac OS X и Linux.
Стоимость продукта варьируется от 199 до 379 долл. США.
Что делает Navicat популярным?
- наличие визуального конструктора запросов;
- возможность импорта, экспорта и резервного копирования данных;
- возможность создавать отчеты;
- SSH и HTTP туннелинг;
- миграция и синхронизация данных и структуры;
- инструмент для планирования задач и другие возможности.
3. PHPMyAdmin
PHPMyAdmin - бесплатное приложение с открытым кодом, предназначенное для администрирования СУБД MySQL. PHPMyAdmin представляет собой веб-интерфейс с помощью которого можно администрировать сервер MySQL, запускать команды и просматривать содержимое таблиц и БД через браузер.
Стоимость - бесплатно.
Что делает PHPMyAdmin популярным?
- возможность управлять СУБД MySQL без непосредственного ввода SQL команд;
- как панель управления PHPMyAdmin предоставляет возможность администрирования выделенных БД;
- интенсивное развитие;
- возможность интегрировать PHPMyAdmin в собственные разработки благодаря лицензии GNU General Public License и другие возможности.
4. dbForge Studio for MySQL
dbForge Studio for MySQL - инструмент, представляющий интерес как для пользователей MySQL, так и для разработчиков БД. С его помощью вы сумеете легко автоматизировать рутинную работу и сэкономить время. Сегодня dbForge Studio for MySQL представлен в трех редакциях: Express, Standard и Professional, что позволяет выбрать тот инструмент, который нужен именно вам. Пользоваться dbForge Studio for MySQL можно как коммерческой, так и бесплатной версией.
Существует как бесплатная, так и платная версии, цена последней составляет 49,95 долл. США (стандартное издание) и 99,99 долл. США (профессиональное издание).
Что делает dbForge Studio популярным?
- наличие средств для централизованного администрирования;
- инструменты для сравнения БД;
- визуальный профилировщик запросов;
- возможность управлять привилегиями пользователей;
- наличие Дизайнера БД, который позволяет строить визуальные диаграммы;
- улучшенная работа с проектами БД и другие возможности.
5. HeidiSQL
HeidiSQL - бесплатный инструмент для управления базами данных. Достойная альтернатива PHPMyAdmin, которая позволяет создавать и редактировать таблицы, представления, триггеры, процедура, а также просматривать и редактировать данные. Также HeidiSQL предоставляет возможность экспорта данных как в SQL файл, так и в буфер обмена на других серверах.
Стоимость - бесплатно.
Что делает HeidiSQL популярным?
- возможность подключаться к серверу с помощью командной строки;
- возможность пакетной оптимизации и восстановления таблиц;
- возможность редактирования столбцов, индексов и внешних ключей таблиц, редактирование тела и параметров SQL процедур, триггеров и др.;
- простое форматирование неупорядоченных SQL;
- синхронизация таблицы между разными базами данных и другие возможности.
6. SQL Maestro для MySQL
SQL Maestro для MySQL - инструмент для администрирования, разработки и управления наиболее востребованных СУБД. Удобный графический интерфейс дает возможность выполнять SQL запросы и скрипты, управлять привилегиями пользователей, экспортировать и создавать резервные копии данных.
В зависимости от выбранной лицензии и варианта использования, стоимость данного инструмента варьируется от 99 до 1949 долл. США.
Что делает SQL Maestro для MySQL популярным?
- поддержка версий MySQL сервера с версии 3.23;
- наличие конструктора баз данных;
- возможность редактирование, группировки, сортировки и фильтрации данных;
- визуальный конструктор запросов;
- SSH и HTTP туннелинг;
- BLOB-редактор и другие возможности.
7. EMS SQL Manager для MySQL
EMS SQL Manager для MySQL - инструмент для разработки и администрирования баз данных, который поддерживает различные функции MySQL и работает со всеми версиями MySQL старше 3.23. С его помощью у вас есть возможность визуально редактировать, импортировать и экспортировать БД, выполнять сценарии SQL, управлять привилегиями пользователей, визуально проектировать базы данных MySQL.
Существует платная и бесплатная версии приложения. Последняя имеет ряд функциональных ограничений. Стоимость платной версии варьируется в пределах 95 – 245 долл. США.
Что делает EMS SQL Manager for MySQLпопулярным?
- поддержка данных UTF8;
- простое управление различными объектами MySQL;
- совместимость со всеми версиями с 3.23 по 6.0 включительно;
- наличие графических и текстовых инструментов для формирования запросов;
- SSH и HTTP туннелинг;
- удобный конструктор отчетов и другие возможности.
8. SQLyog
SQLyog - один из наиболее мощных инструментов, который сочетает в себе возможности MySQL Administrator, PHPMyAdmin и некоторые другие инструменты для администрирования и разработки баз данных. SQLyog работает на платформах Microsoft Windows, Windows NT. и Linux с помощью Wine.
Доступна как бесплатная, так и платная версия SQLyog. Стоимость платной версии - от 99 до 1499 долл. США (варьируется в зависимости от количества пользователей и лицензии, с поддержкой или без нее).
Что делает SQLyog популярным?
- удобный конструктор запросов;
- возможность синхронизации данных;
- поддержка юникода;
- SSH и HTTP, HTTPS туннелинг;
- «умное» автозавершение работы;
- интеллектуальное дополнение кода и другие возможности.
9. DBTools Manager
DBTools Manager - приложение для управления данными, с встроенной поддержкой MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle и других БД. Поддерживаемые платформы: Windows 2000, XP, Vista, 7.
DBTools Manager представлен в бесплатном (Standard) и платном варианте (Enterprise). Стоимость составляет 69.90 долл. США за одну лицензию, при покупке нескольких лицензий предусмотрены скидки.
Подробнее ознакомиться и приобрести DBTools Manager можно здесь
Многие компании создают различные многофункциональные приложения для облегчения управления, разработки и администрирования баз данных.
Большинство реляционных баз данных, за исключением MS Access, состоят из двух отдельных компонентов: «back-end», где хранятся данные и «front-end» - пользовательский интерфейс для взаимодействия с данными. Этот тип конструкции достаточно умный, так как он распараллеливает двухуровневую модель программирования, которая отделяет слой данных от пользовательского интерфейса и позволяет сконцентрировать рынок ПО непосредственно на улучшении своих продуктов. Эта модель открывает двери для третьих сторон, которые создают свои приложения для взаимодействия с различными базами данных.
В Интернете каждый может найти много продуктов для разработки и администрирования баз данных MySQL. Мы решили собрать 10 самых популярных инструментов в одной статье, чтобы вы смогли сэкономить свое время.
1. Workbench
Первое место, по праву принадлежит инструменту Workbench (разработка компании Sun Systems/Oracle), который может работать на платформах Microsoft Windows, Mac OS X и Linux. Workbench объединяет в себе разработку и администрирование баз данных и является преемником DBDesigner4.MySQL Workbench распространяется под свободной лицензией - Community Edition и с ежегодной оплачиваемой подпиской - Standard Edition. Последняя включает в себя дополнительные возможности, которые способны существенно улучшить производительность, как разработчиков, так и администраторов баз данных.
Стоимость - бесплатно.
Что делает Workbench популярным?
- возможность представить модель БД в графическом виде, а также редактирование данных в таблице;
- наличие простого и функционального механизма по созданию связей между полями таблиц, среди которых реализована связь «многие-ко-многим» с возможностью создания таблицы связей;
- функция Reverse Engineering позволяет восстанавливать структуру таблиц и связей из той, которая была реализована ранее и хранится на сервере БД;
- наличие редактора SQL-запросов, который дает возможность при отправке на сервер получать ответ в табличном виде и другие возможности.
2. Navicat
Второе место занимает Navicat (разработка компании PremiumSoft CyberTech Ltd) - инструмент для разработки и администрирования баз данных, который работает на любом сервере MySQL, начиная с версии 3.21. Для MySQL, Navicat доступен для работы на платформах Microsoft Windows, Mac OS X и Linux.
Стоимость продукта варьируется от 199 до 379 долл. США.
Что делает Navicat популярным?
- наличие визуального конструктора запросов;
- возможность импорта, экспорта и резервного копирования данных;
- возможность создавать отчеты;
- SSH и HTTP туннелинг;
- миграция и синхронизация данных и структуры;
- инструмент для планирования задач и другие возможности.
3. PHPMyAdmin
PHPMyAdmin - бесплатное приложение с открытым кодом, предназначенное для администрирования СУБД MySQL. PHPMyAdmin представляет собой веб-интерфейс с помощью которого можно администрировать сервер MySQL, запускать команды и просматривать содержимое таблиц и БД через браузер.
Стоимость - бесплатно.
Что делает PHPMyAdmin популярным?
- возможность управлять СУБД MySQL без непосредственного ввода SQL команд;
- как панель управления PHPMyAdmin предоставляет возможность администрирования выделенных БД;
- интенсивное развитие;
- возможность интегрировать PHPMyAdmin в собственные разработки благодаря лицензии GNU General Public License и другие возможности.
4. dbForge Studio for MySQL
dbForge Studio for MySQL - инструмент, представляющий интерес как для пользователей MySQL, так и для разработчиков БД. С его помощью вы сумеете легко автоматизировать рутинную работу и сэкономить время. Сегодня dbForge Studio for MySQL представлен в трех редакциях: Express, Standard и Professional, что позволяет выбрать тот инструмент, который нужен именно вам. Пользоваться dbForge Studio for MySQL можно как коммерческой, так и бесплатной версией.
Существует как бесплатная, так и платная версии, цена последней составляет 49,95 долл. США (стандартное издание) и 99,99 долл. США (профессиональное издание).
Что делает dbForge Studio популярным?
- наличие средств для централизованного администрирования;
- инструменты для сравнения БД;
- визуальный профилировщик запросов;
- возможность управлять привилегиями пользователей;
- наличие Дизайнера БД, который позволяет строить визуальные диаграммы;
- улучшенная работа с проектами БД и другие возможности.
5. HeidiSQL
HeidiSQL - бесплатный инструмент для управления базами данных. Достойная альтернатива PHPMyAdmin, которая позволяет создавать и редактировать таблицы, представления, триггеры, процедура, а также просматривать и редактировать данные. Также HeidiSQL предоставляет возможность экспорта данных как в SQL файл, так и в буфер обмена на других серверах.
Стоимость - бесплатно.
Что делает HeidiSQL популярным?
- возможность подключаться к серверу с помощью командной строки;
- возможность пакетной оптимизации и восстановления таблиц;
- возможность редактирования столбцов, индексов и внешних ключей таблиц, редактирование тела и параметров SQL процедур, триггеров и др.;
- простое форматирование неупорядоченных SQL;
- синхронизация таблицы между разными базами данных и другие возможности.
6. SQL Maestro для MySQL
SQL Maestro для MySQL - инструмент для администрирования, разработки и управления наиболее востребованных СУБД. Удобный графический интерфейс дает возможность выполнять SQL запросы и скрипты, управлять привилегиями пользователей, экспортировать и создавать резервные копии данных.
В зависимости от выбранной лицензии и варианта использования, стоимость данного инструмента варьируется от 99 до 1949 долл. США.
Что делает SQL Maestro для MySQL популярным?
- поддержка версий MySQL сервера с версии 3.23;
- наличие конструктора баз данных;
- возможность редактирование, группировки, сортировки и фильтрации данных;
- визуальный конструктор запросов;
- SSH и HTTP туннелинг;
- BLOB-редактор и другие возможности.
7. EMS SQL Manager для MySQL
EMS SQL Manager для MySQL - инструмент для разработки и администрирования баз данных, который поддерживает различные функции MySQL и работает со всеми версиями MySQL старше 3.23. С его помощью у вас есть возможность визуально редактировать, импортировать и экспортировать БД, выполнять сценарии SQL, управлять привилегиями пользователей, визуально проектировать базы данных MySQL.
Существует платная и бесплатная версии приложения. Последняя имеет ряд функциональных ограничений. Стоимость платной версии варьируется в пределах 95 – 245 долл. США.
Что делает EMS SQL Manager for MySQLпопулярным?
- поддержка данных UTF8;
- простое управление различными объектами MySQL;
- совместимость со всеми версиями с 3.23 по 6.0 включительно;
- наличие графических и текстовых инструментов для формирования запросов;
- SSH и HTTP туннелинг;
- удобный конструктор отчетов и другие возможности.
8. SQLyog
SQLyog - один из наиболее мощных инструментов, который сочетает в себе возможности MySQL Administrator, PHPMyAdmin и некоторые другие инструменты для администрирования и разработки баз данных. SQLyog работает на платформах Microsoft Windows, Windows NT. и Linux с помощью Wine.
Доступна как бесплатная, так и платная версия SQLyog. Стоимость платной версии - от 99 до 1499 долл. США (варьируется в зависимости от количества пользователей и лицензии, с поддержкой или без нее).
Что делает SQLyog популярным?
- удобный конструктор запросов;
- возможность синхронизации данных;
- поддержка юникода;
- SSH и HTTP, HTTPS туннелинг;
- «умное» автозавершение работы;
- интеллектуальное дополнение кода и другие возможности.
9. DBTools Manager
DBTools Manager - приложение для управления данными, с встроенной поддержкой MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle и других БД. Поддерживаемые платформы: Windows 2000, XP, Vista, 7.
DBTools Manager представлен в бесплатном (Standard) и платном варианте (Enterprise). Стоимость составляет 69.90 долл. США за одну лицензию, при покупке нескольких лицензий предусмотрены скидки.
Подробнее ознакомиться и приобрести DBTools Manager можно здесь
- Tutorial
- Recovery Mode
Всем привет! Меня зовут Олег и я программист-любитель под Android. Любитель потому что в данный момент я зарабатываю деньги программированием в совсем другом направлении. А это хобби, которому я посвящаю свое свободное время. К сожалению у меня нет знакомых программистов под Android и все свои базовые знания я черпаю либо из книг, либо из интернета. Во всех тех книжках и статьях в интернете, которые я читал, созданию базы данных для приложения отводится крайне мало места и по сути все описание сводится к созданию класса являющегося наследником SQLiteOpenHelper
и последующему внедрению SQL кода в Java код. Если не считать, что мы получаем плохо читаемый код (а если в нашем приложении появляется больше 10 таблиц, то вспоминать все эти взаимосвязи между таблицами тот еще ад), то в принципе жить можно конечно, но как-то совершенно не хочется.
Забыл сказать самое главное, можно сказать что это моя проба пера тут. И так поехали.
О вечном вопросе: почему?
Почему в книгах и в статьях, посвященных программированию под Android, не описываются инструменты для проектирования архитектуры базы данных и какие-нибудь паттерны для работы с базами данных на этапе их создания я честно говоря не знаю. Казалось бы добавить всего пару страниц в книгу или написать отдельную статью (как делаю это я сейчас) проще простого - но нет. В этой статье, я кратко пройдусь по инструментам, которые я использую в своей работе и более подробно по коду который отвечает за начальное создание БД, который с моей точки зрения выглядит более читаемым и удобным.
Если в нашем приложении больше 5 таблиц, то уже было бы не плохо использовать какой-нибудь инструмент для визуального проектирования архитектуры БД. Поскольку для меня это хобби, то и использую я абсолютно бесплатный инструмент под названием Oracle SQL Developer Data Modeler (скачать его можно ).
Данная программа позволяет визуально рисовать таблицы, и строить взаимосвязи с ними. Многие ошибки проектирования архитектуры БД можно избежать при таком подходе проектирования (это я уже вам говорю как профессиональный программист БД). Выглядит это примерно так:
Спроектировав саму архитектуру, приступаем к более нудной части, заключающийся в созданий sql кода для создания таблиц. Для помощи в этом вопросе, я уже использую инструмент под названием SQLiteStudio (его в свою очередь можно скачать тут ).
Данный инструмент является аналогом таких известных продуктов как SQL Naviagator, Toad etc. Но как следует из названия, заточен он под работу с SQLite. Он позволяет визуально создать БД и получить DDL код создаваемых таблиц. Кстати, он также позволяет создавать представления (View), которые вы тоже при желании можете использовать в своем приложении. Не знаю насколько правильный подход использования представлений в программах для Android, но в одном из своих приложений я использовал их.
Собственно говоря я больше не каких сторонних инструментов не использую, и дальше начинается магия с Android Studio. Как я уже писал выше, если начать внедрять SQL код в Java код, то на выходе мы получим плохочитаемый, а значит и плохо расширяемый код. Поэтому я выношу все SQL инструкции во внешние файлы, которые у меня находятся в директории assets . В Android Studio выглядит это примерно так:
О директориях db и data
Внутри директории assets
я создал две директории db_01
и data_01
. Цифры в названиях директорий соответствуют номеру версии моей БД с которой я работаю. В директории db
у меня хранятся сами SQL скрипты создания таблиц. А в директории data
хранятся данные необходимые для начального заполнения таблиц.
Теперь давайте посмотрим на код внутри моего DBHelper который я использую в своих проектах. Сначала переменные класса и конструктор (тут без каких либо неожиданностей):
Private static final String TAG = "RoadMap4.DBHelper";
String mDb = "db_";
String mData = "data_";
Context mContext;
int mVersion;
public DBHelper(Context context, String name, int version) {
super(context, name, null, version);
mContext = context;
mVersion = version;
}
Теперь метод onCreate
и тут становится уже интереснее:
@Override
public void onCreate(SQLiteDatabase db) {
ArrayList
Логически он разделен на два цикла, в первом цикле я получаю список SQL - инструкций для создания БД и затем выполняю их, во втором цикле я уже заполняю созданные ранее таблицы начальными данными. И так, шаг первый:
Private ArrayList
Тут все достаточно просто, мы просто читаем содержимое файлов, и конкатенируем содержимое каждого файла в элемент массива. Обратите внимание, что я произвожу сортировку списка файлов, так как таблицы могут иметь внешние ключи, а значит таблицы должны создаваться в определенном порядке. Я использую нумерацию в название файлов, и с помощью нею и произвожу сортировку.
Private class QueryFilesComparator implements Comparator
С заполнением таблиц все веселей. Таблицы у меня заполняются не только жестко заданными значениями, но также значениями из ресурсов и UUID ключами (я надеюсь когда-нибудь прийти к сетевой версии своей программы, что бы мои пользователи могли работать с общими данными). Сама структура файлов с начальными данными выглядит так:
Несмотря на то, что файлы у меня имеют расширение sql, внутри не sql код а вот такая штука:
Prioritys
pri_id:UUID:UUID
pri_name:string:normal
pri_color:color:colorGreen
pri_default:int:1
prioritys
pri_id:UUID:UUID
pri_object:string:object_task
pri_name:string:hold
pri_color:color:colorBlue
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_object:string:object_task
pri_name:string:important
pri_color:color:colorRed
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_name:string:normal
pri_color:color:colorGreen
pri_default:int:1
prioritys
pri_id:UUID:UUID
pri_object:string:object_project
pri_name:string:hold
pri_color:color:colorBlue
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_object:string:object_project
pri_name:string:important
pri_color:color:colorRed
pri_default:int:0
Структура файла такая: я выполняю вызов функции split(":") применительно к строчке и если получаю что ее размер равен 1 то значит это название таблицы, куда надо записать данные. Иначе это сами данные. Первое поле это название поля в таблице. Второе поле тип, по которому я определяю что мне надо в это самое поле записать. Если это UUID - это значит мне надо сгенерировать уникальное значение UUID. Если string значит мне надо из ресурсов вытащить строковое значение. Если color, то опять-таки, из ресурсов надо вытащить код цвета. Если int или text, то я просто преобразую данное значение в int или String без каких либо телодвижений. Сам код выглядит вот так:
Private ArrayList