Визуальное проектирование структуры базы данных.

Цель работы: познакомить с принципами разработки и внедрения SQL-сценариев при проектировании структуры базы данных; научиться работе в графическом построителе базы данных

Ø Определение типов данных таблиц

Назначая типы данных колонкам таблиц, можно использовать "свои" типы — домены.

Таблица 3 - Типы полей таблиц БД DB.gdb

Имя таблицы Имя поля Тип Длина Десятичная часть

Owner

NOn SMALLINT    
Ow CHAR 10  
AdO CHAR 20  

Lease

NLease SMALLINT    
Tn SMALLINT    
AdT CHAR 20  
NOn SMALLINT    
AdR CHAR 20  
LDate DATE    

Realty

AdR CHAR 20  
Тур CHAR 20  

Rent

Тур CHAR 20  
Rn NUMERIC 6 2

 

Таблица 4 - Описание доменов базы данных

Имя поля Тип Длина Значение по умолчанию Ограничения
dnNum SMALLINT -   0
dnOwTn CHAR 10   нет
dnAddrs CHAR 20   нет
dnTyp CHAR 20 1-к. квартира 1-к.квартира 2-к.квартира дом
dnRn NUMERIC 6,2 60 > 0
dnDATE TIMESTAMP -   <= "TODAY"

 

Ø Создание доменов

Для создания домена выберите команду Database-> New Domain. В появившемся окне Domain вводится информация о доменах. Name – имя домена, Field Type – тип поля домена, Size/Scale – размер поля, Not Null – обязательное ли поле, Default Source – значение по умолчанию, Check – проводимая проверка (например, value > 0, т.е. значение поля должно быть больше нуля). Добавление нового домена производится нажатием на кнопку со значком «+», удаление – «-».

После заполнения данных о доменах следует нажать на кнопку Compile(значок в виде молнии) или Ctrl-F9. В появившемся окне произойдет создание доменов и будут выведены ошибки(если таковые будут найдены). Внизу есть кнопки: Commit(применить изменения) и Rollback(откатить изменения). Если ошибок не обнаружено, то нажмите на кнопку Commit.

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

Для создания таблицы выберите команду Database->New T able. В появившемся окне вводится информация о полях таблицы. Параметры поля можно задать вручную, а можно доменом. Для задания доменом следует указать в поле Domain нужный домен. Создание нового поля производится нажатием на кнопку Add Field(вторая после кнопки с молнией), добавление происходит в конец списка полей. Следующая кнопка(Insert Field) производит добавление в начало списка полей. Кнопка после(Drop / Delete Field) удаляет поле.

После задания полей следует нажать на кнопку Compile(кнопка с молнией) или Ctrl-F9. В появившемся окне, как и при создании доменов, будут кнопки Com m it и Rollback. Для применения изменений нужно нажать на Commit.

Ø
Создание ключей

Для создания внешнего ключа перейдите на вкладку Constraints(ограничители), в которой надо перейти на вкладку 2. Foreign keys. В появившеся таблице нажмите правой кнопкой мыши на шапку таблицы и выберите команду New foreign key или нажмите на клавишу Insert. Будет добавлен внешний ключ и следует задать поле и таблицу, на которую ссылается ключ. Описание полей таблицы внешних ключей :

Constraint Name – название внешнего ключа

On Field – какое поле данной таблицы будет ссылаться на другую

FK Table – на какую таблицу будет ссылаться внешний ключ

FK Field – на какое поле другой таблицы будет ссылаться ключ

Главный (первичный) ключ создается на соседней вкладке слева 1. Primary key , создаются так же как и внешние, но надо указать только имя ключа и ключевое поле.


ЛАБОРАТОРНАЯ РАБОТА № 4

Отображение данных на клиенте.

Цель работы: познакомить с принципами отображения данных контейнеров в клиентском приложении, разработанном в среде Borland Delphi 7

1. Создать обычное VCL-приложение Delphi.

2. Поместить на форму компоненты из вкладки InterBase — IBDatabase и IBTransaction. Эти компоненты служат для соединения с конейнером(IBDatabase) и проведения танзакций( IBTransaction ).

3. По компоненту IBDatabase формы щелкните два раза левой кнопкой мыши и появившееся окно заполните следующим образом:

В поле Database укажите путь к своему контейнеру InterBase(удобно воспользоваться кнопкой Browse, которая вызовет стандартный диалог Windows выбора файла). Флаг Login Promt отвечает за запрос логина и пароля при подключении к контейнеру(для отладки программы удобнее это отключить).

4. Затем измените свойство Connected у IBDatabase на значение true (произойдет подключение к контейнеру). В свойстве DefaultTransaction укажите компонент IBTransaction формы.

5. Компоненту IBTransaction формы в свойстве DefaultDatabase укажите свой IBDatabase. После установите свойство Active в значение true.

6. Затем установите на форме компоненты IBTable для каждой таблицы в контейнере (или сколько там вам нужно...). Задайте им свойство Database своим IBDatabase. Выберите таблицу в свойстве TableName и установите свойство Active в true.

7. Для возможности отображения таблиц при помощи компонента DBGrid(из вкладки Data Controls) создайте для каждой таблицы Datasource и укажите им соответствующие IBTable (свойство DataSet). Укажите DBGrid соответствующие Datasource.


В итоге должно получиться примерно следующее:

Примечание: при активировании таблиц возможно не будут отображаться данные в них, ничего в этом страшного нет, но, если после запуска программы они так и не появились, то вы сделали что-то не так ;)

Для связывания таблиц используются свойства MasterSource и MasterFields у компонентов IBTable. В MasterSource подчиненной таблицы указывается Datasource главной таблицы, а в MasterFields поле, по которму производится связывание. Связи таблиц можно установить как и в Object Inspector'е так и написать вручную в коде программы, например для события формы OnShow().

К примеру:

procedure TForm1.FormShow(Sender: TObject);

begin

TLEASE.Active:=false; TOWNER.Active:= false; TREALTY.Active:= false; TRENT.Active:=false;

TRENT.MasterSource := DREALTY; TRENT.MasterFields := 'TYP';

TREALTY.MasterSource := DLEASE; TREALTY.MasterFields := 'ADR';

TOWNER.MasterSource := DLEASE; TOWNER.MasterFields := 'NON';

TLEASE.Active := true; TOWNER.Active := true; TREALTY.Active := true; TRENT.Active:= true;

end;

Перед установкой связей следует деактивировать связываемые таблицы, а после - активировать снова.


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