База данных страховой компании
Анализ предметной области, выбор системы управления базами данных. Преобразование ER-диаграммы в базу данных. Составление реляционных отношений. Схема реляционной базы данных. Реализация проекта базы данных для страховой компании.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.05.2016 |
Размер файла | 187,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Московский институт электроники и математики
Национального исследовательского университета
«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»
Кафедра «Вычислительные Системы и Сети»
ОТЧЕТ
о курсовой работе
по курсу «Базы данных»
Тема: «БД Страховой компании»
Исполнитель:
студентка группы С-53
Голенок Е.А.
Руководитель:
Карпова И.П.
Москва, 2013
Содержание работы
1. Инфологическое проектирование
1.1 Анализ Предметной области
1.2 Анализ информационных задач и круга пользователей системы
2. Определение требований к операционной обстановке
3. Выбор СУБД и других программных средств
4. Логическое проектирование БД
4.1 Преобразование ER-диаграммы в базу данных
4.2 Схема реляционной базы данных
4. 3 Составление реляционных отношений
4.4 Нормализация полученных отношений (до 4НФ)
4.5 Схема реляционной базы данных
4.6 Дополнительные ограничения целостности
4.7 Схема реляционной базы данных
5. Реализация проекта базы данных
5.1 Создание таблиц
5.2 Создание представлений, готовых запросов
5.3 Назначение прав доступа
5.4 Создание индексов
5.5 Разработка стратегии резервного копирования
Список литературы
1. Инфологическое проектирование
1.1 Анализ Предметной области
- Страховщик - один - это Страховая компания (юридическое лицо) может заключать несколько разных типов договоров Страхования со Страхователями (их может быть несколько)
- В случае заключения Договора страхования Страховщик должен оформить Полис;
- Каждый Страхователь может заключить Договор на нескольких человек (Застрахованных), Страхователей может быть несколько на 1 застрахованного и наоборот (если выбраны разные виды Страхования), но на 1 полис - 1 Страхователь;
- Каждый Застрахованный вправе назначить Выгодоприобретателей (например, в случае смерти Застрахованного вся страховая сумма (или %) достается определенному Выгодоприобретателю, им же может служить Страхователь);
- Различные полисы включают в себя Различные страховые суммы и выплачиваются Застрахованному в случае, описанном в Договоре Страхования;
Для создания ER-диаграммы необходимо выделить сущности предметной области:
1) Страхователь: Атрибуты: ФИО Страхователя, Серия, номер паспорта, кем и когда выдан, код подразделения, дата рождения, профессия, место работы, контактные данные, Адрес Фактический, Адрес Регистрации, наличие судимостей, серия, номер Полиса;
2) Страховщик: Атрибуты: Наименование юр. лица, ИНН, БИК, к/c, КПП, Адрес;
3) Полис: Атрибуты: Дата оформления, серия, номер полиса, срок действия (начало и конец срока действия), вид страхования жизни, Статус (выплачена компенсация, пока не пригодился), ФИО представителя Страховой Компании, заключающего договор страхования и должность сотрудника;
4) Застрахованный: Атрибуты: ФИО застрахованного лица, Серия, номер паспорта, кем и когда выдан, код подразделения, дата рождения, профессия, место работы, контактные данные, Адрес Фактический, Адрес Регистрации, наличие судимостей, серия, номер Полиса;
5) Выгодоприобретатель: тип (по дожитию, по смерти), ФИО, Серия, номер паспорта, кем и когда выдан, код подразделения, дата рождения, профессия, место работы, контактные данные, Адрес Фактический, Адрес Регистрации, наличие судимостей, доля страховых выплат, Серия, номер полиса;
6) Страховые расчеты: Атрибуты: Страховая сумма, Страховой взнос, Страховые выплаты в случае смерти, инвалидности, болезни, несчастных случаев, серия, номер полиса, которому принадлежат расчеты (в данном случае клад может внести любой, а выплаты получить - застрахованный или выгодоприобретатель);
1.2 Анализ информационных задач и круга пользователей системы
Определим основные группы пользователей, их основные задачи и запросы к БД
1 Должностные лица СК:
Оформление нового договора
Получение сведений о текущих полисах
Продление или расторжение договора (изменение срока действия в полисе)
Получение сведений об оформленных полисах за определенный срок
2 Начальство СК:
Получение сведений о текущих полисах
Получение сведений об оформленных полисах за определенный срок
Статистика финансовых расчетов
3 Страхователь
Получение сведений об оформленном полисе
4 Застрахованный, Выгодоприобретатель
Получение сведений об оформленном полисе
5 Бухгалтерия СК:
Просмотр текущих Полисов
Внесение изменений в таблицу страховых расчетов
Статистика финансовых расчетов
6 Администратор БД
Все права
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 отличатся хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера 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) |
Обязательное поле |
|
|
|
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) |
Обязательное поле |
|
|
|
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) |
Обязательное поле |
|
|
|
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) |
Обязательное поле |
|
|
|
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) |
Обязательное поле |
|
|
|
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) |
Обязательное поле |
|
|
|
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);
i - добавление данных (insert);
u - модификация данных (update);
d - удаление данных(delete).
Таблицы |
Группы пользователей (роли) |
||||||
Должностные лица СК |
Начальство СК |
Страхователь |
Застрахованный, Выгодоприобретатель |
Бухгалтерия СК |
Администратор БД |
||
Страховщик |
S |
SIUD |
S |
S |
S |
SIUD |
|
Страхователь |
SIUD |
S |
- |
- |
S |
SIUD |
|
Вложения |
S |
S |
- |
- |
SIUD |
SIUD |
|
Выплаты |
S |
S |
- |
- |
SIUD |
SIUD |
|
Доля выплат |
S |
S |
- |
- |
SIUD |
SIUD |
|
Застрахованный |
SIUD |
S |
- |
- |
S |
SIUD |
|
Должностные лица |
SIU |
SIUD |
- |
- |
S |
SIUD |
|
Выгодоприобретатель |
SIUD |
S |
- |
- |
S |
SIUD |
|
Сотрудники СК |
S |
SIUD |
- |
- |
S |
SIUD |
5. Реализация проекта базы данных
5.1 Создание таблиц
1 Отношение Страховщик
CREATE TABLE InsurerOrg
(
Name varchar(30) not null,
INN varchar(12) not null,
BIK char(9) primary key,
Ks varchar(20) not null,
Kpp char(9) not null,
Schet varchar(20) not null,
Index_ad char(6) not null,
Area_ad varchar(20) not null,
Town_ad varchar(20) not null,
House_ad varchar(10) not null,
Building_ad varchar(10) not null default('empty'),
Flat_ad varchar(5) not null default('empty')
);
2 Отношение Страхователь
CREATE TABLE Insurer
(
Surname varchar(15) not null,
FirstName varchar(15) not null,
Patronomic varchar(15) not null,
Pass char(10) primary key,
WhoPass varchar(50) not null,
Birthdate date not null check (Birthdate>'1949-12-31'),
Index_Birth char(6) not null,
Area_Birth varchar(20) not null,
Town_Birth varchar(20) not null,
Prof varchar(20) not null,
Sex char(1) not null check (sex IN('w','m')),
WorkCurr varchar(100) not null,
Phone varchar(20) not null,
Mail varchar(30),
Index_reg char(6) not null,
Area_reg varchar(20) not null,
Town_reg varchar(20) not null,
House_reg varchar(10) not null,
Building_reg varchar(10) not null default('empty'),
Flat_reg varchar(5) not null default('empty'),
Index_fact char(6) not null,
Area_fact varchar(20) not null,
Town_fact varchar(20) not null,
House_fact varchar(10) not null,
Building_fact varchar(10) not null default('empty'),
Flat_fact varchar(5) not null default('empty'),
Conviction char(3) not null check (Conviction IN('yes'.' no'))
);
3 Отношение Полисы
CREATE TABLE Policy
(
NumberSer char(25) primary key,
DateAcceptation Date not null default curdate(),
EffectiveDate Date not null check (EffectiveDate > curdate()),
ExpirationDate Date not null check (ExpirationDate > (curdate() + 5)),
Stat varchar(20) not null check (Stat IN('payments used', payment until useful)),
TypeIns varchar(10) not null check (TypeIns IN('travel', 'life', 'student' 'home')),
BIK_SK char(9) references IsurerOrg,
PassR char(10) references Insurer on UPDATE cascade,
PassD char(10) references Insured on UPDATE cascade,
SumPolicy float(20) unsigned not null
);
4 Отношение Представитель СК
CREATE TABLE Work_policy
(
Id char(16) references worker_SK,
SerNum char(25) references Policy
);
5 Отношение Сотрудники СК
CREATE TABLE worker_SK
(
Surname varchar(15) not null,
FirstName varchar(15) not null,
Patronimic varchar (15) not null,
Work_dep varchar(30) not null,
Id char(16) Primary Key
);
6 Отношение Вложения
CREATE TABLE put_money
(
Fee Float(20) UNSIGNED not null,
NumberSer char(25) references Policy
);
7 Отношение Выплаты
CREATE TABLE Payment
(
NumberSer char(25) references Policy,
WhoPay char(1) default('I') check (WhoPay IN `I','B'),
PaymentDeath float(20) unsigned not null,
PaymentSurv float(20) unsigned not null
);
8 Отношение Застрахованный
CREATE TABLE Insured
(
Surname varchar(15) not null,
FirstName varchar(15) not null,
Patronomic varchar(15) not null,
Pass char(10) primary key,
WhoPass varchar(50) not null,
Birthdate date not null check (Birthdate>'1949-12-31'),
Index_Birth char(6) not null,
Area_Birth varchar(20) not null,
Town_Birth varchar(20) not null,
Prof varchar(20) not null,
Sex char(1) not null check (sex IN('w','m')),
WorkCurr varchar(100) not null,
Phone varchar(20) not null,
Mail varchar(30),
Index_reg char(6) not null,
Area_reg varchar(20) not null,
Town_reg varchar(20) not null,
House_reg varchar(10) not null,
Building_reg varchar(10) not null default('empty'),
Flat_reg varchar(5) not null default('empty'),
Index_fact char(6) not null,
Area_fact varchar(20) not null,
Town_fact varchar(20) not null,
House_fact varchar(10) not null,
Building_fact varchar(10) not null default('empty'),
Flat_fact varchar(5) not null default('empty'),
Conviction char(3) not null check (Conviction IN('yes'.' no'))
);
9 Отношение Выгодоприобретатель
CREATE TABLE Beneficiary
(
Surname varchar(15) not null,
FirstName varchar(15) not null,
Patronomic varchar(15) not null,
Pass char(10) primary key,
WhoPass varchar(50) not null,
Birthdate date not null check (Birthdate>'1949-12-31'),
Index_Birth char(6) not null,
Area_Birth varchar(20) not null,
Town_Birth varchar(20) not null,
Prof varchar(20) not null,
Sex char(1) not null check (sex IN('w','m')),
WorkCurr varchar(100) not null,
Phone varchar(20) not null,
Mail varchar(30),
Index_reg char(6) not null,
Area_reg varchar(20) not null,
Town_reg varchar(20) not null,
House_reg varchar(10) not null,
Building_reg varchar(10) not null default('empty'),
Flat_reg varchar(5) not null default('empty'),
Index_fact char(6) not null,
Area_fact varchar(20) not null,
Town_fact varchar(20) not null,
House_fact varchar(10) not null,
Building_fact varchar(10) not null default('empty'),
Flat_fact varchar(5) not null default('empty'),
Conviction char(3) not null check (Conviction IN('yes'.' no')),
Type_Ben varchar(5) not null check (Type_Ben IN ('Surv', 'Death')),
percent float(6) unsigned not null,
NumberSer char(25) references Policy
);
5.2 Создание представлений, готовых запросов
1 Список действующих полисов:
Create view curr_policy as
Select *
From Policy
Where (EffectiveDate<=curdate()) and (ExpirationDate>=curdate());
2 Список оформленных полисов за последние 30 дней:
Create view Days_policy as
Select *
From Policy
Where (DateAcceptation <=curdate()) and (DateAcceptation >=curdate()-30);
3 Просмотр всех страховых взносов, внесенных по полисам за последние 30 дней:
Create view Days_Fee as
Select p.Fee, i.Surname, i.FirstName, i.Patronimic, pol. DateAcceptation
From put_money p, Policy pol
Where ((pol.DateAcceptation <=curdate()) and (pol.DateAcceptation >=curdate()-30)) and (p.NumberSer=pol.NumberSer) ;
4 Просмотр всех страховых выплат, рассчитанных за последние 30 дней:
Create view Days_Pay as
Select p. PaymentDeath, p. PaymentSurv, i.Surname, .FirstName, i.Patronimic, pol. DateAcceptation
From Payment p, Insured i, Policy pol
Where ((pol.DateAcceptation <=curdate()) and (pol.DateAcceptation >=curdate()-30)) and (p.NumberSer=pol.NumberSer) and (pol.PassD=i.Pass);
5 Список действующих полисов, по которым уже произведены выплаты:
Create view Pays_policy as
Select *
From Policy
Where Stat= 'payments used' and (EffectiveDate<=curdate()) and (ExpirationDate>=curdate());
6 Сколько полисов оформили сотрудники за 30 дней:
Create view Num_Policy (Name, department, NumPol) as
Select w.Surname + ` ` + w.FirstName + ` ` + w.Patronimic, dep.Work_dep,
count(case when p.NumberSer=dep.SerNum then 1 else null end) Pol
From Work_policy dep, worker_SK w, Policy p
Where (w.id =dep.id)
Group by dep.Work_dep;
7 Просмотр своего полиса (Страхователь, Застрахованный, Выгодоприобретатель)
Create view My_Policy as
Select p.*
From Policy p, Insurer r, Insured d, Beneficiary b
Where ((r.Pass=user) and (p.PassR...
Подобные документы
Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.
реферат [57,1 K], добавлен 20.12.2010Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.
курсовая работа [2,4 M], добавлен 06.02.2016Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Информационно-логическая модель предметной области по нотациям Ричарда Баркера. Даталогическая модель реляционной базы данных в виде диаграммы схемы отношений. Приложение интерфейса для базы данных на языке программирования С# в среде Visual Studio.
курсовая работа [3,6 M], добавлен 23.12.2014Разновидности систем управления базами данных. Анализ предметной области. Разработка структуры и ведение базы данных. Структурированный язык запросов SQL. Организация выбора информации из базы данных. Общие принципы проектирования экранных форм, макросов.
курсовая работа [3,1 M], добавлен 26.02.2016Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.
курсовая работа [1,7 M], добавлен 04.06.2015Разработка базы данных с информацией о сотрудниках, товарах, со справочником типов товаров средствами системы управления базами данных MySQL с помощью SQL-запросов. Разработка инфологической модели предметной области. Структура таблиц, полей базы данных.
контрольная работа [648,7 K], добавлен 13.04.2012Выбор методологии проектирования и системы управления базами данных. Описание предметной области и проектирование физической структуры базы данных. Реализация проекта в MS SQL Server 2008. Построение инфологической модели. Ограничения целостности связи.
курсовая работа [679,2 K], добавлен 22.01.2013Основные виды баз данных. Система управления базами данных. Анализ деятельности и информации, обрабатываемой в поликлинике. Состав таблиц в базе данных и их взаимосвязи. Методика наполнения базы данных информацией. Алгоритм создания базы данных.
курсовая работа [3,1 M], добавлен 17.12.2014Базы данных и системы управления ими. Свойства полей баз данных, их типы и безопасность. Программное обеспечение системы управления базами данных, современные технологии в данной области. Принципы организации данных, лежащие в основе управления.
курсовая работа [24,6 K], добавлен 11.07.2011Разработка концептуальной модели базы данных "Чемпионат авто": описание предметной области, каталог задач, описание таблиц, схема данных, ER-диаграмма. Проектирование реляционной модели "Спортивный комплекс". Реализация и результат работы базы данных.
курсовая работа [3,7 M], добавлен 14.06.2011Классификация моделей построения баз данных. Работа с реляционными базами данных: нормализация таблиц, преобразование отношений полей, преобразование функциональной модели в реляционную. Понятие языка определения данных и языка манипуляции данными.
реферат [123,0 K], добавлен 22.06.2011Основные понятия базы данных и систем управления базами данных. Типы данных, с которыми работают базы Microsoft Access. Классификация СУБД и их основные характеристики. Постреляционные базы данных. Тенденции в мире современных информационных систем.
курсовая работа [46,7 K], добавлен 28.01.2014Понятие базы данных, её структура. Общие принципы хранения информации. Краткая характеристика особенностей иерархической, сетевой и реляционной модели организации данных. Structured Query Language: понятие, состав. Составление таблиц в Microsoft Access.
лекция [202,8 K], добавлен 25.06.2013Реализация системы управления, предоставляющей пользователю информацию о патенте. Основные предметно-значимые сущности и их атрибуты. Ограничения предметной области. Требования к функциям системы. Концептуальная схема базы данных в виде ER-диаграммы.
контрольная работа [295,6 K], добавлен 27.05.2013Системы управления базами данных в медицине. Основные идеи, которые лежат в основе концепции базы данных. Требования, предъявляемые к базам данных и системе управления базами данных. Архитектура информационной системы, организованной с помощью базы данных
реферат [122,5 K], добавлен 11.01.2010Процесс создания и определение задач полнофункциональной системы управления базами данных. Разработка структуры таблиц, хранящих данные и формирование запросов. Построение форм для ввода и просмотра информации в запросах и создание необходимых отчетов.
курсовая работа [1,1 M], добавлен 11.09.2010Современные базы данных – многофункциональные программные системы, работающие в открытой распределенной среде изучении администрирования базы данных. Способы организации внешней памяти баз данных. Системы управления базами данных для хранения информации.
курсовая работа [185,6 K], добавлен 07.12.2010Исследование характеристик и функциональных возможностей системы управления базами данных Microsoft Office Access. Определение основных классов объектов. Разработка базы данных "Делопроизводство". Создание таблиц, форм, запросов, отчетов и схем данных.
реферат [1,3 M], добавлен 05.12.2014Пример взаимосвязей информационных потоков. Структура экономических показателей. Структура реляционной базы данных. Реализация запросов средствами реляционной алгебры. Выходной документ "Страховой полис". Модель данных как совокупность трех составляющих.
курсовая работа [67,0 K], добавлен 16.05.2011