Представление данных


         FoxPro хранит данные в таблицах, но есть еще один дополнительный слой хранения информации — база данных, или контейнер баз данных: здесь хранится информация о самих таблицах, индексах, отношениях, триггерах и другая. Сначала мы обратимся к таблицам, а затем разберем, как они связываются воедино в базе данных.

        Основные способы хранения информации:

а) DBF-файлы

  • число записей в файле - до 1 млрд.;
  • размер записи - 4000 байт.;
  • число полей в записи - до 255.
Структура DBF-файла:

FoxPro хранит данные примерно так, как они хранятся в электронных таблицах. Каждый столбец представляет один элемент данных, например: имя, адрес, номер телефона. Каждая строка — запись — включает по ОДНОМУ элементу из всех столбцов. Например, если запись 1 включает адрес, телефон и название фирмы XYZ. то запись 2 будет содержать такую же информацию по фирме АВС. В одной таблице не может быть записей с различной структурой. Несмотря на кажущуюся простоту, принцип «все записи имеют одинаковую структуру» является одним из базовых в понимании механизмов работы систем обработки данных.

        Каждая таблица имеет уникальное имя и хранится в отдельном файле, имя которого совпадает с именем таблицы. Ясно, что принципы именования таблиц определяются используемой оперативной системой. Такие файлы стандартно имеют расширение DBF (data base file).
        Информация о полях таблицы записывается в заголовке DBF-файла. В начале заголовка размещается информация о количестве записей в таблице, о величине заголовка и т. п.
        Простота структуры DBF-файла в значительной степени определила популярность языков xBASE. Коль скоро заголовок файла содержит описание самого файла, программа, работающая с этим файлом, не нуждается в какой-либо дополнительной информации. При работе с большинством других языков нужно описывать структуру таблиц внутри самой программы и при изменении структуры выполнять новую компиляцию. Это означает, что Вы должны знать структуру Ваших данных. Собственно говоря, это верно и для xBASE, но не настолько явно. Более того, для FoxPro совершенно не важно, если Вы поменяете, скажем, длину поля. Ваши программы будут работать, лишь бы имена полей остались прежними.

        Каждая создаваемая таблица может иметь связанные с ней индексы, а также файлы, содержащие значения полей типа MEMO и GENERAL (эти файлы всегда связаны с таблицей, для которой созданы). Имена файлов, содержащих связанные с таблицей объекты, совпадают с именем таблицы.

b) FPT-файлы: хранение memo - полей для БД.

c) В памяти и mem-файлах:

  • переменные (до 2 Гбайт)
  • массивы (двумерные)
d) В памяти и PRG-файлах: константы.
 
        Таблицы FoxPro состоят из записей, каждая из которых в свою очередь включает одно или больше полей. Каждое поле имеет имя.
        В FoxPro имена полей и переменных могут иметь длину до 10 символов, В Visual FoxPro они намного длиннее - до 254 символов. Имена полей не могут включать пробелы.
        Имена полей также не могут начинаться с цифры и включать специальные символы, кроме символов подчеркивания.