Проектирование декомпозиционным методом 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Проектирование декомпозиционным методом



Содержание

1. ВВЕДЕНИЕ

. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Проектирование декомпозиционным методом

Построение универсального отношения

Определение функциональных зависимостей, существующих между атрибутами универсального отношения

Получение нормализованного набора отношений из минимального покрытия

Проектирование с использованием ER-метода

Определение сущностей и связей между ними

Построение ER-диаграмм

Построение набора предварительных отношений

Распределение оставшихся атрибутов по полученным отношениям

Проверка нахождения полученных отношений в НФБК

Проверка отношений на завершающей фазе проектирования

Составление модели базы данных

Расчёт требуемой памяти для размещения данных БД

. ВЫБОР СУБД

. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Создание таблиц

Разработка экранных форм

Создание запросов

Создание макросов

Создание отчетов

. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ

Заключение

Литература

ПРИЛОЖЕНИЕ

программное обеспечение база данных перевозка

 


ВВЕДЕНИЕ

 

Целью курсовой работы является приобретение навыков по проектированию базы данных различными методами и разработки программного обеспечения для работы с ней.

В ходе выполнения курсовой работы должны быть решены следующие задачи:

системный анализ предметной области;

проектирование базы данных;

выбор системы управления базой данных;

разработка программного обеспечения.

Заданием данной курсовой работы является разработка автоматизированной информационной системы учёта деятельности службы такси.

База данных должна содержать информацию о диспетчерах, занимающихся распределением заявок; водителях, обслуживающих клиентов. При этом необходимо вести учет количества заявок принятых диспетчером и количества заявок выполненных водителем с указанием тарифа, времени начала работы; принадлежащих водителям автомобилей и их технических данных; используемых раций и их характеристик.

Проектирование произвести с помощью декомпозиционного и ER-методов.

 


ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

Разрабатываемая база данных служит для хранения информации, заносимой диспетчером во время принятия заявок и их распределения, для учёта выполненных водителями заявок. Водители, за определённую плату (в соответствии с тарифом), отвозят клиента из определённого пункта, находящегося по какому-либо адресу в другой пункт. В конце смены каждый водитель должен сдать определённую сумму, которая непосредственно зависит от количества выполненных заявок и от величины назначенных тарифов. А также в базе данных должно учитываться место стоянки автомобиля, точное время поступления водителя на работу, используемая рация и возможность выполнения водителем очередной заявки.

Далее приведём атрибуты и обозначения атрибутов, которые будут использоваться при создании данной БД.

Водитель характеризуется следующими сведениями:

§ Табельный номер (Таб№)

§ Позывной водителя (Позывной)

§ Регистрационный номер автомобиля (Рег№)

§ Номер рации (№Рац)

§ Место стоянки (МС)

§ Состояние водителя (Сост)

§ Время выхода в эфир (ВрВыхЭ)

Регистрационный номер автомобиля определяет:

§ Номер двигателя (№Дв)

§ Номер кузова (№Куз)

§ Цвет автомобиля (Цвет)

§ Марка автомобиля (Марка)

§ Место регистрации автомобиля (МРег)

Марка автомобиля определяет:

§ Расход топлива (РасТоп)

§ Количество мест в салоне (КолМест)

Табельный номер водителя определяет его следующие данные:

§ Фамилия водителя (ФВод)

§ Имя водителя (ИВод)

§ Отчество водителя (ОВод)

§ Домашний адрес водителя (АдрВод)

§ Домашний телефон водителя (ДомТелВод)

§ Мобильный телефон (МТел)

§ Дата рождения водителя (ДРождВод)

§ Дата приёма на работу водителя (ДПрВод)

Номер рации характеризуется следующими параметрами:

§ Используемый канал (ИспКан)

§ Радиус действия (РДейст)

§ Количество часов в эфире (КолЧЭ)

Дата смены определяет:

§ Рабочее имя диспетчера, работающего в это смену (РИДисп)

§ Дата заявки (ДЗ)

Рабочее имя диспетчер определяет следующие данные диспетчера:

§ Фамилия диспетчера (ФДисп)

§ Имя диспетчера (ИДисп)

§ Отчество диспетчера (ОДисп)

§ Домашний адрес диспетчера (АдрДисп)

§ Домашний телефон диспетчера (ДомТелДисп)

§ Дата рождения диспетчера (ДРождДисп)

§ Дата приёма на работу диспетчера (ДПрДисп)

Заявка характеризуется следующими данными:

§ Позывной (Позывной)

§ Номер заявки (№Заявки)

§ Время заявки (ВрЗаявки)

§ Дата заявки (ДатаЗаявки)

§ Пункт отправления (ПО)

§ Пункт назначения (ПН)

§ Телефонный номер клиента (ТелКл)

§ Код тарифа (КодТар)

