База данных страховой компании

Курсовая работа

1. Инфологическое проектирование

1.1 Анализ Предметной области

  • Страховщик — один — это Страховая компания (юридическое лицо) может заключать несколько разных типов договоров Страхования со Страхователями (их может быть несколько)
  • В случае заключения Договора страхования Страховщик должен оформить Полис;
  • Каждый Страхователь может заключить Договор на нескольких человек (Застрахованных), Страхователей может быть несколько на 1 застрахованного и наоборот (если выбраны разные виды Страхования), но на 1 полис — 1 Страхователь;
  • Каждый Застрахованный вправе назначить Выгодоприобретателей (например, в случае смерти Застрахованного вся страховая сумма (или %) достается определенному Выгодоприобретателю, им же может служить Страхователь);
  • Различные полисы включают в себя Различные страховые суммы и выплачиваются Застрахованному в случае, описанном в Договоре Страхования;

Для создания ER-диаграммы необходимо выделить сущности предметной области:

1) Страхователь

2) Страховщик

3) Полис : Атрибуты: Дата оформления, серия, номер полиса, срок действия (начало и конец срока действия), вид страхования жизни, Статус (выплачена компенсация, пока не пригодился), ФИО представителя Страховой Компании, заключающего договор страхования и должность сотрудника;

4) Застрахованный

5) Выгодоприобретатель

6) Страховые расчеты

1.2 Анализ информационных задач и круга пользователей системы

Определим основные группы пользователей, их основные задачи и запросы к БД

1 Должностные лица СК:

Оформление нового договора

Получение сведений о текущих полисах

Продление или расторжение договора (изменение срока действия в полисе)

Получение сведений об оформленных полисах за определенный срок

2 Начальство СК:

Получение сведений о текущих полисах

Получение сведений об оформленных полисах за определенный срок

Статистика финансовых расчетов

3 Страхователь

Получение сведений об оформленном полисе

4 Застрахованный , Выгодоприобретатель

Получение сведений об оформленном полисе

5 Бухгалтерия СК:

Просмотр текущих Полисов

Внесение изменений в таблицу страховых расчетов

Статистика финансовых расчетов

6 Администратор БД

16 стр., 7694 слов

Реферат страхование выставок

... сроками страховые взносы. Страхования на Руси. Появление страхования на Руси связывают с памятником древнерусского права - “Русской правдой”, которая дает интересные сведения о законодательстве 10- ... обе эти формы страхования существуют параллельно или дополняя друг друга. Такой характер, видимо, носили организации постоянного профессионально-корпоративного типа, сведения о которых восходят ...

Все права

2. Определение требований к операционной обстановке

Для выполнения этого этапа необходимо знать (хотя бы ориентировочно) объём работы организации (т.е. количество проектов и сотрудников), а также иметь представление о характере и интенсивности запросов. Объём внешней памяти, необходимый для функционирования системы, складывается из двух составляющих: память, занимаемая модулями СУБД (ядро, утилиты, вспомогательные программы), и память, отводимая под данные (МД).

Для реальных баз данных обычно наиболее существенным является МД. На основе результатов анализа ПрО можно приблизительно оценить объём памяти, требуемой для хранения данных.

Примем ориентировочно, что:

  • одновременно действуют около сотни полисов, действие полиса продолжается в среднем 2 года (по 1К на каждый полис);
  • оформление каждого полиса состоит в среднем из трех этапов (Заключение договора, Оформление полиса, Расчет страховых выплат) (по 0,5К на этап);
  • в компании работают 50 сотрудников (по 0,5К на каждого сотрудника);
  • в оформлении полиса в среднем участвуют 3 человека (по 0,2К);
  • устаревшие данные переводятся в архив (накапливаются в архиве БД).

Тогда объём памяти для хранения данных за первый год примерно составит:

Mд= 2(100*1+10*3*0,5+50*0,5+(100*3*0,2))= 400К,

Коэффициент 2 необходим для того, чтобы учесть необходимость выделения памяти под дополнительные структуры (например, индексы).

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

3. Выбор СУБД и других программных средств

Анализ информационных задач показывает, что для реализации требуемых функций подходят почти все СУБД для ПЭВМ (MS Access, Firebird, MySQL и др.).

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

MySQL 6.0

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

Немаловажным фактором является ее бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License).

4. Логическое проектирование БД

4.1 Немного о преобразовании ER-диаграммы в схему БД

Преобразование ER-диаграммы в схему БД выполняется путем сопоставления каждой сущности и каждой связи, имеющей атрибуты, отношения (таблицы БД).

