11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Taivas…. Miten pääsen sinne?.
Osaamisen ja sivistyksen parhaaksi Tilatiedot ja niiden muutokset
Ohjelmiston tekninen suunnittelu
Yritysjohdon koulutuskeskus
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Relaatiomalli •Ted Codd 1970 •Matemaattinen perusta •Helppo toteuttaa •Helppo omaksua •Käytetyin tietomalli •Muodostaa perustan kurssin myöhemmille asioille.
Tietokanta.
Aggregaattifunktiot (1)
NALLE PUH.
Ohjelma on kokoelma toimintaohjeita annetun tehtävän ______________________. Ohjelmassa on peräkkäisten toimintojen lisäksi yleensä valintaa ja _____________.
Korkeakoulujen ja opetusministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto RAKETTI-XDW Käsitemäärittely,
Työrauha ja haastavat tilanteet
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
RSA – Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL.
Normalisointi Normalisointi liittyy ”bottom-up” –menetelmään.
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
2. Vuokaaviot.
m0 M7 Maksimitermi Minimitermi Boole A = A A · 0 = 0 SOP De Morgan POS
© Jukka Harju, Jukka Juslin
Haaga-Helia Ammattikorkeakoulu
Relaatioalgebra (1) Kokoelma relaatioiden käsittelyyn tarkoitettuja operaatioita Operaatiot muuntavat relaatioita uusiksi relaatioiksi Muodostaa perustan.
TUTTI - TietotUrvallisuuden iTsearvioinTivälIne v 1.0 ©2012 Kimmo Rousku sivu 1(8) TietotUrvallisuuden iTsearvioinTivälIne Pisteytysapuvälineet.

GNU-ohjelmointityökalut Jussi Raunio TI09OHJ
Monikon lisääminen (1) Luetellaan kaikki lisättävän rivin arvot INSERT INTO Asiakas VALUES (4, ’Assi’, ’Asiakas’); Luetellaan vain osa arvoista; muut arvot.
Jatkuvan parantamisen Jp-taulu
10. Funktionaaliset riippuvuudet ja relaatiotietokannan normalisointi
Onnistunut IT-projekti - Haaveesta totta? Tiken näkemys
Miksi tämä on vaikeaa? Ilman minkäänlaisia rajoitteita ongelmat ei ole vaikeita ratkaista. Siihen löytyy jopa valmis ”kaava”. Valitettavasti jokaisessa.
Seurantalojen korjausavustuksen sähköinen haku - pikaohje Sähköisessä hakupalvelussa on kullakin sivulla ohjeita hakemuksen tekemiseen. Joissakin kohdissa.
Muunnos luokkakaaviosta relaatiokaavioon
Viestintäsuunnitelma
Toimisto-ohjelmat TVT osana Sädettä. Tehdään kyselylomake joko tekstinkäsittely- tai taulukkolaskentaohjelmalla. Pilvipalveluita käytettäessä saadaan.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
5. Relaatiomalli, relaatioiden rajoitukset ja relaatioalgebra
Tietokannan normalisointi
6. Relaatioalgebra ja relaatiokalkyyli
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
5. Lineaarinen optimointi
7. ER- ja EER-mallin kuvaaminen relaatiotietokannaksi
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Yleistä Kotisivuja päivitetty Demoryhmät Luentomonisteen ensimmäiset osat Luentokalvot jaossa Demot alkavat maanantaina Selvitä oma demoryhmäsi Tutustu.
Moraalinen relativismi Eero Salmenkivi Opettajankoulutuslaitos.
Visual Basic -ohjelmointi
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Karteesinen tulo Huomaa attribuuttien nimien tarkentaminen taulujen nimillä.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Funktiokone π, ½, -2, 4  17, -2, 1, 3  f(π), f(½), f(-2), f(4) f Siis: f(π)=7, f(½)=-2, f(-2)=1, f(4)=3 (riippuvuussääntö on tuntematon)
Syksyn 2015 kirjoituksissa huomioitavaa Koepäivät www
XSL Teppo Räisänen
1 Sensor Tasking and Control Jari Hassinen Riikka Asikainen
Listat eli luettelot listaelementit ovat lohkoelementtejä:  lista ja listan alkiot alkavat uudelta riviltä  listan jälkeen tuleva elementti alkaa uudelta.
Oppimisryhmien kuulumisia. Oppimisryhmät Ryhmä 5 Tehotytöt Team Trinity Rämmät JASS Team 75% Integrointi-pantterit.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2011 / Jyväskylän yliopisto.
Hakemistot Nopeuttavat hakuoperaatioita Hidastavat päivitysoperaatioita Pääavaimelle luodaan aina indeksi; päävain toimii usein hakukriteerinä Luodaan.
Sovellettu matematiikka 3 Jarkko Hurme1 3.3Kohti todellista tilannetta.
”Mitä tahansa voi saavuttaa kunhan vain yrittää!” Pikkuyrittäjien hissipuheet.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
YFIA200 Kvantitatiiviset menetelmät, luento
Tutkielman teko-ohjeet
YFIA202 Kvantitatiiviset menetelmät, luento
Aktivoiva tehtävä 1 Tehtävä: Selvitä mitä oheisen, vuokaaviona esitetyn algoritmin mukaan tapahtuu, kun a) härveli on kunnossa eikä hajoa käytettäessä,
YFIA200 Kvantitatiiviset menetelmät, luento
CLT132 Tehtävät (viikko 4).
4. Luokan testaus ja käyttö olion kautta
HENKILÖTIETOJEN KÄSITTELYSTÄ
Esityksen transkriptio:

