Разработка базы данных для учета вызова такси
База данных как совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования. Знакомство с основными особенностями и этапами разработки базы данных для учета вызова такси.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.05.2018 |
Размер файла | 806,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Любой вычислительный процесс представляет собой отображение некоторых входных или выходных данных по определенному алгоритму. Представление сложности данных и алгоритма вычислений определяет два класса задач: вычислительные задачи и задачи обработки данных. Однако, часто оказывается, что возможность решения конкретной задачи зависит не только от выбранного алгоритма, но и от метода представления входных данных.
На сегодняшний день, самым эффективным методом представления данных является база данных.
Учет заказов, вызовов такси - трудоёмкий процесс, требующий манипулирования огромным количеством данных. Хранить информацию о поступающих заявках, и сотрудниках - водителей, диспетчеров структурировано в базе данных намного удобнее, чем в рукописном виде. Поэтому считаю, что тема данной курсовой является актуальной.
База данных - это совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ. База данных является информационной моделью предметной области. Обращение к базам данных осуществляется с помощью системы управления базами данных (СУБД). СУБД обеспечивает поддержку создания баз данных, централизованного управления и организации доступа к ним различных пользователей.
Цель создания базы данных - сбор и хранение упорядоченной информации, а также быстрая и эффективная работа с этой информацией. В настоящее время базы данных используются повсеместно.
Проектирование базы данных представляет собой процесс последовательного отображения исследуемых явлений реального мира в виде данных в памяти ЭВМ. Проектирование делится на следующие этапы:
· концептуальное проектирование - сбор и анализ сведений реального мира, представляющих наибольший интерес для проводимого исследования;
· логическое проектирование - преобразование данных с прошлого этапа в структуры данных;
· физическое проектирование - определение особенностей хранения данных, методов доступа и пр.
В ходе данной курсовой работы будет использоваться реляционная база данных. Для работы с реляционными базами данных используется язык SQL - структурированный язык запросов.
Цель данной курсовой работы - разработать базу данных для учета вызова такси.
Для достижения цели необходимо выполнить следующие задачи:
· проанализировать и описать предметную область;
· разработать концептуальную, логическую и физическую модели данных;
· реализовать SQL-запросы, необходимые для создания и заполнения базы данных;
· создать хранимые процедуры и триггеры, которые нужны для функционирования базы данных.
· учет вызов такси
·
1. Описание предметной области базы данных услуг такси
В качестве предметной области для данной курсовой работы был выбрано предоставление услуг такси.
Работа такси осуществляется следующим образом: каждый водитель, заступая на смену, связывается с диспетчером, и тот вносит его в карточку работающих в данный момент. Сведения карточки отображаются на экране. Водители держат обратную связь по радио.
Пользователь набирает номер такси после соединения с диспетчером называет свой телефон, имя, улицу, подъезд, дом и в какое место хочет добраться. Формируется заявка в которой указана цена и время прибытия такси и время доставки клиента до места назначения. Так же за каждым водителем закреплен автомобиль
Основными видами деятельности являются:
1) Обеспечение безопасности перевозок;
2) Обеспечение комфортабельности поездки;
3) Своевременное выполнение заявок;
Одной из основных проблем на предприятии является отслеживание состояния приема и выполнения заявок и отсутствие полной базы данных на Водителей и диспетчеров, т.е. при поступлении заказа необходимо выводить полную информацию о нем и готовность на данный момент.
Для решения этих проблем необходимо своевременно получать информацию о заявках и своевременно оповещать водителей о адресе клиента.
2. Разработка концептуальной схемы базы данных работы такси
Концептуальная модель - это отражение предметной области, для которой разрабатывается база данных. Она применяется для структурирования предметной области с учетом информационных интересов пользователей базы данных и не зависит ни от программных, ни от технических ошибок.
Сущность - объект любой природы данные, о котором хранятся в отношении (таблице, в которой содержатся данные).
Каждый объект предметной области характеризуется некоторым наборов атрибутов, отображающим свойства объекта.
На основании описанной предметной области выделим сущности: «Тариф», «Пассажир», «Персонал», «Автомобили», «Статус Занятости», «Смена», «Вид профессии», «Заказы».
Сущность «Пассажир» помимо значения уникального идентификатора хранит информацию о имени, телефоне, улице, доме, квартире и подъезде клиента. Сущность «Персонал» помимо значения уникального идентификатора хранит информацию об имени, фамилии, отчестве, поле, телефоне, дате рождения работника. Сущности «Статус Занятости», «Вид профессии», имеют два атрибута, один из которых идентификатор, а второй название. Сущность «Смена» помимо значения уникального идентификатора хранит информацию о времени начала и окончания рабочего дня.
Для построения концептуальной схемы базы данных потребуются следующие таблицы: «zakazi» отражает сущность «заказ», «voditeli» отражает сущность «водители», «personal» отражает сущность «персонал», «car» отражает сущность «автомобиль», «statys zanjtosti» отражает сущность «статус занятости», «smena» отражает сущность «смена».
Построенная концептуальная схема базы данных представлена на рисунке 1.
Рисунок 1. Концептуальная схема базы данных работы такси
Существуют следующие типы баз данных:
· иерархические;
· сетевые;
· реляционные.
В иерархических базах данных данные представлены в виде одной или нескольких древовидных структур. Каждый элемент может быть как родительским, так и дочерним, однако каждый дочерний элемент имеет только одного родителя, в то время как у родительского элемента может быть несколько дочерних. В базах данных такого типа существует упорядоченность элементов в записи. Данные упорядочены в определенную последовательность, что делает иерархические базы данных ориентированными на чтение. Поиск в таких базах данных может оказаться крайне трудоемким из-за необходимости последовательно проходить несколько предшествующих иерархических уровней.
Сетевые базы данных являются своеобразной модификацией иерархических баз данных. Сетевые базы данных отличаются большой гибкостью, т.к. у дочерних элементов может быть несколько предков. Это облегчает процесс поиска, т.к. уже нет необходимости проходить все предшествующие уровни.
В реляционных базах данных данные представлены как наборы таблиц. Рассмотрим основные термины, которые используются в теории реляционных баз данных.
Объект (также сущность, таблица, отношение) - то, о чем будет накапливаться информация в базе данных.
Атрибут (также свойство) - поименованная характеристика объекта.
Совокупность атрибутов представляет собой информацию об объекте. Такую совокупность нередко называют записью или строкой.
Экземпляр объекта - объект, с конкретными значениями соответствующих свойств.
Каждая таблица реляционной базы данных включает информацию, уникально идентифицирующую строку (экземпляр объекта) - первичный ключ, а также дополнительные данные, необходимые для полного описания объекта.
Первичный ключ, состоящий из двух и более атрибутов, называется составным ключом.
Некоторые из объектов имеют атрибуты, используемые для навигации к другому объекту. Такие атрибуты называют внешними ключами.
В настоящее время наиболее популярны реляционные базы данных. Иерархические и сетевые базы данных также используются, однако распространены не так широко. Распространенность реляционных баз данных связано с тем, что они легки и удобны в применении, скорость поиска информации в них крайне высока, по сравнению с другими типами баз данных.
В данной курсовой работе был выбран реляционный тип базы данных, из-за легкости его понимания и использования.
Опишем далее в терминах реляционной базы данных оставшиеся шаги проектирования. Чаще всего концептуальная модель представляется в виде ER-диаграммы - диаграммы сущностей-связей.
Рисунок 2. Логическая модель базы данных
Физическая модель, построенная на основании предметной области, представлена на рисунке 3. Представлена ниже.
Рисунок 3. Физическая модель базы данных
Между таблицами реляционной базы данных установлены следующие связи.
1) «1:n» (один ко многим) между таблицами «personal» и «vid professi» посредством внешнего ключа «vid_professi_id_professi» таблицы «personal». Одна профессии может принадлежать нескольким работникам.
2) «1:n» (один ко многим) между таблицами «car» и «voditeli» посредством внешнего ключа «car_id_gos_nomer» таблицы «voditeli». Одна машина может быть закреплена за несколькими водителями.
3) «1:n» (один ко многим) между таблицами «passjir» и «black list» посредством внешнего ключа «passjir_idpassajira» таблицы «black list».В черном листе могут содержаться несколько пассажиров.
4) «1:n» (один ко многим) между таблицами «marca_car» и «car» посредством внешнего ключа «marka_car_id» таблицы «cari».Одна марка может принадлежать нескольким машинам.
5) «1:n» (один ко многим) между таблицами «color_car» и «car» посредством внешнего ключа «color_car_idcolor» таблицы «car».Один цвет может принадлежать нескольким машинам.
6) «1:n» (один ко многим) между таблицами «tarif» и «zajavka» посредством внешнего ключа «tariff_idtarifa» таблицы «zajava».Один тариф может учитываться в нескольких заявках.
7) «1:n» (один ко многим) между таблицами «adres» и «zajavka» посредством внешнего ключа «adres_id» таблицы «zajavka».Один адрес может учитываться в нескольких заявках.
8) «1:n» (один ко многим) между таблицами «tarif» и «zajavka» посредством внешнего ключа «tariff_idtarifa» таблицы «zajava».Один тариф может учитываться в нескольких заявкая.
9) «1:n» (один ко многим) между таблицами «personal» и «dispetcher» посредством внешнего ключа «personal_idpersonala» таблицы «dispetcher».
10) «1:n» (один ко многим) между таблицами «personal» и «voditel» посредством внешнего ключа «personal_idpersonala» таблицы «voditel».
При обновлении информации в таблицах базы данных реализована политика «CASCADE», это означает, что любое действие произведенное в родительской таблице распространяется на дочерние, а при удалении «RESTRICT», таким образом невозможно удалять значения из родительской таблицы, пока в дочерних таблицах присутствуют соответствующие внешние ключи.
База данных находится в первой нормальной форме, т.к. каждый кортеж содержит одно значение для каждого атрибута, например, в отношении «personal» атрибуты «name», «lname», «date rojden» могут содержать единственное значение.
Таблицы находятся также во второй нормальной форме, поскольку они находятся в первой нормальной форме и каждый неключевой атрибут любого отношения непосредственно зависит от всего первичного ключа своего отношения, так в отношении «personal», которое находится в первой нормальной форме, атрибуты «name», «lname»,«date rejden», зависят от первичного ключа «id_worker»,
База данных находятся в третьей нормальной форме, так как она находится во второй нормальной форме и каждый неключевой атрибут не зависит от другого неключевого атрибута данного отношения, например, в отношении «persona», атрибуты «name» и «date rojden» независимы друг от друга, но при этом отношение находится во второй нормальной форме.
3. Реализация базы данных заказа такси
Для работы с реляционными базами данных используется SQL (Structured Query Language) - структурированный язык запросов.
Язык SQL включает в себя несколько категорий:
· DDL (Data Definition Language) - язык определения данных;
· DML (Data Manipulation Language) - язык манипулирования данными;
· DQL (Data Query Language) - язык запросов к данным;
· DCL (Data Control Language) - язык управления данными;
· TCL (Transaction Control Language) - язык управления транзакциями;
· Команды администрирования данных.
Язык DDL позволяет создавать и изменять структуру объектов базы данных. Основными командами DDL являются следующие: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX.
Язык DML используется для манипулирования информацией внутри объектов базы данных, посредством трех основных команд: INSERT, UPADTE, DELETE.
Язык DQL используется для формирования запросов к базе данных и включает в себя одну команду SELECT.
Язык DCL позволяет управлять доступом к информации, находящейся внутри базы данных. Команды DCL - GRANT, REVOKE.
Язык TCL позволяет управлять транзакциями базы данных, включает в себя следующие команды: COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION.
Несколько из перечисленных команд языка DDL будут использованы ниже.
Создание базы данных с помощью языка SQL выглядит следующим образом:
Создание таблицы «zakaz ».
CREATE TABLE IF NOT EXISTS `tax`.`Zakazi` (
`id_zakaza` INT(11) NOT NULL,
`time_vizova` TIME NULL DEFAULT NULL,
`time_posadki` TIME NULL DEFAULT NULL,
`time_visadki` TIME NULL DEFAULT NULL,
`price_pyt_posadky` INT(11) NULL DEFAULT NULL,
`Tarif_idTarifa` INT(11) NOT NULL,
PRIMARY KEY (`id_zakaza`),
Для того чтобы данные таблиц можно было однозначно идентифицировать, необходимо позаботиться об установке уникальных первичных ключей.
На примере таблицы «Author» ниже показан скрипт установки первичного ключа для атрибута ID. Остальные скрипты приведены в приложении А.
ALTER TABLE zakaz
ADD CONSTRAINT id_zakaza PRIMARY KEY (ID);
Для связи различных отношений базы данных необходимо установить внешние ключи и наложить на них ограничения для сохранения целостности базы данных.
Для примера представлено создание таблицы с установкой внешнего ключа для атрибута «id_worker» в отношении «personal». Остальные таблицы приведены в приложении А.
CREATE TABLE IF NOT EXISTS `tax`.`personal` (
`id_worker` INT(11) NOT NULL,
`name` VARCHAR(20) NULL DEFAULT NULL,
`lname` VARCHAR(20) NULL DEFAULT NULL,
`pol` VARCHAR(20) NULL DEFAULT NULL,
`phone` VARCHAR(20) NULL DEFAULT NULL,
`date_rojden` DATE NULL DEFAULT NULL,
`vid_professi_id_professi` INT(11) NOT NULL,
PRIMARY KEY (`id_worker`),
FOREIGN KEY (`vid_professi_id_professi`)
REFERENCES `tax`.`vid_professi` (`id_professi`)
Этап построения физической модели завершается созданием ограничений, рассмотренных ранее. Это реализуется благодаря триггерам.
На примере отношения «car» продемонстрировано использование скриптов для заполнения таблицы информацией. Скрипты заполнения оставшихся данных приведены в приложении Б.
INSERT INTO `tax`.`car` (`id_gos_nomer`, `vmestitel`, `name`) VALUES ('223', '4', 'audio_a3');
INSERT INTO `tax`.`car` (`id_gos_nomer`, `vmestitel`, `name`) VALUES ('224', '2', 'audio_a7');
INSERT INTO `tax`.`car` (`id_gos_nomer`, `vmestitel`, `name`) VALUES ('225', '4', 'bmw_1m');
INSERT INTO `tax`.`car` (`id_gos_nomer`, `vmestitel`, `name`) VALUES ('226', '4', 'bmw_02');
INSERT INTO `tax`.`car` (`id_gos_nomer`, `vmestitel`, `name`) VALUES ('227', '2', 'ford_aspire');
INSERT INTO `tax`.`car` (`id_gos_nomer`, `vmestitel`, `name`) VALUES ('228', '2', 'ford_bmax');
4. Реализация запросов по извлечению информации из базы данных работа такси
Запросы являются наиболее часто используемым элементом SQL. Запрос - это оператор, который посылает команду СУБД произвести манипуляцию или отобразить определенную информацию.
Существует несколько видов запросов. Создание самого простого запроса для выборки данных из таблицы БД происходит с помощью обязательных операторов SELECT и FROM. Чтобы задать условие выборки необходимо использовать WHERE.
Примером такого запроса может быть необходимость поиска машины с названием BMW X3.
SELECT * FROM car WHERE name = 'BMW X3'
Если необходимо вывести информацию из нескольких таблиц, например о имени водителя и машины
SELECT p.name, p.lname, c.name Название_машины FROM car c
INNER JOIN voditeli v
ON c.id_gos_nomer = v.car_id_gos_nomer
INNER JOIN personal p
ON v.personal_id_worker = p.id_worker
Результат запроса представлен на рисунке 4.
Рисунок 4. Выборка данных из таблицы БД
Существуют сложные операции с данными. К ним можно отнести группировку и сортировку данных. UNION используется для объединения двух таблиц.
Запрос для отображения для отображении цены у клиентов которая превышает 100 р :
SELECT z.price_pyt_posadky цена,t.name_tarifa имя_тарифа, p.name имя_клиента
FROM passajir p
INNER JOIN ychet_zakazov yz
ON p.id_passajira = yz.Passajir_id_passajira
INNER JOIN zakazi z
ON z.id_zakaza = yz.Zakazi_id_zakaza
INNER JOIN Tarif t
ON idTarifa = z.Tarif_idTarifa
WHERE z.price_pyt_posadky > 100
Результат запроса представлен на рисунке 6.
Рисунок 5. Выборка данных из таблицы БД
5. Реализация хранимых процедур и триггеров
Нередко при работе с базами данных очень часто используются одни и те же запросы, либо набор последовательных запросов. Для того чтобы не писать часто одни и те же запросы или объединить группу последовательных запросов используются хранимые процедуры. Хранимые процедуры представляют собой группу команд SQL, объединенных в один модуль. Такая группа команд компилируется и выполняется как единое целое. Хранимые процедуры хранятся на сервере базы данных, что снижает количество трафика между клиентом и сервером. Помимо этого, в процедурах можно использовать переменные, что также делает их удобными.
Некоторые из представленных запросов в пункте 4 будет целесообразным реализовать в качестве процедур.
Ниже представлен запрос на языке SQL для создания хранимой процедуры, которая имеет один входной параметр. Процедура отображает пользователя автомобиля по id.
DELIMITER |
DROP PROCEDURE IF EXISTS spSearchCar |
CREATE PROCEDURE spSearchCar(IN VCar int)
BEGIN
SELECT p.name имя_водителя,c.name название_машины FROM personal p
INNER JOIN voditeli v
ON p.id_worker = v.personal_id_worker
INNER JOIN car c
ON c.id_gos_nomer = v.car_id_gos_nomer
WHERE c.id_gos_nomer = VCar;
END;
|
DELIMITER ;
Результат процедуры представлен на рисунке 7.
Рисунок 6. Процедура БД
Ниже представлена процедура, выводящая имя водителя и имя машины.
DELIMITER |
DROP PROCEDURE IF EXISTS spSearchCar |
CREATE PROCEDURE spSearchCar(IN VCar varchar(20))
BEGIN
SELECT p.name имя_водителя,c.name название_машины FROM personal p
INNER JOIN voditeli v
ON p.id_personala = v.personal_id_personal
INNER JOIN car c
ON c.id_car = v.car_id_car
WHERE c.name LIKE VCar;
END;
|
DELIMITER ;
Результат процедуры представлен на рисунке 8.
Рисунок 7. Процедура БД
Триггер - это хранимая процедура, которая автоматически исполняется при наступлении определенного события (INSERT, UPDATE, DELETE). Триггер прикрепляется за каждой таблицей и может быть вызван либо до, либо после инструкций DML.
С помощью триггеров удобно реализовать ограничения ссылочной целостности, ограничения на значения столбцов, а также накапливать статистику работы БД или делать резервное копирование записей.
Пример реализации триггера представлен ниже.
DELIMITER //
CREATE TRIGGER `update_zero_kolvo_cena` BEFORE UPDATE on `zakazi`
FOR EACH ROW
BEGIN
IF NEW.`price_zakaza ` = 0 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Цена не может быть равна 0';
END IF
END //
Данный триггер запрещает ввод нуля в поля цены таблицы«zakazi».
Заключение
В результате выполнения курсовой работы поставленная цель была достигнута, выполнены поставленные задачи: изучена работа заказов такси, построена концептуальная схема базы данных, построена база данных в конкретной СУБД (MySql), разработаны запросы, процедуры для базы данных. Таким образом, была разработана база данных для заказа такси и изучены основные разделы реляционных баз данных и работы с базами данных в среде конкретной СУБД.
Список использованных источников
учет вызов такси
1. Кузин, А.В. Базы данных: учеб. пособие для студ. высш. учеб. Заведений / А.В. Кузин, С.В. Левонисова. - М.: Издательский центр «Академия», 2012. - 320 с.
2. Диго, С. М. Базы данных. Проектирование и создание: Учебно-методический комплекс / С. М. Диго. - М.: Изд. Центр ЕАОИ, 2008. - 171 с.
3. Олькина, Е.В. Методические указания по оформлению пояснительных записок к дипломным, курсовым проектам (работам) и отчетов по практикам в соответствии с требованиями государственных стандартов / Е.В. Олькина. - Орел: Орел-ГТУ, 2007. - 54с.
4. Резниченко В. Язык запросов SQL. Учебный курс; К.: Диалектика; Издание 1-е, 2015. - 298 с.
5. Голицына, О.Л. Базы данных; Форум; Инфра-М, 2007. - 399 c.
Приложение А
Листинг программы
1. Создание базы
CREATE DATABASE `taxi` CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Создание таблицы personal
CREATE TABLE IF NOT EXISTS `taxi`.`personal` (
`idpersonala` INT(11) NOT NULL,
`lname` VARCHAR(45) NULL DEFAULT NULL,
`name` VARCHAR(45) NULL DEFAULT NULL,
`pol` VARCHAR(45) NULL DEFAULT NULL,
`namber_phone` VARCHAR(45) NULL DEFAULT NULL,
`data_rojden` DATE NULL DEFAULT NULL,
`vid_profess_idvid_profess` INT(11) NOT NULL,
PRIMARY KEY (`idpersonala`),
INDEX `fk_personal_vid_profess1_idx` (`vid_profess_idvid_profess` ASC),
CONSTRAINT `fk_personal_vid_profess1`
FOREIGN KEY (`vid_profess_idvid_profess`)
REFERENCES `taxi`.`vid_profess` (`idvid_profess`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы dispetcher
CREATE TABLE IF NOT EXISTS `taxi`.`dispetcher` (
`iddispetcher` INT(11) NOT NULL,
`personal_idpersonala` INT(11) NOT NULL,
PRIMARY KEY (`iddispetcher`),
INDEX `fk_dispetcher_personal1_idx` (`personal_idpersonala` ASC),
CONSTRAINT `fk_dispetcher_personal1`
FOREIGN KEY (`personal_idpersonala`)
REFERENCES `taxi`.`personal` (`idpersonala`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы voditel
CREATE TABLE IF NOT EXISTS `taxi`.`voditel` (
`idvoditel` INT(11) NOT NULL,
`personal_idpersonala` INT(11) NOT NULL,
`car_idcar` INT(11) NOT NULL,
PRIMARY KEY (`idvoditel`),
INDEX `fk_voditel_personal1_idx` (`personal_idpersonala` ASC),
INDEX `fk_voditel_car1_idx` (`car_idcar` ASC),
CONSTRAINT `fk_voditel_personal1`
FOREIGN KEY (`personal_idpersonala`)
REFERENCES `taxi`.`personal` (`idpersonala`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_voditel_car1`
FOREIGN KEY (`car_idcar`)
REFERENCES `taxi`.`car` (`idcar`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы car
CREATE TABLE IF NOT EXISTS `taxi`.`car` (
`idcar` INT(11) NOT NULL,
`nomer` INT(11) NULL DEFAULT NULL,
`vmestimost` VARCHAR(45) NULL DEFAULT NULL,
`voditel_idvoditel` INT(11) NOT NULL,
`marka car_idmarka_car` INT(11) NOT NULL,
`color_car_idcolor_car` INT(11) NOT NULL,
PRIMARY KEY (`idcar`),
INDEX `fk_car_voditel1_idx` (`voditel_idvoditel` ASC),
INDEX `fk_car_marka car1_idx` (`marka car_idmarka_car` ASC),
INDEX `fk_car_color_car1_idx` (`color_car_idcolor_car` ASC),
CONSTRAINT `fk_car_voditel1`
FOREIGN KEY (`voditel_idvoditel`)
REFERENCES `taxi`.`voditel` (`idvoditel`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_car_marka car1`
FOREIGN KEY (`marka car_idmarka_car`)
REFERENCES `taxi`.`marka car` (`idmarka_car`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_car_color_car1`
FOREIGN KEY (`color_car_idcolor_car`)
REFERENCES `taxi`.`color_car` (`idcolor_car`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы color_car
CREATE TABLE IF NOT EXISTS `taxi`.`color_car` (
`idcolor_car` INT(11) NOT NULL,
`name_color` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`idcolor_car`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы marka car
CREATE TABLE IF NOT EXISTS `taxi`.`marka car` (
`idmarka_car` INT(11) NOT NULL,
`name_car` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`idmarka_car`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы passajir
CREATE TABLE IF NOT EXISTS `taxi`.`passajir` (
`idpassajira` INT(11) NOT NULL,
`name` VARCHAR(45) NULL DEFAULT NULL,
`namber_phone` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`idpassajira`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы zajavka
CREATE TABLE IF NOT EXISTS `taxi`.`zajavka` (
`idzajavki` INT(11) NOT NULL,
`passajir_idПассажира` INT(11) NOT NULL,
`tarif_idtarif` INT(11) NOT NULL,
`dispetcher_idДиспетчера` INT(11) NOT NULL,
`adres_id_ot` INT(11) NOT NULL,
`adres_id_do` INT(11) NOT NULL,
PRIMARY KEY (`idzajavki`),
INDEX `fk_zajavka_passajir1_idx` (`passajir_idПассажира` ASC),
INDEX `fk_zajavka_tarif1_idx` (`tarif_idtarif` ASC),
INDEX `fk_zajavka_dispetcher1_idx` (`dispetcher_idДиспетчера` ASC),
INDEX `fk_zajavka_adres1_idx` (`adres_id_ot` ASC),
INDEX `fk_zajavka_adres2_idx` (`adres_id_do` ASC),
CONSTRAINT `fk_zajavka_passajir1`
FOREIGN KEY (`passajir_idПассажира`)
REFERENCES `taxi`.`passajir` (`idpassajira`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_zajavka_tarif1`
FOREIGN KEY (`tarif_idtarif`)
REFERENCES `taxi`.`tarif` (`idtarif`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_zajavka_dispetcher1`
FOREIGN KEY (`dispetcher_idДиспетчера`)
REFERENCES `taxi`.`dispetcher` (`iddispetcher`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_zajavka_adres1`
FOREIGN KEY (`adres_id_ot`)
REFERENCES `taxi`.`adres` (`idАдрес`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_zajavka_adres2`
FOREIGN KEY (`adres_id_do`)
REFERENCES `taxi`.`adres` (`idАдрес`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы poezdka
CREATE TABLE IF NOT EXISTS `taxi`.`poezdka` (
`idpoezdki` INT(11) NOT NULL,
`time_posadki` TIME(4) NULL DEFAULT NULL,
`time_visadki` TIME(4) NULL DEFAULT NULL,
`time_ojidan` TIME(4) NULL DEFAULT NULL,
`price_zakaza` REAL NULL,
`proezd_km` INT(11) NULL DEFAULT NULL,
`car_idcar` INT(11) NOT NULL,
`zajavka_idzajavki` INT(11) NOT NULL,
`voditel_idvoditel` INT(11) NOT NULL,
`data` DATE NULL DEFAULT NULL,
PRIMARY KEY (`idpoezdki`),
INDEX `fk_poezdka_car1_idx` (`car_idcar` ASC),
INDEX `fk_poezdka_zajavka1_idx` (`zajavka_idzajavki` ASC),
INDEX `fk_poezdka_voditel1_idx` (`voditel_idvoditel` ASC),
CONSTRAINT `fk_poezdka_car1`
FOREIGN KEY (`car_idcar`)
REFERENCES `taxi`.`car` (`idcar`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_poezdka_zajavka1`
FOREIGN KEY (`zajavka_idzajavki`)
REFERENCES `taxi`.`zajavka` (`idzajavki`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_poezdka_voditel1`
FOREIGN KEY (`voditel_idvoditel`)
REFERENCES `taxi`.`voditel` (`idvoditel`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы tarif
CREATE TABLE IF NOT EXISTS `taxi`.`tarif` (
`idtarif` INT(11) NOT NULL,
`name_tarifa` VARCHAR(45) NULL DEFAULT NULL,
`price_km` INT(11) NULL DEFAULT NULL,
`posadka` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`idtarif`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы black list
CREATE TABLE IF NOT EXISTS `taxi`.`black list` (
`idblack_list` INT(11) NOT NULL,
`name_naryshen` VARCHAR(45) NULL DEFAULT NULL,
`passajir_idpassajira` INT(11) NOT NULL,
PRIMARY KEY (`idblack_list`),
INDEX `fk_black list_passajir1_idx` (`passajir_idpassajira` ASC),
CONSTRAINT `fk_black list_passajir1`
FOREIGN KEY (`passajir_idpassajira`)
REFERENCES `taxi`.`passajir` (`idpassajira`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы vid_profess
CREATE TABLE IF NOT EXISTS `taxi`.`vid_profess` (
`idvid_profess` INT(11) NOT NULL,
`name` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`idvid_profess`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Создание таблицы adres
CREATE TABLE IF NOT EXISTS `taxi`.`adres` (
`idАдрес` INT(11) NOT NULL,
`city` VARCHAR(45) NULL DEFAULT NULL,
`street` VARCHAR(45) NULL DEFAULT NULL,
`home` VARCHAR(45) NULL DEFAULT NULL,
`podjezd` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`idАдрес`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Приложение Б
Листинг запросов на добавление, обновление и удаление данных в таблицы БД
Добавление данных в таблицу passajir
INSERT INTO `taxi`.`passajir` (`idpassajira`, `name`, `namber_phone`) VALUES ('124', 'Дмитрий', '2345');
INSERT INTO `taxi`.`passajir` (`idpassajira`, `name`, `namber_phone`) VALUES ('123', 'Николай', '2314');
INSERT INTO `taxi`.`passajir` (`idpassajira`, `name`, `namber_phone`) VALUES ('125', 'Виктор', '1242');
INSERT INTO `taxi`.`passajir` (`idpassajira`, `name`, `namber_phone`) VALUES ('126', 'Анастасия', '1235');
INSERT INTO `taxi`.`passajir` (`idpassajira`, `name`, `namber_phone`) VALUES ('127', 'Виктория', '1231');
INSERT INTO `taxi`.`passajir` (`idpassajira`, `name`, `namber_phone`) VALUES ('128', 'Наталья', '4124');
Добавление данных в таблицу black list
INSERT INTO `taxi`.`black list` (`idblack_list`, `name_naryshen`, `passajir_idpassajira`) VALUES ('12', 'курение', '123');
INSERT INTO `taxi`.`black list` (`idblack_list`, `name_naryshen`, `passajir_idpassajira`) VALUES ('13', 'выпивка', '124');
INSERT INTO `taxi`.`black list` (`idblack_list`, `name_naryshen`, `passajir_idpassajira`) VALUES ('14', 'нецензурная лексика', '125');
Добавление данных в таблицу color_car
INSERT INTO `taxi`.`color_car` (`idcolor_car`, `name_color`) VALUES ('1', 'синий');
INSERT INTO `taxi`.`color_car` (`idcolor_car`, `name_color`) VALUES ('2', 'красный');
INSERT INTO `taxi`.`color_car` (`idcolor_car`, `name_color`) VALUES ('3', 'белый');
Добавление данных в таблицу marka car
INSERT INTO `taxi`.`marka car` (`idmarka_car`, `name_car`) VALUES ('1', 'BMW x3');
INSERT INTO `taxi`.`marka car` (`idmarka_car`, `name_car`) VALUES ('3', 'Audi A6');
INSERT INTO `taxi`.`marka car` (`idmarka_car`, `name_car`) VALUES ('5', 'BMW X2');
INSERT INTO `taxi`.`marka car` (`idmarka_car`, `name_car`) VALUES ('6', 'Audi A2');
INSERT INTO `taxi`.`marka car` (`idmarka_car`, `name_car`) VALUES ('7', 'Audi A3');
INSERT INTO `taxi`.`marka car` (`idmarka_car`, `name_car`) VALUES ('8', 'BMW X1');
Добавление данных в таблицу vid_profess
INSERT INTO `taxi`.`vid_profess` (`idvid_profess`, `name`) VALUES ('1', 'диспетчер'); INSERT INTO `taxi`.`vid_profess` (`idvid_profess`, `name`) VALUES ('2', 'водитель');
Добавление данных в таблицу personal
INSERT INTO `taxi`.`personal` (`idpersonala`, `lname`, `name`, `pol`, `namber_phone`, `data_rojden`, `vid_profess_idvid_profess`) VALUES ('213', 'Анисимова', 'Виктория', 'ж', '12345', '1995', '1');
INSERT INTO `taxi`.`personal` (`idpersonala`, `lname`, `name`, `pol`, `namber_phone`, `data_rojden`, `vid_profess_idvid_profess`) VALUES ('214', 'Можина', 'Вкитория', 'ж', '12341', '1996', '1');
INSERT INTO `taxi`.`personal` (`idpersonala`, `lname`, `name`, `pol`, `namber_phone`, `data_rojden`, `vid_profess_idvid_profess`) VALUES ('215', 'Топчиева', 'Кристина', 'ж', '2134', '1995', '1');
INSERT INTO `taxi`.`personal` (`idpersonala`, `lname`, `name`, `pol`, `namber_phone`, `data_rojden`, `vid_profess_idvid_profess`) VALUES ('216', 'Егорова', 'Екатерина', 'м', '123123', '1992', '1');
INSERT INTO `taxi`.`personal` (`idpersonala`, `lname`, `name`, `pol`, `namber_phone`, `data_rojden`, `vid_profess_idvid_profess`) VALUES ('217', 'Алдошин', 'Андрей', 'м', '12314', '1993', '2');
INSERT INTO `taxi`.`personal` (`idpersonala`, `lname`, `name`, `pol`, `namber_phone`, `data_rojden`, `vid_profess_idvid_profess`) VALUES ('218', 'Шарапов', 'Андрей', 'м', '213123', '1992', '2');
INSERT INTO `taxi`.`personal` (`idpersonala`, `lname`, `name`, `pol`, `namber_phone`, `data_rojden`, `vid_profess_idvid_profess`) VALUES ('219', 'Кожин', 'Владислав', 'м', '213123', '1994', '2');
Добавление данных в таблицу voditel
INSERT INTO `taxi`.`voditel` (`idvoditel`, `personal_idpersonala`) VALUES ('245', '217');
INSERT INTO `taxi`.`voditel` (`idvoditel`, `personal_idpersonala`) VALUES ('246', '218');
INSERT INTO `taxi`.`voditel` (`idvoditel`, `personal_idpersonala`) VALUES ('247', '219');
Добавление данных в таблицу dispetcher
INSERT INTO `taxi`.`dispetcher` (`iddispetcher`, `personal_idpersonala`) VALUES ('267', '213');
INSERT INTO `taxi`.`dispetcher` (`iddispetcher`, `personal_idpersonala`) VALUES ('268', '214');
INSERT INTO `taxi`.`dispetcher` (`iddispetcher`, `personal_idpersonala`) VALUES ('269', '215');
INSERT INTO `taxi`.`dispetcher` (`iddispetcher`, `personal_idpersonala`) VALUES ('270', '216');
Добавление данных в таблицу tarif
INSERT INTO `taxi`.`tarif` (`idtarif`, `name_tarifa`, `price_km`, `posadka`) VALUES ('12', 'Городской', '16', '43');
INSERT INTO `taxi`.`tarif` (`idtarif`, `name_tarifa`, `price_km`, `posadka`) VALUES ('23', 'Загородний', '20', '43');
INSERT INTO `taxi`.`tarif` (`idtarif`, `name_tarifa`, `price_km`, `posadka`) VALUES ('24', 'Экстренный', '20', '43');
INSERT INTO `taxi`.`tarif` (`idtarif`, `name_tarifa`, `price_km`, `posadka`) VALUES ('25', 'Предварительный', '18', '43');
Добавление данных в таблицу adres
INSERT INTO `taxi`.`adres` (`idАдрес`, `city`, `street`, `home`, `podjezd`) VALUES ('156', 'Орел', 'Черкасская', '72', '3');
INSERT INTO `taxi`.`adres` (`idАдрес`, `city`, `street`, `home`, `podjezd`) VALUES ('157', 'Крым', 'Московская', '89', '3');
INSERT INTO `taxi`.`adres` (`idАдрес`, `city`, `street`, `home`, `podjezd`) VALUES ('158', 'Орел', 'Нермандия', '90', '2');
INSERT INTO `taxi`.`adres` (`idАдрес`, `city`, `street`, `home`, `podjezd`) VALUES ('159', 'Тула', 'Гагарина', '23', '2');
INSERT INTO `taxi`.`adres` (`idАдрес`, `city`, `street`, `home`, `podjezd`) VALUES ('160', 'Новгород', 'Михалицина', '14', '1');
Добавление данных в таблицу zajavka
INSERT INTO `taxi`.`zajavka` (`idzajavki`, `passajir_idПассажира`, `tarif_idtarif`, `dispetcher_idДиспетчера`, `adres_id_ot`, `adres_id_do`) VALUES ('456', '127', '12', '267', '156', '158');
INSERT INTO `taxi`.`zajavka` (`idzajavki`, `passajir_idПассажира`, `tarif_idtarif`, `dispetcher_idДиспетчера`, `adres_id_ot`, `adres_id_do`) VALUES ('457', '126', '23', '268', '157', '159');
INSERT INTO `taxi`.`zajavka` (`idzajavki`, `passajir_idПассажира`, `tarif_idtarif`, `dispetcher_idДиспетчера`, `adres_id_ot`, `adres_id_do`) VALUES ('458', '128', '24', '269', '156', '157');
INSERT INTO `taxi`.`zajavka` (`idzajavki`, `passajir_idПассажира`, `tarif_idtarif`, `dispetcher_idДиспетчера`, `adres_id_ot`, `adres_id_do`) VALUES ('459', '127', '25', '270', '158', '157');
INSERT INTO `taxi`.`zajavka` (`idzajavki`, `passajir_idПассажира`, `tarif_idtarif`, `dispetcher_idДиспетчера`, `adres_id_ot`, `adres_id_do`) VALUES ('460', '126', '12', '267', '156', '158');
Добавление данных в таблицу car
INSERT INTO `taxi`.`car` (`idcar`, `nomer`, `vmestimost`, `voditel_idvoditel`, `marka car_idmarka_car`, `color_car_idcolor_car`) VALUES ('123', 'к123ке', '4', '245', '1', '1');
INSERT INTO `taxi`.`car` (`idcar`, `nomer`, `vmestimost`, `voditel_idvoditel`, `marka car_idmarka_car`, `color_car_idcolor_car`) VALUES ('124', 'к127ур', '4', '248', '5', '2');
INSERT INTO `taxi`.`car` (`idcar`, `nomer`, `vmestimost`, `voditel_idvoditel`, `marka car_idmarka_car`, `color_car_idcolor_car`) VALUES ('125', 'п128ро', '4', '246', '7', '3');
INSERT INTO `taxi`.`car` (`idcar`, `nomer`, `vmestimost`, `voditel_idvoditel`, `marka car_idmarka_car`, `color_car_idcolor_car`) VALUES ('126', 'н129ре', '4', '247', '8', '1');
Добавление данных в таблицу poezdka
INSERT INTO `taxi`.`poezdka` (`idpoezdki`, `time_posadki`, `time_visadki`, `time_ojidan`, `price_zakaza`, `proezd_km`, `car_idcar`, `zajavka_idzajavki`, `voditel_idvoditel`) VALUES ('123', '12:00', '12:30', '12:10', '150, 00', '30', '123', '456', '245');
INSERT INTO `taxi`.`poezdka` (`idpoezdki`, `time_posadki`, `time_visadki`, `time_ojidan`, `price_zakaza`, `proezd_km`, `car_idcar`, `zajavka_idzajavki`, `voditel_idvoditel`) VALUES ('124', '13:00', '14:00', '13:05', '100.00', '25', '124', '458', '248');
INSERT INTO `taxi`.`poezdka` (`idpoezdki`, `time_posadki`, `time_visadki`, `time_ojidan`, `price_zakaza`, `proezd_km`, `car_idcar`, `zajavka_idzajavki`, `voditel_idvoditel`) VALUES ('125', '14:00', '14:40', '14:10', '110.50', '100', '125', '459', '246');
INSERT INTO `taxi`.`poezdka` (`idpoezdki`, `time_posadki`, `time_visadki`, `time_ojidan`, `price_zakaza`, `proezd_km`, `car_idcar`, `zajavka_idzajavki`, `voditel_idvoditel`) VALUES ('126', '15:00', '15:30', '15:10', '130.30', '50', '126', '460', '247');
Размещено на Allbest.ru
...Подобные документы
Пример создания базы данных "Диспетчерская служба такси". Моделирование элементов системы. Концептуальные требования, нормализация таблицы. Создание структурной схемы базы данных, таблиц в режиме конструктора. Простой, перекрестный, повторяющийся запрос.
курсовая работа [2,9 M], добавлен 21.04.2015Знакомство с особенностями и этапами разработки базы данных "Летопись острова Санта Белинда". Анализ основных компонентов MS Access. Форма как объект базы данных, который можно использовать для создания интерфейса пользователя для приложения базы данных.
курсовая работа [2,1 M], добавлен 25.05.2015Рассмотрение особенностей структурной и целостной частей реляционной модели базы данных, их функции. Знакомство с основными этапами разработки стратегии поддержания ссылочной целостности. Общая характеристика способов манипулирования реляционными данными.
курсовая работа [565,8 K], добавлен 25.04.2013Разработка автоматизированной информационной системы предприятия на основе баз данных, которая обеспечивает качественный контроль данных, автоматизацию документооборота, быстрое составление отчетов. Создание форм, отчетов и макросов, меню базы данных.
курсовая работа [4,8 M], добавлен 20.05.2014Базы данных как совокупность структур, предназначенных для хранения больших объемов информации и программных модулей. Анализ способов создания базы данных для учета книг личной библиотеки, особенности использования языка программирования C++Builder.
курсовая работа [8,1 M], добавлен 10.01.2014Изучение функций автоматизированных банков данных. Общие принципы описания, хранения и манипулирования данными. Анализ требований к базам данных. Файл-серверная и клиент-серверная архитектура БД. Преимущества введения системы управления базами данных.
презентация [91,5 K], добавлен 13.08.2013Анализ методов проектирования базы данных, которая предназначена для работников частного предприятия, оказывающего населению услуги такси, и позволяет им повысить эффективность своей работы за счет систематизации и быстрого поиска нужной им информации.
курсовая работа [2,0 M], добавлен 12.07.2010Инструментальные средства для разработки структуры информационной базы данных "Программа автоматизации учета расчетов с поставщиками", пользовательский интерфейс СУБД Access. Разработка запросов отбора данных и вычислений, экранных форм коррекции данных.
лабораторная работа [2,4 M], добавлен 15.11.2010Система управления базами данных MySQL. Управление БД MySQL при помощи инструмента phpmyadmin. Принципы учета товарно-материальных ценностей. Спецификация оборудования, необходимого для нормального функционирования базы данных учета. Создание скрипта.
дипломная работа [1,4 M], добавлен 16.08.2015Определение базы данных и банков данных. Компоненты банка данных. Основные требования к технологии интегрированного хранения и обработки данных. Система управления и модели организации доступа к базам данных. Разработка приложений и администрирование.
презентация [17,1 K], добавлен 19.08.2013История создания предприятия и анализ его деятельности. Основные понятия торговли. Этапы разработки модели данных, построение информационно-логической модели. Разработка базы данных для учета товародвижения и документооборота на предприятии в ACCESS.
дипломная работа [1006,2 K], добавлен 14.01.2012Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.
курсовая работа [1,7 M], добавлен 04.06.2015Автоматизированные базы данных в учебном процессе. Создание базы данных для МОУ СОШ № 12 с целью помощи в обеспечении централизованного управления, хранения информации об учениках. Требования к программе, условия эксплуатации. Программный код базы данных.
дипломная работа [2,0 M], добавлен 25.03.2014Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.
курсовая работа [2,4 M], добавлен 06.02.2016Разновидности систем управления базами данных. Анализ предметной области. Разработка структуры и ведение базы данных. Структурированный язык запросов SQL. Организация выбора информации из базы данных. Общие принципы проектирования экранных форм, макросов.
курсовая работа [3,1 M], добавлен 26.02.2016Процесс разработки базы данных для хранения и обработки информации. Ключи, индексы, триггеры, хранимые процедуры. Разработка пользовательского интерфейса и базы данных. Основные инструментальные средства для разработки клиентской и серверной частей.
дипломная работа [225,0 K], добавлен 18.05.2013Разработка базы данных для автоматизации учета и хранения сведений о заявках от работодателей. Проектирование приложения в СУБД Access. Описание запросов, отчетов и представлений данных. Интерфейс, условия выполнения и тестирование программного продукта.
курсовая работа [3,7 M], добавлен 05.04.2012Характеристика программы базы данных для хранения и учета материальных ценностей на складе, ее возможности и практическое применение. Процесс создания базы данных на основе реляционной СУБД MS Access. Связь сведений по товарам, поставщикам и покупателям.
курсовая работа [13,8 K], добавлен 29.08.2009Понятие базы данных. Классификация баз данных и системы управления. Подходы к проектированию и модели. Разработка базы данных для школьного врача, которая позволит автоматизировать ведение документации, необходимой для учета состояния здоровья учащихся.
дипломная работа [3,8 M], добавлен 03.10.2013Разработка базы данных для спортивной школы с целью ведения учета, контроля и получения информации о нужном студенте. Создание диалогового окна входа в приложение. Составление схемы и структуры базы данных. Разработка пользовательского интерфейса.
курсовая работа [3,4 M], добавлен 08.09.2015