
- •Содержание
- •1. Введение
- •2. Разработка и анализ технического задания
- •2.1. Описание предметной области
- •2.3.2. Требования к защите информации
- •2.3.3. Требования к объему хранимых данных
- •2.3.4. Требования к времени выполнения типичных операций
- •2.3.5. Требования к программному обеспечению (по)
- •2.3.6. Требования к техническому обеспечению
- •2.4. Анализ технического задания
- •2.5. Выбор средств решения выполнения технического задания
- •3.4 Триггеры
- •3.5 Резервное копирование и восстановление базы данных
- •4. Разработка клиентской части для бд
- •4.1 Разработка интерфейса
- •5. Заключение
- •6. Список использованной литературы
2.3.3. Требования к объему хранимых данных
На современном этапе развития информационных технологий место на жестком диске довольно дешевое. С учетом того, что разрабатываемая база данных будет хранить только текстовую информацию – получается практически неограниченный объем для хранения данных. Предположим, что база данных будет храниться на компьютере, специально для этого отведенном с жестким диском малого размера – 80 Гб. Вычитаем необходимое место под ос и утилиты ~ 20 Гб, получается, что база данных не должна превышать по объему 60 Г, что соответствует более 10млн. записям. Это вполне достаточно для рассматриваемого предприятия.
2.3.4. Требования к времени выполнения типичных операций
время поиска информации – не более 0.005 сек;
время построения отчетов – не более 0.05 сек;
время выполнения запросов/хранимых процедур – не более 0.05 сек.
2.3.5. Требования к программному обеспечению (по)
Разрабатываемое приложение должно выполняться на отдельном сервере с доступом к нему (приложению) по http протоколу в целях централизации и масштабируемости.
Следовательно, на компьютере-сервере необходимо следующее программное обеспечение, выполняющее соответствующие требования:
операционная система, обеспечивающая работу всего комплекса;
web-сервер, обеспечивающий до 100 соединений в секунду;
реляционная СУБД, отвечающая выше перечисленным требованиям к БД;
среда выполнения приложения, работающего с разработанной БД, обеспечивающая время отклика не более 0.2 секунды;
2.3.6. Требования к техническому обеспечению
БД должна занимать не более 60 Гб дискового пространства
БД должна функционировать на ПК с минимальной частотой процессора 1000 МГц;
БД должна функционировать на ПК с объемом минимальной оперативной памяти 256 Мб.
БД должна функционировать на ПК с видеоадаптером, позволяющим работать с разрешением экрана 800 х 600, при 16-бит цветовой палитре.
2.4. Анализ технического задания
Приложение разрабатывается с целью повышения эффективности работы салона проката велосипедов. Следовательно, минимально необходимые действия для осуществления вышеуказанной деятельности должны выполняться работниками салона наиболее быстро и удобно.
Для этого целесообразно категорировать каталог велосипедов – разбить его по категориям, что уменьшит время поиска нужного велосипеда в базе. Далее, необходимо хранить информацию о клиентах и менеджерах, что уменьшит время заполнения акта сдачи в прокат. Информация о скидках на велосипеды, а также о накопительных скидках клиентов также должны храниться базе, что позволит приложению автоматически вычислять стоимость каждого акта, вместо ручного счета сотрудника.
Все вышеперечисленные меры эффективно повысят скорость работы сотрудников.
Для еще более удобной работы, необходимо разработать дружественный пользовательский интерфейс. Интерфейс должен позволять ограничивать набор действий пользователям с ролью менеджер, и предоставлять полный доступ к действиям с данными пользователю с ролью администратора.
Также интерфейс должен предоставлять удобное средство поиска, добавления, просмотра, изменения и удаления записей в базе.
2.5. Выбор средств решения выполнения технического задания
Так как основное требование к разрабатываемому приложению – доступ по web посредством протокола http, то выбор необходимо сделать между средствами разработки для web. Я рассмотрел следующие варианты:
Java
ASP.NET
PHP
Одно из главных преимуществ языка Java - его независимость от платформы, на которой выполняются программы. Таким образом, один и тот же код можно запускать под управлением операционных систем Windows, Linux, FreeBSD, Solaris, Apple Mac и др. Это становится очень важным, когда программы загружаются посредством глобальной сети интернет и используются на различных платформах. Другим, не менее важным преимуществом Java, является большая схожесть с языком программирования C++. Поэтому тем программистам, которые знакомы с синтаксисом С и С++ будет просто освоить Java. Кроме того, Java - полностью объектно-ориентированный язык, даже в большей степени, чем С++. Все сущности в языке Java являются объектами, за исключением немногих основных типов (primitive types), например чисел. В свое время объектно-ориентированное программирование (ООП) заменило структурное программирование. Минус в том, что для небольшого проекта, которым и является разрабатываемый, Java слишком мощен, потребует слишком много ресурсов. К тому же на нем довольно сложно разрабатывать.
Разработка на ASP.NET довольно проста. Но лёгкость в разработке имеет свою цену в виде трафика. Для того чтобы эта инфраструктура работала, каждое действие пользователя требует перезагрузки всей страницы или хотя бы обновляемой панели AJAX. Кроме того, для того чтобы страница при перезагрузке без дополнительных действий со стороны программиста сохраняла введённые пользователем данные, эти данные должны быть продублированы в невидимом компоненте, который называется ViewState, и размазанный в строку битовый массив нехилого размера гоняется туда-сюда вместе со страницей. Так что за простоту разработки в случае использования ASP.NET WebForms платит конечный пользователь. Еще одним минусом является то, что ASP.NET выполняется только на Windows, что говорит об очередных тратах на ОС. Плюс ASP.NET сам по себе платен.
Главным фактором языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными характеристиками:
традиционностью;
простотой;
эффективностью;
безопасностью;
гибкостью.
Существует еще одна «характеристика», которая делает РНР особенно привлекательным: он распространяется бесплатно. Причем, с открытыми исходными кодами (Open Source). Реализации PHP есть как для Windows, так и для Linux – следовательно меньше затрат на ПО. Приложения на PHP выполняются довольно быстро. Для него есть огромное количество документации, библиотек, фреймверков. Он легок в освоении. Он бесплатен, может выполняться на бесплатной платформе. Все это говорит в пользу PHP.
Что касается выбора СУБД, то тут все однозначно, PHP + MySQL – историческая связка. Поддержка MySQL у PHP есть на уровне ядра. К тому же MySQL выполняет все вышеуказанные требования к БД.
3. Разработка БД
3.1 Концептуальное проектирование
Рис. 1 – ER-диаграмма разрабатываемой базы данных
3.2 Логическое проектирование
Рис. 2 – Схема отношений разрабатываемой базы данных
3.3 Физическое проектирование
Создание разработанной схемы базы в MySQL полностью основано на использовании операторов DDL. Я использовал следующие конструкции:
CREATE TABLE `act` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`bicycle_id` int(11) NOT NULL,
`client_id` int(11) NOT NULL,
`manager_id` int(11) NOT NULL,
`date_from` date NOT NULL,
`date_to` date NOT NULL,
`cost` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `bicycle` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`description` varchar(2000) NOT NULL DEFAULT '',
`coast` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
`discount_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`description` varchar(2000) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `client` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(20) NOT NULL,
`last_name` varchar(20) NOT NULL,
`middle_name` varchar(20) NOT NULL,
`passport` varchar(20) NOT NULL,
`address` varchar(100) NOT NULL,
`phone` varchar(20) NOT NULL,
`rating` int(11) NOT NULL DEFAULT '0',
`discount_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `client_discount` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`factor` float NOT NULL,
`rating` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `manager` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(20) NOT NULL,
`last_name` varchar(20) NOT NULL,
`middle_name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `seasonal_discount` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`factor` float NOT NULL,
`start_date` date DEFAULT NULL,
`end_date` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;