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 Окно программы.


 

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

78842. СИМВОЛИ РІДНОЇ БАТЬКІВЩИНИ 267 KB
  Виходять юнак і дівчина в національному вбранні. Юнак Знову воскресає українська державність. Юнак Тризуб можна зустріти і на цеглинах підмурків Десятинної церкви у Києві і на плитах Успенської церкви у Володимир-Волинському що збудована в другій половині XI століття.
78843. Складання розповіді «Весняна симфонія» на основі власних спостережень учнів і за картинами 238.5 KB
  Про яку пору року говориться Як ви про це дізнались Яку картину до цього вірша б намалювали Чи співпадають ваші міркування із цією картиною Весна Виберіть із вірша слова які б стали назвою для картини. Весна До мого вікна підійшла весна Розтопилася на шибці квітка льодова.
78844. Наука и религия 12.39 KB
  Если попытаться оценить место науки в духовной культуре мы увидим что она нам дает неполные ограниченные познания и не может быть положена в основу духовной жизни человека и общества. Религия это форма познания мира связь человека с Богом. Наука возникла на основе практических потребностей человека. Ответ на него позволит повлиять на решение вопроса о смысле жизни что в свою очередь окажет влияние на нравственность человека и общества в целом.
78845. Наука как социальный институт 31.5 KB
  С дальнейшим развитием науки происходит неизбежный процесс дифференциации научного знания сопровождающийся специализацией научного знания возникновением новых научных дисциплин и последующим разделением прежних наук на отдельные их разделы и дисциплины. На рубеже 1920 веков достижения науки все чаще начинают использоваться в материальном производстве и социальной жизни а во второй половине 20 века наука превращается в непосредственную производительную силу значительно ускорившую рост экономики и благосостояния в развитых странах. На...
78846. Наука и власть 29.5 KB
  Наука и власть Любая власть как институционализированная государственноправовые институты так и не институционализированная например власть старшего в семье власть учителя в школе власть женщины над любящим ее мужчиной и т. Власть государственная необходима для организации общественного производства которое немыслимо без подчинения участников единой воле а также для регулирования взаимоотношений между людьми в обществе. Проблема наука и власть имеет два аспекта: 1 проблема самой науки как формы власти;...
78847. Наука и нравственность. Этика науки 29 KB
  Этика науки Современная наука имеет ряд особенностей качественно отличающих ее от науки даже недавнего прошлого. Довольно быстро обнаружились и некоторые опасности связанные с возможным применением достижений современной науки. Этика науки изучает нравственные основы научной деятельности. Этические проблемы науки рождались в связи с развитием физики биологии в частности генетики психологии.
78848. Научная рациональность и ее типы 29 KB
  Научная рациональность и ее типы Основными свойствами научной рациональности являются: объектная предметность эмпирическая или теоретическая однозначность доказанность проверяемость способность к улучшению. Наука это прежде всего специфическая форма культуры порождающая особую агрессивную форму рациональности развивающуюся в сложном историческом социокультурном контексте. Анализ научной рациональности и научного знания является комплексным междисциплинарным исследованием предусматривающим синтез различных видов и форм знаний. ...
78849. Научное, ненаучное, псевдонаучное знание 30.5 KB
  Научное ненаучное псевдонаучное знание. Научное знание система знаний о законах природы общества мышления. Научное знание составляет основу научной картины мира и отражает законы его развития. Научное знание: является результатом постижения действительности и когнитивной основой человеческой деятельности; социально обусловлено; и обладает различной степенью достоверности.
78850. Метатеоретический уровень научного знания 26.5 KB
  мета за после это теория о теории: объектом научного анализа для метатеории выступает сама теория. Метатеоретический подход не просто реорганизует научное знание является не только способом научного анализа теории но производит в ней сдвиги содержательного порядка порождает новое знание. Рефлексия является своеобразным способом развития самого содержания знания одним из важных путей разработки теории Дело в том что плодотворен сам по себе выход за пределы теории отстраненный взгляд на нее. На основе метатеории в процессе...