Tietokantojen perusteet kevät 2025

Tehtävä 6: NoSQL-tietokannat

MongoDB on suosittu NoSQL-tietokanta, joka ei perustu relaatiomalliin ja SQL-kieleen kuten useimmat perinteiset tietokannat. Tässä tehtävässä sinun tulee hakea tietoa olemassa olevasta tietokannasta, jossa on tietoa asunnoista ja niiden myyntihistoriasta.

Tehtäväsi on selvittää, miten MongoDB-tietokannasta haetaan tietoa Python-koodilla. Voit käyttää tiedonhakuun nettilähteitä ja tekoälyä. Toisin kuin muissa kurssin tehtävissä, saat käyttää vapaasti tekoälyä myös koodin tuottamiseen.

Tietokannan käyttäminen

Tehtävään liittyvä tietokanta on MongoDB Atlas -pilvipalvelussa. Pääset tietokantaan käsiksi seuraavan tunnuksen ja salasanan kautta: Tällä käyttäjällä on lukuoikeus tietokantaan, mikä tarkoittaa, että voit lukea tietokannassa olevaa tietoa mutta et voi muuttaa sitä. Tehtävässä on tarkoituksena käsitellä tietokantaa Python-koodin kautta, jossa tietokantaan yhdistetään antamalla yllä oleva tunnus ja salasana.

Seuraava koodi antaa esimerkin sitä, miten voit yhdistää tietokantaan ja hakea sieltä tietoa. Koodi tulostaa asuntojen määrän sekä ensimmäisen asunnon tiedot.

import pymongo

connection_string = "mongodb+srv://tikape:NAq8a4pNLWF8TMfd@cluster0.u4vehy9.mongodb.net/"
client = pymongo.MongoClient(connection_string)

database = client.get_database("tikape")
apartments = database["apartments"]

count = apartments.count_documents({})
print(count)

first_apartment = apartments.find_one()
print(first_apartment)
Koodin tulostus on seuraavan kaltainen:
1000
{'_id': ObjectId('679e1f6ef33fbe011e152685'), 'zip_code': '00780', 'apartment_size': 109, 'construction_year': 1996, 'transactions': [{'date': '2005-08-21', 'selling_price': 548582}, {'date': '2011-04-28', 'selling_price': 545161}, {'date': '2013-01-20', 'selling_price': 550660}, {'date': '2019-12-06', 'selling_price': 538431}, {'date': '2024-11-25', 'selling_price': 548912}]}
Huomaa, että jos kokeilet suorittaa koodin itse, se saattaa näyttää eri asunnon tiedot. Koodi hakee jonkin tietokannassa olevan asunnon tiedot.

Osatehtävät

Jokaisessa osatehtävässä sinun tulee selvittää jokin lukuarvo tietokannasta. Saat 3 pistettä jokaisesta osatehtävästä, jonka vastaus on oikein.

Vastauksen lisäksi sinun tulee ilmoittaa koodi, jolla olet hakenut vastauksen. Sinun riittää kirjoittaa koodi, joka hakee tuloksen tietokantaan yhdistämisen jälkeen.

1. Postinumerot

Selvitä, monessako asunnossa postinumero on 00700.

Vastaus:

Koodi:

2. Rakennusvuodet

Selvitä, monessako asunnossa rakennusvuosi on 2000-luvulla.

Vastaus:

Koodi:

3. Pinta-alat

Selvitä, monessako asunnossa pinta-ala on välillä 50–70 m2.

Vastaus:

Koodi:

4. Myyntimäärät

Moniko asunnoista on myyty ainakin kerran vuosina 2010–2012?

Vastaus:

Koodi:

5. Myyntihinnat

Mikä on kallein asunnon myyntihinta aineistossa?

Vastaus:

Koodi:

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


Return to task list