Проектирование информационной системы "Страховая компания"

 

Содержание


Введение

. Разработка требования к базе данных

.1 Постановка задачи

.2 Анализ информационных потоков, выбор модели

. Проектная часть

.1 Проектирование базы данных

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

.3 Программирование

Заключение

Список использованной литературы

Приложение

Введение


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

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

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

Целью данной курсовой работы является проектирование информационной системы «Страховая компания».

Для достижения этой цели в работе решаются следующие задачи:

разработать необходимые проектные материалы, такие как бланки документации, структура экономических показателей, модель «сущность-связь», структура реляционной базы данных, реализация запросов средствами реляционной алгебры;

реализовать полученные таблицы в одной из системы управления базами данных;

создать программу работы локальной базы данных;

реализовать запросы средствами языка SQL.

Практическая значимость работы.

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

Структура курсовой работы.

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

1. Разработка требования к базе данных


В процессе разработки требований к базе данных можно выделить следующие этапы:

Постановка задачи.

Анализ информационных потоков, выбор модели.

Рассмотрим эти этапы:


1.1 Постановка задачи


Необходима разработка следующих проектных материалов

бланков входных и выходных документов;

структуры всех экономических показателей;

модели «сущность - связь»;

структуры реляционной БД в 3 нормальной форме;

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

В программной части необходима:

реализация полученных таблиц в одной из СУБД;

программирование работы локальной БД, реализация запросов на языке SQL.


1.2 Анализ информационных потоков, выбор модели


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

В данной курсовой работе требуется разработать приложение для работы с базой данных «Страховая Компания», система управления которой предназначена для автоматизации работы Страховой компании. Страховая компания является промежуточным звеном между страховыми агентами и клиентами. Наличие этого звена необходимо, так как любая страховая компания является посредником в отношениях страховой агент-клиент. На Рисунке 1 отображена рассматриваемая взаимосвязь.


Рисунок 1 - Пример взаимосвязей информационных потоков


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

Основная задача проектирования базы данных - определение количества отношений и их реквизитного состава. Совокупность реквизитов, объединенных в более крупную единицу данных, называется составной единицей информации. На основе последних можно составить входные и выходные документы базы данных «Страховая компания».

Рассмотрим выходной документ «Страховой полис»

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

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

. К заверительной части документа относятся реквизиты: имя страхового агента (оформившего документ) и имя директора страховой компании с подписями, дата.


ОАО «РИКС»

СТРАХОВОЙ ПОЛИС №401

Оформлен на: Ковров С.Л./подпись/


Наименование события страхованияСтрахование ЖизниСрок действия полиса до09.11.2010Периодичность страховых взносов4Сумма страховых взносов100 000Сумма страховых выплат500 000Оплата полиса100 000

Оформил: Климентьева О.П./подпись/

Директор: Крыжная С.В./подпись/

.11.2009


По аналогии разберем входные документы. Один из них: «Сведения о сотрудниках компании».

. В заголовочную часть помещаем такие реквизиты, как наименование документа, название организации, дата составления, так как эти реквизиты относятся ко всему документу.

. К предметным строкам документа отнесем реквизиты: индивидуальный код сотрудника, ФИО сотрудника, наименование отдела (в котором числится страховой агент), оклад (назначенный страховому агенту).

. К заверительной части документа относятся реквизиты: имя директора страховой компании, подпись директора.

Входной документ «Сведения о сотрудниках компании» будет выглядеть следующим образом:


СВЕДЕНИЯ О СОТРУДНИКАХ КОМПАНИИ

ОАО «РИКС»

На 01.01.2009


ИК сотрудникаФИООтделОклад101Климентьева О.П.Страхования Жизни и Здоровья60 000102Артуров А.С.Страхования Жизни и Здоровья60 000103Ермоленко Н.П.Страхования Имущества55 000104Воронцова С.Г.Страхования Имущества55 000105Андреев С.А.Страхование Животных50 000

Директор: Крыжная С.В./подпись/


Еще одним входным документом является документ «Виды страхования».

. К общей части относятся следующие реквизиты: наименование документа, название организации.

. Предметные строки документа отражают следующие реквизиты: код события страхования, наименование события страхования, а так же сферу страхования.

