Tietokantojen perusteet syksy 2020

Harjoitustyön tehtävä 2

Tehtäväsi on suunnitella tietokanta, jota voitaisiin käyttää YouTuben kaltaisen videopalvelun taustalla. Suunnittele tietokanta niin, että siihen voidaan tallentaa tietosisältö seuraavia toimintoja varten:
  1. Käyttäjä voi etsiä videoita antamalla sanan, joka esiintyy videon nimessä tai kuvauksessa.
  2. Käyttäjä voi arvioida videon (peukku ylös tai alas) ja videon yhteydessä näkyy yhteenveto käyttäjien arvioista. Sama käyttäjä voi antaa vain yhden arvion tietylle videolle.
  3. Videon alla näkyy kommentteja käyttäjiltä. Myös näissä voi antaa arvion samaan tapaan kuin videossa (peukku ylös tai alas, vain yksi arvio tietylle kommentille samalta käyttäjältä).
  4. Käyttäjä voi perustaa oman kanavan ja julkaista siellä videoita. Kanavan sisällä kanavan omistaja voi luokitella videoita niiden aiheen mukaan.
  5. Käyttäjä voi tilata toisen käyttäjän kanavan, jolloin hän saa tietoa uusista videoista.
  6. Videoissa näkyy katsojien määrä ja kanavissa näkyy tilaajien määrä.
  7. Käyttäjä voi luoda soittolistoja, joihin voi valita videoita eri kanavista. Soittolistan videoilla on tietty järjestys.
  8. Käyttäjä voi lähettää viestin toiselle käyttäjälle sekä estää toista käyttäjää lähettämästä viestejä hänelle.
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.

Esitä tietokannan rakenne SQL-skeemana. Suunnittele tietokanta kurssimateriaalin luvun 5 periaatteiden mukaisesti ja käytä sopivissa kohdissa luvun 6.1 tekniikoita varmistamaan tietokannan tiedon eheys. Selosta lisäksi jokaisesta yllä olevasta vaatimuksesta (1–8), mitä tietoa tietokantaan tallennetaan, jotta kyseinen vaatimus saadaan toteutettua.

Huom! Sinun ei tarvitse suunnitella, miten videot itsessään tallennetaan eikä miten palvelu osaa suositella käyttäjälle videoita.

Tietokannan SQL-skeema

Miten vaatimukset 1–8 toteutetaan?

The deadline for this task has passed


Return to task list