Harjoitus: Käsitteellinen mallintaminen

Tämä tehtävä sisältää kokoelman erilaisia mallintamisharjoituksia. Tutustu harjoituksissa oleviin kohdealueen kuvauksiin ja tietokannan vaatimuksiin. Sen jälkeen mallinna vaatimuksia vastaava tietokanta ER-kaaviona. Huomaa, että kuvaukset eivät ole kattavat, eli joudut mahdollisesti tekemään lisäoletuksia saadakseen mallikuvat aikaan.

Ennen tämän harjoituksen tekemistä on suositeltavaa, että tutustut ensin seuraavaan sisältöön:

Huomautus

Jos huomaat virheitä tai sinulla on kysyttävää tehtävistä, ota yhteyttä kurssin opettajiin

Harjoitusten pisteytys ja mallivastaukset

Tässä harjoituksessa sinun tulee pisteyttää vastauksesi itse mallivastauksen perusteella. Tee seuraavasti:

  1. Piirrä ensin harjoituksen ER-kaavio vaatimusmäärittelyn perusteella. Tee harjoitus rauhassa, ja tutustu samalla ER-kaavioeditoriin sekä Luvussa 2.2 esitettyihin asioihin. Tallenna vastauksesi usein.

  2. Kun olet mielestäsi saanut ER-kaavion piirrettyä ja tallennettua, anna itsellesi pisteet Klikkaamalla tehtävän yläpuolella olevaa "Aseta mukautetut pisteet" -valintaa, syöttämällä pistemääräsi (min 0, max 1) ja painamalla vahvistuspainiketta:

    Esimerkki: Harjoituksen itsearviointi ja mallivastauksen katsominen

    Anna itsellesi pisteet välillä 0-1 sen perusteella, kuinka hyvin sait mielestäsi mallinnettua tietokannan. Vaikka et olisi saanut kaikkea mallinnettua, anna itsellesi vähintään 0,01 hyvästä yrityksestä 🙂

  3. Voit nyt katsoa mallivastauksen painamalla "Näytä mallivastaus" -painiketta. Kun avaat mallivastauksen ensimmäistä kertaa, saatat nähdä seuraavan ilmoituksen:

    Voit painaa tässä dialogissa "OK", jolloin harjoitus merkitään tehdyksi.

  4. Tutustu mallivastaukseen. Voit vielä halutessasi korjata alkuperäisen ER-kaaviosi.

  5. Vertaile harjoituksen lopussa olevassa tekstilaatikossa omaa vastausta mallivastaukseen lyhyesti. Onko samankaltainen vastaus? Onko suunnitelmasi parempi kuin mallin? Jos esimerkiksi vastauksesi kardinaalisuudet ovat eri kuin mallissa, arvioi, mistä ero voisi johtua (teitkö esimerkiksi jonkun oletuksen joita ei kuvauksessa ollut).

  6. Tallenna arviosi. Voit vielä antaa arviollesi pistemäärän 0-1 sen mukaan, kuinka hyvin tietokantasi on mallinnettu mallivastauksen suhteen.

Huomautus

Huomio mallivastauksista:

Käsitteellinen mallintaminen on osin tulkinnanvarainen prosessi. ER-kaavioilla mallinnetaan käsitteitä ja niiden välisiä suhteita, jotta tietokannan suunnittelu ja toteuttaminen olisi helpompaa. Täydellinen käsitteellinen mallintaminen edellyttää hyvää kohdealueen tuntemusta, ja eri henkilö saattaa mallintaa saman kohdealueen tietokannan eri tavalla.

Tästä syystä voit saada hyvin erilaisiakin ER-kaavioita kuin mallivastauksissa. Jos kaaviosi on eri kuin mallivastaus, älä ajattele, että vastauksesi olisi heti väärin. Tutustu mallivastaukseen ja mieti, onko mallinnukseksi parempi tai huonompi. Mallivastauksissa on pyritty huomioimaan erilaisia mahdollisia oikeita mallinnustapoja, mutta kaikkia niitä on mahdotonta listata.

