Karlstads Universitet, Datavetenskap 1

Relevanta dokument
Fillagring och indexering

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

Databaser - Design och programmering. Minnesteknik. Minnesteknik, forts. Hårddisk. Primärminne (kretsteknik) Fysisk design av databasen

Minnesteknik. Minnen lämpliga för databaser. Minnesteknik, forts. Databaser design och programmering. temporärt/flyktig Snabbt Dyrt

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

Databaser Design och programmering Minnesteknik Minnesteknik, forts Utvecklingen Hårddisk Hårddisk, forts

Karlstads Universitet, Datavetenskap 1

Dagens föreläsning. KTH & SU, CSC Databasteknik Föreläsning 10 sid 1

Vad du skall komma ihåg från tidigare föreläsningar. Dagens föreläsning. Evaluering av frågor. Data dictionary

Föreläsning Datastrukturer (DAT036)

Datastrukturer. föreläsning 10. Maps 1

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

Hashing Bakom kulisserna på Pythons dictionary

Svar till tentamen DATABASTEKNIK - 1DL poäng

Datastrukturer. föreläsning 10. Maps 1

Karlstads Universitet, Datavetenskap 1

Hashing Bakom kulisserna på Pythons dictionary. Leta i listor Osorterade listor. Leta i listor Sorterade listor

Hashing Bakom kulisserna på Pythons dictionary

Ännu mera träd: 2-3-träd, B-träd, rödsvarta träd, träd Weiss, avsnitt 4.7, 11.5, 12.2, etc.

Karlstads Universitet, Datavetenskap 1

Tentamen DATABASTEKNIK - 1DL116

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Datastrukturer. föreläsning 9. Maps 1

Föreläsning 7. Träd och binära sökträd

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Tentamen Datastrukturer D DAT 035/INN960

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Diskutera. Hashfunktion

Operativsystem - Filsystem

Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Inlämningsuppgift och handledning

Föreläsning 13 Innehåll

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datastrukturer. föreläsning 6. Maps 1

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg

Välkommen till en översikt av...

Föreläsning 9 Innehåll

Tentamen kl Uppgift 4. Uppgift 5

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

13 Prioritetsköer, heapar

Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Tentamen i. Databasteknik

Inlämningsuppgift och handledning. Föreläsning 11 Innehåll. Diskutera. Hashtabeller

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Lösningsförslag till tentamen för DD1370 Databasteknik och informationssystem

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

Tentamen Datastrukturer D DAT 036/INN960

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Karlstads Universitet, Datavetenskap 1

Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på

Föreläsning 6 Datastrukturer (DAT037)

Generiska datastrukturer för SS7

Tentamen DATABASE TECHNOLOGY - 1MB025

Föreläsning 10 Innehåll. Diskutera. Inordertraversering av binära sökträd. Binära sökträd Definition

Institutionen för Datavetenskap Department of Computer Science

Föreläsning 10 Innehåll

Tentamen Datastrukturer för D2 DAT 035

Föreläsning 11 Innehåll. Diskutera. Binära sökträd Definition. Inordertraversering av binära sökträd

Binära sökträd. Seminarium 9 Binära sökträd Innehåll. Traversering av binära sökträd. Binära sökträd Definition. Exempel på vad du ska kunna

Föreläsning 6: Introduktion av listor

Träd Hierarkiska strukturer

Innehåll. Sökning och hashtabeller. En bilsamling att söka i. En bil-klass att söka efter. Hur hittar vi alla bilar som uppfyller ett annat villkor

Magnus Nielsen, IDA, Linköpings universitet

Tentamen TEN1 HI

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Föreläsning REPETITION & EXTENTA

Seminarium 13 Innehåll

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Föreläsning 11 Innehåll

Tentamen, Algoritmer och datastrukturer

Datastrukturer som passar för sökning. Föreläsning 10 Innehåll. Inordertraversering av binära sökträd. Binära sökträd Definition

Datastrukturer som passar för sökning. Föreläsning 11 Innehåll. Binära sökträd Definition. Inordertraversering av binära sökträd

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Länkade listor kan ingå som en del av språket, dock ej i C Länkade listor är ett alternativ till:

Lösningar Datastrukturer TDA

