Экзамен 07,07,2020 НикитинаД
.docx
Задание 1.
CREATE TABLE SENSOR
( sensor_id integer NOT NULL, sensor_name varchar(255) NOT NULL,
group_id integer NOT NULL, CONSTRAINT PK_SENSOR PRIMARY KEY (sensor_id) ) GO
CREATE TABLE TRASH
( trash_id integer NOT NULL, trash_type_name varchar(255) NOT NULL, CONSTRAINT PK_TRASH PRIMARY KEY (trash_id) ) GO
CREATE TABLE MANIPULATOR
( manipulator_id integer NOT NULL, manipulator_name varchar(255) NOT NULL, CONSTRAINT PK_MANIPULATOR PRIMARY KEY (manipulator_id) ) GO
CREATE TABLE SIGNAL
( signal_id integer NOT NULL, signal_name varchar(255) NOT NULL, CONSTRAINT PK_MANIPULATOR PRIMARY KEY (signal_id)
) GO
CREATE TABLE TRASH_SENSOR_GROUP
( trash_id integer NOT NULL, group_id integer NOTT NULL,
CONSTRAINT FK_1 FOREIGN KEY(trash_id) REFERENCES TRASH(trash_id),
CONSTRAINT FK_2 FOREIGN KEY (group_id) REFERENCES SENSOR(group_id)
CONSTRAINT PK_ TRASH_SENSOR_GROUP PRIMARY KEY (group_id) ) GO
CREATE TABLE TRASH_SIGNAL
( trash_id integer NOT NULL, signal_id integer NOT NULL,
CONSTRAINT FK_3 FOREIGN KEY(trash_id) REFERENCES TRASH(trash_id),
CONSTRAINT FK_4 FOREIGN KEY (signal_id) REFERENCES SIGNAL (signal_id) ) GO
CREATE TABLE SIGNAL_MANIPULATOR
( signal_id integer NOT NULL, manipulator_id integer NOT NULL,
CONSTRAINT PK_SIGNAL_MANIPULATOR PRIMARY KEY (signal_id, manipulator_id)
CONSTRAINT FK_5 FOREIGN KEY(manipulator_id) REFERENCES MANIPULATOR(manipulator_id),
CONSTRAINT FK_6 FOREIGN KEY (signal_id) REFERENCES SIGNAL (signal_id) ) GO
Задание 2.
SELECT trash_type_name FROM TRASH WHERE TRASH.trash_id IN
(SELECT trash_id FROM TRASH_SENSOR_GROUP WHERE group_id IN
(SELECT group_id FROM SENSOR MAX(COUNT(group_id))))
Задание 3.
SELECT trash_type_name FROM TRASH WHERE TRASH.trash_id IN
(SELECT trash_id FROM TRASH_SIGNAL WHERE TRASH_SIGNAL.signal_id=
( SELECT signal_id FROM SIGNAL WHERE SIGNAL.signal_name = 'None') GROUP BY TRASH_SIGNAL.trash_id)
Задание 4.
Так как поле sensor_id в таблице SENSOR является primary key, то один датчик входит только в одну группу датчиков. Так как поле group_id в таблице TRASH_SENSOR_GROUP является primary key, то одной группе соответствует только один тип мусора. В таком случае не может существовать несколько типов мусора и одинаковыми (неуникальными) наборами датчиков.