Автоматизированная система анализа государственных контрактов

Дипломная работа - Компьютеры, программирование

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

sact-SQL.

5.Дистрибутивы Firebird существуют под Windows, Linux, Unix, Solaris, MacOS, под 32-х и 64-х битную архитектуру.

6.Firebird SQL Server - сервер баз данных основанный на открытом исходном коде Interbase 6.0. Распространяется бесплатно и не имеет лицензионных ограничений.

 

2.3 Использование языка запросов

 

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

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

1.INSERT - используется для добавления новой строки в таблицу базы данных.

2.DELETE - используется для удаления строки из таблицы.

3.UPDATE - используется для изменения строки таблицы в базе данных.

4.SELECT - используется для формирования различных инструкций при считывании данных из таблицы или множества таблиц.

Также язык SQL использовался при создании таблиц базы данных.

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

Основной принцип теории реляционных баз данных состоит в том, что каждый кортеж любого отношения может быть однозначно идентифицирован. Атрибут или сочетание атрибутов, обеспечивающих однозначность идентификации, называется первичным ключом (primary key). В таблице может быть определен только один первичный ключ. Firebird SQL Server использует ограничение Primary Key для гарантии, что уникальность значений в указанных полях никогда не будет нарушена.

Реляционная модель требует, чтобы каждая строка была уникальна, это требуется для решения проблем избыточности данных и предохраняет от случайного добавления одной или нескольких повторяющихся строк в таблицу. Так, для таблицы Исполнитель необходимо устранить повторяющиеся строки, поэтому был использован уникальный ключ unique, который помогает однозначно идентифицировать исполнителя по названию и адресу (вероятность того, что будут обращаться к двум разным исполнителем с одинаковыми названиями и адресом очень мала):

 

CREATE TABLE ISPOLN (_ISP INTEGER NOT NULL,VARCHAR(30) CHARACTER SET UTF8 NOT NULL,VARCHAR(30) CHARACTER SET UTF8,VARCHAR(30) CHARACTER SET UTF8,INTEGER,INTEGER,_S INTEGER,VARCHAR(30) CHARACTER SET UTF8,_S INTEGER

);

/*** Primary Keys ***/TABLE ISPOLN ADD CONSTRAINT PK_ISPOLN PRIMARY KEY (ID);

/*** Unique Constraints ***/TABLE ISPOLN ADD CONSTRAINT UNQ1_ISPOLN UNIQUE KEY (ID);

 

Для поддержания логических связей между таблицами Firebird SQL Server использует внешний ключ, который соответствует первичному ключу другой таблицы. Например, между двумя таблицами Подразделение и Государственные контракты существует связь один-ко-многим между полями id (код подразделения) и podr. Между таблицами Исполнитель и Государственные контракты также существует связь по полям id (код исполнителя) и isp, а также между таблицей Государственные контракты и Вид работ существует еще одна связь по полям id (код вида работ) и vid_rab. Таким образом, таблица Государственные контракты связана с тремя таблицами, связь между которыми была определена при создании таблицы:

 

CREATE TABLE GOS_CONTR (INTEGER NOT NULL,VARCHAR(20) CHARACTER SET UTF8,DATE,VARCHAR(20) CHARACTER SET UTF8,_RAB VARCHAR(30) CHARACTER SET UTF8,VARCHAR(20) CHARACTER SET UTF8,INTEGER

);

/*** Primary Keys ***/TABLE GOS_CONTR ADD CONSTRAINT PK_GOS_CONTR PRIMARY KEY (ID);

/*** Foreign Keys ***/TABLE GOS_CONTR ADD CONSTRAINT FK_GOS_CONTR_1 FOREIGN KEY (ISP) REFERENCES ISPOLN (ID) ON DELETE SET NULL ON UPDATE CASCADE;TABLE GOS_CONTR ADD CONSTRAINT FK_GOS_CONTR_2 FOREIGN KEY (VID_RAB) REFERENCES VID_RAB (ID) ON DELETE SET NULL ON UPDATE CASCADE;TABLE GOS_CONTR ADD CONSTRAINT FK_GOS_CONTR_3 FOREIGN KEY (PODR1) REFERENCES PODRAZDELENIYA (ID) ON DELETE SET NULL ON UPDATE CASCADE;

 

2.4 Механизмы доступа к данным

 

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

Компонент IBConnection используется для соединения с хранилищем данных SQLdb.

Пакет SQLdb включает следующие компоненты:

TSQLQuery потомок TDataset и он представляет данные из SQL запроса в виде таблицы. Также этот компонент можно использовать для выполнения запроса, не возвращающих данных.

TSQLTransaction. Создает транзакцию на сервере базы данных. Он имеет методы для фиксации и отката транзакции.

TXXXConnection.

Где XXX название базы данных к которой необходимо подключиться. Каждый из этих компонентов переводит стандартные запросы от SQLQuery и SQLTransaction в запросы к конкретной базе данных, сглаживая их различия. [5]

В нашем случае наиболее оптимальным является использование компонента IBConnection. Он может быть связан с несколькими наборами данных с целью совместного использования соединения для выполнения команд, извлечения данных и выполнения операций с метаданными. Для установления соединения с источником данных SQLdb используется следующая строка соединения:

dm.IBConnection1. DatabaseName:=FileNameEdit1. FileName;

Компонент SQLQuery используется для выполнения запросов SQL, возвращающих результирующий набор, но с этим набором нужно оперировать с помощью другого компонента доступа к данным Dataset:

 

DBGrid1. DataSource. DataSet. Close;.SQLQuery12.SQL. Clear;. SqlQuery12.SQL. Add (select * from isp_gk where PODR=+chr(39)+DBLookupComboBox1. Text+chr(39)+ AND DATA Between +chr(39)+DateEdit1. Text+chr(39)+ AND +chr(39)+DateEdit2. Text+chr(39)+ Order By DATA;);. DataSource. DataSet. Open.

 

2.5 Обеспечение безопасности приложения

 

В настоящее в