Osassa 3 huomataankin, että monissa tapauksissa erilaiset ER-kaaviot oikeastaan voivat tuottaa aivan samanlaisen relaatiotietokannan.

Harjoitus 1

Tarkastele alla olevaa musiikkilevykaupan tietokannan ER-kaaviota. Täydennä kaavioon avainattribuutit, mahdolliset moniarvoiset ja johdetut attribuutit sekä heikot kohdetyypit. Merkitse myös minimi- ja maksimikardinaalisuudet sekä suhdetyyppejä selittävät sanat.

Mitään uusia kohdetyyppejä tai attribuutteja ei tule ottaa käyttöön.

Seuraavat asiat tiedetään kohdealueesta:

  • Kyseessä on yksittäisen musiikkikaupan kirjanpitoon tarkoitettu tietokanta.
  • Musiikkikauppa myy vain ja ainoastaan CD-levyjä tai vinyylejä.
  • CD-levyt joskus myydään jonkun bonussisällön kanssa. Useimmiten bonussisältöä ei ole.
  • Tuotteella voi olla useita genrejä.
  • Asiakkaalla voi olla erityyppisiä superasiakkuuksia. Superasiakkuus mahdollistaa aina tietyn tuotteen tai tuoteryhmän ostamista.
  • Asiakas voi ostaa kerrallaan useita tuotteita. Tuotetta myy aina joku yksittäinen työntekijä.
  • Asiakas ei voi maksaa itsepalveluna, vaan osto tehdään työntekijän avulla.
  • Jokaiselle tuotteelle tehdään aina oma tilaus. Tilauksen hoitamisesta vastaa aina tietty toimittaja.
  • Asiakkaalta voidaan pyytää henkilö- ja yhteystiedot ostotapahtuman yhteydessä, mutta asiakas ei välttämättä niitä anna.
# ex22-task1
# reflect-ex22-task1

Harjoitus 2

Piirrä ER-kaavio IMDB:n kaltaiselle elokuvatietokannalle. Kaaviossa tulee esiintyä keskeiset kohdetyypit, niiden attribuutit, avainattribuutit, sekä mini- ja maksimikardinaalisuudet. Saatat joutua tekemään lisäoletuksia kaaviota piirtäessä. Voit mainita tehdyistä oletuksistasi tehtävän alla olevaan tekstilaatikkoon.

Vaatimusmäärittely:

  • Elokuvat: Tietokannan keskiössä ovat elokuvat. Pohdi, mitä tietoja elokuvista olisi hyödyllistä säilyttää. Mieti myös, miten elokuvat voidaan yksilöidä ja luokitella.
  • Henkilöt: Elokuvien tekemiseen osallistuu useita henkilöitä, kuten näyttelijöitä ja ohjaajia. Mieti, mitä tietoja näistä henkilöistä tulisi tallentaa. Harkitse myös, miten henkilöiden suhteet elokuviin voidaan esittää.
  • Roolit ja Tehtävät: Elokuvissa henkilöillä on erilaisia rooleja ja tehtäviä. Pohdi, miten tämä tieto voidaan liittää tietokantaan ja miten eri roolit ja tehtävät liittyvät toisiinsa.
  • Tuotantoyhtiöt: Elokuvat tuotetaan yhtiöiden toimesta. Mieti, mitä tietoja näistä yhtiöistä on hyödyllistä tallentaa ja miten ne liittyvät elokuviin.
  • Lisätiedot: Elokuvat voivat sisältää monenlaisia lisätietoja, kuten genrejä, julkaisupäiviä tai kestoja. Mieti, miten nämä tiedot voidaan järjestää ja yhdistää elokuviin.
# ex22-task2
# reflect-ex22-task2

Harjoitus 3

Piirrä ER-kaavio pienen yrityksen käyttöön. Kaaviossa tulee esiintyä keskeiset kohdetyypit, niiden attribuutit, avainattribuutit, sekä mini- ja maksimikardinaalisuudet. Saatat joutua tekemään lisäoletuksia kaaviota piirtäessä. Voit mainita tehdyistä oletuksistasi tehtävän alla olevaan tekstilaatikkoon.

