Transformointi, normalisointi, tehostamistarkastelut ja relaatiotietokannan kaavio- Vaihe 6
Relaatiotietokannan kaavio

Arvosanat-taulu
CREATE TABLE arvosanat (
sarja_ID integer not null,
pistemaara double not null,
arvosana varchar(50) not null,
CONSTRAINT arvosana_PK
PRIMARY KEY (sarja_ID, pistemaara)
)
Arvostelu-taulu
CREATE TABLE arvostelu (
tentti integer not null,
arvosana integer not null,
CONSTRAINT arvostelu_PK
PRIMARY KEY (tentti, arvosana),
CONSTRAINT arvostelu_FK_tentti
FOREIGN KEY (tentti)
REFERENCES tentti (tentti_ID)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT arvostelu_FK_arvosana
FOREIGN KEY (arvosana)
REFERENCES arvosanat (sarja_ID)
ON UPDATE CASCADE
ON DELETE CASCADE
)
Formaatti-taulu
CREATE TABLE formaatti (
formaatti_ID integer not null,
tiedostopaate char(3) not null,
tiedostomuoto varchar(50) not null,
CONSTRAINT formaatti_PK
PRIMARY KEY (formaatti_ID)
)
Harjoitustyo-taulu
CREATE TABLE harjoitustyo (
ht_ID autoincrement not null,
tarkastaja integer not null,
kurssi_ID char(6) not null,
tyon_nro smallint not null,
URL varchar(60),
Aihe varchar(60) not null,
Bonus double,
PVM date not null,
CONSTRAINT harjoitustyo_PK
PRIMARY KEY (ht_ID),
CONSTRAINT harjoitustyo_FK_henkilo
FOREIGN KEY (tarkastaja)
REFERENCES henkilo (henkilo_ID)
ON UPDATE CASCADE
ON DELETE NO ACTION,
CONSTRAINT harjoitustyo_FK_kurssi
FOREIGN KEY (kurssi_ID)
REFERENCES kurssi (koodi)
ON UPDATE CASCADE
ON DELETE NO ACTION
)
Henkilo-taulu
CREATE TABLE henkilo (
henkilo_ID autoincrement not null,
email varchar(64) not null,
sotu char(11)not null,
sukunimi varchar(64) not null,
etunimi varchar(64) not null,
kotisivu varchar(128),
fax varchar(32),
puh varchar(32),
postinro char(5),
katuosoite varchar(64),
tyyppi_ID integer not null,
CONSTRAINT henkilo_PK
PRIMARY KEY (henkilo_ID),
CONSTRAINT henkilo_FK_tyyppi
FOREIGN KEY (tyyppi_ID)
REFERENCES tyyppi (tyyppi_ID)
ON UPDATE CASCADE
ON DELETE NO ACTION
)
Kurssi-taulu
CREATE TABLE kurssi (
koodi char(6) not null,
nimi varchar(60) not null,
ov double not null,
kotisivu varchar(1280),
htlkm smallint not null,
CONSTRAINT kurssi_PK
PRIMARY KEY (koodi)
)
Paikkakunta-taulu
CREATE TABLE paikkakunta (
paikkakunta_ID autoincrement not null,
oppilaitos varchar(128) not null,
kotisivu varchar(128),
fax varchar(32),
puh varchar(32) not null,
email varchar(64),
postinro char(5),
postituslista varchar(64),
katuosoite varchar(128),
CONSTRAINT paikkakunta_PK
PRIMARY KEY (paikkakunta_ID)
)
Suoritus-taulu
CREATE TABLE suoritus (
tentti integer not null,
henkilo integer not null,
teht_nro integer not null,
pisteet integer not null,
CONSTRAINT suoritus_PK
PRIMARY KEY (tentti, henkilo, teht_nro),
CONSTRAINT suoritus_FK_henkilo
FOREIGN KEY (henkilo)
REFERENCES henkilo (henkilo_ID)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT suoritus_FK_tentti
FOREIGN KEY (tentti)
REFERENCES tentti (tentti_ID)
ON UPDATE CASCADE
ON DELETE CASCADE
)
Tekee-taulu
CREATE TABLE tekee (
henkilo_ID integer not null,
ht_ID integer not null,
CONSTRAINT tekee_PK
PRIMARY KEY (henkilo_ID, ht_ID),
CONSTRAINT tekee_FK_henkilo
FOREIGN KEY (henkilo_ID)
REFERENCES henkilo (henkilo_ID)
ON UPDATE CASCADE
ON DELETE NO ACTION,
CONSTRAINT tekee_FK_harjoitustyo
FOREIGN KEY (ht_ID)
REFERENCES harjoitustyo (ht_ID)
ON UPDATE CASCADE
ON DELETE NO ACTION
)
Tenttaattori-taulu
CREATE TABLE tentaattori (
henkilo_ID integer not null,
kurssi_ID char(6) not null,
CONSTRAINT tentaattorii_PK
PRIMARY KEY (henkilo_ID, kurssi_ID),
CONSTRAINT tentaattori_FK_henkilo
FOREIGN KEY (henkilo_ID)
REFERENCES henkilo (henkilo_ID)
ON UPDATE CASCADE
ON DELETE NO ACTION,
CONSTRAINT tentaattori_FK_kurssi
FOREIGN KEY (kurssi_ID)
REFERENCES kurssi (koodi)
ON UPDATE CASCADE
ON DELETE NO ACTION
)
Tentti-taulu
CREATE TABLE tentti (
tentti_ID autoincrement not null,
pvm date not null,
tarkastaja integer not null,
kurssi char(6) not null,
CONSTRAINT tentti_PK
PRIMARY KEY (tentti_ID),
CONSTRAINT tentti_FK_henkilo
FOREIGN KEY (tarkastaja)
REFERENCES henkilo (henkilo_ID)
ON UPDATE CASCADE
ON DELETE NO ACTION,
CONSTRAINT tentti_FK_kurssi
FOREIGN KEY (kurssi)
REFERENCES kurssi (koodi)
ON UPDATE CASCADE
ON DELETE NO ACTION,
)
Tenttitilaus-taulu
CREATE TABLE tentti_tilaus (
tilaus_ID autoincrement not null,
tentti integer not null,
toimitus_pvm date not null,
tilaus_pvm date not null,
toimitusosoite varchar(128) not null,
formaatti integer not null,
tilaaja integer not null,
CONSTRAINT tentti_tilaus_PK
PRIMARY KEY (tilaus_ID),
CONSTRAINT tilaus_FK_henkilo
FOREIGN KEY (tilaaja)
REFERENCES henkilo (henkilo_ID)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT tilaus_FK_tentti
FOREIGN KEY (tentti)
REFERENCES tentti (tentti_ID)
ON UPDATE CASCADE
ON DELETE CAASCADE,
CONSTRAINT tilaus_FK_formaatti
FOREIGN KEY (formaatti)
REFERENCES formaatti (formaatti_ID)
ON UPDATE CASCADE
ON DELETE NO ACTION
)
Toimii-taulu
CREATE TABLE toimii (
henkilo_ID integer not null,
paikkakunta_ID integer not null,
CONSTRAINT toimii_PK
PRIMARY KEY (henkilo_ID, paikkakunta_ID),
CONSTRAINT toimii_FK_henkilo
FOREIGN KEY (henkilo_ID)
REFERENCES henkilo (henkilo_ID)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT toimii_FK_paikkakunta
FOREIGN KEY (paikkakunta_ID)
REFERENCES paikkakunta (paikkakunta_ID)
ON UPDATE CASCADE
ON DELETE CASCADE
)
Tyyppi-taulu
CREATE TABLE tyyppi (
tyyppi_ID integer not null,
tyyppinimi varchar(50) not null,
CONSTRAINT tyyppi_PK
PRIMARY KEY (tyyppi_ID)
)