Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
16.04.2013
Размер:
1.89 Mб
Скачать

4.3. Проверка наличия драйвера субд

Чтобы убедиться в наличии драйвера выбранной СУБД PARADOX, запустим утилиту BDE Configuration, выбрав в главном меню команду Tools | BDE Config. В диалоговом окне выберем страницу Drivers и убедимся, что PARADOX присутствует в списке драйверов. Выделив имя PARADOX, справа увидим таблицу параметров драйвера. Проверим и при необходимости установим параметр LEVEL=5, задающий версию СУБД PARADOX. Если в БД будет храниться русскоязычная информация, то особый интерес представляет параметр LANGDRIVER, задающий драйвер, определяющий набор символов и порядок алфавитной сортировки. Следует записать в конспект значение этого параметра (вероятнее всего, что LANGDRIVER=‘ascii’ANSI).

На странице Date установим параметр MODE=1, чтобы дата выводилась в форме ДД/ММ/ГГ.

Убедимся в существовании псевдонима TUTOR_DATABASE на странице Aliases и завершим работу с утилитой, выбрав из ее меню команду File | Exit. Если параметры драйвера СУБД PARADOX изменялись, то нужно подтвердить необходимость их сохранения, нажав кнопку Yes в появившемся диалоговом окне.

4.4. Описание структуры таблиц

Схема проектируемой БД, представленная в табл.2, задается описанием структуры отдельных таблиц. Наличие связей между таблицами (см. рис.3) определяет порядок, в котором описываются структуры таблиц: в первую очередь описывается структура наименее зависимых таблиц FLAT и PROFIT, а затем структура таблиц TPHONE, PERSON и HAVE_D.

Описание структуры таблицы осуществляется с помощью утилиты DBD, которая вызывается из главного меню системы Delphi командой Tools | Database Desktop. Окно, в котором описывается структура таблицы (рис.4), появляется после выбора команды File | New | Table в главном меню утилиты DBD и выбора типа таблицы, соответствующего СУБД Paradox 5.0 for Windows.

Рис.4. Окно для описания структуры таблицы.

В области Field Roster задается список атрибутов (полей) таблицы. Для атрибута (поля) указывается имя (в колонке Field Name), обозначение типа (в колонке Type), размер (в колонке Size) и принадлежность первичному ключу (в колонке Key). Принадлежность атрибута первичному ключу отмечается вводом символа “*” (звездочка). Атрибуты, входящие в первичный ключ, должны располагаться подряд в начале списка атрибутов (см. табл.3).

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

Допустимые значения атрибута и значение по умолчанию задаются свойством таблицы Validity Checks, выбираемым из списка Table Properties. Диапазон числовых значений атрибута записывается в строках Minimum и Maximum, значение по умолчанию - в строке Default. Шаблон для ввода значений атрибута или перечень допустимых текстовых значений атрибута записывается в строке Picture. Примеры шаблонов можно увидеть, нажав кнопку Assist.

Для описания структуры таблицы FLAT нужно задать соответствующий список атрибутов (см. табл.2) и ввести звездочку в колонке Key для атрибута Adr (рис.5). Для всех атрибутов следует установить признак Required Field, а для атрибутов Skv, Nrooms, KCategory указать допустимые значения и значения по умолчанию (см. табл.2). Допустимые значения атрибута KCategory перечисляются в строке Picture и заключаются в фигурные скобки: {П,Н,К}.

Рис.5. Структура таблицы FLAT.

Для всех таблиц, принадлежащих БД TUTOR_DATABASE, нужно проверить и при необходимости изменить свойство таблицы Table Language (язык таблицы), которое должно совпадать со значением параметра LANGDRIVER, записанным в конспект при выполнении п.4.3. Это свойство выбирается из списка Table Properties, а его значение проверяется нажатием кнопки Modify. В появившемся окне Table Language из списка Language выбирается нужный язык таблицы, а затем нажимается кнопка OK (рис.6).

Рис.6. Выбор языка таблицы.

Для сохранения описанной структуры таблицы нажимается кнопка Save As и задается имя таблицы.

Структура таблицы PROFIT описывается в соответствии со схемой БД, приведенной в табл.2. Для всех атрибутов, кроме Id, устанавливается признак Required Field, а атрибут Id отмечается как первичный ключ (рис.7).

Рис.7. Структура таблицы PROFIT.

Структура таблицы TPHONE описывается в соответствии со схемой БД (см. табл.2) и с учетом наличия в этой таблице внешнего ключа (см. табл.4). Для всех атрибутов устанавливается признак Required Field, а атрибут Ntel отмечается как первичный ключ. Описание внешнего ключа задается при установке свойства таблицы Referential Integrity, которое выбирается из списка Table Properties (рис.8).

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

