IV. РАЗРАБОТКА СТРУКТУРЫ ТАБЛИЦЫ

Таблицы - основные строительные блоки системы Paradox: все действия, которые производятся в Paradox, каким-либо образом связаны с таблицами.

Ниже будут рассмотрены вопросы, связанные с разработкой и изменением структуры Paradox- и dBASE-таблиц.

1. РАЗРАБОТКА ТАБЛИЦ

Первым шагом разработки таблицы является продумывание ее структуры. Пользователь решает, какую информацию будет таблица содержать и в каком порядке она должна располагаться. При разработке таблиц следует :

- избегать повторения полей. Это обеспечивает более гибкое хранение данных и простой доступ к ним. В этом состоит отличие разработки таблиц базы данных от организации данных в системах электронных таблиц.

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

- использовать небольшие базы данных. Если нужно организовать базу данных под большой объем информации, то обычно, лучше разместить ее в несколько небольших взаимосвязанных таблиц, чем в одну всеобъемлющую.

- определять необходимый тип таблиц.

2. СОЗДАНИЕ ТАБЛИЦ

Для создания новой таблицы нужно выбрать пункт меню Fi le|New|Table или щелкнуть правой клавишей мыши кнопку Open Table, находящуюся на SpeedBar. Paradox выведет на экран диалоговое окно Table Type.

Paradox поддерживает следующие форматы файлов:

     - Paradox for Windows;
- Paradox;
- dBASE IV;
- dBASE III+.

Любой из этих форматов можно выбрать, указав на него мышью.

При открытии таблицы типа Paradox на фоне диалогового окна Create Table появится следующая структура:

  ---T--------Field Name-------TType-T-Syze-TKey¬
1¦ ¦ ¦ ¦ ¦

Диалоговое окно Create Table служит для:

- ввода имен полей таблицы;
- определение типа и размера поля.

Кроме этого, можно:

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

Пример. Создание Paradox-таблицы

Для создания Paradox-таблицы нужно:

- ввести имя первого поля в колонке Field Name перечня полей;
- указать тип поля, переместившись с помощью клавиатуры или мышью в колонку Type;
- переместится в колонку Size и ввести желаемый размер поля (если это необходимо);
- переместится на вторую строку перечня полей и повторить проделанные операции для остальных полей;
- нажать мышью кнопку Save As для сохранения таблицы и выбора ее имени.

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

Имена полей вводятся в колонку Field Name перечня по лей. Требования к именам полей:

- максимальная длина имени поля составляет 25 символов;
- имя не должно начинаться с символа пробела;
- каждое поле в таблице должно иметь уникальное имя.

Нельзя сделать имя уникальным:

- добавлением пробелов в конце имени;
- изменением верхнего и нижнего регистров букв;
- имя поля не должно содержать следующие символы:
- { }, [ ], ( );
- комбинацию ->;
- один символ #.

3. ОПЕРАЦИИ НАД ТАБЛИЦАМИ

3.1. ОБЩИЕ ОПЕРАЦИИ

Функции в меню Paradox позволяют пользователю осуществлять широкий комплекс операций и различных действий над таблицами. Они всесторонне охватывают все этапы создания и использования таблиц, предоставляют возможность реализовать все замечания, возникшие в процессе их использования, как по содержимому таблицы, так и по ее структуре.

Операции, связанные с таблицами:

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

Некоторые операции подробнее описаны ниже.

3.2. КЛЮЧЕВЫЕ ПОЛЯ

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

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

3.2.1. Определение ключевых полей

При определении ключевых полей следует учитывать следующие ограничения:

- таблица может иметь только один ключ, состоящий из одного или нескольких полей;

- ключевые поля таблицы должны быть первыми в перечнеполей;

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

Чтобы определить поле как ключевое (или снять ключ с поля), надо переместится в колонку Key перечня полей и про извести двойной щелчок мышью или нажать любую клавишу.

3.3. ЗАИМСТВОВАНИЕ ГОТОВОЙ СТРУКТУРЫ ТАБЛИЦЫ

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

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

3.4. КОНТРОЛЬ КОРРЕКТНОСТИ ДАННЫХ

Контроль значений - это условия, которым должны удовлетворять вводимые в поля данные.

    --------------T---------------------------------------¬
