Анализ существующей программы 62 Выбор платформы и программных средств 64 Разработка структуры новой бд 78

Вид материалаЛитература

Содержание


2.3 Разработка структуры новой БД
Таблица Клиенты является справочником, в котором хранится вся информация по клиентам фирмы. Идентификатор клиента
2.4 Перенос данных в новую базу данных
Подобный материал:
1   2   3   4   5   6   7   8   9   10

2.3 Разработка структуры новой БД


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

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


Таблица Клиенты является справочником, в котором хранится вся информация по клиентам фирмы. Идентификатор клиента является первичным (уникальным) ключом для таблицы. Альтернативным ключом является поле ИНН. По любому и этих ключей можно однозначно определить клиента. Второй справочной таблицей является таблица налогов "Налоги". Поле Идентификатор налога является ее первичным ключом. В этой таблице хранится информация, как по НДС, так и по Акцизному налогу.

Основной таблицей в базе данных является таблица Журнал счетов. В таблице хранится информация обо всех выданных/полученных счетах фактуры. В ней хранится только общая информация о счете. Поле Идентификатор счета является первичным колючем, а поле Идентификатор клиента является внешним колючем для этой таблицы. По внешнему ключу Идентификатор клиента можно однозначно определить поставщика/покупателя, и все его реквизиты, для данного счета. Дочерней таблицей для Журнала счетов является таблица Товары. В ней хранится информация о товарах для каждого счета. Идентификатор счета, являясь внешним ключом, является вместе с Номером позиции также первичным ключом, по которому можно однозначно определить параметры товара. Внешними ключами также являются НДС и Акцизный налог от таблицы Налоги.

Связи:

Клиенты – Журнал счетов. Эта связь не обязательная со стороны Клиентов и обязательная со стороны Журнала счетов. Это значит, что может существовать клиент, на которого еще не заведено ни одного счета-фактуры. С другой стороны не может существовать счета-фактуры, у которого нет ссылки на клиента или такой ссылки нет. При изменении записей в таблице Клиенты, автоматически изменяются Идентификаторы клиента в Журнале счетов. Удаление клиента, у которого уже существует счет-фактуры невозможно.

Налоги – Товары (НДС и Акциз). Эта связь не обязательная со стороны Налогов и необязательная со стороны Товаров. Это значит, что может существовать еще нигде не использованный налог, и может существовать товар, не облагаемый налогом. При изменении значений в таблице Налоги, автоматически изменяется значение в таблице Товаров. С другой стороны удаление какого-нибудь налога не ведет к удалению товара. Ссылка на налог устанавливается в значение NULL.

Журнал счетов – Товары. Таблица Товары является зависимой от таблицы Журнал счетов. Это значит, что не может существовать товара без счета-фактуры. В тоже время у одного счета-фактуры может существовать несколько товаров. При изменении в Журнале счетов автоматически изменяются записи в таблице Товары. При удалении счета-фактуры, удаляются все товары, связанные с этим счетом-фактуры.

2.4 Перенос данных в новую базу данных


К
ак уже отмечалось структура базы данных старой программы фирмы «ИНФИН» отличается древовидной структурой базы данных, а точнее расположением файлов базы данных. Приблизительная структура показана на рисунке.


Как легко заметить, новая структура базы данных намного легче в понимании и обращении с ней. Ветвистость директорий в базе данных «ИНФИН» никому не нужна. Но, к сожалению, данные из старой базы данных надо переносить. Перенос данных придется осуществлять последовательным перебором всех поддиректорий и выгрузкой данных в SQL сервер.

К сожалению, экспорт информации в Microsoft SQL Server из DBF файлов проводится, не может. Однако существует утилита командной строки DOS позволяющая осуществлять экспорт данных из текстового файла, сформированного определенным образом (формат файла для экспорта показан в приложении А). Поэтому следует проводить экспорт данных из DBF формата в SQL базу данных через промежуточный текстовый файл.




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


Экспорт данных в ТХТ формат


Файл формата таблицы создается единожды для данной таблицы.


При помощи утилиты командной строки


Формат DBF файлов осуществлялся при помощи утилиты для работы с файлами DBF формата – DBU.EXE. В основном, это ручное форматирование структуры файла, перенос данных, отчистка от пустых строк и т.д. Экспорт файла осуществлялся при помощи программы Excel. В Excel осуществлялся вторичный контроль над данными, заполнение незаполненных, но обязательных для заполнения в SQL, полей. Далее данные экспортировались в ТХТ файл с разделителями «;».

При помощи утилиты командной строки bcp.exe создавался fmt файл с форматом SQL таблицы. Это необходимо для дальнейшего экспорта данных. Файл формата таблицы создается единожды для данной таблицы.

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

Ручное форматирование и преобразование файлов достаточно длительный процесс. Поэтому был предложен альтернативный путь. Был произведен экспорт только справочника клиентов. А далее было предложено перейти на новую программу с нового года, и в новом году работать на новой программе, а в старом – на старой. Это еще обусловлено тем, что Центральный Банк с 1998 года ввел новый план счетов и, как следствие, у всех фирм поменялись реквизиты. Но все равно экспорт остальной информации был проведен в тестовом режиме.