Код тарифа определяет следующие данные:

§ Район отправления (РайО)

§ Район назначения (РайН)

§ Тариф (Тариф)

Предусмотрим следующие ограничения на информацию в системе:

1. Программа должна предотвращать появление “пустых” значений;

. Предотвратить ввод значений в подчиненной таблице, которые отсутствуют в главной, удаления значений в главной таблице, если есть связанные записи. Обеспечить безошибочный и обязательный ввод данных при своевременной подсказке оператору о происхождении ошибки;

3. Заработная плата водителя в сутки определяется с учетом вычета 20% от общей суммы диспетчеру и 5% за прокат рации;

.   Заработная плата диспетчеру в сутки начисляется размером в 10% от общей прибыли.

.   При каждой загрузке программы должна осуществляться проверка на истечение времени работы рации без подзарядки, исходя из времени выхода в эфир и количества часов беспрерывного нахождения в эфире. Если это время вышло, выдавать соответствующее сообщение с указанием о необходимости осведомить нужного водителя.

.   Данные заполняются диспетчером по мере поступления заявок.

При работе с базой данных администратор должен иметь возможность решать следующие задачи:

. Вносить и изменять данные о водителях.

2. Вносить и изменять данные о диспетчерах.

.   Вносить и изменять данные о заявках.

.   Вносить и изменять данные о марке автомобиля, регистрационные данные и характеристики автомобиля.

.   Вносить и изменять данные о типах и характеристиках раций.

.   Вносить и изменять данные о тарифах

.   Получать информацию о количестве заявок принятых диспетчерами и заявках выполненных водителями.

.   Получать информацию об используемых автомобилях.

.   Получать информацию о суточной заработной плате водителей и диспетчеров.

10.Получать информацию о числящихся водителях в компании.

Данную базу данных ведут администратор и диспетчер.

Администратор имеет возможность добавлять/изменять данные о водителях, диспетчерах.

При поступлении заявки от клиента диспетчер заполняет форму, в которой указывает место отправления, код тарифа, позывной водителя, марку, регистрационный номер и цвет автомобиля, а также место отправления, место назначения и телефон клиента.

Заявку получает водитель, место стоянки которого будет ближайшим к месту отправления, в соответствии с очередью.

В данной базе данных будет храниться следующее количество данных:

§ 50 водителей

§ 6 диспетчеров

§ 15 мест стоянок

§ 20 кодов тарифа

§ 1000 заявок в день

§ 3 типа рации

§ 5 марок автомобилей

 


ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Водитель

Характеристики_Водителя

ТехДанные


Марка

Рация

Заявка

Тариф

Диспетчер


Характеристики_Диспетчера

 

Построение ER -диаграмм

Составим диаграмму ER-экземпляров:

 

 

рис. 10 Диаграмма ER -экземпляров

 

Каждый водитель имеет свой автомобиль, и каждый автомобиль принадлежит только одному водителю. Т.е. между сущностями Водитель и автомобиль степень связи 1:1. Класс принадлежности сущностей Водитель и Автомобиль обязательный.

У каждого водителя есть свои характеристики, но одни и те же характеристики могут иметь несколько водителей. Т.е. между сущностями Водитель и Характеристики водителя степень связи N:1. Класс принадлежности сущности Водитель обязательный, а сущности Характеристики водителя - необязательный.

У каждого автомобиля есть свои характеристики, но одни и те же характеристики могут иметь несколько автомобилей. Т.е. между сущностями Автомобиль и Технические данные степень связи N:1. Класс принадлежности сущности Автомобиль обязательный, а сущности Технические данные - необязательный.

У каждого водителя есть рация, с которой он работает, но в данный момент времени одна и та же рация может находиться только у одного водителя. Т.е. между сущностями Водитель и Рация степень связи 1:1. Класс принадлежности сущности Водитель обязательный, а сущности Рация - необязательный.

Каждый водитель получает заявку, и каждая заявка должна быть получена водителем. Т.е. между сущностями Водитель и Заявка степень связи 1: N. Класс принадлежности сущностей Водитель и Заявка обязательный.

Каждый диспетчер принимает заявку, и каждая заявка должна быть принята диспетчером. Т.е. между сущностями Диспетчер и Заявка степень связи 1: N. Класс принадлежности сущностей Диспетчер и Заявка обязательный.

У каждого диспетчера есть свои характеристики, но одни и те же характеристики могут иметь несколько диспетчеров. Т.е. между сущностями Диспетчер и Характеристики диспетчера степень связи N:1. Класс принадлежности сущности Диспетчер обязательный, а сущности Характеристики диспетчерf - необязательный.

Каждой заявке назначается только один тариф, но один и тот же тариф может назначаться нескольким заявкам. Т.е. между сущностями Заявка и Тариф степень связи N:1. Класс принадлежности сущности Заявка обязательный, а сущности Тариф - необязательный.

