Relaatiotietokannat, ER-kaavion muuntaminen relaatiotietokannaksi, Normalisointi, SQL ja ODBC - Luento 3

Tällä luennolla käydään läpi relaatiotietokantojen perusteita, ER-kaavion muuntamista relaatiotietokannaksi ja normalisoinnin idea

Luentotaltiointi

Ongelmia videon katselussa?

Relaatiotietokannat

Esimerkki

Henkilo
HetuEtunimiSukunimi
111111-1234JukkaMäntylä
222222-2345TommiLahtonen
121212-5678PetriHeinonen
Kirja
ISBNNimi
1111111234Taru sormusten herrasta
2222222345Harry Potter and the Half-Blood Prince
1212125678SQL-Toolkit

Relaatiotietokantaesimerkki

Taulut (tables)

Taulun nimeksi kannattaa valita jokin selkeä ja kuvaava nimi. Nimessä kannattaa kuitenkin välttää välilyöntejä, erikoismerkkejä ja skandinaavisia merkkejä (å,ä,ö).

Jokainen taulu sisältää yhden tai useamman kentän

Kentät (fields)

Kenttiä luotaessa niille määritellään seuraavanlaisia ominaisuuksia:

Standardoidut tietotyypit

Seuraavassa luetellaan tärkeimmät standardoidut tietotyypit.

CHAR [(pit)]
Kiinteänmittainen merkkijono. Oletuspituus on 1.
  • Hetu: CHAR(11)
  • Postinumero: CHAR(5)
VARCHAR [(pit)]
Vaihtuvanmittainen merkkijono jolle määritetään maksimipituus
  • Etunimi: VARCHAR(30)
  • Sukunimi: VARCHAR(100)
NUMERIC [(pit., [desim.osa])]
Tarkka numeerinen arvo, jonka maksimipituus on pit numeroa ja desim.osa kuvaa desimaaliosan pituutta.
  • Paino: NUMERIC(4,1) eli enintään neljä numeroa joista yksi on varattu desimaaliosalle
INTEGER
Kokonaisluku, jolla on käyttöympäristöstä riippuva maksimikoko
  • Lukumaara: INTEGER
DATE
Vuosi, kuukausi ja päivä.
  • Syntymaaika: DATE
TIME
tunti, minuutti ja sekunti.
  • Kellonaika: TIME
INTERVAL [(mittayksikkö)]
ajanväli, kulunut aika
  • Juoksuaika: INTERVAL HOUR TO MINUTE
TIMESTAMP
Vuosi, kuukausi, päivä, sekä tunti, minuutti ja sekunti.
  • Lahetysaika (esim. sähköposti): TIMESTAMP

Avaimet (keys, indexes)

Esimerkki tauluun syötetyistä tiedoista:

Henkilo
HetuEtunimiSukunimi
111111-1234JukkaMäntylä
222222-2345TommiLahtonen
121212-5678PetriHeinonen
Puhelinnumero
SuuntanroNumeroHetu
0142602746111111-1234
0401575923111111-1234
0459987183222222-2345

tenttii-esimerkki Erkalla

Tietokantaesimerkki samasta aiheesta (mdb)

Viite-eheys (Referential Integrity)

ER-kaavion muuntaminen relaatioiksi

  1. Jokainen tavallinen kohde muutetaan relaatioksi (tauluksi)
  2. Jokainen ER-diagrammista löytyvä ominaisuus lisätään siihen liittyvään relaatioon
  3. Jokainen Many-to-Many -suhde muutetaan tavalliseksi relaatioksi.
    • Määritellään relaatioon yhtä monta viiteavainta (foreign key) kuin on suhteeseen liittyviä kohteita
    • määritellään perusavaimeksi viiteavaimista tehty yhdistetty avain
    • lisätään relaatioon siihen liittyvät muut kentät.
  4. Many-to-One -suhteet
    • Ei luoda uusia relaatioita mutta lisätään ennestään olevaan relaatioon uusi viiteavain. Lisäys tapahtuu kohteeseen, jonka puolella on Many-merkintä.
    • Suhteeseen liittyneet ominaisuudet lisätään ennestään olevaan relaatioon

mallitietokannan er-kaavio

mallitietokannan relaatiot

Käyttäjien kommentit

Ongelmia ( 2009-10-12 16:42:04 )

Nyt ei jotenkin uppoa kaaliin; minne ihmeeseen nämä kyselyt kirjoitetaan? Mihin ohjelmaan, mille riville? Mistä ohjelmasta tulee tuollaisia taulukoita (keltainen otsikkO)?

Tommi ( 2009-10-12 16:46:07 )

Ihan mihin tahansa tietokantaohjelmaan, joka ymmärtää sql-kieltä. Katso luentovideo tahi tee demotehtävät niin asia selkenee.

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/tiedonhallinta/luennot/luento3/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2011-01-19 13:38:02
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta