DROP TABLE IF EXISTS `Справка+`;
CREATE TABLE `Справка+`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Слк` CHAR (3) NOT NULL
, `Код` CHAR (3) NOT NULL
, `Название` VARCHAR (50) NOT NULL
, `Содержание` VARCHAR (100) NULL
, `Ид_родитель\СПР^СПР` INT NULL REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `Ун1\СПР` UNIQUE (`Слк`, `Код`)
);
INSERT INTO `Справка+` VALUES
(DEFAULT, "ДОЛ", "про", "проф.", "профессср кафедры", NULL),
(DEFAULT, "ДОЛ", "доц", "доц. ", "доцент кафедры", NULL),
(DEFAULT, "ДОЛ", "лаб", "лаборант", NULL, NULL),
(NULL, "СТЕ", "дтн", "д-р техн. наук", "доктор технических наук", NULL),
(NULL, "СТЕ", "ктн", "канд. техн. наук", "кандидат технических наук", NULL),
(NULL, "ЗВА", "про", "проф.", "профессор ВАК", NULL),
(NULL, "ЗВА", "доц", "доц.", "доцент ВАК", NULL),
(NULL, "ПОД", "ИРТ", "ФИРТ", "ф-т информатикики и робототехники", NULL);
INSERT INTO `Справка+` SELECT
NULL, "ПОД", "АСУ", "каф. АСУ", "каф. автоматизир. систем упр-я", `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ";
SELECT "Table `Справка+`" FROM `Справка+` WHERE 1=0;
SELECT * FROM `Справка+`;
DROP TABLE IF EXISTS `Специальность`;
CREATE TABLE `Специальность`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Название` VARCHAR (50) NOT NULL
);
INSERT INTO `Специальность` VALUES
( NULL, "1", "пи"),
( NULL, "2", "про");
SELECT "'Специальность` Table Content:" FROM `Специальность` WHERE 1=0;
SELECT* FROM `Специальность`;
DROP TABLE IF EXISTS `Диссертант%ПЕРС`;
CREATE TABLE `Диссертант%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Паспорт` INT NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Сведения` VARCHAR (50) NOT NULL
, `Ид\ДСТ^СПЕЦ` INT NOT NULL
REFERENCES `Специальность` (`Ид`)
, `Ид_ДОП\ДСТ^СПЕЦ` INT NOT NULL
REFERENCES `Специальность` (`Ид`)
, `Ид_ОРГ\ДСТ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
);
INSERT INTO `Диссертант%ПЕРС` SET `Ид` = NULL, `Код` = "1", `Паспорт` = "123553", `ФИО` = "Иванов А.А.", `Сведения` = "1", `Ид\ДСТ^СПЕЦ` = (SELECT `Ид` FROM `Специальность` WHERE `Код` = "1"), `Ид_ДОП\ДСТ^СПЕЦ` = (SELECT `Ид` FROM `Специальность` WHERE `Код` = "1"), `Ид_ОРГ\ДСТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ");
SELECT "'Диссертант%ПЕРС` Table Content:" FROM `Диссертант%ПЕРС` WHERE 1=0;
SELECT* FROM `Диссертант%ПЕРС`;
DROP TABLE IF EXISTS `Сотрудник%ПЕРС`;
CREATE TABLE `Сотрудник%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Паспорт` INT NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Сведения` VARCHAR (50) NOT NULL
, `Ид_ДОЛ\СОТ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
, `Ид_ОРГ\СОТ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
, `Ид_СТЕ\СОТ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
, `Ид_ЗВА\СОТ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
);
INSERT INTO `Сотрудник%ПЕРС` SET `Ид` = NULL, `Код` = "1", `Паспорт` = "123543", `ФИО` = "Петров А.В.", `Сведения` = "1", `Ид_ДОЛ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ДОЛ" AND `Код`="про"), `Ид_ОРГ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ"), `Ид_СТЕ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="СТЕ" AND `Код`="дтн"), `Ид_ЗВА\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ЗВА" AND `Код`="про");
SELECT "'Сотрудник%ПЕРС` Table Content:" FROM `Сотрудник%ПЕРС` WHERE 1=0;
SELECT* FROM `Сотрудник%ПЕРС`;
DROP TABLE IF EXISTS `Внешний эксперт%ПЕРС`;
CREATE TABLE `Внешний эксперт%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Паспорт` INT NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Сведения` VARCHAR (50) NOT NULL
);
INSERT INTO `Внешний эксперт%ПЕРС` VALUES
(NULL, "1", "533456", "Иванов И. И.", "комсомолец"),
(NULL, "2", "444567", "Сидоров С. С.", "беспартийный");
SELECT "'Внешний эксперт%ПЕРС` Table Content:" FROM `Внешний эксперт%ПЕРС` WHERE 1=0;
SELECT* FROM `Внешний эксперт%ПЕРС`;
DROP TABLE IF EXISTS `Диссовет`;
CREATE TABLE `Диссовет`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Дата` VARCHAR (50) NOT NULL
);
INSERT INTO `Диссовет` VALUES
( NULL, "1", "диссовет 2023"),
( NULL, "2", "диссовет 2024");
SELECT "'Диссовет` Table Content:" FROM `Диссовет` WHERE 1=0;
SELECT* FROM `Диссовет`;
DROP TABLE IF EXISTS `Заседание по защите диссертации\ДИСС`;
CREATE TABLE `Заседание по защите диссертации\ДИСС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер` VARCHAR (50) NOT NULL
, `Ид\ЗАСД^ДИСС` INT NOT NULL
REFERENCES `Диссовет` (`Ид`)
, `Дата заседания` VARCHAR (50) NOT NULL
, `За` VARCHAR (50) NULL
, `Против` VARCHAR (50) NULL
, `Недействительных` VARCHAR (50) NULL
, `Ид\ЗАСД^ДСТ` INT NOT NULL
REFERENCES `Диссертант%ПЕРС` (`Ид`)
);
INSERT INTO `Заседание по защите диссертации\ДИСС` SET `Ид` = NULL, `Регномер` = "1", `Ид\ЗАСД^ДИСС` = (SELECT `Ид` FROM `Диссовет` WHERE `Код` = "1"), `Дата заседания` = "18.05.25", `За` = "25", `Против` = "2", `Недействительных` = "3", `Ид\ЗАСД^ДСТ` = (SELECT `Ид` FROM `Диссертант%ПЕРС` WHERE `Код` = "1");
SELECT "'Заседание по защите диссертации\ДИСС` Table Content:" FROM `Заседание по защите диссертации\ДИСС` WHERE 1=0;
SELECT* FROM `Заседание по защите диссертации\ДИСС`;
DROP TABLE IF EXISTS `Член совета:ДИСС*ВЭ`;
CREATE TABLE `Член совета:ДИСС*ВЭ`
( `Ид\ЧС^ДИСС` INT NOT NULL
REFERENCES `Диссовет` (`Ид`)
, `Ид\ЧС^ВЭ` INT NOT NULL
REFERENCES `Внешний эксперт%ПЕРС` (`Ид`)
, `Ид\ЧС^СПЕЦ` INT NOT NULL
REFERENCES `Специальность` (`Ид`)
, CONSTRAINT `ПК\ЧС` PRIMARY KEY (`Ид\ЧС^ДИСС`, `Ид\ЧС^ВЭ`)
);
INSERT INTO `Член совета:ДИСС*ВЭ` SET `Ид\ЧС^ДИСС` = (SELECT `Ид` FROM `Диссовет` WHERE `Код` = "1"), `Ид\ЧС^ВЭ` = (SELECT `Ид` FROM `Внешний эксперт%ПЕРС` WHERE `Код` = "1"), `Ид\ЧС^СПЕЦ` = (SELECT `Ид` FROM `Специальность` WHERE `Код` = "1");
SELECT "'Член совета:ДИСС*ВЭ` Table Content:" FROM `Член совета:ДИСС*ВЭ` WHERE 1=0;
SELECT* FROM `Член совета:ДИСС*ВЭ`;
DROP TABLE IF EXISTS `Серия вопросов\ЧС`;
CREATE TABLE `Серия вопросов\ЧС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Нпп` VARCHAR (50) NOT NULL
, `Ид\СВ^ЧС` INT NOT NULL
REFERENCES `Член совета:ДИСС*ВЭ` (`Ид\ЧС^ДИСС`)
);
INSERT INTO `Серия вопросов\ЧС` SET `Ид` = NULL, `Нпп` = "1", `Ид\СВ^ЧС` = (SELECT `Ид\ЧС^ДИСС` FROM `Член совета:ДИСС*ВЭ` WHERE `Ид\ЧС^ДИСС` = "1");
SELECT "'Серия вопросов\ЧС` Table Content:" FROM `Серия вопросов\ЧС` WHERE 1=0;
SELECT* FROM `Серия вопросов\ЧС`;
DROP TABLE IF EXISTS `Вопрос-ответ\СВ`;
CREATE TABLE `Вопрос-ответ\СВ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Нпп` VARCHAR (50) NOT NULL
, `Ид\ВОП^СВ` INT NOT NULL
REFERENCES `Серия вопросов\ЧС` (`Ид`)
, `Содержание вопроса` VARCHAR (50) NOT NULL
, `Содержание ответа` VARCHAR (50) NULL
);
INSERT INTO `Вопрос-ответ\СВ` SET `Ид` = NULL, `Нпп` = "1", `Ид\ВОП^СВ` = (SELECT `Ид` FROM `Серия вопросов\ЧС` WHERE `Нпп` = "1"), `Содержание вопроса` = "1", `Содержание ответа` = "2";
SELECT "'Вопрос-ответ\СВ` Table Content:" FROM `Вопрос-ответ\СВ` WHERE 1=0;
SELECT* FROM `Вопрос-ответ\СВ`;
DROP TABLE IF EXISTS `Член счетной комиссии:ЗАСД*ЧС`;
CREATE TABLE `Член счетной комиссии:ЗАСД*ЧС`
( `Ид\ЧСК^ЧС` INT NOT NULL
REFERENCES `Член совета:ДИСС*ВЭ` (`Ид\ЧС^ДИСС`)
, `Ид\ЧСК^ЗАСД` INT NOT NULL
REFERENCES `Заседание по защите диссертации\ДИСС` (`Ид`)
, CONSTRAINT `ПК\ЧСК` PRIMARY KEY (`Ид\ЧСК^ЧС`, `Ид\ЧСК^ЗАСД`)
);
INSERT INTO `Член счетной комиссии:ЗАСД*ЧС` SET `Ид\ЧСК^ЧС` = (SELECT `Ид\ЧС^ДИСС` FROM `Член совета:ДИСС*ВЭ` WHERE `Ид\ЧС^ДИСС` = "1"), `Ид\ЧСК^ЗАСД` = (SELECT `Ид` FROM `Заседание по защите диссертации\ДИСС` WHERE `Регномер` = "1");
SELECT "'Член счетной комиссии:ЗАСД*ЧС` Table Content:" FROM `Член счетной комиссии:ЗАСД*ЧС` WHERE 1=0;
SELECT* FROM `Член счетной комиссии:ЗАСД*ЧС`;
DROP TABLE IF EXISTS `Получил бюллетень:ЗАСД*ЧС`;
CREATE TABLE `Получил бюллетень:ЗАСД*ЧС`
( `Ид\ПБ^ЧС` INT NOT NULL
REFERENCES `Член совета:ДИСС*ВЭ` (`Ид\ЧС^ДИСС`)
, `Ид\ПБ^ЗАСД` INT NOT NULL
REFERENCES `Заседание по защите диссертации\ДИСС` (`Ид`)
, CONSTRAINT `ПК\ПБ` PRIMARY KEY (`Ид\ПБ^ЧС`, `Ид\ПБ^ЗАСД`)
);
INSERT INTO `Получил бюллетень:ЗАСД*ЧС` SET `Ид\ПБ^ЧС` = (SELECT `Ид\ЧС^ДИСС` FROM `Член совета:ДИСС*ВЭ` WHERE `Ид\ЧС^ДИСС` = "1"), `Ид\ПБ^ЗАСД` = (SELECT `Ид` FROM `Заседание по защите диссертации\ДИСС` WHERE `Регномер` = "1");
SELECT "'Получил бюллетень:ЗАСД*ЧС` Table Content:" FROM `Получил бюллетень:ЗАСД*ЧС` WHERE 1=0;
SELECT* FROM `Получил бюллетень:ЗАСД*ЧС`;
DROP TABLE IF EXISTS `Оппонент:ЗАСД*ВЭ`;
CREATE TABLE `Оппонент:ЗАСД*ВЭ`
( `Ид\ОПП^ЗАСД` INT NOT NULL
REFERENCES `Заседание по защите диссертации\ДИСС` (`Ид`)
, `Ид\ОПП^ВНШ` INT NOT NULL
REFERENCES `Внешний эксперт%ПЕРС` (`Ид`)
, `Присутствовал/отсутствовал` VARCHAR (50) NULL
, CONSTRAINT `ПК\ОПП` PRIMARY KEY (`Ид\ОПП^ЗАСД`, `Ид\ОПП^ВНШ`)
);
INSERT INTO `Оппонент:ЗАСД*ВЭ` SET `Ид\ОПП^ЗАСД` = (SELECT `Ид` FROM `Заседание по защите диссертации\ДИСС` WHERE `Регномер` = "1"), `Ид\ОПП^ВНШ` = (SELECT `Ид` FROM `Внешний эксперт%ПЕРС` WHERE `Код` = "1"), `Присутствовал/отсутствовал` = "5";
SELECT "'Оппонент:ЗАСД*ВЭ` Table Content:" FROM `Оппонент:ЗАСД*ВЭ` WHERE 1=0;
SELECT* FROM `Оппонент:ЗАСД*ВЭ`;
DROP VIEW IF EXISTS `вирт_Заседание по защите`;
CREATE VIEW `вирт_Заседание по защите` AS
SELECT
`ДИСС`.`Код` AS `Код диссовета`,
`ЗАСД`.`Регномер` AS `Регномер протокола`,
`ЗАСД`.`Дата заседания` AS `Дата заседания`,
`ДСТ`.`Код` AS `Код диссертанта`,
`ЗАСД`.`Ид` AS `Ид\Заседание`
FROM `Заседание по защите диссертации\ДИСС` AS `ЗАСД`
LEFT JOIN `Диссертант%ПЕРС` AS `ДСТ` ON `ЗАСД`.`Ид\ЗАСД^ДСТ` = `ДСТ`.`Ид`
LEFT JOIN `Диссовет` AS `ДИСС` ON `ЗАСД`.`Ид\ЗАСД^ДИСС` = `ДИСС`.`Ид`
;
SELECT * FROM `вирт_Заседание по защите`;
DROP PROCEDURE IF EXISTS `Проц_Серия вопросов`;
CREATE PROCEDURE `Проц_Серия вопросов`
(IN `@Ид\Заседание` INT)
SELECT
`СВ`.`Нпп` AS `Нпп серии`,
`ВНШ`.`Код` AS `Код члена совета`,
`ВНШ`.`ФИО` AS `ФИО члена совета`
FROM `Серия вопросов\ЧС` AS `СВ`
LEFT JOIN `Член совета:ДИСС*ВЭ` AS `ЧС` ON `СВ`.`Ид\СВ^ЧС` = `ЧС`.`Ид\ЧС^ДИСС`
LEFT JOIN `Внешний эксперт%ПЕРС` AS `ВНШ` ON `ЧС`.`Ид\ЧС^ВЭ` = `ВНШ`.`Ид`
WHERE `СВ`.`Ид\СВ^ЗАСД` = `@Ид\Заседание`
;
CALL `Проц_Серия вопросов` (1);
DROP VIEW IF EXISTS `вирт_Заседание%Серия`;
CREATE VIEW `вирт_Заседание%Серия` AS
SELECT
`ДИСС`.`Код` AS `Код диссовета`,
`ЗАСД`.`Регномер` AS `Регномер протокола`,
`ЗАСД`.`Дата заседания` AS `Дата заседания`,
`ДСТ`.`Код` AS `Код диссертанта`,
`СВ`.`Нпп` AS `Нпп серии`,
`ВНШ`.`Код` AS `Код члена совета`,
`ВНШ`.`ФИО` AS `ФИО члена совета`
FROM `Серия вопросов\ЧС` AS `СВ`
LEFT JOIN `Член совета:ДИСС*ВЭ` AS `ЧС` ON `СВ`.`Ид\СВ^ЧС` = `ЧС`.`Ид\ЧС^ДИСС`
LEFT JOIN `Внешний эксперт%ПЕРС` AS `ВНШ` ON `ЧС`.`Ид\ЧС^ВЭ` = `ВНШ`.`Ид`
LEFT JOIN `Заседание по защите диссертации\ДИСС` AS `ЗАСД` ON `СВ`.`Ид\СВ^ЗАСД` = `ЗАСД`.`Ид`
LEFT JOIN `Диссертант%ПЕРС` AS `ДСТ` ON `ЗАСД`.`Ид\ЗАСД^ДСТ` = `ДСТ`.`Ид`
LEFT JOIN `Диссовет` AS `ДИСС` ON `ЗАСД`.`Ид\ЗАСД^ДИСС` = `ДИСС`.`Ид`
;
SELECT * FROM `вирт_Заседание%Серия`;
DROP VIEW IF EXISTS `вирт_Диссовет_Заседание`;
CREATE VIEW `вирт_Диссовет_Заседание` AS
SELECT
`ДИСС`.`Код` AS `Код диссовета`,
`ДИСС`.`Дата` AS `Дата диссовета`,
COUNT(*) AS `Число заседаний по диссоветам`
FROM `Заседание по защите диссертации\ДИСС` AS `ЗАСД`
LEFT JOIN `Диссовет` AS `ДИСС` ON `ЗАСД`.`Ид\ЗАСД^ДИСС` = `ДИСС`.`Ид`
GROUP BY `ЗАСД`.`Ид\ЗАСД^ДИСС`
;
SELECT * FROM `вирт_Диссовет_Заседание`;