Tietokantojen perusteet syksy 2021

Tehtävä 2: Tietokannan suunnittelu

Tehtäväsi on suunnitella tietokanta, joka voisi olla YouTuben kaltaisen videopalvelun taustalla. Suunnittele tietokanta niin, että siihen voidaan tallentaa tietosisältö seuraavia toimintoja varten:
  1. Videosta tallennetaan nimi, kuvaus, videon lähettäjä ja julkaisupäivä. Käyttäjä pystyy etsimään videoita nimen tai kuvauksen perusteella.
  2. Käyttäjä pystyy antamaan arvion videosta (peukku ylös tai alas). Sama käyttäjä voi antaa vain yhden arvion tietylle videolle.
  3. Videon yhteydessä näytetään sen katselukertojen määrä sekä yhteenveto videon saamista arvioista.
  4. Käyttäjä pystyy lähettämään kommentin videoon sekä myös arvioimaan muiden kommentteja (peukku ylös tai alas). Sama käyttäjä voi antaa vain yhden arvion tietylle kommentille.
  5. Käyttäjä voi perustaa itselleen kanavan, jonne hän voi lähettää videoita. Kanavalla on sivu, joka näyttää kaikki siellä olevat videot.
  6. Käyttäjä voi muodostaa soittolistan hänen kanavallaan olevista videoista. Soittolista on sarja videoita, jotka näytetään peräkkäin. Käyttäjä pystyy valitsemaan, missä järjestyksessä videot ovat listalla.
  7. Käyttäjä pystyy tilaamaan toisen käyttäjän kanavan, jolloin hän saa ilmoituksen kanavan uusista videoista.
  8. Käyttäjä voi seurata oman kanavansa kehitystä ja hän voi katsoa joka päivästä tilaston, montako uutta tilaajaa hän sai ja montako kertaa mitäkin videota katsottiin.
  9. Käyttäjä voi lähettää toiselle käyttäjälle yksityisviestin sekä estämään toisen käyttäjän niin, että hän ei voi lähettää viestejä.
  10. Käyttäjä voi lisätä videoon tekstityksen, joka muodostuu tietyillä hetkillä videon alaosassa näytettävistä sanoista ja lauseista.
Tehtäväsi on suunnitella, mitä tauluja tietokannassa on, mitä sarakkeita kussakin taulussa on ja miten taulut viittaavat toisiinsa. Jos yllä oleva kuvaus ei kerro jotain yksityiskohtaa, tee jokin järkevä päätös tämän asian suhteen.

Suunnittele tietokanta luvun 6 periaatteiden mukaisesti ja esitä tietokannan rakenne SQL-skeemana ja tietokantakaaviona. Selosta lisäksi jokaisesta yllä olevasta vaatimuksesta (1–10), mitä tietoa tietokantaan tallennetaan, jotta kyseinen vaatimus saadaan toteutettua.

Saat 2 pistettä jokaisesta toteutetusta vaatimuksesta. Pisteiden saaminen vaatii, että lähetät myös SQL-skeeman ja tietokantakaavion.

SQL-skeema

Kirjoita tähän CREATE TABLE -komennot, jotka määrittelevät tietokannan.

Tietokantakaavio

Tee tietokantakaavio netissä olevalla työkalulla dbdiagram.io ja kirjoita tähän tekstimuotoinen kuvaus, joka määrittelee tietokannan työkalussa.

Vaatimusten toteutus

Kuvaa tässä, miten mikäkin vaatimus voidaan toteuttaa tietokantasi avulla. Anna lyhyt sanallinen kuvaus sekä hahmotelma asiaan liittyvistä SQL-komennoista.

Miten vaatimus 1 toteutetaan?

Miten vaatimus 2 toteutetaan?

Miten vaatimus 3 toteutetaan?

Miten vaatimus 4 toteutetaan?

Miten vaatimus 5 toteutetaan?

Miten vaatimus 6 toteutetaan?

Miten vaatimus 7 toteutetaan?

Miten vaatimus 8 toteutetaan?

Miten vaatimus 9 toteutetaan?

Miten vaatimus 10 toteutetaan?

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


Return to task list