¦ Тип контроля¦ Значение ¦
+-------------+---------------------------------------+
¦ Required ¦ Это поле каждой записи таблицы должно¦
¦ field ¦ содержать не пустое значение ¦
+-------------+---------------------------------------+
¦ Minimum ¦ Значения, вводимые в данное поле,¦
¦ ¦ должны быть не меньше указанной вели-¦
¦ ¦ чины ¦ +-------------+---------------------------------------+
¦ Maximun ¦ Значения, вводимые в данное поле,¦
¦ ¦ должны быть не больше указанной вели-¦
¦ ¦ чины ¦ +-------------+---------------------------------------+
¦ Default ¦ Указываемая величина автоматически за-¦
¦ ¦ носится в поле. ¦ +-------------+---------------------------------------+
¦ Picture ¦ Пользователь определяет строку симво-¦
¦ ¦ лов, которая работает как шаблон для¦
¦ ¦ вводимых данных ¦
L-------------+----------------------------------------

3.5. ЗАДАНИЕ ТАБЛИЦЫ-СПРАВОЧНИКА

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

- заставляет вводить те значения6 которые уже существуют в первом поле таблицы-справочника;

- позволяет найти и автоматически скопировать данные из таблицы-справочника.

Таблицы-справочники используются, в основном, при вводе данных. В отличие от системы ссылок, этот режим не отслеживает и не контролирует изменения, которые вносятся в таблицу-справочник. Использование справочника обеспечивает безошибочное копирование из одной таблицы в другую, в то время, как система ссылок сохраняет неразрывность связей между данными в различных таблицах.

3.6. ОПРЕДЕЛЕНИЕ ВТОРИЧНЫХ ИНДЕКСОВ

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

- производить быстрый поиск значений в определенных полях;

- иметь возможность другого порядка просмотра таблицы;

- связывать таблицы.

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

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

Примером использования вторичного индекса может служить задача связывания таблиц "Клиент" и "Заказы" таким образом, чтобы были видны заказы каждого клиента. Таблица "Заказы" имеет вторичный индекс, связанный с полем "Номер клиента".

Это означает, что Paradox может быстро найти все записи с данным значением номера клиента. Когда связываются таблицы, Paradox для каждого значения "Номер клиента" в таблице "Клиент" находит и показывает все совпадающие значения "Но мер клиента" в таблице "Заказы". Используя такую связь, можно создать форму, содержащую все заказы, сделанные каждым клиентом.

Таблица может иметь несколько вторичных индексов. Можно создавать составные вторичные индексы, объединяя два и более полей. Количество сложных вторичных индексов может достигать 16, а максимальное количество простых вторичных индексов равно количеству полей в таблице.

3.7. ОПРЕДЕЛЕНИЕ СИСТЕМЫ ССЫЛОК МЕЖДУ ТАБЛИЦАМИИ

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

  -----------------T------T-------¬
  ¦ Номер клиента  ¦ Имя  ¦ Город ¦     Клиент
  L----------------+------+--------

  -------------T-------------T-------¬
  ¦Номер заказа¦Номер клиента¦ Имя   ¦    Заказы
  L------------+-------------+--------

Paradox запрещает вводить значение поля "Номер клиента" в таблице "Заказы", которое не соответствует какому-либо существующему значению этого поля в таблице "Клиент".

Возможность задать систему ссылок существует только между однотипными полями. Также, система ссылок может быть установлена только между таблицами одного каталога. Если система ссылок определена для таблицы, уже содержащей данные, то все данные из дочерней таблицы, которые не соответствуют данным в материнской, будут помещены во временную таблицу Keyviol.

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

- Cascade: Все изменения значений ключа материнской таблицы автоматически происходят и в дочерней таблице. Этот способ определен по умолчанию. При этом Pa radox блокирует как материнскую, так все ее дочерние записи. Если блокировка отвергается (уже заблокировано другим пользователем), Paradox не в состоянии про извести обновление;

- Prohibit: Этот способ не позволяет изменить значение ключа материнской таблицы, если в дочерней таблице имеются записи, соответствующие этому значению. Например, если в поле "Номер клиента" таблицы "Заказы" имеется значение 350, Paradox запретит менять это значение в таблице "Клиент". А если ни в одной записи дочерней таблице это значение не встречается, Paradox разрешает изменения в материнской таблице.

Paradox for Windows - первая Paradox, полностью использующая возможности системы ссылок. Но Paradox имеет опции, которые позволяют контролировать работу ранних версий Paradox с таблицами, для которых определена система ссылок.

Также Paradox предоставляет возможность создать систему ссылок для таблицы так, что одно поле будет ссылаться на поле ключа этой же таблицы. Например, имеется таблица со списком служащих. Ключевое поле для нее - "Идентификатор служащего". Имеется также поле "Руководители". Поскольку руководители - тоже служащие, можно создать такую систему ссылок, чтобы данные вводимые в поле "Руководители", записывались и в поле "Идентификатор служащего". Но при этом нельзя задавать систему ссылок с полем, ссылающимся само на себя.