. К заверительной части документа отнесем реквизиты: имя директора страховой компании, подпись директора, дата.


ОАО «РИКС»

ВИДЫ СТРАХОВАНИЯ


Код события страхованияНаименование события страхованияСфера страхования501Страхование ЖизниЖизнь и здоровье502Страхование ЗдоровьяЖизнь и здоровье503Страхование от Несчастного СлучаяЖизнь и здоровье504Страхование НедвижимостиИмущество505Страхование Ценных БумагИмущество506Страхование ЖивотныхЖивотные

Директор: Крыжная С.В./подпись/

.01.2009


На следующем этапе следует продумать структуру экономических показателей путем расчленения всех сведений на показатели, а потом объединить реквизиты родственных показателей по принципу «В одно отношение включается группа экономических показателей с одинаковым составом реквизитов-признаков». Такой подход позволяет создать структуру базы данных с минимальной избыточностью.

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

Здесь следует отметить, что в процессе работы был откорректирован список реквизитов, представленный в задании к курсовой работе. Так был исключен такой реквизит как «Агент, оформивший полис», так как разрабатываемая база данных будет позволять связь между страховым полисом и списком всех страховых агентов. Так же в представленный список были добавлены следующие реквизиты: «Код клиента», «Код отдела» (для обеспечения лучшей автоматизации работы с базой данных); «Наименование события страхования» (для представления более полной и понятной информации); «Оплата за полис, Оклад» (для реализации расчета заработной платы).


ОСНОВАНИЯПРИЗНАКИОкладИК агентаСумма взносовФИО агентаСумма выплатИК отделаОплата за полисНазвание отделаЗарплатаРуководитель отделаИК клиентаФИО клиентаИК события страхованияСобытие страхованияИК полисаСрок действия доПериодичность взносовДата составления

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

У основания «Оклад» необходимо установить, назначается ли оклад на договорной основе для каждого сотрудника или же он является фиксированным. Предположим, что каждый страховой агент, заключая договор, оговаривает свой оклад, тогда необходимыми признаками для этого показателя будут «ИК Агента», «ФИО агента», «ИК Отдела», «Название Отдела», «Руководитель Отдела» (информация об агенте, имеющим определенный оклад).

В результате структура показателя П1 примет вид:

П1 (ИК Агента, ФИО агента, ИК Отдела, Название Отдела, Руководитель Отдела, Оклад)

Для показателя П2 основанием является «Сумма взносов», определяемый каждым отдельным страховым полисом, следовательно данный показатель будет выглядеть следующим образом:

П2 (ИК Полиса, ИК Клиента, ФИО Клиента, Срок Действия до, Периодичность Взносов, Дата Составления, Сумма Взносов)

Показатель ПЗ имеет основание «Сумма выплат», которое является аналогичным основанию «Сумма взносов», таким образом, содержания показателя П3 и П2 будут идентичными.

П3 (ИК Полиса, ИК Клиента, ФИО Клиента, Срок Действия до, Периодичность Взносов, Дата Составления, Сумма Выплат)

Основание «Оплата за полис» так же определяется каждым отдельным страховым полисом, однако предположим, что оплата не зависит от периодичности страховых взносов, тогда показатель П4 будет выглядеть следующим образом:

П4 (ИК Полиса, ИК Агента, ФИО агента, ИК Клиента, ФИО Клиента, Дата Составления, Оплата за Полис).

«Зарплата» в показателе П5 является результатом вычисления:

«Зарплата» = «Оклад» + «Оплата за полис», поэтому признаки показателя П5 получаются в результате объединения признаков показателей П1 и П4.

П5 (ИК Полиса, ИК Агента, ФИО агента, ИК Отдела, Название Отдела, Руководитель Отдела, ИК Клиента, ФИО Клиента, Дата Составления, Зарплата).

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

Методом, решающим этот недостаток является построение модели данных.

Модель данных - это совокупность трех составляющих:

множество информационных конструкций, допускаемых этой моделью;

множество допустимых операций над данными;

множество ограничений, наложенных на информационные конструкции.

Иными словами модель данных - это инструмент для представления данных в базе данных.

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

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

