Andurite ja täituritega koolimaja koos arvutatava statistikaga Osapooled Õpilased/õpetajad Kogutakse andmeid Võimalusel soodustatakse õppetööd Maja haldus Andmed näitajate kohta (andurid) Juhtkäsud täituritele Soovitused/programmilõigud töö sobivamaks muutmiseks Haridusanalüütikud Toorandmed Kokkuvõtted/võrdlused Pedagoogika ja tehnika seosed Tabelite struktuur ligipääsu tagamiseks Automaatselt avatakse mis vaja, muidu hoitakse kinni Ukse avamiseks peab inimene püsima kaks sekundit sobivast uksest kuni meetri kaugusel Andurid: asukohaandur (liigub inimesega kaasa, 3 koordinaati) mahuandur (välja hulk ruumis) Täiturid ukselukk Andmed rollid(rollinimi) /õpilane, õpetaja, tuutor, haldustöötaja ained(nimetus) andurid(andurikood) korrused(nr, korgus) isikud (kood, andurikood) uksed(id, x, y, korruse_nr) Ruumid(nr, x1, y1, x2, y2, korruse_nr) isik_aines(id, isiku_kood, aine_nimetus, roll) tunnid(id, aine_nimetus, ruumi_nr, alates, kuni) ukseavamised(id, ukse_id, aeg) anduriteated(id, anduri_kood, aeg, x, y, z) ruumid_uksed(id, ruumi_nr, ukse_id) /Millised uksed lubatud avada CREATE TABLE rollid(rollinimi VARCHAR(50) NOT NULL PRIMARY KEY); CREATE TABLE ained(nimetus VARCHAR(50) NOT NULL PRIMARY KEY); CREATE TABLE andurid(andurikood VARCHAR(50) NOT NULL PRIMARY KEY); CREATE TABLE korrused(nr INT NOT NULL AUTO_INCREMENT PRIMARY KEY, korgus FLOAT NOT NULL); CREATE TABLE isikud(kood INT NOT NULL AUTO_INCREMENT PRIMARY KEY, andurikood VARCHAR(50), FOREIGN KEY(andurikood) REFERENCES andurid(andurikood)); CREATE TABLE uksed(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, x FLOAT, y FLOAT, korruse_nr INT, FOREIGN KEY(korruse_nr) REFERENCES korrused(nr)); CREATE TABLE ruumid(nr INT NOT NULL PRIMARY KEY, x1 FLOAT, y1 FLOAT, x2 FLOAT, y2 FLOAT, korruse_nr INT, FOREIGN KEY(korruse_nr) REFERENCES korrused(nr)); CREATE TABLE isik_aines(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, isiku_kood INT, aine_nimetus VARCHAR(50), roll VARCHAR(50), FOREIGN KEY(isiku_kood) REFERENCES isikud(kood), FOREIGN KEY(aine_nimetus) REFERENCES ained(nimetus), FOREIGN KEY(roll) REFERENCES rollid(rollinimi)); CREATE TABLE tunnid(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aine_nimetus VARCHAR(50), ruumi_nr INT, alates DATETIME, kuni DATETIME, FOREIGN KEY(aine_nimetus) REFERENCES ained(nimetus), FOREIGN KEY(ruumi_nr) REFERENCES ruumid(nr)); CREATE TABLE ukseavamised(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ukse_id INT, aeg DATETIME, avaja INT, FOREIGN KEY(ukse_id) REFERENCES uksed(id), FOREIGN KEY(avaja) REFERENCES isikud(kood)); CREATE TABLE anduriteated(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, anduri_kood VARCHAR(50), aeg DATETIME, x FLOAT, y FLOAT, z FLOAT, FOREIGN KEY(anduri_kood) REFERENCES andurid(andurikood)); CREATE TABLE ruumid_uksed(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ruumi_nr INT, ukse_id INT, FOREIGN KEY(ruumi_nr) REFERENCES ruumid(nr), FOREIGN KEY(ukse_id) REFERENCES uksed(id)); INSERT INTO rollid VALUES ('õpilane'); INSERT INTO rollid VALUES ('õpetaja'); INSERT INTO rollid VALUES ('tuutor'); INSERT INTO rollid VALUES ('haldustöötaja'); INSERT INTO ained VALUES ('Matemaatika 3. klass 2016'); INSERT INTO ained VALUES ('Emakeel 3. klass 2016'); INSERT INTO andurid VALUES ('12345'); INSERT INTO andurid VALUES ('12346'); INSERT INTO isikud VALUES (1, '12345'); INSERT INTO isikud VALUES (2, '12346'); INSERT INTO isik_aines VALUES(DEFAULT, 1, 'Matemaatika 3. klass 2016', 'õpilane'); INSERT INTO isik_aines VALUES(DEFAULT, 2, 'Matemaatika 3. klass 2016', 'õpetaja'); INSERT INTO korrused VALUES (1, 1.5); INSERT INTO korrused VALUES (2, 5.5); INSERT INTO ruumid VALUES (101, 10, 60, 25, 70, 1); INSERT INTO ruumid VALUES (102, 26, 60, 50, 70, 1); INSERT INTO uksed VALUES (DEFAULT, 15, 60, 1); INSERT INTO uksed VALUES (DEFAULT, 30, 60, 1); INSERT INTO ruumid_uksed VALUES (DEFAULT, 101, 1); INSERT INTO ruumid_uksed VALUES (DEFAULT, 102, 2); INSERT INTO tunnid VALUES (DEFAULT, 'Matemaatika 3. klass 2016', 101, '2016-12-08 11:00', '2016-12-08 13:30') INSERT INTO anduriteated VALUES (DEFAULT, '12345', NOW(), 15.2, 59.7, 2.5); SELECT * FROM anduriteated; SELECT * FROM anduriteated JOIN andurid ON anduriteated.anduri_kood=andurid.andurikood; SELECT * FROM anduriteated JOIN andurid ON anduriteated.anduri_kood=andurid.andurikood JOIN isikud ON isikud.andurikood=andurid.andurikood; SELECT * FROM anduriteated JOIN andurid ON anduriteated.anduri_kood=andurid.andurikood JOIN isikud ON isikud.andurikood=andurid.andurikood JOIN isik_aines ON isik_aines.isiku_kood=isikud.kood; SELECT * FROM anduriteated JOIN andurid ON anduriteated.anduri_kood=andurid.andurikood JOIN isikud ON isikud.andurikood=andurid.andurikood JOIN isik_aines ON isik_aines.isiku_kood=isikud.kood JOIN ained ON isik_aines.aine_nimetus=ained.nimetus; SELECT * FROM anduriteated JOIN andurid ON anduriteated.anduri_kood=andurid.andurikood JOIN isikud ON isikud.andurikood=andurid.andurikood JOIN isik_aines ON isik_aines.isiku_kood=isikud.kood JOIN ained ON isik_aines.aine_nimetus=ained.nimetus JOIN tunnid ON tunnid.aine_nimetus=ained.nimetus; SELECT * FROM anduriteated JOIN andurid ON anduriteated.anduri_kood=andurid.andurikood JOIN isikud ON isikud.andurikood=andurid.andurikood JOIN isik_aines ON isik_aines.isiku_kood=isikud.kood JOIN ained ON isik_aines.aine_nimetus=ained.nimetus JOIN tunnid ON tunnid.aine_nimetus=ained.nimetus WHERE anduriteated.aeg>tunnid.alates AND anduriteated.aeg