- •3.6 Заключение 59
- •Глава 1. Определение и виды информационных систем
- •Виды ис
- •Функциональность информационных систем, ориентированных на данные
- •Глава 2. Технология real-it
- •Моделирование схемы данных
- •Описание ограничений целостности
- •Описание экземпляров
- •Создание представлений
- •Расширение uml для моделирования представлений
- •Создание экранов
- •Генерация
- •База данных
- •Программный интерфейс базы данных
- •Экранные формы
- •Заключение
- •Глава 3. Язык описания расширенных ограничений ссылочной целостности
- •Пример диаграммы классов с ограничениями
- •Альтернативные подходы
- •Контекстные ограничения
- •Нотация
- •Семантика
- •Базовая модель Определение 1
- •Модель с отрицаниями Определение 7
- •Модель с ограничениями на отдельные объекты Определение 11
- •3.6 Заключение
- •Глава 4. Разработка пользовательского интерфейса
- •Модельно-ориентированные подходы к разработке пользовательского интерфейса
- •Визуальное моделирование при разработке web-приложений
- •Моделирование интерфейса в real-гг
- •Порядок использования модели интерфейса
- •Диаграммы классов uml
- •Шаблоны экранных форм
- •Разработка отдельных типов экранных форм
- •4.3.1 Список
- •Определение набора столбцов
- •Моделирование фильтров
- •Карточка
- •Форма - отношение
- •Заключение
- •Глава 5. Поддержка итеративной разработки
- •Альтернативные подходы
- •Поддержка «ручных» изменений кода
- •Возможные решения
- •Анализ возможных решений
- •Предлагаемое решение
- •Программный интерфейс базы данных
- •Изменение расположения и размеров элементов управления
- •Изменение поведении элементов интерфейса
- •Изменение визуального представления (замена и добавление элементов управления)
- •Составление сложной формы из нескольких сгенерированных
- •Сохранение содержимого базы данных при обновлении ее схемы
- •Заключение
- •Глава 6. Реализация
- •База данных
- •Архитектура приложения
- •Оптимизация выборки данных
- •Учет зависимостей между полями
- •Отложенная инициализация закладок
- •Передача дополнительной информации между формами
- •Генераторы
- •Заключение
- •Глава 7. Направления дальнейших исследований
- •Моделирование расширенных ограничений ссылочной целостности
- •Моделирование пользовательского интерфейса
- •Распределение прав доступа в терминах модели системы
- •Разработка семейств информационных систем
- •Использование модели бизнес-процессов для реализации системы
- •0. Для профессионалов: Пер. С англ. — сПб: Питер, 2000. — 864 с.
База данных
Генерация реляционной базы данных по модели классов UML в настоящее время является широко распространенной практикой и поддерживается практически во всех популярных CASE-пакетах.
Отметим лишь некоторые особенности, присущие нашей реализации:
Автоматическая генерация суррогатных ключей. В REAL-ГГ для идентификации записей в таблицах применяется подход на основе использования суррогатных ключей. В каждую таблицу генератор добавляет столбец «И» и объявляет его первичным ключом. По каждой ассоциации «многие к одному» генерируется поле, которое объявляется вторичным ключом. Поскольку эти поля генерируются автоматически, разработчик не должен определять их как атрибуты класса. Этим REAI.- 1Т отличается от большинства подходов, в которых при моделировании данных в атрибуты класса приходится заносить все поля таблицы.
Сохранение метаданных. Помимо создания таблиц по классам, определенным разработчиками системы, генератор создает специальные таблицы для сохранения метаданных, т.е. исходной модели классов. Эю позволяет приложению, при необходимости, получать доступ к данной информации. Конечно, сама СУБД обычно позволяет получить метаинформацию о ее схеме, но по схеме сгенерированной базы невозможно однозначно восстановить исходную модель классов, поскольку ряд важных параметров в ней отсутствуют. Например, логические имена классов и атрибутов, типы данных в модели (это особенно актуально для перечислений, и т.д.). Кроме того, в отдельной таблице сохраняются некоторые параметры 6а 1Ы, в частности, номер версии и контрольная суммы схемы данных, способ генерации первичных ключей и т.д.
Поддержка итеративного процесса
В данном разделе рассматривается реализация механизма миграции данных, обсуждавшегося в п.5.3. По результатам выполнения ряда промышленных проектов с использованием REAL-ГГ нами был выявлен набор наиболее типичных модификаций схемы базы данных. К ним относятся:
Добавление в схему новых таблиц.
Добавление новых а1рнбутов в существующие таблицы.
Добавление новых связей между существующими таблицами.
Замена одной таблицы двумя связанными (при этом атрибуты старой тэблицы делятся между новыми).
Удапснис таблиц, связей и атрибутов.
Изменение типа атрибута, при котором все значения старого типа можно автоматически привести к новому типу. Наиболее распространенные случаи - это замена числового типа на строковый или добавление новых значений в перечислимый тип.
Изменение типа атрибута с логического на перечислимый.
Переименование неудачно выбранного идентификатора атрибу1 а.
Модификации, перечисленные в пунктах 1, 2, 3, 5, 6 мы будем называть тривиальными. В REAL-ГГ входит компонента UniMigrator, содержащая общую для всех приложений функциональность по миграции данных. При эгом переносится информация из всех таблиц и их полей, имеющихся как в новой, так и в старой базе данных. Значение каждого атрибута автоматически приводится к сто типу в новой базе. Тем самым, осуществляются все тривиальные преобразования. Кроме того, UniMigrator осуществляет перенос информации о предопределенных объектах по алгоритму, изложенному в п.5.3.
Для осуществления других видов преобразовании данных разработчики ИС могут расширить UniMigrator путем встраивания в него соответствующей компоненты — мигратора приложения. UniMigrator является частью стандартной библиотеки поддержки периода исполнения REAL-IT, он автоматически загружается при запуске системы и при каждом открытии базы данных проверяет совпадение версии схемы базы данных, сохраненной в базе и в коде программы. В случае, если открывается более старая версия, пользователю предлагается выполнить'ее обновление. При этом база данных замещается на шаблонную базу (пустую), и осуществляется перенос информации. При копировании данных UniMigrator предоставляет СОМ- интерфейс, содержащий набор событий, позволяющий мигратору приложения влиять на процесс копирования. Мигратор приложения создается или модифицируется при каждом нетривиальном изменении схемы и содержит код, преобразующий данные в соответствии с этим изменением.
6.2 REAL-IT/VB
