Рис. 2.65. Диалог Migrate Column Property
Для переноса каких-либо характеристик колонки необходимо включить соответствующую опцию в диалоге Migrate Column Property, для отказа от переноса - выключить. Опциями диалога следует пользоваться осторожно, во-первых, потому, что новые свойства колонки перезаписывают старые, а во-вторых, поскольку установленные опции действуют в рамках всей диаграммы, а не только текущей таблицы. (Более подробно свойства таблиц и колонок будут рассмотрены ниже.)
Представления (view), или, как их иногда называют, временные или производные таблицы, представляют собой объекты БД, данные в которых не хранятся постоянно, как в таблице, а формируются динамически при обращении к представлению. Представление не может существовать само по себе, а определяется только в терминах одной или нескольких таблиц. Применение представлений позволяет разработчику БД обеспечить каждому пользователю или группе пользователей свой взгляд на данные, что решает проблемы простоты использования и безопасности данных. ERwin имеет специальные инструменты для создания и редактирования представлений. Палитра инструментов на физическом уровне (см. рис. 2.3) содержит кнопки внесения представлений и установления связей между таблицами и представлениями. Для внесения представления нужно щелкнуть по кнопке
в палитре инструментов, затем по свободному месту диаграммы. По умолчанию представление получает номер V_n, где n - уникальный порядковый номер представления. Для установления связи нужно щелкнуть по кнопке
затем по родительской таблице и, наконец, по представлению (рис. 2.66). Связи с представлениями и прямоугольники представлений показываются на диаграмме пунктирными линиями.

Рис. 2.66. Создание представления
Для редактирования представления служит диалог View Editor (рис. 2.67). Для его вызова следует щелкнуть правой кнопкой мыши по представлению и выбрать в меню пункт View Editor.

Рис. 2.67. Диалог View Editor
Раскрывающийся список View позволяет выбрать для редактирования любое представление модели. Окно Name служит для редактирования имени, а Owner-владельца представления.
Диалог View Editor имеет следующие закладки:
Select (рис. 2.67). Имеет два списка: в правом отображаются колонки представления, в левом - колонки доступные для включения в представление. Кнопка New Expression позволяет задать выражение в качестве выходного столбца. Например, для представления V_43 на рис. 2.66 в качестве колонок созданы City и выражение с именем "Количество_клиен-тов_в_городе", которое представляет собой агрегативную функцию, подсчитывающую количество строк, Count(*). По умолчанию при создании связи ERwin включает в представление все колонки родительских таблиц.
From. Позволяет выбрать родительские таблицы представления. По умолчанию включаются таблицы, с которыми связано представление. Каждой таблице можно задать синоним (поле Alias), который будет использоваться при создании SQL-команды создания представления.
Where. Закладка содержит три поля - Where, Group By и Having. На основе этой информации Erwin генерирует SQL-команду создания представления, причем на основе содержания этих полей генерируются предложения SQL-запроса. Для представления V_43 в поле Where содержатся значения "Соип1гу='Россия"', Group By - "City", Having - "Count(*)>2". В результате представление будет содержать информацию о количестве клиентов в российских городах, при условии, что количество клиентов в этих городах больше двух.
SQL. Закладка содержит поле, в котором отображается SQL-запрос создания представления и окно выбора User-Defined SQL. По умолчанию опция User-Defined SQL выключена, и SQL-запрос генерируется автоматически на основе информации, занесенной в закладках Select, From и Where. Запрос можно задать вручную, включив эту опцию, но в этом случае список полей и связи представления на диаграмме отображаться не будут. Для представления V_42 на рис. 2.66 SQL-запрос будет выглядеть так:
"CREATE VIEW V_42 (CustomerName, CustomerAddress, City, OrderAmount, OrderDate,
OrderShipDate)AS
SELECT DISTINCT CUSTOMER.CustomerName, CUSTOMER.CustomerAddress, CUSTOMER.City,
ORDER.OrderAmount, ORDER.OrderDate, ORDER.OrderShipDate
FROM CUSTOMER, ORDER",
а для V_43 - так:
"CREATE VIEW V_43 (City, CustomerCount) AS
SELECT CUSTOMER.City, Countf)
Читать дальше