logo
Конспект лекций ИТС ПС

3.2.2 Проектирование базы данных

Проектирование структуры, т.е. определение входящих в запись полей, их типа, размера, вхождения в индексы, а также связей между базами, выполняется обычно один единствен­ный раз вначале (до заполнения). Возможно внесение изменений в структуру заполненной базы данных. Однако при этом следует учитывать, что вновь введенные поля окажутся незаполненными, информация из удаленных полей будет утеряна, а в измененных полях — трансформирована по имени или типу данных. Проекти­рование отдельных объектов, используемых для обслуживания базы (индексы, экранные формы, запросы, отчеты и т.д.), может выпол­няться и на заполненной базе: эти объекты не меняют структуру базы, а только используют ее.

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

В FoxPro термины "таблица" (или "таблица базы данных") и "база данных" означают одно и то же, так как FoxPro создает для каждой таблицы собственный файл. Другие системы управ­ления базами данных, например MS Access, объединяют не­сколько таблиц в одну базу данных: в таких системах следует различать эти термины.

Для создания новой таблицы следует выбрать директиву New из File-меню (Table/DBF). В появившемся диалоговом окне «Структура таблицы» необходимо указать:

- имена полей,

- типы полей,

- размеры полей,

- возможные индексы

Имя базы данных может содержать не более десяти символов и должно начинаться с буквы. В имени разрешено использовать малые латинские буквы от a до z, все цифры, а также символ подчеркивания "_", а при использовании русифицированной версии FoxPro, можно использовать и буквы русского алфавита.

Тип данных определяет, какие данные можно хранить в поле (числа, тексты и т.д.) и каков их предельный размер. В FoxPro предусмотрены следующие типы данных.

Текстовые поля (тип данных Character)

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

Числовые поля (тип данных Numeric)

содержат числа с фиксированной запятой, над которыми можно выполнять арифметические операции, сравнивать их и т.п. Речь идет, например, о ценах изделий.

Поля с плавающей запятой (тип данных Float)

содержат числовые значения переменной точности, т.е. числа с плавающим положением десятичной запятой.

Поля даты (тип данных Date) содержат данные о дате и времени.

Логические поля (тип данных Logical)

используются для хранения величин, которые могут принимать только одно из двух значений: "истина" или "ложь" (Yes/No).

Поля примечаний (тип данных Memo)

содержат длинные текстовые фрагменты, например, коммен­тарии или примечания. В отличие от текстовых полей длина полей примечаний практически не ограничена.

Поля объектов (тип данных General)

содержат объекты, связанные или встроенные посредством OLE (Object Linking and Embedding), например, иллюстрации или диаграммы.

При определении размера поля соблюдайте следующее правило: каждое поле должно быть настолько длинным, насколько это необходимо, и настолько коротким, насколько возможно. Слишком длинные поля неоправданно расходуют память; а слишком короткие не позволяют вместить требуемые сведения.

Пример: Предположим, что имеется база данных, в которой находятся адреса клиентов. Выбирая размер поля FirmaName (На­звание фирмы), следует всегда ориентироваться (если это воз­можно) на самое длинное название фирмы, которое вообще существует, чтобы даже это длинное название смогло уместиться целиком в поле и не оказалось обрезанным.

С другой стороны, следует следить за тем, чтобы не установить размер поля слишком большим. Если принять длину поля равной 80 символов, хотя самое длинное встречающееся имя содержит всего лишь 45 символов, то система будет резервировать для каждой записи на 35 байт больше, чем это действительно нужно.