- •Задание №2
- •1. Задание
- •База данных «перевозка пассажиров»
- •2. Описание задания
- •Описание структуры созданных таблиц
- •Задание №3
- •1. Посчитать возраст каждого из водителей определенной категории. Категория водителя вводится с клавиатуры.
- •2. Посчитать по каждому рейсу стоимость всех проданных билетов в рублях и в валюте. Курс валюты вводим с клавиатуры.
- •Задание №4
Задание №2
1. Задание
Задание № 2 предусматривает создание реляционной базы данных, состоящей из трех взаимосвязанных таблиц. В задании требуется:
создать три таблицы в соответствии с вариантом задания, присвоить полям подходящие типы данных, назначить им свойства;
задать в таблицах ключевые поля. В главных таблицах (таблица 1 и таблица 2) для первого поля задать простой ключ, а в подчиненной таблице (таблица 3) – самостоятельно определить и задать составной ключ;
определить тип связи между таблицами и создать соответствующие связи;
заполнить таблицы конкретными значениями данных, исходя из их смысла. Главные таблицы должны содержать не менее 10 записей, а подчиненная не менее 15 записей;
описать выполнение задания, включив в описание структуру созданных таблиц;
получить распечатки заполненных таблиц и распечатку схемы данных созданной базы данных.
База данных «перевозка пассажиров»
Таблица 1 «АВТОБУСЫ» |
Таблица 2 «ВОДИТЕЛИ» |
Таблица 3 «РЕЙСЫ» |
НОМЕР АВТОБУСА |
КОД ВОДИТЕЛЯ |
НОМЕР РЕЙСА |
МАРКА |
Ф.И.О ВОДИТЕЛЯ |
ПУНКТ НАЗНАЧЕНИЯ |
КОЛИЧЕСТВО МЕСТ |
АДРЕС |
НОМЕР АВТОБУСА |
ТЕХНИЧЕСКОЕ СОСТОЯНИЕ |
ТЕЛЕФОН |
КОД ВОДИТЕЛЯ |
|
КАТЕГОРИЯ |
ДАТА ОТПРАВЛЕНИЯ |
|
ГОД РОЖДЕНИЯ |
СТОИМОСТЬ 1-го БИЛЕТА |
|
|
КОЛ-ВО ПРОДАННЫХ БИЛЕТОВ |
Запросы с вычислением полей:
Подсчитать возраст каждого из водителей определенной категории. Категория водителя вводится с клавиатуры.
Подсчитать по каждому рейсу стоимость всех проданных билетов в рублях и в валюте. Курс валюты вводим с клавиатуры
Итоговый запрос:
Подсчитать общую стоимость всех проданных билетов в каждый отдельный пункт назначения за каждый день недели.
Перекрестный запрос:
Создать запрос, выводящий количество проданных билетов в разные пункты назначения в разрезе дат определенного месяца и вывести результат в виде перекрестной таблицы. В итоговом столбце вывести количество рейсов в каждый пункт назначения.
2. Описание задания
Чтобы создать реляционную базу данных нужно было последовательно выполнить следующие действия:
запустить СУБД Microsoft Access, выполнив последовательность команд Пуск → Программы → Microsoft Office → Microsoft Access;
выбрать Создать файл;
выбрать пункт Новая база данных;
в окне Файл новой базы данных в поле Имя файла ввести название БД – Перевозка пассажиров, нажать кнопку ОК, после чего открывается окно созданной БД.
Так как таблицы – основной объект БД, то сначала создавались именно они. Таблицы создавались следующим образом:
в меню Объекты выбираем пункт Таблицы.
выбираем Создание таблицы в режиме Конструктор.
создаем структуру таблицы, задаем ключевое поле, свойства и типы полей, задаем имя таблицы, после чего сохраняем созданную структуру, нажав на пиктограмму Сохранить;
переходим в режим таблицы и заполняем созданную таблицу соответствующими данными.
Описание структуры созданных таблиц
Таблица 1 «Автобусы»
Название |
Номер автобуса |
Марка |
Количество мест |
Техническое состояние | |||||
Тип поля |
Числовой |
Текстовый |
Числовой |
Логический | |||||
Основные свойства поля |
Размер поля |
Длинное целое |
50 |
Длинное целое |
| ||||
Формат поля |
|
|
|
Да/Нет | |||||
Число десятичных знаков |
Авто |
|
Авто |
| |||||
Маска ввода |
|
|
|
| |||||
Подпись |
|
|
|
| |||||
Значение по умолчанию |
0 |
|
0 |
| |||||
Условие на значение |
|
|
|
| |||||
Сообщение об ошибке |
|
|
|
| |||||
Обязательное поле |
Да |
Нет |
Нет |
Нет | |||||
Индексированное поле |
Да (Совпадения не допускаются) |
Нет |
Нет |
Нет | |||||
Пустые строки |
|
Нет |
|
Нет |
Ключевое поле: Номер автобуса
Таблица 2 «Водители»
Название |
Код водителя |
ФИО водителя |
Адрес |
Телефон |
Категория |
Год рождения | |
Тип поля |
Счетчик |
Текстовый |
Текстовый |
Текстовый |
Числовой |
Числовой | |
Основные свойства поля |
Размер поля |
Длинное целое |
50 |
50 |
50 |
Длинное целое |
Длинное целое |
Формат поля |
|
|
|
|
|
| |
Число десятичных знаков |
|
|
|
|
Авто |
Авто | |
Маска ввода |
|
|
|
|
|
| |
Подпись |
|
|
|
|
|
| |
Значение по умолчанию |
|
|
|
|
0 |
0 | |
Условие на значение |
|
|
|
|
|
| |
Сообщение об ошибке |
|
|
|
|
|
| |
Обязательное поле |
Да |
Нет |
Нет |
Нет |
Нет |
Нет | |
Индексированное поле |
Да (Совпадения не допускаются) |
Нет |
Нет |
Нет |
Нет |
Нет | |
Пустые строки |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Ключевое поле: Код водителя
Таблица 3 «Рейсы»
Название |
Номер рейса |
Номер автобуса |
Код водителя |
Пункт назначения |
Дата отправления |
Стоимость билета |
Количество | |
Тип поля |
Счетчик |
Числовой |
Числовой |
Текстовый |
Дата/время |
Денежный |
Числовой | |
Основные свойства поля |
Размер поля |
Длинное целое |
Длинное целое |
Длинное целое |
50 |
|
|
Длинное целое |
Формат поля |
|
|
|
|
Краткий формат даты |
Денежный |
| |
Число десятичных знаков |
А |
Авто |
Авто |
|
|
0 |
Авто | |
Маска ввода |
|
|
|
|
|
|
| |
Подпись |
|
|
|
|
|
|
| |
Значение по умолчанию |
|
0
|
0 |
|
|
0 |
0 | |
Условие на значение |
|
|
|
|
|
|
| |
Сообщение об ошибке |
|
|
|
|
|
|
| |
Обязательное поле |
Да |
Да |
Да |
Да |
Нет |
Нет |
Нет | |
Индексированное поле |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет | |
Пустые строки |
|
|
|
Нет |
|
|
|
Составной ключ из полей: Номер рейса; Номер автобуса; Код водителя
Вид таблиц в режиме Конструктор:
Далее переходим к созданию связей между таблицами. На панели инструментов нажимаю на пиктограмму Схема данных.
Открывается окно Добавление таблицы. Добавляю в схему все таблицы используя кнопку Добавить и закрываю окно, нажав на кнопку Закрыть.
Устанавливаю связи между таблицами по одноименным полям. В окне Связи устанавливаю флажок Обеспечение целостности данных (устанавливаю флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей) и нажимаю кнопку Создать. То есть устанавливаю 2 связи один-ко-многим: между таблицами Автобусы-Рейсы по полю Номер автобуса; между таблицами Водители-Рейсы по полю Код водителя.
Схема данных:
Полученные таблицы: