
1. Построение инфологической модели.
Выделим сущности ПО: Студент, Дисциплина.
Связи между ними: Студент изучает Дисциплину.
Построим ER-диаграмму.
Рисунок 1ER-диаграмма

Так как любой студент изучает хотя бы одну дисциплину и каждую дисциплину изучает хотя бы один студент, то класс принадлежности сущностей Студент и Дисциплина обязательный. Поэтому точки ставим внутри прямоугольников, а не на линии.
Поскольку каждый студент изучает несколько дисциплин и каждую дисциплину изучает много студентов, степень связи – N:N.
Так как каждого студента однозначно определяет № зачетной книжки, то этот атрибут является ключом сущности Студент. Аналогично ключом сущности Дисциплина является № дисциплины.
2. Переход к предварительным отношениям.
Так степень связи многие ко многим, то для хранения данных необходимо три отношения: по одному для каждой сущности и одно для связи. В нашем случае это будут отношения Студент, Дисциплина и Изучение.
Перечень первоначальных атрибутов распределим по таблицам:
Студент (№ зачетной книжки, ФИО студента, № группы, дата рождения, телефон, фото);
Дисциплина (№ дисциплины, название дисциплины, количество часов);
Изучение (№ зачетной книжки, № дисциплины, Дата, Оценка).
3. Описание структур таблиц.
Таблица Студент
Таблица 1
Название поля |
Тип данных и другие параметры |
№ЗачКн |
Текстовый, размер – 8; ключевое |
ФИО |
Текстовый, размер – 20 |
№ группы |
Текстовый, размер – 15 |
Дата рождения |
Дата/время, формат – краткий формат даты |
Телефон |
Текстовый, размер – 8 |
Фото |
Объект OLE |
Таблица Дисциплина
Таблица 2
Название поля |
Тип данных и другие параметры |
№ дисциплины |
Текстовый, размер – 5; ключевое |
Название |
Текстовый, размер – 30 |
Часы |
Числовой, Целое |
Таблица Изучение
Таблица 3
Название поля |
Тип данных и другие параметры |
№ЗачКн |
Текстовый, размер – 8; ключевое |
№ дисциплины |
Текстовый, размер – 5; ключевое |
Дата |
Дата/время, краткий формат даты |
Оценка |
Оценка, Байт; условие на значение - >2 and<6 |
II. Процесс создания многотабличной базы данных в Access можно представить как последовательное выполнение следующих этапов:
1. Создание структур таблиц БД.
2. Установка связей между таблицами.
3. Ввод данных в таблицы БД.
Создание структур таблиц
1. Запустите MS Access.
2. Создайте базу данных Файл/Создать/Новая база данныхи сохраните ее в своей личной папке.
3. Установите курсор на поле «ТАБЛИЦЫ» в левой панели.
a. Нажмите на кнопку «Режим/Конструктор»;
b. Введите имя создаваемой таблицы (Студент).
4. Создайте поля таблицы в правой части окна.
5. Установите курсор на строку №ЗачКн и нажмите на кнопку «Ключ», если данная строка не отмечена ключиком. В результате этой операции поле №ЗачКн будет ключевым (т.е . поле №ЗачКн будет уникальным для каждой записи).
6. Нажмите на кнопку «Сохранить» и закройте окно редактирования описания таблицы.
Рисунок 2Структура таблицы Студент
Аналогично можно создать структуры остальных таблиц.
Установка связей между таблицами
Сформировав таблицы и определив ключевое поле для каждой таблицы, между таблицами можно установить взаимосвязи, которые будут поддерживаться при создании форм, отчетов и запросов и задать условия целостности данных этих таблиц.
Связать можно только те таблицы, которые содержат поля с одинаковыми значениями. Имена этих полей могут не совпадать, однако обязательно должны совпадать типы данных, длины полей, а главное – значения.
Выберите команду Работа с базами данных/Схема данных.
Используя окно Добавление таблицы, укажите имена таблиц, которые должны быть связаны. Названия каждой из таблиц со списками полей появятся в соответствующем окне.
Рисунок 3Вид окна добавления таблицы
Установите курсор в любую из таблиц на поле, по которому будет установлена связь, и «перетащите» это поле на связующее поле другой таблицы.
Рисунок 4Вид окна установки связей
Активизируйте флажок Обеспечение целостности данных. Данное действие позволит предотвратить случайное удаление или изменение связанных данных. Установите флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей.
Рисунок 5Окно схемы данных
Если требуется установить более чем одну связь, в диалоговом окне Связи необходимо определить связующие поля, щелкнув в правой части клетки поля на стрелке, указывающей вниз, и выбрав нужное имя поля из открывшегося списка.
Ввод данных
Создайте формы для каждой таблицы и с их помощью заполните таблицы данными (не менее 10 записей для каждой таблицы).
1. Перейдите в главном меню на закладку «Создание»;
2. В подпункте меню «Формы» выберите пункт «Другие формы/Мастер форм»
3. В поле «Таблицы и запросы» выберете таблицу «Студент»;
4. Переместите все поля из левой колонки в правую нажатием на кнопку «Стрелка вправо»
Рисунок 6Окно создания формы
5. Нажмите кнопку «Далее»;
6. Выберете внешний вид «В один столбец» и нажмите кнопку «Далее»;
7. Выберете требуемый стиль «Стандартный и нажмите кнопку «Далее»;
8. Задайте имя формы «Студенты»
9. Установите дальнейшие действия в режиме «Открыть форму для просмотра и ввода данных» и нажмите кнопку «Готово»
10. Внесите 10 записей.
Рисунок 7Вид форма Студент
III. Создайте запросы следующих типов для своей базы данных:
Простой запрос на выборку.
Запрос на выборку с параметром.
Запрос на выборку с итогами.
Запрос на выборку с вычисляемыми полями.
Формулировки всех запросов, их структура должна быть внесена в отчет по практике в следующем виде:
Тип запроса:
Формулировка:
Структура:
Результат:
Пример:
Тип запроса: на выборку с параметром.
Формулировка: по заданному студенту узнать список изучаемых дисциплин и оценки по ним.
Структура:
Рисунок 8Структура запроса
Результат:
Рисунок 9Результат выполнения запроса
Access позволяет создавать запросы двумя способами: с помощью конструктора или с помощью мастера.
Для создания нового запроса:
В режиме Конструктора, в специальном бланке запроса указываются условия отбора выводимых на экран полей и записей одной или нескольких таблиц и порядок их отображения.
Запросы на выборку не изменяют содержимое базы данных, служат только для отображения данных, отвечающих заданным условиям.
Простой запрос на выборкупредназначен для извлечения данных из одной или нескольких таблиц и отображения их в режиме таблицы.
Для выбора записей, удовлетворяющих определенным критериям:
В окне База данных выберите вкладку Создание и нажмите кнопку Конструктор запросов.
В диалоговом окне Добавление таблицы укажите имена таблиц, по полям которых будет производиться запрос, нажимая кнопку Добавить после каждого указанного имени таблицы.
В строке Поле щелкните в правой части клетки на стрелке, указывающей вниз, и выберите имя поля, по которому будет осуществляться запрос. Если запрос осуществляется по полям из разных таблиц, то сначала щелкните в строке Таблица и укажите нужную таблицу, что позволит ограничить список полей в строке Поле. Если запрос будет осуществляться по нескольким полям, отобразите их имена в свободных клетках строки Поле.
Проследите, чтобы в строке Вывод на экран флажок отображался бы галочкой.
В строке Условие отбора введите критерии отбора.
Если условия в этой строке определены для нескольких полей, то они связаны логической функцией «И». Если условия отбора разных полей определены в разных строках – «Условие отбора» и «Или», - то такие условия связаны логической функцией «ИЛИ».
При построении критерия (условия) отбора в запросах могут использоваться выражения, операторы и функции Access. Кроме таких операторов как > (больше), < (меньше), >= (не менее), <= (не более), могут использоваться следующие операторы:
оператор Between позволяет задать интервал для числового значения, например: Between 300 And 500;
оператор IN – выполнить проверку на равенство любому значению из списка, например: IN(3181,3185) или IN(«Москва», «Санкт-Петербург», «Казань»);
оператор Like разрешает использовать образцы и символы шаблона при поиске данных, например: Like «Михайлов» или Like «М*».
Допускается использование в литерах символов шаблона *,?, #, [список], [!список]:
*- любое количество символов;
? – в позиции шаблона может быть один любой символ;
# - в позиции может быть любая цифра;
[список] – в позиции может быть любой символ из списка;
[!список] – в позиции может быть любой символ за исключение символа из списка.
При написании шаблон заключается в двойные кавычки.
Примеры:
Like «А*» - в поле «Фамилия» отражаются все фамилии, начинающиеся на А.
Like «*.1.99» - в поле «Дата» - все записи за январь 1999 года.
Like«[ABC]*» - в поле «Имя» - любое имя, начинающееся с указанных букв.
Как правило, запросы с параметром создаются в тех случаях, когда предполагается выполнять этот запрос многократно, изменяя лишь условия отбора. В отличие от запроса на выборку, где для каждого условия отбора создается свой запрос и все эти запросы хранятся в БД, параметрический запрос позволяет создать и хранить один единственный запрос и вводить условия отбора (значение параметра) при запуске этого запроса, каждый раз получая новый результат.
Откройте в режиме Конструктора окно запроса и добавьте в него таблицу. Создайте запрос, «перетащив» необходимые поля в бланк запроса и задав условие выбора.
В качестве условия введите параметр, заключенный в квадратные скобки (например, [Введите название] или >[Выше какого роста?]).
Нажмите кнопку
панели инструментов.
В появившемся окне укажите значение параметра.
Результат запроса будет содержать только те записи, которые удовлетворяю заданному значению параметра.
Запрос можно использовать для выполнения расчетов и подведения итогов из исходных таблиц. Для создания вычисляемых полей используются математические и строковые операции.
В режиме Конструктора запроса щелкнуть мышью по пустой ячейке в строке Поле. Для ввода выражения следует щелкнуть по кнопке инструментальной панели Построить, либо выбрать одноименную команду в контекстном меню, щелкнув по пустому полю правой клавишей мыши.
В окне построителя необходимо создать выражение, начинающееся со знака «=» последовательным добавлением в него имен полей, функций, констант и операторов, которые выбираются из соответствующих списков.
Рисунок 10 Пример построения выражения
После создания в окне построителя щелкнуть по кнопке ОК и вернуться в окно Конструктора запроса. В поле появится выражение. По умолчанию после нажатия клавиши Enter или перемещения в другую ячейку полю будет автоматически присвоено имя ВыражениеN, где N – целое число, возрастающее на единицу для каждого нового поля, содержащего выражение, в запросе.
Пример:
Выражение1:[Студент]![Стипендия]*0.2
Пользователь может переименовать вычисляемое поле, выделив имя этого поля и введя новое имя, например, заменить имя «Выражение1» на имя «НДС».
Например, для создания поля Сумма следует ввести в ячейку в строке Поле выражение:
Сумма: [Цена]*[Количество]
При делении денежного значения на любое число возвращается числовое значение со значением свойства Размер поля «С плавающей точкой (8 байт)». Чтобы возвращалось значение типа «Денежный», следует указать этот тип в свойстве запроса Формат поля.
При вводе выражения в окно свойств в поле бланка запроса Access выполняет автоматическую вставку определенных символов при изменении положения фокуса. В зависимости от типа поля, в который вводится выражение, автоматически добавляются:
квадратные скобки ([ ]) вокруг имен полей, форм, отчетов и элементов управления;
символы (#) вокруг дат;
прямые кавычки (« ») вокруг строковых данных.
Запрос с итогамипозволяет производит выборку данных одновременно с их группировкой и вычислением групповых итогов с использованием различных статистических функций. В Accessпредусмотрены 9 статистических функций:
Sum – сумма значений некоторого поля для группы;
Avg – среднее значение некоторого поля для группы;
Max, Min – максимальное или минимальное значение поля для группы;
Count – число значений в поле для группы (пустые значения поля не учитываются);
StDev – среднеквадратичное отклонение от среднего;
Var – дисперсия значений поля в группе;
First, Last – значения поля из первой или последней записи.
Для выполнения итогового запроса:
Находясь в режиме Конструктора запроса, выберите команду Конструктор/Итоги или нажмите кнопку Групповая операция панели инструментов. В результате чего в бланке запроса появится строка Групповая операция.
Для соответствующего поля выберите нужную функцию из списка Группировка.
Рисунок 11Вид окна Конструктора итогового запроса