В последнее время я наблюдаю в блоге повышенный интерес к моей небольшой заметке о DbForge Studio.
В свое время, выбирая удобный инструмент для работы с MySQL для моего учебного курса "База данных и информационные системы", я обратил внимание на DbForge Studio. Время (и учебный процесс) подтвердил обоснованность сделанного выбора. Да, программа не без "хомутов", но со своими функциями она справляется очень неплохо. Готовя лекционный материал, я, как это водится, обратил свой взор за дополнительной информацией в интернет. К своему удивлению, я там вообще ничего толкового про программу не обнаружил. Справочная система на английском языке, поэтому для тех, у кого с ним проблемы, соответственно возникают и проблемы при работе с программой. Забавна реакция разработчиков на упрек одного из пользователей на отсутствие русского варианта справки. Они ответили так: мы вам и так предоставляем качественный продукт бесплатно, так еще и справочное пособие (бесплатно же) вам предоставь! Впрочем, все логично и правильно.
Естественно, для учебного процесса я описал работу с системой.
Прошло некоторое время, DbForge Studio по-прежнему нравился (и нравится) мне, и я решил содействовать популяризации программы, написав в прошлом году с этой целью большую статью "Работа с MySQL с помощью dbForge Studio" для белорусского компьютерного еженедельника "Компьютерные вести", которую и хочу предложить читателям блога, в развитие упомянутого выше поста.
Более 20 тыс. вакансий, открытых для ИТ-специалистов [4] в последнем квартале 2012 г., требуют от кандидатов знания языка запросов SQL [5].
Знание SQL [6] - наиболее распространенное требование к ИТ-специалистам, несмотря на то, что в 4 квартале 2012 г. потребность в специалистах по базам данных снизилась на 1,4 % по сравнению с 3 кварталом 2012 г. Тем не менее, в 20660 вакансиях в числе требований к навыкам сотрудника указано знание SQL.
Британская рекрутинговая компания CW Jobs
Проектировать базу данных можно с помощью SQL-команд, используя непосредственно инструменты MySQL [7], но этот вариант является достаточно кропотливым и трудоемким, потому существует достаточно много программных продуктов, значительно облегчающих эту непростую работу.
Одним из таких гибких профессиональных инструментов для разработчиков и пользователей MySQL является программа dbForge Studio [8] for SQL от компании Devart [9]. С ее помощью автоматизируются рутинные задачи разработки и администрирования MySQL: проектирование базы данных, ввод и редактирование данных таблиц, создание и выполнение SQL-скриптов [10], запросов и триггеров и др. Программа является бесплатной для частного некоммерческого использования и для учебных заведений.
Программа имеет русскую локализацию, однако ее справочное пособие (кстати, довольно неплохое) имеется только на английском языке. Как-то на форуме программы я вычитал объяснение разработчиков программы по поводу отсутствия русской версии справки. Суть его такова: мы и так предоставляем возможность бесплатного использования программы, так что требовать от нас еще и локализации (и поддержки) справки, мягко говоря, не корректно, что, на мой взгляд, полностью справедливо. С другой стороны, неплохо бы иметь какое-то представление о продукте именно на русском языке, тем более литературы по ней я не встречал (хотя, допускаю, где-то она и есть). Поэтому надеюсь, что данная статья поможет кому-то разобраться с данным, достаточно неплохим программным продуктом.
В статье рассматривается последняя на момент написания версия программы 6.0.265.
Интерфейс программы
Основное окно программы поделено на несколько областей (панелей):
- Проводник баз данных. Структурированный в виде дерева перечень объектов баз данных, объединенных в функциональные группы.
- Свойства. Отображает свойства выбранного объекта.
- Главное окно. Рабочее окно, в котором осуществляются все действия с базой данных.
- Проект.
- Окно вывода. Вывод сообщений системы.
Отмечу, что информация панелей не всегда автоматически обновляется. Поэтому, если вы не наблюдаете произведенных изменений, то попробуйте на панели проводника программы вызывать контекстное меню [11] на имени соединения и выбрать из него пункт "Обновить" либо нажать функциональную клавишу <F5>, либо на панели инструментов окна проводника щелкнуть кнопку "Обновить информацию схемы".
Подключение к серверу MySQL
После загрузки программы следует соединиться с сервером. Если это делается впервые, то на панели инструментов окна проводника [12] необходимо щелкнуть кнопку "Новое соединение", после чего появится окно "Свойства соединения базы данных", в котором указываются параметры соединения с сервером:
- IP -адрес [13] хоста, на котором расположена база данных.
- Порт (по умолчанию "3306").
- Имя пользователя.
- Его пароль [14].
- Можно также указать базу данных, с которой автоматически будет осуществляться работа после установки соединения.
Для проверки правильности введенных параметров щелкните кнопку "Проверить". При успешном соединении с сервером последует сообщение: "Соединение установлено".
После успешного подключения к серверу на панели проводника программы появится перечень баз данных на сервере, причем на корневом уровне находится название соединения. Одновременно в окне вывода появляется сообщение об установке соединения с сервером.
При следующих загрузках dbForge Studio for SQL создавать новое соединение не нужно, просто необходимо возобновить соединение с сервером. Это можно сделать разными способами, например, вызывать контекстное меню на имени соединения на панели проводника программы и выбрать из него пункт "Открыть (соединение)" или просто дважды щелкнуть на имени соединения.
Создание базы данных
- Для создания новой базы данных [15] следует выполнить команду База данных > Новая база данных..., после чего появится окно "Создать новую базу данных".
- В поле "Название" вводится произвольное имя.
- В списке "Кодировка" задается кодировка данных. Естественно, при работе с кириллицей следует выбрать русскую кодировку [16]для Windows "cp 1251".
- В списке "Сопоставление" задается правило для работы с данными таблиц. Например, для работы с данными на русском языке выбирается набор для "cp 1251_general_ci". Вместе с тем, сопоставление позволяет "детализировать" выбранную кодировку, выбрав, например, правила для болгарского или украинского языка.
Отвлекусь немного в сторону от основной темы. Настройки (по умолчанию) в окне не случайны, они определяются при конфигурировании MySQL. Именно там, если вы планируете работать с данными на русском языке, следует задать такую установку:
character-set-server=cp1251
После создания новой базы данных в dbForge Studio for SQL ее название должно отобразиться в окне проводника.
Свойства базы данных, в частности набор символов для работы с базой данных и набор правил для работы отображаются на панели свойств при установке курсора на имени базы данных в окне проводника.
Работа с таблицами
Доступ к таблицами базы данных [17] осуществляются в узле "Таблицы" соответствующей базы данных панели "Проводник".
Создание таблицы
Создание новой таблицы осуществляется так:
- Раскрываем узел с именем нужной базы данных (раскрытие и свертка узла осуществляются также, как и в "обычном" проводнике Windows [18], то есть щелчком на символе "+" либо "-" перед названием базы данных.
- Вызывать контекстное меню на пункте "Таблицы" и выбрать из него пункт "Новая таблица".
- В рабочем окне появится окно-вкладка таблицы, которая в свою очередь содержит несколько вкладок. На вкладке "Общие" задаются общие атрибуты таблицы [19]: ее имя, тип данных, здесь же можно при необходимости изменить базу данных, для которой создается таблица. Тип данных таблицы, опять же, устанавливается автоматически соответственно настройкам MySQL.
- На той же вкладке "Общие" вводятся данные о структуре таблицы, то есть. обо всех ее полях. Новое поле создается автоматически, его также можно добавить "явно", выполнив команду Таблица > Новый столбец. Вообще, пункт главного меню программы Таблица предназначен именно для работы с таблицей, в том числе он содержит действия, позволяющие изменять структуру таблицы: добавлять, удалять, вставлять, редактировать поля таблицы.
Ключевые свойства полей:
- Первичный ключ. Определение поля ключевым.
- Пустые значения. Разрешение или запрет наличия пустых значений в поле.
- Без знака. Запрет ввода отрицательных чисел в поле.
- Бинарный. Задание этого свойства определяет, что значения в этом поле будут чувствительными к регистру.
- Автоинкремент. Автоматический прирост на "1" значения в поле при добавлении новой записи. Применяется для полей целого типа данных (INT).
Для сохранения структуры таблицы следует выполнить команду Файл > Сохранить или щелкнуть соответствующую пиктограмму на панели стандартных инструментов программы.
Под структурой таблицы расположено окно "SQL", в котором отображается команда SQL, автоматически генерируемая программой во время создания таблицы по введенным нами данным. Замечу, что текст SQL-команды [20]не редактируется.
Дальнейшее обращение к таблице осуществляется путем двойного щелчка на ее имени в проводнике, после чего ее структура отображается в главном окне.
Изменение структуры таблицы (состав полей или их свойств) осуществляется также на вкладке "Общие".
Сводные данные о таблице можно отобразить на панели свойств двойным щелчком на названии таблицы на панели проводника.
Ввод данных
Для ввода данных следует выбрать в проводнике нужную таблицу, а в окне-вкладке с таблицей перейти на вкладку "Данные".
Новая строка (запись) добавляется автоматически при нажатии функциональной клавиши <вниз> при установленном на последней записи курсоре. Переход от поля к полю осуществляется клавишами навигации, <Enter> или <Tab>. Если данные визуально не полностью отображаются в поле, его можно увеличить, перетянув его правую границу или дважды нажав на ней в строке с заголовками полей.
Перемещение по данным таблицы осуществляется с помощью клавиш навигации. Нижняя часть окна с таблицей содержит также панель навигации, которой удобно пользоваться при перемещении по таблице с большим количеством записей.
Отмечу, что после ввода в таблицу данных их нужно сохранить, то есть, выполнить команду Файл > Сохранить или щелкнуть соответствующую пиктограмму на панели стандартных инструментов программы. Впрочем, если Вы и забудете об этом, то программа сама напомнит Вам о наличии несохраненных данных при окончании сеанса работы с нею.
Работа с запросами
Построение запроса
- Выполнить команду Файл > Создать > Запрос или на панели стандартных инструментов программы щелкнуть кнопку создания нового запроса , после чего в главном окне появится вкладка "Запрос.sql".
- Перетянуть из окна проводника на вкладку "Запрос.sql" таблицы, из которых нужно отобрать информацию.
- Сформировать параметры запроса, о чем речь пойдет ниже.
- При необходимости в колонке "Псевдоним" ввести содержательное название для поля. В этом случае именно оно будет отображаться в выводе (в противном случае отображается название поля).
- Сохранить запрос, выполнив команду Файл > Сохранить запрос.sql или щелкнув соответствующую пиктограмму на панели инструментов. Появится окно "Сохранить файл как", в котором следует указать имя запроса, которое может быть и на русском языке. Файл запроса имеет расширение SQL.
Создание запроса на выборку
Самым простым типом запроса является запрос на выборку. Отображение и формирование перечня полей, включаемых в выборку, осуществляется на вкладке "Выборка". Для включения в запрос значений поля достаточно установить флажок для поля-метки с названием поля в области окна, отображающего структуру выбранных таблиц. Другой вариант формирования запроса заключается в выборе полей из раскрывающегося списка в колонке "Столбец". Так в запрос добавляются составные выражения, содержащие, например, функции или представляющие собой выражение из нескольких полей.
Результаты запроса будут отображаться именно в том порядке, как они расположены в колонке "Столбец". Если возникает необходимость отображать определенную информацию только один раз, то нужно установить флажок для поля-метки "Уникальные строки". Для просмотра результатов запроса еще во время его формирования (без запоминания) нужно щелкнуть кнопку "Выполнить".
Отбор по критерию
Наложение условия на значения поля или нескольких полей осуществляется на вкладке "Условия".
Для добавления условия следует щелкнуть кнопку . Это приведет к появлению текста, который дважды содержит фразу "Введите значение", разделенную знаком "=".
- Первый текст "Введите значение" является левой частью условия. Это - поле (название столбца) какой-то таблицы.
- Знак "=" является оператором условия. Его можно заменить на другой. Для этого следует щелкнуть на нем и выбрать из появившегося списка нечто иное, например, ">".
- Текст "Введите значение" справа от знака "=" является значением условия. Щелчок на тексте "Введите значение" приводит к отображению списка полей таблиц, различных выражений и пр., что можно представить как условие.
Например, для отбора студентов, имеющих оценку "5", условие может быть записано как "Оценка"=5.
Условий может быть несколько. Для добавления нового условия также необходимо щелкнуть кнопку и сформировать по вышеприведенным правилам новое условие.
По умолчанию между собой условия соединяются логическим оператором [21] AND, однако и его можно изменить, щелкнув на нем и выбрав из списка другой.
Создание связей (объединение таблиц)
В базе данных MySQL нельзя одноразово жестко зафиксировать связи между таблицами. Пользователь в каждом запросе должен создавать их с помощью SELECT и JOIN. Программа позволяет создавать пять видов связей, в том числе внутреннюю, левостороннее и правостороннее объединение.
Объединение двух таблиц осуществляется путем объединения мышкой нужных полей таблиц. Созданная связь отображается графически. Те же действия можно произвести и на вкладке "Соединения". Для этого нужно щелкнуть кнопку , после чего появится пустой оператор JOIN. Щелкаем на тексте "Укажите имя столбца" и добавляем к соответствующим полям поля объединяемых таблиц.
Код команды SELECT, отображающий создание связей, также отображается на вкладке "Соединения".
Для изменения типа связи следует вызывать контекстное меню на типе (названии) соединения, например, "Inner Join" и выбрать из него нужный.
Удалить связь можно разными способами, например, вызывав контекстное меню на графической линии связи и выбрав из него пункт "Удалить из диаграммы".
Вычислительные поля
Достаточно часто вывод результатов запроса должен содержать не просто значения одного из полей таблицы, а комбинацию значений полей из одной или нескольких таблиц или математическую операцию над ними. Например, в запросе следует подсчитать общую стоимость товара, которая определяется как произведение общего количества товара и цены за единицу товара. Для этого следует создать вычислительное поле. Например, создание произведения полей "Цена" и "Количество" осуществляется так.
- Перейти на вкладку "Выборка".
- Щелкнуть на свободной строке в поле "Столбец".
- Выбрать поле "Цена".
- В нижней части окна выбора щелкнуть пиктограмму оператора "*".
- Из соответствующей таблицы выбрать поле "Количество", после чего в поле "Столбец" появится выражение наподобие Цена*Количество.
- Для создания содержательной подписи для вычислительного поля следует в поле "Псевдоним" заменить выражение "Exp" на "Всего".
Упорядочивание (сортировка) записей
Если необходимо упорядочить отобранные данные по определенному полю, то применяют, как известно, сортировку. Определение полей сортировки осуществляется на вкладке "Сортировка". Здесь список "Столбцы" содержит перечень всех полей, включенных в запрос. Двойной щелчок на любом из них или щелчок кнопки "Добавить столбец" приводит к переносу этого поля в список "Сортировка", который и определяет сортировочные поля и порядок упорядочивания записей. По умолчанию применяется метод сортировки "по возрастанию", но его очень просто изменить на "по убыванию", щелкнув кнопку "Сортировать по..." .
Количество полей сортировки не ограничивается, что позволяет осуществить многоуровневую сортировку результатов вывода, упорядочив его сразу по нескольким полями. В этом случае поля, для которых осуществляется сортировка, следует расположить в списке в именно том порядке, в котором она будет осуществляться.
Группировка записей и агрегатные функции
Действие группировки дает возможность объединить одинаковые по какому-то признаку записи таблицы для определенного поля в группы и применять к ним вычисления с помощью разных функций.
Группировка записей задается на вкладке "Группировка".
Добавление функции для поля осуществляется на вкладке "Выборка" так:
- Щелкнуть кнопку нового поля в колонке "Столбец".
- В списке "Функция" выбрать нужную функцию, после чего ее имя появится в колонке "Столбец".
- В качестве аргумента функции выбирается нужное поле из списка "Таблица".
Напомню, что к агрегатным функциям относятся следующие:
- функция Sum предоставляет возможность подсчитать для группы записей сумму;
- функция Avg - вычислить среднее значение;
- Count - подсчитать общее количество записей;
- Max и Min - определить максимальное и минимальное значение в поле.
Так, если осуществить группировку студентов по их фамилии, номеру зачетной книжки и т.п., то в таблице, которая содержит данные с оценками студентов с помощью функции Sum можно подсчитать общую сумму оценок для каждого студента, а с помощью функции Avg - вычислить его средний балл.
Использование агрегатных функций в условиях
В условиях во фразе HAVING можно использовать агрегатные функции, которые действуют в пределах создаваемых групп. Это осуществляется на вкладке "Включение".
Например, для отбора оценок студентов группы, которые имеют оценки выше среднего балла, можно применить два варианта:
Оценка > AVG(Оценка)
Оценка - AVG(Оценка) > 0
Одновременно на вкладке "Группировка" должна быть задана группировка по студентам.
Выполнение запроса
Для выполнения запроса следует сначала его открыть. С этой целью следует щелкнуть кнопку "Открыть" на панели стандартных инструментов программы. Для выполнения запроса щелкните кнопку на панели запросов.
Формирование триггеров
Как известно, триггер [22]- это процедура (последовательность SQL-операторов), которая активируется во время выполнения операций манипулирования данными (добавление, замена и удаление) над таблицами. Триггеры являются одним из механизмов поддержки целостности базы данных.
Программа dbForge Studio for SQL представляет автоматизированные средства создания триггеров.
Создания триггера осуществляется по такому алгоритму:
- На панели проводника вызывать контекстное меню для пункта "Триггеры" и выбрать из него пункт "Новый триггер". Появится окно формирования триггера.
- На вкладке "Общие" определяются общие реквизиты триггера: имя, владелец и таблица, в качестве которых выступают соответственно база данных и таблица, для которых создается триггер.
- В поле "Тело триггера" на той же вкладке разработчиком самостоятельно формируется последовательность операторов, которые будут выполняться во время выполнения операции манипулирования данными. Они располагаются между операторами BEGIN и END.
- На вкладке "Событие" определяется, для какой операции манипулирования данными предназначен триггер, а также момент его срабатывания: до или после события.
На вкладке "SQL" отображается автоматически сформированный системой скрипт для триггера.
Резервное копирование / восстановление
При работе с компьютером всегда необходимо помнить о возможности аварийных ситуаций: отключение электричества, выхода из строя устройств и т.п. Если база данных содержит значительный объем информации, то потеря или разрушение данных может быть воспринято как "конец света". Поэтому первое правило при работе с любой системой - это наличиерезервной копии данных [23], что позволяет при необходимости восстановить данные. Копия также может быть полезной и при необходимости возврата к предыдущим данным.
Создание резервной копии [24] осуществляется командой База данных > Резервная копия > Создать резервную копию БД. Архив [25]создается с расширением SQL, при этом его имя содержит имя базы данных, для которой он создается и время его создания, например: "предприятие 20101117 1559".
Для восстановления базы данных желательно ее наличие на сервере. Впрочем, ее можно создать и автоматически в процессе восстановления. После этого следует вызывать контекстное меню на названии базы данных и последовательно выбрать из него пункты Резервная копия, Восстановить БД из резервной копии.
Действия по созданию и возобновлению резервной копии осуществляются под управлением программы-мастера и сложностей не вызывают. Единственно, замечу, что при создании резервной копии обращайте внимание на то, чтобы в поле "База данных" была выбрана нужная база данных.
И еще одно замечание. Следует иметь в виду, что если база данных переносится с компьютера на компьютер, то такие объекты, как таблицы со всем их содержимым и триггеры будут восстановлены корректно и без проблем. А вот для каждого запроса при первом его запуске на другом компьютере нужно будет давать подтверждение про перенос его на новый сервер.
И последнее.
При работе с dbForge Studio for SQL пользователи частенько отмечают наличие в ней багов [26]. По этому поводу хотелось бы отметить следующее: во-первых, сама задача, поставленная перед собою разработчиками программы, а именно - автоматическая генерация SQL-команд при визуальном проектировании базы данных является достаточно сложной для реализации (несмотря на формальность алгоритмов генерации), во-вторых, сами баги постоянно исправляются, а, в-третьих, программа-то бесплатна, а даренному коню, как известно, в зубы не смотрят...
И самое последнее. Я предварил статью выдержкой из британской рекрутинговой компании CW Jobs, в которой отмечалось высокая потребность в IT-специалистах, знающих язык SQL. Из статьи следует, что программа автоматически генерирует SQL-команды по введенным данным, а это позволит начинающим разработчикам отслеживать корректный код, необходимый для создания объектов базы данных.
Валерий ФЕТИСОВ
Отличный инструмент для работы с MySQL, пользуюсь 3 года и очень доволен.
ОтветитьУдалить