Информационные системы

Информационные системы

Электронный учебник

Лабораторная работа №9

 

Представление данных.

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

Представления являются удобным и полезным средством доступа к базе данных. При создании базовых таблиц главное внимание необходимо уделять нормализации данных. Поэтому просмотр и редактирование базовых таблиц может вызвать определенные трудности. Представления позволяют объединять данные таблиц и отображать их в более удобном виде. Вы можете выбрать только интересующие вас поля таблиц, объединить несколько полей в одно поле, вычислить итоговые значения, задать новые имена полям таблицы.

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

 

Создание представления данных.

Для создания представления данных используется конструктор представлений. Существует несколько альтернативных способов вызова конструктора представлений:

         выбрать команду File | New | View основного меню;

         перейти в раздел «Local Views» выбранной базы данных и нажать кнопку New;

         ввести команду CREATE VIEW в окне команд.

При любом из вариантов вызова вы можете воспользоваться мастером для создания представления, который аналогичен мастеру создания запросов. При непосредственном вызове конструктора представлений запрашивается одна из таблиц, участвующих в построении представления, а затем открывается окно конструктора представлений данных (рис. 1), которое отличается от окна конструктора запросов некоторыми дополнительными возможностями. Прежде всего, добавляется возможность определения полей для модификации данных. Кроме того, можно определить параметры, значения которых будут запрашиваться при открытии представления данных, и задать количество выбираемых записей, а также ряд других параметров для оптимизации выборки данных при формировании представления.

 

 

Рис. 1 Окно конструктора представлений

 

 

Просмотр объема продаж покупателям.

В данном примере создадим представление данных, которое содержит итоговую сумму покупок покупателей. Представление данных будет содержать фамилию и инициалы покупателя, наименование фирмы, наименование товара и итоговую сумму покупок покупателем каждого товара.

1.           Откройте на экране окно конструктора представлений и добавьте в него таблицы Customer, Ordsalem, Ordsaled, Goods.

2.           Установите связи между таблицами. Если вы в конструкторе базы данных определили постоянные связи между таблицами, то в окне конструктора они установятся автоматически.

3.           В список Selected fields перенесите наименование фирмы и наименование товара.

4.           Добавьте в список Selected fields вычисляемое поле, которое объединяет фамилию и инициалы в одно поле.

5.           Аналогичным образом определите поле, которое вычисляет итоговую сумму продаж.

6.           Задайте группировку и упорядочивание данных по полям Customer.cCompany и Goods.nmGoods.

7.           Для сохранения представления данных выполните команду File | Save as. В окне диалога «Save» (рис. 2) укажите имя создаваемого представления данных Custsum. Обратите внимание, что в отличие от сохранения запроса, вам не требуется указывать место расположения представления, так как описание представления хранится в самой базе данных.

8.           Закройте окно конструктора представлений. Для просмотра созданного представления данных можно использовать окно проекта или окно «Data session». В окне проекта для просмотра итоговых продаж товаров покупателям достаточно выбрать представление данных Custsum и нажать кнопку Browse.

Примечание: Для открытия представления данных, можно в командном окне или программе использовать команду USE. При открытии представления данных открываются все таблицы, используемые при его построении. Расчет и обновление данных в представлении происходит только при его открытии, поэтому, если в таблицы были внесены некоторые изменения, соответствующее представление должно быть сначала закрыто, а затем повторно открыто.

Рис. 2 Определение имени представления данных

 

Определение параметров представления данных.

Созданное в предыдущем примере представление данных содержит итоговую сумму всех продаж товаров. Довольно часто на практике интересны не все продажи, а объем продаж за определенный интервал времени или продажи конкретного товара. В этом случае можно использовать параметры представления данных, которые описываются при создании представления. Имена этих параметров входят в условие выборки данных. При открытии представления запрашиваются значения заданных параметров, и выборка данных осуществляется с учетом введенных значений. Для определения параметров используется команда
View Parameters из меню Query.

Измените представление данных, созданное в предыдущем примере, добавив параметры начала и окончания интервала выборки.

1.       Выберите в окне проекта представление данных Custsum и нажмите кнопку Modify.

2.       В окне конструктора представлений данных выполните команду Query | View Parameters, и на экране откроется окно диалога «View Parameters». Это окно диалога содержит список всех параметров представления, для каждого из которых заданы имя параметра и его тип. В данном случае введите два параметра dStart и dEnd и определите для них тип данных Date (рис. 3).

3.       Определите условие выборки данных в заданном указанными параметрами интервале. Для этого перейдите на вкладку «Filter» и добавьте условие для поля Ordsalem.dOrderDate. Для указания интервала используйте оператор Between, а в поле ввода Example введите ?dStart, ?dEnd. Вопросительный знак перед именем параметра является признаком использования параметра.

