Tietokantojen perusteet

kevät 2026

Projektitehtävä 1

Tämän tehtävän aineistona on tietokanta, joka sisältää tiedot kaupunkipyörillä tehdyistä matkoista vuonna 2024 Helsingin ja Espoon alueella. Tietokanta perustuu HSL:n julkaisemaan avoimen datan aineistoon, joka on muutettu tätä kurssia varten SQLite-tietokannaksi.

Voit kopioida tietokannan itsellesi tästä: bikes_2024.zip

Tietokannassa on seuraavat kaksi taulua:

CREATE TABLE Stations (
    id INTEGER PRIMARY KEY,
    name TEXT
);

CREATE TABLE Trips (
    id INTEGER PRIMARY KEY,
    start_time TEXT,
    end_time TEXT,
    start_station_id INTEGER REFERENCES Stations,
    end_station_id INTEGER REFERENCES Stations,
    distance INTEGER,
    duration INTEGER
);

Kurssin materiaalissa on tarkempaa tietoa tietokannan sisällöstä sekä esimerkkejä tietokantaan liittyvistä kyselyistä.

Tehtäväsi on toteuttaa koodi, jossa on tietokantaa käyttäviä funktioita. Voit päättää itse, missä muodossa funktiot tarkalleen antavat tulokset. Oleellista on, että pystyt funktioiden avulla hakemaan osatehtävissä mainitut esimerkkitulokset.

Saat tietyn määrän pisteitä jokaisesta osatehtävästä. Pistemääräsi tehtävästä on summa ratkaisemiesi osatehtävien pisteistä.

Osatehtävä 1 (4 pistettä)

Funktioiden tulisi antaa tuloksena esimerkiksi, että asemalla “Intiankatu” alkaneiden matkojen määrä on 8535 ja päättyneiden matkojen määrä on 8448.

Osatehtävä 2 (5 pistettä)

Funktioiden tulisi antaa seuraavat tulokset, kun limit on 5:

Lähtöasema Kohdeasema Etäisyys (m)
Erottajan aukio Unioninkatu 655225
Gunillantie Workshop Helsinki 425905
Pajamäki Paloheinän kirjasto 393434
Tupasaarentie Marjaniementie 277991
Pitäjänmäen asema Workshop Helsinki 262121
Lähtöasema Kohdeasema Kesto (s)
Lintulahdenkatu Marjaniementie 6286982
Tupasaarentie Marjaniementie 4649106
Ehrenströmintie Workshop Helsinki 4396006
Matinkyläntie Paciuksenkaari 4000567
Kuikkarinne Trumpettikuja 3987658

Sivuhuomio: Nämä tiedot eivät vaikuta uskottavilta, koska tämä tarkoittaisi, että pisin matkan pituus on 655 kilometriä ja pisin matkan kesto on 72 päivää.

Osatehtävä 3 (6 pistettä)

Funktioiden tulisi antaa seuraavat tulokset:

Kuukausi Matkojen määrä
Huhtikuu 167960
Toukokuu 448518
Kesäkuu 469132
Heinäkuu 455422
Elokuu 492348
Syyskuu 340507
Lokakuu 211781
Päivä Matkojen määrä
Maanantai 379173
Tiistai 423740
Keskiviikko 405657
Torstai 406417
Perjantai 367325
Lauantai 311952
Sunnuntai 291404

Osatehtävä 4 (7 pistettä)

Funktioiden tulisi antaa seuraavat tulokset, kun limit on 5:

Asema Lähtöjen määrä
Itämerentori 50441
Töölönlahdenkatu 36382
Rautatientori / länsi 32415
Pasilan asema 30910
Kalasatama (M) 28352
Asema Lähtöjen määrä
Relay Box test station 9
Workshop Helsinki 26
Puistolan VPK 393
Sateenkaarentie 418
Jakomäentie 481

Tässä “Relay Box test station” vaikuttaa olevan testiasema ja “Workshop Helsinki” on ehkä pyörävarikko, minkä takia todellinen vähiten suosittu lähtöasema voisi olla “Puistolan VPK”.

Osatehtävä 5 (8 pistettä)

Funktion tulisi antaa seuraavat tulokset, kun limit on 5:

Asema Alkaneet matkat Päättyneet matkat Määrien ero
Pasilan asema 30910 26670 4240
Karhupuisto 9686 8018 1668
Sompasaari 21604 23158 1554
Vallilan varikko 6068 4647 1421
Opastinsilta 5905 4550 1355

Palautusohje

Liitä raporttiin koodi, joka sisältää toteuttamasi funktiot.