15-1. MONITOR IT-utbildning

Tentamen i Algoritmer & Datastrukturer i Java

Filhantering. Grunderna i filhantering. Uppbyggnad av filer. Data hierarkin. Filpekaren. Positionering i filer

Tentamen i Databasteknik

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Vad har vi pratat om i kursen?

Ekvivalensrelationer

Tentamen Datastrukturer D DAT 036/INN960

Inga hjälpmedel är tillåtna

Föreläsning 10 Innehåll

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Föreläsning 7. Träd och binära sökträd

Lösningsförslag till exempeltenta 1

Övningsuppgifter #11, Programkonstruktion och datastrukturer

-============~ Anvisning ISAM 800

Transkript:

DAV B04 - Databasteknik KaU - Datavetenskap - DAV B04 - MGö 151 Lagring av databaser på sekundärminne Att läsa/skriva på sekundärminne (hårddisk) är en långsam process jämfört med operationer i primärminnet Antalet diskaccesser (I/O) bör därför minimeras KaU - Datavetenskap - DAV B04 - MGö 152 Skrivning och läsning från sekundärminne Skrivning och läsning sker i form av sidor (= page/block) med standardstorlek, t ex 1024 bytes Databasposterna är ofta mindre än sidorna, t ex 100 bytes, vilket gör att man läser/skriver flera poster (i detta fall 10) på samma gång Önskvärt är att relaterade poster lagras nära varandra för att minska antalet accesser KaU - Datavetenskap - DAV B04 - MGö 153 Karlstads Universitet, Datavetenskap 1

Hämta en post från databasen 1) DBHS bestämmer vilken lagrad post som behöver hämtas och ber filhanteraren att hämta posten 2) Filhanteraren bestämmer vilken sida (block) som posten finns på och ber diskhanteraren att hämta den sidan 3) Diskhanteraren bestämmer fysisk adress och ber om data från denna adress 4) Data läses av diskhanteraren 5) Den lagrade sidan returneras till filhanteraren 6) Den lagrade posten returneras till DBHS KaU - Datavetenskap - DAV B04 - MGö 154 Exempel på lagringsstrukturer Sekventiell lagring, osorterad/sorterad Indexering Hashing B-träd, B+-träd KaU - Datavetenskap - DAV B04 - MGö 155 Sekventiell lagring Osorterat plus: insättning av nya poster enkelt, sist eller första lediga minus: leta upp en post är besvärligt, sekventiell sökning Sorterat plus: binärsökning ger mycket snabbare access minus: insättning av nya poster medför att poster måste flyttas KaU - Datavetenskap - DAV B04 - MGö 156 Karlstads Universitet, Datavetenskap 2

Hashing Hashing innebär att adressen till en post bestämmes med hjälp av en hash-funktion vars indata är något av fälten i posten plus: direktaccess plus: minskat adressintervall minus: kan ge kollisioner som måste specialbehandlas KaU - Datavetenskap - DAV B04 - MGö 157 Indexering Indexering innebär att man bestämmer en viss ordningsföljd på posterna i datafilen. Index kan knytas till vilket fält som helst eller en kombination av fält Primary indexes Clustering indexes Secondary indexes Multilevel indexes Dynamic multilevel indexes, B-trees, B+-trees KaU - Datavetenskap - DAV B04 - MGö 158 Primary indexes Index knutet till primärnyckel dense index (= index till varje post) nondense (= ej index till varje post). Indexfil och datafil fig. 6.1 och exampel 1, sida 159 KaU - Datavetenskap - DAV B04 - MGö 159 Karlstads Universitet, Datavetenskap 3

Clustering indexes Index knutet till ett icke-nyckelfält som har dubbletter En pekare från indexfilen för varje distinkt värde (första blocket) på clustering-fältet fig. 6.2 och 6.3 KaU - Datavetenskap - DAV B04 - MGö 160 Secondary indexes Indexfil med två värden, indexfält och pekare till post/block En datafil kan ha många sekundärindex, ett för varje attribut Fig. 6.4 och exempel 2, sida 162. Index till osorterad fil men på ett fält med unika värden Fig. 6.5 visar indexfil till fält med ej unika värden KaU - Datavetenskap - DAV B04 - MGö 161 Multilevel indexes Index med flera nivåer fig. 6.6 och exempel 3, sida 167 Mycket snabb access men i likhet med alla ovanstående varianter är det problem med insättning av nya poster och borttagning av befintliga poster KaU - Datavetenskap - DAV B04 - MGö 162 Karlstads Universitet, Datavetenskap 4