Vaatimusmäärittely

  • Sinulla on yritys, jonka henkilöstöstä kullakin on tietty tehtävänimike. Joitakin tehtävänimikkeitä ovat esim. projektipäällikkö, ohjelmoija ja toimitusjohtaja.
  • Yrityksen henkilöt voivat osallistua projekteihin.
  • Jokaisella projektilla on aina projektin toimeksiantaja, tekijä tai tekijät ja yksi tai useampi valvoja.
  • Projekteihin liittyy myös projektin nimi, aloituspäivämäärä ja päättymispäivämäärä.
  • Projektin tekijöitä halutaan edelleen luokitella tarkemmin sen mukaan mikä heidän tarkka tehtävänsä kussakin projektissa on (ohjelmointi, suunnittelu, testaus jne).
  • Tietokantaan halutaan tallentaa myös kaikkien yrityksen henkilöiden nimet, puhelinnumerot ja sähköpostiosoitteet.

Huom: ER-kaavioeditori ei (vielä) osaa piirtää n-äärisiä suhteita. Jos sellaisen tarvitset, voit sen sijaan käyttää useita heikkoja suhdetyyppejä.

# ex22-task3
# reflect-ex22-task3

Harjoitus 4

Piirrä alla olevan kuvauksen mukainen ER-kaavio. Kaaviossa tulee esiintyä keskeiset kohdetyypit, niiden attribuutit, avainattribuutit, sekä minimi- ja maksimikardinaalisuudet. Saatat joutua tekemään lisäoletuksia kaaviota piirtäessä. Voit mainita tehdyistä oletuksistasi tehtävän alla olevassa itsearviointilaatikossa.

Jomm's on verkkokauppa, jossa myydään erilaisia kodinkoneita, tietokoneita ja muita elektroniikkavälineitä. Sinun tehtäväsi on mallintaa ja toteuttaa tietokantaa Jomm'sia varten.

Jomm'sin valikoimassa on tuotteita, jotka asiakkaat tilaavat verkosta. Jokaisesta asiakkaasta kerätään perustiedot: asiakasnumero, puhelinnumero ja sähköposti. Kaupassa on kahdenlaisia asiakkaita: yksityis- ja yrityisasiakkaita. Yksityisasiakkailta tulee kerätä heidän perushenkilötietoja. Yritysasiakkaille lisäksi tulee edellä mainittujen tietojen lisäksi tallentaa y-tunnus. Jomm's on kansainvälinen kauppa, joten asiakkaita voi olla ympäri maailmaa. Asiakas voi olla sekä yksityis- että yritysasiakas (esimerkiksi jos asiakas haluaisi joskus tilata tuotteita kotiin tai työpaikalle).

Tietokannassa pidetään kirjaa tilauksista. Jokainen tilaus merkitään yksilöllisellä tilausnumerolla. Tilaustiedot sisältävät tilauspäivän, tilauksen tämänhetkisen tilan, toimitustavan, tilauksen hinnan sekä toimitukseen tarvittavat tiedot (mieti, millaisia tietoja siihen mahdollisesti tarvittaisiin). Samassa tilauksessa voi olla useita eri tuotteita eri määrissä.

Kaikilla tuotteilla on tuotenumero, hinta, malli, kuvaus, valmistaja, valmistusmaa. Tuote kuuluu aina johonkin yhteen kategoriaan (kodinkone, tietokone, elektroniikkaväline, oheistuote, yms). Tuotteelle voidaan antaa yksi tai useampi tunniste, esimerkiksi "tietokone, emolevy, AM4". Tuotteille pitää pystyä myös merkitsemään yhteensopivuus muiden tuotteiden kanssa, jotta käyttäjälle voitaisiin ehdottaa sopivia tuotteita.

# ex22-task4
# reflect-ex22-task4

Harjoitus 5

