69896

Создание псевдонима базы данных

Лабораторная работа

Информатика, кибернетика и программирование

При работе с таблицами локальных БД или СУБД сама база размещается либо в каталоге на диске и хранится в виде отдельного набора файлов, либо на удаленном сервере. Обращение к базе данных происходит по ее псевдониму (Database Alias).

Русский

2014-10-12

1.11 MB

0 чел.

Лабораторная работа №1

Создание псевдонима базы данных

При работе с таблицами локальных БД или СУБД сама база размещается либо в каталоге на диске и хранится в виде отдельного набора файлов, либо на удаленном сервере. Обращение к базе данных происходит по ее псевдониму (Database Alias).

Псевдоним должен быть зарегистрирован на конкретной машине, с которой будет производиться доступ к базе данных. Псевдонимы баз данных и другие настройки BDE хранятся в файле idapi32.cfg,  расположенном в том же каталоге, что и файлы BDE.

Создание и работа с псевдонимами баз данных производится из утилиты BDE Administrator. Для того чтобы создать псевдоним, в главном меню утилиты надо выбрать пункт ObjectNew. В появившемся окне, показанном на рис. 1.1, будет предложено выбрать драйвер для доступа к базе данных.

Рис. 1.1. Окно выбора драйвера

В рассматриваемом случае надо оставить выбранным пункт STANDARD и нажать кнопку ОК. Созданный псевдоним базы данных можно переименовать по своему вкусу. В примере псевдоним получил название TestAias. В правой части окна в качестве значения свойства Path указывается путь к базе данных. Обычно требуется создать каталог, в котором позже будет размещена эта база. В примере используется путь D:\3курс\Базы данных\TestDB (рис. 1.2).

Рис. 1.2. Создание и настройка псевдонима

Путь к каталогу можно указать с помощью диалогового окна, который активируется соответствующей кнопкой в поле Path. После выполнения этих действий необходимо сохранить данные о созданном псевдониме. Для этого следует выполнить команду меню Object Apply.

Окно, демонстрирующее сказанное, показано на рис. 1.2.

Создание таблиц базы данных

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

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

Для создания таблицы необходимо выбрать пункт меню FileNewTable.

В появившемся окне необходимо выбрать тип таблицы. Для реализации тестового примера нужно выбрать значение Paradox 7. В результате будет активировано диалоговое окно, показанное на рис. 1.3. Каждая строка соответствует определенному полю в создаваемой таблице.

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

В столбце FieldName указываются имена полей создаваемой таблицы. Столбец Туре задает их типы. Для строковых полей в столбце Size указывается их размер. А в столбце Key помечаются символом звездочки те поля, которые будут входить в состав первичного ключа.

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

Описание полей созданной таблицы базы данных приведено в табл. 1.1.

Таблица 1.1. Описание полей таблицы «Студенты».

Field Name

Type

Size

Key

Примечание

STUDENTS

A

30

*

Поле типа Alpha

GROUP

S

Поле типа Short

DATAPOSTUP

D

Поле типа Data

Любому полю таблицы можно задать те или иные ограничения:

  •  Модификатор Required Field указывает, что поле должно быть обязательно заполнено данными.
  •  Ограничение Minimum Value определяет минимальное значение, которое может содержаться в поле.
  •  Maximum Value задает максимальное значение, которое может содержаться в поле.
  •  Параметр Default Value определяет значение, которое поле будет принимать по умолчанию.
  •  Параметр Picture определяет шаблон значений, которые будут храниться в поле.

Первичный ключ будет построен по полю STUDENT.

Рис. 1.4. Таблица «Студенты».

Для полей Student и Group следует установить ограничение Required Field. На рис. 1.4 показан один из этапов формирования таблицы. Далее необходимо выбрать языковый драйвер для того, чтобы русский текст отображался в базе данных без искажений. Для этого в списке Table properties необходимо выбрать пункт Table Language, затем нажать кнопку Modify и выбрать в появившемся списке значение Pdox ANSY Cyrillic. Теперь таблицу можно сохранить под именем Students при помощи кнопки Save/Save As.