С правой стороны окна расположен список главных таблиц. Следует выбрать таблицу FLAT, связанную с подчиненной таблицей TPHONE. При этом поле Adr, являющееся первичным ключом главной таблицы FLAT, появится в графе Parent’s Key. С левой стороны окна расположен список атрибутов подчиненной таблицы TPHONE. Из этого списка нужно выбрать атрибут Adr, являющийся внешним ключом. Чтобы изменение значения первичного ключа вызывало автоматическое изменение соответствующих значений внешнего ключа, следует установить признак Cascade в области Update Rule. Чтобы запретить изменение значения первичного ключа при наличии соответствующих значений внешнего ключа в подчиненной таблице, устанавливается признак Prohibit.

Рис.8. Структура таблицы TPHONE.

Рис.9. Окно с описанием внешнего ключа таблицы TPHONE.

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

Структура таблицы PERSON описывается в соответствии со схемой БД (см. табл.2) и с учетом наличия в этой таблице внешнего ключа (см. табл.4). Для всех атрибутов, кроме Nom, устанавливается признак Required Field, а атрибут Nom отмечается как первичный ключ (рис.10). Внешний ключ описывается тем же способом, что и для таблицы TPHONE. В качестве имени ограничения ссылочной целостности для таблицы PERSON следует задать FLATAdr.

Структура таблицы HAVE_D описывается в соответствии со схемой БД (см. табл.2) и с учетом наличия в этой таблице двух внешних ключей (см. табл.4). Для атрибутов Nom и Id устанавливается признак Required Field, и они отмечаются звездочкой как принадлежащие первичному ключу (рис.11). Атрибут Nom описывается как внешний ключ, связанный с одноименным первичным ключом таблицы PERSON. Соответствующее ограничение ссылочной целостности обозначается именем PERSONNom. Атрибут Id описывается как внешний ключ, связанный с одноименным первичным ключом таблицы PROFIT. Соответствующее ограничение ссылочной целостности обозначается именем PROFITId.

Рис.10. Структура таблицы PERSON.

Рис.11. Структура таблицы HAVE_D.

После описания структуры таблиц можно проверить правильность установленных связей главных таблиц с подчиненными таблицами (см. рис.3). Для этого нужно командой Utilities | Info Structure вызвать окно, отображающее структуру одной из главных таблиц FLAT, PERSON, PROFIT и выбрать свойство Dependent Tables (зависимые таблицы) из списка Table Properties. При этом справа появится список подчиненных таблиц. На рис.12 видно, что главной таблице FLAT подчинены таблицы PERSON и TPHONE. После проверки связей таблиц окно закрывается нажатием кнопки Done.

Структуру таблицы при необходимости можно изменить командой Utilities | Restructure. Например, чтобы создать вторичный индекс по атрибуту FIO для существующей таблицы PERSON, нужно выбрать ее имя из списка, нажать кнопку OK и после появления окна со структурой таблицы PERSON, выбрать свойство таблицы Secondary Indexes и нажать кнопку Define. В появившемся окне из списка Fields следует выбрать атрибут FIO и нажать кнопку со стрелкой вправо (рис. 13). Необходимо также пометить крестиком режимы индекса Maintained и Case Sensitive в области Index Options. Эти режимы задают обновление индекса при изменении данных в таблице PERSON и сортировку индекса с учетом регистра букв в значении атрибута FIO. После нажатия кнопки OK следует ввести имя вторичного индекса PERSON03_FIO и нажать кнопку OK. (Имя означает, что индекс принадлежит таблице PERSON, является третьим по счету для этой таблицы, индексным ключом служит атрибут FIO.)

Рис.12. Связь главной таблицы FLAT с подчиненными таблицами.

Рис.13. Создание вторичного индекса по атрибуту FIO для таблицы PERSON.

В правой части появившегося окна со структурой таблицы PERSON отображается список из двух имен вторичных индексов (рис.14). Вторичный индекс Adr был создан автоматически при объявлении поля Adr таблицы PERSON внешним ключом, когда задавалось ограничение ссылочной целостности FLATAdr для таблицы PERSON. Таким образом, таблица PERSON имеет три индекса: первичный индекс с индексным ключом Nom и два вторичных индекса Adr и PERSON03_FIO.

Для сохранения измененной структуры таблицы следует нажать кнопку Save.

После создания БД следует завершить работу с утилитой DBD командой File | Exit. Ввод информации в БД будет осуществляться средствами разрабатываемой информационной системы.