Обозначения, используемые на схеме базы данных:

4.2 Схема реляционной базы данных

полученная из ER-диаграммы:

4.3 Составление реляционных отношений

Таблица Страховщик — InsurerOrg

Содержание поля

Имя поля

Тип (Длина)

Примечания

Наименование

Name

V(30)

Обязательное поле

ИНН

INN

V(12)

От 10 до 12 знаков — Обязательное поле

БИК

BIK

С(9)

Первичный ключ

К/с

Ks

V(20)

Обязательное поле

КПП

Kpp

С(9)

Обязательное поле

Расчетный счет

Schet

V(20)

Обязательное поле

Адрес

Address

V(200)

Обязательное поле

Таблица Страхователь — Insurer

Содержание поля

Имя поля

Тип (Длина)

Примечания

ФИО

Name

V(50)

Обязательное поле

Серия паспорта

Номер паспорта

Pass

C(10)

Первичный ключ

Кем и когда выдан паспорт

WhoPass

V(50)

Обязательное поле

Дата рождения

Birthdate

D

Обязательное поле

Место рождения

Birthplace

V(100)

Обязательное поле

Профессия

Prof

V(20)

Не обязательное поле

Пол

Sex

C(1)

Либо «м», либо «ж», обязательное поле

Работа

WorkCurr

V(100)

Обязательное поле

Телефон

Phone

V(20)

Обязательное поле

E-mail

Mail

V(30)

Необязательное поле

Адрес регистрации

Address

V(200)

Обязательное поле

Фактический адрес

RealAddress

V(200)

Обязательное поле

Судимости

Conviction

C(3)

Либо «да», либо «нет»

база данных страховой компания

Полис — Policy

Содержание поля

Имя поля

Тип (Длина)

Примечания

Серия

Номер

NumberSer

C(25)

Первичный ключ

Дата оформления

DateAcceptation

D

Обязательное поле

Начало действия

EffectiveDate

D

Обязательное поле

Конец действия

ExpirationDate

D

Обязательное поле

Статус

Stat

V(20)

«Выплаты использованы», «Выплаты пока не пригодились», Обязательное поле

ФИО представителя СК

FIO_SK

V(50)

Обязательное поле

Должность представителя СК

WORK_SK

V(30)

Обязательное поле

Вид страхования

Type

V(30)

Значения «travel», «life», «student», «home»

БИК страховщика

BIK_SK

C(9)

Внешний ключ

Серия, номер паспорта страхователя

PassR

C(10)

Внешний ключ

Серия, номер паспорта застрахованного

PassD

C(10)

Внешний ключ

Сумма

SumPolicy

FLOAT Unsigned (20)

Обязательное поле

Вложения — put_money

Содержание поля

Имя поля

Тип (Длина)

Примечания

Fee

FLOAT Unsigned (20)

Обязательное поле

Серия, номер полиса

NumberSer

C(25)

Внешний ключ

Выплаты — Payment

Содержание поля

Имя поля

Тип (Длина)

Примечания

Серия, номер полиса

NumberSer

C(25)

Внешний ключ

Выплаты по смерти

PaymentDeath

FLOAT Unsigned (20)

Обязательное поле

Выплаты по дожитию

PaymentSurv

FLOAT Unsigned (20)

Обязательное поле

Признак адресата

WhoPay

C(1)

По умолчанию «I», выбор из I/B (страхователь/выгодоприобретатель)

Застрахованный — Insured

Содержание поля

Имя поля

Тип (Длина)

Примечания

ФИО

Name

V(50)

Обязательное поле

Серия паспорта

Номер паспорта

Pass

C(10)

Первичный ключ

Кем и когда выдан паспорт

WhoPass

V(50)

Обязательное поле

Дата рождения

Birthdate

D

Обязательное поле

Место рождения

Birthplace

V(100)

Обязательное поле

Профессия

Prof

V(20)

Не обязательное поле

Пол

Sex

C(1)

Либо «м», либо «ж», обязательное поле

Работа

WorkCurr

V(100)

Обязательное поле

Телефон

Phone

V(20)

Обязательное поле

E-mail

Mail

V(30)

Необязательное поле

Адрес регистрации

Address

V(200)

Обязательное поле

Фактический адрес

RealAddress

V(200)

Обязательное поле

Судимости

Conviction

C(3)

Либо «да», либо «нет»

Выгодоприобретатель — Beneficiary

Содержание поля

Имя поля

Тип (Длина)

Примечания

ФИО

Name

V(50)

