Сервер, как правило, обладает существенно большей вычислительной мощностью, чем клиенты, перенос "интеллекта" с клиента на сервер повышает быстродействие системы. Кроме того, система проще масштабируется – легче и дешевле заменить сервер на более мощный, чем десятки рабочих станций. Но самое главное, что система становится более устойчивой и более защищенной. При доступе к базам InterBase всегда происходит авторизация пользователя, а поскольку пароли хранятся в специальной базе данных InterBase, взломать ее снаружи чрезвычайно трудно. Кроме того, триггеры, сигнализаторы событий, процедуры, UDF (определяемые пользователем функции), механизмы поддержки целостности данных и разграничения доступа в InterBase хранятся непосредственно в базе данных и работают независимо от способа доступа к данным (из приложения, из ISQL).
Способность быстро обрабатывать большое количество различных запросов — безусловно, одна из важнейших характеристик InterBase.
Наиболее эффективным средством при создании приложений клиент/сервер в VisualFoxPro является совместное использование удаленных представлений и сквозных запросов. Так как удаленные представления создаются очень просто и поддерживают возможность добавления и модификации данных, их используют для редактирования и выборки данных. Для выполнения специфических задач управления данными на сервере базы данных, таких как создание таблиц, хранимых процедур и их выполнение, используются сквозные запросы.
Мировая практика показывает, что скоростные качества различных типов серверов отличаются не слишком значительно — гораздо большее значение приобретает правильное построение структуры базы данных, поскольку в зависимости от структуры можно получить разницу во времени выполнения запросов на порядки, тогда как разница во времени выполнения по аналогичным запросам на разных SQL-серверах составляет не более десятков процентов.
Кроме того, скорость работы СУБД реально может зависеть от некоторых принципиальных моментов. Так, в частности, InterBase обладает значительными преимуществами в случае реализации информационных систем, где больший процент составляют запросы на чтение информации (например, запросы на составление отчетов по всей базе данных). Механизм множественного поколения записей, позволяет производить длинные запросы в реальном времени при полном отсутствии блокировок. Для конкретной системы это означает отсутствие каких-либо проблем при длительных запросах, сделанных одновременно с различных клиентских мест. Более того, этот механизм позволяет проводить моментальный снимок (snapshot) всей базы данных, даже если выполнение такого запроса занимает значительное количество времени.
Как уже упоминалось, InterBase, в отличие от многих других SQL-серверов, пакует хранимые данные. Это означает, в частности, что реальные размеры файла базы данных могут оказаться в несколько раз меньше, чем при использовании других SQL-серверов.
Для создания приложений, взаимодействующих с базами данных InterBase, можно выбрать различные средства разработки в зависимости от реализуемой задачи. Для разработки клиентского приложения с использованием InterBase в данном проекте применяется СУБД Microsoft Visual FoxPro 5.0.
Использование персональных СУБД позволяет не только эффективно организовать работу с бизнес - правилами, но и поддержать независимую работу клиентского приложения за счет наличия собственных форматов хранения данных.
Доступ к серверу баз данных InterBase осуществляется через ODBC драйверы. Как правило, разработчики используют данные средства для ознакомления с технологией «клиент/сервер», поскольку языковые возможности этих инструментов для работы с серверами баз данных ограничены и поддерживают язык SQL в качестве дополнительных возможностей, интегрированных в язык самой среды разработки. Это позволяет разработчикам использовать привычные языковые конструкции при написании приложений, постепенно изучая и внедряя в процесс разработки язык запросов SQL.
Чтобы БД адекватно отражала предметную область необходимо хорошо представлять все нюансы предметной области и уметь это отобразить в БД. Перед проектированием надо хорошо разобраться, как функционирует предметная область (см. выше). Описание предметной области можно сделать естественным путем и неоднозначно, поэтому применяют формализованные средства. Чтобы спроектировать структуру БД необходима информация о предметной области, которая не зависит от СУБД, которая будет использоваться.
Спроектировать логические структуры БД это значит:
1) определить все информационные единицы, тип, характеристики, длину поля;
2) определить связи между ними;
3) задать их имена.
Все данные об основных средствах целесообразно представить в виде нескольких таблиц. При этом существует разделение информации на следующие типы:
1) основная информация для ведения учета основных средств;
2) справочная информация;
3) вспомогательная информация, предназначенная для составления необходимых отчетов.
Для каждой группы информации создается собственная структура данных. При описании таких структур приняты следующие обозначения типов данных:
С - символьные поля, N - числовые поля D - поля дат.
Для хранения основной информации для учета основных средств создана БД OSI и с ее помощью эффективно реализуется часть функций учета.
В справочниках (табл. 2.2 - 2.10) хранится та информация, которая является условно-постоянной: данные о группах ОС, нормах износа, подразделениях и т.п.
Справочники
Таблица 2.2 Структура данных справочника счетов SCHET.dbf
| Название полей | Тип данных | Количество символов | Назначение полей | 
| 1 | 2 | 3 | 4 | 
| NUM_CSHET | C | 3 | Номер счета | 
| NAME | C | 80 | Наименование счета | 
| TYPE | C | 4 | Тип счета | 
| OSTATOK | C | 5 | Тип сальдо | 
| ANALITIC | C | 1 | Аналитический счет | 
Таблица 2.3 Структура данных справочника материально-ответственных лиц SPRMOL.dbf
| Название полей | Тип данных | Количество символов | Назначение полей | 
| 1 | 2 | 3 | 4 | 
| TAB_NUM | C | 5 | Табельный номер | 
| SURNAME | C | 15 | Фамилия | 
| FIRST_NAME | C | 12 | Имя | 
| SCND_NAME | C | 15 | Отчество | 
| KOD_PODR | C | 3 | Код подразделения | 
| TELEFON | С | 10 | Телефон | 
| NAIM_PODR | С | 25 | Наименование подразделения | 
Таблица 2.4 Структура данных справочника подразделений SPR_PODR.dbf
| Название полей | Тип данных | Количество символов | Назначение полей | 
| 1 | 2 | 3 | 4 | 
| KOD_PODR | C | 3 | Код подразделения | 
| КОD_MAIN | С | 3 | Основной код | 
| NAME | С | 20 | Наименование подразделения | 
Таблица 2.5 Структура данных справочника групп ОС SPR_GR_OS.dbf
| Название полей | Тип данных | Количество символов | Назначение полей | 
| 1 | 2 | 3 | 4 | 
| KOD | N | 3.0 | Код подразделения | 
| NAME | С | 80 | Наименование | 
Таблица 2.6 Структура данных справочника норм износа SPR_NORM_IZN.dbf
| Название полей | Тип данных | Количество символов | Назначение полей | 
| 1 | 2 | 3 | 4 | 
| SHIFR_NACH_IZN | N | 5 | Шифр нормы | 
| NAME | С | 80 | Название нормы | 
| N | N | 4.1 | Годовая норма износа для ОС | 
Таблица 2.7 Структура данных справочника видов операций spr_v_op.dbf
| Название полей | Тип данных | Количество символов | Назначение полей | 
| 1 | 2 | 3 | 4 | 
| ID | N | 1 | Код операции | 
| NAME | C | 20 | Наименование операции | 
Таблица 2.8 Структура данных БД OSI .dbf
| Название полей | Тип данных | Количество символов | Назначение полей | 
| 1 | 2 | 3 | 4 | 
| TAB_NUM | C | 5 | Табельный номер | 
| SURNAME | C | 15 | Фамилия | 
| FIRST_NAME | C | 12 | Имя | 
| SCND_NAME | C | 15 | Отчество | 
| KOD_PODR | C | 3 | Код подразделения | 
| TELEFON | С | 10 | Телефон | 
| NAIM_PODR | С | 25 | Наименование подразделения | 
| IN К | N | 6,0 | Номер инвентарной карточки | 
| IN 0 | N | 6,0 | Инвентарный № объекта | 
| NAME | С | 23,0 | Наименование объекта | 
| DATE IN | D | 8,0 | Дата приобретения объекта | 
| DATE V | D | 8,0 | Дата ввода в эксплуатацию | 
| JARVIP | С | 4,0 | Дата выпуска объекта | 
| DATE PER | D | 8,0 | Дата перемещения | 
| DATES | D | 8,0 | Дата списания | 
| АКТ IN | С | 4,0 | № акта приобретения | 
| АКТ V | С | 4,0 | № акта ввода в эксплуатацию | 
| АКТ PER | С | 4,0 | Ns акта перемещения | 
| АКТ S | С | 4,0 | № акта списания | 
| KOL | N | 6,0 | Количество | 
| BALS | N | 10,2 | Балансовая стоимость | 
| OST STOIM | N | 10.2 | Остаточная стоимость | 
| IZNOSP | N | 10,2 | Износ на момент поступления ОС | 
| SHIFR NACH IZN | N | 5,0 | Код начисления износа | 
| NACH IZNOS | N | 10,2 | Начисленный износ | 
| GNORMAIZ | N | 4,1 | Годовая норма износа | 
| KODPODR1 | С | 3.0 | Код подразделения старый (на момент поступления) | 
| KODPODR2 | С | 3,0 | Код подразделения новый (на момент перемещения) | 
| STATUS | С | 15,0 | Статус ОС | 
| GRUPPA | N | 3.0 | Группа ОС | 
| VID OS | N | 1.0 | ВидОС | 
| TAB N MOL | С | 5,0 | Табельный номер МОЛ | 
| DEBIZN | С | 3,0 | Дебет начисления износа | 
| KRED IZN | С | 3,0 | Кредит начисления износа | 
| DEBVVOD | С | 3,0 | Дебет на ввод | 
| KRED VVOD | С | 3,0 | Кредит на ввод | 
| DEB SPIS | С | 3,0 | Дебет списания | 
| KREDSPIS | С | 3,0 | Кредит списания | 
| AN VVOD | С | 3,0 | Аналитика на ввод | 
| AN SPIS | С | 3,0 | Аналитика на списание | 
| AN IZN | С | 3,0 | Аналитика на износ | 
Таблица 2.9 Структура данных БД Book .dbf