DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

The TMS DataModeler

Автор: Бруно Ференс (Bruno Fierens)


Введение
Моделирование данных — один из основных этапов жизненного цикла системы баз данных (БД): с самых первых шагов, когда моделируется и создается первоначальная структура программного обеспечения и при последующих обновлениях ПО, когда изменяется структура базы данных. Существуют ситуации, когда изменение структуры БД может стать сложной задачей, например, когда необходимо получить производительную систему, а работа ведется с недокументированной БД, или необходимо конвертировать базу данных из одного формата в другой. Для задач моделирования данных существует множество инструментов: некоторые из них специфичны только для одного типа СУБД, другие — более общие, третьи из них полезны для решения узкоспециализированных задач, четвертые — предоставляют множество возможностей (и, как правило, не дешевы). TMS Data Modeler — это инструмент позволяющий создавать и поддерживать базы данных: в него интегрирован процесс проектирования, моделирования, создания и поддержки БД в едином окружении, с простым и понятным пользовательским интерфейсом для эффективного управления БД. В этой статье кратко описаны основные особенности TMS Data Modeler, и показано, как он может быть использован для создания проекта и поддержки существующей БД.

Основные возможности программы
TMS Data Modeler — это общий инструмент, позволяющий моделировать данные независимо от используемой СУБД. Приложение позволяет начать процесс моделирования с нуля или импортировать структуру из существующей базы данных (обратное проектирование). Оно также генерирует скрипты для создания новой БД или обновления существующей с использованием системы контроля версий. Кроме того, он предоставляет возможность конвертировать БД из одной СУБД в другую, проводить проверку целостности данных, строить диаграммы «сущность-связь» TMS Data Modeler в настоящее время поддерживает следующие СУБД: Absolute Database, Firebird 2, MS SQL Server 2000/2005/2008, MySQL 5.1, NexusDB V3 и Oracle 10g.
Создание проекта в TMS Data Modeler
Существует два способа начать новый проект в TMS Data Modeler: создание нового проекта с нуля или импорт словаря данных из существующей базы данных.

Рисунок 1: Начало работы

Чтобы создать новый проект, необходимо выбрать пункт меню «New Projectt» и просто указать необходимый файл БД. По умолчанию программа отображает диаграмму с именем «Main Diagram». С помощью диаграмм можно визуально создавать таблицы, и установливать отношения между ними. Все объекты БД (помимо таблиц еще существуют процедуры, представления и др. объекты) могут быть доступны, созданы и отредактированы при помощи панели Project Explorer, расположенной в левой части экрана.
Для того, чтобы импортировать структуру БД, необходимо выбрать пункт меню «Import from Database» и настроить параметры соединения. По окончании процедуры импорта, окно «Data Modeler» будет отображать все объекты БД: таблицы, связи, триггеры, процедуры, представления и т.д. Также список всех объектов будет находиться в соответствующих категориях панели «Project Explorer». Для обзора импортированной структуры возможно открыть диаграмму "Main Diagram" и выбрать пункт «Add all tables» в контекстном меню.

Контроль версий
Для того, чтобы воспользоваться в TMS Data Modeler функцией контроля версий (сравнение и определения изменений, генерирование скриптов обновления) необходимо сохранять историю изменений. По умолчанию, каждый новый проект имеет версию 1 и статус «в разработке» (under constuction). В этом примере после импортирования структуры существующей базы данных мы сохраняем историю изменений первой версии. Как только версия зафиксирована, ее статус изменятся на «закрыта» (closed) и создается новая версия (2) со статусом «в разработке». Теперь все последующие изменения станут частью версии 2.
Создание и изменение объектов базы данных
Панель «Project Explorer» предоставляет доступ к просмотру и редактированию всех объектов, а также создание новых объектов при помощи контекстного меню. Интерфейс программы позволяет одновременно работать со множеством объектов, сгруппированным по вкладкам, облегчающим навигацию. В этом примере мы создадим таблицу с именем «attachments», и позже мы свяжем ее с существующей таблицей «projects». Также мы создадим новое поле «FileSize» в таблице «blobs».
Data Modeler позволяет создавать различные диаграммы путем перетаскивания необходимых таблиц из панели «Project Explorer» в редактор диаграмм, связанные таблицы соединятся автоматически. В результате можно получать различные наборы таблиц, сгруппированных в контексте модулей или системы в целом. Чтобы связать две таблицы визуально, используя диаграммы, создайте новую диаграмму и перетащите таблицы "projects" и "attachments" с панели Project Explorer. Нажмите на кнопку «Relationship» на панели инструментов и щелкнув по на родительской таблице и перетащите курсор к дочерней таблице. Появится окно добавления связи, в котором необходимо указать ее имя, ключевые поля и другие опции. После подтверждения этой операции будет создана связь между таблицами, которая мгновенно отобразится на диаграмме. Обратите внимание, что в таблице «attachments» было создано поле «ProjectID» связанное с первичным ключом таблицы «projects».