В проектируемой базе данных сущностями будут являться: АГЕНТ, ОТДЕЛ, КЛИЕНТ, СОБЫТИЯ СТРАХОВАНИЯ, ПОЛИС.

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

Атрибут - поименованная характеристика сущности. Примерами атрибутов для сущности КЛИЕНТ будут индивидуальный код клиента, его фамилия, имя, отчество и т.д.

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

Связь - ассоциирование двух или более сущностей. Для выявления связей между сущностями необходимо, как минимум, определить сами сущности и их атрибутный состав. Построим модель «сущность-связь»


Рисунок 2 - Модель «сущность-связь»

Переход от модели «сущность-связь» к реляционной модели данных осуществим через нормализацию.

В реляционной модели данных информационной конструкцией является отношение (таблица); операциями - проекция, выборка и соединение; ограничением - функциональная зависимость.

По определению, в отношении R(A,B) реквизит А функционально определяет реквизит В, если в любой момент времени каждому значению А соответствует единственное значение В.

На первом шаге алгоритма приведения отношений к третьей нормальной форме, составим все функциональные зависимости рассматриваемой предметной области:

код агента --> ФИО агента

код агента --> код отдела

код агента --> оклад

код отдела --> название отдела

код отдела --> руководитель отдела

код клиента --> ФИО клиента

код события страхования --> событие страхования

код полиса --> код агента

код полиса --> код клиента

код полиса --> код события страхования

код полиса --> срок действия полиса до

код полиса --> периодичность взносов

код полиса --> сумма взносов

код полиса --> сумма выплат

код полиса --> дата составления

код полиса --> оплата за полис

На шаге 2, применяя теорему 2, имеющую следующий вид

А?В, А?С => А?В, С,

получим пять функциональных зависимостей:

код агента --> ФИО агента, код отдела, оклад

код отдела --> название отдела, руководитель отдела

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

код клиента --> ФИО клиента

код события страхования --> событие страхования

В этих функциональных зависимостях отсутствуют неполные и транзитивные функциональные зависимости

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

Код полиса.

Для каждой функциональной зависимости создадим проекцию исходного отношения:

Т1= R [код агента, ФИО агента, код отдела, оклад]

Т2= R [код отдела, название отдела, руководитель отдела]

Т3= R [код клиента, ФИО клиента]

Т4= R [код события страхования, событие страхования]

Т5= R [код полиса, код агента, код клиента, код события страхования, срок действия полиса до, периодичность взносов, сумма взносов, сумма выплат, дата составления, оплата за полис]

Таким образом, переход к третьей нормальной форме привел в данном примере к пяти отношениям.

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

Выдать информацию о событиях страхования без страховых выплат

Этот запрос относится ко второму типу: (?)@v, где @ - один из знаков сравнения, v- одно из значений неключевого атрибута А

Запрос будет выглядеть так:

Сумма страховых выплат (номер страхового полиса, ФИО агента, ФИО клиента, код события страхования)=0

Вход запроса: Сумма страховых выплат

Выход запроса: номер страхового полиса, ФИО агента, ФИО клиента, код события страхования

Оболочка запроса: Сумма страховых выплат, номер страхового полиса, ФИО агента, ФИО клиента, код события страхования

Вывести список просроченных полисов

Данный запрос также относится ко второй форме:(?)@v, где @ - один из знаков сравнения, v- одно из значений неключевого атрибута А

Составим запрос:

Срок действия страхового полиса (номер страхового полиса, ФИО агента, ФИО клиента)< дата

Вход запроса: Срок действия страхового полиса

Выход запроса: номер страхового полиса, ФИО агента, ФИО клиента

Оболочка запроса: Срок действия страхового полиса, номер страхового полиса, ФИО агента, ФИО клиента

Для пояснения последнего запроса приведем пример.

Вывести список просроченных полисов на 6.11.2009.

Выполняя этот запрос средствами реляционной алгебры, получим:

Срок действия страхового полиса (номер страхового полиса, ФИО агента, ФИО клиента)<06.11.09.

2. Проектная часть

база данная страховой полис

В проектной части необходимо выполнить следующие этапы:

Проектирование базы данных (определение состава полей её таблиц и связей между ними).

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

Программирование выполнения операций над данными.

Отладка программы.


2.1 Проектирование базы данных


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

