69896

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

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

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

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

Русский

2014-10-12

1.11 MB

1 чел.

Лабораторная работа №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 Окно программы.


 

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

75789. Роль ВТО в развитии мировой торговли 364 KB
  Цель работы – рассмотреть отношения ВТО в развитии мировой торговли. Объектом исследования курсовой работы является организация ВТО. Основной задачей курсовой работы является определить важность организации ВТО в развитии мировой торговли.
75790. Органы местного самоуправления в Российской Федерации: основные проблемы законодательного регулирования 56.55 KB
  Целью написания данной курсовой работы является исследование проблем и перспектив развития российского законодательства в области местного самоуправления, а также формулировка предложений по совершенствованию данного направления законодательства.
75791. Расчет электрической части силовых трансформаторов 379.5 KB
  Силовыми трансформаторами называют трансформаторы, служащие для преобразования электрической энергии в сетях энергосистем и электропотребителей. Данные трансформаторы являются определяющими трансформаторами рассматриваемыми для данной специальности, то есть основными...
75792. Электроснабжение механического завода местной промышленности 121.06 KB
  В данном курсовом проекте рассмотрены вопросы электроснабжения механического завода местной промышленности, касающиеся определения расчетных нагрузок цехов завода с учетом их внутреннего освещения и наружного освещения территории комбината, построения картограммы нагрузок...
75796. Создание RPM пакета в операционной системе Linux 629.67 KB
  Основным преимуществом программного обеспечения с открытым кодом является, как следует из названия, доступность внутренней информации об особенностях работы приложений. Имея исходный код, вы можете изучить, как приложение работает, изменить, улучшить и расширять его функции, заимствовать и повторно использовать код...
75797. Родо – видовые отношения в структуре лексико-тематической группы «Одежда» (по материалам толкового словаря С. И Ожегова, Н. Ю Шведовой) 59.01 KB
  Задачи: рассмотреть виды лексико-семантических групп и типы отношений слов в русском языке рассмотреть родовые и видовые отношения слов в лексике русского языка, в частности гипонимию (На примере ЛСГ «Одежда») доказать, что структурирование словарного состава русского языка...