Блокировка неправильных данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Блокировка неправильных данных



Даже лучшие проектировщики БД проводят бессонные ночи, тревожась об ошибках, спо­собных проникнуть в их БД. Неверные данные — печально известная проблема, эти данные проникают в БД, прячутся там с течение месяцев и проявляют себя, только когда вы отпра­вили по электронной почте счет клиенту "Blank Blank" ("Пробел пробел") или продали ме­шок арахиса за -4.99 долларов.

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

В этой главе описан основной набор средств проверки, имеющийся у программы Access:

§ основные, включая совпадения, обязательные поля и значения по умолчанию;

маски ввода, форматирующие, с помощью образцов обычный текст, такой как почтовые коды и телефонные номера;

правила верификации (validation rules), устанавливающие строгие правила для полей, не подчиняющихся никаким законам;

подстановки (lookups), ограничивающие возможные значения списком заранее заданных вариантов.

 

 

О целостности данных

Все средства проверки программы Access реализованы в режиме Конструктора, с которым вы познакомились в главе 2. Для их применения вы выбираете поле и настраиваете его свой­ства. Единственная сложность — знать, какие свойства наиболее полезны. Некоторые из них описаны в главе 2, но в следующих разделах вы найдете дополнительные подробности.

 

 

Совет

Программа Access предоставляет три варианта переключения в режим Конструктора. Можно щелкнуть правой кнопкой мыши на заголовке вкладки таблицы и выбрать из меню команду Конструктор, использовать кнопку Режим на вкладке ленты Главная или воспользоваться крошечными кнопками режима в правом нижнем углу окна программы Access. Если вы очень нетерпеливы, то можете даже не открывать вашу таблицу, а просто найти ее в области пере­ходов, щелкнуть ее правой кнопкой мыши и выбрать команду Конструктор.


Запрет незаполненных полей

Для того чтобы каждая запись имела какой-то смысл, в ней должен быть хотя бы абсолют­ный минимум информации. Без вашей помощи программа Access не может отделить важ­ную информацию от необязательных деталей. По этой причине все поля в новой таблице определены как необязательные, за исключением поля первичного ключа (которое обычно содержит идентификационный номер записи). Убедитесь в этом с помощью таблицы Dolls из главы 1; вы быстро обнаружите, что можете вставлять записи, фактически не содержащие данных.


Этот недостаток легко исправить. Просто выберите в Конструкторе поле, которое обяза­тельно должно быть заполнено и задайте в свойстве Обязательное поле (Required) значение Да (рис. 4.1).

 

Рис. 4.1. Свойство Обязательное поле сообщает программе Access о запрете пропущенных значений (именуемых на профессиональном жаргоне null)

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

Представьте, что вы внесли в таблицу Dolls сведения о нескольких куклах-болванчиках до того, как решили, что в поле Character обязательно должно быть значение. Вы переклю­чаетесь в Конструктор, выбираете поле Character и заменяете значение свойства Обяза­тельное поле на Да. Когда вы сохраняете таблицу (возвращаясь в Режим таблицы или за­крывая таблицу), программа Access дает вам возможность проверить записи о куклах-болванчиках,


уже внесенных в таблицу (рис. 4.2). Если вы выбираете выполнение проверки и Access обнаруживает проблему, программа позволяет вам отменить внесенные корректи­ровки (рис. 4.3).


 
 


Рис. 4.2. Это хорошая идея проверить таблицу на соответствие новым требованиям, которые вы установили. В противном случае некорректные данные могут остаться в БД. Не дайте этому сообщению запугать вас — пока у вас нет десятков тысяч записей, такая проверка не займет много времени




Рис. 4.3. Если программа Access находит пропущенное значение, она останавливает поиск и спрашивает вас, что делать. Вы можете сохранить изменения (даже если они конфликтуют хотя бы с одной записью) — в итоге, по крайней мере, новые записи не будут порождать подобную проблему. Другой возможный вариант — вернуть прежнее, более терпимое значение свойству поля. В любом случае вы можете найти пропущенные данные, отсортировав данные с помощью вопроса, выводящего незаданные значения в верхние строки таблицы

 

Для тех, кто понимает.

Не требуйте слишком многого

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

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

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


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

 

 



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 113; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.83.97 (0.005 с.)