Обязательное поле

Серия паспорта

Номер паспорта

Pass

C(10)

Первичный составной ключ

Кем и когда выдан паспорт

WhoPass

V(50)

Обязательное поле

Дата рождения

Birthdate

D

Обязательное поле

Место рождения

Birthplace

V(100)

Обязательное поле

Профессия

Prof

V(20)

Не обязательное поле

Пол

Sex

C(1)

Либо «м», либо «ж», обязательное поле

Работа

WorkCurr

V(100)

Обязательное поле

Телефон

Phone

V(20)

Обязательное поле

E-mail

Mail

V(30)

Необязательное поле

Адрес регистрации

Address

V(200)

Обязательное поле

Фактический адрес

RealAddress

V(200)

Обязательное поле

Судимости

Conviction

C(3)

Либо «да», либо «нет»

Серия, номер полиса

NumberSer

C(25)

Внешний ключ

Тип

Type_Ben

V(15)

«Surv» или «Death»

Доля выплат

Percent

FLOAT Unsigned (6)

Процент доли выплаты — обязательное поле

4.4 Нормализация полученных отношений (до 4НФ)

1НФ.

Для приведения таблиц к 1НФ требуется составить прямоугольные таблицы (одно значение атрибута — одна ячейка таблицы) и разбить сложные атрибуты на простые.

Разделим атрибут Адрес (регистрации и фактический) на атрибуты: индекс, область, район, город (или поселение, деревня), дом, строение, квартира;

  • Разделим атрибут Место рождения на атрибуты: индекс, область, район, город (или поселение, деревня);
  • Разделим атрибут Работа на атрибуты: город, компания, название офиса;
  • Разделим атрибут ФИО должностного лица, Застрахованного, Страхователя, Выгодоприобретателя на: Фамилия, Имя, Отчество;
  • Разделим атрибут Должность представителя СК на: Номер подразделения, название должности, рабочий кабинет;

2НФ.

В нашем случае составные первичные ключи отсутствуют.

3НФ.

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

4НФ.

Отношения Страховщик, Застрахованный, Страховые расчеты, Страхователь, Выгодоприобретатель, Вложения, Выплаты, Доля выплат не нарушают 4НФ.

Отношение Полис содержит многозначную зависимость — Представитель СК, Должность представителя СК от ID полиса (серии и номера), так одним полисом могут заниматься несколько человек (оформление, бухгалтерия и так далее).

В результате выделения должности сотрудника — в новой таблице появится транзитивная зависимость Полис =>Представитель СК =>Должность представителя СК. В данном случае вернемся к 3НФ и разобьем таблицу Представителей СК на 2: Представитель СК, Сотрудники

Получили:

Таблица Страховщик — InsurerOrg

Содержание поля

Имя поля

Тип (Длина)

Примечания

Наименование

Name

V(30)

Обязательное поле

ИНН

INN

V(12)

От 10 до 12 знаков — Обязательное поле

БИК

BIK

С(9)

Первичный ключ

К/с

Ks

V(20)

Обязательное поле

КПП

Kpp

С(9)

Обязательное поле

Расчетный счет

Schet

V(20)

Обязательное поле

Индекс

Index_ad

C(6)

Обязательное поле

Область (республика, край)

Area_ad

V(20)

Обязательное поле

Район

Region_ad

V(20)

Обязательное поле

Город (поселение, деревня)

Town_ad

V(20)

Обязательное поле

Дом

House_ad

V(10)

Обязательное поле

Building_ad

V(10)

Обязательное поле (если нет — то «пусто» по умолчанию)

Квартира

Flat_ad

V(5)

Обязательное поле (если нет — то «пусто» по умолчанию)

Таблица Страхователь — Insurer

Содержание поля

Имя поля

Тип (Длина)

Примечания

Фамилия

Surname

V(15)

Обязательное поле

Имя

FirstName

V(15)

Обязательное поле

Отчество

Patronimic

V(15)

Обязательное поле

Серия паспорта

Номер паспорта

Pass

C(10)

Первичный ключ

Кем и когда выдан паспорт

WhoPass

V(50)

Обязательное поле

Дата рождения

Birthdate

D

Обязательное поле

Индекс места рождения

Index_Birth

C(6)

Обязательное поле

Область (республика, край) места рождения

Area_Birth

V(20)

Обязательное поле

Район места рождения

Region_Birth

V(20)

Обязательное поле

Город (поселение, деревня) места рождения

Town_Birth

V(20)

Обязательное поле

Профессия

Prof

V(20)

Не обязательное поле

