CS-A1150 Tietokannat CS-A1150 Tietokannat / 43
|
|
- Anja Kapulainen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 CS-A1150 Tietokannat CS-A1150 Tietokannat / 43
2 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan arvioida, mitä hakemistoja tietokantaan kannattaa määritellä. Tiedät, miten ohjelmoija voi suojella tietokantaa erilaisilta häiriötilanteilta transaktioiden avulla. Osaat kertoa, mitä ominaisuuksia tietokannan hallintajärjestelmä takaa transaktioiden toteuttavan. Tiedät, millä eri tavoin transaktioilta vaadittavista ominaisuuksista voidaan joskus tinkiä tehokkuuden lisäämiseksi. Voit luennon aikana lähettää kysymyksiä ja kommentteja myös sivulla CS-A1150 Tietokannat / 43
3 Esimerkkitietokanta Customers(custNo, name, born, bonus, address, ) Products(number, prodname, description, price, manufid) Manufacturers(ID, manufname, phone) Orders(orderNo, deliver, status, custno) BelongsTo(orderNo, productno, count) CS-A1150 Tietokannat / 43
4 Miksi tarvitaan hakemistoja? Tietokannan taulussa rivit ovat usein satunnaisessa järjestyksessä Teemu Teekkari Riina Raksalainen Antti Virta Nina Teekkari Ville Virtanen Teemu Teekkari Sanna Konelainen Ville Virtanen Teemu Teekkari Vaikka rivit järjestettäisiinkin yhden attribuutin mukaan, ei siitä ole mitään apua, jos tehdään kysely jonkin muun attribuutin arvon perusteella. CS-A1150 Tietokannat / 43
5 Miksi tarvitaan hakemistoja? (jatkuu) Ilman hakemistoja tavalliseen SQL-kyselyyn vastaaminen vaatii usein koko taulun läpikäymisen. Esimerkiksi SELECT FROM Customers WHERE name = Ville Virtanen ; käy läpi kaikki Customers-relaation monikot. CS-A1150 Tietokannat / 43
6 Miksi tarvitaan hakemistoja? (jatkuu) Liitoksia tarvitsevassa kyselyssä tilanne on vieläkin hankalampi, esimerkiksi SELECT orderno, C.custNo, name, address FROM Customers AS C, Orders AS O WHERE C.custNo = O.custNo; käydään Customers-relaatio kokonaan läpi jokaista Orders-relaation monikkoa kohti. CS-A1150 Tietokannat / 43
7 Hakemistot Hakemiston (index) avulla voidaan löytää nopeasti monikot, joiden määrätyllä attribuutilla tai attribuuttien yhdistelmällä on haluttu arvo. Hakemisto attr. name mukaan Taulu Customers Riina Raksalainen Teemu Teekkari Sanna Konelainen Nina Teekkari Antti Virta Ville Virtanen Teemu Teekkari Riina Raksalainen Antti Virta Nina Teekkari Ville Virtanen Teemu Teekkari Sanna Konelainen Ville Virtanen Teemu Teekkari CS-A1150 Tietokannat / 43
8 Hakemistot (jatkuu) Hakemistoissa tallennetun arvon yhteyteen on lisätty tieto siitä, mistä kohdasta/kohdista tietokannan taulusta arvo/arvot löytyy/löytyvät. Hakemiston rakenne on sellainen, että haettu arvo löytyy sieltä hyvin nopeasti. Useimmiten tietokannan hallintajärjestelmissä hakemistot on toteutettu B-puina (engl. B-tree). Toinen vaihtoehto hakemiston toteuttamiselle on hajautusrakenne (engl. hashing). Hajautusrakenne sopii täsmällisen arvon hakemiseen, B-puut myös arvovälikyselyihin. CS-A1150 Tietokannat / 43
9 Esimerkki B-puusta Oikeasti kullakin solmulla on kymmeniä tai satoja lapsisolmuja. Lehtisolmuissa jokaiseen arvoon liittyy tieto siitä, missä tämä arvo esiintyy tietokannan taulussa määrätyn attribuutin arvona. CS-A1150 Tietokannat / 43
10 Hakemiston luominen Hakemisto luodaan SQL:ssä käskyllä CREATE INDEX, esimerkiksi CREATE INDEX CustomerIndex ON Customers(name); Hakemiston voi luoda useamman attribuutin arvon perusteella seuraavasti: CREATE INDEX ProductIndex ON Products(description, manufid); CS-A1150 Tietokannat / 43
11 Koska hakemiston luominen kannattaa? Sopiva hakemisto voi nopeuttaa selvästi kyselyitä. Kannattaako siis tehdä hakemistot taulujen kaikkien attribuuttien suhteen? Vastaa sivulla CS-A1150 Tietokannat / 43
12 Ratkaiseva tekijä hakemiston hyötyjä ja kustannuksia arvioitaessa Tarvittavien levyhakujen määrä kyselyitä ja päivityksiä tehdessä. Vaikka haluttaisiin tutkia vain yksi relaation monikko, on haettava keskusmuistiin koko se levysivu, jolla monikko sijaitsee. Levyhakuun menee paljon aikaa verrattuna kaikkeen siihen, mitä keskusmuistissa yleensä tehdään. Kyselyt nopeutuvat, jos hakemiston avulla voidaan vähentää selvästi tarvittavien levyhakujen määrää. CS-A1150 Tietokannat / 43
13 Milloin hakemiston luominen voi kannattaa, jatkoa CS-A1150 Tietokannat / 43
14 Milloin hakemiston luominen voi kannattaa, jatkoa Jos attribuutti on relaation avain. Jos jollain attribuutilla sama arvo esiintyy vain harvoilla monikoilla. Jos relaation monikot on klusteroitu jonkin attribuutin arvon mukaan. CS-A1150 Tietokannat / 43
15 Välitehtävä 1 Oletetaan, että relaatio Students(ID, name, program, year) on tallennettu niin, että yhdelle levysivulle mahtuu keskimäärin 40 monikkoa. Tietokannasta haetaan usein määrättynä vuonna aloittaneita opiskelijoita, esimerkiksi SELECT FROM Students WHERE year = 2017; Kannattaako (ja miksi) tehdä hakemisto year-attribuutin mukaan, jos 1. eri vuosina aloittaneet opiskelijat ovat jakautuneet satunnaisesti relaation monikoiden kesken? 2. relaation monikot on klusteroitu year-attribuutin arvon mukaan? Vastaa sivulla CS-A1150 Tietokannat / 43
16 Mitä hakemistoja kannattaa luoda? Arvioidaan kyselyjen ja päivitysten suhde tietokannan operaatioissa ja millaisia kyselyitä tietokantaan yleensä tehdään. Lasketaan erikseen, kuinka paljon levyhakuja tarvitaan keskimäärin eri operaatioissa eri hakemistoyhdistelmillä. Otettava mukaan myös mahdollisen hakemiston käytöstä aiheutuvat levyhaut: Kyselyssä vähintään yksi / käytetty hakemisto. Päivityksissä vähintään kaksi / hakemisto. Lasketaan operaatioiden esiintymistodennäköisyyksillä painotettu keskiarvo tarvittavista levyhauista kullekin hakemistoyhdistelmälle. CS-A1150 Tietokannat / 43
17 Esimerkki hakemistojen valinnasta Tarkastellaan relaatiota BelongsTo(orderNo, productno, count) ja lasketaan, mitä hakemistoja relaatiolle kannattaa luoda, jos Tehtävät kyselyt: 1. Haetaan monikoita, joissa on määrätty tilausnumero, osuus kaikista relaatioon kohdistuvista tietokantaoperaatioista on p Haetaan monikoita, joissa on määrätty tuote, osuus p 2. Relaatioon tehdään myös lisäyksiä, osuus 1 p1 p 2. Relaation monikot vievät yhteensä 100 levysivua. Yhdessä tilauksessa on keskimäärin 3 tuotetta ja kukin tuote kuuluu keskimäärin 30 tilaukseen. Monikoita ei ole klusteroitu minkään attribuutin arvon mukaan. CS-A1150 Tietokannat / 43
18 Esimerkki hakemistojen valinnasta, jatkoa Useimmiten jokainen tulosmonikko on eri levysivulla. Hakemistoa käytettäessä ensimmäiseen kyselyyn vastaaminen vaatii yleensä levyhakua. Toiseen kyselyyn vastaaminen vaatii hakemistoa käytettäessä yleensä levyhakua. Lisäysten yhteydessä jokaista hakemistoa kohti tarvitaan kaksi levyhakua. Lisäksi tarvitaan yhteensä kaksi levyhakua itse päivitettävän relaation levysivun lukemiseen ja kirjoittamiseen. CS-A1150 Tietokannat / 43
19 Esimerkki hakemistojen valinnasta, jatkoa Lasketaan eri operaatioille tarvittavat levyhakujen määrät eri hakemistoyhdistelmien vaihtoehdoilla: 1. Ei lainkaan hakemistoja (koko relaatio pitää käydä läpi) 2. Käytössä hakemisto tilausnumeron mukaan (orderno Index) 3. Käytössä hakemisto tuotenumeron mukaan (productno Index) 4. Käytössä molemmat yllä mainitut hakemistot CS-A1150 Tietokannat / 43
20 Esimerkki hakemistojen valinnasta, jatkoa Action No Index orderno Index productno Index Both Indexes Q Q I Average p p p p p 2 6 2p p 2 Merkinnät: 1. Q 1 kysely, jossa haetaan monikoita, joissa esiintyy haluttu tilausnumero 2. Q 2 kysely, jossa haetaan monikoita, joissa esiintyy haluttu tuote 3. I relaatioon tehtävä lisäys Opimaalinen hakemistoratkaisu riippuu p 1 :n ja p 2 :n arvoista. Laskennassa on tehty yksinkertaistuksia. CS-A1150 Tietokannat / 43
21 Huomautuksia Jos haetaan avaimen arvon perusteella ja kyselyt kohdistuvat lähes aina arvoihin, jotka löytyvät relaatiosta, ei ilman hakemistoa tarvitse käydä aina koko relaatiota läpi, vaan voidaan lopettaa, kun ollaan löydetty etsitty arvo. Myös muut seikat voivat vaikuttaa hakemistojen valintaan, esim. osa kyselyistä aikakriittisiä, osa ei. CS-A1150 Tietokannat / 43
22 Transaktiot Tarkastellaan erilaisia ongelmatilanteita ja niiltä suojautumista transaktioiden (tapahtumien) avulla. CS-A1150 Tietokannat / 43
23 Ongelmatilanne 1 Oletetaan, että pankin tilitiedot on tallennettu relaatioon Accounts(acctNo, balance) Tarkastellaan tilisiirtoa tililtä 286 tilille 354: UPDATE Accounts SET balance = balance 1000 WHERE acctno = 286; UPDATE Accounts SET balance = balance WHERE acctno = 354; CS-A1150 Tietokannat / 43
24 Ongelmatilanne 1 Oletetaan, että pankin tilitiedot on tallennettu relaatioon Accounts(acctNo, balance) Tarkastellaan tilisiirtoa tililtä 286 tilille 354: UPDATE Accounts SET balance = balance 1000 WHERE acctno = 286; UPDATE Accounts SET balance = balance WHERE acctno = 354; Entä, jos ensimmäisen käskyn suorittamisen jälkeen ennen toista käskyä tulee sähkökatko tai laiterikko? CS-A1150 Tietokannat / 43
25 Ratkaisu: transaktiot Ohjelmoija määrittelee, että molemmat edellisen kalvon käskyt kuuluvat samaan transaktioon (tapahtumaan, engl. transaction). Tietokannan hallintajärjestelmä pitää huolen siitä, että samaan transaktioon kuuluvat käskyt suoritetaan joko kaikki kokonaan tai yhtäkään niistä ei suoriteta. Tätä transaktioiden ominaisuutta kutsutaan atomisuudeksi (atomicity). CS-A1150 Tietokannat / 43
26 Miten tietokannan hallintajärjestelmä huolehtii atomisuudesta? Voiko tietokannan hallintajärjestelmä estää sähkökatkot ja laiterikot? CS-A1150 Tietokannat / 43
27 Miten tietokannan hallintajärjestelmä huolehtii atomisuudesta? Voiko tietokannan hallintajärjestelmä estää sähkökatkot ja laiterikot? Ei voi, mutta se voi varmistaa sen, että sähkökatkon tai laiterikon jälkeen tietokanta saadaan takaisin sellaiseen tilaan, jossa joko kaikki transaktioon kuuluvat käskyt on suoritettu tai mitään niistä ei ole tehty. Yleensä tähän käytetään lokia (engl. log), esimerkiksi: Ennen kuin käskyt muuttavat itse relaatioiden monikkoja, tallennetaan lokiin päivitettävien monikoiden attribuuttien vanhat arvot. Loki tallennetaan pysyvään muistiin ennen monikoiden päivittämistä. Jos transaktion suoritus jää kesken, voidaan lokin tietojen avulla palauttaa attribuuttien vanhat arvot. CS-A1150 Tietokannat / 43
28 Ongelmatilanne 2 Oletetaan, että lentoyhtiön lentojen paikanvaraustiedot on tallennettu relaatioon Flights(fltNO, fltdate, seatno, seatstatus) Haetaan vapaa paikka halutulle lennolle: SELECT seatno FROM Flights WHERE fltno = AY001 AND fltdate = DATE AND seatstatus = available ; Oletetaan, että kysely palautti paikan 35C, jolloin se voidaan varata: UPDATE Flights SET seatstatus = occupied WHERE fltno = AY001 AND fltdate = DATE AND seatno = 35C ; CS-A1150 Tietokannat / 43
29 Ongelmatilanne 2, jatkoa Entä, jos kaksi käyttäjää yrittää varata lipun samalle lennolle suunnilleen yhtä aikaa? Oletetaan seuraava suoritusjärjestys Käyttäjä 1 huomaa paikan 35C olevan vapaa Käyttäjä 1 varaa paikan 35C Käyttäjä 2 huomaa paikan 35C olevan vapaa Käyttäjä 2 varaa paikan 35C CS-A1150 Tietokannat / 43
30 Sarjallistuvuus Vaaditaan, että transaktioiden pitää olla sarjallistuvia (serializable): Jos useita transaktioita suoritetaan samanaikaisesti, pitää niiden vaikutus tietokantaan olla sama kuin jos samat transaktiot olisi suoritettu peräkkäin yksi kerrallaan. Vastaava sarjallinen suoritusjärjestys saa kuitenkin olla mikä tahansa mahdollisista. Jos esim. samanaikaisia transaktioita on T 1 ja T 2, pitää lopputuloksen olla sama kuin jommassa kummassa seuraavista vaihtoehdoista: T 1 suoritetaan kokonaan ennen T 2 :ta T 2 suoritetaan kokonaan ennen T 1 :tä Jos ohjelmoija on määrännyt tiettyjen käskyjen kuuluvan samaan transaktioon, niin tietokannan hallintajärjestelmä pitää huolen eri transaktioiden sarjallistuvuudesta. CS-A1150 Tietokannat / 43
31 Sarjallistuvuus Vaaditaan, että transaktioiden pitää olla sarjallistuvia (serializable): Jos useita transaktioita suoritetaan samanaikaisesti, pitää niiden vaikutus tietokantaan olla sama kuin jos samat transaktiot olisi suoritettu peräkkäin yksi kerrallaan. Vastaava sarjallinen suoritusjärjestys saa kuitenkin olla mikä tahansa mahdollisista. Jos esim. samanaikaisia transaktioita on T 1 ja T 2, pitää lopputuloksen olla sama kuin jommassa kummassa seuraavista vaihtoehdoista: T 1 suoritetaan kokonaan ennen T 2 :ta T 2 suoritetaan kokonaan ennen T 1 :tä Jos ohjelmoija on määrännyt tiettyjen käskyjen kuuluvan samaan transaktioon, niin tietokannan hallintajärjestelmä pitää huolen eri transaktioiden sarjallistuvuudesta. Sarjallistuvuudesta voidaan pitää huoli esimerkiksi lukitsemalla transaktioiden käsittelemiä monikoita. CS-A1150 Tietokannat / 43
32 Välitehtävä 2 Tarkastellaan transaktioita T 1 ja T 2 T 1 : read(x) X = X + 10 write(x) T2 : read(x) X = X * 1.2 write(x) Oletetaan, että X:n arvo ennen transaktioiden suorittamista on 100. Mitkä ovat mahdollisia X:n arvoja transaktioiden suorittamisen jälkeen, jos transaktioiden suoritus on sarjallistuva? Mitkä olisivat mahdollisia X:n muita arvoja transaktioiden suorittamisen jälkeen, jos transaktioiden suoritus ei olisi sarjallistuva? CS-A1150 Tietokannat / 43
33 Huomio sarjallistuvuudesta Sarjallistuvuus ei tarkoita sitä, että transaktiot pitäisi aina suorittaa peräkkäin yksi kerrallaan. Sarjallistuvuus tarkoittaa vain sitä, että lopputuloksen pitää olla sama kuin jos transaktiot olisi suoritettu peräkkäin (jossain järjestyksessä). CS-A1150 Tietokannat / 43
34 Ongelmatilanne 3 Lentojen paikanvarausjärjestelmä. Oletetaan, että käyttäjä on varannut paikan 35C ja päivitys on tehty keskusmuistiin haettuun relaation osaan, joka sisältää päivitetyn monikon. Tapahtuu kuitenkin laiterikko tai sähkökatko, ennen kuin keskusmuistiin haettu päivitetty levysivu on tallennettu takaisin kovalevylle. Katoaako käyttäjän tekemä varaus? CS-A1150 Tietokannat / 43
35 Pysyvyys Varaus ei katoa, jos ohjelmoija on määritellyt varauksen tekevän ohjelman osan transaktioksi. Tällöin tietokannan hallintajärjestelmä pitää huolen siitä, että onnistuneesti suoritetun transaktion tekemät muutokset jäävät tietokantaan pysyvästi. Yksi transaktioilta vaadittava ominaisuus on pysyvyys (durability). Asiasta voidaan huolehtia esimerkiksi lokin avulla. CS-A1150 Tietokannat / 43
36 Ongelmatilanne 4 Tarkastellaan jälleen pankkitietokantaa, ja oletetaan sen sisältävän relaatiot Accounts(acctNo, balance) Loans(loanNo, balance, custid) Customers(custID, name, acctno) Pankki haluaa siivota pois relaatiosta Customers ne asiakkaat, joilla ei ole lainkaan tiliä: DELETE FROM Customers WHERE acctno IS NULL; CS-A1150 Tietokannat / 43
37 Ongelmatilanne 4 Tarkastellaan jälleen pankkitietokantaa, ja oletetaan sen sisältävän relaatiot Accounts(acctNo, balance) Loans(loanNo, balance, custid) Customers(custID, name, acctno) Pankki haluaa siivota pois relaatiosta Customers ne asiakkaat, joilla ei ole lainkaan tiliä: DELETE FROM Customers WHERE acctno IS NULL; Tässä saattaa kuitenkin tulla poistetuksi sellainen asiakas, jolla ei ole tiliä, mutta jolla on esimerkiksi euron laina. CS-A1150 Tietokannat / 43
38 Eheys Transaktioiden pitää toteuttaa eheys-ominaisuus (consistency): jos tietokannassa määritellyt eheysehdot ovat voimassa ennen transaktion suoritusta, niiden pitää olla voimassa myös transaktion suorituksen jälkeen. Oletetaan, että pankkitietokannassa on eheysehto, jonka mukaan Loans-relaation custid-attribuutin arvon pitää löytyä Customers-relaatiosta. Tietokannan hallintajärjestelmä ei salli sellaisia transaktioita, joiden jälkeen tietokannassa määritellyt eheysehdot eivät olisi voimassa. Eheysehtoja voi olla erilaisia. Viite-eheys on vain yksi mahdollisuus. CS-A1150 Tietokannat / 43
39 Yhteenveto: transaktioilta vaadittavat ominaisuudet Atomicity (atomisuus): kaikki transaktion sisältämät käskyt suoritetaan tai mitään niistä ei suoriteta. Isolation (serializability, sarjallistuvuus): jos useita transaktioita suoritetaan samanaikaisesti, niin lopputulos on sama kuin jos samat transaktiot olisi suoritettu jossain järjestyksessä peräkkäin yksi kerrallaan. Consistency (eheys): jos tietokannassa määritellyt eheysehdot ovat voimassa ennen transaktion suoritusta, niin ne ovat voimassa myös sen jälkeen. Durability (pysyvyys): Jos transaktio on suoritettu onnistuneesti loppuun (transaktio on sitoutunut), niin sen vaikutukset eivät katoa tietokannasta. Näitä ominaisuuksia kutsutaan usein ACID-ominaisuuksiksi. CS-A1150 Tietokannat / 43
40 Transaktion määrittely SQL:ssä Transaktion määrittely SQL:ssä voidaan aloittaa ilmauksella BEGIN TRANSACTION Se ei ole kuitenkaan välttämätön, sillä SQL-standardin mukaan oletuksena ensimmäinen suoritettava SQL-käsky aloittaa uuden transaktion, samoin edellisen transaktion päättymisen jälkeen suoritettava seuraava SQL-käsky. Tämän jälkeen kirjoitetaan transaktioon sisältyvät käskyt Transaktio päätetään joko ilmauksella COMMIT transaktio on suoritettu onnistuneesti; transaktio sitoutuu tai ROLLBACK transaktiota ei voitu suorittaa onnistuneesti, joten sen tekemät muutokset perutaan. CS-A1150 Tietokannat / 43
41 Transaktioiden eristyvyystasot Sarjallistuvuus-vaatimuksesta voidaan joustaa, jotta saataisiin enemmän rinnakkaisuutta. Tällöin menetetään osa luettujen arvojen luotettavuudesta. Mahdolliset eristyvyystasot: Read uncommitted (likaisen datan luku sallittu) Read committed (luetaan vain sitoutuneiden transaktioiden kirjoittamaa tietoa) Repeatable read (luvun toistettavuus) Serializable (sarjallistuvuus) CS-A1150 Tietokannat / 43
42 Likaisen datan lukeminen Likaisella datalla (dirty data) tarkoitetaan arvoja, joiden kirjoittanut transaktio ei ole sitoutunut (commit). Jos yksi transaktio lukee toisen transaktion kirjoittamaa likaista dataa, on mahdollista, datan kirjoittanut transaktio myöhemmin keskeytyy. Tällöin datan lukenut transaktio toimii sellaisen tiedon pohjalta, jota ei koskaan virallisesti ole ollut tietokannassa. Joissakin sovelluksissa tämä kuitenkin halutaan sallia, koska suorituksen tehokkuutta pidetään tärkeämpänä kuin tietojen täsmällistä oikeellisuutta. Jos transaktiolle halutaan sallia likaiset luvut, määritellään se SQL-käskyllä SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; Tälläkään eristyvyystasolla ei sallita sitä, että transaktio kirjoittaisi toisen transaktion kirjoittaman likaisen datan päälle. CS-A1150 Tietokannat / 43
43 Eristyvyystasot: sitoutuneiden luku Voidaan vaatia, että transaktio lukee vain sitoutuneiden transaktioiden kirjoittamaa dataa, mutta se ei silti ole välttämättä täysin sarjallistuva. Jos transaktion eristyvyystasoksi asetetaan READ COMMITTED, se ei lue likaista dataa, mutta jos transaktio lukee saman monikon arvoja useaan kertaan, voi arvo olla lukukertojen välillä vaihtunut, jos jokin toinen transaktio on sitoutunut lukukertojen välillä. Esimerkki: Olkoon määritelty relaatio Students(ID, name, credits) Oletetaan, että transaktio T1 päivittää opiskelijan 11223F opintopistemäärää ja transaktio T 2 lukee saman opiskelijan opintopistemäärän kahteen kertaan. Jos T 1 sitoutuu näiden lukukertojen välissä, niin T 2 lukee eri opintopistemäärät eri lukukerroilla. CS-A1150 Tietokannat / 43
44 Eristyvyystasot: luvun toistettavuus Jos transaktion eristyvyystasoksi asetetaan REPEATABLE READ, niin vaaditaan, että jos transaktio lukee saman monikon attribuuttien arvoja useaan kertaan, niin luettu arvo on joka kerralla sama. Edellisen kalvon opintopiste-esimerkissä T 2 lukee tällä eristyvyystasolla joka lukukerralla joko ennen T 1 :n päivitystä olleen opintopistemäärän tai päivityksen jälkeen tallennetun opintopistemäärän, mutta ei yhdellä kerralla yhtä ja toisella kerralla toista. Eristyvyystaso ei kuitenkaan estä sitä, että toinen transaktio lisää käsiteltävään relaatioon uusia monikoita transaktion aikana. Se estää vain niiden monikoiden muuttamisen, jotka transaktio on jo lukenut. CS-A1150 Tietokannat / 43
45 Eristyvyystasot: luvun toistettavuus (jatkoa) Esimerkki: T3 laskee Students-relaation opiskelijoiden opintopistemäärän keskiarvon kahteen kertaan. Samaan aikaan toinen transaktio T 4 voi lisätä Students-relaatioon uusia monikoita. T4 :n lisäämien monikoiden vuoksi T 3 :n laskema keskiarvo voi olla jälkimmäisellä kerralla ensimmäisestä kerrasta poikkeava. Monikoita, jotka on lisätty relaatioon T 3 :n eri lukukertojen välillä, kutsutaan haamuiksi (phantoms). CS-A1150 Tietokannat / 43
46 Yhteenveto eristyvyystasoista Eristyvyystaso Likaiset luvut Ei-toistettavat Haamut luvut Read uncommitted mahdollinen mahdollinen mahdollinen Read committed ei mahdollinen mahdollinen Repetable read ei ei mahdollinen Serializable ei ei ei SQL-standardissa oletuksena on eristyvyystaso SERIALIZABLE, monissa järjestelmissä se on kuitenkin löysempi (esim. MySQL:ssa REPEATABLE READ, Oraclessa ja PostgresSQL:ssä READ COMMITTED). CS-A1150 Tietokannat / 43
47 Huomautus eristyvyystasoista Eristyvyystason määrittely koskee aina sen transaktion lukemia tietoja, jolle taso on määritelty. Jos esim. T 1 :n taso on READ UNCOMMITTED ja T 2 :n taso READ COMMITTED, niin T 1 voi lukea T 2 :n kirjoittamaa likaista dataa, mutta T 2 voi lukea T 1 :n kirjoittamaa dataa vasta sen jälkeen, kun T 1 on sitoutunut. Jotta transaktiojoukon suoritus kokonaisuudessaan olisi varmasti sarjallistuva, pitää jokaisen joukkoon kuuluvan transaktion eristyvyystaso olla SERIALIZABLE. CS-A1150 Tietokannat / 43
48 Vain lukuoperaatiota sisältävät transaktiot Jos kaksi tai useampi transaktio ainoastaan lukee tietokannassa olevia arvoja mitään muuttamatta, voi niiden operaatiot lomittua mielivaltaisella tavalla toisiinsa nähden ilman sarjallistuvuusongelmia. Ohjelmoija voi kertoa ennen transaktion aloittamista, että seuraava transaktio sisältää vain lukuoperaatioita ilmauksella: SET TRANSACTION READ ONLY; Vastaavasti voidaan kertoa, että transaktio sisältää myös kirjoitusoperaatioita (oletus muuten, paitsi READ UNCOMMITTED -eristyvyystasolla). SET TRANSACTION READ WRITE; Samalla käskyllä voidaan myös määritellä transaktion eristyvyystaso: SET TRANSACTION READ WRITE ISOLATION LEVEL READ UNCOMMITTED; CS-A1150 Tietokannat / 43
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 12.4.2016 CSE-A1200 Tietokannat 12.4.2016 1 / 42 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan
CS-A1150 Tietokannat CS-A1150 Tietokannat / 47
CS-A1150 Tietokannat 10.4.2018 CS-A1150 Tietokannat 10.4.2018 1 / 47 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan
CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29
CS-A1150 Tietokannat 20.5.2019 CSE-A1150 Tietokannat 20.5.2019 1 / 29 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 22.3.2016 CSE-A1200 Tietokannat 22.3.2016 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä SQL:llä kyselyitä, jotka käyttävät hyväkseen toisen kyselyn tuloksia (alikyselyt).
CS-A1150 Tietokannat CS-A1150 Tietokannat / 39
CS-A1150 Tietokannat 20.2.2018 CS-A1150 Tietokannat 20.2.2018 1 / 39 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 23.2.2016 CSE-A1200 Tietokannat 23.2.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta
CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32
CS-A1150 Tietokannat 15.5.2018 CSE-A1150 Tietokannat 15.5.2018 1 / 32 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat
HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely
HAAGA-HELIA Heti-09 1 (14) Transaktionkäsittely Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen...
CS-A1150 Tietokannat CS-A1150 Tietokannat / 43
CS-A1150 Tietokannat 27.3.2018 CS-A1150 Tietokannat 27.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää
HELIA 1 (14) Outi Virkki Tiedonhallinta
HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11
CS-A1150 Tietokannat CS-A1150 Tietokannat / 44
CS-A1150 Tietokannat 2.4.2019 CS-A1150 Tietokannat 2.4.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan taulujen (relaatioiden) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää
CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39
CS-A1150 Tietokannat 9.5.2017 CSE-A1150 Tietokannat 9.5.2017 1 / 39 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä voidaan
IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012)
IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) TEHTÄVIÄ/KYSYMYKSIÄ Määrittele tapahtuma (transaction) tapahtumien hallinta Mitä ovat tapahtuman ACIDominaisuudet?
Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)
SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert
TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 10.5.2016 CSE-A1200 Tietokannat 10.5.2016 1 / 50 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä
Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa
Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa Sisältö Transaktionaaliset työnkulut Samanaikaisuuden ongelmat Optiot idea käyttökohteet WorkMan Optioiden toteutus Arviointi Transaktionaaliset
CS-A1150 Tietokannat CS-A1150 Tietokannat / 44
CS-A1150 Tietokannat 12.3.2019 CS-A1150 Tietokannat 12.3.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa UML-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis UML-kaavio,
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
D B. Tietokannan hallinta kertaus
TKHJ:n pääkomponentit metadata TKHJ:ssä Tiedostojen käsittely puskurien rooli tiedostokäsittelyssä levymuistin rakenne ja käsittely mistä tekijöistä hakuaika muodostuu jonotus jos useita samanaikaisia
D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus
Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin yhdenkään
D B. Transaktionhallinta - samanaikaisuus
Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin yhdenkään
Lisätään avainarvo 6, joka mahtuu lehtitasolle:
Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 11.6.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle
25.4.05. Helsingin yliopisto/tktl Tietokannan hallinta, kevät 2005. Harri Laine 1 D B. Transaktionhallinta - samanaikaisuus
Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (= käyttäviä prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin
CS-A1150 Tietokannat
CS-A1150 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin aikaisemmalta kurssikerralta sekä kurssin oppikirjaan 30.1.2018 CS-A1150 Tietokannat 30.1.2018 1 / 28 Aloitusluento: tämän luennon
CS-A1150 Tietokannat
CS-A1150 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin aikaisemmalta kurssikerralta sekä kurssin oppikirjaan 4.2.2019 CS-A1150 Tietokannat 4.2.2019 1 / 29 Aloitusluento: tämän luennon
CS-A1150 Tietokannat CS-A1150 Tietokannat / 54
CS-A1150 Tietokannat 6.3.2018 CS-A1150 Tietokannat 6.3.2018 1 / 54 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa ER-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis ER-kaavio, niin
CS-A1150 Tietokannat CS-A1150 Tietokannat / 51
CS-A1150 Tietokannat 7.3.2017 CS-A1150 Tietokannat 7.3.2017 1 / 51 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa ER-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis ER-kaavio, niin
Tietohakemisto ja Transaktionkäsittely
HELIA TIKO-05 1 (18) Tietohakemisto ja Transaktionkäsittely Tietohakemisto...2 Oraclen tietohakemistonäkymät (osa)...3 Yleiset...3 Taulut...3 Säännöt...3 Näkymät...3 Synonyymit...4 Indeksit...4 Sekvenssit...4
CS-A1150 Tietokannat CS-A1150 Tietokannat / 34
CS-A1150 Tietokannat 7.2.2017 CS-A1150 Tietokannat 7.2.2017 1 / 34 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan relaatioalgebralla. Osaat tehdä erilaisia kyselyitä relaatioalgebran
CS-A1150 Tietokannat CS-A1150 Tietokannat / 35
CS-A1150 Tietokannat 5.3.2019 CS-A1150 Tietokannat 5.3.2019 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä tietokantaa kuvaavan mallin UML-kaavion avulla. Tunnet esimerkiksi seuraavat UML-mallinnuksen
Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.
Samanaikaisuuden hallinta tietokantapalvelimessa Tiedonhallintaa Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 1 Transaktiot eli tapahtuma(sarja)t 2 Transaktio (transaction) on DBMSn
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat 8.3.2016 CSE-A1200 Tietokannat 8.3.2016 1 / 49 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa ER-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis ER-kaavio, niin
CS-A1150 Tietokannat
CS-A1150 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin vuodelta 2011 sekä kurssin oppikirjaan 31.1.2017 CS-A1150 Tietokannat 31.1.2017 1 / 28 Aloitusluento: tämän luennon jälkeen
Transaktionhallinta. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1
Transaktionhallinta R & G Chapter 17 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Transaktionhallinta ~ samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja).
Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista
Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,
Lisätään avainarvo 1, joka mahtuu lehtitasolle:
Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle
Transaktioiden eristyvyys
Transaktioiden eristyvyys H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on Management of
HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000
HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...
5.2 Samanaikaisuuden hallinta
Tietokannan hallinta 29 5. Tapahtumien hallinta Tietokannan hallinta 30 5. Tapahtumien hallinta 5.2 Samanaikaisuuden hallinta Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (ohjelmia/ihmisiä).
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin vuodelta 2011 sekä kurssin oppikirjaan 2.2.2016 CSE-A1200 Tietokannat 2.2.2016 1 / 28 Aloitusluento: tämän luennon jälkeen
HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi
HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) SQL-transaktiot Lähes kaikissa tietojärjestelmissä tietojen talletus on toteutettu tietokannoissa, joita käytetään tietokannanhallintajärjestelmien (DBMS) palvelujen
Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas
Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä
CS-A1150 Tietokannat CS-A1150 Tietokannat / 34
CS-A1150 Tietokannat 6.2.2018 CS-A1150 Tietokannat 6.2.2018 1 / 34 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan relaatioalgebralla. Osaat tehdä erilaisia kyselyitä relaatioalgebran
Samanaikaisuuden hallinta Snapshot Isolationin avulla
hyväksymispäivä arvosana arvostelija Samanaikaisuuden hallinta Snapshot Isolationin avulla Olli Korhonen Helsinki 4.3.2009 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO
Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17
R & G Chapter 17 ~ samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja). On toivottavaa, että: Yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita
TIEDONHALLINTA - SYKSY 2011. Luento 12. Hannu Markkanen 28.-29.11.2011. 9/10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 12 TU00AA48-2002 TU10S1E Hannu Markkanen 28.-29.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Tietokantapahtumien hallinta
CS-A1150 Tietokannat CS-A1150 Tietokannat / 43
CS-A1150 Tietokannat 27.2.2018 CS-A1150 Tietokannat 27.2.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä tietokantaa kuvaavan mallin ER-kaavion avulla. Tunnet esimerkiksi seuraavat ER-mallinnuksen
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta. Transaktionhallinta. Transaktionhallinta
(transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi
SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX
SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät
R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo.
Tietokantarakenteet ja -algoritmit 5. harjoitus Malliratkaisut 1. B 1 : T 1 alkaa. I 1 [1]: T 1 :lle pitkäkestoinen X-lukko avaimeen 1 ja lyhytkestoinen X-lukko avaimen 1 seuraajaan. B 2 : T 2 alkaa. I
SQL - STRUCTURED QUERY LANGUAGE
SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt
Tietokantarakenteet ja -algoritmit 6. harjoitus
Tietokantarakenteet ja -algoritmit 6. harjoitus Malliratkaisut 1.. a) T1 = B I[b, r 2, 0, 0] IX-lukitaan järjestelmä s, tietokanta b ja relaatio (b, r 2 ) (tässä järjestyksessä), X-lukitaan (b, r 2, 0)
Java ja tietokannan käsittely (JDBC)
Java ja tietokannan käsittely (JDBC) Javan tietokannan käsittely luokat (java.sql.*) Yhteys tietokantaan Tietokannan yhteyden sulkeminen Tiedon haku tietokannasta Tiedon päivitys tietokantaan Transaktio
CSE-A1200 Tietokannat
CSE-A1200 Tietokannat Osa laukaisimia käsittelevistä kalvoista perustuu kurssin oppikirjaan 19.4.2016 CSE-A1200 Tietokannat 19.4.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Osaat määritellä SQL:ssä
oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja
Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi
Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1
Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi
Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1
Liitosesimerkki 16.02.06 Tietokannan hallinta, kevät 2006, J.Li 1 Esim R1 R2 yhteinen attribuutti C T(R1) = 10,000 riviä T(R2) = 5,000 riviä S(R1) = S(R2) = 1/10 lohkoa Puskuritilaa = 101 lohkoa 16.02.06
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009
PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
Tietokantarakenteet ja -algoritmit 3. harjoitus
Tietokantarakenteet ja -algoritmit 3. harjoitus Malliratkaisut 1. Analyysivaiheen alussa alustetaan aktiivisten transaktioiden taulu (tyhjä) ja päivitettyjen sivujen taulu (samoin tyhjä) tarkistuspisteestä.
5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2:
Tietokannan hallinta 1 5. Tapahtumien hallinta Tietokannan hallinta 2 5. Tapahtumien hallinta 5. Tapahtumien hallinta = transaction management (yleistä: E&N, Ch. 19) kaikkien tietokantajärjestelmien keskeinen
CS-A1150 Tietokannat
CS-A1150 Tietokannat Osa laukaisimia käsittelevistä kalvoista perustuu kurssin oppikirjaan 29.4.2019 CS-A1150 Tietokannat 29.4.2019 1 / 39 Oppimistavoitteet: tämän luennon jälkeen Osaat määritellä SQL:ssä
Tietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava
HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki
HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin
Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)
HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n
58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)
58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu
Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen
Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen
TIETOKANTOJEN PERUSTEET MARKKU SUNI
TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata
TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto
Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan
Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen
Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden
Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi!
Harjoitustyö CSE-A1200 Tietokannat Jasse Lahdenperä 345396 killedwhale@kapsi.fi Henri Nurmi 345545 henri.nurmi@kapsi.fi 1 Ensimmäisen vaiheen ratkaisu ER-Kaavio 2 Relaatiomalli: Loanable(Id, MaximumLoanTime)
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi
Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat
Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat Pasi Oja-Nisula Helsinki 19.9.2006 Tietokannat nyt -seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto 1 2 Tilannevedoseristyvyyden
Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2
Subversion-ohje Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Helsinki 1.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]
SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän
D B. Transaktionhallinta
(transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi
Tietokantakurssit / TKTL
Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien
Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi
Miksi optimoidaan Relaatiotietokannan kyselyt esitetään käytännössä SQLkielellä. Kieli määrittää halutun tuloksen, ei sitä miten tulos muodostetaan (deklaratiivinen kyselykieli) Tietokannan käsittelyoperaatiot
Rinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot
Esim yhteinen attribuutti C Liitosesimerkki T() = 10,000 riviä T() = 5,000 riviä S() = S() = 1/10 lohkoa Puskuritilaa = 101 lohkoa 1 2 Vaihtoehdot Sisäkkäiset silmukat Liitosjärjestys:, Liitosalgoritmit:
Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa
Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista
Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto
Muita tietokantaobjekteja Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Näkymät Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,
MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO
MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO NÄKYMÄT Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,
Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1
Elvytys R & G Chapter 18 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Motivaatio Atomisuus: Transaktiot voivat päättyä peruutukseen ( Rollback ). Pysyvyys: Entä jos TKHJ kaatuu? (Syyt?) Halutut ominaisuudet
HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät
HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...
Tietorakenteet, laskuharjoitus 7, ratkaisuja
Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9
2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;
Tällä viikolla Kotitehtävien läpikäynti SQL-harjoituksia, osa 1 Jatketaan Pelifirman tietovaraston suunnittelua: tietotyyppien kertaus, taulun luonti ER-kaavioon, taulun luonti kaavion avulla tietokantaan,
Luku 8. Aluekyselyt. 8.1 Summataulukko
Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa
HELIA 1 (14) Outi Virkki Tiedonhallinta
HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...
TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI
TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta
Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1
Hajautusrakenteet R&G Chapter 11 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hajautukseen perustuvat tiedostorakenteet Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen
HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000
HELIA 1 (12) Luento 4.3 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Viite-eheyssäännöt... 5 Arvojoukkoeheyssäännöt... 8 Null-arvoista... 10 Sovelluskohtaiset
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative
FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien
Monen taulun kyselyt FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: SELECT FROM Tuloksena on taululistassa lueteltujen taulujen rivien karteesinen