Смекни!
smekni.com

Совершенствование информационной системы товарооборота ООО Уралэнергоцентр с помощью разработки (стр. 6 из 11)

Таблица 2

Фирмы

Имя поля Назначение
Firm ID Первичный ключ
FName ООО «Трионика»
FAdress Ул. Ленина 28
FCity Екатеринбург
FPhone Тел: 8 (343) 210-10-10
FE-mail Trionika.@.ru
FPerson Иванов Иван Иванович
FFinDelta Финальное сальдо
FCngDelta Обменное сальдо
FCoeff Скидка 10%
FRetDays 60 дней

В таблице TOVAR разместим полные сведения о каждом виде товара, хотя бы раз купленного у какого либо поставщика или полученного по обмену от другого оптового поставщика (практика обмена товара между оптовыми поставщиками широко распространена за товар, полученный или переданный по обмену, не осуществляются платежи).

Таблица 3

Товар

Имя поля Назначение
TovarID Первичный ключ
TName Паровой котел
TMade BoosterCoLTD
TYear 2006
TNumber 5
TQuan 5
TPrise 70 000
TOpt 77 000
TRozn 85 000

В таблице NAKLS будет предназначена для хранения сведений о накладных. В ней будут поля, в которых система управления базами данных поместит дату отгрузки или получения товара, тип накладной (на покупку или продажу, с предоплатой или в рассрочку, с возвратом ранее проданного/купленного товара или передачей его по обмену), наименование партнера, общую сумму накладной.


Таблица 4

Накладные

Имя поля Назначение
NaklID Первичный ключ
NDate 10.01.2007
NRetDate 2 месяца
NType Тип накладной:0- покупка у поставщика;1- продажа покупателю;2- возврат поставщику;3- возврат от покупателя;4- товар, получаемый по обмену;5- товар передается по обмену;6- покупка с предоплатой;7- продажа с предоплатой.
NFirm Уникальный код партнера
NCoeff Скидка/наценка (10%)
NSum Сумма накладной (100 000)
NPayedSum Оплачиваемая сумма (50 000)
NRetSum Сумма возврата (0)

Возникает вопрос: каким образом система управления базами данных будет хранить сведенья о получаемого или передаваемого по накладной товара? Ведь их состав и количество могут быть какими угодно: если осуществляется покупка оборудования у поставщика, в накладной обычно указывается лишь одно – два наименования, которые покупаются крупными партиями; если оборудование покупает магазин, он может закупить до сотни наименований не большими партиями; не исключена и розничная продажа одного единственного наименования товара покупателю. Ясно, что в таблице NAKLS, как и в любой другой таблице базы данных, не может быть переменного количества полей, поэтому сведения о связанном с накладн6ой товаре будут храниться в отдельной таблице MOVETOVAR: в ее полях укажем ссылку на соответствующую накладную, наименование и количество переданного – полученного оборудования.


Таблица5

Передвижение товара

Имя поля Назначение
MoveID Первичный ключ
MNakl Код накладной
MTovar Код товара
MQuan 5
MPrise 77 000 т.р.

Наконец, в таблицу PAYMENTS поместим сведения о платежах: кто, кому и сколько платит.

Таблица 6

Сведения о платежах

Имя поля Назначение
PayID Первичный ключ
PFirm Код партнера
POut Направление платежаTrue – партнеруFalse – от партнера
PDate 10.01.2007
PSum 77 000 т.р.

Таким образом, таблица NAKLS будет центральной. Она должна иметь уникальное поле, которое будет однозначно определять каждую накладную. В дальнейшем, поэтому полю, мы создадим первичный ключ, что бы система управления базами данных могла быстро найти нужную накладную. Каждой записи в NAKLS будут соответствовать произвольное количество записей в таблице MOVETOVAR (такая связь в терминологии баз данных называется связью один ко многим). В этой таблице ссылка на главную таблицу NAKLS определяется тем, что одно из ее полей будут содержать уникальный идентификатор накладной. По этому полю следует создать индекс, чтобы система управления базами данных смогла быстро отыскать весь товар, связанной с той или иной накладной. В таблице NAKLSбудет также ссылка уникальный идентификатор партнера из таблицы FIRMS, в таблице MOVETOVAR – ссылка на уникальный идентификатор переданного – полученного товара (две последние связи называются связью один к одному). Таблица PAYMENTS имеет единственную связь с таблицей FIRMS. Однако при появление очередной записи в ней должны соответствующим образом измениться суммы платежей в таблице NAKLS и сольдо в таблицы FIRMS.

Перед созданием базы данных, на компьютере должен быть развернут и запущен сервер InterBase версии 6.0 или 7.0.

