
- •Раздел 7 База данных Access
- •2 Ввод данных в ячейки таблицы
- •3 Выполнение операций с бд
- •4 Сохранить созданную таблицу бд.
- •1 Создание новой бд на дискете.
- •2 Создание таблицы бд.
- •3 Сохранение таблицы:
- •Задание 2 Примера. Заполнение таблицы бд,
- •Работа с таблицей
- •8 Добавить новую запись
- •5 Для сортировки данных в поле "Дата рождения" по убыванию:
- •6 Для фильтрации данных по полям "Должность" и "Зарплата":
- •9 Для просмотра созданной таблицы перед печатью:
- •1 Вариант.
- •2 Вариант.
- •3 Вариант.
- •4 Вариант.
- •5 Вариант.
- •6 Вариант.
- •7 Вариант.
- •8 Вариант.
- •9 Вариант.
- •10 Вариант.
- •1.1 Способы создание форм
- •1.2 Правила ввода данных в форму:
- •Данные в форме сохраняются автоматически по мере их ввода в файле созданной бд, например, в файле бд "Справочник".
- •1.3 Порядок создания формы с помощью Автоформы
- •1.3.1 Сохранение формы
- •Порядок создания формы с помощью Мастера форм
- •1.2 Применение запросов
- •2 Формирование отчетов
- •2.1 Создание отчётов
- •Должность. Нажать клавишу Далее, появится следующее окно (рис. 12).
- •Контрольные вопросы
- •4 Создание форм для ввода данных в таблицы
- •Контрольные вопросы
- •Задание (Номер варианта – номер компьютера в аудитории)
- •2.2 Запрос с параметром по нескольким таблицам.
- •2.4 Запрос на удаление
- •2.5 Запрос на создание таблицы
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Создание сложных форм и отчетов
- •Сложные формы и отчёты
- •Пример 1Создание сложных форм.
- •Порядок работы:
- •2 Редактирование формы.
- •3 Редактирование осей диаграммы.
- •Пример 2Создание сложных отчетов
- •Порядок работы
- •Порядок работы
- •Контрольные вопросы
Должность. Нажать клавишу Далее, появится следующее окно (рис. 12).
5 В окне сортировки и вычислений выбрать в первом списке поле Фамилия, задать сортировку по убыванию – для этого нажать клавишу по возрастанию.
Рисунок 11 Задание группировки данных по полю Должность
Затем щелкнуть клавишу Итоги, поставить галочку в переключателе Sum (т.е. summa – сумма) для вычисления суммарного значения числового поля Зарплата, нажать ОК, чтобы вернуться в предыдущее окно сортировки и вычислений и нажать Далее.
Рисунок 12 Выбор полей для сортировки и вычислений
6 Выбрать вид макета – ступенчатый, нажать Далее, выбрать затем стиль – Обычный, нажать Далее.
7 В последнем окне задать имя отчёта Отчёт: группировка +сумма и нажать Готово. На экране появится созданный отчёт (рис. 13):
Контрольные вопросы
Что называется запросом и отчётом в СУБД Access?
Способы создания запросов и отчётов, для чего они применяются.
Какие виды запросов и отчётов можно создать с помощью Мастера?
Как создать простой запрос на выборку?
434
Как создать запрос с параметром?
Как создать перекрёстный запрос?
Какие операции можно выполнять с данными в запросах и отчётах?
Как сохранить запрос или отчёт под новым именем?
Как создать отчёт с группировкой данных?
Как ввести вычисления в отчёт?
21 Какие вычисления можно выполнить в отчёте?
Рисунок 13 Отчёт с группировкой данных по должности
(фамилии – по убыванию) и суммированием
по полю Должность
Задание 1
Открыть таблицу БД, созданную в лабораторной работе №1 и сохранённую на личной дискете студента.
создать простой запрос по открытой таблице БД, содержащий не менее четырёх полей.
Выполнить в запросе поиск записи по какому-либо значению второго поля.
Отфильтровать данные запроса по какой-либо записи третьего поля.
Отсортировать запрос по четвёртому полю в порядке возрастания.
Сохранить запрос под именем Запрос простой1
Создать на базе простого запроса запрос с параметром входа Фамилия.
Сохранить запрос с параметром под именем Запрос с параметром
Задание 2
1 Создать по своей таблице БД согласно своему варианту Отчёт с группировкой данных и вычислениями.
За образец взять технологию примера 2. Вариант соответствует номеру компьютера в аудитории.
435
Варианты задания 2:
№ вар.
Поле для группировки
Поле для сортировки
Вычисление итогов
Макет
отчёта
Стиль
1
Поле 1
Поле 2
Сумма
Ступенчатый
Обычный
2
Поле 2
Поле 1
Среднее
Блок
Спокойный
3
Поле 3
Поле 4
Минимум
Структура1
Полужирный
4
Поле 4
Поле 3
Максимум
Структура2
Сжатый
5
Поле 1
Поле 2
Сумма
По левому краю1
Строгий
6
Поле 2
Поле 1
Среднее
По правому краю2
Деловой
7
Поле 3
Поле 4
Минимум
Ступенчатый
Обычный
8
Поле 4
Поле 3
Максимум
Блок
Спокойный
9
Поле 1
Поле 2
Сумма
Структура1
Полужирный
10
Поле 2
Поле 1
Среднее
Структура2
Сжатый
Отчёт по лабораторной работе должен содержать:
Название работы (в скобках – имя файла описания лаб. работы)
Цель работы
Содержание работы (порядок выполнения)
Вариант задания,
Краткие ответы на контрольные вопросы (письменно)
Выводы по работе
Примечание
1 Первые 4 пункта переписываются из описания лабораторной работы access -3.
2 Результаты выполнения задания (запрос и отчёт) должны быть сохранены на дискете для выполнения последующих работ по MS Access.
436
Лабораторная работа 4
Реляционная база данных
Цель работы: научиться создавать реляционную базу данных из нескольких таблиц и устанавливать связи между ними
Содержание работы
1 Создание инфологической и логической моделей базы данных из пяти таблиц.
2 Создание реляционной базы данных.
3 Установка связей между таблицами.
4 Ввод данных в таблицы посредством форм.
1 Инфологическая модель данных
Инфологическая модель реляционной БД – это структурная схема объектов БД – её таблиц и логических связей между таблицами.
Слово "инфологическая" происходит от лат. "informatio" - разъяснение, сведения и греч. "logikě" - логика, т.е. инфологическая модель означает информационную модель данных, между которыми установлены логические связи. Массивы данных обычно сводятся в таблицы, а таблицы – в базы данных (БД).
Слово "реляционная" происходит от relation (англ.) – отношение, в математических моделях данных отношения изображают в виде таблиц, поэтому БД, состоящая из двумерных таблиц, называется реляционной. Реляционная БД (РБД)состоит из нескольких таблиц, содержащих массивы данных, между таблицами установлены логические связи, которые и объединяют их в единую базу данных.
Отношение БД (таблица) состоит из полей (другое название - атрибутов), т.е. столбцов таблицы, и записей (или кортежей), т.е. строк таблицы. Шапка таблицы с названиями полей называется схемой отношения. Связь между таблицами устанавливаются по ключевым атрибутам, которые в Access могут быть трёх типов: простой ключ, составной ключ и внешний ключ.
Простой ключ или ключевой атрибут (в русифицированной версии Access – первичный ключ или ключевое поле) должен однозначно идентифицировать (определять) любую запись в таблице БД. Например, поле Фамилия не может быть первичным ключом, т.к. в кортежах БД могут быть люди с одной фамилией, поле Корпус может означать и корпус прибора, и воинское подразделение и т.п., поэтому в качестве первичного выбирают уникальные атрибуты – Табельный номер, шифр изделия, Код дисциплины и т.п.
Составной ключ – это первичный ключ, состоящий из нескольких
437
атрибутов, например, по отдельности атрибуты Фамилия и Дата рождения не могут однозначно определить любую запись таблицы, а составной атрибут Фамилия+Дата рождения является уникальным (единственным), так как маловероятно, что в таблице могут иметься две записи с совпадающими значениями этих полей.
Внешний ключ – это атрибут, который служит для связи с другими таблицами и имеется во всех таблицах, между которыми устанавливается связи. Обычно таблица БД имеет один ключевой атрибут (простой или составной) и один или несколько вторичных. Внешним ключом для подчинённой таблицы является первичный ключ. Для задания связи эти поля таблицы должны иметь одинаковые имена или хотя бы одинаковые форматы данных.
Одна таблица в БД является основной, родительской, а связанные с ней таблицы – подчинёнными, дочерними, которые, в свою очередь являются основными для своих подчинённых таблиц и т.д. На рис. 1 изображена структура реляционной БД "Факультет", содержащая таблицы Деканат, Кафедры, Преподаватели, Дисциплины, Группы и Студенты .
связь 1:1
связь 1:N
связь N:M
Рисунок 1 Инфологическая модель реляционной БД "Деканат"
Между таблицами БД может быть три вида связей:
связь "один к одному" , 1:1, например, между деканатом и факультетом, т.к. у факультета – один деканат, и у деканата – один факультет,
связь "один ко многим", 1:N, например, между кафедрой и преподавателями, т.к. у кафедры много преподавателей, а у каждого преподавателя – одна кафедра и
связь"многие ко многим", N:M, например, между преподавателями
438
и дисциплинами, т.к. один преподаватель читает несколько дисциплин, и одна дисциплина может читаться несколькими преподавателями.
Связи "один к одному" и "один ко многим" легко устанавливаются в Access, а связь "многие ко многим" напрямую не может быть реализована, но фактически она представляет собой две связи типа "один ко многим", поэтому для неё создаётся третья таблица, ключ которой состоит из двух полей, общих для двух таблиц со связью N:M. Таким образом, связь N:M заменяется на ещё одну таблицу, которая связывается с обеими таблицами двумя связями 1:N. В таблице связи, кроме ключевых атрибутов могут быть и другие описательные поля.
Например, связь N:M между таблицами-объектами ГРУППА и ДИСЦИПЛИНА реализуется с помощью третьей таблицы с именем ГРУП-ДИСЦ, которые связаны с исходными таблицами связями 1:N (рис. 2).
N
M
1 N N 1
Рисунок 2 Замена связи N:M на таблицу с двумя связями 1:N
Таким образом, реализация связи "многие ко многим" добавляет в БД ещё один объект – таблицу связи.
Логическая модель реляционной БД – это инфологическая БД, в которой каждая её таблица представлена своей схемой – шапкой таблицы и показаны ключевые атрибуты, между которыми установлены логические связи между таблицами.
Целостность данных
Целостность данных - это система правил, используемых в СУБД Access для поддержания связей между записями в связанных таблицах, а также обеспечение защиты от случайного удаления или изменения связанных данных:
1 Поле таблицы, посредством которого реализована связь, является ключевым полем или имеет уникальный индекс (индекс – это значение поля в записи, по которому выполняется поиск этой записи).
2 Связанные поля таблиц имеют один тип данных (исключение - поле счетчика может быть связано с числовым полем, если оно имеет тип Длинное целое).
3 Обе таблицы принадлежат одной базе данных Access.
439
4 При изменении поля связи в записи родительской таблицы следует синхронно изменить значение поля связи в записях дочерней таблицы.
5 При удалении записи в родительской таблице следует удалить соответствующие записи в дочерней таблице.
Изменения или удаления в записях дочерней таблицы при одновременном изменении или удалении записи в родительской таблице называются каскадными изменениями или каскадными удалениями.
Таким образом, ссылочная целостность – это совокупность каскадных связей между отдельными таблицами БД. Нарушение хотя бы одной из них делает информацию в БД недостоверной.
СУБД обычно блокирует действия, которые нарушают целостность связей между таблицами, т.е. ссылочную целостность.
Пример 1 Создать реляционную БД Спортзал, состоящую из объектов Тренеры (Код тренера, Фамилия, Имя, Отчество, Дата рождения, Должность, Дисциплина, Код дисциплины, Телефон, Зарплата) , Спортсмены (Код спортсмена, Фамилия, Имя, Отчество, № группы, Телефон) и Виды спорта(Код дисциплины, Название дисциплины). Разработать инфологическую и логическую модели БД, структуру таблиц, установить связи. Ввод данных в таблицы выполнить посредством форм.
Порядок работы
1 Разработка инфологической модели БД Спортзал, т.е. определение всех таблиц БД и связей между ними.
По условию, БД должна содержать 3 таблицы: Тренеры, Спортсмены, Виды спорта. Между таблицами Тренеры и Виды спорта действует связь 1:M, между таблицами Виды спорта и Спортсмены – связь N:M. Связь "многие ко многим" между объектами Виды спорта и Спортсмены заменяем на новую таблицу с именем Оценки (Код спортсмена, Код дисциплины, Оценки) и двумя связями типа 1:N.
Всего в БД Кафедра получается 4 таблицы и 3 связи типа 1:N, её инфологическая модель имеет вид (рис. 3):
1:N
1:N 1:N
Рисунок 3 Инфологическая модель БД Спортзал
440
2 Составление логической модели БД, она должна показывать схему(структуру) каждой таблицы и связанные ключевые атрибуты (рис. 4).
Назначим ключевые атрибуты:
в таблице Спортсмены - Код спортсмена,
в таблице Тренеры: первичный ключ – Код тренера (для связи с внешними структурами, например, с Тренерским советом), внешний ключ - Код дисциплины,
в таблице Виды спорта - Код дисциплины.
В таблице связи Оценки первичного ключа быть не может, т.к. данные в любом поле повторяются и идентификаторами записей быть не могут.
Рисунок 4 Логическая модель БД Спортзал
3 Создание реляционной БД в Access.
3.1 Создание РБД Спортзал:
загрузить Access, в появившемся окне выбрать пункт Новая база данных, затем щелкнуть по кнопке ОК;
в окне Файл новой базы данных задайте имя (пункт Имя файла) и выберите папку (пункт Папка), где ваша база будет находиться. По умолчанию Access предлагает имя базы dbl, а тип файла — Базы данных Access. Имя задайте Спортзал, а тип файла оставьте прежним;
щелкнуть по кнопке Создать.
3.2 Создать структуру таблицы Тренеры. Для этого:
в окне базы данных выберите объект Таблицы, а затем щелкните по кнопке Создать;
в окне «Новая таблица» выберите пункт Конструктор и щелкните по кнопке ОК. В результате проделанных операций откры-
441
вается окно таблицы в режиме конструктора, в котором следует определить поля таблицы;
определите поля таблицы в соответствии с табл. 1;
в качестве ключевого поля задайте «Код тренера». Для этого щелкните по полю «Код тренера» и по кнопке
на панели инструментов или выполните командуПравка\ Ключевое поле;
закройте таблицу, задав ей имя Тренеры
Таблица 1 Тренеры.
-
Имя поля
Тип данных
Размер поля
Код тренера
Числовой
Целое
Фамилия
Текстовый
15
Имя
Текстовый
12
Отчество
Текстовый
15
Дата рождения
Числовой
Целое
Должность
Текстовый
15
Дисциплина
Текстовый
15
Код дисциплины
Числовой
Целое
Телефон
Числовой
Целое
Зарплата
Денежный
Заполнение таблицы данными будет сделано в режиме формы.
3.3 Создать структуру таблицы Виды спорта аналогично п. 3.2 в соответствии с табл. 2.
Таблица 2 Виды спорта
-
Имя поля
Тип данных
Размер поля
Код дисциплины
Числовой
Целое
Название дисциплины
Текстовый
30
В качестве ключевого поля задайте «Код дисциплины». Заполняться эта таблица будет также в режиме формы.
3.4 Создать структуру таблицы Спортсмены аналогично п. 3.2 в соответствии с табл. 3.
Таблица 3 Спортсмены
-
Имя поля
Тип данных
Размер
1
2
3
Код спортсмена
Числовой
Целое
Фамилия
Текстовый
15
442
-
1
2
3
Имя
Текстовый
15
Отчество
Числовой
Целое
№ группы
Числовой
Целое
Телефон
Числовой
Целое
В качестве ключевого поля задайте "Код спортсмена". Заполняться эта таблица будет также в режиме формы.
3.5 Создайте структуру таблицы Оценки аналогично п. 3.2 в соответствии с табл. 4.
Таблица 4 Оценки
Имя поля
Тип данных
Размер поля
Код спортсмена
Числовой
Целое
Код дисциплины
Числовой
Целое
Оценки
Числовой
Целое
В этой таблице задавать ключевое поле не надо, так как данные во всех полях могут повторяться. Заполнение таблицы - в режиме формы.
3.6 Разработать схему данных, т.е. создать связи между таблицами. Для этого:
щелкните по кнопке
на панели инструментов или выполните командуСервис\ Схема данных. На экране появится окно «Схема данных»;
щелкните по кнопке
на панели инструментов или выполните командуСвязи\ Добавить таблицу;
в появившемся окне будет выделено название одной таблицы. Щелкните по кнопке Добавить;
переведите выделение на имя следующей таблицы и щелкните по кнопке Добавить. Аналогично добавьте оставшиеся две таблицы;
закройте окно, щелкнув по кнопке 3акрыть;
Создайте связь между таблицами Тренеры и Виды спорта. Для этого
подведите курсор мыши к полю Код дисциплины в таблице Виды спорта, щелкните левой кнопкой мыши и, не отпуская ее, перетащите курсор на поле Код дисциплины в таблицу Тренеры, а затем отпустите кнопку мыши. На экране откроется окно Изменение связей;
установите флажок ("галочку") в свойстве Обеспечение целостности данных, щелкнув по нему;
установите флажок в свойстве Каскадное обновление связанных полей и Каскадное удаление связанных записей',
Задание каскадного обновления связанных полей и каскадного уда-
443
ления связанных записей позволяет отредактировать записи только в таблице Виды спорта, а в таблице Тренеры эти данные изменятся автоматически. Например, если удалить из таблицы Виды спорта один предмет, то в таблице Тренеры удалятся все строки, связанные с этим предметом.
щелкните по кнопке Создать. Связь будет создана;
аналогично создайте связи между другими таблицами БД согласно рис. 4. Результат представлен на рис. 5;
закройте окно схемы данных, ответив ДА на вопрос о сохранении макета.
Рисунок 5 Структурная схема реляционной БД Спортзал