Смекни!
smekni.com

Система управления базами данных (стр. 2 из 3)

Декларативное описание ссылочной целостности: Обеспечивает непротиворечивость и целостность многоуровневых отношений "master-detail" между таблицами

Наборы символов: Firebird поддерживает множество международных наборов символов (включая Unicod) с множеством вариантов сортировки.


1.3 Требования к аппаратному обеспечению

Firebird успешно работает на почти любом аппаратном обеспечении, и на широком спектре операционных систем. Может использоваться даже не очень мощное оборудование, особенно под GNU/Linux. И как в любой СУБД, на производительность влияют: количество памяти, скорость работы дисковой подсистемы, и т. д. Рекомендации для выбора аппаратного обеспечения зависят от требования к системе, прогнозируемого размера базы данных, количества пользователей, и т. д. Вы можете начать с минимальной конфигурации и далее расширять ее по мере надобности.

Физические ограничения:

Firebird поддерживает большие базы данных. Базы данных могут быть расположены в нескольких файлах, предельный размер которых зависит от операционной системы. Теоретический предел в настоящее время составляет 64TB для одного файла базы данных, таким образом, главные ограничения накладываются файловой системой и местом на жестком диске.

1.4 Версии сервера

Существует три различных взаимозаменяемых версии сервера, имеющих каждая свои преимущества.

Классик сервер (один процесс на одно соединение; поддержка многопроцессорных машин).

Суперсервер (все соединения используют один процесс, меньшие требования к памяти при большем быстродействии; для однопроцессорных машин)

Встраиваемая (Embedded) версия (весь движок содержится в одной библиотеке с именем клиентской библиотеки сервера, идеально подходит для однопользовательских систем, не требует инсталляции)

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

1.5 Лицензирование

Firebird выпускается под условиями IPL(InterBase Public License) и IDPL (Initial Developer’s Public License), которые совпадают с условиями Mozilla Public License 1.1. Firebird полностью бесплатен для использования и распространения. Раскрытие исходного кода вашего продукта не требуется, вне зависимости от используемой модели лицензирования. Однако, в случае, если вы модифицировали исходный код сервера, то необходимо сделать доступным исходный код ваших модификаций.

Средства разработки и администрирования

Для Firebird доступно большое количество инструментальных средств, бесплатных и коммерческих. Существуют средства разработки, средства администрирования, библиотеки внешних функций(UDF), средства доступа.

Поддержка

Компания IBPhoenix(В России, например компания iBase) предлагают профессиональную поддержку, выполняемую людьми с многолетним опытом. На сайтах IBPhoenix и iBase.ru находится большое количество технической информации, инструкций и документации.


2. Конструкторская часть

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

Для создания базы данных использовался Ibexpert:

Утилита администрации InterBase (поддерживет InterBase Firebird Yaffil) Работает одновременно с несколькими базами данных. Содержит редакторы для всех объектов БД с синтаксической подсветкой, SQL редактор с историей запросов и возможностью фонового выполнения запросов, отладчик хранимых процедур и триггеров, поиск в метаданных, полное и частичное извлечение данных и метаданных, анализатор зависимостей объектов баз данных, отчеты по метаданным, менеджеры пользователей и пользовательских привилегий, экспорт данных в различные форматы.

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

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

Главное в команде создания таблицы – определение имени таблицы и описание набора имен полей, которые указываются в соответствующем порядке. Кроме того, этой командой оговариваются типы данных и размеры полей таблицы.

Ключевое слово NULL используется для указания того, что в данном столбце могут содержаться значения NULL. Значение NULL отличается от пробела или нуля – к нему прибегают, когда необходимо указать, что данные недоступны, опущены или недопустимы. Если указано ключевое слово NOT NULL, то будут отклонены любые попытки поместить значение NULL в данный столбец. Если указан параметр NULL, помещение значений NULL в столбец разрешено. По умолчанию стандарт SQL предполагает наличие ключевого слова NULL.

CREATE GENERATOR GEN_GORODA_ID;

CREATE TABLE GORODA (

ID_GOR INTEGER NOT NULL,

NAZVANIE VARCHAR(30) NOT NULL,

DOLGOTA INTEGER,

SHIROTA INTEGER,

ID_STR INTEGER NOT NULL);

с помощью этого кода создается таблица города, она состоит из следующих столбцов:

id_gor – индентефикатор города, данное поле не может быть пустым.

nazvanie- это поле содержит название города, оно не может превышать 30 символов.

id_str – индентификатор страны к которой принадлежит город.

dolgota- долгота на которой находится данный город.

shirota- широта на которой находится данный город.

CREATE GENERATOR GEN_STRANA_ID_STR;

