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

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

Содержание


4. Проектирование (описание) структуры банка данных в ИСУБД «Cronos Plus» 4.1. Описание окна диалога «Проектирование банка данны
4.2. Основные свойства базы данных. Закладка «Основные свойства».
Номер базы
Имя (мнемокод) базы
Тип идентификации
Без идентификации (первый тип).
Отстранение при совпадении ключа (второй тип)
Слияние при совпадении ключа (третий тип).
Название поля
Название поля
Слияние при совпадении с неполным ключом (четвертый тип).
Название поля
Флажок «Поле уровня доступа»
Подобный материал:
1   ...   5   6   7   8   9   10   11   12   ...   53

4. Проектирование (описание) структуры банка данных в ИСУБД «Cronos Plus»

4.1. Описание окна диалога «Проектирование банка данных»


После того как Вы создали новый банк данных, необходимо описать его структуру.

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

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

В ИСУБД «CronosPlus» для определения структуры банка предназначено окно диалога «Проектирование банка данных» (см. Рис. 4.1). Для того чтобы начать работу в этом окне выберите Проектирование  Структура банка данных. Возможно, Вы не создавали новый, а подключили существующий банк данных. Если Вы хотите просмотреть и/или изменить структуру такого банка, воспользуйтесь тем же окном диалога «Проектирование банка данных».



Рис. 4.1. Окно диалога «Проектирование банка данных».

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

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

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

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

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

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



Рис. 4.2. Окно диалога «Свойства базы».

4.2. Основные свойства базы данных. Закладка «Основные свойства».


На Рис. 4.2. окно диалога «Свойства базы» открыто на закладке «Основные свойства». В этой закладке необходимо последовательно задать основные свойства базы, заполняя соответствующие строки.

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

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

Имя (мнемокод) базы – уникальное внутри банка, сокращенное наименование создаваемой базы, состоящее из двух символов (букв или цифр). Это имя (мнемокод) будет использоваться во внутреннем обращении к данной базе, например для установления связей.

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

Типы идентификации

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

Действия системы, после того как она определила, что вводимая запись и запись, хранящаяся в банке, совпадают, зависят от выбранного пользователем типа идентификации. Тип идентификации определяет правила слияния информации загружаемой в базу. Вводимая запись может быть объединена («слита») с существующей или наоборот отстранена от ввода. В ИСУБД «CronosPlus» может использоваться один из четырех типов идентификации. Для того чтобы Вы могли выбрать из них подходящий в конкретном случае, ниже приведено подробное описание каждого типа.

Без идентификации (первый тип).

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

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

Отстранение при совпадении ключа (второй тип)12.

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

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

Слияние при совпадении ключа (третий тип).

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

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

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

Входная запись

Фамилия

Иванов

Имя

Сергей

Отчество




Дата рождения

12/12/50

Гражданство

Россия

Дополнительная информация

Состоит в «Партии любителей пива»

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

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

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

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

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

Входная запись

Запись базы данных

Фамилия

Иванов

Иванов

Имя

Сергей

Сергей

Отчество

Васильевич

Васильевич

Дата рождения

12/12/50

12/12/51

Гражданство

Россия




Дополнительная информация

Состоит в «Партии любителей пива»

Играет в футбол

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

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

Слияние при совпадении с неполным ключом (четвертый тип).

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

Пример. Пусть в идентифицирующий набор базы «Лицо, ищущее работу» входят поля «Фамилия», «Имя» и «Отчество», и выбран четвертый тип идентификации. Идентификация будет производится даже когда во входной записи заполнены не все, входящие в набор поля:

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

Входная запись

Запись базы данных

Фамилия

Иванов

Иванов

Имя




Сергей

Отчество




Васильевич

Дата рождения

12/12/50

12/12/51

Гражданство

Россия




Дополнительная информация

Состоит в «Партии любителей пива»

Играет в футбол

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

Как решить, какие поля следует включить в идентифицирующий набор? Из определения следует, что, для создания идентифицирующего набора, необходимо выбрать такие поля, совокупность значений которых не должна повторяться в базе данных. Например, в базе накапливается информация о лицах ищущих работу (соискателях). Каждому соискателю должна соответствовать одна запись в базе. Как отличить одного соискателя от другого? Первое, что приходит в голову – по фамилии. Однако, вероятность появления в базе информации об однофамильцах достаточно велика. Значит, отличать их следует не только по фамилии, но и по имени и отчеству. Возможна ситуация, когда два лица, информация о которых содержится в базе, имеют одинаковую фамилию, имя и отчество. Это случается редко, но, учитывая большой размер банка, следует учитывать и такую возможность. Поэтому в идентифицирующий набор следует включить следующие поля: «Фамилия», «Имя», «Отчество» и «Дата рождения».

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

