Как было написано в аннотации к одной из программ, о которых я сейчас вам расскажу, "Database development is a hard task". То есть, в вольном переводе, разработка баз данных - дело непростое. И с этим, пожалуй, сложно не согласиться. Базы данных порой используются в таких отраслях, что на плечи разработчика ложится огромная ответственность. Поэтому разумный и правильный дизайн самой архитектуры БД - вот главная задача, на которой необходимо сосредоточиться на начальном этапе разработки системы управления данными. Однако, сами понимаете, сделать это можно только в том случае, если инструмент, с помощью которого этот самый дизайн разрабатывается, позволяет разработчику не отвлекаться на всякие мелочи. Следовательно, выбор такого инструмента - задача не меньшей важности, чем сам дизайн БД. Чтобы помочь вам определиться с выбором инструментария, я и расскажу о паре программ, которые могут стать хорошими помощниками в деле разработки архитектуры баз данных.
DeZign for Databases
Известно, что заменять букву "S" на букву "Z" в именах собственных особенно любят разные хакеры и прочие злыдни от компьютера. Однако эта программа не имеет с хакерами ничего общего, в её названии такая замена произведена авторами, по-видимому, с целью создания оригинального и легко запоминающегося названия для своего продукта. Ну и, в общем-то, не мне судить, получилось у них или нет.
Найти этот инструмент в Интернете несложно, сделать это можно по адресу www.datanamic.com. Размер дистрибутива - около 7 Мб, однако, глядя на возможности "Дизайна", понимаешь, что это на самом-то деле не так уж и много.
Глядя на скриншот, легко сообразить, что разработка архитектуры БД в DeZign'е осуществляется с помощью ERD (Entity-Relationship Diagram), диаграмм отношений сущностей.
Это удобная и наглядная форма представления структуры базы данных, которая, ко всем прочим своим достоинствам, обладает свойством нравиться начальству или заказчикам. В такой диаграмме каждый объект (сущность) представлен рядом своих свойств. Для базы данных самым простым примером объектов могут служить таблицы, а свойств - поля и ключи в них. С помощью линий отображаются отношения между различными свойствами двух разных объектов. То есть, с помощью ключей можно связать между собой таблицы, и эта связь будет видна невооружённым глазом благодаря удобной визуализации архитектуры БД с помощью диаграммы.
Однако, к сожалению, DeZign не позволяет создавать структуру базы, не привязываясь к конкретной СУБД. То есть, разработчик проектирует не универсальную структуру базы данных, а подстраивается под конкретный сервер уже с самого начала проекта. Такой подход затрудняет переход с одной СУБД на другую, но, учитывая, что не так уж часто нужно таким образом переходить, можно посчитать этот минус не слишком существенным. Кроме того, программа всё же позволяет менять СУБД, для которой проектируется база данных. Однако с этой возможностью нужно быть осторожным, поскольку в процессе конвертации проекта некоторые его части могут потеряться из-за того, что СУБД, к которой переходит разработчик, поддерживает меньше различных функций, чем та, которая была задана в проекте ранее.
Проект хранится в отдельном файле, поэтому, если его случайно испортить, на самой базе данных это никак не отразится. Для того, чтобы из схемы получить базу данных, нужно с помощью DeZign (меню "Schema" -> "Generate Database/Schema") сгенерировать SQL-скрипт, который создаст или изменит структуру базы данных. Можно генерировать скрипт не для всей БД, а только для отдельных её частей, которые, конечно же, выбирает сам разработчик. Перед генерацией скрипта имеет смысл проверить схему на корректность, потому что иначе можно нагенерировать много всего интересного на свою же голову. Проверка осуществляется в том же меню ("Schema" -> "Check Model").
Среди других возможностей программы хочется отметить поддержку сохранения схемы в виде картинки, генерацию отчётов по созданной разработчиком схеме, и, само собой, различные дополнительные инструменты (их можно обнаружить в меню "Tools"). Среди последних есть довольно интересные вещи. Например, средство для унификации имён сущностей в схеме (чтобы не было в одной схеме сущностей с именами типа Table_1 и TABLE_2). Или средство для поиска и замены типов данных, которое позволяет переводить поля в таблицах с одного типа данных на другой, а также изменять домены. При этом типы данных можно преобразовывать в соответствии с возможностями и особенностями конкретной СУБД, что, само собой, не может не радовать. По результатам преобразования типов данных от DeZign'а можно потребовать отдельный отчёт.
Так что DeZign for Databases - мощное и удобное средство для проектирования БД. И если вам приходится такой работой заниматься, стоит иметь его в виду.
Database Workbench
Когда структура базы данных спроектирована, начинается процесс наполнения базы данных, собственно, тем, для чего она и предназначена. То есть, данными. А ещё, помимо этого, БД нужно администрировать. Так что здесь уже одним DeZign'ом никак не обойдёшься. Но, с другой стороны, никто ведь и не говорит, что нужно обходиться им одним. Поэтому позвольте представить вам следующий инструмент, весьма и весьма полезный при работе с базами данных - Database Workbench. Его в Интернете тоже искать долго не придётся, официальный адрес производителя - www.upscene.com, размер дистрибутива программы около 13 Мб.
Database Workbench - комплексное средство для работы с различными базами данных для различных СУБД. Конечно, список поддерживаемых серверов у Database Workbench не такой внушительной, как у первой программы обзора, но пунктов в нём тоже хватает. Программа поддерживает работу с Interbase/Firebird, MySQL, Microsoft SQL Server, Oracle и NexusDB.
Для начала работы с Database Workbench нужно указать установленный на компьютере пользователя сервер, а после зарегистрировать для него одну или несколько баз данных. Самих серверов, в принципе, тоже может быть несколько, только зачем кому-то несколько серверов баз данных на одном компьютере, не совсем понятно.
После проведения указанных операций можно приступать к редактированию различных элементов базы данных: таблиц, триггеров, представлений и т.д. и т.п. Все редакторы достаточно удобные. Так, например, редактор таблиц позволяет редактировать и структуру таблицы, и данные, которые в ней содержатся, и скрипт, отвечающий за её создание в базе данных. Удобен и редактор доменов, который позволяет автоматически определить, в каких полях каких из таблиц используются созданные разработчиком домены. Редактирование SQL-скриптов тоже организовано удачно: редактор поддерживает раздельное отображение создающих и модифицирующих объекты скриптов и, конечно же, подсветку синтаксиса. Благодаря удобному дереву в левой части главного окна программы, которое служит путеводителем по содержимому базы данных, легко переключаться между различными объектами БД.
По словам разработчиков программы, с её помощью можно просто и красиво стандартизовать разработку баз данных (в оригинале "With Database Workbench, you can standardize your way of development pretty easily"). Программа поддерживает шаблоны объектов, содержащих код - таких, например, как хранимые процедуры. С помощью таких шаблонов действительно можно стандартизировать разработку хранимых процедур. Но, к сожалению, шаблонов для других вещей в Database Workbench не предусмотрено.
Помимо редактирования структуры и данных в БД, Database Workbench умеет работать и с правами пользователей. Есть редакторы ролей, групп пользователей и непосредственно прав каждого из самих пользователей.
Поскольку Database Workbench умеет работать с разными СУБД, весьма логичным смотрится присутствие в программе инструментов для миграции с одной СУБД на другую. Инструмент этот называется Schema Migrator и позволяет с лёгкостью переносить архитектуру базы данных с одного сервера БД на другой. Под сервером здесь, естественно, понимается не компьютер, на котором размещается база данных физически, а какая-то отдельно взятая СУБД. Чем хорош Schema Migrator, так это тем, что, помимо стандартных поддерживаемых Database Workbench'ем баз данных, он умеет работать с источниками данных через ODBC или ADO. Для работы не с архитектурой БД, а с сами данными, можно воспользоваться такими инструментами, как Data Import и Data Pump. Первый поддерживает, ко всему прочему, импорт данных из файлов формата CSV (их можно сформировать с помощью, например, того же Microsoft Excel). Второй инструмент поддерживает обмен данными с любым поддерживаемым источником, в том числе и при помощи всё тех же технологий ADO и ODBC. В комплекте поставки Database Workbench имеется версия Data Pump, работающая в режиме командной строки.
Теперь настало время рассказать немного о других инструментах из Database Workbench, которые вынесены разработчиками в отдельное меню "Tools". Первый из них называется Describe Companion и служит для того, чтобы разработчик в любой момент мог вспомнить свойства любого из объектов базы, с которым он имеет дело. Это панель, находящаяся в правой части окна и доступная для просмотра при любой открытой БД. Следующий инструмент носит название Session Recorder, и нужен он тогда, когда разработчик хочет применить внесённые им изменения к какой-либо из БД, уже отданной пользователям. Инструмент по имени Test Data Generator, как видно из его названия, умеет генерировать тестовые данные и, соответственно, пригодится на этапе тестирования БД. Он имеет большое количество настроек и поддерживает интерфейс командной строки. BLOB Editor нужен для работы с полями типа BLOB, которые могут содержать в себе бинарные объекты. Инструмент поддерживает просмотр содержимого этих полей в шестнадцатеричном формате, в виде картинки, в виде HTML, в виде OLE-объекта или как текста. Многоуровневый буфер обмена (Multilevel Clipboard) умеет сохранять не только последний скопированный в него текст, но и несколько предыдущих (по умолчанию их количество равняется двадцати). Grant Manager - один из инструментов для работы с правами пользователей в целях безопасности данных. Duplicate Object может легко создавать "клон" любого из имеющихся в базе данных объектов, а Schema Compare позволит легко и просто сравнить две разных базы данных на предмет схожести архитектур. Visual Query Builder пригодится для визуального построения запросов к БД, а Server Output позволит посмотреть журнал работы сервера БД без лишних движений мышью.
Таким образом, подводя итог, можно сказать, что Database Workbench - замечательное средство для разработки и администрирования самых разных баз данных, которое подойдёт, пожалуй, практически любому разработчику (если, конечно, он пользуется одной из поддерживаемых им СУБД).
Вадим СТАНКЕВИЧ
Комментарии
перечислять и перечислять
Статья называется "Инструменты для БД", а не "Все мыслимые инструменты для БД", прошу обратить на это внимание.
модератор, у тебя тоже с русским проблемы? может надо людям говорить, как правильно? уже достала всеобщая безграмотность.
или ты мой ip все время пасешь - вдруг крамолу какую напишу? гы.
все знают о таких вещах, но как правильно делать на них - не знают. главное всем сказать, что типа erwin используется, а на самом деле он используется обычно только в начале проекта. потом все ручками делается, а для заказчика выдается reverse engineering той же структуры базы. гы.