Составим диаграмму ER-типа, представленную на рис. 11:

 

 

рис. 11 Диаграмма ER -типа

 

Здесь ключами сущностей являются: Позыв, Рег№, Марка, №Заявки, ДатаЗаявки, ВремяЗаявки, РИДисп, КодТар, №Рац, Таб№.

3.2.3 Построение набора предварительных отношений

В соответствии с первым правилом получения предварительных отношений из диаграмм ER-типа - для связей, где степень связи 1:1 и класс принадлежности обеих сущностей является обязательным, то требуется только одно отношение, первичным ключом этого отношения может быть ключ любой из двух сущностей.

В соответствии со вторым правилом поучения предварительных отношений из диаграмм ER-типа - для связей, где степень бинарной связи равна 1:1 и класс принадлежности одной сущности является обязательным, другой - необязательным, то необходимо построение двух отношений, по одному на каждую сущность. При этом ключ сущности, для которого класс принадлежности является необязательным добавляется в качестве атрибута в отношение, выделенное для сущности с обязательным классом принадлежности.

В соответствии с четвёртым правилом получения отношений из диаграмм ER-типа - для связей, где степень бинарной связи равна 1: N и класс принадлежности N-связной сущности является обязательным, вне зависимости от класса принадлежности 1-связной сущности, то достаточным является использование двух отношений, по одному на каждую сущность. При этом ключ 1-связной сущности должен быть добавлен как атрибут в отношение, отводимое N-связной сущности.

В соответствии с пятым правилом получения отношений из диаграмм ER-типа - для связей, где степень бинарной связи равна 1: N и класс принадлежности N-связной сущности является необязательным, необходимо формирование трех отношений: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения, и одного отношения для связи.

Получаем пятнадцать предварительных отношений следующего вида:

Рация (№Рац, …)

ВодРац(Позывной, №Рац…)

ХарВодителя (Таб№, …)

В_Х (Позыв, Таб№, …)

Водитель (Рег№,…)

Марка (Марка, …)

ТехДанные (Рег№, Марка…)

Заявка (№Заявки, …)

З_В (Позыв, №Заявки…)

Тариф (КодТар, …)

З_Тариф (№Заявки, КодТар, …)

Диспетчер (ДатаЗаявки, …)

З_Д (№Заявки, ДатаЗаявки, …)

ХарДисп (РИДисп, …)

Д_ХарДисп (ДатаЗаявки, РИДисп, …)

Повторяющихся отношений нет.

Объединим следующие отношения:

Заявка (№Заявки, …)

З_В (Позыв, №Заявки…) Заявка (№Заявки, Позывной, ДатаЗаявки, КодТар….),

З_Тариф (№Заявки, КодТар, …)

З_Д (№Заявки, ДатаЗаявки, …)

ВодРац (Позывной, №Рац, …)

В_Х (Позывной, Таб№, …) Водитель (Позывной, №Рац, Рег№, Таб№….)

Водитель (Рег№, …)

Диспетчер (ДатаЗаявки, …)

Д_ХарДисп (ДатаЗаявки, РИДисп, …) Диспетчер (ДатаЗаявки, РИДисп)

После объединения получили следующие отношения:

Марка (Марка,…)

ТехДанные (Рег№, Марка…)

Рация (№Рац, …)

Характеристики_Водителя (Таб№, …)

Характеристики_Диспетчера (РИДисп, …)

Диспетчер (ДатаЗаявки, РИДисп).

Тариф (КодТар, …).

Водитель (Позывной, №Рац, Рег№, Таб№….)

Заявка (№Заявки, Позывной, ДатаЗаявки, КодТар….)

 

ВЫБОР СУБД

 

При выборе СУБД учитываются различные факторы, среди которых могут быть следующие:

требуемые оперативная и дисковая память;

трудоемкость разработки программ;

стоимость эксплуатации;

совместимость разрабатываемой БД с существующими на предприятии;

сроки разработки системы;

затраты на обучение персонала и т.д.

В некоторых случаях определяющим фактором при выборе может оказаться требование заказчика использовать конкретную СУБД.

В данном курсовом проекте использовалась версия Access 2003.