В проектируемой базе данных должно быть пять таблиц (исходя из полученных пяти отношений в 3НФ). В таблице Agent - будут храниться все необходимые сведения о сотрудниках компании - с указанием отдела (специализации агента) и его оклада. В таблице Otdel разместим сведения, указывающие на код отдела, его название и руководителя. Таблица Klient будет отражать список клиентов страховой компании с их индивидуальными кодами. В таблице Sob_strah выведем список возможных событий страхования, а так же их коды. Таблица Polis предназначена для хранения сведений о страховых полисах - то есть: дата составления полиса, код агента, оформившего полис, код клиента, на которого был оформлен полис, сумма страховых взносов, сумма страховых выплат и т.п. и.т.д.

Таблица Polis

ИМЯ ПОЛЯНАЗНАЧЕНИЕID_polisaУникальный идентификатор страхового полиса (первичный ключ)Kod_agentaКод агента, составившего страховой полисKod_klientaКод клиента, на которого составлен страховой полисKod_sobitiya_strahovaniyaКод события страхованияSrok_dejstviya_doДата, до которой действителен страховой полисPeriodi4nost_vznosovПериодичность страховых взносовSumma_vznosovСумма страховых взносовSumma_viplatСумма страховых выплатGonorarСтоимость полиса

Таблица Agent

ИМЯ ПОЛЯНАЗНАЧЕНИЕID_agentaУникальный код страхового агента (первичный ключ)FIO_agentaФИО страхового агентаKod_otdelaКод отдела, в котором числится агентOkladРазмер оклада по договору

Таблица Klient

ИМЯ ПОЛЯНАЗНАЧЕНИЕID_klientaУникальный идентификатор клиента (первичный ключ)FIO_klientaФИО клиента

Таблица Otdel

ИМЯ ПОЛЯНАЗНАЧЕНИЕID_otdelaУникальный идентификатор отдела (первичный ключ)Nazvanie_otdelaНаименование отделаRukovoditel_otdelaФИО руководителя отдела

Таблица Sob_strah

ИМЯ ПОЛЯНАЗНАЧЕНИЕID_sobitiya_strahovaniyaУникальный идентификатор события страхования (первичный ключ)Sobitie_strahovaniyaНаименование события страхования2.2 Создание базы данных


Под созданием базы данных подразумевается создание таблиц будущей БД, проектирование связей между ними, а также задание свойств таблиц. При необходимости следует ввести контроль за содержимым полей, проверку правильности введенного в поле значения; добавить вычисляемые и просматриваемые поля. Перед созданием БД необходимо создать каталог, в котором будут размещаться таблицы, и настроить рабочий каталог утилиты DataBase Desktop (File/Working Directory).

После определения структуры таблиц создадим все таблицы базы данных «Страховая компания».

В каждой таблице необходимо создать ключевое поле, чтобы в дальнейшем устанавливать связи между таблицами. Для этого необходимо поставить знак * в столбце Key при занесении ключевого поля. Так для таблицы Polis ключевым будет являться поле - ID_polisa, для таблицы Agent - ID_agenta, Klient - ID_klienta, Otdel - ID_otdela, Sob_strah - ID_sobitiya_strahovaniya.

Таблицы Polis и Agent содержат поля, в которых будет заноситься информация денежного типа (Summa_vznosov, Summa_viplat, Gonorar, Oklad), чтобы отразить это при занесении этих полей в столбце Type указываем значение $.

Таблица Polis содержит поля, указывающих на дату (Srok_dejstviya_do, Data_sostavleniya). Для начала необходимо определить их тип, отмечая в столбце Type значение Date. Так же укажем образец представления этой информации, для чего в строке Picture вводим значение ##.##.##, то есть все даты в базе данных будут отражаться следующим образом: 01.01.10

В данном примере таблица Polis содержит информацию об оформленных страховых полисах, а таблица Agent - списки сотрудников, значащихся в компании. Необходимо задать ссылочную целостность (Referential Integrity) для автоматической блокировки попыток изменения поля связи в родительской таблице, пока соответствующим образом не изменены связанные с ней записи в дочерней таблице.


2.3 Программирование