Таким образом, если поле «Дата рождения» не заполнена, идентификация записи будет проведена только по фамилии, имени и отчеству соискателя.

Пример. В базе «Организация» следует определить идентифицирующие наборы. Организация имеет уникальное название (если вводить полное название, такое как «ТОО “Глобус”», а не просто «Глобус»). Это означает, что достаточно определить один идентифицирующий набор, состоящий из одного поля «Название». Определим наборы для базы данных «Адрес». Два адреса могут совпадать и по названию страны, и по названию города, и по названию улицы и по значению любого другого поля. Это значит, что уникальной (однозначно определяющей запись) будет только совокупность всех полей этой базы данных. Следовательно, необходимо определить один идентифицирующий набор, но включающий в себя все поля базы данных.


И наконец пятый тип - НА ПОЛНОЕ СОВПАДЕНИЕ ЗНАЧЕНИЙ ПРОСТЫХ ХАРАКТЕРИСТИК И ОТСЫЛОК (цифра "5"). Используется для идентификации объектов, подчиненных объектам баз ТРЕТЬЕГО и ЧЕТВЕРТОГО типов. Объекты баз пятого типа, связанные с одним объектом верхнего уровня, сливаются друг с другом при условии полного совпадения значений простых характеристик и отсылок. Порядок следования значений множественных характеристик - не важен.

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



В качестве характеристик, входящих в ключ, выбираются простые НЕМНОЖЕСТВЕННЫЕ характеристики. Использование множественных характеристик в качестве идентифицирующих недопустимо.




Пример 4.9.

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


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

Фрагмент описания базы ОРГАНИЗАЦИЯ





Название характеристики


Тип


Длина

Крат-

ность

Внешний № / связь с базами



сло-

варя



ключа

Ста-

тус

№ поля

00

Системный номер

Ц

8













НВ




01

Название организации

Т

150




01




1




1

02

Организационно-правовая форма

КА

2




02

2







2




. . .

























10

Адрес

Т

60




10




1




10































Характеристики №№ 01 и 10 составляют первый ключ.

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

Пример 4.10.

Рассмотрим идентификацию в базе ЛИЦО. Однозначно человека можно идентифицировать по номеру и серии паспорта. А если таких сведений нет, то по фамилии, имени , отчеству и дате рождения (конечно, на больших объемах могут быть совпадения, но в примере ими пренебрегаем).




Номер

ключа

Номер и наименование идентифицирующей характеристики

1

02

03

04

12

Фамилия

Имя

Отчество

Дата рождения

2

01

Номер и серия паспорта


В этом случае фрагмент таблицы описания характеристик базы ЛИЦО будет иметь вид:





Название характеристики


Тип


Длина

Крат-

ность

Внешний № / связь с базами



сло-

варя



ключа

Ста-

тус

№ поля

00

Системный номер

Ц

8













НВ




01

Номер и серия паспорта

Т

15




01




2




4

02

Фамилия

Т

40




02




1




1

03

Имя

Т

20




03




1




2

04

Отчество

Т

40




04




1




3

12

Дата рождения

Д

10




12




1




5































В общем случае любая простая не множественная характеристика может участвовать в нескольких ключах.


Флажок «Поле уровня доступа» - устанавливается в тех случаях, когда в данной базе данных должно производиться разграничение уровней доступа к записям. В этом случае, в структуре этой базы данных появляется специальное поле «Уровень доступа». Подробнее о работе с этим полем рассказано в разделе 5.3. (см. «Ввод значений поля «Уровень доступа»») и в разделе 14.2.

Группа «Значок» - здесь Вы можете выбрать картинку для отображения записей базы в режиме «Графическое представление связей» (подробнее см. главу 7). Вы можете выбрать графический файл с помощью кнопки «Установить». Текущая картинка отображается справа. Если Вы хотите вернуть стандартный значок, воспользуйтесь кнопкой «Очистить».

Пример. Рассмотрим создание базы данных «Лицо, ищущее работу», банка данных «Primer». Номер присвоен базе автоматически. В строке «Название базы» запишем «Лицо, ищущее работу». Имя (мнемокод) базы определим как ЛЦ. Установим тип идентификации «Слияние при совпадении ключа» (третий тип)13. Основные свойства остальных баз данных определяются аналогичным образом.