# Tehtävä 001 Tietokannan suunnittelu

## **Tehtävän tavoite**

Tietokannat ovat usein osa tietojärjestelmää ja ratkaisevat jonkin ongelman. Usein ongelmaan liittyy liiketoiminta minkä tueksi ratkaisua tehdään. Tehtävän tavoitteena on oppia tietokannan suunnittelun perusteita toimeksiannon ratkaisemiseksi.<br>

## Asiakkaan tarve

Riihimäen Lukutoukat Ry **(jäljempänä Lukutoukat)** on perustamassa pientä kirjalainaamoa jäsenilleen. Tässä he tarvitsevat apuasi sopivan järjestelmän tietokannan mallintamiseen.\
\
Lukutoukat ovat ajatelleet tarvitsevan pienen lainausjärjestelmän. Tietojärjestelmälle haetaan tukirahoja mutta sitä varten heillä tulisi olla tieto millainen palvelu tulee olemaan.&#x20;

Lukutoukat ovat kuulleet, että tietokanta on tässä isossa osassa ja pyytävät sinulta apua suunnittelemaan heidän tarpeisiinsa sopivan tietokantaratkaisun.

\
**Tietojärjestelmän tulisi pystyä toteuttamaan seuraavanlaisia asioita:**

* Pitämään yksinkertaista kirjarekisteriä jäsenien kirjoista.&#x20;
* Jäsenien tulee pystyä merkitsemään kirjasta siihen kuuluvat perustiedot, jotta näillä tiedoilla voidaan myös hakea kirjoja.&#x20;
* Kaikkia järjestelmään merkittyjä kirjoja voi lainata.
* Lainausjärjestelmän avulla tulisi tietää kuka omistaa kirjan ja kenellä se on kyseisellä hetkellä lainassa.
* Jäsenet voivat lainata useita kirjoja kerrallaan ja heidän pitää pystyä myös tietämään kirjat, jotka ovat heillä lainassa ja milloin ne pitää palauttaa.&#x20;
* Lukutoukat ovat päättäneet, että kirja saa olla lainaushetkestä lähtien enintään 30 päivää lainassa.&#x20;
* Kirjoista tulisi myös nähdä niiden lainaushistoria eli milloin ne ovat lainattu.
* Jos kirja on lainassa ja ei ole sillä hetkellä saatavissa niin jäsenen pitäisi pystyä ilmoittamaan itsensä varausjonoon.

Lukutoukat palkitsevat jäseniä aktiivisesta lainaustoiminnasta. He ovat kiinnostuneet myös seuraavanlaisista yhteenvedoista, jotka tulisi saada selville tietokannan avulla.

* TOP 10 lista lainatuista kirjoista ja teoksista koko järjestelmän olemassaolon ajalta.
* Kirjoje ja teoksien määrä tietokannassa sekä erottelu moniko niistä on lainassa tai vapaana.
* Lista erääntyneistä kirjojen ja teoksien palautusajankohdista sekä kenellä kirja on sillä hetkellä lainassa.\ <br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.sovelluskontti.com/relaatiotietokannat/tehtaevae-001-tietokannan-suunnittelu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
