Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

3.2. Создание базы данных

Для создания таблицы автономной базы имеется приложение DatabaseDesktop, которое вызывается командойTools/Database Desktop.

Оно имеет собственное окно, меню и кнопки (рис. 3.2.1).

Рис. 3.2.1. Окно Database Desktop

Но­вая таблица создается построителем таблиц (рис. 3.2.2), который вызы­вается командой File/New/Table. На запрос тип СУБД выберемParadox7.

Рис. 3.2.2. Окно построителя таблиц

Рассмотрим основные колонки и поля окна конструктора таблиц.

Field Name‑ идентификаторы полей (не более восьми латинских букв и цифр для совместимости с другими СУБД).

Typeтип поля (указывается выбором из контекстного меню):Alpha(A‑ строка из не более чем 255, символов),Number(N‑ число с плавающей точ­­кой),Money($ ‑ аналогичен типуNumber, но добавляется денежный знак),Short(S‑ целое число в диапазоне ­‑32768..32767),LongInteger(I­ це­лое чис­ло в диапазоне-2147483647..2147483647),BCD(# ‑ число в двоич­но-десятичном формате),Date(D‑ дата),Time(T‑ время),Timestamp(@ ‑ да­та и время),Memo(M‑ строка любой длины),FormattedMemo(F‑ ана­ло­ги­ченMemo, но может содержать форматированный текст),Graphic(G‑ изоб­ражениеBMP,PCX,TIF,GIF,EPS),OLE(O‑ объектOLE),Logical(L‑ ло­гическое ‑T,F),Autoincrement(+ ‑ при добавлении записи, авто­ма­ти­чес­ки формируется уникальное значение),Binary(B– последо­ва­тель­ность бай­­­­тов любой длины),Bytes(Y‑ последовательность не более чем 255 байтов).

Size‑ размер поля в байтах.

Key‑ признак первичного ключевого поля (двойной щелчок по колонке).

Tables properties‑ дополнительные свойства таблицы:SecondaryIndex(за­да­ние вторичных индексов),ValidityChecks(ограничения на ввод значе­ний полей),PasswordSecurity(определение пароля),ReferentialIntegrity(опре­деление ссылочной целостности между таблицами),TableLanguage. (за­дание языка),TableLookop(задание полей просмотра),DependingTables(зависимые дочерние таблицы).

Required Filed‑ признак обязательного заполнения поля.

Minimum..., Maximum...‑ начало и конец диапазона допустимых значений.

Default value‑ значение по умолчанию при добавлении пустой записи.

Picture,Assist шаблон и построитель шаблона значения поля (рис. 3.2.3).

Рис. 3.2.3. Окна построителей шаблона и индекса

Вторичные ключи (индексы)создаются путем выбора из списка свой­ств таблицы строкиSecondary Indexes,и после нажатия кнопкиDefineвы­во­дится окноDefineSecondaryIndex(рис. 3.2.2). Используя кнопки со стрел­ками или двойными щелчками, перенесем нужное поле или нес­колько полей, если ключ составной, в список индексов. Имеются пе­ре­клю­ча­тели:Unique(уникальный индекс),Case sensitive(учет ре­гист­ров стро­ко­вых полей),Descending(сортировка по возрастанию). КнопкойOKпрои­зво­дится выход с указанием имени индексаIndKz. Поле, которое яв­ляется пер­вич­ным ключом другой родительской таблицы, называют внеш­ним клю­чом. Для связи таблиц обычно создают индексы по внешним клю­чам. Пос­ле формирования таблицы она сохраняется, если нажать кнопкуSave As, под указанным именем; при этом в поле имени файла можно ука­зать как пол­­ное имя с каталогами, так и псевдоним базы (Alias). Псевдоним поз­во­ляет не привязываться к каталогу, который может меняться.

Для примера создадим базу из трех таблиц: Стройки (Stroiki), Заказчики (Zakazhiki) и Подрядчики (Podrjdhiki). В начале создадим ката­логStroitelstvo, в котором будет находиться наша база.

Для создания алиасыStroikiвызовем администраторBDE(BDE Admi­nis­trator) из меню настройкиWindowsили группы программDelphiили из менюDelphiкомандойDatabase/Eplore/Object/BDE Admi­nis­trator(рис.3.2.4). Далее командойObject/Newсоздается алиасаStroiki.

Рис. 3.2.4. Окно администратора BDE

Займемся созданием таблиц.

Таблица Stroiki(рис.3.2.2) будет иметь поля:Ns(наименование строй­ки, типA(50)),Kz,Kp(коды заказчика и подрядчика,S),Ds(дата на­ча­ла строительства,D),Ss(сметная стоимость, $),Fs(освоенная сумма, $),M(мощность,N),Em(единица мощности, например, количество мест для школ,A(10)). Индексами являются поля:Kz(индекс под именемindKz),Kp(indKp). Первичный ключ – полеNs(можно его не задавать). Все поля, кромеFs,M,Em, являются обязательными.

Таблицы Zakazhiki/Podrjdhikiбудут иметь ключевые поляKz/Kp(код заказчика/подрядчика,S) и поляNz/Np(наименование заказчика/под­ряд­чи­ка,A(30)) соответственно.

Для корректировки и просмотраоткрытой таблицы имеются командыTable/Restructure(кнопкаRestructure) иTable/Into Structure. Для переименования таблицы следует сохранить ее под новым именем.

Создание перекрестных ссылок (связей) между таблицамипрои­зводится в следующем порядке. КомандойFile/Open/Tаbleот­кры­вает­ся дочерняя таблицаStroilki*, кнопкойRestructureпереходим в режим редак­ти­рования. В спискеTable pro­pertiesвыбираем строкуRefe­ren­­tial Integrity(целост­ность ссы­­­лок), нажмем кнопкуDefineи появ­ляет­ся одно­имен­­ное ок­но (рис. 3.2.5). Из спис­каFieldsвы­би­раем полеKzи пере­но­сим его (двойным щел­чком) в полеChild fields(до­чер­нее). Щелк­нем два­ж­­ды на ст­рокеZakazhikiв спис­кеTable, и его ключевое полеKzпо­мес­тится в полеParents key(клю­­че­­­вое поле родительской таблицы).

Рис. 3.2.5. Окно установки связей между таблицами

Переключатель Cascadeзадает режим удаления всех дочерних записей (строек одного заказчика), при удалении родительской записи (заказчика из таблицы заказчиков) и корректировки ключей дочерних записей при изменении родительского ключа (кода заказчика из таблицы заказчиков). КнопкойOKсохраним связь под именемLinkKz. Аналогично установим связьLinkKpпо коду подрядчика между дочерней таблицей строек и родительской таблицей подрядчиков.

Form2.Query1.Active:=False;{закрытие запроса} End;

Внимание!

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

2. В именах таблиц не используйте буквы «ч» и «ё».

Для заполнения и редактирования таблицы, после ее связывания с другими таблицами, используется кнопка EditDataи менюRecordприложенияDatabaseDesktop(кириллицу при вводе использовать нельзя).