DROP TABLE IF EXISTS `Справка+`;
CREATE TABLE `Справка+`
( `Слк` INT NOT NULL
, `Код` INT NOT NULL
, `Название` VARCHAR (50) NOT NULL
, `Содержание` VARCHAR (100) NULL
, `Слк_родитель` INT NULL
, `Код_родитель` INT NULL
, CONSTRAINT `ПК\СПР` PRIMARY KEY (`Слк`, `Код`)
, CONSTRAINT `ВК1\СПР^СПР` FOREIGN KEY (`Слк_родитель`, `Код_родитель`)
REFERENCES `Справка+` (`Слк`, `Код`)
);
DROP TABLE IF EXISTS `Кафедра`;
CREATE TABLE `Кафедра`
( `Код_КАФ` INT NOT NULL
, `Код_ФАК` INT NOT NULL
, `Слк_ФАК` INT NOT NULL
, `Название` VARCHAR (50) NOT NULL
, CONSTRAINT `ПК\КАФ` PRIMARY KEY (`Код_КАФ`, `Слк_ФАК`, `Код_ФАК`)
, CONSTRAINT `ВК\КАФ^СПР` FOREIGN KEY (`Слк_ФАК`, `Код_ФАК`)
REFERENCES `Справка+` (`Слк`, `Код`)
);
DROP TABLE IF EXISTS `Сотрудник%ПЕРС`;
CREATE TABLE `Сотрудник%ПЕРС`
( `Код_СОТ` INT NOT NULL
, `Код_ДОЛ` INT NOT NULL
, `Слк_ДОЛ` INT NOT NULL
, `Паспорт` CHAR (10) NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Сведения` VARCHAR (150) NOT NULL
, CONSTRAINT `ПК\СОТ` PRIMARY KEY (`Код_СОТ`, `Слк_ДОЛ`, `Код_ДОЛ`)
, CONSTRAINT `ВК1\СОТ^СПР` FOREIGN KEY (`Слк_ДОЛ`, `Код_ДОЛ`)
REFERENCES `Справка+` (`Слк`, `Код`)
);
DROP TABLE IF EXISTS `Вуз`;
CREATE TABLE `Вуз`
(
`Название` VARCHAR (150) NOT NULL
, `Код_ВУЗ` INT NOT NULL PRIMARY KEY
);
DROP TABLE IF EXISTS `Секретарь`;
CREATE TABLE `Секретарь`
( `Код_СЕК` INT NOT NULL
, `Сведения` VARCHAR (150) NULL
, CONSTRAINT `ПК\СЕК` PRIMARY KEY (`Код_СЕК`)
, CONSTRAINT `ВК\СЕК` FOREIGN KEY (`Код_СЕК`) REFERENCES `Сотрудник%ПЕРС` (`Код_СОТ`)
);
DROP TABLE IF EXISTS `Дисциплина`;
CREATE TABLE `Дисциплина`
(
`Название` VARCHAR (150) NOT NULL
, `Код` INT NOT NULL PRIMARY KEY
);
DROP TABLE IF EXISTS `Преподаватель`;
CREATE TABLE `Преподаватель`
( `Код_ПРЕ` INT NOT NULL
, `Сведения` VARCHAR (150) NOT NULL
, `Код_КАФ` INT NOT NULL
, CONSTRAINT `Код\ПРЕ^СОТ` PRIMARY KEY (`Код_ПРЕ`)
, CONSTRAINT `ВК1\СОТ` FOREIGN KEY (`Код_ПРЕ`) REFERENCES `Сотрудник%ПЕРС` (`Код_СОТ`)
, CONSTRAINT `ВК2\КАФ` FOREIGN KEY (`Код_КАФ`) REFERENCES `Кафедра` (`Код_КАФ`)
);
DROP TABLE IF EXISTS `Руководитель`;
CREATE TABLE `Руководитель`
(
`Сведения` VARCHAR (150) NULL
, `Код_РУК` INT NOT NULL
, CONSTRAINT `ПК\РУК` PRIMARY KEY (`Код_РУК`)
, CONSTRAINT `ВК\СОТ` FOREIGN KEY (`Код_РУК`) REFERENCES `Сотрудник%ПЕРС` (`Код_СОТ`)
);
DROP TABLE IF EXISTS `Приказ`;
CREATE TABLE `Приказ`
(
`Регномер` INT NOT NULL PRIMARY KEY
, `Код_ПРИ` INT NOT NULL
, `Дата` DATE NOT NULL
, CONSTRAINT `ВК\РУК` FOREIGN KEY (`Код_ПРИ`) REFERENCES `Руководитель` (`Код_РУК`)
);
DROP TABLE IF EXISTS `Комиссия`;
CREATE TABLE `Комиссия`
(
`Регномер` INT NOT NULL PRIMARY KEY
, `Учебгод` INT NOT NULL
, `Код_РУК` INT NOT NULL
, `Код_ДИС` INT NOT NULL
, CONSTRAINT `ВК1\ДИС` FOREIGN KEY (`Код_ДИС`) REFERENCES `Дисциплина` (`Код`)
, CONSTRAINT `ВК2\ПРИ` FOREIGN KEY (`Код_РУК`) REFERENCES `Приказ` (`Код_ПРИ`)
);
DROP TABLE IF EXISTS `Поступающий%ПЕРС`;
CREATE TABLE `Поступающий%ПЕРС`
( `Нпп` INT NOT NULL
, `Регномер` INT NOT NULL
, `Код_ПОС` INT NOT NULL
, `Паспорт` CHAR (10) NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Сведения` VARCHAR (150) NOT NULL
, `Код_КАФ` INT NOT NULL
, `Код_ВУЗ` INT NOT NULL
, `Код_СЕК` INT NOT NULL
, CONSTRAINT `ПК\ПОС` PRIMARY KEY (`Код_ПОС`)
, CONSTRAINT `ВК1\ПОС^КАФ` FOREIGN KEY (`Код_КАФ`) REFERENCES `Кафедра` (`Код_КАФ`)
, CONSTRAINT `ВК2\ПОС^СПР` FOREIGN KEY (`Код_ВУЗ`) REFERENCES `Вуз` (`Код_ВУЗ`)
, CONSTRAINT `ВК3\ПОС^СЕК` FOREIGN KEY (`Код_СЕК`) REFERENCES `Секретарь` (`Код_СЕК`)
, CONSTRAINT `ВК4\КОМ` FOREIGN KEY (`Код_ПОС`) REFERENCES `Комиссия` (`Регномер`)
);
DROP TABLE IF EXISTS `Состав`;
CREATE TABLE `Состав`
(
`Роль` VARCHAR (15) NULL
, `Регномер` INT NOT NULL
, `Код_СОС` INT NOT NULL
, `Нпп` INT NOT NULL
, CONSTRAINT `ПК\РУК` PRIMARY KEY (`Код_СОС`, `Регномер`, `Нпп`)
, CONSTRAINT `ВК1\СОС^КОМ` FOREIGN KEY (`Регномер`) REFERENCES `Комиссия` (`Регномер`)
, CONSTRAINT `ВК2\СОС^ПРЕ` FOREIGN KEY (`Код_СОС`) REFERENCES `Преподаватель` (`Код_ПРЕ`)
);
DROP TABLE IF EXISTS `Программа`;
CREATE TABLE `Программа`
( `Слк` INT NOT NULL
, `Регномер` INT NOT NULL
, `Название` VARCHAR (50) NOT NULL
, CONSTRAINT `ПК\ПРО` PRIMARY KEY (`Слк`, `Регномер`)
);
DROP TABLE IF EXISTS `Общая программа`;
CREATE TABLE `Общая программа`
( `Слк_ПРО` INT NOT NULL
, `Регномер` INT NOT NULL
, CONSTRAINT `ПК\ОБЩ` PRIMARY KEY (`Слк_ПРО`, `Регномер`)
, CONSTRAINT `ВК\ОБЩ^ПРО` FOREIGN KEY (`Слк_ПРО`, `Регномер`) REFERENCES `Программа` (`Слк`, `Регномер`)
);
DROP TABLE IF EXISTS `Индивидуальная программа`;
CREATE TABLE `Индивидуальная программа`
( `Слк_ПРО` INT NOT NULL
, `Регномер_ИНД` INT NOT NULL
, `Код_ИНД` INT NOT NULL
, CONSTRAINT `ПК\ИНД` PRIMARY KEY (`Слк_ПРО`, `Регномер_ИНД`)
, CONSTRAINT `ВК1\ИНД^ПРО` FOREIGN KEY (`Слк_ПРО`, `Регномер_ИНД`) REFERENCES `Программа` (`Слк`, `Регномер`)
, CONSTRAINT `ВК2\ИНД^ПОС` FOREIGN KEY (`Код_ИНД`) REFERENCES `Поступающий%ПЕРС` (`Код_ПОС`)
);
DROP TABLE IF EXISTS `Заседание`;
CREATE TABLE `Заседание`
( `Слк_ОБЩ` INT NOT NULL
, `Регномер_ЗАС` INT NOT NULL PRIMARY KEY
, `Дата` DATE NOT NULL
, `Учебгод` INT NOT NULL
, `Регномер_ОБЩ` INT NOT NULL
, CONSTRAINT `ВК\ЗАС^ОБЩ` FOREIGN KEY (`Слк_ОБЩ`, `Регномер_ОБЩ`) REFERENCES `Общая программа` (`Слк_ПРО`, `Регномер`)
);
DROP TABLE IF EXISTS `Сдача`;
CREATE TABLE `Сдача`
(
`Регномер_СДА` INT NOT NULL
, `Оценка` INT NOT NULL
, `Код_СДА` INT NOT NULL
, `Регномер_ИНД` INT NOT NULL
, CONSTRAINT `ПК\СДА` PRIMARY KEY (`Регномер_СДА`)
, CONSTRAINT `ВК3\СДА^ЗАС` FOREIGN KEY (`Регномер_СДА`) REFERENCES `Заседание` (`Регномер_ЗАС`)
, CONSTRAINT `ВК1\СДА^ПОС` FOREIGN KEY (`Код_СДА`) REFERENCES `Поступающий%ПЕРС` (`Код_ПОС`)
, CONSTRAINT `ВК2\СДА^ИНД` FOREIGN KEY (`Регномер_ИНД`) REFERENCES `Индивидуальная программа` (`Регномер_ИНД`)
);