Автор: Пользователь скрыл имя, 17 Января 2011 в 16:47, дипломная работа
Цель дипломной работы:
Создание автоматизированного рабочего места диспетчера транспортного цеха (на примере УТТ Ишимбайского филиала АНК «Башнефть»)
Для решения задачи было рассмотрено программное обеспечение от 1С программный продукт 1С: Предприятие, конфигурация «Путевые листы», но было принято решение разрабатывать и внедрять свою разработку, так как рассмотренный программный продукт очень требователен к рабочей станции и достаточно дорог.
ВВЕДЕНИЕ 3
ЧАСТЬ 1. АНАЛИТИЧЕСКАЯ ЧАСТЬ. 5
1.1. Изучение места автоматизации 5
1.2. Краткий технический обзор задачи 13
1.3. Описание операционной среды Microsoft Windows 2000 server. 14
1.4. Описание Internet Information Services. 17
1.5. Описание Active Server Pages 20
1.6. Описание Microsoft SQL Server 24
1.7. Описание технологии Microsoft ActiveX Data Objects 28
ЧАСТЬ 2. ПРАКТИЧЕСКАЯ ЧАСТЬ 32
2.1. Нормализация базы данных 32
2.2. Расчет базы данных 34
2.3. Создание базы данных 41
2.4. Авторизация пользователя в системе 42
2.5. Работа в системе пользователя 44
2.5.1. Подача заявки 45
2.5.2. Просмотр заявок в режиме «Пользователь» 47
2.6. Работа в системе диспетчера 48
2.6.1. Просмотр заявок в режиме «Диспетчер» 49
2.6.2. Работа с «Автомобильным парком» 50
2.6.3. Работа с базой «Водители» 52
2.7. Работа в системе Администратора 54
2.7.1. Работа с базой «Пользователи» 55
2.7.2. Работа с базой «Цеха, Отделы» 57
ЧАСТЬ 3. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 59
3.1. Расчет затрат на разработку программы 62
3.2. Расчет цены разработанной программы 64
3.4. Расчет эксплутационных расходов 66
3.5. Расчет денежного годового экономического эффекта 69
3.6. Определение показателей эффективности инвестиций 71
ЗАКЛЮЧЕНИЕ 79
СПИСОК ЛИТЕРАТУРЫ 81
Согласно терминологии ADO, любой источник данных (база данных, электронная таблица, файл) называется хранилищем данных, с которым при помощи провайдера данных взаимодействует приложение. Минимальный набор компонентов приложения может включать объект соединения, объект набора данных, объект процессора запросов.
Примечание
Объекты OLE DB создаются и функционируют так же, как и другие объекты СОМ. Каждому объекту соответствует идентификатор класса CLSID, хранящийся в системном реестре. Для создания объекта используется метод CoCreateinstance и соответствующая фабрика класса. Объекту соответствует набор интерфейсов, к методам которых можно обращаться после создания объекта.
В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который "умеет" представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.
Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных различных типов.
Такая архитектура позволяет сделать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответствующий провайдер может быть создан для любого хранилища данных без внесения изменений в исходную структуру ADO. При этом существенно расширяется само понятие данных — ведь можно разработать набор объектов и интерфейсов и для нетрадиционных табличных данных. Например, это могут быть графические данные геоинформационных систем, древовидные структуры из системных реестров, данные CASE-инструментов и т. д.
Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек. [8]
Примечание
Нижеследующее описание спецификации OLE DB представлено в соответствии с официальной терминологией Microsoft для данной предметной области.
Спецификация
OLE DB различает следующие типы объектов,
которые будут рассмотрены
Существует множество способов табличной организации данных. В теории реляционных баз данных известен процесс под названием нормализация, который обеспечивает эффективную организацию данных посредством определенного набора таблиц.
Оптимизация структуры базы данных, в том числе подразумевает и ее нормализацию. Нормализация логической структуры базы данных осуществляется с использованием формальных методов разделения данных между несколькими связанными таблицами. Наличие множества небольших таблиц (таблиц с меньшим числом столбцов) свидетельствует о нормализованной базе данных. Наличие же небольшого числа больших таблиц (таблиц, содержащих множество столбцов) — признак денормализованной базы данных,
Разумная нормализация часто помогает поднять производительность. При наличии полезного индекса оптимизатор запросов SQL Server 2000 результативно выполняет выбор быстрых, эффективных соединений таблиц.
По мере роста степени нормализации также увеличивается число и сложность соединений, необходимых для извлечения данных. Множество реляционных соединений, в которых задействовано большое число таблиц, иногда снижает производительность. При разумной нормализации не должно быть много часто исполняемых запросов, использующих соединения, в которых задействовано больше четырех таблиц.
Неполная нормализация структуры базы данных, предназначенной, главным образом для поддержки процесса принятия решений (в отличие от интенсивно обновляемой базы данных для обработки транзакций), позволяет избежать избыточных операций обновления и сделать базу более понятной для запросов, которые в этом случае выполняются более эффективно, Тем не менее, недостаточно нормализованные данные встречаются гораздо чаше, чем избыточно нормализованные. Разумнее всего нормализовать структуру, а затем выборочно сделать определенные таблицы денормализованными.
После нормализации базы данных получаем следующие таблицы.[1]
Рис. 2.1. Таблицы базы данных «Путевки»
Основной единицей хранения данных в SQL Server является страница. В SQL Server 2000 размер страницы составляет 8 кб. Другими словами, в базах данных SQL Server 2000 содержится 128 страниц на 1 Мб.
В начале каждой страницы расположен 96-байтный заголовок, который используется для хранения системной информации, например типа страницы, размера свободного места на странице, а также идентификатора объекта, владеющего страницей.
Страницы содержат строки данных (кроме данных типа text, ntext и image, которые хранятся в отдельных страницах). Данные размещаются на странице последовательно и начинаются сразу же после заголовка. В конце страницы расположена таблица смещений строк. Она содержит по одному элементу для каждой строки, размещенной на границе; в каждом элементе записано, как далеко первый байт строки расположен от начала страницы. Как показано на рис. 2.2, последовательность элементов таблицы смещений строк является обратной относительно последовательности строк страницы.
Экстенты представляют собой единицу выделения памяти для таблиц и индексов. Размер экстента составляет восемь последовательных страниц, или 64 кб. Другими словами, в базах данных SQL Server 2000 приходится 16 экстентов на 1 Мб.[1]
Рис. 2.2.
Строки данных и элементы таблицы смешения
строк на странице
Для
повышения эффективности
Когда
размер таблицы или индекса
Рассмотрим необходимые таблицы:
Таблица для учета путевых листов (tputevki) | ||||
Pid | int, primary key | Уникальный номер путевки | 4 byte | |
Pdate | Datetime | Дата подачи заявки | 4 byte | |
Pcar | char(8) | Ссылка на машину | 9 byte | Связан с таблицей «Машины» |
Pmarshrut | ntext | Маршрут путевки | ~100 byte | |
Pcar_pricep | Nvarchar(8) | Номер прицепа | 9 byte | |
Pdriver | int | Табельный номер водителя | 4 byte | |
Pdrivers | int | Табельный номер второго водителя | 4 byte | Связан с таблицей «Водители» |
Pceh | int | Номер автоколонны | 4 byte | |
psmena | int | Смены | 4 byte | |
Размер одной строки = 142 byte, 1 страница=8192/142=57 строк |
Таблица для учета заявок (tzayvka) | ||||
ZN | int, primary key | Уникальный номер заявки | 4 byte | |
Zdate | datetime | На какую дату | 4 byte | |
zdate_set | Datetime | Дата подачи заявки | 4 byte | |
Zuser_id | int | Пользователь, подавший заявку | 4 byte | Связан с таблицей «Пользователи» |
Ztype_car | int | Тип машины | 4 byte | Связан с таблицей «Тип машин» |
Zmarshrut | ntext | Маршрут | ~100 byte | |
Zremake | ntext | Комментарий к заявке | ~100 byte | |
Zstatus | tinyint | Статус заявки | 1 byte | |
Размер одной строки = 221 byte, 1 страница = 8192/221=37 строк |
Таблица Водителей (tdriver) | ||||
driver_tn | Int, primary key | Табельный номер | 4 byte | Связан с таблицами «Путевки» и «Машины» |
driver_soname | Nvarchar(50) | Фамилия | 51 byte | |
driver_name | Nvarchar(50) | Имя | 51 byte | |
driver_fname | Nvarchar(50) | Отчество | 51 byte | |
driver_doljnost | Nvarchar(50) | Должность | 51 byte | |
driver_prava | Nvarchar(6) | № прав | 7 byte | |
driver_a | Bit | Категория A | 1 byte | |
driver_b | Bit | Категория B | 1 byte | |
driver_c | Bit | Категория C | 1 byte | |
driver_d | Bit | Категория D | 1 byte | |
driver_e | Bit | Категория E | 1 byte | |
Размер одной строки = 220 byte, 1 страница = 8192/220=37 строк |
Таблица Машины(TCar) | ||||
car_n | Char(8), primary key | Гос номер машины | 9 byte | Связан с таблицей «Путевки» |
car_ceh | Int | № автоколонны | 4 byte | |
car_driver | Int | Таб. № водителя (по умолчания) | 4 byte | Связан с таблицей «Водители» |
Car_name | Int | Марка машины | 4 byte | Связан с таблицей «Марка машины» |
Размер одной строки = 21 byte, 1 страница = 8192/21=390 строк |
Таблица марка машины (TCar_name) | ||||
Car_name_id | Int, primary key | Id Марки машины | 4 byte | Связан с таблицей «Машины» |
Car_type_id | Int | Тип машины | 4 byte | |
car_name_car | Nvarchar(50) | Марка машины | 51 byte | Связан с таблицей «Тип машины» |
Размер одной строки = 59 byte, 1 страница = 8192/59=138 строк |
Таблица тип машины (TCar_type) | ||||
Car_type_id | Int, primary key | Id тип машины | 4 byte | Связан с таблицами «Заявки» и «Марка машины» |
car_type | NVarchar(50) | Тип машины | 51 byte | |
Размер одной строки = 55 byte, 1 страница = 8192/55=148 строк |
Таблица Пользователи (TUser) | ||||
user_id | Int, primary key | Id пользователя | 4 byte | Связан с таблицей «Заявки» |
user_login | NVarchar(50) | Логин пользователя | 51 byte | |
user_pasw | char(16) | Хеш пароля пользователя | 16 byte | |
user_name | NVarchar(50) | Фамилия И.О. пользователя | 51 byte | |
user_type | tinyint | Тип доступа | 1 byte | |
user_ceh | Int | Цех пользователя | 4 byte | Связан с таблицей «Цеха» |
Размер одной строки = 128 byte, 1 страница = 8192/128=64 строки |