Инструментальная Система Управления Базами Данных руководство пользователя

Вид материалаРуководство пользователя

Содержание


4.3. Закладка «Список полей»
Допустимые значения поля
Номер поля
Название поля
Длина поля
Номер в записи
Словарная база
Статус поля
Замена значения
Поиск на вводе
Замена непустого значения
Использование статуса «Корневая связь».
Связное поле
Связанные базы
Подобный материал:
1   ...   6   7   8   9   10   11   12   13   ...   53

4.3. Закладка «Список полей»


Одним из важнейших свойств базы является состав полей (т.е. ее структура). Для описания полей, входящих в базу, предназначена закладка «Список полей» (см. Рис. 4.3).

Эта закладка состоит из двух частей: самого списка полей и кнопочной панели, которая расположена в правой части окна. Список полей, входящих в базу, состоит из 7 столбцов. Описание каждого поля занимает одну строку в этом списке. Первая строка зарезервирована для поля «Системный номер». Как уже отмечалось в главе 1, оно предназначено для внутренней нумерации записей в базе. Системный номер присваивается записи автоматически, и коррекции или удалению пользователем не подлежит. Кроме того, коррекции не подлежит поле «Уровень доступа», которое появляется в списке полей после того, как установлен флажок «Есть поле уровня доступа» в закладку «Основные свойства» (см. Рис. 4.2).



Рис. 4.3. Закладка «Список полей» окна диалога «Свойства базы».

На кнопочной панели находятся кнопки «Новое», «Свойства», «Удалить» и «Восстановить». А также кнопки и , предназначенные для изменения порядка следования полей. Выделите поле в списке, а затем, нажав кнопку ( ), переместите его на одну позицию вниз (вверх). При работе с уже существующей базой, доступны все кнопки.

Если Вы работаете с новой базой, все кнопки, кроме «Новое» не доступны. А в списке полей находится только поле «Системный номер». Для описания (создания) нового поля нажмите кнопку «Новое». На экране появится окно диалога «Проектирование свойств поля базы» (см. Рис. 4.4). В этом окне необходимо последовательно заполнить строки, соответствующие свойствам нового поля. В зависимости от типа поля, для заполнения доступен различный набор свойств. Однако часть из них является обязательной для заполнения, вне зависимости от типа (сам тип поля, номер, название и длина).

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

Для того чтобы удалить поле, выделите его в списке полей и нажмите кнопку «Удалить». Система запросит подтверждение и, получив положительный ответ, удалит поле из списка. Следует отметить, что такое удаление не является окончательным. Вы можете восстановить уделенное поле в любой момент, нажав кнопку «Восстановить». На экран будет выведено окно диалога «Восстановление уделенных полей», в котором следует выделить нужное поле и нажать кнопку «Восстановить». В список удаленных полей заносятся все поля, удаленные с момента последнего поведения оптимизации (с оптимизацией полей в записях – подробнее см. раздел 15.4). До проведения очередной оптимизации, эти поля сохраняются в списке и могут быть восстановлены.

Примечание. В данном разделе, сначала подробно рассмотрено каждое свойство поля. Наиболее сложным и важным вопросам, по ходу объяснения, уделено особое внимание. Раздел заканчивается примером.



Рис. 4.4. Окно диалога «Проектирование свойств поля базы».

Тип поля


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

Для того чтобы задать тип конкретного поля, заполните строку «Тип поля» в окне диалога «Проектирование свойств поля базы». Для этого выберите из предложенного списка соответствующий тип поля. Эта строка является обязательной для заполнения, причем, пока она не заполнена, остальные строки окна диалога не доступны. В ИСУБД «CronosPlus» существует девять типов полей. Ниже перечислены все типы, которые Вы можете использовать при описании поля14.

Тип

Иконка15

Допустимые значения поля

Текстовое



ТЕКСТОВОЕ поле может содержать любую последовательность алфавитно-числовых символов

Числовое



ЧИСЛОВОЕ поле позволяет вводить только числовые данные, используемые, например, для выполнения расчетов

Дата



Поле типа ДАТА может содержать только значение даты в формате: ДД.ММ.ГГГГ, где ДД – число (не более 31), ММ – месяц (не более 12), ГГГГ – год (не менее 1900)

Время



Поля типа ВРЕМЯ может содержать только значения времени в формате ЧЧ:ММ, где ЧЧ – часы (от 0 до 23), ММ – минуты (от 0 до 59).

Словарное