Определение индексов и ссылочной целостности

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

Таблица 1.2. Таблица «Оценки»

Field Name

Type

Size

Key

Примечание

AUTO

+

*

Автоинкрементное поле

STUDENT

A

30

Поле типа Alpha

EXAM

A

30

Поле типа Alpha

GRADE

S

Поле типа Short

DATAEXAM

D

Поле типа Data

Для поля Grade, в котором будут храниться оценки, необходимо задать определенные ограничения. Следует выбрать параметр Required Field, для параметра Minimum Value установить значение, равное трем, а для Maximum Value - пяти. Созданную таблицу нужно сохранить под именем GradeTab. В ней также потребуется создать индекс по полям STUDENT, EXAM и GRADE. Для этого в списке Table properties необходимо выбрать значение Secondary Indexes и нажать кнопку Define. В результате будет активировано окно, показанное на рис. 1.5.

Рис. 1.5. Создание индекса.

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

  •  Параметр Unique обязывает все значения, входящие в состав индекса, быть уникальными.
  •  Case sensitive указывает, что индекс будет учитывать регистр символов.
  •  Параметр Maintained указывает, что индекс будет обновляться каждый раз, когда будет производиться модификация набора данных. Если этот флажок не установлен, индекс обновляется только при непосредственной работе с ним.
  •  Параметр Descending задает обратное направление сортировки значений, входящих в индекс. Если флажок не установлен, то сортировка производится в прямом направлении.

Созданный индекс нужно сохранить. Следует нажать кнопку ОК и ввести имя индекса Somelndex. Впоследствии этот индекс можно изменить. Для этого необходимо выбрать его в списке и нажать кнопку Modify. 

Теперь нужно определить ссылочную целостность. Таблицы Students и GradeTab находятся в отношении «один-ко-многим». Один студент может сдать несколько экзаменов на разные оценки. Теперь эту связь надо жестко прописать в проекте. Нужно открыть таблицу GradeTab и выбрать пункт меню Table Restructure. Таблица откроется для внесения изменений. В списке Table properties нужно выбрать элемент Referential Integrity и нажать кнопку Define. В результате будет активировано диалоговое окно, показанное на рис. 1.6.

Рис. 1.6. Определение ссылочной целостности.

В левой части окна показаны поля таблицы GradeTab. Необходимо создать связь по полю STUDENT. Соответственно, его необходимо выбрать из дочерней таблицы двойным щелчком мыши. Поле будет помещено в список Child fields. Далее необходимо выбрать таблицу Students, находящуюся в списке Table, который находится в правой части окна. Подходящие поля будут загружены в таблицу Parent's key и будет автоматически установлена связь. 

Для созданной ссылочной целостности можно определить дополнительные параметры:

Группа Update rule позволяет задавать правила модификации записей:

  •  переключатель Cascade указывает, что обновления данных производятся каскадно;
  •  переключатель Prohibit запрещает изменение значений, входящих в первичный ключ, пока есть связанные записи.

Флажок Strict Referential Integrity в активизированном состоянии запрещает работать с таблицей Paradox из пакета Paradox for DOS. Осталось лишь присвоить отношению имя TestRef и сохранить его, нажав на кнопку ОК.

Разработка простого приложения БД

Теперь, когда база данных создана, можно перейти к созданию первого приложения для работы с ней. Прежде всего в Delphi необходимо создать новый проект. Затем в него нужно добавить модуль данных командой главного меню FileNewData Module. Модуль нужно сохранить под именем DataModule. В нем нужно расположить два компонента ТТаblе, которые находятся на вкладке BDE, и два компонента TDataSource , которые находятся на вкладке DataAccess. Для обоих компонентов ТТаblе в свойстве Database Name надо выбрать из списка значение TestAliace. Компонент Table1 надо переименовать в StudentsTbl при помощи свойства Name, а компонент Тablе2 - в  GradeTbl. Также компоненту DataSource1 надо дать имя StudentsSrc, a DataSource2 - GradeSrc.

