Добавлен: 19.10.2018
Просмотров: 7958
Скачиваний: 3
31
1. объединение только тех записей, в которых значения связанных полей
обеих таблиц совпадают;
2. объединение всех записей первой таблицы и только тех записей из второй
таблицы, в которых значения связанных полей обеих таблиц совпадают,
3. объединение всех записей второй таблицы и только тех записей из первой
таблицы, в которых значения связанных полей обеих таблиц совпадают.
Первая из перечисленных альтернатив обозначает внутреннее, вторая –
левое, третья – правое соединение.
1.4. Задание ограничений целостности
Обеспечение целостности БД является одной из важнейших задач при
создании БД, так как обеспечение адекватности базы данных отображаемой
предметной области является одним из основных требований, предъявляемых к
БД.
При изложении вопросов создания и связывания таблиц мы уже касались
некоторых аспектов обеспечения целостности БД. Рассмотрим другие
возможности задания ограничений целостности.
В Access многие ограничения целостности могут задаваться при создании
таблицы.
Тип поля
Тип поля определяет допустимые символы, которые могут быть
использованы при его заполнении. Для некоторых типов полей, например, поля
типа «дата», осуществляется и более сложная проверка. Если допущена ошибка
в типе данных или неправильно введена дата, то пользователь должен
обязательно исправить ошибку, так как СУБД не дает других возможностей
продолжить работу.
Многие из свойств полей также позволяют обеспечивать контроль целостности.
Такие свойства полей как:
размер поля
формат поля
маска ввода
значение по умолчанию
условия на значения
сообщение об ошибке
обязательное поле
пустые строки
индексированное поле,
в той или иной степени связано с ограничениями целостности.
32
Поясним использование некоторых из перечисленных выше свойств в
целях обеспечения контроля целостности на отдельных примерах.
Размер поля
В поле нельзя ввести больше символов, чем это зафиксировано в свойстве
«размер поля» или предопределено типом поля.
Условия на значения
Одной из самых гибких возможностей определения ограничений
целостности является задание “Условия на значения”. Условия вводятся как
выражения. Выражения могут быть простыми или сложными. Используя их
можно задавать и диапазоны. Например, условие: >#1.92#, заданное как
“Условие на значения” для поля “ДАТА_ПРИЕМА_НА_РАБОТУ”, будет
означать, что допустим ввод дат только после 1992 года. (Значения-даты
необходимо заключать в символы номера (#)). Такое ограничение целостности
может быть использовано, например, в случае, если организация, для которой
ведется БД, была создана 1 января 1992 года, и все зачисления на работу были
после этой даты. При задании такого ограничения целостности ввод значения в
поле будет обязательным (даже если в свойстве поля «Условие на значение»
зафиксировано – «нет»).
Условия на значения могут задаваться для полей или записей. Выражения,
определяющие условия на значения, не должны содержать функции,
определяемые пользователем, статистические функции или функции по
подмножеству, функции CurrentUser или Eval, а также ссылки на формы,
запросы и таблицы. Кроме того, выражение, указанное в качестве условия для
поля, не должно содержать ссылки на другие поля. Выражение, указанное в
качестве условия на значение для записи, может содержать ссылки на поля той
же таблицы.
Условия на значения для записей задаются в окне свойств таблицы,
вызываемом командой “Свойства” меню “Вид” в режиме конструктора
таблицы.
Если пользователь задает значение свойства “Условие на значение”, но
не определяет свойство “Сообщение об ошибке”, то при нарушении условия на
значение Microsoft Access выводит стандартное сообщение об ошибке. Если
значение свойства “Сообщение об ошибке” задано (рис. 1.25), то в сообщении
об ошибке выводится текст, указанный в качестве значения этого свойства.
33
Рис. 1.25. Задание ограничений целостности при описании полей таблицы
В Access нет специального способа задания домена перечислением. Как
было показано выше, этого можно достичь, используя “Мастер подстановки”.
Кроме того, это можно сделать и путем задания соответствующего выражения
для свойства Условия на значения. Например, для поля “Должность” в БД
сотрудников вузов можно задать условие "ассистент" Or "старший
преподаватель" Or "доцент" Or "профессор".
Microsoft Access автоматически накладывает условия на значение,
определяемые типом данных поля, например, не допускается ввод текста в
числовые поля.
Маска ввода
Предположим, Вы вводите в таблицу имена сотрудников. Для
соответствующего поля можно задать маску ввода, которая позволит
использовать только буквы при вводе, обеспечит преобразование первого
символа в верхний регистр, всех остальных - в нижний, и допускающую
использование не менее двух букв (считаем, что имен, состоящих из одной
буквы, нет).
В Access такая маска ввода будет выглядеть следующим образом:
>L<L???????????????????????????
34
Символ “L” в маске обозначает, что в данную позицию должна быть
введена буква, символ “?” обозначает, что в данную позицию может быть
введена буква. Символ “>” преобразует все символы, расположенные правее
этого знака, к верхнему регистру, символ “<”преобразует все символы,
расположенные правее этого знака, к нижнему регистру.
Все символы, которые могут быть использованы в масках, и их
назначение можно посмотреть в “Справочной системе” Access.
Использование подобных масок ввода не только обеспечивает контроль
использования допустимых символов, но и облегчает процесс ввода данных.
Индексированное поле
Индексированное
поле
можно
использовать
для
контроля
на
уникальность. В Access, как и во многих других системах, при определении для
индексированного поля значения свойства “уникальный индекс” в это поле не
допускается ввод повторяющихся значений.
В тех СУБД, которые поддерживают концепцию ключа (в том числе и в
Microsoft Access), после того как в таблице определяется ключ, по этому полю
производится индексирование и запрещается ввод повторяющихся или пустых
значений ключа.
Как отмечалось выше, при задании связи между таблицами в Access
можно установить флажок “Поддержание целостности данных”, и в этом
случае система будет автоматически поддерживать ограничения целостности
связи.
При удалении основной записи, связанной с несколькими подчиненными,
могут быть выбраны разные стратегии обновления:
запретить удалять основную запись, если имеются подчиненные
удалить вместе с основной записью и все подчиненные (каскадное
удаление).
В Access, например, при поддержании целостности связи автоматически
принимается первая стратегия. Чтобы отменить ее для данной связи надо
установить флажок “Каскадное удаление связанных записей”.
Для задания сложных условий можно использовать макросы или модули.
35
1.5. Ввод данных в базу данных
После того как завершено проектирование структуры базы данных, БД
описана, можно приступать к вводу данных. Это можно сделать как сразу по
окончании описания структуры таблицы, так и потом.
Ввод и корректировка данных в режиме "Таблица"
Как отмечалось выше, чтобы сразу после описания структуры таблицы
вводить данные в эту таблицу надо щелкнуть по кнопке “Вид” и выбрать
“режим таблицы”. После сохранения описания таблицы, она высвечивается на
экране в табличном виде (первая строка этой таблицы содержит имена полей
таблицы, вторая – пустая, в которую и вводятся данные).
Для того чтобы попасть в режим ”Таблица” для ввода данных в уже
существующую таблицу надо в окне базы данных на вкладке “Таблицы”
позиционироваться на строке, соответствующей названию требуемой таблицы,
и нажать кнопку “Открыть”. Каждая таблица содержит пустую запись, которая
следует за последней существующей записью и предназначена для ввода новых
данных
(эта
запись
отмечена
слева
символом
“звездочка”
(*)).
Позиционироваться на эту запись можно разными способами, например, нажав
соответствующую кнопку в инструментальном меню или просто мышью. После
чего следует ввести требуемые данные с клавиатуры.
В Access для рационализации процесса ввода данных в БД можно
использовать свойство поля «Значение по умолчанию». Свойство «Значение
по умолчанию» позволяет указать значение, которое будет автоматически
вводится в поле при создании новой записи. В качестве значения по умолчанию
чаще всего выбирается то значение, которое чаще всего встречается в записях
БД. Например, для значения поля «Должность» в таблице, содержащей
сведения о сотрудниках вуза, это будет «доцент».
Обычно в качестве значения по умолчанию указывается постоянное
значение, однако, можно использовать и выражение. Например: для ввода
текущей даты можно ввести выражение
=Date(),
использующее функцию «Date()», выводящую текущую дату.
Если функция используется в выражении по умолчанию, то значение
соответствующего поля может быть в последствии изменено вручную.
Выражения, которые используются в качестве значений по умолчанию, не
должны содержать ссылки на элементы управления и другие поля, а также
функции, определенные пользователем.