Важным шагом, конечно же, является конструирование главной и вспомогательных (при необходимости) форм. Delphi предоставляет разработчику широкие возможности быстрого и качественного проектирования графического интерфейса пользователя. Но следует учесть, что разработанное приложение будет являться одним из приложений Windows, и от графического интерфейса, оптимально удобного расположения компонентов - зависит производительность работы пользователя с программным продуктом. Каждое вводимое окно должно быть тщательно продумано и скомпоновано, неудачная компоновка может рассеивать внимание, отвлекать на поиск нужной кнопки и т.д. При проектировании приложения важно правильно определить последовательность фокусировки элементов.

Программирование работы приложения базы данных приведено в листинге (Приложение А).

Для эффективной работы с базой данных «Страховая компания» необходимо установить связи между созданными таблицами, которая представлена на Рисунке 6.

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

Просмотр. Вкладка отражает все созданные таблицы и информацию в них.

Редактирование. Данная вкладка позволяет вносить новую информацию в уже созданные таблицы.

Запросы. На этой вкладке происходит реализация запросов, приведенных в задании курсовой работы.

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


Рисунок 3 - Связь между таблицами


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

Данная процедура позволяет вводить новые данные в таблицу Polis.TForm1.Button1Click(Sender: TObject);.Insert;ID_polisa.Value:=StrToInt(Edit1.Text);Kod_agenta.Value:=StrToInt(Edit2.Text);Kod_klienta.Value:=StrToInt(Edit3.Text);Kod_sobitiya_strahovaniya.Value:=StrToInt(Edit4.Text);Srok_dejstviya_do.Value:=StrToDate(Edit5.Text);Periodi4nost_vznosov.Value:=StrToInt(Edit6.Text);Summa_vznosov.Value:=StrToInt(Edit7.Text);Summa_viplat.Value:=StrToInt(Edit8.Text);Gonorar.Value:=StrToInt(Edit9.Text);Data_sostavleniya.Value:=StrToDate(Edit10.Text);.Post;;

Аналогично реализуется добавление данных и для других таблиц.

Кроме того база данных предполагает фильтрацию таблицы Polis по следующим критериям: по коду события страхования, по коду агента, а также по сроку действия страхового полиса. Фильтрация реализуется с помощью следующей процедуры:TForm1.RadioGroup1Click(Sender: TObject);.Filtered:=true;RadioGroup1.ItemIndex=0 then Table1.Filtered:=false elseRadioGroup1.ItemIndex=1 then

