Tietokantojen perusteet syksy 2020

Harjoitustyön tehtävä 1

Olemassa olevassa tietokannassa on tietoa opiskelijoista, opettajista, kursseista ja suorituksista. Tietokannan SQL-skeema on seuraava:
CREATE TABLE Opiskelijat (
    id INTEGER PRIMARY KEY,
    nimi TEXT
);

CREATE TABLE Opettajat (
    id INTEGER PRIMARY KEY,
    nimi TEXT
);

CREATE TABLE Kurssit (
    id INTEGER PRIMARY KEY,
    nimi TEXT,
    laajuus INTEGER,
    opettaja_id INTEGER REFERENCES Opettajat
);

CREATE TABLE Suoritukset (
    id INTEGER PRIMARY KEY,
    opiskelija_id INTEGER REFERENCES Opiskelijat,
    kurssi_id INTEGER REFERENCES Kurssit,
    arvosana INTEGER,
    paivays DATE
);
Saat ladattua tietokannan itsellesi SQLite-tiedostona tästä. Voit tutkia tietokantaa SQLite-tulkissa, jotta saat paremman kuvan sen sisällöstä. Tietokannan sisältö on luotu satunnaisesti tätä tehtävää varten.

Tehtäväsi on laatia tietokantaa käyttävä ohjelma, jossa on seuraavat toiminnot:

  1. Laske annettuna vuonna saatujen opintopisteiden yhteismäärä.
  2. Tulosta annetun opiskelijan kaikki suoritukset.
  3. Laske annetun kurssin kaikkien suoritusten keskiarvo.
  4. Tulosta top x eniten opintopisteitä antaneet opettajat.
Seuraavassa on esimerkki, jota voit käyttää apuna ohjelman toteuttamisessa. Varmista, että oma ohjelmasi saa haettua samat tulokset tietokannasta kuin esimerkissä.
Valitse toiminto: 1
Anna vuosi: 2014
Opintopisteiden määrä: 274168
Valitse toiminto: 2
Anna opiskelijan nimi: Anni Virtanen
kurssi         op   päiväys        arvosana
TKT3617        5    2000-03-21     3   
TKT2155        10   2000-08-22     3   
TKT1414        6    2000-11-26     2   
TKT3013        10   2000-12-04     5   
TKT7048        10   2000-12-19     3 
... (rivejä välissä)
TKT9787        2    2018-12-12     2   
TKT8115        5    2019-01-24     1   
TKT1056        6    2019-03-25     3   
TKT9986        10   2019-04-21     5   
TKT5884        10   2019-08-30     2  
Valitse toiminto: 2
Anna opiskelijan nimi: Uolevi Salmela
Opiskelijaa ei löytynyt
Valitse toiminto: 3
Anna kurssin nimi: TKT4609
Keskiarvo: 3.03
Valitse toiminto: 3
Anna kurssin nimi: TKT1111
Kurssia ei löytynyt
Valitse toiminto: 4
Anna opettajien määrä: 10
opettaja             op  
Mervi Immonen        124692
Otto Mattila         110474
Ari Toivanen         87136
Jouni Mäkinen        87022
Merja Lehto          86554
Jussi Leino          85083
Katja Parviainen     83947
Leena Hiltunen       83661
Jouni Tikkanen       82821
Veeti Penttinen      82111
Valitse toiminto: 5
Ohjelman vaatimukset: Voit toteuttaa ohjelman haluamallasi ohjelmointikielellä. Kurssimateriaalissa on ohjeita SQLite-tietokannan käyttämiseen Java- ja Python-kielillä.

Vastaa seuraaviin kysymyksiin ohjelmasi avulla:

Montako opintopistettä suoritettiin vuonna 2012?

Mikä on Laura Korhosen viimeksi suorittaman kurssin koodi?

Mikä on suoritusten keskiarvo kurssilla TKT2256?

Kuka on sijalla 20 opettajien top-listalla?

Ohjelman lähdekoodi

The deadline for this task has passed but you can still check your answers


Return to task list