СУБД Access входит в состав пакета Microsoft Office и хорошо интегрирована с другими программными продуктами фирмы Microsoft. Кроме того, она хорошо зарекомендовала себя при использовании в сети. Программа имеет подробную встроенную документацию, продуманный интуитивный интерфейс, поддержку языка запросов SQL, а также встроенный язык программирования (VBA) и получила широкое распространение среди пользователей ОС Windows. 2003 предлагает универсальный набор программных средств, которые обеспечивают широкие возможности для профессиональных разработчиков и вместе с тем могут быть легко освоены новичками. 2003 поддерживает различные форматы данных, в том числе XML, OLE, ODBC и формат служб Microsoft Windows® SharePoint™ Services. Можно связать таблицы таким образом, чтобы одновременно получать доступ к данным из различных баз, работая с формами, отчетами и страницами доступа к данным в Access 2003. Кроме того, можно связывать таблицы из других баз данных Access, электронных таблиц Microsoft Excel, источников данных ODBC, баз данных Microsoft SQL Server™ и других источников. Можно включить данные Microsoft SQL Server в решения Access, используя конструктор сохраненных процедур для создания и изменения простых процедур, сохраняемых в SQL Server.

Просмотр сведений о зависимостях. Можно быстро находить таблицы, запросы, формы и отчеты, которые связаны зависимостью с конкретным объектом базы данных.

Помощь в устранении ошибок. Новая функция проверки ошибок помечает общие ошибки в формах и отчетах, существенно ускоряя процесс тестирования и исправления. После того как ошибки помечены, пользователю предлагаются варианты их исправления, что значительно экономит время и повышает качество форм и отчетов.

Автоматическое обновление свойств. При изменении свойства поля в таблице может быть выполнено автоматическое изменение всех форм и отчетов, чьи элементы управления связаны с ней.

Мощные функции анализа данных. Можно перетаскивать элементы управления в форму Access для создания сводной таблицы Microsoft PivotTable®, сводной диаграммы Microsoft PivotChart® или электронной таблицы.

Простота архивирования данных. Access 2003 позволяет сохранить в другом месте копию базы данных, с которой вы работаете.

Необходимая помощь. Из областей задач «Приступая к работе» и «Справка» можно получить доступ к службе поддержки Microsoft Office Online Assistance на веб-узле Microsoft Office Online, где публикуются справочные материалы и статьи, которые регулярно обновляются на основе вопросов пользователей. Для использования некоторых функций этих областей задач требуется подключение к Интернету.

Создание форм и отчетов, которые можно сохранять в предыдущих версиях Access, значительно упрощает совместное использование данных.

Учитывая все эти факторы, прихожу к выводу, что наиболее приемлемым будет использование СУБД Access.

 


Создание таблиц

 

Сначала в режиме конструктора создаются пустые таблицы, соответствующие отношениям, полученным в результате проектирования. В качестве полей в этих таблицах указываются атрибуты этих отношений. Типы данных и имена полей такие же, как в модели данных. Здесь же задаем ограничения на ввод соответствующих значений, и индексы уникальности записей, если необходимо. Необходимо учесть параметр “обязательное поле” для всех реквизитов для контроля безошибочного ввода данных.

В данной базе данных, реализованной в Access, содержится 9 таблиц: «Водитель», «Диспетчер», «Заявка», «Марка», «Рация», «ТехДанные», «Тариф», «Характеристики_Водителя», «Характеристики_Диспетчера. По вкладке Сервис меню открываем окно схемы данных. При помощи правой кнопки мыши добавляем в окно все созданные таблицы. Связи между таблицами должны дублировать связи между отношениями в модели данных.

Чтобы создать связь, необходимо в окне первой таблицы выбрать поле, по которому таблицы связываются, и мышью перетащить его на имя соответствующего поля в другой таблице. Появится окно создания отношения, где внизу будет указан характер связи: один-к-одному (связь по ключевым полям), один-ко-многим (одно из полей ключевое), не определен (оба поля не являются ключевыми). Также необходимо поставить галочку “целостность данных”, чтобы предотвратить ошибочные действия пользователей.

Для связанных таблиц в целях упрощения и контроля вводимых данных для связанных таблиц необходимо предусмотреть параметр “подстановка” данных из главных таблиц.


 

Рис.21 Схема данных

Разработка экранных форм

 

Для удобства заполнения нормативной базы данных с помощью мастера форм создаем для каждого из созданных отношений соответствующую форму. Отношения «ТехДанные» и «Характеристики_Водителя» создаем в виде табличного и ленточного типа подчиненных форм к отношению «Водители», для удобства добавления, изменения технических данных автомобилей, а также характеристик водителя. Для изменения или добавления диспетчера, характеристик диспетчера создаём форму «Диспетчер», и подчиненную «Характеристики диспетчера». Отношение «Тариф» создаём для добавления заявок в отношение «Заявка» через кнопку перехода по формам. Все формы снабжаем необходимыми кнопками для перехода на другие формы для добавления, удаления или изменения введенных данных.

 

Создание запросов

 

В программе реализованы следующие запросы:

1. «ВремяРазрядки» - выводит рации, которые подлежат зарядке.Рация.№Рац, Водитель.Позывной, Рация.КолЧЭ, Водитель.ВрВыхЭ, (Time()-Водитель.ВрВыхЭ) AS РацииЗаменаРация INNER JOIN Водитель ON Рация.№Рац=Водитель.№Рац((((Time()-Водитель.ВрВыхЭ))>Рация.КолЧЭ/60));