Пол

Sex

C(1)

Либо «м», либо «ж», обязательное поле

Работа

WorkCurr

V(100)

Обязательное поле

Телефон

Phone

V(20)

Обязательное поле

E-mail

Mail

V(30)

Необязательное поле

Индекс регистрации

Index_reg

C(6)

Обязательное поле

Область (республика, край) регистрации

Area_reg

V(20)

Обязательное поле

Район регистрации

Region_ reg

V(20)

Обязательное поле

Город (поселение, деревня) регистрации

Town_ reg

V(20)

Обязательное поле

Дом регистрации

House_reg

V(10)

Обязательное поле

Building_reg

V(10)

Обязательное поле (если нет — то «пусто» по умолчанию)

Квартира регистрации

Flat_reg

V(5)

Обязательное поле (если нет — то «пусто» по умолчанию)

Индекс фактический

Index_fact

C(6)

Обязательное поле

Область (республика, край) фактическая

Area_ fact

V(20)

Обязательное поле

Район фактический

Region_ fact

V(20)

Обязательное поле

Город (поселение, деревня) фактический

Town_ fact

V(20)

Обязательное поле

Дом фактический

House_ fact

V(10)

Обязательное поле

Building_ fact

V(10)

Обязательное поле (если нет — то «пусто» по умолчанию)

Квартира фактическая

Flat_ fact

V(5)

Обязательное поле (если нет — то «пусто» по умолчанию)

Судимости

Conviction

C(3)

Либо «да», либо «нет»

Полис — Policy

Содержание поля

Имя поля

Тип (Длина)

Примечания

Серия

Номер

Number

C(25)

Первичный ключ

Дата оформления

DateAcceptation

D

Обязательное поле

Начало действия

EffectiveDate

D

Обязательное поле

Конец действия

ExpirationDate

D

Обязательное поле

Статус

Stat

V(20)

«Выплаты использованы», «Выплаты пока не пригодились», Обязательное поле

Вид страхования

TypeIns

V(30)

Значения «travel», «life», «student», «home»

БИК страховщика

BIK_SK

C(9)

Внешний ключ

Серия, номер паспорта страхователя

PassR

C(10)

Внешний ключ

Серия, номер паспорта Застрахованного

PassD

C(10)

Внешний ключ

Сумма

SumPolicy

FLOAT Unsigned (20)

Обязательное поле

Представитель СК — Work_policy

Серия, номер Полиса

SerNum

C(25)

Внешний ключ

Уникальный id пропуска

Id

C(16)

Внешний ключ

Сотрудники СК — worker_SK

Фамилия

Surname

V(15)

Обязательные поля

Имя

FirstName

V(15)

Отчество

Patronimic

V(15)

Должность

Work_dep

V(30)

Обязательное поле

Уникальный пропуска

Id

С(16)

Первичный ключ

Вложения — put_money

Содержание поля

Имя поля

Тип (Длина)

Примечания

Fee

FLOAT Unsigned (20)

Обязательное поле

Серия, номер полиса

NumberSer

C(25)

Внешний ключ

Выплаты — Payment

Содержание поля

Имя поля

Тип (Длина)

Примечания

Серия, номер полиса

NumberSer

C(25)

Внешний ключ

Признак адресата

WhoPay

C(1)

По умолчанию “I”, варианты “I/B”

Выплаты по смерти

PaymentDeath

FLOAT Unsigned (20)

Обязательное поле

Выплаты по дожитию

PaymentSurv

FLOAT Unsigned (20)

Обязательное поле

Застрахованный — Insured

Содержание поля

Имя поля

Тип (Длина)

Примечания

Фамилия

Surname

V(15)

Обязательное поле

Имя

FirstName

V(15)

Обязательное поле

Отчество

Patronimic

V(15)

Обязательное поле

Серия паспорта

Номер паспорта

Pass

C(10)

Первичный ключ

Кем и когда выдан паспорт

WhoPass

V(50)

Обязательное поле

Дата рождения

Birthdate

D

Обязательное поле

Индекс места рождения

Index_Birth

C(6)

Обязательное поле

Область (республика, край) места рождения

Area_Birth

V(20)

Обязательное поле

Район места рождения

Region_Birth

V(20)

Обязательное поле

Город (поселение, деревня) места рождения

Town_Birth

V(20)

Обязательное поле

Профессия

Prof

V(20)

Не обязательное поле

Пол

Sex

C(1)

Либо «м», либо «ж», обязательное поле

Работа

WorkCurr

V(100)

Обязательное поле