4.       Сохраните представление данных. Для просмотра итоговых продаж товаров в заданном интервале откройте представление данных Custsum. Поскольку для него определены параметры, прежде всего, будет предложено ввести значение этих параметров (рис. 4). Значение каждого параметра вводятся отдельно.

 

 

Рис. 3 Определение параметров

 

Рис. 4 Ввод значения параметра

 

Примечание: Значение параметра запрашивается только в том случае, если в данный момент не определена переменная с именем параметра. Поэтому можно в программе или форме определить значения параметров, а затем открыть представление данных с помощью команды USE.Такой подход более удобен для пользователя, чем последовательный ввод значений всех параметров.

 

Редактирование исходных таблиц с помощью представления данных.

В Visual FoxPro с помощью представления данных можно не только просматривать данные, но и редактировать их. Изменения, выполненные в окне представления данных, приведут к изменениям в базовых таблицах, используемых для построения представления. При создании представления данных можно указать, какие поля базовых таблиц будут изменяться, а какие изменять запрещается. Используя такой подход, можно ограничить не только поля, которые может просматривать пользователь, но и определить перечень полей, допустимых для редактирования. Например, при коррекции скидок для покупателей, необходимо видеть на экране наименование фирмы, код покупателя и значение скидки, но редактировать можно только скидку.

Для определения таблиц и полей, которые будут изменяться при модификации данных с помощью представления, используется вкладка «Update Criteria» (рис. 5).

Раскрывающийся список Table этой вкладки содержит перечень всех таблиц, поля из которых указаны в списке Selected fields. Для каждой таблицы из списка область «Field name» содержит список выбранных полей. В этой области можно установить признаки ключевого поля и разрешения модификации. Признак ключевого поля устанавливается с помощью флажка в столбце ключевого поля, заголовок которого содержит изображение ключа. Аналогично устанавливается и признак разрешения модификации в столбце с изображением карандаша.

Кнопка Reset Key сбрасывает все флажки в столбце разрешения модификации и устанавливает флажки в столбце признака ключевых полей только для тех полей, которые являются первичными ключами.

Кнопка Update All устанавливает флажки в столбце разрешения модификации для всех полей, за исключением ключевых.

Все установленные признаки действуют только в том случае, если установлен флажок Send SQL updates.

Области «SQL WHERE clause includes» и «Update using» используются при работе с удаленными таблицами.

На рис. 5  ключевым является поле icdGoods, а редактировать можно только значение поля nUnitPrice.

Обратите внимание, что если в таблице не определены ключевые поля на вкладке «Update Criteria» никакие поля не будут доступны для редактирования.

 

Рис.5 Вкладка «Update Criteria»

 

Удаленные представления данных.

Удаленные представления данных отличаются от локальных тем, что локальные представления содержат выборку данных из таблиц Visual FoxPro, а удаленные – из любых доступных источников данных, драйвера которых определенны в ODBC. ODBC (Open Database Connectivity) – представляет собой стандартный протокол доступа к базам данных. В данном случае под базой данных имеется ввиду любой доступный в системе источник данных. Установленные в ODBC драйвера позволяют получить доступ к данным, как если бы они были предоставлены в формате Visual FoxPro. Удаленное представление данных можно создать, выбрав пункт Remote Views и нажав кнопку New. При этом на экране появится диалоговое окно выбора соединения или источника данных (рис. 6).

Рис. 6 Окно выбора соединения или источника данных

 

       Переключатель Connections определяет, что в качестве источника данных будет использоваться соединение, определенное в текущей базе данных. Available data sources – позволяет выбрать источник данных из определенных в системе. Кнопка OK подтверждает выбор источника данных. Cancel – отказ от выбора и закрытие диалогового окна. New – позволяет создать новое соединение, но не новый источник данных.

При создании нового соединения в любом случае будет необходимо определить системный источник данных (определяемый драйверами ODBC). Это производится нажатием кнопки New Data Source в окне построения соединений (рис. 7).

Рис. 7 Окно построения соединения

 

         При этом параметры, указываемые в областях Timeout intervals, Data processing, Display ODBC login prompts рекомендуется оставить без изменений, так как в противном случае система может начать работать со сбоями.

После нажатия на кнопку New Data Source на экране появится системное диалоговое окно администрирования источников данных ODBC (рис. 8). В нем содержатся листовые вкладки, позволяющие определять системные, пользовательские и файловые источники данных, а так же просматривать установленные драйвера ODBC.

Рис. 8 Окно администрирования источников данных ODBC

         При этом следует учитывать, что пользовательские источники данных (User DSN) видны только на локальном компьютере и только одному локальному пользователю. Системные источники данных (System DSN) – видны всем пользователям на локальной машине, а так же сервисам сетевой операционной системы. Файловые источники данных (File DSN) – в основном предназначены для работы в локальных сетях и работают только при установке соответствующих служб.

