ER-kaavion transformointi relaatioiksi ja normalisointi - Demo 2 - mallivastaukset
Opiskelijatietokanta
Malliratkaisu on saatavilla myös excel-muodossa.

Opiskelija
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Sotu |
CHAR(11) |
Kyllä |
|
Jokaisella pitää olla yksilöllinen Sotu |
| Sähköpostiosoite |
VARCHAR(64) |
Ei |
|
Jokaisella pitää olla yksilöllinen sähköpostiosoite |
| Etunimi |
VARCHAR(32) |
Kyllä |
|
|
| Sukunimi |
VARCHAR(64) |
Kyllä |
|
|
| Lähiosoite |
VARCHAR(64) |
Kyllä |
|
|
| Postinumero |
CHAR(5) |
Kyllä |
|
Arvoiksi kelpaavat vain Postinumero-taulun Postinumero-kentästä löytyvät arvot. Postinumeron päivittymisen vyöryminen sallitaan (UPDATE CASCADE). Postinumeron poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
| Aloitusvuosi |
SMALLINT |
Kyllä |
Kuluva vuosi |
Ei voi olla pienempi kuin 1990 |
| Laitos |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Laitos-taulun LaitosID-kentästä löytyvät arvot. LaitosID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). LaitosID:n poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
Kurssi
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Kurssikoodi |
CHAR(6) |
Kyllä |
|
Kolme ensimmäistä merkkiä ovat kirjaimia |
| Nimi |
VARCHAR(64) |
Kyllä |
|
|
| Laajuus |
DOUBLE |
Kyllä |
1 |
|
| Laitos |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Laitos-taulun LaitosID-kentästä löytyvät arvot. LaitosID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). LaitosID:n poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
Laitos
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| LaitosID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| Nimi |
VARCHAR(64) |
Kyllä |
|
|
| Tiedekunta |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Tiedekunta-taulun TiedekuntaID-kentästä löytyvät arvot. TiedekuntaID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). TiedekuntaID:n poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
Tiedekunta
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| TiedekuntaID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| Nimi |
VARCHAR(64) |
Kyllä |
|
|
Tenttii
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Opiskelija |
CHAR(11) |
Kyllä |
|
Arvoiksi kelpaavat vain Opiskelija-taulun Sotu-kentästä löytyvät arvot.
Sotun päivittymisen vyöryminen sallitaan (UPDATE CASCADE).
Sotun poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
| Kurssi |
CHAR(6) |
Kyllä |
|
Arvoiksi kelpaavat vain Kurssi-taulun Kurssikoodi-kentästä löytyvät arvot.
Kurssikoodin päivittymisen vyöryminen sallitaan (UPDATE CASCADE).
Kurssikoodin poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
| Päivämäärä |
DATE |
Kyllä |
|
|
| Arvosana |
DOUBLE |
Kyllä |
1 |
|
Puhelinnumero
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Sotu |
CHAR(11) |
Kyllä |
|
Arvoiksi kelpaavat vain Opiskelija-taulun Sotu-kentästä löytyvät arvot.
Sotun päivittymisen vyöryminen sallitaan (UPDATE CASCADE).
Sotun poistamisen vyöryminen sallitaan (DELETE CASCADE).
|
| Puhelinnumero |
VARCHAR(32) |
Kyllä |
|
|
Postinumero
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Postinumero |
CHAR(5) |
Kyllä |
|
|
| Postitoimipaikka |
VARCHAR(64) |
Kyllä |
|
|
Yritystietokanta
Malliratkaisu on saatavilla myös excel-muodossa.
Henkilö
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Email |
VARCHAR(64) |
Kyllä |
|
|
| Etunimi |
VARCHAR(32) |
Kyllä |
|
|
| Sukunimi |
VARCHAR(64) |
Kyllä |
|
|
| Puhnro |
VARCHAR(32) |
Ei |
- |
|
| Työnimike |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Nimike-taulun NimikeID-kentästä löytyvät arvot. NimikeID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). NimikeID:n poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
Nimeke
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| NimikeID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| Nimike |
VARCHAR(64) |
Kyllä |
|
|
Tehtävä
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| TehtäväID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| TehtäväNimi |
VARCHAR(64) |
Kyllä |
|
|
Projekti
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| ProjektiID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| ProjektiNimi |
VARCHAR(64) |
Kyllä |
|
|
| Alkamispvm |
DATE |
Kyllä |
|
|
| Päättymispvm |
DATE |
Kyllä |
|
|
Tekee
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Henkilo |
VARCHAR(64) |
Kyllä |
|
Arvoiksi kelpaavat vain Henkilo-taulun Email-kentästä löytyvät arvot. Emailin päivittymisen vyöryminen sallitaan (UPDATE CASCADE). Emailin poistamisen vyöryminen kielletään (DELETE RESTRICT). |
| Tehtava |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Tehtava-taulun TehtavaID-kentästä löytyvät arvot. TehtavaID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). TehtavaID:n poistamisen vyöryminen kielletään (DELETE RESTRICT).
|
| Projekti |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Projekti-taulun ProjektiID-kentästä löytyvät arvot. ProjektiID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). ProjektiID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |
Futistietokanta
Malliratkaisu on saatavilla myös excel-muodossa.
Peli-tauluun lisättiin ID-kenttä toimimaan avaimena, koska peleihin joudutaan viittaamaan paljon. Ilman uutta kenttää olisi jouduttu viitatessa aina käyttämään kaikkia peli-taulun kenttiä, koska ne olisivat muodostaneet yhdistetyn avaimen.
Ikä-kenttä pudotettiin kokonaan pois, koska se on aina johdettavissa. Ikä lasketaan tietokantasovelluksessa aina tarpeen mukaan.
Maa
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| MaaID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| MaaNimi |
VARCHAR(64) |
Kyllä |
|
|
Joukkue
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| JoukkueID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| JoukkueNimi |
VARCHAR(64) |
Kyllä |
|
|
| Kotoisin |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Maa-taulun MaaID-kentästä löytyvät arvot. MaaID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). MaaID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |
Peli
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| PeliID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| Aika |
TIMESTAMP |
Kyllä |
|
|
| Koti |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Joukkue-taulun JoukkueID-kentästä löytyvät arvot. JoukkueID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). JoukkueID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |
| Vieras |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Joukkue-taulun JoukkueID-kentästä löytyvät arvot. JoukkueID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). JoukkueID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |
Pelaaja
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| PelaajaID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| Etunimi |
VARCHAR(32) |
Kyllä |
|
|
| Sukunimi |
VARCHAR(64) |
Kyllä |
|
|
| PeliNro |
SMALLINT |
Kyllä |
1 |
Suurempi kuin nolla |
| Syntymäaika |
DATE |
Kyllä |
|
|
| Pelaa |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Joukkue-taulun JoukkueID-kentästä löytyvät arvot. JoukkueID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). JoukkueID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |
Tapahtuma
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| TapahtumaID |
INTEGER |
Kyllä |
|
Voidaan generoida automaattisesti |
| TapahtumaNimi |
VARCHAR(64) |
Kyllä |
|
|
Tapahtuu
| Ominaisuus |
Tietotyyppi |
Pakollinen |
Oletusarvo |
Rajoitukset |
| Aika |
TIME |
Kyllä |
|
|
| Peli |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Peli-taulun PeliID-kentästä löytyvät arvot. PeliID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). PeliID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |
| Pelaaja |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Pelaaja-taulun PelaajaID-kentästä löytyvät arvot. PelaajaID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). PelaajaID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |
| Tapahtuma |
INTEGER |
Kyllä |
|
Arvoiksi kelpaavat vain Tapahtuma-taulun TapahtumaID-kentästä löytyvät arvot. TapahtumaID:n päivittymisen vyöryminen sallitaan (UPDATE CASCADE). TapahtumaID:n poistamisen vyöryminen kielletään (DELETE RESTRICT). |