Разработка базы данных для транспортного предприятия

Дипломная работа

база автопарк программный продукт

2) Будучи основанной на бесплатном коде, Firebird является полностью бесплатной и открытой СУБД, оставаясь при этом завершенным и регулярно обновляющимся программным продуктом с оперативной технической поддержкой;

3) Firebird является одной из наиболее простых и удобных СУБД в плане развертывания и администрирования;

4) Firebird обладает довольно низкими системными требованиями (сервер может функционировать даже на i386, 32Mb ОЗУ), минимальными размерами дистрибутива (~2Mb) и достаточно высокой производительностью, в том числе на больших объемах данных;

5) Многоверсионная архитектура Firebird позволяет читающим пользователям не мешать пишущим, что при большом числе запросов существенно экономит машинное время;

6) Сервер Firebird доступен в 3 вариантах: Classic, Super, Embedded, благодаря чему эта СУБД подходит под практически любую задачу, связанную с хранением данных. Classic Server и Super Server имеют клиент-серверную архитектуру.

Отличие Classic Server от Super Server заключается в том, что Classic создает процесс для каждого пользовательского соединения, а SuperServer — один процесс, который обрабатывает запросы клиентов в разных потоках этого же процесса. Архитектура Classic надежнее, но требует больше памяти, так как кэш данных и метаданных у каждого процесса (пользователя) свой. SuperServer — производительнее, имеет общий кэш данных и метаданных, но не распараллеливает запросы разных пользователей на многопроцессорных машинах. Для перезапуска процесса SuperServer вместе с ним запускается процесс Guardian, отслеживающий состояние процесса сервера.

Сервер реализованной системы основан на Firebird Super Server, что также позволяет ей естественным образом функционировать в распределенной среде. В данном случае на компьютере-сервере хранится база данных пользователей и заявок под управлением серверной части СУБД Firebird (Super Server), которая осуществляет обработку запросов от клиентов. Хранение заявок на сервере осуществляется ввиду необходимости закрытия или оформления заявки из любого территориально удаленного офиса.

Firebird Embedded Server начал выпускаться с версии 1.5, этот сервер представляет собой Firebird Super server, скомпилированный в виде библиотек DLL. Embedded идеален для однопользовательских приложений — в этом случае не требуется совершенно никаких настроек, и достаточно разместить библиотеки рядом с исполняемым файлом.

11 стр., 5216 слов

Проектирование базы данных «Автосервис»

... автослесарей, производящих работу. В курсовом проекте необходимо разработать программное обеспечение для пользователя, позволяющее автоматизировать обработку данных базы данных для автосервиса с использованием ... дизайнер классов и дизайнер схемы базы данных. Microsoft SQL Server -- система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый ...

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

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

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

Кроме того, Embedded обладает функциональностью обычной клиентской библиотеки (gds32. dll) — если соединение сетевое, то есть, с указанием имени сервера (srv: c: \dir\data. fdb), то библиотека выполняет функции обычной клиентской библиотеки. Если соединение локальное (c: \dir\data. gdb), то библиотека выполняет функции сервера. Для случая соединения вида «localhost: c: \dir\data. gdb» используется следующий алгоритм — производится попытка коннекта к процессу сервера, и если его на данной машине нет, то происходит соединение через Embedded.

Сервер Firebird EmbeddedServer версии 2.0.4 используется для управления локальными БД на рабочих местах, а также играет роль клиентской библиотеки при доступе к удаленной серверной БД пользователей и заявок. Кроме того, при помощи EmbeddedServer возможно эмулировать работу всей системы на одной машине.

Программный продукт получает доступ к СУБД посредством библиотеки прямого доступа IBX (Interbase Express), входящей в состав VCL Delphi. Применение библиотеки прямого доступа, которая использует интерфейс Interbase API (реализованный клиентской библиотекой gds32. dll), упрощает цепочку доступа к базе данных, в данном случае она состоит из двух звеньев: приложение-клиент (приложение + gds32. dll) и сервер управления БД.

В отличие от других средств доступа к БД, использующих промежуточные звенья между клиентом и сервером (BDE, ODBC, ADO, dbExpress), прямой доступ отличается повышенной производительностью и полной поддержкой всех особенностей данной СУБД.

Сетевой доступ к серверу осуществляется посредством протокола TCP/IP по сетевому имени сервера или его IP-адресу.

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

В первой ситуации Firebird EmbeddedServer можно не задействовать: его функции выполнит SuperServer.

Функционал IBX был расширен дополнительным открытым компонентом TIBUpdateSQLW, наследованным от TIBUpdateSQL. Компонент TIBUpdateSQL предназначен для выполнения SQL-запросов на Insert, Update, Refresh и Delete и подключается к TIBQuery, который и вызывает непосредственно соответствующие методы. В данном для такой связки приходится использовать пишущую транзакцию (с параметрами read_committed, rec_version, nowait).

Но с учетом архитектурных особенностей Interbase\Firebird это нежелательно: схема взаимодействия транзакций в этих СУБД такова, что заинтересованная транзакция, которой и является пишущая транзакция в неподтвержденном состоянии (non-committed), удерживает версии записей для всех данных, которые были прочитаны или изменены в контексте данной транзакции. Эти записи могут устареть («мусорные» записи), но удержание не позволяет сборщику мусора (sweeper) их удалить, что при большой продолжительности транзакции влечет накопление мусора в базе данных. Как следствие, со временем падает производительность при обращении к данным.

Более того, в случае скопления слишком большого количества мусорных записей, сборщику мусора может не хватить времени для их удаления даже в периодах простоя СУБД,

что в будущем может привести к непредсказуемым последствиям и вылиться в нестабильность работы СУБД. По этой же причине крайне не рекомендуется использовать для доступа к БД Interbase/Firebird библиотеки BDE, где возможна только одна транзакция на соединение. Компонент IBUpdateSQLW имеет дополнительное свойство UpdateTransaction и позволяет использовать отдельную транзакцию для запросов, изменяющих данные.

Это дает возможность производить чтение данных (в частности, держать открытыми продолжительные запросы, только читающие данные), через «читающую» транзакцию с параметрами read, read_committed, rec_version, которая стартует на сервере сразу же в состоянии commited. Изменения же данных можно производить кратковременными запросами через пишущую транзакцию.

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

Для разработки баз данных была применена утилита администрирования для СУБД Interbase/Firebird/Yaffil HK-Software IBExpert — наиболее мощный и функциональный программный пакет из существующих. IBExpert включает средства визуального проектирования БД, автоматизированного составления сложных SQL-запросов, поддерживает подсветку синтаксиса DDL, имеет функции управления пользователями и ролями и обладает множеством других возможностей для эффективной разработки и администрирования баз данных Firebird. IBExpert полностью бесплатен для жителей России и СНГ.

Наименование статьи

Сметная себестоимость, руб.

Удельный вес, %

Основная заработная плата

14454,55

72,97

Дополнительная заработная плата

2890,91

14,59

Отчисления на соцстрахование

2463,06

12,44

Итого

19808,52

100

Нормативная прибыль.

На основе полученных данных рассчитаем цену программной продукции по формуле 1.1 (смотрите выше):

;

руб

Нормативная прибыль рассчитывается по формуле 1.2 (смотрите выше).

Так как материальные затраты на разработку программной продукции , то нормативная прибыль будет равна:

;

;

  • руб;
  • R= (Пр/Ц) *100%;
  • R= (4952,13/19808,53) *100%=25%.