- •Отчет о курсовой работе по курсу «Базы данных»
- •Содержание работы
- •1 Инфологическое проектирование
- •1.1 Анализ Предметной области
- •1.2 Анализ информационных задач и круга пользователей системы
- •2 Определение требований к операционной обстановке
- •3 Выбор субд и других программных средств
- •4 Логическое проектирование бд
- •4. 3 Составление реляционных отношений
- •4.4 Нормализация полученных отношений(до 4нф)
- •4. 6 Определение дополнительных ограничений целостности
- •4.7 Описание групп пользователей и прав доступа
- •5 Реализация проекта базы данных
- •5.1 Создание таблиц
- •5.2 Создание представлений, готовых запросов
- •5.3 Назначение прав доступа
- •5.4 Создание индексов
- •5.5 Разработка стратегии резервного копирования
- •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 Схема реляционной базы данных, полученная в результате нормализации отношений:
Страховщик Страхователь
Полис

























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


















Вложения Выплаты Сотрудники
СК




















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



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

