Transformointi, normalisointi, tehostamistarkastelut ja relaatiotietokannan kaavio- Vaihe 6

Relaatiotietokannan kaavio

Relaatiot ja niiden väliset suhteet

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)
)

http://appro.mit.jyu.fi/tjtl53/vaihe6.html
© Petri Heinonen ()<URL: http://www.mit.jyu.fi/peheinon/>
© Tommi Lahtonen ()<URL: http://www.iki.fi/hazor/>
2001-05-15T13:34:32Z