В окне администрирования источников данных есть возможность редактировать параметры существующих источников (кнопка Configure), удаление существующего источника (кнопка Remove) и добавление нового источника данных (кнопка Add). При нажатии на кнопку Add на экране появляется диалоговое окно определения драйвера для нового источника данных (рис. 9), в котором необходимо выбрать требуемый драйвер и нажать кнопку Готово. (Обратите внимание, что в системе установлены несколько драйверов Visual FoxPro, но только один из них является драйвером баз данных Visual FoxPro. Остальные – это драйвера таблиц Visual FoxPro. Их можно отличить по наличию указанного в скобках расширения *.dbf).

Рис. 9 Окно определения драйвера ODBC для нового источника данных

 

          После выбора необходимого драйвера на экране появляется диалоговое окно настройки параметров самого источника данных (рис. 10). В этом окне необходимо выполнить следующие действия:

1.   В поле Data Source Name ввести имя источника данных, по которому к нему в дальнейшем можно будет обратиться.

2.   В поле Description можно ввести описание источника данных, которое не влияет на работу с источником и необходимо только для пояснения семантики источника данных.

3.   В области Database type необходимо выбрать тип данных для источника данных. Переключатель Visual FoxPro database определяет, что в качестве источника данных будет использоваться база данных Visual FoxPro. Free Table directory – определяет в качестве источника данных каталог со свободными таблицами не входящими ни в одну базу данных.

4.   В области ввода Path необходимо указать полный путь к источнику данных. При необходимости можно воспользоваться кнопкой Browse, которая предоставляет доступ к окну интерактивного выбора источника данных.

5.   Кнопка Options>> открывает область определения дополнительных параметров источника данных. Рекомендуется оставить эти параметры без изменений, так как в противном случае бесперебойная работа с источником данных не гарантирована.

После определения всех параметров источника данных следует нажать кнопку OK, после чего на экране опять появится окно администрирования источников данных (рис. 8), но теперь в списке должен присутствовать новый, только что определенный источник данных. Далее, если нет необходимости определения дополнительных источников данных, следует нажать кнопку OK, после чего на экране опять появится окно построения соединения (рис. 7). В поле ниспадающего списка Data Source необходимо выбрать имя требуемого источника данных. После этого нажатием кнопки Verify Connection можно проверить доступность выбранного источника данных. Если все работает нормально, то на экране появится доброжелательное подтверждение, в противном случае – сообщение об ошибке.

После определения всех необходимых параметров необходимо нажать кнопку OK. На экране появится окно запроса имени сохраняемого соединения (рис. 11). В нем необходимо указать имя соединения и нажать кнопку OK. Обратите внимание, что соединение хранится в самой базе данных и является ее неотъемлемой частью, так что, при переносе базы данных на другой компьютер или изменении конфигурации источников данных необходимо либо настроить источники данных по новой, либо изменить соединения в соответствии с новыми установками.

Рис. 10 окно настройки параметров источника данных

 

Рис. 11 Окно запроса имени сохраняемого соединения

 

После сохранения соединения автоматически вызывается построитель удаленных представлений данных, работа в котором полностью идентична работе в построителе локальных представлений данных и немного отличается от построителя запросов. Дальнейшие действия по построению локальных и удаленных представлений данных полностью совпадают.

 

Задание.

1.   Создайте представления данных, позволяющие отредактировать кредит каждого покупателя и стоимость одной единицы товара.

2.   Откройте созданные представления и измените некоторые данные из таблиц. После закрытия представлений убедитесь, что изменения были внесены в соответствующие таблицы.

3.   Создайте представление данных, позволяющее редактировать телефоны покупателей. Представление должно содержать ФИО покупателя (как единое целое, а не как три поля) и его телефон.

4.   Используйте созданное представление для построения временной формы Cust_Phon в конструкторе форм.

5.   Создайте представление данных, показывающее по каждому покупателю итоговую сумму его покупок за заданный период. Используйте  это представление, как источник данных в отчете.

6.   Создайте форму, которая будет передавать в представление данных фамилию покупателя. Создайте представление данных, которое по полученной фамилии выдаст информацию обо всех покупках, совершенных этим покупателем. Обратите внимание, что пересчет данных, выведенных представлением данных, происходит только в момент его открытия. Для учета внесенных изменений необходимо закрыть представление и открыть его снова.

7.   Создайте источник данных для доступа к вашей базе данных, используя удаленное представление данных. После этого создайте временный проект Temp, который должен содержать только пустую базу данных. Создайте в этой базе данных удаленное представление данных, используя в качестве соединения созданный вами источник данных. Просмотрите созданное удаленное представление и сравните его данные с теми, что хранятся в самой базе данных. Попробуйте проделать то же самое с базой данных соседа.

Пример выполнения работы