- •Отчет о курсовой работе по курсу «Базы данных»
- •Содержание работы
- •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. 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
);