- •Основы работы в субд microsoft access
- •Основные элементы интерфейса Access. Объекты Access
- •Основные свойства и параметры таблиц базы данных
- •Типы данных и их представление
- •Продолжение табл. 1
- •Общее проектирование и цель создания бд
- •Определение связей между таблицами
- •Контрольные вопросы
- •Создание пустой базы
- •Цель работы
- •Изменение типа полей и реорганизация таблиц
- •Ввод и редактирование данных в таблице
- •Форматирование данных и контроль ввода информации
- •Форматирование
- •Использование масок ввода и проверка значений
- •Проверка вводимых значений
- •Создание простого списка подстановки
- •Другие опции области Свойства поля
- •Ввод данных в таблицы
- •Организация связей между таблицами
- •Обеспечение целостности данных в базе
- •Контрольные вопросы
- •Оформление отчета
- •Цель работы1
- •Назначение и типы запросов
- •Выражение и его компоненты
- •Операторы
- •Литералы
- •Идентификаторы
- •Функции
- •Использование Построителя выражений
- •Запросы на выборку
- •Построение запросов с условием отбора
- •Построение запросов с параметром
- •Вычисления в запросах
- •Построение вычисляемых полей
- •Групповые операции и вычисления. Итоговые запросы
- •Контрольные вопросы
- •Оформление отчета
- •Цель работы2
- •Назначение формы
- •Использование автоформы
- •Создание форм с помощью Мастера
- •Конструктор форм
- •Структура формы
- •Создание и редактирование связанных записей
- •Свойства полей. Внедрение и просмотр полей типа ole
- •Создание поля со списком
- •Создание отчетов базы данных
- •Использование функций автоотчета
- •Использование Мастера отчетов
- •Настройка и форматирование отчета
- •Вставьте поле, в котором будет вычисляться текущий учебный год:
- •Завершение построения базы данных. Создание командных кнопок и кнопочных форм Элемент управления Кнопка
- •Создание кнопочных форм
- •Контрольные вопросы
- •Оформление отчета
- •Пункт 9. Список кураторов
- •Задание 10. Построение запросов с условием отбора
- •Запрос Список групп
- •420066, Казань, Красносельская, 51
- •420066, Казань, Красносельская, 51
Обеспечение целостности данных в базе
При определении связи между полями двух таблиц в диалоговом окне Изменение связей имеется опция Обеспечение целостности данных (рис. 19). Целостность данных – это система правил, регулирующих взаимодействие между связанными таблицами и обеспечивающих корректность хранимых в таких таблицах данных. Целостность данных подразумевает, что данные, введенные в общее поле двух связанных таблиц, должны совпадать.
Если используются условия целостности данных, то Access будет поддерживать следующие правила.
В поле внешнего ключа дочерней таблицы нельзя ввести значение, не содержащиеся в поле первичного ключа родительской таблицы. Таким образом, если попытаться указать в поле Ngr номер группы, отсутствующий в списке Группы (поле Nгр), при сохранении записи программа Access выдаст сообщение об ошибке.
Программа Access не позволяет удалить запись родительской таблицы, если в дочерней таблице имеются связанные с ней записи. Например, нельзя удалить из таблицы Преподаватели сведения о преподавателе, если он является куратором и о нем имеется запись в таблице Группы.
Нельзя изменить значение первичного ключа в родительской таблице, если для данной записи существуют связанные записи в дочерней таблице. Например, если попытаться изменить название кафедры в поле Deprt таблицы Кафедры, то это сделать будет невозможно, т.к. в таблице Преподаватели существуют записи, в которых используется старое название (рис. 22).
Рис. 22. Предупреждение Access о невозможности изменения данных, которое может нарушить их целостность
При выборе опции Обеспечения целостности в окне Изменение связей (рис. 19) становятся доступными еще две опции, которые позволяют активизировать автоматическое выполнение каскадного удаления и каскадного обновления данных.
Если поставить флажок на опции Каскадное обновление связанных полей, то при любом изменении данных первичного ключа в родительской таблице (например, названия кафедры в поле Deprt таблицы Кафедры) автоматически будут обновляться соответствующие значения в поле связанной таблицы (поле Deprt таблицы Преподаватели). Благодаря внесению необходимых изменений в связанную таблицу целостность данных не будет нарушена. Если эта опция не включена, изменить значение ключевого поля первичной таблицы не удастся, как это уже было показано в предыдущем пункте.
Когда установлен флажок в опции Каскадное удаление связанных полей, то при удалении записи в родительской таблице автоматически будут удаляться соответствующие записи в дочерней связанной таблице. Например, если такого рода связь установлена между таблицами Учетная карта и Ведомость, то при удалении записи из одной таблицы Учетная карта автоматически будет удалена такая же запись из таблицы Ведомость.
ЗАДАНИЕ 8. Редактирование и удаление связей между таблицами
В предыдущем ЗАДАНИИ 7 между всеми таблицами БД Факультет были установлены связи. Любая связь может быть отредактирована или удалена. Для это необходимо выполнить следующие действия:
Если таблицы, между которыми необходимо изменить связь, открыты, заройте их.
Открыть окно Схема данных.
В окне Схема данных подвести курсор к линии связи, которую надо откорректировать, и двойным щелчком открыть диалоговое окно Изменение связей (рис. 19).
Внесите необходимые изменения: установите целостность данных и каскадное обновление полей, проставив в соответствующих окнах флажки. После закрытия окна Изменение связей вы снова вернетесь в окно Схема данных.
Обратите внимание, как изменился вид линий связи: теперь по схеме данных можно определить тип связи (рис. 23).
После установления целостности связей всех таблиц откройте в режиме таблицы таблицу Учетная карта и Ведомость. Введите в первую таблицу в поле ФИО фамилии Иванов И.И. и Петров П.П., другие поля заполнять необязательно (запись считается введенной, если курсор уже переведен в поле временной (новой) записи). Затем через буфер обмена перенесите эти фамилии в таблицу Ведомость.
Установите расположение окон Слева направо, используя пункт горизонтального меню Окно. Перейдите в таблицу Учетная карта. Удалите запись Иванов И.И.. (используйте пункт Правка>Удалить запись горизонтального меню). Внимательно прочтите предупреждение, которое выдает Access на ваши действия (рис. 24 а). Подтвердите удаление. Обратите внимание, что произошло с этой же записью в таблице Ведомость.
Рис. 23. Схема связей между таблицами, в которых обеспечивается целостность данных
Установите курсор в таблицу Ведомость. Удалите запись с фамилией Петров П.П. Обратите внимание на предупреждение, сделанное Access в этом случае (рис. 24 б). Самостоятельно удалите запись с фамилией Петров П.П. из таблицы Учетная карта. Закройте обе таблицы.
а)
б)
Рис. 24. Предупреждение Access при каскадном
удалении записи а) в главной таблице.
б) в подчиненной таблице
Откройте таблицы Группы и Преподаватели. и расположите их Слева направо.
Попробуйте удалить запись с фамилией Голованова Н.И. из таблицы Преподаватели. Access не может позволить вам этого сделать, иначе нарушается целостность данных (скопируйте запись с фамилией Голованова Н.И. в буфер обмена).
Удалите фамилию Голованова Н.И. из поля Кураторы таблицы Группы. А затем еще раз повторите шаг 10. На этот раз удаление записи должно пройти успешно.
Вставьте из буфера удаленную запись в таблицу Преподаватели и впишите эту же фамилию в поле Кураторы таблицы Группы. Закройте все таблицы.
Если понадобится удалить межтабличную связь, например, для того, чтобы изменить тип данных поля, участвующего в связи, необходимо выполнить следующие действия.
Щелкнуть на требуемой линии объединения в окне Схема данных (линия при этом станет более жирной) и нажмите клавишу <Delete>. Есть и другой способ: щелкнуть правой кнопкой мыши на нужной линии связи и выбрать из появившегося контекстного меню команду Удалить.
На экране появится диалоговое окно Access, в котором необходимо будет подтвердить удаление связи.
Итак, таблицы баз данных можно связывать между собой, используя общее поле. На данном этапе конструирования базы вы изучили, как создавать, редактировать и удалять связи между таблицами, при необходимости указывая опции обеспечения целостности данных, такие, как каскадное обновление связанных полей и каскадное удаление связанных записей.
Благодаря связям между таблицами можно создавать запросы, формы и отчеты, отображающие информацию из нескольких таблиц. Изучению этих возможностей Access и будут посвящены следующие задания.