Поставляемый с Delphi сервер баз данных InterBase завоевал себе прочную репутацию как один из самых надежных и неприхотливых серверов. Высокая производительность, развитый механизм транзакций, возможность использования внешних функций – вот далеко не полный перечень его достоинств.

Вместе с тем у сервера InterBase есть серьезный недостаток. Он не оптимизирует страницы дисковой памяти, выделяемые для размещения записей, а по завершении транзакций не удаляет ее, а лишь помечает как удаленную. С течением времени (по умолчанию – через каждые 10000 транзакций) сервер автоматически убирает накопившийся «мусор» и перестраивает индексы, но до этого времени «дырчатая» структура памяти и не перестроенные индексы могут сильно снижать производительность сервера при работе с «грязной» базой данных, в особенности, если в ней используются громоздкие таблицы, содержащие сотни тысяч и миллионы записей. Мне известен реальный промышленный проект, в котором этот недостаток после нескольких лет эксплуатации системы управления базой данных послужил причиной ее радикальной перестройки с заменой сервера.

В Delphi 6 и 7 включены компоненты, позволяющие осуществлять программное администрирование сервера InterBase версии 6.0 и выше. В том числе – осуществлять резервное копирование базы данных и ее восстановление из копии. Процедура архивации / восстановления самым благоприятным образом сказывается на производительности базы данных, так как удаляет «дырки» и перестраивает индексы. До недавнего времени эта операция, которую рекомендуется проводить хотя бы еженедельно (желательно каждый день), выполнялась опытным сотрудником (администратором сервера) с помощью специальных утилит. Если система управления баз данных сделана на заказ для небольших фирм, руководство таких фирм обычно не может позволить содержать в штате администратора сервера, так что периодичность процедуры «чистки» базы данных в этом случае растягивается на многие недели и месяцы, а производительность сервера при работе с ней постепенно становится удручающе низкой.

Программа IBConsole предназначена для управления сервером InterBase и является его консолью. Консоль устанавливается совместно с сервером InterBase, и находиться в его каталоге BIN, его главный файл называется IBConsole.exe. Программу так же можно запустить через меню Пуск Windows, выбрав команду программы \ InterBase\ IBConsole.

Для запуска и остановки сервера служит программа InterBaseServerManager, функциональность которой начинается с версии Delphi 6, значительно уменьшилась.

Программа IBConsole обеспечивает:

· Управление локальными и удаленными серверами;

· Управление базами данных;

· Интерактивное управление SQL запросов.

Основную часть окна IBConsole занимают две панели. В левой панели в виде дерева представлены зарегистрированные серверы и их базы данных, а также элементы структуры, например, таблицы или пользователи. Отметим, что в качестве имени сервера или базы данных отображается его псевдоним, задаваемый при регистрации сервера или базы данных. В правой панели выводиться информация об объекте, выбранном в левой панели.

Управление сервером заключается:

· Регистрации сервера;

· Подключении сервера;

· Просмотре протокола работы;

· Управлении сертификатами;

· Определении пользователей.

Для управления сервером используются команды меню Server главного окна программы IBConsole, а также команды контекстного меню сервера и его элементов.

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

Подключение к серверу, выбранному в левой панели, выполняется командой Login. При этом появляется окно ServerLogin, в котором необходимо указать имя пользователя (UserName) и его пароль (Password). После указания имени SYSBDA системного администратора, его пароля masterkey и нажатие кнопки Login осуществляется подключение к серверу, имя (alias) которого отображается в надписи Server, а к значку сервера добавляется зеленая галочка.

Отключение от выбранного сервера выполняется командой Logout. При этом выдается запрос на продолжение операций и в случае подтверждения сервер отключается.

После подключения к серверу можно выполнить проверку подключения к одной из его баз данных. Командой DiagnoseConnection открывается окно проверки соединения CommunicationDiagnostics, в котором указывается информация о сервере. В качестве баз данных задается ее файл, который можно выбрать в окне Open, открывается с помощью нажатия кнопки с тремя точками.

Кнопка Test инициирует проверку, результаты которой выводятся в поле Results.

На страницах TCP/ IP, NetBEUI, SPX можно выполнить настройку соответствующего сетевого протокола.

Для регистрации в консоли нового сервера необходимо выполнить команду Register, после чего открывается окно регистрации и соединение с сервером RegisterServerandConnect.

При регистрации локального сервера устанавливается переключатель LocalServer. При необходимости в поле описания (Description) можно ввести краткую информацию, поясняющую назначения и особенности сервера. После нажатия кнопки OK локальный сервер регистрируется, а его имя добавляется к списку левой панели.