Теперь надо связать попарно компоненты таблиц и источников данных. При помощи свойства Dataset надо увязать StudentsTbl с StudentsSrc, a GradeTbl - с GradeSrc. На этом этапе уже можно определить отношения между таблицами. Для этого в свойстве MasterSource компонента GradeTbl необходимо указать родительский источник данных, который будет связывать компонент с родительской таблицей. В данном случае это будет StudentSrc. Далее в свойстве MasterFields этого же компонента необходимо указать поля, по которым будет установлена связь. В правой части свойства необходимо нажать на кнопку, и появится диалоговое окно, показанное на рис. 1.7.

Рис. 1.7. Окно редактора связей.

Оно содержит два списка — Master Fields и Detail Fields. В них перечислены поля, по которым можно создать связь. В обоих списках надо выбрать поля STUDENT, а потом нажать кнопку Add. Будет создана связь между таблицами. В списке Available Indexes перечислены доступные индексы, по которым тоже можно создать связь.

Затем на основной форме приложения нужно разместить два компонента TDBGrid, располагающихся на вкладке Data Controls палитры компонентов. Модуль данных надо подключить к главному модулю приложения одной строкой кода:

uses DataModule;

Теперь необходимо связать компоненты TDBGrid с компонентами TDatasource, расположенными в модуле данных, при помощи одноименного свойства DataSource. Также надо разместить на форме компонент TPopupMenu. Его надо связать с компонентами TDBGrid через их свойство PopupMenu. Двойным щелчком на компоненте TPopupMenu нужно активировать редактор меню и определить несколько новых пунктов. Потребуется создать пункт Новая, для которого в свойстве Name указать значение NewRec. Также нужно будет создать пункты Принять (PostRec) и Удалить (DeleteRec). Реализация этих методов приведена в листинге 1.1.

Листинг 1.1. Реализация методов контекстного меню

uses DataModule;

{$R *.dfm}

{Удаление выбранной записи}

procedure TForml.DeleteRecClick(Sender: TObject);

begin

if PopupMenul.PopupComponent = DBGrid1 then

begin

 with DataModulel.StudentsTbl do

        begin

if State = dsBrowse then

