Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сокращённые консультации к ГОС.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
377.34 Кб
Скачать

36. Понятие события и метода

Работа с объектами Visual FoxPro управляется событиями. Событие (Event) происходит, если пользователь щёлкнул кнопкой мыши (Click), переместил объект (DragDrop), выбрал другой объект (LostFocus) и.д.

Для того, чтобы программа Visual FoxPro могла реагировать на события, служит команда READ EVENTS. Эта команда выполняется автоматически при запуске меню, использовании формы и в других случаях, когда VFP должна реагировать на события. При возникновении события, на которое способен реагировать объект, выполняется связанный с ним программный код метода обработки этого события (Method).

Код метода создаётся в текстовом редакторе как обычная программа. В состав объекта включены методы обработки различных событий, представляющие собой присоединённые к объекту процедуры. Метод может также вызваться на исполнение независимо от объекта. Примерами методов служат: RemoveObject – удаление объекта из контейнера, CloseTables – закрытие таблицы, Show – вывод формы на экран.

Объектная модель Visual FoxPro поддерживает более 100 событий, около 100 методов и сотни свойств. Перечень всех используемых в Visual FoxPro объектов, свойств, методов и событий можно найти в документации к программе и в рекомендуемой литературе 1. Объекту можно добавлять новые свойства и создавать собственные методы, но нельзя добавить новое событие.

Для того, чтобы объект реагировал на событие, следует использовать окно Properties, работа с которым рассмотрена ниже. Пример рассмотрен далее, см. главу «обработка событий».

Пример обработки события

В форму часто приходится встраивать кнопки, нажатие которых вызывает действие, определённое пользователем. Для создания кнопки используйте инструмент Command Button (Командная кнопка) на панели Form Controls. Создадим кнопку для выхода из формы.

После создания кнопки задайте на ней надпись «Выход», скорректировав свойство Caption (Заголовок). С этой целью разместите в поле ввода окна Properties текст, который будет отображаться на кнопке.

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

В окне Properties (Свойства) выберите вкладку Methods (Методы). Установите курсор на метод Click (Щелчок) и выполните двойной щелчок мышью. На экране откроется окно создания процедур. Введите команды, которые должны выполняться при нажатии на данную кнопку. Программный код показан на рис.36.

Сохраните введенный программный код через меню File → Save. Закройте окно процедур, нажатием клавиши ESC или через меню File → Close. Запустите форму на исполнение и проверьте работоспособность созданной кнопки.

39. Целостность, достоверность и непротиворечивость данных

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

Виды целостности

Различают несколько видов целостности.

Смысловая целостность. Каждая таблица базы данных соответствует какому-либо объекту реального мира. Если таблица полностью соответствует объекту, который она моделирует, то она обладает смысловой целостностью. Чтобы иметь такую целостность, таблица должна иметь первичный ключ (Primary key). Этот ключ однозначно определяет каждую строку таблицы. Если его нет, то невозможно установить правильно работающие связи между таблицами.

Доменная целостность. У многих данных набор возможных значений является ограниченным. Если вводится значение, которое не входит в этот набор, то такой ввод должен считаться ошибочным. Например, для автомобильных номеров, допускается только ввод номеров регионов из существующего списка. Если оператор вводит код, не входящий в список принятых кодов, он тем самым нарушает доменную целостность. Создавая процедуру проверки соблюдения доменной целостности, вы мо­жете предотвратить ввод неверных данных.

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

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

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

Один из способов сохранить ссылочную целостность состоит в том, чтобы отказаться от разрешения добавлять строки в дочернюю таблицу, пока в родительской таблице не появится соответствующая им строка. Если запретить добавление строк в дочернюю таблицу, пока не будет нужной строки в родительской таблице, то таким образом можно предотвратить появление "строк-сирот" в дочерней таблице. Под этим термином подразумевается появление записей в дочерней таблице не имеющих связи с родительской таблицей.

Целостность и достоверность информации

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

Ввод неправильных данных. В исходных документах или файлах с информацией, которыми вы пользуетесь для заполне­ния таблиц базы данных, могут быть неправильные данные. Некоторой защитой может служить проверка, при которой вводимые данные сравниваются с диапазоном допустимых значений. Например, цифра в бухгалтерской таблице, характеризующая месячную стипендию, не может быть меньше пятисот и больше тысячи рублей. Такие проверки помогают преодолеть некоторые трудности, но далеко не все. Если в документах имеются неправильные значения, не выходящие из допустимого диапазона, то в результате проверок ничего подозрительного обнаружено не будет.

Ошибка оператора. Данные, предназначенные для ввода в БД, могут быть правильными, но оператор при вводе допустит ошибку. Решение состоит в том, чтобы все вводимые данные независимо проверялись еще и вторым оператором. Такой подход обходится дорого, потому что независимая проверка уд­ваивает количество работников и затраченное на работу время. Хотя в некоторых случаях, когда целостность данных очень важна, дополнительные усилия и затраты себя оправдывают.

Чтобы уменьшить вероятность ошибки, работа с данными всегда производится через форму. Её использование делает работу более удобной, что снижает вероятность ошибки.

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

Злой умысел. Не следует исключать возможности умышленной порчи данных. Первая линия обо­роны – это запрещение доступа к базе данных всем посторонним лицам. Это достигается закрытием физического доступа к компьютеру и установкой парольной защиты на доступ к работе. Вторая линия обороны состоит в том, что каждый пользователь получает доступ только к данным, находящимся в его компетенции. Третья линия – хране­ние резервных копий данных в безопасном месте. Напомним, что главной ценностью БД являются таблицы, всё остальное легко восстановить.

Избыточность данных. Избыточность не только означает ненужный расход места на диске и замедление обработки, но также может привести и к серьезному повреждению данных. Если вы храните один и тот же элемент данных в двух разных таблицах базы данных, то одна его копия может быть изменена, а другая, что находится во второй таблице, может остаться прежней. Такая ситуация приводит к расхождениям, и может случиться так, что вы не сможете сказать, какой из двух вариантов является правильным. Жела­тельно сводить избыточность данных к минимуму. Определенная избыточность необходима, так как для установки связи между таблицами в них должно быть, как минимум, по одному одинаковому столбцу. Однако любой другой избыточности старайтесь избегать.

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

Распространенная среди пользователей практика состоит в том, чтобы вначале проектировать базу данных с малой избыточностью и с высокой степенью нор­мализации, а затем, обнаружив, что важные приложения работают медленно, выборочно добавлять избыточность и уменьшать нормализацию. Главное слово здесь – "выборочно". Добавляемая избыточность предназначена для опре­деленной цели, и так как она представляет определенный риск, предпринимай­те соответствующие меры к тому, чтобы избыточность вызывала проблем не больше, чем решала.

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

Существуют пределы количества строк таблицы, а также предел столбцов, ограничений и других характеристик. Поэтому старайтесь контролировать соответствие текущего размера и содержимого вашей базы данных техниче­ским характеристикам вашей СУБД. Если вы обнаружили, что предел какого-либо свойства уже близок, займитесь улучшением возможностей системы. Или заархивируйте старые дан­ные, к которым вы больше не обращаетесь, а затем удалите их из базы данных.