Значения СЛОВАРНОГО поля задаются только из словаря (числовым кодом или его декодированным значением, которое автоматически преобразуется в числовой код).

Файл



Поля типа ФАЙЛ позволяет хранить файлы любых форматов, содержащие любые данные (например, рисунки, тексты и т.д.)

Прямая ссылка



ПРЯМАЯ ссылка – содержит прямую ссылку на связанную базу.

Обратная ссылка



ОБРАТНАЯ ссылка – содержит обратную ссылку из связанной базы

Прямая-Обратная ссылка



ПРЯМАЯ-ОБРАТНАЯ ссылка между равноправными базами

Примечание. Более подробно назначение и использование типов полей Прямая ссылка, Обратная ссылка, Прямая-Обратная ссылка описано ниже (см. пункт «Связанные базы.»).

Номер поля


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

Номер поля может принимать значения от 1 до 999999. В связи с этим, общее количество полей базы ограничено, и не должно превышать 999999. Номер “00” отведен для поля “Системный номер”. При задании номера поля, лидирующие нули можно не указывать (т.е. можно писать «1», а не «000001»). Система автоматически предлагает номер поля, однако, при необходимости, Вы можете изменить его.

Название поля


Название поля позволяет Вам идентифицировать (отличать) конкретное поле базы на смысловом уровне. Рекомендуется давать полям краткие и содержательные названия, такие как «Фамилия» или «Дата рождения». Название поля следует указать в строке «Название поля» окна диалога «Проектирование свойств поля базы. Эта строка является обязательной для заполнения.

Длина поля


Длина поля – максимальное количество символов, которое пользователь может ввести с клавиатуры, при задании значения поля. В зависимости от типа поля длина задается явно, принимается по умолчанию или не задается вообще. Для полей типа Текстовое и Числовое система автоматически предлагает по умолчанию длину поля 100000 и 10 символов, соответственно. Максимальные длины полей, в зависимости от типа, приведены в таблице:

Тип поля

Максимальная длина

Примечание

Текстовое

9’999’999

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

Числовое

20

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

Словарное

1’000


Длина этих полей постоянна, и устанавливается системой по умолчанию

Файл

1’000

Дата

20

Время

5

Прямая ссылка, Обратная ссылка, Прямая-Обратная ссылка




Длина сложных полей не задается

Следует отметить, что длина поля не влияет на физический размер записи, т.е. длина значения поля в записи соответствует реальному количеству символов в значении поля. И не зависит от возможной длины поля, указываемой в строке «Длина поля».

Номер в записи


Номер в записи – физический номер значения поля в записи, который автоматически присваивается системой каждому новому полю. Этот номер выводится на экран в окне диалога «Проектирование свойств поля базы» для того чтобы пользователь мог определить, сколько полей в записи в соответствии с текущей структурой банка. Таким образом, если в базе данных всего пять полей, а значение строки «Номер в записи» устанавливается, например, сто, это означает, что достаточно большая часть записи физически не используется. А, следовательно, необходимо провести оптимизацию банка, с тем, чтобы более рационально использовать «пространство» записи (подробнее об оптимизации банков данных рассказано в разделе 15.4).

Словарная база


Для полей типа Словарное в строке «Словарная база» задается имя словарной базы (при работе с полями других типов, эта строка не доступна). При заполнении данного поля, доступны только значения выбранной словарной базы (подробнее о создании словарных баз см. раздел 4.5).

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

Если список «Словарная база» пуст, значит у банка либо нет подключенного словарного банка, либо ни одна база подключенного словарного банка не описана в закладке «Свойства словарной базы» (подробнее см. раздел 4.5).

Статус поля


Статус поля позволяет задавать дополнительные правила формирования значений поля (например, определить поле как обязательное для заполнения и/или как множественное и т.д.). Одно поле может иметь несколько статусов или не иметь ни одного. Для того чтобы определить полю данный статус, установите соответствующий флажок в строке «Статус». Ниже приведены описания каждого статуса, который может иметь поле.

Статус

Комментарий

Множественное

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

Автозаполнение

Этот статус предназначен для полей типа Дата и Время. Позволяет автоматически заполнять такие поля значениями из внутреннего таймера компьютера (например, текущая дата или текущее время).

Замена значения

Данный статус используется в базах с типом идентификации 3. При слиянии входной записи и записи базы данных, всем полям, имеющим статус Замена значения, присваивается новое значение. Т.е. значения таких полей в существующей записи полностью заменяются (вне зависимости от того, имеются ли у этого поля значения в сливаемых записях) на значения соответствующих полей входной (новой) записи.

