Лабораторная работа № 5
Основы работы в СУБД Microsoft Access.
Создание новой базы данных
Сайт: | Электронный университет КГЭУ - виртуальная образовательная среда |
Курс: | Информатика и вычислительная техника |
Книга: | Лабораторная работа № 5 |
Напечатано:: | Гость |
Дата: | Saturday, 28 December 2024, 18:05 |
Оглавление
- 1. ОБЩИЕ ТЕОРЕТИЧЕСКИЕ МАТЕРИАЛЫ
- 2. «СОЗДАНИЕ НОВОЙ БАЗЫ ДАННЫХ»
- 2.1. ЗАДАНИЕ 1. Создание таблиц в режиме Конструктора
- 2.2. ЗАДАНИЕ 2. Ввод и редактирование данных в полях таблицы
- 2.3. ЗАДАНИЕ 3. Задание масок и форматов ввода для таблиц БД Факультет
- 2.4. ЗАДАНИЕ 4. Запись условий на значение в полях таблиц БД Факультет
- 2.5. ЗАДАНИЕ 5. Создание простого списка подстановок для таблицы Преподаватели
- 2.6. ЗАДАНИЕ 6. Ввод данных в таблицы
- 2.7. ЗАДАНИЕ 7. Установка связей между таблицами
- 2.8. ЗАДАНИЕ 8. Редактирование и удаление связей между таблицами
- 3. ВЫВОДЫ
- 4. КОНТРОЛЬНЫЕ ВОПРОСЫ
- 5. ОТВЕТЫ К ЗАДАНИЯМ
1. ОБЩИЕ ТЕОРЕТИЧЕСКИЕ МАТЕРИАЛЫ
В самом общем смысле база данных – это один или несколько файлов, содержащие связанную (по смыслу) между собой информацию. Допустим, в одном файле хранятся все данные о поступивших в ВУЗ студентах (ФИО, № группы, Дата рождения и т.д.), в другом – результаты их успеваемости, в третьем – данные о каждой группе (кол-во студентов, староста, куратор и т.д.). Но что делать, если какие-то данные должны использовать несколько приложений или людей, и при этом нельзя допустить чтобы одни и те же данные корректировали одновременно? Когда возникают такие проблемы, то для разрешения их можно воспользоваться системой управления базами данных (СУБД).
Access – это система управления базами данных (СУБД). Под системой управления понимается комплекс программ, который позволяет не только хранить большие массивы данных в определенном формате, но и обрабатывать их, представляя в удобном для пользователей виде. Access дает возможность также автоматизировать часто выполняемые операции (например: ввод и оценка результатов сессии, расчет стипендии, составление экзаменационных ведомостей и т.п.).
Access – это реляционная СУБД. Название «реляционная» связано с тем, что каждая запись содержит информацию, относящуюся только к одному объекту. В таких базах данные не дублируются, а связываются по определенным полям. Например, при указании куратора группы нецелесообразно упоминать все данные о кафедре, где он работает, – эти данные хранятся в отдельной таблице. Достаточно связать эти таблицы по имени кафедры. В реляционной базе данных сведения из каждого источника сохраняются в отдельной таблице, а затем между таблицами устанавливаются связи, что позволяет совместно работать с данными из нескольких таблиц.
1.1. Основные элементы интерфейса Access. Объекты Access
Работа с объектами баз данных (БД) производится в окне БД, имеющем стандартный интерфейс Windows: горизонтальное меню, служебные кнопки и панели инструментов. В программе Access имеет несколько типов окон, каждый из которых соответствует объектам Access, например окно базы данных (рис.1). Структурно это окно разделено на две части: панель с кнопками объектов БД: таблиц, запросов, форм и т.д. После щелчка на такой кнопке открывается вкладка соответствующего объекта, например, на рисунке открытка вкладка Таблицы и выведен весь список имеющихся в БД таблиц, панель инструментов, которая позволяет просматривать данные объекта и выбирать режим работы с объектом.
Рис.1. Окно базы данных
Создаваемые объекты базы данных – формы, запросы, отчеты – позволяют быстро и эффективно обновлять данные, получать ответы на вопросы, печатать отчеты, диаграммы и т.д.
Запросы позволяют проанализировать данные с помощью вычислений групповых операций и отбора данных, удовлетворяющих некоторым условиям.
Для добавления, просмотра и изменения данных одной или нескольких записей применяются формы. Они позволяют работать с данными сразу из нескольких таблиц.
Отчеты позволяют вывести на печать данные из полей таблиц, надписи, результаты групповых операций, диаграммы, рисунки и другие объекты, включая отчеты и постовые наклейки.
Макросы – это макрокоманды. Если какие-то операции с БД производятся очень часто, имеет смысл сгруппировать несколько команд в один макрос и назначить его выделенной комбинации клавиш.
Модули – программные процедуры, написанные на VBA. Если не хватает стандартных средств Access, можно расширить возможности системы, написав для этого необходимые модули.
1.2. Основные свойства и параметры таблиц базы данных
База данных (БД) – это совокупность информации по определенной теме. Реляционная БД состоит из набора связанных между собой таблиц. Данные в таблицах должны быть организованы так, чтобы обеспечить объединение разнородной информации, исключить ее дублирование.
Все составляющие базы данных – таблицы, отчеты, запросы, формы и объекты – в Access хранятся в едином дисковом файле. Основным структурным компонентом базы данных является таблица.
Таблиц в базе данных может быть несколько. Каждая запись таблицы содержит всю необходимую информацию об отдельном элементе базы данных. Например, запись о студенте может содержать фамилию, имя, отчество, дату рождения, адрес и т.п. Как правило, каждая таблица посвящена определенной «теме», а точнее – определенному классу объектов, о которых хранится информация в БД. Так, например, если БД обслуживает учебный процесс ВУЗа, такими классами могут быть студенты, преподаватели, аудиторный фонд и т.п.
Поле составляет отдельный столбец в таблице. При разработке структуры таблицы, прежде всего, необходимо определить названия полей, из которых она должна состоять, типы полей и их размеры. Каждому полю таблицы присваивается уникальное (в пределах таблицы) имя, которое не может содержать более 64 символов. Далее надо решить, данные какого типа будут содержаться в каждом поле: текстовые, числовые и т.д. В каждое поле вносится информация об объекте, которая называется значением поля. Допустимое количество полей – 255.
Запись. Полные сведения об одном объекте (например, конкретном студенте или преподавателе) содержатся в одной записи таблицы. Запись – это совокупность значений всех полей для одного объекта. Количество записей в таблице соответствует количеству объектов: если в ВУЗе 100 студентов, то в таблице, содержащей список студентов, будет 100 записей. Общее количество записей ограничивается емкостью жесткого диска. Всем записям таблицы соответствует одно и то же множество полей, хотя в определенных полях любая запись может содержать пустые (Null) значения.
Ключ. Каждое поле в таблице уникально. В реляционных БД для каждой записи вводится уникальный идентификатор – первичный ключ – это уникальная характеристика для каждой записи в пределах таблицы. В качестве такого ключа выбирается одно или несколько полей записи. В качестве примера простого первичного ключа можно использовать поле ФИО таблиц, содержащих списки студентов или преподавателей.
Понятие связей между таблицами. Такой механизм, как первичный ключ таблицы, помимо однозначной идентификации записей, позволяет реализовать и связи между таблицами. Благодаря связям информация из одной таблицы становится доступной для другой.
Связь устанавливается за счет того, что в разных таблицах присутствуют поля с одинаковыми значениями. При этом необязательно, чтобы эти поля имели одинаковые имена, достаточно соблюдать однозначное соответствие значений. Для одной из таблиц таким полем может являться первичный ключ, а поле второй таблицы в этом случае играет роль внешнего ключа.
1.3. Типы данных и их представление
Чтобы создать таблицу необходимо определить ее поля, типы данных этих полей и, иногда, некоторые дополнительные свойства этих полей. Всего поддерживается 10 основных типов данных. В таблице 1 перечислены все типы полей, определенные в Microsoft Access, и дается описание их размеров и сохраняемых в них значений.
Таблица 1. Типы данных и их представление
Тип данных. Содержимое поля |
Размер |
1 |
2 |
Текстовый. Текст или комбинация текстовых и числовых значений, например, адреса. Кроме того, в такие поля записывают числовые значения, для которых не предполагается выполнение расчетов, такие как телефонные или инвентарные номера или почтовые индексы. |
До 255 символов. Максимальное число символов, которые можно ввести в поле, зависит от свойства «Размер поля» |
Поле MEMO. Длинный текст, например, примечания или описания. |
До 65536 знаков |
Числовой. Числовые данные, допускающие использование в математических вычислениях за исключением денежных расчетов (для последних определен тип "Денежный"). Конкретный числовой тип определяется значением свойства "Размер поля". |
1, 2, 4 или 8 байт |
Дата/время. Значения даты или времени. |
8 байт. |
1 |
2 |
|
Денежный. Денежные значения. Тип "Денежный" позволяет проводить вычисления без округления значений. Максимальная точность составляет 15 знаков слева от десятичной запятой и 4 знака справа от запятой. |
8 байт. |
|
Счетчик. Уникальные последовательные (с шагом 1) или случайные номера, автоматически вставляемые при вставке записи. |
4 байт |
|
Логический. Поля, которые могут иметь только одно значение из пары значений, таких как Да/Нет, Истина/Ложь или Вкл/Выкл. |
1 бит. |
|
Мастер подстановок. Создает поле, позволяющее выбрать с помощью раскрывающегося списка значение из другой таблицы или из списка значений. При выборе данного значения в списке типов данных вызывается Мастер, заполняющий список подстановок. |
Размер, равный размеру ключевого поля, используемого для выполнения подстановок, обычно, 4 байт. |
|
ППоле объекта OLE. Объекты (например, документы Word, электронные таблицы Excel, рисунки и т.д. и т.п.), созданные в других приложениях, поддерживающих протокол OLE (Object Linking and Embedding), которые могут быть связаны или внедрены в таблицу Microsoft Access. Для вывода содержимого поля объекта OLE в форме или отчете необходимо создать связанную рамку объекта. |
До 1 Гбайт (ограничивается объемом диска). |
|
Гиперссылка (Для Access 2000 и выше). Обеспечивает связь с WEB-страницей, расположенной в интернет, внутренней сети или локальном компьютере. Позволяет переходить из текущего поля к информации в другом файле. При выборе этого поля Access автоматически запускает Web-броузер и отображает указанную страницу. |
|
Для числовых полей в Access предусмотрено несколько подтипов числовых данных. При выборе подтипа числового поля следует учитывать размер предполагаемых данных и, по возможности, использовать минимальное количество байтов. Варианты доступных подтипов перечислены в таблице 2.
Таблица 2. Подтипы полей для типа Числовой
Размер поля |
Диапазон значений |
Десятичные знаки |
Размер памяти в байтах |
Байт |
От 0 до 255 |
Нет |
1 байт |
Целое |
От - 32 768 до 32 767 |
Нет |
2 байт |
Длинное целое |
От - 2 147 483 648 до 2 147 483 647 |
Нет |
4 байт |
С плавающей точкой (4 байт) |
От - 3,402823E38 до 3,402823E38 |
7 |
4 байт |
С плавающей точкой (8 байт) |
от - 1,7976931348623E308 до 1,7976931348623E308 |
15 |
8 байт |
Код репликации |
Глобальный уникальный идентификатор |
Нет |
16 байт |
1.4. Общее проектирование и цель создания БД
В качестве наглядного примера проектирования базы данных будем использовать БД Факультет, работа с которой отражает упрощенную модель учебного процесса ВУЗа.
Во - первых, допускаем, что ВУЗ имеет 3 кафедры: КФ1, КФ2 и КФ3.
Во - вторых, на каждом из трех курсов обучается по две группы. Названия группам будем давать по принципу, принятому во многих ВУЗах: начало отражает принадлежность к определенной структуре ВУЗа и является, как правило, текстовой составляющей, последние символы в названии, как правило, – цифры, соответствующие году поступления в ВУЗ. Поэтому в нашей модели будем использовать такие названия групп, как А-N и Б-N, где N – последняя цифра года поступления, например, для 2003/4 учебного года А-3 и Б-3 – группы I курса, А-2 и Б-2 – II курса, А-1 и Б-1 – I курса. Номера студенческих билетов комбинируются из года поступления и порядкового номера студента на данном курсе, например, 1 - 10 (10-й студент 2001 года поступления).
В - третьих, для того, чтобы не занимать много времени на занесение однотипной информации в таблицы, принимаем, что количество студентов в группе не больше 5 – 6 человек.
В-четвертых, принимаем, что учебный план не меняется в течении всех лет обучения, т.е. форма и количество зачетов и экзаменов фиксировано: на каждом курсе сдается один зачет и два экзамена. Каждый учебный год – это один учебный семестр.
В - пятых, номера аудиторий комбинируются из имени корпуса ВУЗа (текстовая составляющая) и номера аудитории внутри данного корпуса – во многих ВУЗах принята именно такая система нумерации.
Принятые ограничения не изменяют качественной сути модели, а затрагивают лишь ее количественную сторону.
Итак, база Факультет может содержать следующие таблицы: Учетная карта (табл. 3), Ведомость (табл. 4), Группы (табл. 5), Преподаватели (табл. 6), Кафедры (табл. 7).
Таблица Учетная карта аналогична учетной карте Отдела кадров, которая заполняется как при поступлении студента в ВУЗ, так и во время его обучения (поощрения, награды, выговоры и т.д.). Для упрощения ввода в поле ФИО будем задавать только Фамилию и инициалы. Номер билета будет иметь текстовый тип, хотя можно определить его и как числовой.
Таблица 3. Предполагаемые поля таблицы Учетная карта
Имя поля |
Тип данных |
Размер |
Описание |
ФИО |
Текстовый |
25 |
Фамилия И.О. студента |
Nбил |
Текстовый |
4 |
№ студ. билета (например: 1-01) |
Nгр |
Текстовый |
3 |
№ группы |
Пол |
Текстовый |
1 |
Женщина – Ж, Мужчина – М |
ФормаОплаты |
Текстовый |
1 |
Бюджетная – Б, Коммерческая – К |
Льготы |
Логический |
1 |
Есть льготы (сирота, инвалид и т.д.) – Да, в противном случае – Нет |
ДатаРожд |
Дата/время |
|
Дата рождения |
Телефон |
Числовой |
Длинное целое |
Контактный телефон |
Фото |
OLE |
|
Фотография студента |
Примечание |
МЕМО |
|
Особые отметки: характеристика, награды, поощрения, выговоры и т.п. |
Таблица Ведомость содержит информацию об успеваемости каждого студента. Для простоты будем считать, что учебный план фиксирован: количество предметов, по которым сдаются экзамены и зачеты не меняется в течение всех лет обучения. В эту учебную таблицу введем лишь несколько полей с формальными названиями предметов и выпускной квалификационной работы.
Таблица 4. Предполагаемые поля таблицы Ведомость
Имя поля |
Тип данных |
Размер |
Описание |
1 |
2 |
3 |
4 |
ФИО |
Текстовый |
25 |
Фамилия И.О. студента |
1_зач |
Текстовый |
1 |
Отметка: зачтено – з, не зачтено – н |
1_Э1 |
Числовой |
Целое |
Оценка дисциплины 1-го экзамена I курса |
1_Э2 |
Числовой |
Целое |
Оценка дисциплины 2-го экзамена I курса |
2_зач |
Текстовый |
1 |
Отметка: зачтено – з, не зачтено – н |
2_Э1 |
Числовой |
Целое |
То же, что и 1_Э1, но для II курса |
2_Э2 |
Числовой |
Целое |
То же, что и 1_Э2, но для II курса |
3_зач |
Текстовый |
1 |
Отметка: зачтено – з, не зачтено – н |
3_Э1 |
Числовой |
Целое |
То же, что и 1_Э1, но для III курса |
3_Э2 |
Числовой |
Целое |
То же, что и 1_Э2, но для III курса |
Диплом |
Числовой |
Целое |
Оценка за выпускную работу (диплом, госэкзамен) |
Конечно, можно вместо формальных названий предметов включать конкретные предметы из вашего учебного процесса. Отметим, что поле ФИО – это и есть первичный ключ таблиц Учетная карта и Ведомость.
Таблица 5. Информация об общих характеристиках группы помещается
в таблице Группы
Имя поля |
Тип данных |
Размер |
Описание |
1 |
2 |
3 |
4 |
Nгр |
Текстовый |
3 |
№ группы – идентификатор группы |
Продолжение табл. 5
1 |
2 |
3 |
4 |
Куратор |
Текстовый |
20 |
Фамилия И.О. куратора |
Староста |
Текстовый |
20 |
ФИО старосты |
КолСтуд |
Числовой |
Целое |
Количество студентов в группе |
Курс |
Числовое |
Целое |
Курс, на котором обучается группа, вычисляется по номеру группы |
Следует отметить, что последние два поля таблицы Группы можно не включать на этапе построения таблицы, т.к. их значения являются производными от значений других полей: КолСтуд зависит от количества записей в таблице Учетная карта с данным Nгр, а номер курса – поле Курс – может быть вычислено, например, по последней цифре группы и текущего года. Поэтому эти поля мы отнесем к разряду вычисляемых полей и включим их с помощью специального запроса. Поле Nгр является первичным ключом таблицы Группы.
Таблица 6. Информацию о кафедрах факультета помещаем
в таблицу Кафедры
Имя поля |
Тип данных |
Размер |
Описание |
Кафедра |
Текстовый |
3 |
Название кафедры |
ЗавКаф |
Текстовый |
25 |
Фамилия И.О. заведующего кафедрой |
Nауд |
Текстовый |
5 |
№ аудитории |
Т/ф |
Числовой |
Длинное целое |
Номер телефона кафедры |
Таблица 7. Информацию о профессорско - преподавательском составе
помещаем в таблицу Преподаватели
Имя поля |
Тип данных |
Размер |
Описание |
ФИО |
Текстовый |
60 |
Фамилия, имя, отчество преподавателя |
Кафедра |
Текстовый |
3 |
Кафедра, на которой работает преподаватель |
Должность |
Текстовый |
10 |
Должность |
Телефон |
Числовой |
Длинное целое |
Контактный телефон преподавателя |
1.5. Определение связей между таблицами
Существует несколько типов связей:
связь "один-к-одному";
связь "один-ко-многим;"
связь "многие-ко-многим".
Связь "один-к-одному" представляет собой простейший вид связи данных, когда первичный ключ таблицы является в то же время внешним ключом, ссылающимся на первичный ключ другой таблицы. Такую связь бывает удобно устанавливать тогда, когда невыгодно держать разные по размеру (или по другим критериям) данные в одной таблице, или для того чтобы не занимать оперативную память, если эти данные используются сравнительно редко. Так в БД ФАКУЛЬТЕТ данные о студентах разбиты на две таблицы: в одной из них хранятся результаты экзаменационных сессий (Ведомость) – достаточно часто используемая таблица в учебном процессе, в другой (Учетная карта) – подробная информация о каждом студенте, которая требуется для обработки в течение года относительно редко. В этом случае устанавливается связь "один-к-одному" по ключевому полю ФИО.
Связь с отношением "один-ко-многим" является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице "A" могут соответствовать несколько записей в таблице "B", а запись в таблице "B" не может иметь более одной соответствующей ей записи в таблице "A". Например, между таблицами Группы и Учетная карта существует отношение "один-ко-многим": в каждой группе много студентов, но один студент может учиться только в одной группе. Связь "один-ко-многим" реализуется парой "внешний ключ – первичный ключ", т.е. когда определен внешний ключ, ссылающийся на первичный ключ другой таблицы.
В таблицах, связанных с отношением "многие-ко-многим", одной записи в каждой таблице могут соответствовать несколько записей в другой таблице. Для установления отношения "многие-ко-многим" необходимо создать третью (связующую) таблицу и включить в нее ключевые поля из обеих таблиц. В нашем примере отсутствуют связи такого типа. Продемонстрировать такую связь можно на примере работы библиотеки. В одной таблице содержатся данные о книгах (каждая книга может быть в нескольких экземплярах), в другой – данные о читателях. Каждый читатель может иметь на руках несколько книг, книга одного и того же названия может быть у нескольких читателей. Поэтому создается промежуточная таблица – абонентская карта (рис 2).
Рис 2. Реализация связи "многие-ко-многим"
Итак, мы рассмотрели основные этапы проектирования базы данных. Факультет, ориентированной на реализацию многих функций, поддерживающих «идеализированный» учебный процесс на факультете ВУЗа.
1.6. КОНТРОЛЬНЫЕ ВОПРОСЫ
- Что такое база данных? Какие достоинства имеет СУБД Access ?
- Перечислите основные элементы окна базы данных.
- Перечислите основные объекты СУБД Access, их назначение
и взаимосвязь. - Для чего служит структура "таблица"?
- Что такое поле таблицы? Перечислите три его основных параметра.
- Какого типа данные могут содержаться в поле?
- Что такое запись таблицы? Есть ли какие-либо ограничения на количество записей в таблице? Чем поле отличается от записи?
- Что такое первичный ключ? Как он выбирается?
- Как реализуются связи между таблицами? Для чего они устанавливаются?
- Могут ли МЕМО-поля и поля объекта OLE использоваться в качестве первичного ключа?
- На примере БД Факультет поясните, какие поля и почему выбраны в качестве ключевых.
- Чем отличается ключевое поле от остальных полей?
- Как соотносятся записи таблиц при реализации связи типа а) один-к-одному; б) один-ко-многим; в) многие-ко-многим?
2. «СОЗДАНИЕ НОВОЙ БАЗЫ ДАННЫХ»
Цель работы
Данная лабораторная работа предназначена для приобретения начальных навыков работы с таблицами реляционной базы данных, а именно:
а) создавать таблицы, задавая полям различные типы данных,
б) вводить и редактировать данные в таблицах,
в) организовывать связи между таблицами.
Создание пустой базы
База данных – это файл специального формата, содержащий информацию, структурированную заданным образом. Все объекты базы данных Access хранятся в одном файле с расширением .mdb. Файл новой БД занимает около 96 Кбайт содержит скрытые системные таблицы, в которые в дальнейшем будет заноситься информация обо всех других объектах БД. По мере создания новых объектов и заполнения самой БД размер этого файла будет расти, однако на протяжении всего периода существования БД вся эта совокупность элементов Access рассматривается как один физический файл.
С точки зрения пользователя, создание пустой базы данных – это некая формальная процедура, извещающая систему о ваших намерениях в дальнейшем заполнить этот файл реальными таблицами, запросами и другими объектами.
Создание объектов можно выполнять с помощью Мастера – специальной программы, ускоряющей создание структуры объекта, – или вручную. Для лучшего понимания структуры базы данных мы, в основном, будем ориентироваться на работу вручную – в режиме Конструктора (рис. 3).
2.1. ЗАДАНИЕ 1. Создание таблиц в режиме Конструктора
- Запустите программу Access.
- В появившемся диалоговом окне, установите флажок напротив опции новая база данных и подтвердите операцию.
- В следующем диалоговом окне вы должны выбрать папку для базы данных и задать ее имя (Факультет).
На экране появится окно с шестью вкладками, это и есть ваша база данных (она пока пустая).
|
4.
4. Перейдите на вкладку Таблицы.
5. Щелкнете мышью по кнопке Создание таблицы в режиме конструктора
Основываясь на спроектированных нами таблицах (табл. 3 ‑ 7), будем создавать поля со свойствами, описанными в этих таблицах. Начнем с таблицы Учетная карта.
6. В столбец Имя поля занесите имена столбцов будущей таблицы (рис.4). Напомним, что при этом нельзя использовать некоторые символы, в том числе пробелы, точки и запятые. В столбце Тип данных выберите (используя кнопку вызова списка ) тип данных. А то, что заносится в столбец Описание затем появляется, в виде комментариев, в строке состояния.
7. Названия полей даны латинскими буквами. Чтобы из-за этого не возникало неудобств при работе с таблицей, каждому полю задайте подпись на русском языке. Для этого надо перейти на вкладку Свойства поля и задать в строке Подпись сокращенное название поля на русском языке.
Свойство Подпись – это строковое выражение длиной до 2048 символов. Оно определяет тот текст, который будет выводиться в заголовке столбца в режиме таблицы. По умолчанию в качестве заголовка выводится имя поля. В подписи можно использовать любые символы, в том числе пробелы и точки.
Рис. 4. Название и типы полей таблицы Учетная карта.
Показан разворачивающийся список типов полей по кнопке вызова
8. Здесь же, в строке Размер поля, на основе табл. 3 задать размер для числовых и текстовых полей.
9. После ввода полей и типов данных желательно задать ключевое поле. Для этого необходимо щелкнуть правой клавишей мыши по полю ФИО и, в появившемся меню, выполнить команду Ключевое поле.
10.После ввода всех полей, их типов, размеров и названий закройте окно Конструктора и, при запросе о сохранении, задайте имя Учетная карта.
11. Аналогично создайте еще четыре таблицы, структура которых показана на рис. 5. Длину полей, подписи к ним и другие свойства полей выбирайте в согласии с таблицами 4 – 7. Имена полей, их типы и назначения показаны на рисунке 5.
12.Закройте таблицы с сохранением, дав им соответствующие имена.
13. Сохраните данную базу данных на диске или дискете для последующей работы. Для этого необходимо закрыть ACCESS и скопировать файл базы одним из средств Windows.
Изменение типа полей и реорганизация таблиц
В режиме конструктора все изменения, касающиеся структуры объектов, необходимо сохранять. Изменения, касающиеся структуры таблиц, желательно выполнять на этапе проектирования, еще до ввода данных, когда еще не созданы формы и запросы. В противном случае изменение типов полей может повлечь за собой потерю данных, о чем Access предупреждает при попытке сохранить изменения.
Рис. 5. База данных Факультет и структура ее четырех таблиц
- Чтобы изменить имя поля таблицы, нужно дважды щелкнуть на текущем имени поля и ввести новое имя.
- Чтобы изменить тип поля данных для уже существующего поля, надо щелкнуть на кнопке раскрывающегося списка в столбце Тип Данных и выбрать новый тип данных.
- Для добавления или удаления полей можно воспользоваться контекстным меню, установив курсор на требуемой строке в списке полей, и выбрать соответствующую команду.
- При копировании полей копируется только их структура, а не сами значения. Для этой процедуры можно использовать средства Windows для работы с буфером обмена.
- Для удаления поля так же используются традиционные средства Windows (буфер обмена или клавиша <Dеlete> на выделенном поле).
Обратим внимание на одну особенность всех баз данных. Таблица баз данных не является самостоятельным документом. Сама база – это документ. Ей соответствует файл на диске, можно сделать его копию. Структура таблиц входит в состав общего файла базы данных наряду с запросами, формами и другими объектами. При изменении структуры таблицы СУБД всегда выдает запрос на сохранение изменений.
Но содержание таблиц – это совсем другое дело. Его нельзя сохранить принудительной командой или, наоборот, отказаться от его сохранения. Все изменения в таблицах сохраняются автоматически в режиме реального времени. Режим реального времени означает, что, пока мы работаем с таблицей, происходит ее непрерывное сохранение. Как только заканчивается ввод данных в одно поле и происходит переход к следующему полю, данные немедленно записываются на жесткий диск.
Экспериментируя с таблицами, надо знать, что все изменения, которые вносятся в их содержание, имеют необратимый характер. Нельзя что-то изменить, удалить, а потом отказаться от сохранения и вернуться к исходному варианту.
Ввод и редактирование данных в таблице
Когда структура таблицы создана и откорректирована, можно приступать ко вводу данных. Начнем заполнение с таблицы Учетная карта. Чтобы добавить в таблицу первую запись, надо выполнить следующие действия.
- Двойным щелчком (или с помощью кнопки Открыть) откройте таблицу – она будет представлена в режиме таблицы, а указатель будет помещен в первое поле первой записи.
- Щелкнуть в первом поле пустой записи и вести значение для данного поля. Как только в текущую строку будут вводиться данные, в таблице появится новая пустая запись. (Если первым в таблице стоит поле с типом Счетчик, то оно заполняется автоматически). Для перехода в новое поле можно пользоваться клавишами <Tab>, (<Enter> или <®>).
- Процедуру ввода повторять до тех пор, пока не будут введены данные для всех полей таблицы. Когда введено последнее поле и нажата клавиша <Tab>, (<Enter> или <®>), точка вставки переместится в первое поле новой записи.
Если понадобится внести изменения в заполненную таблицу: отредактировать данные в полях, удалить или добавить записи, то можно пользоваться всеми приемами редактирования Windows: вставка и замена символов в указанном месте поля, работа с буфером обмена и командами горизонтального и контекстного меню. Приемом протягивание можно выделять группу записей или несколько столбцов (для копирования или удаления), можно выделять часть таблицы и переносить выделенные фрагменты через буфер обмена в рабочие листы Microsoft Excel или таблицы Microsoft Word.
Данные для ввода в таблицу приведены на рис. 6. Для того, чтобы уменьшить или увеличить ширину столбца, можно использовать стандартный прием Windows – перемещение: установить курсор на границе столбца, зафиксированной левой кнопкой мыши переместить ее в требуемую сторону.
2.2. ЗАДАНИЕ 2. Ввод и редактирование данных в полях таблицы
- Откройте таблицу Учетная карта. и введите в таблицу первые две-три записи (рис. 6). Обратите внимание новые записи в Access «добавляются» только внизу таблицы, в так называемую временную новую запись. Разместить новую запись между уже существующими или в начало таблицы – нельзя. (Чтобы визуально расположить записи в другом порядке, например, по алфавиту, можно воспользоваться функцией Сортировка из пункта горизонтального меню Записи).
- Обратите внимание, что новая запись отмечена «звездочкой» (). Но когда указатель перемещается в первое поле новой записи, «звездочка» изменится на значок текущей записи (). Когда в поле новой записи вводятся данные, указатель меняет свой вид на пишущий карандаш . Рис. 6 иллюстрирует именно этот момент.
- Обратите внимание, что в логическое поле Льготы значение «Да» не надо вводить: достаточно щелкнуть в заготовленной клетке левой кнопкой мыши – появится галочка () вместо «Да».
- Обратите внимание, что для числовых полей (Т/ф) можно вводить только цифры: при попытке ввести другие символы Access выдает предупреждение о несовпадении типа поля и данных.
Рис. 6. Таблица Учетная карта открыта в режиме таблицы для ввода
записей. При вводе новой записи значок изменяется на изображение
пишущего карандаша, а внизу таблицы появляется
новая временная запись
5. Для поля Дата рожд. по умолчанию предусмотрен краткий фомат даты дд.мм.гг. Если в качестве разделителя использовать запятую, то Access автоматически преобразует ее в точку.
6. Для поля типа OLE (Ф/гр) оставьте пустое место. Просмотр полей типа OLE возможен только в режиме Формы. При изучении работы с Формами рассмотрим, как внедрять в таблицу поля такого типа.
7. В поле Примечание можно вводить любую текстовую информацию.
8. Исправьте в первой записи фамилию Андреева О.С. на Андронова О.С. Перейдите в следующее поле.
9. Отмените сделанное изменение, используя кнопку Отменить на панели инструментов или клавиши Ctrl+Z.
10. После ввода 2 - 3 записей из таблицы рис. 6 введите в новую запись данные о себе.
11. Выделите только что введенную запись (щелкнув на кнопке выбора записи или поместив курсор в любое место записи, вызвать из горизонтального меню Правка>Выделить запись, затем с помощью контекстного или горизонтального меню вырежьте запись в буфер обмена. На предупреждение Access об опасности удаления, ответьте «Да».
12. Вставьте вырезанную запись с помощью команды горизонтального меню Правка>Добавить из буфера. Обратите внимание, что обычный способ вставки из буфера с помощью кнопки Вставка в данном случае не работает.
13. Снова выделите эту же запись и удалите ее, нажав клавишу <Delete> на клавиатуре, или выполнив команду Правка>Удалить запись.
14. Закройте таблицу, используя кнопку Закрыть или ту же команду горизонтального меню.
Форматирование данных и контроль ввода информации
При заполнении таблиц БД очень важно обеспечить достоверность и корректность данных в таблицах, а также представить их в максимально удобном для эффективной работы виде. Ключевая роль в решении этой задачи принадлежит таким свойствам полей, как Формат поля, Маска ввода и Условие на значение.
Форматирование
Форматирование данных позволяет определить способ отображения на экране вводимых данных. Изменив формат, можно представить данные в более привлекательном, информативном и доступном виде. Форматы применяются строго для определенных типов данных и доступны для любого типа, за исключением типа Поле объекта OLE.
В Access используются две разновидности форматов: встроенные и специальные. Последние создаются с помощью специальных символов. Для каждого типа полей существуют свои настройки форматирования и свои специальные символы.
Форматы для текстовых и МЕМО- полей создаются с помощью четырех специальных символов (табл. 8).
Таблица 8. Символы форматирования для текстовых и МЕМО-полей
Символы |
Описание |
Примеры форматов (вводимые данные – вид на экране) |
1 |
2 |
3 |
@ |
Прототип символа. В форматируемой строке вместо @ отображается введенный символ или, если символ не указан, выводится пробел. |
@@@-@@-@@@@ (465-07-3799 – 465-07-3799) |
1 |
2 |
3 |
< |
Переводит все символы на нижний регистр. |
иванов иванов ИВАНОВ иванов Иванов иванов |
> |
Переводит все символы на верхний регистр. |
иванов ИВАНОВ ИВАНОВ ИВАНОВ Иванов ИВАНОВ |
Так, например, для полей, содержащих фамилии и инициалы, во всех таблицах БД Факультет можно указать формат > (рис. 7), и тогда при вводе информации можно не следить за регистром: все фамилии и инициалы будут отображаться заглавными буквами.
Рис. 7. Для поля ФИО указан формат >, в результате чего
данные этого поля выводятся прописными буквами
Для форматирования числовых и денежных полей программа Access предлагает ряд встроенных форматов. Все они включены в список опции Формат поля (рис. 8) в виде пар: название формата и образец его использования.
|
Рис. 8. Список числовых форматов, предлагаемых в окне конструктора для свойства Формат поля
Наиболее распространенные специальные форматы создаются с помощью символов, представленных в табл. 9.
Таблица 9. Символы, используемые в специальных форматах
для числовых и денежных полей
Символ |
Описание |
. (точка) |
Десятичный разделитель. |
, (запятая) |
Разделитель тысяч. |
0 |
Прототип разряда. Независимо от числа символов 0, целая часть числа будет отображаться полностью. Например, число 345,6 в формате 00000,00 выглядит как 00345,60 |
# |
Прототип разряда. Независимо от числа символов #, целая часть числа будет отображаться полностью. Например, число 345,6 в формате #####.## выглядит как 345,6 |
% |
Процентный формат. Значение умножается на 100 и выводится со знаком процентов. |
E- или e- |
Экспоненциальная нотация с выводом знака минус перед отрицательным показателем и без знака перед положительным показателем. Используется вместе с другими специальными символами, например, 0.00E-00. |
Список встроенных форматов для полей типа Дата/время показан на рис. 9.
Рис. 9. Список встроенных форматов полей типа Дата/время
Здесь для каждого формата представлено его название и пример использования. Выбрать подходящий формат можно, щелкнув, на кнопке разворачивающегося списка.
Использование масок ввода и проверка значений
Если форматирование помогает варьировать представление данных в полях таблицы, то такие свойства, как Маска ввода и Условие на значение предусмотрены, чтобы не допустить попадание в таблицу некорректных данных.
Маска позволяет при вводе информации показывать в поле готовый шаблон, в который заносятся данные. Если, например, тип поля задан как текстовый, но в него должны водиться только цифры (например, номер студенческого билета), можно оговорить это условие с помощью маски.
Естественен вопрос, чему отдать предпочтение: форматированию или маске ввода? Принципиальное отличие этих опций в следующем: свойство Формат поля применяется уже после того, как данные введены и сохранены в поле, а свойство Маска ввода действует еще до размещения информации в таблице, регламентируя ввод данных в конкретном поле.
Свойство Формат поля не влияет на значения, хранимые в таблице. Свойство Маска ввода используется в дополнение к формату или вместо него. Если для поля одновременно задаются формат отображения и маска ввода, то Access использует маску ввода при вводе или редактировании данных и свойство Формат поля при отображении данных после сохранения записи. В таблице 10 представлены некоторые часто используемые маски ввода и соответствующие им значения.
Таблица 10. Символы, используемые для создания масок ввода
Символ |
Описание |
1 |
2 |
0 |
Цифра (от 0 до 9, ввод обязателен; символы "плюс" [+] и "минус" [-] не допускаются). |
9 |
Цифра или пробел (ввод не обязателен; символы "плюс" и "минус" не допускаются). |
# |
Цифра или пробел (ввод не обязателен; пустые символы преобразуются в пробелы, допускаются символы "+" и "–"). |
L |
Буква (A-Z или А-Я, ввод обязателен). |
? |
Буква (A-Z или А-Я, ввод не обязателен). |
A |
Буква или цифра (ввод обязателен). |
& |
Любой символ или пробел (ввод обязателен). |
C |
Любой символ или пробел (ввод не обязателен). |
. , : ; - / |
Десятичный разделитель и разделители тысяч, значений даты и значений времени. |
< / > |
Указывает перевод всех следующих символов на нижний/верхний регистр. |
\ |
Указывает ввод любого следующего символа как постоянного символа. Используется для ввода специальных символов как постоянных символов (например, \A выводится как символ "A"). |
Пароль |
Значение "Пароль", заданное для свойства "Маска ввода" создает поле ввода пароля. Любой символ. введенный в поле, сохраняется как символ, но отображается при вводе звездочкой (*). |
Порядок действий при создании маски несложен. Первый шаг – продумать, какой должна быть маска и какие функции она будет выполнять. Второй шаг – ввести подходящий вариант маски в поле «Маска ввода». Например, для ввода номера группы может быть создана следующая маска: L"-"9. Для ввода пола студента и формы оплаты за обучение допустим только один буквенный символ, поэтому используем простую маску L.
2.3. ЗАДАНИЕ 3. Задание масок и форматов ввода для таблиц БД Факультет
- Откройте таблицу Учетная карта в режиме Конструктора.
- Перейдите к полю Nst (№ бил) и на вкладке Общие>Маска вода задайте маску 9\-99 : все символы № билета – цифры, есть обязательный разделитель “–“ (тире).
- Для поля Ngr (№ гр) задайте маску L"-"9 : первый символ – буква, второй – обязательное тире и третий символ – цифра.
- Для поля Dtr(Дата рожд.) задайте Краткий формат даты, выбрав его из раскрывающегося списка на вкладке Общие> Формат поля (рис. 9).
- Сохраните изменения, внесенные в структуру таблицы, выполнив команду Файл>Сохранить или щелкнув на кнопке Сохранить , и закройте таблицу.
- Откройте в режиме Конструктора таблицу Группы. и задайте маску L\-9 для поля Ngr (№ гр). Закройте таблицу с сохранением.
- Откройте в режиме Конструктора таблицу Кафедры и задайте маску "КФ-"9 для поля Deprt (Кафедра).
- Для поля Naud (№ ауд) задайте маску L\-999. Что она означает?
- Закройте таблицу Кафедры.
- Откройте таблицу Преподаватели и задайте для поля Deprt (Кафедра) ту же маску, что и в пункте 6. Закройте таблицу с сохранением.
Проверка вводимых значений
Самый надежный способ обезопасить таблицу от ввода ошибочных или ложных данных – обеспечить их проверку на соответствие определенным требованиям непосредственно при вводе. Хотя часть работы по проверке допустимости значений данных программа Access выполняет автоматически, для обеспечения целостности данных следует предусмотреть хотя бы простейшие операции контроля.
Характер проверки задается в поле Условие на значение области Свойства поля, и если требование условия на значение не соблюдается, выдается сообщение об ошибке. Текст такого сообщения можно определить в опции Сообщение об ошибке.
Условие на значение вводится в виде выражения (команды для вычисления значений). В выражениях используются обычные символы арифметических действий: + (сложение), – (вычитание), * (умножение), / (деление). Такие символы называются операторами. В любом выражении присутствует, как минимум, один оператор. Значения, над которыми производится действие, называются операндами.
Кроме математических, для сравнения числовых величин используются операторы сравнения: > (больше чем), < (меньше чем), а также = (равно), <> (не равно), <= (меньше или равно), >= (больше или равно). Для операций над логическими величинами предусмотрены логические операторы, например, And, Or, Not.
Для текстовых значений существует оператор конкатенации (сцепления) &, с помощью которого можно объединить несколько строк символов в одну строку, и оператор Like, который проверяет соответствие строкового объекта заданному шаблону.
В выражениях можно использовать различные функции, например, математические, статистические или получения даты и времени. До и после даты, входящей в выражения, ставятся символы #.
2.4. ЗАДАНИЕ 4. Запись условий на значение в полях таблиц БД Факультет
- Откройте в режиме конструктора таблицу Учетная карта. Выберите поле pol(пол)
- Перейдите на вкладку Общие>Условие на значение и задайте условие "м" Or "ж"
- В области ввода "Сообщение об ошибке" укажите текст Введите м или ж.
- Для поля Dtr(Дата рожд.) задайте условие >=#01.01.70#, предполагая, что возраст студента дневного отделения не может превышать 33 лет (на 2003 год поступления).
- Перейдите к таблице Ведомость.
- Значение для поля, содержащего оценку за экзамен, например, для поля 1_е1 должно лежать в интервале от 2 до 5, поэтому задайте условие
>=2 and <=5 и соответствующее сообщение об ошибке
Введите целое число от 2 до 5. - Задайте такое же условие на значение для поля 1_е2.
- Для поля 2_е1 и 2_е2 ограничьте набор допустимых значений только пятью элементами Null (пустое поле), 2, 3, 4, 5, т.е. запишите условие Null Or 2 Or 3 Or 4 Or 5, и дайте соответствующий комментарий в строку Сообщение об ошибке.
- Для поля 3_е1 и 3_е2 запишите то же условие, используя оператор In(Null;2;3;4;5).
- Выберите любой способ для записи условий на поле Diplom (Диплом), а также на поля, содержащих данные о зачетах 1_p, 2_p и 3_р:
(з–зачтено, н–не зачтено). - Проверьте все таблицы, содержащие фамилии – Учетная карта, Преподаватели, Группы, Ведомость – на наличие условия перевода всех символов на верхний регистр (рис. 7).
- Обратите внимание, что можно работать с несколькими открытыми таблицами, переходя от одной таблицы к другой с помощью вкладки горизонтального меню Окно.
- Можно расположить все таблицы, так, чтобы они были видны одновременно. Для этого на вкладке Окно выберите из разворачивающегося меню соответствующую форму расположения таблиц: Сверху вниз, Каскадом или Слева направо (рис. 10). В таком представлении таблиц можно перейти от одной таблицы к другой, щелкнув левой кнопкой в любом месте окна нужной таблицы.
- Закройте все таблицы с сохранением структуры.
Рис.10. Расположение одновременно открытых таблиц Слева направо.
Создание простого списка подстановки
Достаточно часто бывают случаи, когда набор вводимых значений ограничен определенным списком, например, для таблицы Преподаватели, требуется ввести значения в поле Position (Должность) пять допустимых значений: аспирант, ассистент, доцент, ст.преп. (старший преподаватель), профессор. Проверку условия на значение для этого поля можно выполнить, создав простой список подстановки.
2.5. ЗАДАНИЕ 5. Создание простого списка подстановок для таблицы Преподаватели
- Откройте таблицу Преподаватели в режиме Конструктора. Выделите поле Position, а затем щелкните на вкладке Подстановка в области Свойства поля.
- Щелкните на поле Тип элемента управления, а затем выберите из раскрывающегося списка пункт Поле со списком или Список.
Теперь на вкладке Подстановка появился новый набор опций, которые необходимо определить. - Щелкните на поле Тип источника строк и выберите из раскрывающегося списка пункт Список значений. Оставьте неизменным принятое для свойства поля Присоединенный столбец и Число столбцов значение 1.
- Для свойств Ширина столбцов введите значение 1 см, а для свойства Ширина списка – Авто. Так как число опций списка равно 5, укажите значение 5 для свойства Число строк списка (по умолчанию ‑ 8).
- Для свойства Ограничиться списком укажите значение Да, тем самым ограничив число возможных значений для этого поля только теми, которые будут перечислены в списке подстановки.
- Теперь введите элементы будущего списка в поле Источник строк в следующем виде: аспирант; ассистент; доцент; ст.преп.; профессор. Элементы ввода разделены символами точки с запятой: рис. 11.
- Должность можно открыть список подстановки (рис. 12 а).
- Откройте в режиме Конструктора таблицу Учетная карта и создайте список подстановки для поля Форма Опл. с двумя столбцами согласно рис. 12 б).
Сохраните изменения.
Рис. 11. Для поля Должность создается список подстановки.
Все значения для опций списка вводятся во вкладке
Подстановка области Свойства поля
а) б)
Рис. 12. а) Список подстановки для поля Должность включает перечень
допустимых значений. б) Список подстановки для поля Paym(Форма опл.)
таблицы Учетная карта
Другие опции области Свойства поля
Прежде чем приступать к окончательному вводу данных в таблицы БД Факультет, рассмотрим другие свойства поля, которые активно используются при настройке структуры таблиц базы данных.
- Свойство Значение по умолчанию. Эта возможность позволяет упростить и ускорить ввод одинаковых значений в поле, а в случае необходимости вносить исправления уже в готовое значение, которое автоматически будет появляться в этом поле перед вводом данных. Таким значением может быть выражение, число или текст, которое соответствует типу данных поля. Для числовых и денежных данных по умолчанию устанавливается значение, равное 0.
- Свойство Обязательное значение. Определяет, требуется ли обязательно вводить данные в это поле. Если для свойства установлено значение «Да», при вводе или редактировании записей в таблице программа Access не «отпустит» вас, пока в этом поле не появятся данные. Пустые (Null) значения в этом поле не допускаются.
Ввод данных в таблицы
Для того, чтобы БД Факультет могла функционировать нормально, необходимо в каждую таблицу ввести необходимый минимум данных. На рис. 13 – 16 представлены данные для четырех таблиц БД (данные таблицы Учетная карта представлены на рис. 6).
2.6. ЗАДАНИЕ 6. Ввод данных в таблицы
- Откройте таблицу Учетная карта в режиме Таблицы и продолжите набор данных согласно рис. 13. Обратите внимание, как работают маски в полях № бил и № гр. Для поля Форма опл. воспользуйтесь созданным в предыдущем ЗАДАНИИ 5 списком подстановки.
- Откройте таблицу Ведомость в режиме таблицы.
В этом задании при заполнении поля ФИО таблицы Ведомость (а также и других таблиц) используйте прием копирования данных через буфер обмена. Этот способ не очень удобен, но на данном уровне знакомства с Access пока что является единственно доступным для ускорения ввода данных. Познакомившись с приемами связывания таблиц, создания запросов и форм, можно будет использовать более эффективные способы заполнения таблиц.
Итак, чтобы ускорить ввод данных и соблюсти однозначное соответствие записей в ключевом поле, перенесем данные в поле ФИО из таблицы Учетная карта, используя буфер обмена. Для этого выполните следующие действия.
- Откройте таблицу Учетная карта и в опции Окно выберите расположение Слева направо.
- Выделите столбец ФИО, щелкнув по названию поля. Выполните команду Правка>Копировать.
- Перейдите к полю ФИО таблицы Ведомость. Выполните команду Правка>Добавить из буфера. На эти действия Access выдаст предупреждение (рис. 17).
Рис.13. Таблица Ведомость открыта в режиме Таблицы для ввода записей
Рис.14. Таблица Преподаватели открыта в режиме Таблицы
для ввода записей
6. Подтвердите вставку записей. В результате таблица Ведомость будет иметь столько же записей, что и Учетная карта.
7. Перейдите в режим конструктора и проставьте в полях, где должны быть введены результаты зачетов (1_р, 2_р, 3_р) Значение по умолчанию "з".
Рис.15. Таблица Группы открыта в режиме Таблицы для ввода записей
Рис.16. Таблица Кафедры открыта в режиме Таблицы для ввода записей
Рис. 17. Предупреждение Access о попытке вставить записи
8. Перейдите в режим таблицы и, сравнивая таблицу с рис. 13, исправьте те записи, где стоит "н".
9. Введите остальные оценки. Закройте таблицы Учетная карта и Ведомость.
10. Откройте таблицу Преподаватели в режиме Таблицы и введите в нее данные согласно рис. 14. Обратите внимание, как работает маска в поле Кафедра. Воспользуйтесь списком подстановок для ввода должности преподавателя.
11. Откройте таблицу Группы в режиме Таблицы. Заполните ее согласно рис. 15. Можете воспользоваться буфером обмена для ввода фамилий кураторов и старост, копируя в него соответствующие фамилии из таблиц Учетная карта, Преподаватели.
12. Откройте таблицу Кафедры в режиме Таблицы. Заполните ее согласно рис. 16. Обратите внимание, как работает маска в поле Кафедра. Фамилии в поле Зав.каф. можно копировать из таблицы Преподаватели.
13. Закройте все таблицы. Обратите внимание, потребует ли программа от вас процедуры сохранения ? Почему?
Итак, на данном этапе создания базы данных вы обеспечили контроль и форматирование данных на этапе ввода, создали списки подстановок, научились работать сразу с несколькими таблицами, видоизменяя их расположение в окне. Кроме того, вы заполнили таблицы базы данных значениями, относящимися к студентам II и III курсов. Ввод значений для студентов I курса будем осуществлять позднее, используя более эффективные методы работы с программой Access.
2.7. ЗАДАНИЕ 7. Установка связей между таблицами
Организация связей между таблицами
Когда между таблицами устанавливается связь, это означает, что величины из одной таблицы ставятся в соответствие величинам из другой таблицы.
Нами уже были рассмотрены определения таких важных понятий, как первичный и внешний ключи, вопрос выбора первичного ключа и рассмотрен основной принцип, позволяющий реализовать связь между реляционными таблицами: такая связь становится возможной благодаря наличию в этих таблицах полей с совпадающими значениями данных.
Существуют условия, которым должны соответствовать типы данных связываемых полей.
- Общие или связываемые поля должны быть одинакового типа.
- Если оба связываемых поля имеют числовой тип, они должны иметь и одинаковые значения свойства Размер поля.
- Поле с типом Счетчик можно связать с числовым полем, у которого свойство Размер поля имеет значение Длинное целое.
Поскольку при проектировании БД Факультет сразу предполагалось, что все таблицы этой БД будут связаны между собой, рассмотрим в качестве примера создание таких связей. Для этого необходимо открыть окно Схема данных и добавить в него те таблицы, которые будут связаны. Окно Схема данных – это удобное и наглядное графическое представление связей для открытой базы данных, где можно добавлять таблицы, определять тип связи и устанавливать параметры целостности данных между таблицами. Итак, следуя рекомендациям ЗАДАНИЯ 7, установите связи между таблицами БД Факультет.
- Открыть базу данных и выполнить команду горизонтального меню Сервис>Схема данных или щелкнуть на кнопке Схема данных панели инструментов. Откроется диалоговое окно Схема данных. Если БД уже открыта, то создавать или изменять связи между открытыми таблицами нельзя, поэтому перед началом работы их следует закрыть.
- В том случае, если в окно Схема данных еще не добавлены никакие таблицы, сразу откроется окно Добавление таблицы. Если оно не появится, выполните команду горизонтального меню Связи>Добавить таблицу или щелкните на кнопке Добавить таблицу на панели инструментов.
- Дважды щелкните на имени таблицы (например, Учетная карта), которая должна быть включена в окно схемы данных.
- Выполните шаг 3 требуемое число раз, чтобы включить в рабочую область окна Схемы данных все необходимые таблицы. Затем щелкните на кнопке Закрыть. Для нашего примера таких таблиц будет пять, и в итоге все они появятся в окне Схема данных в виде отдельных окон, где перечислены поля, содержащиеся в таблицах (рис. 18).
- Создайте теперь связь между таблицами Учетная карта и Ведомость. Как отмечалось ранее, это связь типа «один к одному». Каждой записи первой таблицы соответствует одна (и не более) связанная запись второй таблицы (и, соответственно, наоборот).
В обеих таблицах роль первичного ключа выполняет поле ФИО. На этом поле таблицы Учетная карта нажмите левую клавишу мыши и, удерживая ее, перетащите на поле ФИО таблицы Ведомость. Затем отпустите левую кнопку мыши. (При таком порядке установления связи первую таблицу Учетная карта модно рассматривать как главную, а Ведомость – как подчиненную).
Рис.18. В окне Схема данных отображаются пять таблиц
базы данных Факультет
6. После того, как поле перенесено, появится диалоговое окно Изменение связей (рис. 19).
Рис. 19. Диалоговое окно Изменение связей позволяет
определить параметры создаваемой связи
7. Щелкните в этом окне на кнопке Создать, в результате между двумя полями появится тонкая линия объединения (рис. 20).
8. Теперь создайте связь между таблицами Учетная карта и Группы. Здесь, как уже отмечалось, связь типа «один ко многим». Одна из таблиц – Группы – называется родительской, или главной (общее поле Nгр является в ней первичным ключом), а вторая –дочерней, или подчиненной(поле Ngr в ней – это внешний ключ).Теперь, как и в п.5, первичный ключ надо выделить и совместить со вторичным, установив тем самым связь между указанными таблицами.
Рис. 20. Таблицы Учетная карта и Ведомость теперь
связаны между собой
9. Теперь необходимо повторить шаги 5 – 7 для каждой пары таблиц, которые необходимо связать между собой. Сделайте это самостоятельно, получив в результате этих операций в окне Схема данных структуру связей, изображенную на рис. 21.
Рис. 21. В окне Схема данных отображены все связи между таблицами
базы данных Факультет
10. Сохраните созданные связи, используя стандартные приемы Windows для сохранения. Но, даже, если Вы не сделаете этого, программа Access предложит вам сохранить созданные связи и при закрытии окна Схема данных.
Обеспечение целостности данных в базе
При определении связи между полями двух таблиц в диалоговом окне Изменение связей имеется опция Обеспечение целостности данных (рис. 19). Целостность данных – это система правил, регулирующих взаимодействие между связанными таблицами и обеспечивающих корректность хранимых в таких таблицах данных. Целостность данных подразумевает, что данные, введенные в общее поле двух связанных таблиц, должны совпадать.
Если используются условия целостности данных, то Access будет поддерживать следующие правила.
- В поле внешнего ключа дочерней таблицы нельзя ввести значение, не содержащиеся в поле первичного ключа родительской таблицы. Таким образом, если попытаться указать в поле Ngr номер группы, отсутствующий в списке Группы (поле Nгр), при сохранении записи программа Access выдаст сообщение об ошибке.
- Программа Access не позволяет удалить запись родительской таблицы, если в дочерней таблице имеются связанные с ней записи. Например, нельзя удалить из таблицы Преподаватели сведения о преподавателе, если он является куратором и о нем имеется запись в таблице Группы.
- Нельзя изменить значение первичного ключа в родительской таблице, если для данной записи существуют связанные записи в дочерней таблице. Например, если попытаться изменить название кафедры в поле Deprt таблицы Кафедры, то это сделать будет невозможно, т.к. в таблице Преподаватели существуют записи, в которых используется старое название (рис. 22).
Рис. 22. Предупреждение Access о невозможности изменения данных,
которое может нарушить их целостность
При выборе опции Обеспечения целостности в окне Изменение связей (рис. 19) становятся доступными еще две опции, которые позволяют активизировать автоматическое выполнение каскадного удаления и каскадного обновления данных.
- Если поставить флажок на опции Каскадное обновление связанных полей, то при любом изменении данных первичного ключа в родительской таблице (например, названия кафедры в поле Deprt таблицы Кафедры) автоматически будут обновляться соответствующие значения в поле связанной таблицы (поле Deprt таблицы Преподаватели). Благодаря внесению необходимых изменений в связанную таблицу целостность данных не будет нарушена. Если эта опция не включена, изменить значение ключевого поля первичной таблицы не удастся, как это уже было показано в предыдущем пункте.
- Когда установлен флажок в опции Каскадное удаление связанных полей, то при удалении записи в родительской таблице автоматически будут удаляться соответствующие записи в дочерней связанной таблице. Например, если такого рода связь установлена между таблицами Учетная карта и Ведомость, то при удалении записи из одной таблицы Учетная карта автоматически будет удалена такая же запись из таблицы Ведомость.
2.8. ЗАДАНИЕ 8. Редактирование и удаление связей между таблицами
В предыдущем ЗАДАНИИ 7 между всеми таблицами БД Факультет были установлены связи. Любая связь может быть отредактирована или удалена. Для это необходимо выполнить следующие действия:
- Если таблицы, между которыми необходимо изменить связь, открыты, заройте их.
- Открыть окно Схема данных.
- В окне Схема данных подвести курсор к линии связи, которую надо откорректировать, и двойным щелчком открыть диалоговое окно Изменение связей (рис. 19).
- Внесите необходимые изменения: установите целостность данных и каскадное обновление полей, проставив в соответствующих окнах флажки. После закрытия окна Изменение связей вы снова вернетесь в окно Схема данных.
- Обратите внимание, как изменился вид линий связи: теперь по схеме данных можно определить тип связи (рис. 23).
- После установления целостности связей всех таблиц откройте в режиме таблицы таблицу Учетная карта и Ведомость. Введите в первую таблицу в поле ФИО фамилии Иванов И.И. и Петров П.П., другие поля заполнять необязательно (запись считается введенной, если курсор уже переведен в поле временной (новой) записи). Затем через буфер обмена перенесите эти фамилии в таблицу Ведомость.
- Установите расположение окон Слева направо, используя пункт горизонтального меню Окно. Перейдите в таблицу Учетная карта. Удалите запись Иванов И.И.. (используйте пункт Правка>Удалить запись горизонтального меню). Внимательно прочтите предупреждение, которое выдает Access на ваши действия (рис. 24 а). Подтвердите удаление. Обратите внимание, что произошло с этой же записью в таблице Ведомость.
Рис. 23. Схема связей между таблицами, в которых обеспечивается
целостность данных
8. Установите курсор в таблицу Ведомость. Удалите запись с фамилией Петров П.П. Обратите внимание на предупреждение, сделанное Access в этом случае (рис. 24 б). Самостоятельно удалите запись с фамилией Петров П.П. из таблицы Учетная карта. Закройте обе таблицы.
а)
б)
Рис. 24. Предупреждение Access при каскадном удалении записи а) в главной таблице. б) в подчиненной таблице
9. Откройте таблицы Группы и Преподаватели. и расположите их Слева направо.
10. Попробуйте удалить запись с фамилией Голованова Н.И. из таблицы Преподатели. Access не может позволить вам этого сделать, иначе нарушается целостность данных (скопируйте запись с фамилией Голованова Н.И. в буфер обмена).
11.Удалите фамилию Голованова Н.И. из поля Кураторы таблицы Группы. А затем еще раз повторите шаг 10. На этот раз удаление записи должно пройти успешно.
12. Вставьте из буфера удаленную запись в таблицу Преподаватели и впишите эту же фамилию в поле Кураторы таблицы Группы. Закройте все таблицы.
Если понадобится удалить межтабличную связь, например, для того, чтобы изменить тип данных поля, участвующего в связи, необходимо выполнить следующие действия.
- Щелкнуть на требуемой линии объединения в окне Схема данных (линия при этом станет более жирной) и нажмите клавишу <Delete>. Есть и другой способ: щелкнуть правой кнопкой мыши на нужной линии связи и выбрать из появившегося контекстного меню команду Удалить.
- На экране появится диалоговое окно Access, в котором необходимо будет подтвердить удаление связи.
3. ВЫВОДЫ
Итак, таблицы баз данных можно связывать между собой, используя общее поле. На данном этапе конструирования базы вы изучили, как создавать, редактировать и удалять связи между таблицами, при необходимости указывая опции обеспечения целостности данных, такие, как каскадное обновление связанных полей и каскадное удаление связанных записей.
Благодаря связям между таблицами можно создавать запросы, формы и отчеты, отображающие информацию из нескольких таблиц. Изучению этих возможностей Access и будут посвящены следующие задания.
4. КОНТРОЛЬНЫЕ ВОПРОСЫ
- Что такое база данных с точки зрения ее хранения на диске?
- Как создать файл новой базы данных?
- Можно ли изменить структуру таблиц после их сохранения? В чем заключаются эти изменения?
- Что означает сохранение данных в режиме реального времени?
- Что такое временная запись таблицы? Можно ли разместить новую запись между уже существующими записями или поместить ее в начале таблицы?
- Какова реакция программы Access на ввод буквенных символов в поле числового типа?
- Как осуществляется копирование записей через буфер обмена?
- С какой целью делается форматирование данных в поле?
- Какой специальный формат необходимо применить, чтобы все символы текстового поля изображались заглавными буквами?
- Для каких типов полей разработаны встроенные форматы?
- Для чего предусмотрено свойство Маска ввода? В чем принципиальное отличие опций форматирования и маски ввода?
- С помощью какого свойства поля можно организовать проверку вводимых значений в числовое поле?
- Из каких элементов складывается выражение при проверке условия на значение?
- Для чего используется список подстановки?
- Какие возможности предоставляют свойства поля Значение по умолчанию, Обязательное значение?
- Когда Access потребует сохранения таблицы: при изменении свойств ее полей или при вводе данных? Что при этом сохраняется: значения в полях таблицы или ее структура?
- Каким условиям должны соответствовать типы данных связываемых полей? Поля каких ключей используются в роли общего поля при реализации связи между реляционными таблицами?
- Каковы условия поддержки целостности данных при связывании реляционных таблиц?
- Как изменяются данные в ключевых полях, если при установлении целостности данных установлено Каскадное обновление связанных полей?