2. «Вычисление зар.платы диспетчера» - вычисление заработной платы диспетчера: Диспетчер.РИДисп, Характеристики_Диспетчера.ФДисп, Характеристики_Диспетчера.ИДисп, Характеристики_Диспетчера.ОДисп, Характеристики_Диспетчера.АдрДисп, Характеристики_Диспетчера.ДомТелДисп, Характеристики_Диспетчера.ДРождДисп, Характеристики_Диспетчера.ДПрДисп, Sum(Тариф.Тариф) AS [Sum-Тариф]Характеристики_Диспетчера INNER JOIN (Тариф INNER JOIN (Диспетчер INNER JOIN Заявка ON Диспетчер.ДатаЗаявки = Заявка.ДатаЗаявки) ON Тариф.КодТар = Заявка.КодТар) ON Характеристики_Диспетчера.РИДисп = Диспетчер.РИДиспBY Диспетчер.РИДисп, Характеристики_Диспетчера.ФДисп, Характеристики_Диспетчера.ИДисп, Характеристики_Диспетчера.ОДисп, Характеристики_Диспетчера.АдрДисп, Характеристики_Диспетчера.ДомТелДисп, Характеристики_Диспетчера.ДРождДисп, Характеристики_Диспетчера.ДПрДисп, Диспетчер.ДатаЗаявки(((Диспетчер.ДатаЗаявки)=Date()));

3. «Вычисление зар.платы Водителя»:Запр.Таб№, Характеристики_Водителя.ФВод, Характеристики_Водителя.ИВод, Характеристики_Водителя.ОВод, Запр.Позывной, Sum(Запр.Тариф) AS ЗарплатаЗапр INNER JOIN Характеристики_Водителя ON Запр.Таб№ = Характеристики_Водителя.Таб№BY Запр.Таб№, Характеристики_Водителя.ФВод, Характеристики_Водителя.ИВод, Характеристики_Водителя.ОВод, Запр.Позывной;

4. «Заявки на сегодня» - перечень заявок, принятых на сегодняшний день.Count(Заявка.№Заявки) AS [Count-№Заявки], Диспетчер.ДатаЗаявки, Диспетчер.РИДиспДиспетчер INNER JOIN Заявка ON Диспетчер.ДатаЗаявки = Заявка.ДатаЗаявкиBY Диспетчер.ДатаЗаявки, Диспетчер.РИДисп(((Диспетчер.ДатаЗаявки)=Date()));

 

Создание макросов

 

Для того чтобы при открытии Access автоматически открывалась база, создаем макрос Autoexec, открывающий Кнопочную форму и присваиваем его событию открытие этой формы. Также при открытии базы данных происходит проверка на разрядку раций. В случае, если есть разряженные рации, то открывается форма «Рации, которые подлежат зарядке».

Макрос под именем «Переходы_по_формам» привязан к соответствующим кнопкам на формах «Рация», «ТехДанные», «ХарВод», «Марка», «ХарДисп», «Тариф», «Заявка» для автоматического перехода по формам.


Создание отчетов

 

В Access отчет представляет собой форму специального типа, предназначенную для вывода на печать. Отчеты созданы для удобства работы пользователей. Они позволяют в графическом виде представить информацию, формируемую программой, и при необходимости вывести ее на печать.

В базе данных создаются 5 вида отчетов:

«Водители», содержащий информацию о водителях и их характеристиках;

«Диспетчер», содержащий информацию о диспетчерах и их характеристиках, включая сведения по заработной плате;

«Зарплата Водителя», содержащий сведения водителя и начисляемой ему заработной плате;

«Рация», содержащий характеристики используемой рации.

«Заявки на сегодня», содержащий сведения о принятых заявках на сегодняшний день.

 


ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ

Для запуска приложения необходимо запустить файл «Служба такси. mdb». При запуске приложения перед пользователем сразу появляется главная кнопочная форма, которая полностью обеспечивает работу с базой данных. Также при открытии базы данных происходит проверка на разрядку раций. В случае, если есть разряженные рации, то открывается форма «Рации, которые подлежат зарядке».

 

 

Рис.22 Главная форма Служба такси

Рис.23Форма Рации, которые нужно заменить

 

Чтобы внести или изменить информацию о водителях, о диспетчерах и об используемой рации необходимо нажать на кнопку «Для администратора».

 

 

Рис.24 Форма Администратор

 

Нажав на кнопку «ДобавлениеВодителя» можно просмотреть, изменить или добавить информацию о водителе, технических данных, об используемой рации. Это делается в следующей форме:

 

 

