10.07.2015 Views

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

TTÜ: Relatsioonialgebra. Sissejuhatus SQL keelde (2012) © Erki EessaarTuletatud muutuja on relatsiooniline muutja, mis on defineeritud teisterelatsiooniliste muutujate kaudu. Baasmuutuja on relatsiooniline muutuja, misei ole defineeritud teiste relatsiooniliste muutujate kaudu.Tuletatud muutujaid võib liigitada: Virtuaalne relatsiooniline muutuja e. vaade (ingl. k. view). Hetktõmmis (ingl. k. snapshot).Siiani oleme me relatsiooniliste muutujate all pidanud silmas baasmuutujaid.Mille poolest erinevad tuletatud muutujad baasmuutujatest? Täpselt nagubaasmuutujal on ka tuletatud muutujal nimi. Kuid erinevalt baasmuutujastpeab andmebaasi arendaja tuletatud muutuja loomisel kirjeldamarelatsioonilise avaldise, mille alusel leitakse selle muutuja väärtus.Relatsiooniline avaldis on avaldis mille arvutamise tulemus on relatsioon.Relatsioonilises avaldises võidakse pöörduda relatsioonialgebra operaatoritepoole.Vaade on tuletatud muutuja, mille väärtuseks olev relatsioon moodustatakseselle poole pöördumise hetkel selle spetsifikatsioonis kirjeldatud relatsiooniliseavaldise arvutamise tulemusena. Teisisõnu, iga kord kui mõni andmebaasikasutaja soovib teada mingi vaate väärtust peab andmebaasisüsteem leidmaselle vaate kirjelduses määratud relatsioonilise avaldise tulemuse. Loomulikultvõtab avaldise tulemuse leidmine mingil määral aega.Kui tuletatud muutuja väärtus on korra leitud, siis kas seda väärtust ei saakskasutada erinevate kasutajate päringutele vastamiseks? Selgub, et saab küllning selleks tuleb andmebaasis luua hetktõmmis.Hetktõmmis on tuletatud muutuja, mille väärtuseks olev relatsioon leitakserelatsioonilise avaldise arvutamise tulemusena juba mingil ajahetkel enneseda kui kasutaja küsib selle muutuja väärtust. Juhul, kui muutuvad nendemuutujate väärtused mille põhjal hetktõmmis on loodud, kuid ei muutuvastava hetktõmmise väärtus, siis esitab hetktõmmise väärtus vananenudandmeid. See tähendab, et hetktõmmise väärtust tuleb kas kasutaja soovikorral või perioodiliselt värskendada (st. leida muutuja kirjelduses esitatudrelatsioonilise avaldise tulemus ning anda tulemuseks saadud väärtusmuutujale). Sageli kasutatakse termini hetktõmmis asemel terminitmaterialiseeritud vaade.Kordame, et relatsiooniline mudel ei ütle midagi selle kohta kuidas andmeidfüüsilisel tasemel organiseerida. Siiski võib tõdeda, et olemasolevadandmebaasisüsteemid salvestavad tüüpiliselt baasmuutujate ja hetktõmmisteväärtused füüsilisel tasemel failidesse, samas kui vaadete väärtusedarvutatakse relatsiooniliste avaldiste põhjal ning neid väärtusi füüsiliseltasemel failidesse ei salvestata.Esitame järgnevalt vaate näite. Vaate loomise lause on kirjutatud Tutorial Dkeeles. Vaate nimeks on Korge_palk ja väärtuseks on relatsioon, mis esitabüle 1500 euro palka saavate töötajate koodi, perenime ja palga.VAR Korge_palk VIEW (Tootaja WHERE palk>1500) {tootaja_kood, perenimi,palk}29

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!