11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen testaamiseksi dekompositiossa sekä lyhyesti myös neljäs ja viides normaalimuoto Dekomposition häviöttömän ( ei-additiivisen ) liitoksen ominaisuus Suoritettaessa dekompositio D taululle R ositteisiin { R 1, R 2,..., R m } pitää varmistua, että taulun R tietosisältö pystytään tarkalleen palauttamaan eli rekonstruoimaan soveltamalla luonnollisia liitoksia dekompositiossa muodostuneiden uusien, kooltaan pienempien taulujen välille. Formaalisesti määriteltynä dekompositio D säilyttää taululle R häviöttömän liitoksen ominaisuuden, mikäli mille tahansa relaation R lailliselle tilalle olla voimassa: * ( π R 1 ( r ),..., π R m ( r ) ) = r Toteutuessaan häviöttömän liitoksen ominaisuus takaa, ettei dekompositio tuota valetuplia relaatioon R, kun sitä kootaan D:n osatauluista luonnollisilla liitoksilla.

Häviöttömän liitoksen toteutumista voidaan testata algoritmisesti. Yleiskäyttöisin testausalgoritmeista on seuraavassa esiteltävä algoritmi 11.1, joka ei ota kantaa siihen, moneenko osaan alkuperäinen taulu R hajoaa dekomposition D yhteydessä. Algoritmi 11.1: Häviöttömän liitoksen toteutumisen testaus Syötetiedot: Normalisoinnin kohteena oleva relaatio R, sille suoritettu dekompositio D = { R 1, R 2,..., R m } sekä funktionaalisen riippuvuuksien joukko F relaatiossa R 1. Perustetaan matriisi S, jossa on yhtä monta riviä kuin D:ssä on tauluja ja yhtä monta saraketta kuin relaatiossa R on attribuutteja. Sarakkeet nimetään R:n attribuuttien mukaisesti. 2. Alustetaan jokainen matriisin positio S[i, j] alkuarvolla b ij. 3. Toista jokaista matriisin riviä i kohti Toista jokaista matriisin saraketta j kohti Jos dekomposition D relaatiossa R i esiintyy attribuutti j, vaihdetaan paikan S[i, j] sisällöksi a j.

4. Toista niin pitkään, kunnes silmukan suorituksen aikana ei enää tapahdu muutoksia matriisissa S: Toista F:n jokaista funktionaalista riippuvuutta X --> Y kohti Toista jokaista S:n riviä kohti, joilla on sarakkeissa samat symbolit X:n attribuuteilla Vaihda Y:hyn kuuluvien attribuuttien symbolit vastaamaan toisiaan näillä riveillä. Jos jollain kyseisistä riveistä esiintyy symbolia a, kopioidaan se samalla kaikkien muiden tarkasteltavien rivien samaan sarakkeeseen. Ellei a:ta esiinny millään rivillä Y:n attribuuteilla, yhdenmukaistetaan sarakkeen arvot jonkin rivin b ij -arvon mukaisesti kaikilla tutkittavilla riveillä. 5. Jos jokin matriisin riveistä sisältää ainoastaan a-symboleita, on normalisoinnin tulokseksi saatu dekompositio D toteuttanut häviöttömän liitoksen kriteerin, muulloin ei. Tarkastellaan kirjan esimerkkiä Todetaan, että esimerkissä 10.3 esitetyn EMP_PROJ-relaation dekompositio esimerkin 10.5 mukaisiin ositteisiin EMP_PROJ1 ja EMP_LOCS ei tuota häviötöntä liitosta, kun taas dekompositio tauluiksi EMP, PROJECT ja WORKS_ON tuottaa sellaisen.

Neljäs normaalimuoto Neljäs normaalimuoto liittyy yksistään pääavaimen osasta riippuvien moniarvoisten riippuvuuksien purkamiseen. Tällainen tilanne saattaa syntyä, jos samaan relaatiotauluun yritetään sijoittaa kaksi lukumääräsuhteeltaan 1:N olevaa liittymää. Tarkastellaan kirjan esimerkkiä 11.5, jossa työntekijän tietoihin on yhdistetty tiedot projekteista, joissa hän työskentelee sekä tiedot hänen perheenjäsenistään. Relaatio on kylläkin 3NF:n mukainen, mutta sen toteutus on kovin kömpelö, sillä pakottaa lisäämään jokaista työntekijää kohti kerralla useita tuplia, jos työntekijä alkaa työskennellä uudessa projektissa, tai hänen perheenjäsentensä lukumäärä kasvaa. Tilanne purkautuu normalisoimalla relaatio 4NF:n mukaiseksi erottelemalla työntekijän projektit ja perheenjäsenet eri tauluihinsa. Relaatio on 4NF:n mukainen tarkalleen silloin, kun kaikki siinä esiintyvät sekä funktionaaliset ja moniarvoiset riippuvuudet määräytyvät yksinomaan superavaimesta X -->> Y.

11.4 Liitosriippuvuudet ja viides normaalimuoto Viidettä normaalimuotoa tarkastellaan lähinnä astetta 3 ja sitä korkeampaa astetta olevien relaatioiden yhteydessä. Käytännössä normalisointia 5NF:ään sovelletaan erittäin harvoin. Tarkastellaan esimerkkinä tavarantoimitusrelaatiota toimittajan, osan ja projektin välillä. Oletetaan, että jos toimittaja t pystyy toimittamaan osaa o, osaa o tarvitaan projektissa p, ja toimittaja t toimittaa jotain osaa projektille p, niin silloin projektille p ostetaan o ( ainakin ) toimittajalta t. Tarkastellaan lopuksi kirjan esimerkkejä 11.4c ja 11.4d.