Рис.25 Форма ДобавлениеВодителя

 

Здесь же, нажав на кнопку «Добавить/изменить тех данные» можно занести технические данные автомобиля. Так же присутствуют вспомогательные кнопки.

 

 

Рис.26 Форма Добавление технических данных автомобиля.

Чтобы внести или изменить информацию о характеристиках водителя, необходимо нажать кнопку «Добавить/Изменить характеристики». Откроется окно «Характеристики Водителя».

 

 

Рис.27 Форма Добавление Характеристик водителя


Чтобы внести или изменить информацию об используемой рации нужно щелкнуть по кнопке «ДобавитьРацию», после чего откроется окно «Рация». Здесь можно добавлять и изменять характеристики рации.

 

 

Рис.28 Форма Рация

Чтобы внести или изменить информацию о кабелях, необходимо в форме «Администратор», нажать кнопку «Добавление Диспетчера». Откроется окно «Характеристики Диспетчера». Здесь можно добавлять и изменять характеристики диспетчера.

 

 

Рис.29 Форма Характеристики Диспетчера


Основная работа пользователей, не вносящих изменений в базу данных, производится в разделе «Для просмотра». Чтобы в нее перейти необходимо нажать на кнопку «Для просмотра» в главной кнопочной форме. В результате появится кнопочная форма:

 

 

Рис.30 Форма Просмотр

По кнопке «Водитель» можно получить отчет по числящимся водителям.

 

 

Рис.31 Отчет «Водители»


Аналогичным образом можно получить отчеты по зарплате водителей, зарплате диспетчеров, принятым на сегодня заявкам, рациям.

 

 

Рис.32 Отчет «Зарплата Водителя»

Рис.33Отчет «Зарплата Диспетчера»

Рис.34 Отчет «Заявки на сегодня»


 

Рис. 35 Отчет «Рация»

Чтобы внести или изменить информацию о заявке кнопку «Для диспетчера». Появится окно «Дата», где необходимо указать Сегодняшнюю дату и рабочее имя диспетчера.

 

 

Рис.36 Форма «Дата»

 

Нажав на кнопку «Далее» появится форма «Заявка», куда можно ввести параметры принятой заявки:

 

 

Рис.37 Форма «Заявка»


Заключение

Сущность определяется как некоторый объект, представляющий интерес для пользователя. Этот объект должен иметь экземпляры, отличающиеся друг от друга и допускающие однозначную идентификацию. Единственный определяющий признак, который может помочь в нахождении сущностей, состоит в том, что сущность - это, как правило, существительное.

Связь представляет собой соединение между двумя или более сущностями. При поиске связей в основном следует полагаться на то обстоятельство, что связь обычно выражается глаголом.

Для удобства заполнения нормативной базы данных с помощью мастера форм создаем для каждого из созданных отношений соответствующую форму. Отношения «ТехДанные» и «Характеристики_Водителя» создаем в виде табличного и ленточного типа подчиненных форм к отношению «Водители», для удобства добавления, изменения технических данных автомобилей, а также характеристик водителя. Для изменения или добавления диспетчера, характеристик диспетчера создаём форму «Диспетчер», и подчиненную «Характеристики диспетчера». Отношение «Тариф» создаём для добавления заявок в отношение «Заявка» через кнопку перехода по формам. Все формы снабжаем необходимыми кнопками для перехода на другие формы для добавления, удаления или изменения введенных данных.

В Access отчет представляет собой форму специального типа, предназначенную для вывода на печать. Отчеты созданы для удобства работы пользователей. Они позволяют в графическом виде представить информацию, формируемую программой, и при необходимости вывести ее на печать.

Для запуска приложения необходимо запустить файл «Служба такси.mdb». При запуске приложения перед пользователем сразу появляется главная кнопочная форма, которая полностью обеспечивает работу с базой данных. Также при открытии базы данных происходит проверка на разрядку раций. В случае, если есть разряженные рации, то открывается форма «Рации, которые подлежат зарядке».

 


Литература

1)Гончаров А. Ю. - Access 2003. Самоучитель с примерами - М.: КУДИЦ-ОБРАЗ, 2010.

)Т.А.Павловская - С# Программирование на языке высокого уровня. Учебник для вузов. -СПб.:Питер,2011.

)Нильсен Пол.,SQL Server 2005. Библия пользователя. “И.Д.Вильямс”,2008

)Браст Эндрю Дж., Форте С Разработка приложений на основе Microsoft SQL Server 2005.,Microsoft Press, 2009

)Т.А.Павловская - С# Программирование на языке высокого уровня. Учебник для вузов. -СПб.:Питер,2007

 


ПРИЛОЖЕНИЕ

 

Option Compare DatabaseSub Form_Open(Cancel As Integer)

' Minimize the database window and initialize the form.

