Компьютер на 100 %. Начинаем с Windows Vista
Шрифт:
Техническое задание на разработку учебной базы данных
Необходимо создать базу данных для диспетчера такси, которая должна отвечать следующим требованиям.
В эту базу диспетчер должен заносить поступающие вызовы клиентов и регистрировать их исполнение.
На связи с диспетчером находятся несколько автомобилей, каждый из них закреплен за определенным водителем и имеет бортовой номер. При поступлении вызова диспетчер назначает автомобиль для выполнения заказа и фиксирует информацию о заказе в базе данных.
В базе данных нужно вести учет заказов постоянных клиентов, каждый
Кроме учета оперативной информации база данных должна обеспечивать получение различных итоговых данных, например количество и сумма заказов постоянных клиентов, интенсивность использования автомобилей и др.
Поставив задачу, можно приступать к разработке структуры базы данных.
Разработка структуры базы данных
Начинающие пользователи для хранения всех данных обычно создают одну таблицу (по аналогии с Excel). Примерная структура такой таблицы для данной задачи может быть следующей (табл. 7.3).
Таблица 73. Предварительный проект таблицы учебной базы данных
Хранение всех данных в подобной таблице будет неудобным, поскольку в ней смешаны три разных понятия – Заказы, Клиенты и Автомобили, что приведет к повторению информации. Например, для регистрации вызова постоянного клиента придется каждый раз вводить его номер карточки, фамилию и другие данные. Если создать отдельную таблицу Клиенты, то сведения о клиентах будут заноситься только при первом вызове, а при последующих фамилия клиента будет выбираться из раскрывающегося списка. Исходя из аналогичных соображений, можно также создать отдельную таблицу Автомобили, и окончательная структура базы данных может быть такой (рис. 7.15).
Несколько замечаний по созданному проекту.
В каждой таблице нужно определить ключевое поле. В таблице Клиенты это будет поле НомерКарточки, а в таблице Автомобили – НомерАвтомобиля. В таблице Заказы нет подходящего поля для ключевого, поэтому было введено дополнительное поле КодЗаказа с типом данных Счетчик.
Рис. 7.15. Проект структуры базы данных диспетчерской службы такси
Для регистрации исполнения заказов введено дополнительное поле СостояниеЗаказа, в которое оператор сможет вводить следующие значения – Активный, Выполнен, Отменен.
Для упрощения задачи пусть каждый водитель работает только на своем автомобиле в одну смену. В случае посменной работы водителей нужно будет разделить таблицу Автомобили на несколько отдельных.
ПРИМЕЧАНИЕ
Кроме связей типа «один-ко-многим» существуют связи «один-к-одному» и «многие-ко-многим». Так, если нужно хранить расширенные сведения об автомобилях и водителях, то целесообразно создать отдельную
Связь «многие-ко-многим» реализуется в Access с помощью дополнительной таблицы. В данном примере таблицы Автомобили и Клиенты связаны между собой отношением «многие-ко-многим» с помощью дополнительной таблицы Заказы.
После того как структура базы данных создана и проверена, нужно проработать более детально структуру каждой таблицы. Таблица Клиенты была создана в предыдущем уроке, поэтому рассмотрим проекты таблиц Заказы и Автомобили (табл. 7.4, 7.5).
Таблица 7.4. Проект таблицы Автомобили
Для полей Автомобиль и Клиент выбран числовой тип, поскольку они используются в связях (см. рис. 7.15), а связанные поля должны иметь одинаковый тип.
Порядок создания связей
В подавляющем большинстве случаев в базах данных используются связи типа «один-ко-многим». Для создания такой связи в Access можно использовать следующий алгоритм.
1. Сначала создайте таблицу, которая участвует в связи на стороне «один».
2. В процессе создания таблицы, участвующей в связи на стороне «много», выполните подстановку полей из ранее созданной таблицы.
3. В окне Схема данных при необходимости настройте дополнительные параметры связи.
Подробно эти действия будут рассмотрены в инструкции по выполнению практической работы.
Практическая работа 56. Создание связей между таблицами
Задание. Создать в среде Access 2007 базу данных из трех связанных таблиц согласно разработанному в этом уроке проекту.
Эта работа будет объемной, поэтому ее выполнение будет разделено на несколько этапов.
Создание таблицы Автомобили
1. Откройте базу данных Taxi2008, которая была создана в предыдущем уроке. В ней должна уже быть одна таблица – Клиенты.
2. Выполните команду Создание Таблицы Таблица.
3. Введите названия полей и их свойства согласно проекту таблицы (см. табл. 7.4). Процесс создания таблицы был подробно рассмотрен в предыдущем уроке.
4. Переключитесь в режим конструктора – отобразится окно сохранения таблицы, в котором следует указать имя Автомобили.
5. В режиме конструктора установите размеры полей, затем снова переключитесь в режим таблицы.
6. Введите несколько пробных записей в созданную таблицу.
Создание таблицы Заказы
В процессе создания таблицы Заказы выполним подстановку необходимых полей из таблиц Автомобили и Клиенты.
1. Выполните команду Создание Таблицы Таблица и введите названия первых двух полей – КодЗаказа и ДатаЗаказа. Название поля НомерАвто вводить не нужно, поскольку это поле будет создано с помощью подстановки.