Полностью выполненная лабораторная работа по созданию БД "Фирма"
Тема: Создание связей в базе данных.
Цель работы: изучение приемов установки связей между таблицами базы данных.
Ход работы
1 В соответствии с заданием создать и заполнить таблицы БД "Фирма", установить связи между ними.
2 Продемонстрировать на компьютере заполненные таблицы, схему данных.
Порядок выполнения:
1. Запустите MicrosoftAccess.
2. Создайте базу данных Фирма. Сотрудники данной организации работают с клиентами и выполняют их заказы.
3. Создайте в режиме Конструктор 3 таблицы: Сотрудники, Клиенты и Заказы.
Таблица Сотрудники
Таблица Клиенты
Таблица Заказы
4. Установите ключевые поля.
Отдельные таблицы, содержащие информацию по определенной теме, необходимо связать в единую структуру базы данных. Для связывания таблиц следует задать ключевые поля.
Ключ состоит из одного или нескольких полей, значения которых однозначно определяют каждую запись в таблице. Наиболее подходящим в качестве ключевого поля является Счетчик, так как значения в данном поле являются уникальными (т. е. исключают повторы).
При создании таблиц в режиме конструктора ключевое поле устанавливается автоматически. Откройте созданные Вами таблицы в режиме Конструктор и проверьте установленные ключевые поля:
1) в таблице Сотрудники ключевое поле Код сотрудника
2) в таблице Клиенты ключевое поле Код клиента
3) в таблице Заказы ключевое поле Код заказа
Если значение Ключевых полей не задалось автоматически, то задайте их вручную. Для этого откройте таблицу Сотрудники в режиме Конструктора. Нажмите правой кнопкой мыши на поле Код сотрудника и в появившемся контекстном меню выберите команду Ключевое поле. Если в таблице необходимо установить несколько ключевых полей, то выделить их можно, удерживая клавишу Ctrl. Для таблицы Клиенты установите ключевое поле Код клиента, а для таблицы Заказы - Код заказа.
5. Создайте раскрывающиеся списки с помощью Мастера подстановок.
Таблица Заказы содержит поля Код сотрудника и Код клиента. При их заполнении могут возникнуть некоторые трудности, так как не всегда удается запомнить все предприятия, с которыми работает фирма, и всех сотрудников с номером кода. Для удобства можно создать раскрывающиеся списки с помощью Мастера подстановок.
Откройте таблицу Заказы в режиме Конструктора. Для поля Код клиента выберите тип данных Мастер подстановок.
В появившемся окне выберите команду Объект "столбец подстановки" будет использовать значения из таблицы или запроса и щелкните на кнопке Далее.
В списке таблиц выберите таблицу Клиенты и щелкните на кнопке Далее.
В списке Доступные поля выберите поле Код клиента и щелкните на кнопке со стрелкой >, чтобы ввести поле в список Выбранные поля. Таким же образом добавьте поле Название компании и щелкните на кнопке Далее.
Нажмите кнопку Далее и выберите порядок сортировки списка по полю Название компании .
В следующем диалоговом окне задайте необходимую ширину столбцов раскрывающегося списка, установите флажок Скрыть ключевой столбец и нажмите кнопку Далее.
На последнем шаге Мастера подстановок замените при необходимости надпись для поля подстановок и щелкните на кнопке Готово.
Сохраните полученный результат.
6. Аналогичным образом создайте раскрывающийся список для поля Код сотрудника.
Теперь в списке таблиц выберите таблицу Сотрудники
В списке Доступные поля выберите поля Код сотрудника, Фамилия, Имя.
Порядок сортировки списка выберите по полю Фамилия.
Все остальные действия проводятся аналогично пункту 6.
7. Создайте связей между таблицами.
Существует несколько типов отношений между таблицами:
- при отношении «один-к-одному» каждой записи ключевого поля в первой таблице соответствует только одна запись в связанном поле другой таблицы, и наоборот. Отношения такого типа используются не очень часто. Иногда их можно использовать для разделения таблиц, содержащих много полей, для отделения части таблицы по соображениям безопасности;
- при отношении «один-к-многим» каждой записи в первой таблице соответствует несколько записей во второй, но запись во второй таблице не может иметь более одной связанной записи в первой таблице;
- при отношении «многие-к-многим» одной записи в первой таблице могут соответствовать несколько записей во второй таблице, а одной записи во второй таблице могут соответствовать несколько записей в первой.
Закройте все открытые таблицы, так как создавать или изменять связи между открытыми таблицами нельзя.
Выполните команду вкладки Лента Работа с базами данных кнопка Схема данных
Если ранее никаких связей между таблицами базы не было, то при открытии окна Схема данных одновременно открывается окно Добавление таблицы, в котором выбираются нужные таблицы. Для добавления в схему данных новой таблицы необходимо щелкнуть правой кнопкой мыши на схеме данных и в контекстном меню выбрать пункт Добавить таблицу.
Если связи между таблицами уже были заданы, то откроется окно Схема данных, на котором будут отображены таблицы и связи между ними.
Отредактируйте связь между таблицами Сотрудники и Заказы, для этого щелкните правой кнопкой мыши (ПКМ) на линию связи и в открышемся контекстном меню выберите команду Изменить связь.
Откроется диалоговое окно Изменение связей, в котором включите флажок Обеспечение целостности данных. Это позволит предотвратить случаи удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи. Обратите внимание на тип отношений: один-ко-многим.
Флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей обеспечивают одновременное обновление или удаление данных во всех подчиненных таблицах при их изменении в главной таблице. Параметры связи можно изменить, нажав на кнопку Объединение. После установления всех необходимых параметров нажмите кнопку ОК.
Аналогично измените связь между таблицами Клиенты и Заказы.
В результате должна получиться схема данных, представленная на рисунке.
На схеме данных связи отображаются в виде соединительных линий со специальными значками около таблиц. Связь «один-к-многим» помечается «1» вблизи главной таблицы (имеющей первичный ключ) и «∞» вблизи подчиненной таблицы (имеющей внешний ключ). Связь «один-к-одному» помечается двумя «1» (оба поля таблиц имеют первичные ключи). Неопределенная связь не имеет никаких знаков. Если установлено объединение, то его направление отмечается стрелкой на конце соединительной линии (ни одно из объединенных полей не является ключевым и не имеет уникального индекса).
7. В таблицу Сотрудники внесите данные о 7 работниках.
8. В таблицу Клиенты внесите данные о 7 предприятиях, с которыми работает данная фирма.
9. В таблице Заказы оформите 5 заявок, поступивших на фирму.
Тема: "Модификация таблиц и работа с данными с использованием запросов в СУБД Access"
Цель работы: изучение приемов организации и использования запросов
Задание:
1 В соответствие с заданием организовать запросы по отбору данных.
2 Продемонстрировать на компьютере запросы.
Теоретические сведения:
Любая СУБД позволяет выполнять четыре простейшие операции с данными:
· добавлять в таблицу одну или несколько записей;
· удалять из таблицы одну или несколько записей;
· обновлять значения некоторых полей в одной или нескольких записях;
· находить одну или несколько записей, удовлетворяющих заданному условию.
Для выполнения этих операций используется механизм запросов. Результатом выполнения запросов является либо отобранное по определенным критериям множество записей, либо изменения в таблицах. Запросы к базе формируются на специально созданном для этого языке, который так и называется язык структурированных запросов (SQL — StructuredQueryLanguage).
Порядок выполнения:
1. Откройте созданную Вами ранее базу данных Фирма и проведите ее модификацию. Для этого, откройте таблицу Сотрудники и проведите ее редактирование:
· скопируйте запись с фамилией Орлова на восьмую. Для этого нажмите ПКМ на запись, выберите команду Копировать
Затем нажмите ПКМ на звездочку в восьмой строке и выберите команду Вставить
· во второй или третьей записи (в зависимости от Вашего пола) измените фамилию на свою;
· введите новую запись в режиме Ввод данных, для этого на ленте Главная во вкладке Записи выберите команду Создать (команда Создать будет активна только при выделенной любой строке таблицы!)
Результат:
2. Создайте запрос, в котором можно просмотреть телефоны сотрудников.
Для создания запроса выполните команду: вкладка ленты Создание — Мастер запросов — Простой запрос.
В появившемся диалоговом окне укажите таблицу Сотрудники и выберите поля Фамилия, Имя, Телефон. Нажмите кнопку Далее.
Введите имя запроса - Телефоны - и нажмите кнопку Готово.
Перед вами появится запрос, в котором можно просмотреть телефоны сотрудников. Обратите внимание, что в области перехода появился новый объект Телефоны, иконка которого отличается от иконки таблиц.
2 С помощью Конструктора создайте запрос Адреса клиентов. Для этого выполните команду: вкладка ленты Создание — Конструктор запросов.
6 В диалоговом окне Добавление таблиц выберите таблицу Клиенты и щелкните на кнопке Добавить, а затем - на кнопке Закрыть.
7 Чтобы перенести нужные поля в бланк запроса, необходимо по ним дважды щелкнуть левой кнопкой мыши (ЛКМ) в таблице. Щелкните ЛКМ по полям Код клиента, Название компании, Адрес.
8 Чтобы отсортировать записи в поле Название компании в алфавитном порядке, необходимо в раскрывающемся списке строки Сортировка выбрать пункт по возрастанию.
9 Сохраните запрос с именем Адреса клиентов. Для этого при закрытии запроса в появившемся диалоговом окне сохранения изменения макета выберите команду Да, и в следующем окне введите имя запроса Адреса клиентов.
10 Самостоятельно создайте запрос Дни рождения, в котором можно будет просмотреть дни рождения сотрудников. (для запроса выбрать поля Код сотрудника, Фамилия, Имя, Дата рождения)
11 Если нам нужно узнать, кто из сотрудников родился в конкретном месяце, то придется создать новый запрос или изменить условие в существующем запросе Дни рождения. Допустим, мы хотим узнать, у кого из сотрудников день рождения в текущем месяце, например в апреле. Для этого откройте запрос Дни рождения в режиме Конструктора.
12 В строке Условие отбора для поля «Дата рождения» введите значение *.04.*. В данной записи * означают, что дата и год рождения могут быть любыми, а месяц 4-м (т. е. апрель). После сохранения окно запроса в режиме Конструктора должно выглядеть так, как оно представлено на рисунке:
13 Закройте Конструктор и просмотрите полученный результат.
Если в запросе Дни рождения нет ни одной записи, значит, в таблице Сотрудники нет ни одного человека, родившегося в апреле. Добавьте в таблицу Сотрудники несколько человек, родившихся в апреле, и посмотрите, как изменится запрос. Запросы автоматически обновляются при каждом открытии.
Если нам нужно узнать, кто из сотрудников родился в мае, то придется опять создать новый запрос или изменить условие в существующем запросе Дни рождения. Данная процедура является неудобной и занимает много времени. Если приходится часто выполнять запрос, но каждый раз с новыми значениями условий используют запрос с параметром. При запуске такого запроса на экран выводится диалоговое окно для ввода значения в качестве условия отбора.
14. Измените запрос Дни рождения, сделав его запросом с параметром. Чтобы создать запрос с параметром, пользователю необходимо ввести текст сообщения Like[Введите дату] в строке Условие отбора бланка запроса.
Запись Like[Введите дату] означает, что при открытии запроса появится диалоговое окно) с текстом «Введите дату» и полем для ввода условия отбора. Если ввести условие *.04.*, то в запросе появится список сотрудников, родившихся в апреле.
Запустите запрос еще раз и введите значение *.05.*, посмотрите, как изменился запрос.
15 Измените запрос «Телефоны» так, чтобы при его запуске выводилось диалоговое окно с сообщением «Введите фамилию». Поскольку в запросе нужно вывести конкретную фамилию, в условии отбора слово Like писать не надо.
Выполнение запроса:
16 Измените запрос «Телефоны» так, чтобы при его запуске запрашивались не только фамилия, но и имя сотрудника.
При выполнении запроса сначала появится диалоговое окно с сообщением «Введите фамилию», а затем, после ввода Фамилии диалоговое окно с сообщением «Введите имя»
17 Самостоятельно с помощью Конструктора запросов создайте запрос Выполненные заказы, содержащий следующие сведения: фамилия и имя сотрудника, название компании, с которой он работает, отметка о выполнении и сумма заказа. Данные запроса возьмите из нескольких таблиц.
Двойным щелчком ЛКМ выберите нужные поля из таблиц:
18 В условии отбора для логического поля Отметка о выполнении введите Да, чтобы в запросе отображались только выполненные заказы.
19 Сделайте так, чтобы столбец Отметка о выполнении не выводился на экран.
20 Создайте запрос Сумма заказа, в котором будут отображаться заказы на сумму более 50 000 руб.
Для подобных запросов в условии отбора можно использовать операторы сравнения >, <, =, >=, <=, <> и логические операторы And, Or, Not и др.
Результат:
21 Измените запрос, чтобы сумма заказа была от 20 000 до 50 000 руб.
Результат:
22 Создайте запрос для подсчета подоходного налога по каждой сделке.
Иногда в запросах требуется произвести некоторые вычисления, например, посчитать подоходный налог 13 % для каждой сделки.
Для этого откройте запрос Сумма заказа в режиме Конструктора.
В пустом столбце бланка запроса щелкните правой кнопкой мыши на ячейке Поле и в появившемся контекстном меню выберите команду Построить.
Перед вами появится окно Построитель выражений, который состоит из трех областей: поля выражения (1), кнопок операторов(2) и элементов выражения(3).
Сверху располагается поле выражения, в котором оно и создается. Вводимые в это поле элементы выбираются в двух других областях окна Построителя.
23 В левом списке выделите запрос Сумма заказа. В среднем списке выделите поле Сумма и нажмите кнопку Вставить. Идентификатор этого поля появится в поле выражения Построителя.
24 Щелкните на кнопке * и введите 0,13. Таким образом, мы посчитаем подоходный налог 13 %.
25 Нажмите кнопку ОК, после чего в ячейке свойства Поле появится значение «Выражение1:[Сумма]*0,13».
26 Замените Выражение1 на Налог и закройте Конструктор.
27 Откройте запрос и посмотрите, что у вас получилось.
28 Используя Построитель выражений, измените запрос Сумма заказа, чтобы можно было посчитать прибыль от заказов. Уберите Условие отбора в поле Сумма (чтобы выводились все выполненные заказы) и добавьте поле Прибыль, в котором будет вычисляться доход от заказа (т. е. сумма минус налог).
Для этого откройте запрос Сумма заказа в режиме Конструктора. Удалите Условие отбора в поле Сумма (чтобы выводились все выполненные заказы).
Добавьте поле Прибыль, в котором будет вычисляться доход от заказа (т. е. сумма минус налог). В пустом столбце бланка запроса щелкните правой кнопкой мыши на ячейке Поле и в появившемся контекстном меню выберите команду Построить. В левом списке откройте папку Запросы и выделите запрос Сумма заказа. В среднем списке выделите поле Сумма и нажмите кнопку Вставить. Щелкните на кнопке - .В среднем списке выделите поле Налог и нажмите кнопку Вставить. Нажмите кнопку Ок.
29 Замените Выражение1 на Прибыль и закройте Конструктор, сохранив изменения.
Просмотрите полученный результат:
30 Создайте запрос Менеджеры, с помощью которого в таблице Сотрудники найдите всех менеджеров фирмы.