Piirrä alla olevan kuvauksen mukainen ER-kaavio. Kaaviossa tulee esiintyä keskeiset kohdetyypit, niiden attribuutit, avainattribuutit, sekä mini- ja maksimikardinaalisuudet. Saatat joutua tekemään lisäoletuksia kaaviota piirtäessä. Voit mainita tehdyistä oletuksistasi tehtävän alla olevassa itsearviointilaatikossa.

TIM on dokumenttipohjainen sisällönhallintajärjestelmä, jossa voi ylläpitää dokumentteja ja tiedostoja. TIMissa on oikeushallinta, jonka avulla käyttäjien pääsyn sisältöön voidaan rajata. Mallinnetaan tässä tehtävässä yksinkertaistettu versio TIMin tietokannasta.

TIMin tietokannassa pidetään kirjaa käyttäjistä. Käyttäjällä on yksilöllinen tunnus, koko nimi ja sähköpostiosoite. Käyttäjät voivat kuulua ryhmiin, joista tallennetaan ryhmän yksilöllinen tunnus ja ryhmän nimi. Käyttäjä kuuluu aina vähintään yhteen ryhmään -- hänen omaan "henkilökohtaiseen" ryhmään, jossa hän on ainoa jäsen.

TIMin tietokantaan tallennetaan erilaisia objekteja. Objektilla on sitä yksilöivä tunnistenumero. Objekteja voi jakaa dokumentteihin, kansioihin ja tiedostoihin. Objekti voi olla vain yhtä tyyppiä samaan aikaan, eli esimerkiksi objekti ei voi olla sekä dokumentti että kansio.

Dokumentista tallennetaan dokumentin nimi. Dokumenttiin kuuluu nolla tai useampi tekstilohko. Yksittäinen tekstilohko sisältää lohkoa yksilöivän tunnuksen sekä tekstisisällön.

Kansiosta tallennetaan kansion nimi. Kansio voi sisältää muita dokumentteja tai kansioita.

Tiedostosta tallennetaan tiedoston nimi ja polku tiedostoon.

Ryhmillä voi olla oikeus useaan objektiin. Ryhmillä voi olla myös samanaikaisesti useita erityyppisiä oikeuksia samaan objektiin. Oikeuteen liittyy aina oikeuden tyyppi sekä oikeuden aloitus- ja lopetuspäivämäärä. Lopetuspäivämäärä on valinnainen, eli oikeus voi olla ilman lopetusajankohtaa. Yksittäiselle käyttäjälle siis ei anneta suoraan oikeutta objekteihin, vaan oikeus aina tulee ryhmän kautta. Tällä tavoin usealla käyttäjällä voi olla sama oikeus samaan aikaan.

# ex22-task5
# reflect-ex22-task5

Harjoitus 6

Tutustu johonkin ryhmäviestintäpalveluun, jossa kaksi tai useampi käyttäjä voi keskustella keskenään samaan aikaan. Esimerkiksi tällaiset palvelut ovat WhatsApp, Telegram, Discord, Teams, IRC.

Pohdi, mitkä ovat sovelluksen toiminnan kannalta olennaisimmat ominaisuudet. Esimerkiksi, kaikissa yllä mainituissa palveluissa on jonkinlaisia viestikanavia, jossa viestit lähetetään vain kanavalla olevien kesken. Onko viestipalveluissa jonkinlainen moderaatio, eli voiko joku käyttäjä poistaa tai muokata toisten viestejä?

Piirrä sitten yksinkertainen ER-kaavio, joka mallintaa yksinkertaisen ryhmäviestipalvelun tietotarpeita. Pyri olemaan mahdollisimman tarkka mallintamisessa, eli ota huomioon mahdolliset moniarvoiset attribuutit, heikot suhteet ja mahdolliset abstraktiorakenteet.

# ex22-task6
# reflect-ex22-task6

Lopuksi

Kun olet valmis, voit jatkaa eteenpäin seuraavaan lukuun.

Voit antaa lyhyen itsearvion onnistumisestasi ja yleisesti palautteen harjoituksesta alla.

# palaute

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.