if MessageDlg('Вы уверены в том, что хотите удалить запись? ',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

Delete;

        end;

           end;

if PopupMenu1.PopupComponent = DBGrid2 then begin

with DataModulel.GradeTbl do begin

if State = dsBrowse then

if MessageDlg('Вы уверены в том, что хотите удалить запись? ',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

Delete;

end;

end;

end;

{Сохранение изменений}

procedure TForml.PostRecClick(Sender: TObject):

begin

if PopupMenul.PopupComponent = DBGrid1 then begin

with DataModulel.StudentsTbl do begin

if State in [dsInsert, dsEdit] then

Post;

end:

end;

if PopupMenu1.PopupComponent = DBGrid2 then begin

with DataModulel.GradeTbl do begin

if State in [dsInsert, dsEdit] then

Post;

end;

end;

end;

{Добавление новой записи}

procedure TForml.NewRecClick(Sender: TObject);

begin

if PopupMenul.PopupComponent = DBGrid1 then begin

with DataModulel.StudentsTbl do begin

if State = dsBrowse then

Insert;

end;

end;

if PopupMenul.PopupComponent = DBGrid2 then begin

with DataModulel.GradeTbl do begin

if State = dsBrowse then

Insert;

end;

end;

end;

Для выполнения считывания состояния набора данных (оператор State), необходимо в разделе uses главного модуля нашей формы прописать дополнительные модули:

Uses DB, DBTables;

Двойным щелчком на каком-либо из компонентов TDBGrid нужно вызвать редактор полей. Командой Add all fields контекстного меню можно добавить все поля. Лишние поля потом можно будет просто удалить. Данной командой определяются поля, которые будут отображаться в таблице. Вид окна представлен на рис. 1.8.

Для выбранного поля можно указать тип шрифта столбца, тип шрифта заголовка, цвет заголовка, название заголовка. Для изменения названия заголовков достаточно выбрать поле и в свойстве TitleCaption указать новый заголовок. В свойстве PickList можно указать список значений, которые будут доступны из таблицы в данном поле. Основное окно программы показано на рис. 1.9.

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

Рис. 1.9 Окно программы.


 

А также другие работы, которые могут Вас заинтересовать

19418. Наука в годы Великой Отечественной войны. Роль техники во Второй Мировой войне 28 KB
  Наука в годы Великой Отечественной войны. Роль техники во Второй Мировой войне Важный вклад в победу над фашизмом внесли советские ученые: физики создавали теоретические и экспериментальные предпосылки для конструирования новых видов вооружения; математики разработ
19419. Понятие информации. Виды информации. Роль информации в живой природе и в жизни людей. Язык как способ представления информации 88 KB
  Понятие информации. Виды информации. Роль информации в живой природе и в жизни людей. Язык как способ представления информации: естественные и формальные языки. Основные информационные процессы: хранение передача и обработка информации. Общепринятого определения инфо
19420. Измерение информации: содержательный и алфавитный подходы. Единицы измерения информации 26.65 KB
  Измерение информации: содержательный и алфавитный подходы. Единицы измерения информации. Вопрос: Как измерить информацию очень непростой. Ответ на него зависит от того что понимать под информацией. Но поскольку определять информацию можно поразному то и способы из
19421. Дискретное представление информации: двоичные числа; двоичное кодирование текста в памяти компьютера. Информационный объем текста 59.63 KB
  Дискретное представление информации: двоичные числа; двоичное кодирование текста в памяти компьютера. Информационный объем текста. Вся информация которую обрабатывает компьютер должна быть представлена двоичным кодом с помощью двух цифр 0 и 1. Эти два символа принято н...
19422. Дискретное представление информации: кодирование цветного изображения в компьютере (растровый подход). Представление и обработка звука и видеоизображения 145 KB
  Дискретное представление информации: кодирование цветного изображения в компьютере растровый подход. Представление и обработка звука и видеоизображения. Понятие мультимедиа. Вся информация которую обрабатывает компьютер должна быть представлена двоичным кодом с п
19423. Процесс передачи информации, источник и приемник информации, канал передачи информации. Скорость передачи информации 437 KB
  Процесс передачи информации источник и приемник информации канал передачи информации. Скорость передачи информации. Развитие человечества не было бы возможно без обмена информацией. С давних времен люди из поколения в поколение передавали свои знания извещали об опа...
19424. Понятие алгоритма. Исполнитель алгоритма. Система команд исполнителя (на примере учебного исполнителя) 70 KB
  Понятие алгоритма. Исполнитель алгоритма. Система команд исполнителя на примере учебного исполнителя. Свойства алгоритма. Способы записи алгоритмов; блоксхемы. Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад в 825 году ученый из города Хор
19425. Основные алгоритмические структуры: следование, ветвление, цикл; изображение на блок-схемах 87.5 KB
  Основные алгоритмические структуры: следование ветвление цикл; изображение на блоксхемах. Разбиение задачи на подзадачи. Вспомогательные алгоритмы. Основные виды алгоритмов алгоритмических структур: 1. Линейный алгоритм еще называют следование; 2. Циклический а
19426. Величины: константы, переменные, типы величин. Присваивание, ввод и вывод величин. Линейные алгоритмы работы с величинами 62.5 KB
  Величины: константы переменные типы величин. Присваивание ввод и вывод величин. Линейные алгоритмы работы с величинами. Вам уже известно что всякий алгоритм составляется для конкретного исполнителя. Сейчас в качестве исполнителя мы будем рассматривать компьютер осн...