Некорректируемое

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

Информативное

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

Поиск на вводе

Данный статус используется для тех полей, по значениям которых будет производиться поиск на вводе (см. раздел 5.3). Если статус Поиск на вводе в базе не используется, то поиск на вводе осуществляется по значениям всех заполненных полей.

Замена непустого значения

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

Обязательное

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

Символьное

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

Корневая связь

Данный статус используется очень редко. Назначение и использование данного статуса описано ниже

Использование статуса «Корневая связь».


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

Статус «Корневая связь» позволяет, используя функцию LinkRoot(), автоматически устанавливать дополнительные связи между записями, если была установлена хотя бы одна основная связь. Основной считается связь «со стороны» той базы, поле которой имеет статус «Корневая связь».

Рассмотрим простую ситуацию. Есть три базы: «Документ», «Лицо» и «Организация». Как лицо, так и организацию могут упоминаться в документе. При этом лица и организации могут быть связаны и по другому признаку, то есть не через документ, а, например, в качестве места работы. Структура банка, отражающего данную ситуацию, приведена на Рис. 4.5.



Рис. 4.5. Структура банка.

База «Документ», в нашем примере, назначается корневой, а значит, сложное поле «Упоминается в документе» должно иметь статус «Корневая связь». Базы «Лицо» и «Организация» считаются подчиненными относительно базы «Документ», и в их структуре формула, использующая функцию LinkRoot() (в нашем примере - LinkRoot(ЛЦ02_ДК) или LinkRoot(РГ02_ДК) соответственно).

Статус «Корневая связь» работает только при создании новых записей. Рассмотрим процесс создания новых записей в подчиненной базе на примере базы «Организация». В данном случае возможны три варианта:

1) создание новой записи непосредственно из данной базы (корневая база при вводе - «Организация»)

2) создание новой записи через другую базу (корневая база при вводе «Лицо», и только из нее устанавливается связь с новой записью базы «Организация»)

3) создание новой записи через две других базы (корневая база при вводе - «Документ», из нее установлена связь с записью базы «Лицо», из которой устанавливается связь с новой записью базы «Организация»).

В первом случае, никакие связи автоматически установлены не будут, так как не понятно, с какой конкретно записью другой базы нужно установить связь. Во втором случае, связь с корневой базой (то есть той, «из которой» создается запись базы «Организация»), будет установлена и без использования статуса «Корневая связь». А вот третий случай нужно рассмотреть подробнее.

В приведенном примере «Документ»  «Лицо»  «Организация», между новой записью базы «Организация» и корневой записью базы «Документ» будет автоматически установлена дополнительная связь. Это будет сделано именно потому, что соответствующее поле базы «Документ» имеет статус «Корневая связь», а в структуре базы «Организация» есть формула с функцией LinkRoot(РГ02_ДК). При отсутствии одного из этих элементов, дополнительная связь установлена не будет. Например, в случае «Лицо»  «Документ»  «Организация». Ведь, в базе «Лицо» нет поля со статусом «Корневая связь», ссылающегося на базу «Организация», а в базе «Организация» нет формулы с функцией LinkRoot(РГ03_ЛЦ).

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

Кроме установления связи через функцию LinkRoot(), статус «Корневая связь» влияет на отображение связанных записей в окне ввода/коррекции. Если в этом окне корневой является база, поле которой имеет статус «Корневая связь», на экран будут выводиться только те связанные записи других баз, которые связаны с рассматриваемой записью по этому полю.

Поясним вышесказанное на примере. Ранее мы рассмотрели три связанных базы «Документ», «Лицо» и «Организация» и связи между ними. Рассмотрим, как отображаются в окне ввода/коррекции две организации, которые введены по-разному.

Первая организация, которая называется «Колокольчик», была введена следующим образом: Из Документа №1 оператор перешел по дереву связей к лицу «Иванов И.И.», а от него перешел к созданию новой организации. Вторая организация, которая называется «Невидимка», была создана так: оператор нашел лицо «Иванов И.И.» и из него перешел к созданию данной организации.

В результате, как видно на Рис. 4.6., при вызове окна ввода/коррекции для базы «Документ», при переходе к связанным лицам, а затем к связанным организациям, пользователь видит только одну организацию – ту, которая имеет связь с Документом №1 по полю «Упоминается в документе». Хотя реально с лицом связано две организации.




Рис. 4.6. Структура банка.

