ERwin. Опыт использования.. Учебное пособие по дисциплинам информационные системы в экономике, проектирование информационных систем
Скачать 3.87 Mb.
|
Индексы В таблице базы данных данные обычно хранятся в том же порядке, в котором их ввели в таблицу. Многие реляционные СУБД имеют странич- ную организацию, при которой физически таблица может храниться фраг- ментарно в разных областях диска, причем строки таблицы располагаются на страницах неупорядоченно. Хотя такой способ хранения позволяет быстро вводить новые данные, но для нахождения нужной строки, придет- ся просмотреть всю таблицу. В промышленных СУБД каждая таблица мо- жет содержать миллионы строк, поэтому простой перебор ведет к ката- строфическому падению производительности информационной системы. Индекс – особый объект СУБД, который помогает решить проблему поиска данных. Он подобен содержанию книги, которое указывает на все номера страниц, посвященных определенной теме. Индекс содержит от- сортированную по колонке или по нескольким колонкам информацию и указывает на строки, в которых хранится конкретное значение колонки. При генерации схемы физической базы данных ERwin DM может ав- томатически создать отдельный индекс на основе первичного ключа каж- дой таблицы, а также на основе всех альтернативных ключей, внешних ключей и инверсных входов, поскольку эти колонки наиболее часто ис- пользуются для поиска данных. Можно отказаться от генерации индексов по умолчанию и для повышения производительности создать собственный индекс. Администратор СУБД должен анализировать наиболее часто вы- полняемые запросы и создавать индексы с различными колонками и по- рядком сортировки для увеличения эффективности поиска при работе кон- кретных приложений. При создании индекса на основе ключа ERwin DM вводит в его состав все колонки ключа. Следовательно, на уровне логической модели можно неявно создать индекс, включая колонки в состав альтернативных ключей и инверсных входов. ERwin DM автоматически генерирует имя индекса, созданного на основе ключа. Изменить характеристики существующего индекса или создать новый можно в диалоге Indexes (меню Model/Indexes). Набор изменяемых пара- метров индекса зависит от выбранной СУБД. Задание объектов физической памяти ERwin DM поддерживает объекты физической памяти для некоторых СУБД. Для создания и редактирования этих объектов используются диало- ги, вызвать которые можно из меню DataBase. В зависимости от СУБД и ее 78 версии набор объектов и соответственно набор пунктов меню различается. Например, для Informix 7.x – это DBspace, для Oracle 8i – это Tablespace, Rollback Segment, Database и др., для SQL Server 2000 – это Filegroup. Триггеры и хранимые процедуры Триггеры и хранимые процедуры – это именованные блоки кода SQL, которые заранее откомпилированы и хранятся на сервере для того, чтобы быстро производить выполнение запросов, валидацию данных и выполнять другие часто вызываемые функции. Хранение и выполнение кода на сервере позволяет создавать код только один раз, а не в каждом приложении, работающем с базой данных, что экономит время при написании и сопровождении программ. При этом гарантируется, что целостность данных и бизнес-правила поддерживаются независимо от того, какое именно клиентское приложение обращается к данным. Триггеры и хранимые процедуры не требуется пересылать по сети из клиентского приложения, что значительно снижает сетевой трафик. Хранимой процедурой называется именованный набор предвари- тельно откомпилированных команд SQL, который может вызываться из клиентского приложения или из другой хранимой процедуры. Создать хранимую процедуру в ERwin DM можно в диалоге Stored Procedures (меню Database/Stored Procedures). При создании текста храни- мых процедур можно использовать макросы (макрокоманды) ERwin DM. При генерации кода хранимой процедуры вместо макрокоманд подставля- ются имена таблиц, колонок, переменные и другие фрагменты кода, соот- ветствующие синтаксису выбранной СУБД. В зависимости от размерности модели данных использование макрокоманд ERwin DM позволяет сокра- тить число строк SQL, написанных проектировщиком, в десятки, сотни и даже тысячи раз. Триггером называется процедура, которая выполняется автоматиче- ски как реакция на событие. Таким событием может быть вставка, измене- ние или удаление строки в соответствующей таблице. Триггер сообщает СУБД, какие действия нужно совершить при выполнении команд SQL INSERT, UPDATE, DELETE для обеспечения дополнительной функцио- нальности, выполняемой на сервере. Триггер ссылочной целостности – это особый вид триггера, исполь- зуемый для поддержания целостности между двумя таблицами, которые связаны между собой. Если строка в одной таблице вставляется, изменяет- ся или удаляется, то триггер ссылочной целостности (RI-триггер) сообщает СУБД, что нужно делать с теми строками в других таблицах, у которых значение внешнего ключа совпадает со значением первичного ключа вставленной (измененной или удаленной) строки. По умолчанию ERwin DM генерирует триггеры, дублирующие декла- ративную ссылочную целостность. Для генерации триггеров ERwin DM 79 использует механизм шаблонов – специальных скриптов, использующих макрокоманды, что позволяет сократить число строк SQL, написанных проектировщиком, в десятки, сотни и даже тысячи раз. Шаблоны ссылоч- ной целостности, генерируемые ERwin по умолчанию, можно изменять [2]. Скрипты «до и после генерации» Скриптами «до и после генерации» (pre & post scripts) называются скрипты SQL, которые ERwin DM выполняет до или сразу после генера- ции таблиц или схемы в целом (pre & post schema generation). Например, при прямой генерации базы данных из модели ERwin DM может выпол- нить скрипт «до генерации схемы», который удаляет старую базу данных и создает новую до того, как начать генерацию таблиц, индексов и др. объ- ектов. Скрипты уровня таблиц могут быть созданы в диалоге Pre & Post Scripts (контекстное меню таблицы). Скрипты уровня схемы можно со- здать в диалоге Pre & Post Scripts (меню Database/Pre & Post Scripts/Model- Level), Создание скриптов аналогично созданию хранимых процедур. При создании текста скрипта также как, при создании хранимых процедур, можно использовать макросы ERwin DM. Прямая генерация Процесс генерации физической схемы базы данных из модели данных называется прямым проектированием (Forward Engineering). При гене- рации схемы кроме таблиц и представлений ERwin DM создает триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие объекты, доступные для выбранной СУБД. Для генерации системного каталога базы данных следует перейти на физический уровень модели и выбрать пункт меню Tools/Forward Engi- neer/Schema Generation или нажать кнопку на панели инструментов Da- tabase Toolbar (команда Forward Engineer в меню Tools доступна лишь на физическом уровне модели). Появляется диалог Forward Engineer Schema Generation, включающий закладки: Options, Summary, Comment. (рис. 76). В закладке Options устанавливаютопций генерации объектов базы данных - триггеров, таблиц, представлений, колонок, индексов и т. д. Для задания опций генерации какого-либо объекта следует выбрать объект в левом списке закладки, затем включить соответствующую опцию в правом списке. В закладке Summary отображаются все опции, выбранные в за- кладке Options. Список опций в Summary можно редактировать так же, как и в Options. Закладка Comment позволяет внести комментарий для каждо- го набора опций. 80 Рис. 76. Диалог Forward Engineer Schema Generation. Рис. 77. Диалог Schema Generation Preview. 81 Каждый набор опций генерации может быть именован и использован многократно. Для загрузки, создания, переименования и удаления соб- ственных наборов опций генерации используют комбинированный список Option Set и кнопки Open, Save, Save As и Delete диалога Forward Engineer Schema Generation. Кнопка Preview вызывает диалог Schema Generation Preview (рис. 77), в котором отображается SQL-скрипт, создаваемый ERwin DM для генера- ции системного каталога СУБД. Нажав на кнопку Generate диалога Sche- ma Generation Preview, запускают процесс генерации схемы. Кнопка Print диалога Forward Engineer Schema Generation предназна- чена для вывода на печать SQL-скрипта, создаваемого ERwin DM. Кнопка Report сохраняет тот же скрипт в текстовом файле с расширением ERS, SQL или DDL. Эти команды можно в дальнейшем редактировать любым текстовым редактором и выполнять при помощи соответствующей утили- ты сервера. Кнопка Generate запускает процесс генерации схемы. Возни- кает диалог подключения к базе данных SQL Server Connection (рис. 78), в котором устанавливают параметры подключения. Нажимая на кнопку Connect, устанавливают сеанс связи с баз данных и инициируют выполне- ние SQL-скрипта. Рис. 78. Диалог SQL Server Connection. 82 Открывается диалог Generate Database Schema, отображающий ход процесса генерации (рис. 79). По умолчанию в диалоге включена опция Stop If Failure. Это означает, что при первой ошибке выполнение скрипта прекращается. Щелкнув по кнопке Continue, можно продолжить выполне- ние. Кнопка Abort прерывает выполнение. При выключенной опции Stop If Failure скрипт будет выполняться, несмотря на встречающиеся ошибки. На рис. 80 показан порядок генерации схемы базы данных. Рис. 79. Диалог Generate Database Schema. Рис. 80. Упрощенный порядок генерации схемы базы данных. 83 Обратная генерация Процесс генерации модели из схемы базы данных называется обрат- ной генерациейили обратным проектированием (Reverse Engineering). ERwin DM позволяет создать модель данных путем обратного проектиро- вания имеющейся базы данных. После того как модель создана, можно пе- реключиться на другой сервер (модель будет конвертирована) и произве- сти прямое проектирование структуры базы данных для другой СУБД. Для выполнения обратного проектирования следует выбрать пункт меню Tools/Reverse Engineer или нажать кнопку на панели инструмен- тов Database Toolbar. Появляется первый диалог для настройки обратного проектирования Reverse Engineer - Template Selection, в котором нужно выбрать тип создаваемой модели: физическая или смешанная, шаблон диа- граммы, а также тип и версию СУБД (рис. 81). Рис. 81. Диалог Reverse Engineer - Template Selection. После нажатия кнопки Next появляется второй диалог настройки об- ратного проектирования Reverse Engineer - Set Options (рис. 82), в котором можно задать следующие опции. 84 Рис. 82. Диалог Reverse Engineer - Set Options. Группа Reverse Engineer From позволяет задать источник обратного проектирования – базу данных или SQL(DDL)-скрипт. При помощи кноп- ки Browse можно выбрать текстовый файл, содержащий SQL-скрипт. Группа Items to Reverse Engineer позволяет задать объекты базы данных, на основе которых будет создана модель. При помощи списка вы- бора Option Set и кнопок Open, Save, Save As и Delete загружают, создают и редактируют именованные конфигурации объектов базы данных. Имено- ванные конфигурации могут быть использованы многократно при других сеансах обратного проектирования. Группа Options/Reverse Engineer (доступна только при обратном проектировании из базы данных) позволяет включить в модель системные объекты (окно выбора System Objects) и установить фильтр на извлекае- мые таблицы по их владельцу. Установка опции Primary Keys в группе Options/Infer означает, что ERwin DM будет генерировать первичные ключи на основе анализа индек- сов. Если включена опция Relations, ERwin DM будет устанавливать связи на основе имен колонок первичного ключа или индексов. Эти опции име- ют смысл, только если связи не прописаны явно. Группа Options/Case Conversion позволяет задать опции конверта- ции регистра при создании логических и физических имен модели. 85 После установки требуемых опций, щелкают по кнопке Next. Появля- ется диалог подключения к базе данных, устанавливается сеанс связи с сервером и начинается процесс обратного проектирования, во время кото- рого отображается состояние процесса. По завершении процесса обратной генерации создается новая модель данных. Сравнение и синхронизация с Complete Compare В настоящее время организации, использующие базу данных, стре- мятся иметь одновременно и модель этой базы данных на основе одной или нескольких распространенных графических нотаций, например: IDEF1, IDEF1Х, IE, ERD, DFD, DM и т.п. Модель, в первую очередь мо- дель логического уровня, в которой рекомендуется использовать термино- логию предметной области, дает компактное наглядное представление о данных, их свойствах и отношениях. Благодаря этому модель логического уровня может быть понятна разным группам пользователей: администра- торам баз данных, программистам, конечным пользователям информаци- онных систем и т.д., и выступать в качестве средства общения разных спе- циалистов организации, вынужденных работать над одним проектом с ис- пользованием базы данных. Существует два основных типа проекта, в ходе которых в организации появляется модель данных: проекты, связанные с разработкой баз данных (как правило, в составе проектов по разработке информационных систем) и проекты, связанные с документированием и/или оптимизацией уже дей- ствующей базы данных. В первом случае в процессе разработки базы данных с помощью CASE-средства создается модель (логический уровень, затем физический уровень), затем на ее основе генерируется каталог базы данных. Во втором случае стремятся использовать CASE-средства для получения модели фи- зического уровня с помощью обратной генерации из действующей базы данных. На основе полученной таким образом физической модели разра- батывается модель логического уровня, использующая графическую нота- цию и терминологию предметной области, с целью документирования и/или оптимизации базы данных. При одновременном наличии в организации базы данных и ее модели к задачам сопровождения базы данных добавляется задача регулярного (например, раз в месяц) сравнения и синхронизации базы данных с ее мо- делью. Одним из CASE-средств, поддерживающем в комплексе возможно- сти как прямого и обратного генерирования, так и сравнения и синхрони- зации, является ERwin Data Modeler (ERwin DM) компании СА (Computer Associates, www.ca.com ). Одним из инструментов ERwin DM является инструмент Complete Compare (полное сравнение). Инструмент Complete Compare позволяет ав- томатизировать трудоемкий процесс сравнения и синхронизации моделей, 86 скриптов и баз данных. Сравнение можно проводить как по всему множе- ству объектов и всему множеству их свойств, так и по отдельным типам объектов и отдельным свойствам объектов, т.е. фильтровать объекты и свойства фигурантов сравнения. Инструмент Complete Compare позволяет выявить отличие свойств одного и того же объекта фигурантов сравнения, а также найти объекты и свойства, отсутствующие в одном из фигурантов сравнения. По результатам сравнения можно сгенерировать отчет в форма- тах HTML, DOC (Word), XLS (Excel). Выявленные в результате сравнения отличия можно выборочно переносить в фигуранты сравнения для их об- новления, т.е. синхронизировать. Для переноса выбранных отличий в базу данных ERwin DM может автоматически сгенерировать ALTER-скрипт на изменение. Запустить процесс Complete Compare можно щелкнув по пиктограмме на панели инструментов Database Toolbar или через меню Tools/Complete Compare/Compare. Для проведения сеанса сравне- ния/синхронизации ERwin DM предоставляет Мастер сравнений Complete Compare, который «ведет» по этапам подготовки к сравнению. Подготови- тельные этапы можно выполнить последовательно или в произвольном по- рядке, запустив процесс сравнения в любой момент после выбора пары фи- гурантов сравнения. В случае, когда пользователь запускает сеанс сравне- ния, пропустив ряд подготовительных этапов, автоматически используют- ся настройки по умолчанию. Имеется возможность сохранения в XML- файле и повторного использования собственных настроек сравнения (Option Set). Кроме этого можно сохранить все данные о сессии сравнения в CCS-файле (Complete Compare Session) и позднее повторно их использо- вать. Это позволяет экономить время при многократном сравнении тех же моделей (скриптов, баз данных). Основными этапами работы с инструментом Complete Compare явля- ются: Выбор пары фигурантов сравнения: моделей, скриптов, баз данных. Выбор объектов и свойств, по которым будет проводиться сравнение (фильтрация). (Список сравниваемых объектов и свойств зависит от вы- бранной СУБД.) Автоматическое обнаружение отличий (сравнение). Определение способов разрешения отличий (синхронизации). Это самый важный этап в процессе Complete Compare. Сохранение синхронизированных моделей. Инструмент Complete Compare позволяет сравнивать и синхронизиро- вать следующие пары фигурантов: модель – модель (рис. 83), модель – SQL-скрипт (рис. 84), модель – база данных (рис. 85), SQL-скрипт – SQL-скрипт (рис. 86), 87 Рис. 83. Пример сравнения «модель – модель». Рис. 84. Пример сравнения «модель – SQL-скрипт ». Рис. 85. Пример сравнения «модель – база данных». Рис. 86. Пример сравнения «SQL-скрипт – SQL-скрипт». Рис. 87. Пример сравнения «SQL-скрипт – база данных». Рис. 88. Пример сравнения «база данных – база данных». SQL-скрипт – база данных (рис. 87), база данных – база данных (рис. 88). С С к к р р и и п п т т - - с с к к р р и и п п т т CREATE TABLE Таблица_1 ( ИД_1 char(18) NOT NULL, Имя char(18) NULL) go . . . CREATE TABLE Таблица_1 ( ИД_1 char(20) NOT NULL, Имя char(20) NULL) go . . . Б Б а а з з а а д д а а н н н н ы ы х х – – б б а а з з а а д д а а н н н н ы ы х х М М о о д д е е л л ь ь - - м м о о д д е е л л ь ь CREATE TABLE Таблица_1 ( ИД_1 char(18) NOT NULL, Имя char(18) NULL) go . . . С С к к р р и и п п т т - - м м о о д д е е л л ь ь С С к к р р и и п п т т – – б б а а з з а а д д а а н н н н ы ы х х CREATE TABLE Таблица_1 ( ИД_1 char(18) NOT NULL, Имя char(18) NULL) go . . . Б Б а а з з а а д д а а н н н н ы ы х х - - м м о о д д е е л л ь ь 88 Можно загрузить несколько моделей и выполнить сравнение любых из загруженных моделей без их перезагрузки. Если фигурантом сравнения является SQL-скрипт или база данных, то ERwin DM сначала проводит об- ратную генерацию до уровня модели. Таким образом, фактическое сравне- ние Complete Compare проводит на уровне «модель – модель». Поэтому в Мастере Complete Compare фигуранты сравнения называются просто Left Model (левая модель) и Right Model (правая модель). При выборе фигуран- та сравнения можно установить опцию Set selected models as read only, означающую, что выбранная модель не может быть изменена в процессе синхронизации. Если одним из фигурантов сравнения является большая база данных, то для повышения производительности процесса сравнения можно исполь- зовать опцию Allow Demand Loading. Включение этой опции ограничит объем информации, выгружаемой из каталога базы данных именами объ- ектов верхнего уровня (таблицы, представления). При выполнении опера- ций с частично загруженным объектом в диалоге Resolve Differences (см. далее) для завершения сравнения подгружается детальная информация о данном объекте. Увеличить производительность сравнения можно также за счет фильтрации типов сравниваемых объектов и свойств (Type Selection, Left Object Selection, Right Object Selection, Advanced Options). Фильтрация позволяет минимизировать количество найденных различий и сконцентри- ровать внимание на наиболее важных в данный момент деталях сравнения, оставляя «за кадром» незначимые для данной сессии сравнения деталях. Для функции Complete Compare можно выбрать один из трех уровней сравнения (закладка Type Selection): логический Logical, физический Phys- ical и базы данных Database. Допускается одновременный выбор уровней Logical и Physical. Если одна из моделей является чисто логической, то до- ступным оказывается только уровень Logical, остальные флажки недо- ступны. Однако если одна из моделей чисто физическая, то можно выбрать как Physical, так и Database. Разница между уровнями Physical и Database заключается в том, что уровень Database не включает всех свойств моде- лирования (например, графические шрифты, цвета, рисованные объекты, UDP и т. д.), и такие свойства исключаются из сравнения на уровне базы данных. Для классической логико-физической модели доступны как логи- ческий (Logical), так и физический (Physical) уровни, причем можно одно- временно сравнивать модели на физическом и логическом уровнях. Эта возможность появилась в версии r7. После нажатия на кнопку Compare Мастера Complete Compare запус- кается процесс сравнения, результат которого отображается в открываю- щемся диалоге Resolve Differences (разрешить различия). Диалог |