Телефон

Phone

V(20)

Обязательное поле

E-mail

Mail

V(30)

Необязательное поле

Индекс регистрации

Index_reg

C(6)

Обязательное поле

Область (республика, край) регистрации

Area_reg

V(20)

Обязательное поле

Район регистрации

Region_ reg

V(20)

Обязательное поле

Город (поселение, деревня) регистрации

Town_ reg

V(20)

Обязательное поле

Дом регистрации

House_reg

V(10)

Обязательное поле

Building_reg

V(10)

Обязательное поле (если нет — то «пусто» по умолчанию)

Квартира регистрации

Flat_reg

V(5)

Обязательное поле (если нет — то «пусто» по умолчанию)

Индекс фактический

Index_fact

C(6)

Обязательное поле

Область (республика, край) фактическая

Area_ fact

V(20)

Обязательное поле

Район фактический

Region_ fact

V(20)

Обязательное поле

Город (поселение, деревня) фактический

Town_ fact

V(20)

Обязательное поле

Дом фактический

House_ fact

V(10)

Обязательное поле

Building_ fact

V(10)

Обязательное поле (если нет — то «пусто» по умолчанию)

Квартира фактическая

Flat_ fact

V(5)

Обязательное поле (если нет — то «пусто» по умолчанию)

Судимости

Conviction

C(3)

Либо «да», либо «нет»

Выгодоприобретатель — Beneficiary

Содержание поля

Имя поля

Тип (Длина)

Примечания

Фамилия

Surname

V(15)

Обязательное поле

Имя

FirstName

V(15)

Обязательное поле

Отчество

Patronimic

V(15)

Обязательное поле

Серия паспорта

Номер паспорта

Pass

C(10)

Первичный ключ

Кем и когда выдан паспорт

WhoPass

V(50)

Обязательное поле

Дата рождения

Birthdate

D

Обязательное поле

Индекс места рождения

Index_Birth

C(6)

Обязательное поле

Область (республика, край) места рождения

Area_Birth

V(20)

Обязательное поле

Район места рождения

Region_Birth

V(20)

Обязательное поле

Город (поселение, деревня) места рождения

Town_Birth

V(20)

Обязательное поле

Профессия

Prof

V(20)

Не обязательное поле

Пол

Sex

C(1)

Либо «м», либо «ж», обязательное поле

Работа

WorkCurr

V(100)

Обязательное поле

Телефон

Phone

V(20)

Обязательное поле

E-mail

Mail

V(30)

Необязательное поле

Индекс регистрации

Index_reg

C(6)

Обязательное поле

Область (республика, край) регистрации

Area_reg

V(20)

Обязательное поле

Район регистрации

Region_ reg

V(20)

Обязательное поле

Город (поселение, деревня) регистрации

Town_ reg

V(20)

Обязательное поле

Дом регистрации

House_reg

V(10)

Обязательное поле

Building_reg

V(10)

Обязательное поле (если нет — то «пусто» по умолчанию)

Квартира регистрации

Flat_reg

V(5)

Обязательное поле (если нет — то «пусто» по умолчанию)

Индекс фактический

Index_fact

C(6)

Обязательное поле

Область (республика, край) фактическая

Area_ fact

V(20)

Обязательное поле

Район фактический

Region_ fact

V(20)

Обязательное поле

Город (поселение, деревня) фактический

Town_ fact

V(20)

Обязательное поле

Дом фактический

House_ fact

V(10)

Обязательное поле

Building_ fact

V(10)

Обязательное поле (если нет — то «пусто» по умолчанию)

Квартира фактическая

Flat_ fact

V(5)

Обязательное поле (если нет — то «пусто» по умолчанию)

Судимости

Conviction

C(3)

Либо «да», либо «нет»

Тип

Type_Ben

V(5)

«Surv» или «Death»

Серия, номер полиса

NumberSer

C(25)

Внешний ключ

Доля выплат

Percent

Float unsigned(6)

Обязательное поле

4.5 Схема реляционной базы данных

полученная в результате нормализации отношений:

4.6 Определение дополнительных ограничений целостности

Перечислим ограничения целостности, которые не указаны в таблицах отношений:

  • Дата рождения людей > 1950 года

Дата оформления = текущий день

Начало действия полиса >= Текущий день + 1

Конец действия полиса >=Текущий день +6

4.7 Описание групп пользователей и прав доступа

Опишем для каждой группы пользователей права доступа к каждой таблице. Права приведены в таблице ниже. Используются следующие сокращения:

  • s — чтение данных (select);