Связное поле


Данное поле предназначено для работы с данными внешних форматов, т.е. форматов других СУБД, таких как MS Access, Excel, Dbf, Pardox, Oracle и т.д. (более подробно см. главу 13). Для всех банков, имеющих тип CronosPlus, при описании полей, эта строка недоступна.

Связанные базы


Строка «Связанные базы» доступна для заполнения только при работе со сложными полями (типа Прямая ссылка, Обратная ссылка, Прямая-Обратная ссылка). Как уже отмечалось в предыдущей главе, сложные поля предназначены для установления (описания) связей между базами данных. При этом связь должна быть двусторонней. Это означает, что, во-первых, связанные базы должны иметь сложные поля, которые ссылались бы друг на друга. А во-вторых, эти поля должны быть соответствующих типов: у одной базы сложное поле имеет тип Прямая ссылка, а у второй Обратная ссылка или поля обеих баз имеют тип Прямая-Обратная ссылка. Т.е. если база «Лицо» связана с базой «Адрес», сложное поле «Проживает по адресу» будет иметь тип Прямая ссылка, а поле «Является адресом лица», соответственно тип Обратная ссылка. Или наоборот, но, в любом случае, не Прямая ссылка и Прямая ссылка или Обратная ссылка и Обратная ссылка.

Следует отметить, что сложные поля всегда являются множественными (кратными). Если для сложного поля снять флажок, соответствующий статусу «Множественное», это не повлияет на ввод и хранение данных (ссылок на связанные записи) в этом поле. Однако при экспорте данных в текст (подробнее см. главу 16, «Экспорт данных в текст») такое поле будет обрабатываться как не множественное.

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

Таким образом, чтобы связать между собой, например, две базы данных, необходимо для каждого сложного поля указать в строке «Связанные базы» имя (мнемокод) связанной базы и номер соответствующего сложного поля. Для этого нужно нажать кнопку «Изменить». На экране появится окно диалога «Проектирование сложного поля» (см. Рис. 4.7).



Рис. 4.7. Окно диалога «Проектирование сложного поля».

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

Базы данных, с которыми связь уже установлена, маркируются значком , а все остальные – значком . При этом напротив названий тех сложных полей, связь с которыми уже установлена, стоит значок . Вы не можете установить связь с этим полем еще раз, однако, можете разорвать ее. Для этого нужно выделить название соответствующего поля и нажать кнопку «Удалить».

Сложные поля, связь с которыми не установлена, никак не маркируются в дереве. Чтобы установить связь с таким полем, нужно выделить в дереве его название и нажать кнопку «Установить». При этом напротив названия поля появится значок .

Чтобы закрыть окно диалога «Проектирование сложного поля» с сохранением изменений, нажмите кнопку «ОК». Для отмены изменений нажмите кнопку «Отказ».

Пример. В качестве примера рассмотрим, определение типов полей баз данных «Лицо, ищущее работу» и «Трудовая деятельность», банка данных «Primer» (структура этого банка приведена на Рис. 2.7). База «Лицо, ищущее работу» включает 8 простых полей. Определим их типы.

Поля «Фамилия», «Имя», «Отчество», «Пол» и «Дополнительная информация» определим как Текстовые (тип Текстовое). Поле «Дата рождения» должно иметь тип Дата. Для того чтобы избежать неоднозначности при описании гражданства лица, поле «Гражданство» опишем как словарное (тип словарное). Т.к. фотография это рисунок и может храниться только в отдельном файле, поле «Фотография» будет иметь тип Файл.

База «Трудовая деятельность» состоит из 6 простых полей. Поля «Должность» и «Причина увольнения» определяем как Текстовые. Соответственно поля «Дата начала» и «Дата окончания» будут иметь тип Дата. Т.к. размер заработной платы (З/п) может быть использован для вычислений (например, средняя З/п за период), тип полей «З/п в начале» и «З/п в конце» опишем как Числовое.

Мы определили типы всех простых полей баз данных «Лицо, ищущее работу» и «Трудовая деятельность». Однако, каждая из них имеет и сложные (ссылочные) поля, предназначенные для установления связей. Рассматриваемые базы связаны между собой посредством полей «Места работы» и «Относится к лицу». Тип этих полей определяем как Прямая ссылка, для «Места работы», и Обратная ссылка для «Относится к лицу». А затем заполняем строку «Связанные базы» соответствующими значениями. Остальные сложные поля (ссылающиеся на другие базы) в обеих базах данных определяются аналогично.