Dynamic Multilevel Indexes using B-trees and B + -trees B-träd som finns i olika varianter möjliggör att dynamiskt lägga till och ta bort poster utan att slösa med minnesutrymme Träden är balanserade, dvs. alla löv ligger på samma nivå Nyckelvärdena är upphängda i sorteringsordning i trädet KaU - Datavetenskap - DAV B04 - MGö 163 Skillnaden mellan B-träd och B + - träd I ett B-träd kan datapekare finnas i alla inre noder och i löven medan B + -träd endast har datapekare i löven Dessutom finns pekare mellan löven i B + -träd vilket möjliggör sekventiell sökning KaU - Datavetenskap - DAV B04 - MGö 164 B-träd av ordningen p Varje inre nod i trädet (fig. 6.10a) är på formen <P 1, <K 1, Pr 1 >, P 2,, <K 2, Pr 2 >,,, <K q-1, Pr q-1 >, P q > där q <= p Varje P i är en trädpekare och varje Pr i är en datapekare till den post (eller block som innehåller) vars nyckelvärde är K i KaU - Datavetenskap - DAV B04 - MGö 165 Karlstads Universitet, Datavetenskap 5

B-träd av ordningen p Inom varje nod gäller K 1 < K 2 < < K q-1 För alla sökvärden X i det subträd som utpekas av P i gäller K i-1 < X < K i, för 1 < i < q X < K i, för i = 1 K i-1 < X för i = q KaU - Datavetenskap - DAV B04 - MGö 166 B-träd av ordningen p Varje nod har högst p trädpekare Varje nod, förutom roten och löven, har åtminstone [(p/2)] trädpekare. Roten har minst 2 trädpekare såvida den inte är ensam nod i trädet KaU - Datavetenskap - DAV B04 - MGö 167 B-träd av ordningen p En nod med q trädpekare, q <= p, har q-1 söknyckelvärden och därmed också q-1 datapekare Alla löv ligger på samma nivå. Löven har samma struktur som inre noder men deras trädpekare är NULL KaU - Datavetenskap - DAV B04 - MGö 168 Karlstads Universitet, Datavetenskap 6

Inre noder definieras enligt varje inre nod i trädet är på formen <P 1, K 1, P 2, K 2,, P q-1, K q-1, P q > där q <= p varje Pi är en trädpekare Inom varje nod gäller K 1 < K 2 < < K q-1 KaU - Datavetenskap - DAV B04 - MGö 169 För alla sökvärden X i det subträd som utpekas av P i gäller K i-1 < X <= K i, för 1 < i < q X <= K i, för i = 1 K i-1 < X för i = q Varje inre nod har högst p trädpekare KaU - Datavetenskap - DAV B04 - MGö 170 Varje inre nod, förutom roten, har åtminstone [(p/2)] trädpekare. Roten har minst 2 trädpekare såvida den inte är ensam nod i trädet En nod med q trädpekare, q <= p, har q-1 söknyckelvärden KaU - Datavetenskap - DAV B04 - MGö 171 Karlstads Universitet, Datavetenskap 7

Lövnoder definieras enligt Varje löv har utseendet <<K 1, Pr 1 >, <K 2, Pr 2 >,,, <K q-1, Pr q-1 >, P next > där q <= p Pr i är en datapekare och P next pekar på nästa lövnod i trädet KaU - Datavetenskap - DAV B04 - MGö 172 Inom varje nod gäller K 1 < K 2 < < K q-1, q <= p Varje Pr i är en datapekare som pekar på den post (eller block) vars söknyckelvärde är K i Varje lövnod har åtminstone [(p/2)] trädpekare Alla lövnoder är på samma nivå KaU - Datavetenskap - DAV B04 - MGö 173 Karlstads Universitet, Datavetenskap 8