Цель работы: изучение и закрепление на практике методов и средств СУБД по корректному заполнению и модификации таблиц БД.
Методические указания
СУБД автоматически осуществляет проверку достоверности данных, вводимых в поля определенного типа. Например, нельзя ввести букву в числовое поле. Уровень контроля может быть повышен пользователем путем задания дополнительных ограничений на значения полей в области конструктора Свойства поля из бланка описания структуры таблицы.
Для этого можно использовать следующие свойства:
· Значения по умолчанию. Если в каком-либо поле формируемой таблицы будет преобладать одно значение, то целесообразно установить его в качестве значения по умолчанию, и оно будет появляться в данном поле автоматически при каждом создании новой записи. Например, если в таблицу заносится город проживания студента и преобладает Калининград, то целесообразно именно его установить в качестве значения по умолчанию. При занесении другого города данное значение необходимо стереть, например, сочетанием клавиш Ctrl/Backspace.
|
|
· Обязательное поле. Установка данного свойства в значение Да приводит к тому, что переход к новой записи не будет разрешен, пока пользователь не заполнит обязательное поле.
· Условие на значение. После перехода к данному свойству необходимо раскрыть путем нажатия на кнопку окошко, в котором формируется само условие с помощью указанных в нём операций. Например, можно установить условие на экзаменационные оценки в виде ограничения >1 And <6, что позволит вводить только цифры 2, 3, 4 и 5.
· Маска ввода. Это свойство используется для установки ввода данных по определенному шаблону. Последний состоит из трех частей, разделенных точками с запятой. Первая часть является маской, содержащей служебные символы и символы-заполнители данных, которые нужно ввести в поле. Служебными символами являются:
0 - знакоместо для цифры (от 0 до 9), ввод ее обязателен;
9 - знакоместо для цифры или пробела, ввод не обязателен;
# - знакоместо для цифры или пробела, ввод не обязателен, пустые символы преобразуются в пробелы. Разрешены символы + и -;
L - буква, ввод обязателен;
? - буква, ввод не обязателен;
А - буква или цифра, ввод обязателен;
а - буква или цифра, ввод не обязателен;
& - любой символ или пробел, ввод обязателен;
с - любой символ или пробел, ввод не обязателен;
< - принудительный перевод всех последующих символов в нижний регистр;
> - принудительный перевод всех последующих символов в верхний регистр;
! - заполнение маски справа налево (символ! можно ставить в любую позицию маски);
\ - следующий символ является текстовой константой (отображается как литерал).
|
|
Любые символы, не включенные в этот список, отображаются как литералы.
Вторая и третья части шаблона не являются обязательными. Если во второй части указана 1 или ничего не указано, то при заполнении поля сохраняются только введенные символы, тогда как 0 означает, что нужно сохранять как введенные символы, так и символы маски. В третье части маски указывается символ, который отображается как заполнитель исходно пустых позиций при вводе нового значения. Если этот символ не используется, то по умолчанию используется подчеркивание.
Примеры масок: Результат ввода:
00-00-00 27-34-56
17-78-32
>L<??????????? Петров
Радиотехника
Достаточно сложно реализовать шаблон для ввода ФИО в виде Фамилия И.О. Если предположить, что сама фамилия содержит не более 15 символов и не короче 2 символов, то маска имеет вид >L<L????????????? L.L.;0; "_" и при переходе в данное поле изображается следующей структурой _______________ _._.. При ее заполнении необходимо установить курсор в левую позицию, набрать фамилию в любом регистре (первый символ автоматически станет заглавной буквой, остальные отображаются в прописном варианте), а затем мышью или клавишей ® перенести курсор в место ввода инициалов:
Романов________ _._.
При переходе в следующее поле введенное значение преобразуется к нормальному виду, т.е. без пропусков - Романов П.Р.
Если в шаблоне будет отсутствовать вторая компонента, то точки после инициалов придется вводить самому пользователю, в противном случае ФИО будет отображаться в формате Фамилия ИО.
Еще один вариант повышения достоверности вводимых данных - использование полей-фиксированных списков данных. Например, для оценки знаний студентов используются только четыре значения: неуд., удовл., хор. и отл. Для их фиксации используется мастер подстановок (последняя опция в списке допустимых типов данных). Далее СУБД запрашивает способ формирования перечня значений. В данном случае необходимо выбрать вариант Будет введен фиксированный набор значений и нажать кнопку Далее>. Затем система запросит количество столбцов для ввода данных (при небольшом количестве значений целесообразно выбирать один столбец) и предоставит место для ввода этих значений. В дальнейшем - уже при заполнении таблицы - в поле-списке появляется кнопка раскрытия, нажатие на которую приводит к отображению введенных ранее значений. Выбор конкретного значения осуществляется щелчком мыши.
Каждое поле таблицы можно снабдить информационным сообщением, которое станет подсказкой и будет появляться при вводе пользователем ошибочного значения (Свойства поля – Сообщение об ошибке). Например, при вводе экзаменационных оценок сообщение может выглядеть следующим образом: "Экзаменационные оценки должны находиться в диапазоне 1.. 5".
Выполнение лабораторной работы
1. Для таблицы, созданной в предыдущей лабораторной работе, сформировать меры контроля достоверности:
· шаблон для поля ФИО. Символ-заполнитель выбрать из таблицы 2.1;
Таблица 2.1
№ варианта | Заполнитель | Поля | № варианта | Заполнитель | Поля |
~ | 2, 3 | - | 3, 8 | ||
` | 2, 4 | _ | 4, 6 | ||
@ | 2, 5 | + | 3, 6 | ||
$ | 2, 6 | = | 4, 7 | ||
% | 2, 7 | | | 3, 8 | ||
^ | 2, 8 | " | 4, 6 | ||
& | 3, 4 | : | 5, 6 | ||
* | 3, 5 | [ | 5, 8 | ||
( | 3, 6 | ] | 6, 9 | ||
) | 3, 6 | { | 4, 7 |
· поле-список для семейного положения из значений: холост, не замужем, женат, замужем;
· поле-список для образования из значений: начальное, среднее, среднее специальное, высшее;
· количество детей - в диапазоне 0..6;
· дата рождения - в диапазоне 01/01/40..01/01/85;
· поле-список для пола из двух значений: м и ж;
· оклад - в диапазоне 100..10000;
· ключевое поле сделать обязательным;
|
|
· два поля таблицы (таблица 2.1) снабдить сообщениями-подсказками.
2. Дополнить таблицу десятью записями;
3. Переместить поле Дата рождения на вторую позицию и сделать два первых поля ключевыми.
4. Ввести две одинаковые ФИО, но разные даты рождения и посмотреть результат.
5. Результат работы показать преподавателю.