TIETOKANTOJEN PERUSTEET MARKKU SUNI
Tarkastellaan ENTITY-RELATIONSHIP-mallia tietomallin laadintaa hiukan lisää suunnittelusta
Id enimi snimi muuta 1 Aki Joki xxx 2 Esa Elo yyy Id katuos postios maa 1 Alikatu 20100 FI 2 Ylikatu 20880 FI Id tuotenro pvm kpl 1 11 010101 10 1 13 010101 12 2 11 010201 15 Tuotenro hinta nimike 11 100 metla 12 10 pesti 13 20 sevakko Muuan tietokanta - mahdollinen, mutta varoittava esimerkki
Entity-Relationship mallinnus Entity tietokohde, entiteetti Relationship suhde Tietokantojen suunnittelun pulmia 1. eri osapuolten erilaiset näkemykset asiaan Ratkaisu: yhteinen tekniikasta ja monimielisyyksistä vapaa kuvaustapa Yksi tällainen on vuonna 1976 esitelty ER-mallinnus
ER-mallinnus on ylhäältä-alas (top down) suunnittelutapa kuvaamaan tärkeitä tietokohteita ja niiden välisiä suhteita Kun on olemassa ajatus kohteista ja suhteista, niin miten se esitetään paperilla, kuvaruudulla, tms.??? On olemassa Universal Modeling Language, UML Ja montakin tapaa kuvata näitä asioita.
Entity tietokohde Joukko kohteita, joilla on samoja ominaisuuksia ja jotka käyttäjä voi tunnistaa riippumattomaksi kokonaisuudeksi. Jokainen yksilöllisesti tunnistettava joukkoon kuuluva kohde on ilmentymä (entity occurrence) Tietokohde on riippumaton ja voi esittää fyysisiä tai abstrakteja asioita. Jokaisella tietokohteella on nimi ja joukko ominaisuuksia, attribuutteja
Videovuokraamon tietokohteita esimerkki Fyysinen kohde Jäsen Video Toimisto käsitteellinen kohde Rooli Vuokraus Rekisteröinti Graafinen kuvaustapa Tietokohde: suorakaide ja kohteen nimi
Suhde - Relationship Suhde on joukko liittymiä siihen kuuluvien tietokohteiden välillä Kunkin liittymän tulisi olla yksikäsitteisesti tunnistettavissa suhteessa. Silloin sitä sanotaan suhteen ilmentymäksi (relationship occurrence) Kullakin suhteella on toimintaa kuvaava nimi. Esim. Näyttelijä liittyy rooliin suhteella esittää
Suhteiden esittäminen kaavioissa Kutakin suhdetta kuvataan tietokohteita yhdistävällä viivalla, joka varustetaan suhteen nimellä. Yleensä suhteen nimenä on verbi (esittää, myy, Plays, Sells ) fraasi (OnOsa, IsPartOf, WorksAt,... ) Yleensä suhde on nimetty vain yhteen suuntaan. Siksi viivaan usein liittyy nuoli Video Sisältää Rooli Esittää Näyttelijä
Suhteen aste Suhteeseen voi ottaa osaa useita tietokohteita. Niiden lukumäärää kutsutaan asteeksi (Degree of Relationship) Suhde, jonka aste on kaksi, on binaarinen (binary) Vain kaksi osallistujaa Näyttelijän ja roolin välillä Videon ja roolin välillä
Suhteen aste Suhteen aste voi olla kolme: Henkilökunta rekisteröi jäsenen toimistossa: Toimisto Rekisteröi Henkilöstö Jäsen
Suhteen aste Suhteen aste voi olla neljä, jopa korkeampi binaarinen binary ternaarinen ternary quaternary n-asteinen (n-ary) Tavallisin suhde on binaarinen
Suhteen aste rekursiivinen suhde Malliksi suhde Valvoo (Supervises) Henkilöstön jäsen valvoja (esimies) valvoo henkilöstön jäsentä (valvottavaa) Rekursiiviset suhteet ovat unaarisia (unary) Kuvauksessa käytämme apuna roolinimiä Supervisee Supervises Staff Supervisor
Attribuutit ominaisuudet Tietokohteiden ominaisuuksia sanotaan attribuuteiksi Attribuutit kertovat tietokohteista. Tietokohdetta Video kuvaaavat attribuutit catalogno, dailyrental, price Nämä attribuutit sisältävät kutakin videon ilmentymää kuvaavat arvot Ne myös ovat oleellisia tietokantaan vietäviä tietoja Myös suhteilla voi olla attribuutteja
Attribuutit ominaisuudet Attribuutit voivat olla yksittäisiä (single) yhdistettyjä (composite) yksiarvoisia (single-valued) moniarvoisia (multi-valued) johdettuja (derived)
Attribuutit ominaisuudet Yksittäiset attribuutit yksittäisiä attribuutteja ei voi jakaa osiin puhutaan myös atomiattribuuteista (atomic attributes) esim. videon hinta ja luokka Yhdistetyt attribuutit voi jakaa osiin esim. jäsen-attribuutin arvo Markku Suni: etunimi (Markku) ja sukunimi (Suni) Esitetäänkö attribuutti yksittäisenä vai yhdistelmänä riippuu sen käytöstä
Attribuutit ominaisuudet Yksiarvoiset attribuutit useimmat ovat tällaisia kullakin tietokohteella video on yksi catalogno Moniarvoiset attribuutit attribuutilla voi olla useita arvoja tietylle tietokohteelle esim. videon category-attribuutti: Children Comedy Moniarvoisella attribuutilla voi olla 1 n arvoa
Attribuutit ominaisuudet Johdetut attribuutit attribuutti voidaan johtaa jostain toisesta henkilön ikä voidaan laskea syntymäpäivän perusteella ikä ja syntymäpäivä ovat suhteessa toisiinsa Yleensä ikää ei talleta, koska se vaihtuu jatkuvasti syntymäpäivä ei vaihdu ja siitä saadaan ikä Tässä kuvatut attribuuttien ominaisuudet eivät ole toisensa poissulkevia. Voi olla yksittäinen yksiarvoinen, yksittäinen moniarvoinen, jne.
Avaimista Aikaisemmin puhuttiin tauluihin liittyvistä avaimista Samat asiat sopivat myös tietokohteisiin. Superavain (Superkey) attribuutti tai attribuuttijoukko, joka yksikäsitteisesti tunnistaa kunkin tietokohteen ilmentymän Ehdokasavain (Candidate key) superavain, jossa on minimaalinen määrä yksikäsitteiseen tunnistukseen tarvittavia attribuutteja
Avaimista Aikaisemmin puhuttiin tauluihin liittyvistä avaimista Samat asiat sopivat myös tietokohteisiin. Pääavain (primary key) ehdokasavain, joka valitaan tunnistamaan jokainen tietokohteen ilmentymä Vaihtoehtoiset avaimet (alternate keys) ehdokasavaimia, joita ei ole valittu pääavaimeksi Vierasavain (foreign key) Toisen tietokohteen avain
Attribuuttien graafinen esitys Jos tietokohde halutaan esittää attribuutteineen, jaamme sitä esittävän suorakaiteen kahtia yläpuolella on tietokohteen nimi alapuolella ovat attribuuttien nimet, pääavain ensin henkilö SOTU syntymäpäivä palkka tehtävä
Merkinnöistä Attribuuttilistassa ensin tietokohteen pääavain (jos tiedossa) UML-kielessä attribuutin nimen ensimmäinen kirjain on pieni jos nimessä on useita sanoja, seuraavat alkavat isolla pääavain merkitään (PK) jos pääavaimessa muita attribuutteja, merkitään (PPK) (Partial Primary Key) vaihtoehtoiset avaimet merkitään (AK) yhdistetyt attribuutit: nimi ja alla sisennettyinä osat moniarvoiset attribuutit: nimen perään tietoa arvoalueesta johdetuille attribuuteilla nimen eteen /
Vahvat ja heikot tietokohteet Strong and Weak Entities Tietokohteet ovat vahvoja tai heikkoja Jos tietokohteella on oma yksikäsitteinen pääavain, se on vahva (strong) kuvassa video ja actor Jos tietokohde tarvitsee jonkun toisen tietokohteen avaintietoa, se on heikko (weak) kuvassa role yhtä roolia ei voi erottaa toisesta ilman kohteita video ja actor
Vahvat ja heikot tietokohteet Strong and Weak Entities Tietokohteet ovat vahvoja tai heikkoja Vahvoista kohteista käytetään nimitystä vanhempi, omistaja, ohjaava parent, owner, dominant Heikoista kohteista nimitystä lapsi, riippuva, alainen child, dependent, subordinate
Monikertaisuudet suhteissa - Multiplicity constraints on relationships Suhteen osapuolina oleviin tietokohteisiin voi olla rajoituksia Esim.: vuokraamon joka toimistolla oltava henkilökuntaa joka toimistoon on kuuluttava jäseniä
Monikertaisuudet suhteissa - Multiplicity constraints on relationships Tavallisin suhteen aste on binaarinen Binaarinen suhde on monikertaisuudeltaan yksi-yhteen, yhdestä yhteen 1:1 yksi-moneen, yhdestä moneen 1:* moni moneen, monesta moneen *:* Esim.: henkilöstön jäsen johtaa toimistoa toimistolla on henkilöstön jäseniä näyttelijät esiintyvät videoissa
Monikertaisuudet suhteissa - Multiplicity constraints on relationships Tietomalli ei kata kaikkea: Kaikkia sääntöjä ei voi helposti ilmaista tietomallissa Esim. vaatimus, että henkilöstö saa pidemmän loman viiden palvelusvuoden jälkeen
Yksi yhteen-suhde 1 : 1
Monikertaisuuden selvittäminen Vaatii yleensä tarkkaa vaatimusten, tietojen, sääntöjen ja datan läpikäyntiä Jos dataa läpikäydään, sen olisi syytä olla oikeaa ja kaikki Kuviosta: S1500 johtaa yhtä toimistoa S0010 johtaa yhtä toimistoa S0003 ei johda yhtäkään Kutakin toimistoa johtaa yksi henkilöstön ilmentymä Henkilöstön jäsen johtaa nollaa tai yhtä toimistoa
Monikertaisuuden selvittäminen Kuviossa: Kutakin toimistoa johtaa yksi henkilöstön ilmentymä laitamme merkinnän 1.. 1 nuolen toiseen päähän Henkilöstön jäsen johtaa nollaa tai yhtä toimistoa laitamme merkinnän 0.. 1 nuolen toiseen päähän Nuolen päähän : merkintää vastaavaan päähän
OSIO 4: TIETOMALLIN LAADINTA Yksi moneen suhde 1 : *
Malliksi tarkastellaan suhdetta Has toimistojen ja henkilöstön välillä Has eli omata, omistaa, olla Jokainen henkilöstön ilmentymä työskentelee yhdessä toimistossa Jokaisella toimistolla on yksi tai useampi henkilöstön ilmentymä Yhdestä moneen-suhteessa valitsemme suhteelle nimen, joka on merkitsevä suuntaan 1 : *
OSIO 4: TIETOMALLIN LAADINTA Monesta moneen suhteet * : *
Monesta moneen suhteet * : * OSIO 4: TIETOMALLIN LAADINTA
Suhteiden attribuutit OSIO 4: TIETOMALLIN LAADINTA
Entity-Relationship mallinnuksen ongelmia Connection traps yhteysansat Nämä johtuvat yleensä suhteiden väärintulkinnasta. Ongelmien ratkaisemiseksi ja välttämiseksi on tärkeää 1. varmistaa, että suhteen merkitys 2. ja vastaavan liiketoiminnallisen säännön merkitys 3. määritellään ja ymmärretään oikein 4. että tietomalli vastaisi mahdollisimman hyvin tosimaailmaa
Fan Traps Kahdella tietokohteella on 1:* suhde Molemmat tulevat kolmannesta tietokohteesta päin Mutta näillä kahdella tulisi olla suora suhde keskenään
Fan Traps - viuhkailmiö Vuokraamon kullakin toimistolla on henkilöitä monta. Toimistolla on myös työsuhdeautoja monta. Ongelma esiintyy haluttaessa tietää, kuka henkilöistä käyttää mitäkin autoa. Siihen ei tämä malli anna mahdollisuutta vastata.
Fan Traps - ratkaisu Lisätään uusi suhde: Uses (käyttää) ja liitetään sitä kautta henkilöt ja autot.
Fan Traps - ratkaisu Lisätään uusi suhde: Uses (käyttää) ja liitetään sitä kautta henkilöt ja autot.
Chasm Traps - kuiluilmiö Malli antaa ymmärtää, että tietokohteiden välillä on suhde, mutta selvää tietä ei esiinny joidenkin ilmentymien välillä Tilanne: mallissa on suhteet toimiston ja auton välillä auton ja henkilön välillä Kysymys: kuka työskentelee missäkin toimistossa?
Chasm Traps - ratkaisu
Chasm Traps - ratkaisu
Systeemin määrittelyjä: Tietokannan kokoarvio: Videonimikkeitä on noin 20.000 ja kasetteja n. 400.000 yhteensä 100:ssa toimistossa. Toimistossa on keskimäärin 4000 ja korkeintaan 10.000 kasettia henkilökuntaa on n. 2000 henkeä, keskimäärin 15/toimisto Yhteensä n. 100.000 jäsentä, keskimäärin 1000/tsto Yhteensä n. 400.000 vuokraa 1000 ohjaajaa ja 30.000 näyttelijää 60.000 tähtiosaa 50 videotoimittajaa ja 1000 tilausta ulkona
Systeemin määrittelyjä: Tietokannan kasvuarvio: Noin 100 uutta videota ja 20 kopiota kuukaudessa Kun videota ei enää voi vuokrata, se poistetaan, näitä on 100/kk 20 uutta henkilöä tulee kuukaudessa; saman verran poistuu. Poistuneiden tiedot tuhotaan vuoden kuluttua 1000 uutta jäsentä kuukaudessa; jos hän ei vuokraa videota kahteen vuoteen, hänet poistetaan n. 100/kk 5000 videovuokrausta 100:ssa toimistossa päivässä Vuokrasopimuksen tiedot poistetaan kahden vuoden kuluttua 50 uutta videotilausta viikossa; säilytetään kaksi vuotta
Systeemin määrittelyjä: Hakutilastoa: toimiston tietoja n. 10 kertaa päivässä henkilön tietoja 20/pv videon tietoja n. 5000 kertaa päivässä; viikonloppuisin 10.000 kertaa päivässä kasetin tietoja n. 10.000/pv; viikonloppuisin 20.000/pv tietyn jäsenen tietoja n. 100/pv vuokrasopimuksen tietoja n. 10.000/pv; viikonloppuisin 20.000/pv hakujen huippukuorma klo 18 21 päivittäin
Systeemin määrittelyjä: Verkoston vaatimuksia: Kaikki toimistot pitää saada verkkoon turvallisesti Päämaja Seattlessa Ainakin kolme henkeä toimii samanaikaisesti kussakin toimistossa verkossa; ohjelmalisenssien tulee ottaa tämä huomioon
Systeemin määrittelyjä: Suorituskyky: Aukioloaikoina huippuaikojen ulkopuolella alle 1 sekunnin vasteaika yhden tietueen hauille Huippuaikoina alle 5 sekunnin vasteaika kaikille hauille Aukioloaikoina alla 5 sekunnin vasteaika monen tietueen hauille; huippuaikoina alle 10 sekunnin Aukioloaikoina alle 1 sekunnin vasteaika talletuksille ja päivityksille Huippuaikoina alle 5 sekunnin vasteaika kaikille kyselyille
Systeemin määrittelyjä: Turvallisuus: Tietokanta on salasanoilla suojattu Jokaisella henkilökunnan jäsenellä työtehtävän edellyttämät oikeudet tietoihin Henkilöstö saa nähdä vain tehtävänsä edellyttämät tiedot Varmistukset: Tietokanta varmistetaan joka yö keskiyöllä
Malliksi tietokanta videovuokraamon taulut Branch (branchno, street, city, state, zipcode, mgrstaffno) Staff (staffno, name, position, salary, branchno) Video (catalogno, title, category, dailyrental, price, directorno) Director (directorno, directorname) Actor (actorno, actorname) Role (actorno, catalogno, character) Member (memberno, fname, lname, address) Registration (branchno, dateout, datereturn, memberno, videono) RentalAgreement (rentalno, dateout, datereturn, memberno, videono) VideoForRent (videono, available, catalogno, branchno)
Life goes on day after day Hearts torn in every way So ferry cross the Aura will allways take me there And here I ll stay. People around every corner They seem to smile and say: We don t carewhatyournameis, boy We ll never turn you away So I ll continue to say Here I allways will stay The Pacemakers