- •Содержание
- •Инфологическое проектирование
- •1.1. Анализ предметной области
- •1.2. Анализ информационных задач и круга пользователей системы.
- •Определение требований к операционной обстановке.
- •Выбор субд и других программных средств.
- •Нормализация полученных отношений
- •5.2. Создание представлений (готовых запросов)
- •1. Прибыль за отчетный период
- •Реализация проекта базы данных
- •Создание таблиц
- •2. Просмотр марок всех моделей
- •3. Полная информация о всех заказах
- •4. Все заказы всех менеджеров
- •5.Все машины всех филиалов
- •5.3.Назначение прав доступа
- •Триггер
- •Библиографический список
Реализация проекта базы данных
Создание таблиц
Отношение FILIAL (Филиалы):
create table filial (
FILIAL_ID numeric(2) primary key,
FILIAL_NAME varchar(30) not null,
FILIAL_FNAME varchar(25) not null,
FILIAL_LNAME varchar(30) not null,
FILIAL_LOGIN varchar(15) not null);
Отношение MANAG (Менеджеры):
create table MANAG (
MANAG_ID numeric(2) primary key,
MANAG_FNAME varchar(30) not null,
MANAG_LNAME varchar(25) not null,
MANAG_PASP numeric(11) not null,
MANAG_VIDAN varchar(40) not null,
MANAG_DATA date not null,
MANAG_BORN date not null,
MANAG_SEX char(1) CHECK (Manag_sex in ('male','female')),
MANAG_FILIAL numeric(1) references FILIAL,
MANAG_NUMBER numeric(20) not null,
MANAG_LOGIN varchar(25) not null);
Отношение CUSTOMER (Покупатели):
create table customer (
CUST_ID numeric(4) primary key,
CUST_FNAME varchar(20) not null,
CUST_LNAME varchar(20) not null,
CUST_PASP numeric(11) not null,
CUST_VIDAN varchar(30) not null,
CUST_DATA date not null,
CUST_NUMBER numeric(30) not null);
Отношение ZP (Зарплата):
create table zp (
ID_MANAG numeric(2) references MANAG,
OKLAD numeric(6) not null,
DATA_ZP date not null,
PREMIA varchar(5) default null);
Отношение KOMPL (Комплектация):
create table KOMPL (
Y_ID numeric(2) primary key,
Y_NAME varchar(30) not null,
Y_PRIMECHANIE varchar(100),
Y_PRICE numeric(10) not null);
Отношение SPISOK (Список):
create table spisok (
ID_AUTO numeric(6) references AUTO,
ID_YSLYGI numeric(2) references KOMPL);
Отношение MARKS (Марки):
create table marks (
MARK_ID numeric(2) primary key,
MARK_NAME varchar(20) not null);
Отношение MODELS (Модели):
create table models (
MODEL varchar(10) primary key,
MARK_ID numeric(2) references marks,
SUDENIA numeric(1),
KUZOV varchar(15) CHECK (KUZOV in ('hatchbak','classik','universal')));
Отношение AUTO (Авто):
create table auto (
AUTO_ID numeric(6) primary key,
AUTO_ORDER numeric(4) references orders,
AUTO_FILIAL numeric(2) references filial,
AUTO_COLOR varchar(20) not null,
AUTO_YEAR date not null,
AUTO_MODEL varchar(10) references MODELS,
AUTO_MOSHNOST decimal(2,1) not null,
AUTO_OBIEM decimal(2,1) not null);
Отношение ORDERS (Заказы):
create table orders (
ORDER_ID numeric(4) primary key,
ORDER_CUST numeric(4) references customer,
ORDER_MANAG numeric(2) references manag,
ORDER_SUMM numeric(7) not null,
ORDER_OFORM date not null,
ORDER_SROK date not null CHECK (ORDER_OFORM<ORDER_SROK),
ORDER_KONEC date check (ORDER_KONEC>ORDER_OFORM),
ORDER_DOSTAVKA char(1) check ( ORDER_DOSTAVKA in ('y','n')));
Отношение ADDR_NUMBER (Адреса-Телефоны Филиалов):
create table ADDR_number (
FILIAL_ID numeric(2) references filial,
address varchar(20) not null,
number numeric(11) not null);
5.2. Создание представлений (готовых запросов)
1. Прибыль за отчетный период
Select sum(ORDER_SUMM) CASH
From orders
Where order_oform >= начальная дата and order_oform <=конечная дата;
