Разработка базы данных

Реферат - Компьютеры, программирование

Другие рефераты по предмету Компьютеры, программирование

Задание

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

Введение в технологию клиент-сервер

База данных представляет собой набор файлов на сетевом сервере. Характерная особенность архитектуры клиент-сервер является перенос вычислительной нагрузки на сервер БД(SQL сервер), а также максимальная разгрузка клиента от вычислительной работы и существенное укрепление данных. Взаимодействие сервера и клиента реализуется с помощью SQL запросов, которые формирует и отсылает серверу клиент. Сервер, приняв запрос, выполняет его и возвращает результат клиенту. В клиентском приложении в основном осуществляется интерпретация полученных от сервера данных, реализация пользовательского интерфейса, а также реализация части бизнес - правил.

Преимущества архитектуры клиент сервер:

  1. Большинство вычислительных процессов происходит на сервере, что снижает требования к вычислительной мощности клиента.
  2. Снижается сетевой трафик, так как пересылаются не все данные, а только запрошенные.
  3. БД на сервере представляет единый файл, в котором содержатся таблицы, ограничения целостности и другие компоненты БД. Взломать, похитить или испортить такую БД значительно труднее; существенно увеличивается защищенность БД от ввода неправильных значений. Кроме того для каждого пользователя устанавливаются свои уровни доступа.
  4. Сервер реализует управление транзакциями и предотвращает попытки одновременного изменения одних и тех же данных.

Сервер базы данных

При выборе сервера базы данных я остановился на промышленном сервере InterBase. InterBase родной сервер для Delphi. Для доступа к нему не нужно устанавливать дополнительных драйверов. Все данные хранятся на сервере в файле baze.gdb.

Предметная область

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

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

Структура таблиц и связей между ними:

 

 

Форматы полей в таблицах:

CREATE TABLE CHASTT (

KOD INTEGER NOT NULL,

VCH VARCHAR(20) NOT NULL

)

CREATE TABLE MODELL (

KOD3 INTEGER NOT NULL,

MODEL VARCHAR(160) NOT NULL,

K2 INTEGER

)

CREATE TABLE NAIMM (

KOD2 INTEGER NOT NULL,

NAIM VARCHAR(160) NOT NULL,

K1 INTEGER

)

CREATE TABLE RAZDELL (

KOD1 INTEGER NOT NULL,

RAZDEL VARCHAR(160) NOT NULL

)

CREATE TABLE SVODKA (

KOD5 INTEGER NOT NULL,

SERNO VARCHAR(20),

K4 INTEGER NOT NULL,

SER FLOAT,

ZOL FLOAT,

PT FLOAT,

PG FLOAT,

DVIP CHAR(4),

DVVOD CHAR(4),

DSPIS CHAR(4),

SROK SMALLINT,

KATEGOR SMALLINT,

CENA FLOAT,

PRIMECH CHAR(200),

K3 INTEGER

)

Между полями в таблицах установлена ссылочная целостность согласно рисунку 1.

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

CREATE TRIGGER NOVOE FOR RAZDELL BEFORE INSERT POSITION 0 AS

BEGIN

new.kod1 = gen_id(gen1,1);

END

Удаленными процедурами не пользовался хватило возможностей sql запросов для реализации всех потребностей.

Задал индексы по полям: Modell.model, naimm.naim, chastt.vch, razdell.razdel для увеличения скорости выполнения запросов.

Проектирование приложения в среде Delphi

Используемые средства

Приложение было написано в среде Delphi 7 на компьютере Athlon 1600+XP, что очень плохо, потому что приложение написано для компьютера, намного уступающего по мощности моему. Платформа БД InterBase 6.0.

Формы

 

Первая форма типа DataModule “DM”, на которой располагаются не визуальные компонента доступа к данным. Вид формы на этапе проектирования:

Для доступа к данным я использовал компоненты со вкладки InterBase, характерной особенностью которых является то, что они не обращаются к BDE и являются более компактными и быстрыми.

Назначение компонентов:

  1. IBDataBase1 создает соединение с БД InterBase. Есть свойство DataBaseName, которое указывает имя физической БД, с которой связан компонент. При связи с удаленной БД по протоколу TCP/IP имя записывается в формате . При запуске приложения расположение БД берется из файла del.ini:

Inii := TIniFile.Create(getcurrentdir+'\del.ini');

try

str:=Inii.ReadString( 'Baza', 'Put', '');

ibdatabase1.databaseName:=str;

IBDatabase1.Connected:=true;

IBTransaction1.Active:=true;

IBTable1.Active:=true;

IBTable2.Active:=true;

IBTable3.Active:=true;

IBTable4.Active:=true;

IBTable5.Active:=true;

IBTable44.Active:=true;

Текст файла del.ini, если БД на локальном компьютере в папке D:\interBase:

[Baza]

Put=D:\interBase\base.gdb

Следущее использованное свойство Params, которое содержит список параметров, которые передаются серверу в момент соединения:

USER_NAME=SYSDBA

PASSWORD=masterkey

lc_ctype=WIN1251

Тут задается имя пользователя и пароль окно с запросом пароля при подключении не появляется.

  1. IBTranzaction1 транзакция
  2. IBTable~ - аналог TTable. Отличается тем, что работает быстрее и грузит данные по надобности.
  3. IBQyery~ - аналог TQuery.
  4. OPDial окно выбора файла для загрузки запроса из файла.

При попытке сохранения записи в таблицу Svodka запускается процедура:

procedure TDM.IBTable1BeforePost(DataSet: TDataSet);

begin

if ibtable1.fiel