Изменение версии
После проделанных изменений в проекте, версия 2 будет отличаться от версии 1, которая являлась результатом импорта структуры из файла БД. Используя инструмент сравнения версий, можно увидеть структуру каждой из них с подсветкой различий (добавленных, удаленных и измененных объектов) и сгенерировать скрипт для выделенных объектов. В этом же окне можно выделить изменения и сгенерировать скрипт обновления БД.

Заключение
В этой статье были описаны только самые основные возможности TMS Data Modeler и было продемонстрировано, как создаются новые проекты и осуществляется процесс поддержки БД. В программе есть и другие функции моделирования и обслуживания БД, в поставку входит полное справочное руководство, имеется доступная в режиме on-line справочная система. На нашем сайте вы найдете более подробную информацию о функциях программы, ее преимуществах и особенностях применения.


Существует возможность чтения структуры данных из проектов
TMS Data Modeler из разрабатываемых в Delphi и C++ Builder приложений. TMS Software распространяет бесплатную библиотеку Data Modeler Library (DMLib), в которой содержатся закрытые для модификации классы, содержащие интуитивно понятные методы и свойства получения всей необходимой информации об объектах из словаря данных. Ниже представлен небольшой пример, показывающий применение DMLib для получения информации о полях и их типах данных одной из таблиц («attachments» прим. пер.) словаря данных.
program Dmread; uses
SysUtils,  uAppMetaData,  uGDAO; var
amd: TAppMetaDatatableTGDAOTablefield: TGDAOField; i    integer;
begin
amd  := TAppMetaData.LoadFromFile
('C:\tmssoftware\dmlib\jedivcs.dgp');
try
table  := amd.DataDictionary.TableByName('attachments');
if table <> nil then
begin
for i  := 0 to table.Fields.Count-1 do begin
field  := table.Fields[i];
Writeln(Format('Field %d:  %s  [%s]',
[i + 1,  field.FieldName,  field.DataType.Name]));
Об Авторе
Бруно Ференс (Bruno Fierens)
Бруно начал свою деятельность в середине 80-х с небольших проектов в GWBasic и вскоре стал использовать Turbo Pascal v3.0 благодаря его быстрой компиляции, прозрачному языку и процедурной технике программирования. Он использовал последующие версии Turbo Pascal и изучил объектно-ориентированное программирование, когда оно было добавлено в язык Pascal компанией Borland. Используя Turbo Pascal для Windows и Resource Workshop он сделал первые шаги программирование под ОС Windows и выпустил на рынок несколько продуктов.
TMS Software стала партнером Borland Technology в 1998 году. Штат состоял из четырех сотрудников в главном оффисе в Бельгии и разработчиков в Бразилии, Уругвае, Индии, Пакистане, разрабатывавших различные компоненты. В настоящее время у TMS Software есть огромный портфолио компонент для Delphi и есть уверенность в том, что описанный здесь продукт, будет развиваться в будущем. Начиная с Delphi 2010 компания Embarcadero предлагает достаточно богатую и мощную среду быстрой разработки Windows-приложений, включая новейшие функции ОС Windows 7 (например, поддержку сенсорных дисплеев). Бруно будет очень внимательно следить за анонсированными Embarcadero инструментами кросс-платформенной разработки и говорит, что надеется интегрировать их в TMS Software. По его мнению, эти инструменты принесут много захватывающих возможностей в мир Embarcadero, Delphi и компонентов TMS Software. Мы живем в очень интересное время для истинных поклонников Delphi.

end; end else
Writeln('Таблица не найдена.'); finally
amd.Free; end; end.
Output:
Результат:
Поле 1:        idattachment   [Int   (identity)]
Поле 2:        description  [VarChar]
Поле 3:        filename   [VarChar]
Поле 4:        createdon  [Datetime]
Поле 5:        content   [Image]
Поле  6:        PROJECTID   [Int]


 









jAntivirus