' Move to the switchboard page that is marked as the default..Filter = "[ItemNumber] = 0 AND [Argument] = 'По умолчанию' ".FilterOn = TrueSubSub Form_Current()

' Update the caption and fill in the list of options..Caption = Nz(Me![ItemText], "")SubSub FillOptions()

' Fill in the options for this switchboard page.

' The number of buttons on the form.conNumButtons = 8con As Objectrs As ObjectstSql As StringintOption As Integer

' Set the focus to the first button on the form,

' and then hide all of the buttons on the form

' but the first. You can't hide the field with the focus.![Option1].SetFocusintOption = 2 To conNumButtons("Option" & intOption).Visible = False("OptionLabel" & intOption).Visible = FalseintOption

' Open the table of Switchboard Items, and find

' the first item for this Switchboard Page.con = Application.CurrentProject.Connection= "SELECT * FROM [Switchboard Items]"= stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]= stSql & " ORDER BY [ItemNumber];"rs = CreateObject("ADODB.Recordset").Open stSql, con, 1 ' 1 = adOpenKeyset

' If there are no options for this Switchboard Page,

' display a message. Otherwise, fill the page with the items.

If (rs.EOF) Then![OptionLabel1].Caption = "На странице кнопочной формы нет элементов"

Else(Not (rs.EOF))("Option" & rs![ItemNumber]).Visible = True("OptionLabel" & rs![ItemNumber]).Visible = True("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText].MoveNextIf

' Close the recordset and the database..Closers = Nothingcon = NothingSubFunction HandleButtonClick(intBtn As Integer)

' This function is called when a button is clicked.

' intBtn indicates which button was clicked.

' Constants for the commands that can be executed.conCmdGotoSwitchboard = 1conCmdOpenFormAdd = 2conCmdOpenFormBrowse = 3conCmdOpenReport = 4conCmdCustomizeSwitchboard = 5conCmdExitApplication = 6conCmdRunMacro = 7conCmdRunCode = 8conCmdOpenPage = 9

' An error that is special cased.conErrDoCmdCancelled = 2501con As Objectrs As ObjectstSql As StringError GoTo HandleButtonClick_Err

' Find the item in the Switchboard Items table

' that corresponds to the button that was clicked.con = Application.CurrentProject.Connectionrs = CreateObject("ADODB.Recordset")= "SELECT * FROM [Switchboard Items] "= stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn.Open stSql, con, 1 ' 1 = adOpenKeyset

' If no item matches, report the error and exit the function.(rs.EOF) Then"Ошибка при чтении таблицы Switchboard Items.".Closers = Nothingcon = NothingFunctionIfCase rs![Command]

' Go to another switchboard.conCmdGotoSwitchboard.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" & rs![Argument]

' Open a form in Add mode.conCmdOpenFormAdd.OpenForm rs![Argument],,,, acAdd

' Open a form.conCmdOpenFormBrowse.OpenForm rs![Argument]

' Open a report.conCmdOpenReport.OpenReport rs![Argument], acPreview

' Customize the Switchboard.conCmdCustomizeSwitchboard

' Handle the case where the Switchboard Manager

' is not installed (e.g. Minimal Install).Error Resume Next.Run "ACWZMAIN.sbm_Entry"

If (Err <> 0) Then MsgBox "Команда недоступна."

On Error GoTo 0

' Update the form..Filter = "[ItemNumber] = 0 AND [Argument] = 'По умолчанию' ".Caption = Nz(Me![ItemText], "")

' Exit the application.conCmdExitApplication

' Run a macro.conCmdRunMacro.RunMacro rs![Argument]

' Run code.conCmdRunCode.Run rs![Argument]

' Open a Data Access PageconCmdOpenPage.OpenDataAccessPage rs![Argument]

' Any other command is unrecognized.

Case Else"Неизвестная команда."

End Select

' Close the recordset and the database..Close_Exit:Error Resume Nextrs = Nothingcon = NothingFunction_Err:

' If the action was cancelled by the user for

' some reason, don't display an error message.

' Instead, resume on the next line.(Err = conErrDoCmdCancelled) ThenNext

Else"Ошибка при выполнении команды.", vbCritical

Resume HandleButtonClick_ExitIfFunctionSub Кнопка22_Click()Error GoTo Err_Кнопка22_Click.Close_Кнопка22_Click:Sub_Кнопка22_Click:Err.DescriptionExit_Кнопка22_ClickSubSub ОбластьДанных_Click()Sub

Оption Compare Database

'------------------------------------------------------------

' AutoExec

'------------------------------------------------------------AutoExec()Error GoTo AutoExec_Err.OpenForm "Кнопочная форма", acNormal, "", "",, acNormal.OpenForm "Рации, которые нужно зарядить", acNormal, "", "", acEdit, acIcon_Exit:Function_Err:Error$AutoExec_ExitFunction

'------------------------------------------------------------

' AutoExec_Проверка

'------------------------------------------------------------

Function AutoExec_Проверка()Error GoTo AutoExec_Проверка_Err.SelectObject acForm, "Рации, которые нужно зарядить", False.GoToControl "№Рац"(IsNull (Forms![Рации, которые нужно зарядить]!№Рац)).RunMacro "AutoExec.ЗакрытьПроверка",, ""If(Not IsNull (Forms![Рации, которые нужно зарядить]!№Рац))

Beep"Некоторые рации необходимо зарядить. Предостовляется список таких раций.", vbExclamation, "Срочная замена"

End If.RestoreFunction_Проверка_Exit:Function_Проверка_Err:Error$AutoExec_Проверка_ExitFunction

'------------------------------------------------------------

' AutoExec_ЗакрытьПроверка

'------------------------------------------------------------AutoExec_ЗакрытьПроверка()Error GoTo AutoExec_ЗакрытьПроверка_Err.SelectObject acForm, "Рации, которые нужно зарядить", False

DoCmd.Close acForm, "Рации, которые нужно зарядить"

End_ЗакрытьПроверка_Exit:Function_ЗакрытьПроверка_Err:Error$AutoExec_ЗакрытьПроверка_ExitFunction

Переходы_по_формам_ОткрРация

'

'------------------------------------------------------------

Function Переходы_по_формам_ОткрРация()

On Error GoTo Переходы_по_формам_ОткрРация_Err

DoCmd.OpenForm "Добавить_Рация", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрРация_Exit:

Exit Function

Переходы_по_формам_ОткрРация_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрРация_Exit

End Function

'------------------------------------------------------------

' Переходы_по_формам_ОткрТехДанАвт

'------------------------------------------------------------

Function Переходы_по_формам_ОткрТехДанАвт()

On Error GoTo Переходы_по_формам_ОткрТехДанАвт_Err

DoCmd.OpenForm "Добавить_ТехДанные", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрТехДанАвт_Exit:

Exit Function

Переходы_по_формам_ОткрТехДанАвт_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрТехДанАвт_Exit

End Function

'------------------------------------------------------------

' Переходы_по_формам_ОткрХарВод

'------------------------------------------------------------

Function Переходы_по_формам_ОткрХарВод()

On Error GoTo Переходы_по_формам_ОткрХарВод_Err

DoCmd.OpenForm "Добавить_ХарВод", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрХарВод_Exit:

Exit Function

Переходы_по_формам_ОткрХарВод_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрХарВод_Exit

End Function

'------------------------------------------------------------

' Переходы_по_формам_ОткрМарку

'------------------------------------------------------------

Function Переходы_по_формам_ОткрМарку()

On Error GoTo Переходы_по_формам_ОткрМарку_Err

DoCmd.OpenForm "Добавить_Марка", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрМарку_Exit:

Exit Function

Переходы_по_формам_ОткрМарку_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрМарку_Exit

End Function

'------------------------------------------------------------

' Переходы_по_формам_ОткрХарДисп

'------------------------------------------------------------

Function Переходы_по_формам_ОткрХарДисп()

On Error GoTo Переходы_по_формам_ОткрХарДисп_Err

DoCmd.OpenForm "Добавить_ХарДисп", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрХарДисп_Exit:

Exit Function

Переходы_по_формам_ОткрХарДисп_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрХарДисп_Exit

End Function

-----------------------------------------------------------

' Переходы_по_формам_ОткрТариф

'------------------------------------------------------------

Function Переходы_по_формам_ОткрТариф()

On Error GoTo Переходы_по_формам_ОткрТариф_Err

DoCmd.OpenForm "Добавить_Тариф", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрТариф_Exit:

Exit Function Переходы_по_формам_ОткрТариф_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрТариф_Exit

End Function

-----------------------------------------------------------

' Переходы_по_формам_ОткрЗаявка

'------------------------------------------------------------

Function Переходы_по_формам_ОткрЗаявка()

On Error GoTo Переходы_по_формам_ОткрЗаявка_Err

DoCmd.OpenForm "Заявка", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрЗаявка_Exit:

Exit Function

Переходы_по_формам_ОткрЗаявка_Err: MsgBox Error$

Resume Переходы_по_формам_ОткрЗаявка_Exit

End Function

Содержание

1. ВВЕДЕНИЕ

. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Проектирование декомпозиционным методом

Построение универсального отношения

Определение функциональных зависимостей, существующих между атрибутами универсального отношения

Получение нормализованного набора отношений из минимального покрытия

Проектирование с использованием ER-метода

Определение сущностей и связей между ними<



Поделиться:


Последнее изменение этой страницы: 2020-03-13; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.111.125 (0.349 с.)