Table1.Filter:='Kod_sobitiya_strahovaniya='''+ComboBox1.Text+'''' elseRadioGroup1.ItemIndex=2 then

Table1.Filter:='Srok_dejstviya_do<='''+Edit22.Text+'''' elseRadioGroup1.ItemIndex=3 then

Table1.Filter:='Kod_agenta='''+ComboBox2.Text+'''';;

Для формирования поставленных в задании запросов воспользуемся языком запросов SQL.

Запрос, который требует выдать информацию о событиях страхования без страховых выплат будет выглядеть так:ID_POLISA, FIO_AGENTA, FIO_KLIENTA, SOBITIE_STRAHOVANIYAPOLIS, AGENT, KLIENT, SOB_STRAH(SUMMA_VIPLAT=0) AND (KOD_AGENTA=ID_AGENTA) AND (KOD_KLIENTA=ID_KLIENTA) AND (KOD_SOBITIYA_STRAHOVANIYA=ID_SOBITIYA_STRAHOVANIYA)

Рассмотрим следующий запрос. Вывести список просроченных полисов.ID_POLISA, FIO_AGENTA, FIO_KLIENTA, SOBITIE_STRAHOVANIYA, SROK_DEJSTVIYA_DOPOLIS, AGENT, KLIENT, SOB_STRAH(SROK_DEJSTVIYA_DO<:data3) AND (KOD_AGENTA=ID_AGENTA)AND (KOD_KLIENTA=ID_KLIENTA)AND (KOD_SOBITIYA_STRAHOVANIYA=ID_SOBITIYA_STRAHOVANIYA)

По заданию необходимо было выполнить реализацию двух запросов, однако в процессе работы было решено рассчитывать зарплату каждого страхового агента по следующей формуле:

Зарплата=Оклад+0,6*sum(Оплата за полис), при этом необходимо учитывать дату начала и конца периода, за который происходит начисления. Таким образом, предпочтительнее реализация этого параметра средствами языка SQL:FIO_AGENTA, (OKLAD+.6*SUM(GONORAR))AGENT, POLIS (KOD_AGENTA=ID_AGENTA)AND(DATA_SOSTAVLENIYA>=:data1)AND(DATA_SOSTAVLENIYA<=:data2) BY FIO_AGENTA

Здесь следует пояснить, параметры data1, data2, data3. Эти параметры позволяют при выполнении запроса самостоятельно вводить значение даты. Реализуется это следующим образом.

Для расчета зарплаты:TForm1.Button7Click(Sender: TObject);.Active:=false;.ParamByName('data1').AsDate:=strtodate(Edit24.Text);.ParamByName('data2').AsDate:=strtodate(Edit25.Text);.Active:=true;;

Для реализации второго запроса:TForm1.Button8Click(Sender: TObject);.Active:=false;.ParamByName('data3').AsDate:=strtodate(Edit26.Text);.Active:=true;;

Заключение


В данной курсовой работе была спроектирована информационная система «Страховая компания».

В процессе создания информационной системы были успешно решены задачи, поставленные в начале работы. Так были разработаны бланки двух входных и одного выходного документов, заявленных в задании; создана и проработана структура экономических показателей, используемых в базе данных «Страховая компания»; спроектирована модель «сущность-связь»; создана структура реляционной базы данных; полученные таблицы реализованы в СУБД; составлена программа работы локальной базы данных; а также с помощью средств реляционной алгебры и языка SQL проведена реализация запросов, заявленных в рамках курсовой работы.

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

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

Разработанная база данных может быть применена для систематизации информации, хранимой в страховых компаниях, и автоматизации процесса пользования этой информацией.

В свете широкого использования IT-технологий, представленная курсовая работа является актуальной и отвечает предъявленным к ней требованиям. Проект разработан и написан на языке программирования высокого уровня Borland Delphi 7.0 с использованием языка SQL.

Список использованной литературы


1. Архангельский А. Я. Программирование в Delphi 5. - М. : ЗАО Издательство БИНОМ, 2000. - 1070 c.

. Гофман В. Э., Хомоненко А. Д. Delphi. Быстрый старт. - СПб. : БХВ - Санкт-Петербург, 2002. - 208 с.

. Культин Н. Б. Delphi 6. Программирование на Object Pascal. Самоучитель. - СПб. : БХВ-Петербург, 2001. - 528 с.

. Фаронов В. В. Delphi 6. Учебный курс. - М. : Издатель Молгачева С. В., 2002. - 672 с.

. Фаронов В. В., Шумаков П. В. Delphi 5. Руководство разработчика баз данных. - М. : Нолидж, 2000. - 640 с.

. Хендерсон К. Руководство разработчика баз данных в Delphi 2 / Пер. с англ. - К. : «Диалектика», 1996. - 544 с.

Приложение


Листинг программы

Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, DB, DBCtrls, Grids, DBGrids, DBTables, ComCtrls,, Spin;= class(TForm): TPageControl;: TTabSheet;: TTabSheet;: TTable;: TDataSource;: TTable;: TTable;: TDataSource;: TDataSource;ID_polisa: TIntegerField;Kod_agenta: TIntegerField;Kod_klienta: TIntegerField;Kod_sobitiya_strahovaniya: TIntegerField;Srok_dejstviya_do: TDateField;Periodi4nost_vznosov: TIntegerField;Summa_vznosov: TCurrencyField;Summa_viplat: TCurrencyField;Gonorar: TCurrencyField;Data_sostavleniya: TDateField;ID_otdela: TIntegerField;Nazvanie_otdela: TStringField;Rukovoditel_otdela: TStringField;ID_sobitiya_strahovaniya: TIntegerField;Sobitie_strahovaniya: TStringField;: TTable;: TTable;: TDataSource;: TDataSource;ID_agenta: TIntegerField;FIO_agenta: TStringField;Kod_otdela: TIntegerField;Oklad: TCurrencyField;ID_klienta: TIntegerField;FIO_klienta: TStringField;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TLabel;: TEdit;: TEdit;: TLabel;: TLabel;: TEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TButton;: TButton;: TButton;: TTabSheet;: TButton;: TDBGrid;: TQuery;: TDataSource;: TEdit;: TEdit;: TLabel;: TLabel;: TPanel;: TPanel;: TButton;: TButton;: TEdit;: TLabel;: TQuery;: TDataSource;: TDBGrid;: TQuery;: TDataSource;: TDBGrid;: TPanel;: TPanel;: TTabSheet;: TLabel;: TLabel;: TDBGrid;: TDBNavigator;: TDBGrid;: TDBGrid;: TDBGrid;: TDBGrid;: TRadioGroup;: TEdit;: TButton;: TComboBox;: TLabel;: TComboBox;: TPanel;: TPanel;: TPanel;: TPanel;: TPanel;Button1Click(Sender: TObject);RadioGroup1Click(Sender: TObject);FormCreate(Sender: TObject);Button2Click(Sender: TObject);Button4Click(Sender: TObject);Button3Click(Sender: TObject);Button5Click(Sender: TObject);Button7Click(Sender: TObject);Button9Click(Sender: TObject);Button8Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;, Month, Day: Word;

{$R *.dfm}TForm1.Button1Click(Sender: TObject);.Insert;ID_polisa.Value:=StrToInt(Edit1.Text);Kod_agenta.Value:=StrToInt(Edit2.Text);Kod_klienta.Value:=StrToInt(Edit3.Text);Kod_sobitiya_strahovaniya.Value:=StrToInt(Edit4.Text);Srok_dejstviya_do.Value:=StrToDate(Edit5.Text);Periodi4nost_vznosov.Value:=StrToInt(Edit6.Text);Summa_vznosov.Value:=StrToInt(Edit7.Text);Summa_viplat.Value:=StrToInt(Edit8.Text);Gonorar.Value:=StrToInt(Edit9.Text);Data_sostavleniya.Value:=StrToDate(Edit10.Text);.Post;;TForm1.RadioGroup1Click(Sender: TObject);.Filtered:=true;RadioGroup1.ItemIndex=0 then Table1.Filtered:=false elseRadioGroup1.ItemIndex=1 then.Filter:='Kod_sobitiya_strahovaniya='''+ComboBox1.Text+'''' elseRadioGroup1.ItemIndex=2 then.Filter:='Srok_dejstviya_do<='''+Edit22.Text+'''' elseRadioGroup1.ItemIndex=3 then.Filter:='Kod_agenta='''+ComboBox2.Text+'''';;TForm1.FormCreate(Sender: TObject);(date,year,month,day);;TForm1.Button2Click(Sender: TObject);.Insert;ID_otdela.Value:=StrToInt(Edit11.Text);Nazvanie_otdela.Value:=Edit12.Text;Rukovoditel_otdela.Value:=Edit13.Text;.Post;;TForm1.Button4Click(Sender: TObject);.Insert;ID_agenta.Value:=StrToInt(Edit14.Text);FIO_agenta.Value:=Edit15.Text;Kod_otdela.Value:=StrToInt(Edit16.Text);Oklad.Value:=StrToInt(Edit17.Text);.Post;;TForm1.Button3Click(Sender: TObject);.Insert;ID_sobitiya_strahovaniya.Value:=StrToInt(Edit18.Text);Sobitie_strahovaniya.Value:=Edit19.Text;.Post;;TForm1.Button5Click(Sender: TObject);.Insert;ID_klienta.Value:=StrToInt(Edit20.Text);FIO_klienta.Value:=Edit21.Text;.Post;;TForm1.Button7Click(Sender: TObject);.Active:=false;.ParamByName('data1').AsDate:=strtodate(Edit24.Text);.ParamByName('data2').AsDate:=strtodate(Edit25.Text);.Active:=true;;TForm1.Button9Click(Sender: TObject);.Active:=false;.Active:=true;;TForm1.Button8Click(Sender: TObject);.Active:=false;.ParamByName('data3').AsDate:=strtodate(Edit26.Text);.Active:=true;;.



Содержание Введение . Разработка требования к базе данных .1 Постановка задачи .2 Анализ информационных потоков, выбор модели . Проектная час

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