- •База данных
- •1.3 Первичное описание информационного обеспечения
- •1.4 Вывод
- •2 Выявление ограничений и правил поддержания целостности
- •2.1 Уровень атрибутов
- •2.3 Уровень множеств кортежей
- •2.4 Уровень базы данных
- •2.5 Вывод
- •3.1 Составление локальных исходных er-моделей
- •3.2 Нормализация локальных er-моделей
- •Код сотрудника
- •Код товара
- •Код сотрудника
- •Код сотрудника
- •Дата проверки
- •Код пок-ля
- •Код арендатора
- •Код сотрудника
- •3.3 Спецификация ограничений и правил поддержания целостности
- •5.2 Спецификация ограничений и правил поддержания целостности
- •5.3 Sql-код для создания реляционной модели
- •Create trigger Сотрудник
5.2 Спецификация ограничений и правил поддержания целостности
В данном подразделе учитываются ограничения и правила поддержания целостности, выявленные на предыдущих этапах. Новые ограничения и правила обнаружены не были.
5.3 Sql-код для создания реляционной модели
В данном подразделе разрабатан SQL-код для создания реляционной модели.
CREATE TABLE Персона_арендатор
(Код арендатора NUM (5) NOT NULL PRIMARY KEY,
Паспортные данные CHAR (40) NOT NULL,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20) NOT NULL,
ФИО_Отчество CHAR (20) NOT NULL,
Адрес CHAR (30),
Номер_телефона INTEGER NOT NULL,
CHECK (‘A’<ФИО AND ФИО<’Я’),
FOREIGN KEY (Номер_телефона) REFERENCES Телефон
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Персона_сотрудник
(Код сотрудника NUM (5) NOT NULL PRIMARY KEY,
Паспортные данные CHAR (40) NOT NULL,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20) NOT NULL,
ФИО_Отчество CHAR (20) NOT NULL,
Адрес CHAR (30),
Номер_телефона INTEGER NOT NULL,
CHECK (‘A’<ФИО AND ФИО<’Я’),
FOREIGN KEY (Номер_телефона) REFERENCES Телефон
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Персона_сотрудник_администратор
(Код сотрудника NUM (5) NOT NULL PRIMARY KEY,
Паспортные данные CHAR (40) NOT NULL,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20) NOT NULL,
ФИО_Отчество CHAR (20) NOT NULL,
Адрес CHAR (30),
Номер_телефона INTEGER NOT NULL,
CHECK (‘A’<ФИО AND ФИО<’Я’),
FOREIGN KEY (Номер_телефона) REFERENCES Телефон
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Персона_сотрудник_кладовщик
(Код сотрудника NUM (5) NOT NULL PRIMARY KEY,
Паспортные данные CHAR (40) NOT NULL,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20) NOT NULL,
ФИО_Отчество CHAR (20) NOT NULL,
Адрес CHAR (30),
Номер_телефона INTEGER NOT NULL,
CHECK (‘A’<ФИО AND ФИО<’Я’),
FOREIGN KEY (Номер_телефона) REFERENCES Телефон
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Персона_сотрудник_член комиссии
(Код сотрудника NUM (5) NOT NULL PRIMARY KEY,
Паспортные данные CHAR (40) NOT NULL,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20) NOT NULL,
ФИО_Отчество CHAR (20) NOT NULL,
Адрес CHAR (30),
Номер_телефона INTEGER NOT NULL,
CHECK (‘A’<ФИО AND ФИО<’Я’),
FOREIGN KEY (Номер_телефона) REFERENCES Телефон
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Контракт
(Номер контракта NUM (5) NOT NULL PRIMARY KEY,
Дата начала аренды DATE (6) NOT NULL,
Дата конца аренды DATE (6) NOT NULL,
Арендная плата NUM (4) NOT NULL,
Код персоны_сотрудника_администратора CHAR (6) NOT NULL,
Код персоны_арендатора CHAR (6) NOT NULL,
Код места CHAR (6) NOT NULL,
Код оборудования CHAR (6) NOT NULL,
Код ячейки CHAR (6) NOT NULL,
FOREIGN KEY (код персоны_сотрудника_администратора)
REFERENCES Персона_сотрудник_администратор
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (код персоны_арендатора)
REFERENCES Персона_арендатор
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (код места) REFERENCES Место
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (код оборудования) REFERENCES Оборудование
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (код ячейки) REFERENCES Место на складе
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Телефон
(Номер INTEGER NOT NULL PRIMARY KEY,
Код CHAR (6),
Тип CHAR (10));
CREATE TABLE Контакт_арендатора
(Номер телефона INTEGER NOT NULL PRIMARY KEY ,
Код персоны_арендатора CHAR (6) NOT NULL PRIMARY KEY,
FOREIGN KEY (Номер телефона) REFERENCES Телефон
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (код персоны_арендатора)
REFERENCES Персона_арендатор
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Контакт_сотрудника
(Номер телефона INTEGER NOT NULL PRIMARY KEY,
Код персоны_сотрудника CHAR (6) NOT NULL PRIMARY KEY,
FOREIGN KEY (Номер телефона) REFERENCES Телефон
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (код персоны_сотрудника)
REFERENCES Персона_сотрудника
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Должность
(Код должности CHAR (6) NOT NULL PRIMARY KEY,
Название должности CHAR (20));
CREATE TABLE Карьера
(Номер приказа CHAR (6) NOT NULL PRIMARY KEY,
Стаж NUM (2) NOT NULL,
Оклад NUM (6) NOT NULL,
FOREIGN KEY Код должности REFERENCES Должность,
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Место работы
(Номер приказа CHAR (6) NOT NULL PRIMARY KEY,
Дата приема DATE NOT NULL,
Дата увольнения DATE NOT NULL ,
Номер статьи CHAR (6) NOT NULL,
Код организации CHAR (6) NOT NULL,
Код персоны_сотрудника_кладовщика CHAR (6) NOT NULL,
Код персоны_сотрудника_администратора CHAR (6) NOT NULL,
Код персоны_сотрудника_члена комиссии CHAR (6) NOT NULL,
FOREIGN KEY (Номер статьи) REFERENCES Карьера
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (Код организации) REFERENCES Организация
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (Код персоны_сотрудника_кладовщика) REFERENCES
Персона_сотрудник_кладовщик
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (Код персоны_сотрудника_ администратора)
REFERENCES Персона_сотрудник_администратор
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (Код персоны_сотрудника_члена комиссии)
REFERENCES Персона_сотрудник_член комиссии
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Организация
(Код организации CHAR (6) NOT NULL PRIMARY KEY,
Название организации CHAR (20));
CREATE TABLE Санконтроль
(Порядковый номер NUM (3) NOT NULL PRIMARY KEY,
Дата проверки DATE (6),
Код персоны_сотрудника_члена комиссии CHAR (6) NOT NULL,
Код товара CHAR (6) NOT NULL,
Значение CHAR (6) NOT NULL,
FOREIGN KEY (Код персоны_сотрудника_члена комиссии)
REFERENCES Персона_сотрудник_член комиссии
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (Код товара) REFERENCES Товар
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (Значение) REFERENCES Результат
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Место на складе
(Код ячейки склада CHAR (6) NOT NULL PRIMARY KEY,
Название ячейки CHAR (20));
CREATE TABLE Место
(Код места CHAR (6) NOT NULL PRIMARY KEY,
Название места CHAR (20));
CREATE TABLE Оборудование
(Код оборудования CHAR (6) NOT NULL PRIMARY KEY,
Название оборудования CHAR (20));
CREATE TABLE Товар
(Код товара CHAR (6) NOT NULL PRIMARY KEY,
Название товара CHAR (20),
Код персоны_арендатора CHAR (6) NOT NULL,
FOREIGN KEY (код персоны_арендатора)
REFERENCES Персона_арендатор
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Показатели
(Код показателя CHAR (6) NOT NULL PRIMARY KEY,
Название показателя CHAR (20),
Значение CHAR (40) NOT NULL,
FOREIGN KEY (Значение) REFERENCES Результат
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Результат
(Значение CHAR (40) NOT NULL PRIMARY KEY,
Код показателя CHAR (6),
Порядковый номер санконтроля NUM (3) NOT NULL,
FOREIGN KEY (Код показателя) REFERENCES Показатели
ON DELETE CASCADE
ON UPDATE CASCADE
FOREIGN KEY (Порядковый номер санконтроля)
REFERENCES санконтроль
ON DELETE CASCADE
ON UPDATE CASCADE);
CREATE TABLE Выдача
(номер выдачи NUM (3) NOT NULL PRIMARY KEY,
Дата выдачи DATE (6)
Количество выданного товара CHAR (6),
Код оборудования CHAR (6),
Код персоны_сотрудника_кладовщика CHAR (6),
Код ячейки CHAR (6),
FOREIGN KEY (Код оборудования) REFERENCES Оборудование
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (Код персоны_сотрудника_кладовщика)
REFERENCES персона_сотрудник_кладовщик
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (Код ячейки) REFERENCES Место на складе
ON DELETE CASCADE
ON UPDATE CASCADE).