CREATE TABLE STRANA (

ID_STR INTEGER NOT NULL,

NAZVANIE VARCHAR(30) NOT NULL,

STOLICA VARCHAR(30) NOT NULL,

NASELENIE INTEGER);


Таблица страны:

id_str – индентификатор страны

nazvanie- это поле содержит название страны

stolica – в данном поленаходится столица выбранной страны

naselenie- население данной страны(в млн).

CREATE TABLE LOG (

"WHEN" TIMESTAMP,

"USER" VARCHAR(20),

"ACTION" CHAR(3));

Таблица лог: данная таблица содержит информацию о том Кто? Когда? и что сделал(удалил,изменил,вставил)?

When- дата дейстивя;

User- кто совершает действия;

Action- показывает действие которое совершает пользователь

2.2 Создание триггеров

REATE TRIGGER TRIG_AI_GOR FOR GORODA

ACTIVE AFTER INSERT POSITION 0

AS

BEGIN

INSERT INTO log VALUES (current_timestamp, current_user, 'INS');

END

Данный триггер следит за действием вставка, если пользователь добавляет новое значение в таблицу goroda, триггер автоматически записывает в таблицу LOG имя пользователя и дату.


CREATE TRIGGER TR_AD_GOR FOR GORODA

ACTIVE AFTER DELETE POSITION 0

AS

BEGIN

INSERT INTO log VALUES (current_timestamp, current_user, 'DEL');

END

Данный триггер отвечает за удаление, если пользователь удалил значение из таблицы goroda, триггер автоматически записывает в таблицу LOG имя пользователя и дату.

CREATE TRIGGER TR_AU_GOR FOR GORODA

ACTIVE AFTER UPDATE POSITION 0

AS

BEGIN

INSERT INTO log VALUES (current_timestamp, current_user, 'UPD');

END

Данный триггер следит за изменением, если пользователь изменил любое поле из таблицы goroda, триггер автоматически записывает в таблицу LOG имя пользователя и дату.

2.3 Создание генераторов

CREATE GENERATOR GEN_GORODA_ID;

SET GENERATOR GEN_GORODA_ID TO 24;

CREATE GENERATOR GEN_STRANA_ID_STR;

SET GENERATOR GEN_STRANA_ID_STR TO 15;


Данные генераторы необходимы для создания триггеров на автоинкремент.

В них можно указать начальное значение автоинкремента.

CREATE TRIGGER TRIG_GORODA FOR GORODA

ACTIVE BEFORE INSERT POSITION 0

as

begin

if(new.id_gor is null) then new.id_gor = gen_id(gen_goroda_id,1);

end

Данный триггер автоматически создает индентификационный номер каждого нового города в таблице goroda.

CREATE TRIGGER TRIG_STRANA FOR STRANA

ACTIVE BEFORE INSERT POSITION 0

AS BEGIN

IF (NEW.Id_str IS NULL) THEN NEW.Id_str = GEN_ID(gen_strana_id_str,1);

END

Тоже самое делает и ‘тот триггер.только для таблицы strana,отметим что индентификационный номер каждой новй страны или города увеличивается на 1.

2.4 Создание Хранимых процедур

CREATE PROCEDURE STRANA_1

RETURNS (

STRANA_S VARCHAR(30),

GOROD_G VARCHAR(30),

NASELENIE_S INTEGER)

AS

begin

for select strana.nazvanie,goroda.nazvanie,strana.naselenie

from strana,goroda

where(strana.id_str=goroda.id_str)

into :strana_s,:gorod_g,:naselenie_s

do suspend;

end

Данная процедура осуществляет выборку из таблиц Strana и Goroda.

В данном варианте при выполнении хранимой процедуры будут показаны название стран,городов,а так же население стран. Выборка осуществляется по индентификатору страны.

2.5 Разработка приложения для базы данных с помощью Borland Delphi

Основыне компоненты которые использовались для создания приложения:

IBDatabase- Компонент TDatabase позволяет наиболее эффективно управлять подключениями к базам данных. Это управление включает:

- создание постоянного подключения к базе данных;

- отмену установленной по умолчанию регистрации на сервере;

- создание псевдонима BDE на уровне приложения;

- управление транзакциями и определение уровней их разграничения.

IBTransaction- компонент IBTransaction, который будет использоваться в качестве умолчательного для выполнения различных операций IBDatabase. Клиентская часть InterBase допускает выполнение любых действий только в контексте транзакции. Поэтому если вы смогли получить доступ к данным без явного вызова IBTransaction.StartTransaction, то значит где то в недрах IBX этот вызов произошел автоматически. Такое поведение крайне не рекомендуется использовать. Для корректной работы приложений с базой данных желательно управлять транзакциями вручную, то есть явно вызывать методы StartTransaction, Commit и Rollback компонента TIBTransaction.