UNIVERSITETET. Indeksering. Hvordan finne et element raskt? Vera Goebel, Ellen Munthe-Kaas

Størrelse: px
Begynne med side:

Download "UNIVERSITETET. Indeksering. Hvordan finne et element raskt? Vera Goebel, Ellen Munthe-Kaas"

Transkript

1 UNIVERSITETET IOSLO Indeksering Hvordan finne et element raskt? Basert på foiler av Hector Garcia Molina Basert på foiler av Hector Garcia-Molina, Vera Goebel, Ellen Munthe-Kaas

2 Oversikt Konvensjonelle indekser B-trær og hashing hi Flerdimensjonale indekser Tre-lignende strukturer Hash-lignende strukturer Bitmap-indekser INF Ragnhild Kobro Runde Side 2

3 Indekser En indeks på et attributt A er en datastruktur som gjør det lett å finne de elementene som har en bestemt verdi for A (søkenøkkelen). Indeksen er sortert på søkenøkkelen. For hver verdi av søkenøkkelen har indeksen en liste med pekere til de tilsvarende postene. Flere indekser på samme fil gir raskere søking. økt kompleksitet endringer må også oppdatere indeksene. økt lagerbehov. INF Ragnhild Kobro Runde Side 3

4 Ulike typer indekser Tett (dense) vs tynn (sparse). Primærindeks. Cluster-indeks. Sk Sekundærindeks. idk INF Ragnhild Kobro Runde Side 4

5 Tette og tynne indekser En tett indeks har ett oppslag for hver verdi av a b c... z søkenøkkelen En tynn indeks har ett oppslag for hver datablokk a b c... z INF Ragnhild Kobro Runde Side 5

6 Et lite regnestykke Anta at vi har poster på 300B, 4B søkenøkkel, 4B pekere. 4KB blokkstørrelse, snitt 5.6 ms for å hente en blokk recorder per blokk, dvs blokker med data. 512 indekser per blokk, dvs 1954 blokker for en tett indeks og 151 blokker for en tynn. Uten indeks: 76924/2 = blokkaksesser i snitt, dette tar * 5.6 ms = s Med tett indeks og binærsøk: log2(1954) +1= = 12 blokkaksesser (maks), dette tar 12 * 5.6 ms = 67.2 ms 3205 ganger raskere enn uten indeks! Med tynn indeks og binærsøk: log2(151) + 1 = = 9 blokkaksesser (maks), dette tar 9 * 5.6 ms = 50.4 ms 4272 ganger raskere enn uten indeks, og 133ganger 1.33 raskere enn med tett indeks. INF Ragnhild Kobro Runde Side 6

7 Flernivå-indekser En indeks kan oppta flere blokker. En flernivå-indeks, dvs en indeks på indeksen, kan økeeffektiviteten. Forts. regnestykket: trenger bare 1954 / 512 = 4 blokker for 2. nivå log2(4) +1+1= = 4 blokkaksesser, dette tar 4 * 5.6 ms = 22.4 ms 2.25 ganger raskere enn en enkelt tynn indeks, 3 ganger raskere enn en tett indeks. tynn 2. nivå Kan i prinsippet ha vilkårlig mange indekser. tett 1. nivå a b c... z INF Ragnhild Kobro Runde Side 7

8 Eksempel: Sletting ved tynn indeks Slett post med a = 60 Ingen endring nødvendig i idk indeksen. Slett post med a = a b c... z Den første posten i blokken har blitt oppdatert, så indeksen må også oppdateres INF Ragnhild Kobro Runde Side 8

9 Eksempel: Sletting ved tett indeks Slett post med a = 60 Slett post med a = 40 I mange tilfeller ønsker man å komprimere dataene i blokkene. Man kan også komprimere heledatasettet datasettet, menvanligvis beholdes noe ledig plass for fremtidig innsetting a b c... z INF Ragnhild Kobro Runde Side 9

10 Eksempel: innsetting ved tynn indeks Sett inn post med a = 60 Vi er heldige ledig plass der vi trenger det. a b c... z Sett inn post med a = 25 Må flytte posten med a=30 til neste blokk for å lage plass. Den første posten i blokk to er endret, og indeksen må oppdateres. Merk: Kunne også satt inn en ny/overflyts-blokk INF Ragnhild Kobro Runde Side 10

11 Eksempel: Innsetting ved tynn indeks Sett inn post med a = 95 Ikke plass sett inn a b c... z ny/overflyts-blokk 10 Overflytsblokk: Trenger ikke gjøre noe i indeksen (har bare pekere til hovedblokkene). Ny blokk: Indeksen må oppdateres. Innsetting ved tette indekser gjøres på samme måte men indeksen må oppdateres es hver gang. g INF Ragnhild Kobro Runde Side 11

12 Tette vs tynne indekser Tett Tynn plass Ett indeksfelt per post Ett indeksfelt per datablokk blokkaksesser mange få postaksesser Direkte aksess Må lete innenfor blokken exist-spørringer Bruk indeksen alene Må alltid aksesssere blokken bruk overalt Ikke på uordnede elementer endringer Må alltid oppdateres hvis post-rekkefølgen endres Oppdateres bare hvis den første posten i en blokk endres. INF Ragnhild Kobro Runde Side 12

13 Duplikate søkenøkler (cluster-indekser) En cluster-indeks kan brukes hvis filen er sortert, selv om 10 søkenøkkelen ikke er unik. 10 Eksempel 1 tett indeks: Ett indeksfelt per post. Lett å finne poster og hvor mange som finnes av hver. Flere felt enn nødvendig? a b c... z INF Ragnhild Kobro Runde Side 13

14 Cluster-indekser: Eksempel 2 tett indeks Bare ett indeksfelt per unike 10 søkenøkkel. 20 Mindre indeks raskt søk. Mer komplisert å finne påfølgende poster a b c... z INF Ragnhild Kobro Runde Side 14

15 Cluster-indekser: Eksempel 3 tynn indeks Indeksfeltene peker til første 10 post i hver blokk Liten indeks raskt søk Vanskelig å finne poster. F.eks. finn alle poster med a = a b c... z INF Ragnhild Kobro Runde Side 15

16 Cluster-indekser: Eksempel 4 tynn indeks Indeksfeltet er første nye post i hver blokk. Liten indeks raskt søk. Vanskelig å fjerne poster. Kan vi i det hele tatt fjerne den andre forekomsten med a = 30? a b c... z INF Ragnhild Kobro Runde Side 16

17 Usorterte filer sekundærindekser Hvis filen er usortert (eller sortert på et annet attributt), kan man bruke en sekundærindeks. Sortert på søke- nøkkelen raskt søk. 1. nivå er alltid tett høyere nivåer er tynne. Duplikater tillates a b c... z INF Ragnhild Kobro Runde Side 17

18 Inverterte indekser Hva hvis man ønsker å søke på elementer innenfor et attributt? SELECT * FROM R WHERE a LIKE %cat% Søke etterdokumentersominneholdervisse nøkkelord, f.eks. søkemotorer som Google, Altavista, Excite, Lycos, AllTheWeb osv. INF Ragnhild Kobro Runde Side 18

19 Alternativ 1: true/false tabell Eksempel: tillatte nøkkelord computer, printer, laptop, disk,... computer index printer index laptop index has computer has printer has laptop disk has disk index... T T F F... F T F T... F F T T connected the printer to the computer stored the file on the disk before sending it to the printer the laptop has a 50 GB disk... INF Ragnhild Kobro Runde Side 19

20 Alternativ 2: Invertert indeks Eksempel: computer disk laptop printer... connected the printer to the computer stored the file on the disk before sending it to the printer... buckets... the laptop has a 50 GB disk... INF Ragnhild Kobro Runde Side 20

21 B-Trær og hashinghi

22 B + -trær Hver node har n søkenøkler og n+1 pekere. Indre noder: alle pekere er til sub-noder. Løv-noder: n datapekere og 1 nestepeker. Ingen noder kan være tomme. Indre noder: minst (n+1)/2 pekere til sub-noder. Løv-noder: minst (n+1)/2 datapekere. Eksempel (n=3): a INF Ragnhild Kobro Runde Side 22

23 B + -trær: B + -trær: effektivitet Et søk må alltid gå fra roten og til en løvnode, dvs. antall blokkaksesser er lik høyden på treet pluss aksessering av selve postene. Antall nivåer er vanligvis veldig liten typisk 3. Intervall-søking går veldig raskt. Ved stor n er det sjelden nødvendig å splitte/slå sammen noder. Disk I/O kan reduseres ved å holde indeksblokkene i minnet. Eksempel: 4B søkenøkler, 8B pekere, 4KB blokker (ingen headere) Hvor mange verdier kan lagres i hver node? 4n + 8(n+1) 4096 n = 340 Nodene er i snitt 75% fulle. Hvor mange poster kan et B + -tre med 3 nivåer inneholde? (340 * 75 %) 3 = million poster INF Ragnhild Kobro Runde Side 23

24 Hash-tabeller Bruker en hash-funksjon fra søkenøkkelen til en arrayindeks med peker videre til hvilken bucket som eventuelt inneholder den aktuelle posten. Arraystørrelsen er vanligvis et primtall. Viktig med en god hash-funksjon! Rask. God fordeling av søkenøklene. Eksempel: Arraystørrelse B=5 h(key) = mod(key, B) bucket-pekere i minnet buckets INF Ragnhild Kobro Runde Side 24

25 Hash-tabeller: effektivitet Ideelt er arraystørrelsen stor nok til at alle elementene for en hashverdi passer i en bucket-blokk. Da får vi signifikant færre disk-operasjoner enn med vanlige indekser og B-trær. Raskt søk etter spesifikk søkenøkkel. Flere poster kan føre til flere blokker per bucket. Dårlig på intervall-søk. INF Ragnhild Kobro Runde Side 25

26 Dynamiske hashtabeller Vanskelig å holde alle elementene innenfor en bucket-blokk hvisantall tllposter øker mens hash-tabellenh tbll er statisk. ttik Dynamiske hash-tabeller tillater tabell-størrelsen å variere slik at det holder med en blokk per bucket. utvidbar (extensible) hashing. lineær (linear) hashing. Les detaljer om disse selv! INF Ragnhild Kobro Runde Side 26

27 Sekvensielle vs hash-indekser: Sekvensielle indekser som f.eks. B-trær er gode på intervallsøk: SELECT * FROM R WHERE R.A > 5 Hash-indekser er gode når det søkes etter en spesiell nøkkel: SELECT * FROM R WHERE R.A = 5 INF Ragnhild Kobro Runde Side 27

28 Syntaks: Indekser i SQL CREATE INDEX name ON relation_name (attribute) CREATE UNIQUE INDEX name ON relation_name (attribute) definerer en kandidatnøkkel DROP INDEX name Merk: Kan ikkeangi Type indeks, f.eks. B-tre, hashing osv. Parametre slik som load faktor, hash-størrelsestørrelse osv. INF Ragnhild Kobro Runde Side 28

29 Spørringer med flere betingelser SELECT... FROM R WHERE a = 30 AND b < 5 Strategi 1: Bruk en indeks, f.eks. på a. Finn og hent alle postene med a = 30. Søk gjennom disse postene for å finne de med b < 5. Enkel strategi. Risikerer å lese mange unødvendige poster fra disk. INF Ragnhild Kobro Runde Side 29

30 Flere betingelser: strategi 2 SELECT c FROM R WHERE a=30 AND b= x Bruk to tette indekser,enforaog en og en for b. Finn alle pekere til poster med a = 30. Finn alle pekere til poster med b = x. 10 a b c x 20 y 30 z 1 30 z 10 x 2 20 y 1 Sammenlign (snitt) pekerne og hent de aktuelle postene. Plukk ut de aktuelle attributtene. a indeks buckets for a 10 y 2 30 z 1 30 x 2 30 y 1 20 z 2 30 x 1 buckets for b b indeks INF Ragnhild Kobro Runde Side 30

31 Flerdimensjonale l idk indekser

32 Flerdimensjonale indekser En flerdimensjonal indeks kombinerer flere dimensjoner i samme indeks. En enkel kltre-lignende tilnærming: i I 2 I 3 (key 1, key 2, key 3,...) I 1 I 2 I 3 I 2 I 3 INF Ragnhild Kobro Runde Side 32

33 Flerdimensjonale indekser: eksempel Eksempel, tett indeks: SELECT... FROM R WHERE a = 30 AND b = x søkenøkkel = (30, x) les a-dimensjonen. (30, x) søk etter 30, finn den tilsvarende indeksen for b-dimensjonen. søk etter x, les tilsvarende diskblokk kk og hent posten. velg ut de aktuelle attributtene. a indeks x 20 y x... y z b indeks... x y z z a b c 30 z 1 10 x 2 20 y 1 10 y 2 30 z 1 20 x 2 30 y 1 20 z 2 30 x 1 INF Ragnhild Kobro Runde Side 33

34 Flerdimensjonale indekser For hvilke spørringer er dette en god indeks? Finn poster med a = 10 AND b = x Finn poster med a = 10 AND b x Finn poster med a = 10 Finn poster med b = x Finn? poster med a 10 AND b = x Risikerer å måtte søke i mange indekser i neste dimensjon. Haddeværtbedre om dimensjonene endret rekkefølge. I a I b I b I b Det finnes mange andre tilnærminger... Andre tre-lignende strukturer Hash-lingende strukturer (Bitmap-indekser) INF Ragnhild Kobro Runde Side 34

35 Map View En flerdimensjonal indeks kan ha mange dimensjoner. Hvisvi iholder oss til to (som i dtf det forrige eksempelet), kan vi se på indeksen som et geografisk kart: b b 3 b 5 b 2 b 1 b 4 Søking tilsvarer nå å søke i kartet etter punkter: a 1 og b 1 linjer: a 2 og <b 2,b 3 > arealer: <a 3,a 4 > og <b 4,b 5 > a 1 a 2 a 3 a 4 a INF Ragnhild Kobro Runde Side 35

36 Tre-strukturer Det finnes mange tre-lignende strukturer som tilsvarer å lete etter kart-arealer: arealer: kd-trær quad-trær R-trær Vi skal se på kd-trær som et eksempel, les om de andre i læreboken! Men alle disse må oppgi minst en av følgende egenskaper ved B-trær: Balansering alle nodene er på samme nivå. Korrespondanse mellom tre-noder og disk-blokker. kk Ytelse for oppdaterings-operasjoner. INF Ragnhild Kobro Runde Side 36

37 kd trær Et kd-tree (k-dimensjonalt tre) er et binærtre hvor hver node inneholder Et attributt A. En verdi V som splitter resten av datapunktene i to. Vi skal se på en variant hvor Indre noder bare inneholder V-verdien: Venstre barn har verdier mindre enn V. Høyre barn har verdier større enn eller lik V. Løvnoder er blokker med plass til et antall poster. De ulike dimensjonene er flettet: nivå 0 nivå 1 a-dimensjon b-dimensjon nivå n nivå n+1 a-dimensjon b-dimensjon INF Ragnhild Kobro Runde Side 37

38 kd trær: eksempel Finn posten (a,b) = (70, 75) b l h i f d b c a c g k h 80 l m i b f Merk 1: verdier på ventstre og høyre side er ikke relatert til noden rett over, dvs her kan vi ha vilkårlige verdier mindre enn d 80 a 30 k m g Merk 2: kan ha tomme blokker a INF Ragnhild Kobro Runde Side 38

39 kd trær: noen problemer Kan måtte sjekke begge grenene ut fra roten, f.eks. for betingelser på b-dimensjonen. Kan måtte sjekke begge grenene til et sub-tre ved intervall- søk, f.eks. ønsket ktintervall er <10,30> og nodeverdien di er 20. Høyere trær sammenligned med B-trær Kostbart å lagre hver node i en egen blokk. Mange flere blokkaksesser enn ved B-trær. Antall blokkaksesser kan reduseres hvis vi Splitter i mer enn to grener. Grupperer indre noder i en blokk, f.eks. en node og alle etterfølgerne i et visst antall nivåer. INF Ragnhild Kobro Runde Side 39

40 Hash-lignende strukturer: grid-filer Grid-filer utvider tradisjonelle hash-indekser Hasher verdier for hvert attributt i en flerdimensjonal indeks. Hasher vanligvis ikke enkeltverdier, men regioner h(key) = <x,y> Grid-linjer partisjonerer området i striper. Eksempel (2 dimensjoner): b Finn post med (a,b) = (22, 31) h 1(22) = <a x, a y> h 2 (31) = <b m, b n > post f h 2 (b-key) l i h f d b c a k m h 1 (a-key) g a INF Ragnhild Kobro Runde Side 40

41 Grid-filer Grid-filer kan raskt finne poster med key 1 = V i AND key 2=X j key 1 = V i key 2 = X j key 1 V i Grid-filer: AND key 2 < X j Bra for søking ved flere nøkler. Bruker mye plass, krever en del organisering. Les selv om partisjonerte hash-funksjoner! INF Ragnhild Kobro Runde Side 41

42 Bitmap-indekser Utgangspunkt: Alle recorder er tilordnet et uforanderlig, entydig tall Nummering fra 1 til n Nummeret kan betraktes som en record-id og kan ikke gjenbrukes Velg ut feltet F som det skal lages en indeks på For hver benyttet verdi v for F i en av recordene, opprett en bitvektor b v med lengde n Hvis record nr. ih har F=v, la b v [i]=1 Hvis record nr. i har F v, la b v [i]=0 INF Ragnhild Kobro Runde Side 42

43 Bitmap-indekser: eksempel recordnummer fil F G 1 30 foo 2 30 bar bitvektorer for F 3 40 baz 4 50 fou 30: bar 40: baz 50: INF Ragnhild Kobro Runde Side 43

44 Karakteristika Plassbehov: Totalt antall bits er #records*#verdier 2 I verste fall trengs n 2 bits (men da har hver bitvektor bare én 1-bit) Bitvektorene kan komprimeres; det er aldri mer enn n 1-bits totalt i bitvektorene Effektiv for partial match queries (= angi verdier for noen felter, finn alle som har gitte verdier) Beregn bitvis AND på tvers av bitmap-indeksene for de aktuelle attributtene range queries (= angi intervaller for noen felter, finn alle som har verdier innen intervallene) Beregn bitvis OR innen intervallene og bitvis AND mellom intervallene INF Ragnhild Kobro Runde Side 44

45 Oppsummering Søking er kostbart Indekser Minimaliserer søkekostnader og blokkaksesser. Krever mer plass passtotalt. oa Innsetting/oppdatering/slettering av poster blir mer komplisert. Konvensjonelle indekser. B-trær (B + -trær). Hashing. Flerdimensjonale indekser. Tre-lignende strukturer. Hash-lignende strukturer. Bitmap-indekser. INF Ragnhild Kobro Runde Side 45

UNIVERSITETET I OSLO. Indeksering. Hvordan finne et element raskt? Institutt for Informatikk. INF Ellen Munthe-Kaas

UNIVERSITETET I OSLO. Indeksering. Hvordan finne et element raskt? Institutt for Informatikk. INF Ellen Munthe-Kaas UNIVERSITETET I OSLO Indeksering Hvordan finne et element raskt? Institutt for Informatikk INF3100 2.3.2010 Ellen Munthe-Kaas 1 Oversikt Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser

Detaljer

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser UNIVERSITETET I OSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF30 3.3.2014

Detaljer

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer. UNIVERSITETET IOSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF30 22.2.2011

Detaljer

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser UNIVERSITETET I OSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF30 29.2.2016 Ellen

Detaljer

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser UNIVERSITETET I OSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF3100 V18 Evgenij Thorstensen

Detaljer

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Basert på foiler av Hector Garcia-Molina, Ragnar Normann Oversikt Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basis-operasjoner Implementasjons-algoritmer

Detaljer

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller Hashing INF2220 - Algoritmer og datastrukturer HØSTEN 200 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning : Hashing Hashtabeller (kapittel.) Hash-funksjoner (kapittel.2) Kollisjonshåndtering

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor

Detaljer

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 6.4.2016

Detaljer

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017 INF0: Gruppe me Mathias Lohne Høsten 0 1 Rød-svarte trær Vanlige binære søketrær blir fort veldig ubalanserte. røv å sett inn 1,,, 4, 5,, 7,... (i den rekkefølgen) i et binært søketre. Da vil vi i praksis

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 23.3.2015

Detaljer

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)! Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre

Detaljer

DBS18 - Strategier for Query-prosessering

DBS18 - Strategier for Query-prosessering Side 1 for Databaser DBS18 - Strategier for Query-prosessering søndag 22. mai 2016 13.03 Pensum 18.1-18.4, side 655-674, unntatt 18.4.4 og 18.4.5 En spørring som blir skrevet i et høynivå-språk, må bli

Detaljer

INF2220: Forelesning 3

INF2220: Forelesning 3 INF2220: Forelesning 3 Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) ABSTRAKTE DATATYPER 2 Abstrakte datatyper En ADT består av: Et sett med objekter. Spesifikasjon

Detaljer

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5)

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) INF2220: Forelesning 3 Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) Map og hashing Ett minutt for deg selv: Hva vet du om maps/dictionarys og hashing fra tidligere?

Detaljer

Hashing: Håndtering av kollisjoner

Hashing: Håndtering av kollisjoner Hashing: Håndtering av kollisjoner Innsetting av dataelement i hashtabell Algoritme: 1. Bruk en hashfunksjon til å beregne hashverdi basert på dataelementets nøkkelverdi 2. Sett inn dataelementet i hashtabellen

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 21.3.2014

Detaljer

Spørsmålskompilering del 1

Spørsmålskompilering del 1 UNIVERSITETET I OSLO Spørsmålskompilering del 1 Parsering Logiske spørreplaner uttrykt i relasjonsalgebra Optimalisering ved hjelp av algebraiske lover Institutt for Informatikk INF3100-11.4.2016 - Ellen

Detaljer

Spørsmålskompilering del 1

Spørsmålskompilering del 1 UNIVERSITETET I OSLO Spørsmålskompilering del 1 Parsering Logiske spørreplaner uttrykt i relasjonsalgebra Optimalisering ved hjelp av algebraiske lover Institutt for Informatikk INF3100 - V18 - Evgenij

Detaljer

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type (kapittel.) Hash-funksjoner (kapittel..)

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 V18 Evgenij

Detaljer

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type Hash-funksjoner hashcode Kollisjonshåndtering

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 3: Maps og Hashing Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 3 1 / 25 Maps

Detaljer

INF2220: Forelesning 3

INF2220: Forelesning 3 INF2220: Forelesning 3 Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) REPETISJON: ALGORITMER OG STOR O 2 REPETISJON RØD-SVARTE TRÆR 7 Rød-svarte trær Et rød-svart

Detaljer

INF1020 Algoritmer og datastrukturer

INF1020 Algoritmer og datastrukturer Dagens plan Hashing Hashtabeller Hash-funksjoner Kollisjonshåndtering Åpen hashing (kap. 5.3) Lukket hashing (kap. 5.4) Rehashing (kap. 5.5) Sortering ut fra en hashing-ide (side 66-68) Bøttesortering

Detaljer

Flerveis søketrær og B-trær

Flerveis søketrær og B-trær Flerveis søketrær og B-trær Flerveis (multi-way, n-ært) søketre Generalisering av binært søketre Binært søketre: Hver node har maksimalt 2 barn og 1 nøkkelverdi. Barna ligger sortert på verdi i forhold

Detaljer

Dagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær

Dagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær Dagens plan: INF2220 - lgoritmer og datastrukturer HØTEN 2007 Institutt for informatikk, Universitetet i Oslo (kap. 4.7) (kap. 12.2) Interface ollection og Iterator (kap. 3.3) et og maps (kap. 4.8) INF2220,

Detaljer

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. TDT445 Øving 4 Oppgave a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. Nøkkel: Supernøkkel: Funksjonell avhengighet: Data i en database som kan unikt identifisere (et sett

Detaljer

Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer?

Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer? IT1101 Informatikk basisfag Plan de siste ukene: I dag: siste om datastruktuter (kap. 7) Mandag 17/11: dobbel forelesning om filstrukturer (kap. 8) Torsdag 20/11: øvingsforelesning med Inge Mandag 24/11:

Detaljer

... HASHING. Hashing. Hashtabeller. hash(x)

... HASHING. Hashing. Hashtabeller. hash(x) HASHING Hashing Hashtabeller (kapittel.) Hash-funksjoner (kapittel.) Kollisjonshåndtering Åpen hashing (kapittel.) Lukket hashing (kapittel.) Anta at en bilforhandler har ulike modeller han ønsker å lagre

Detaljer

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel ) INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)

Detaljer

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013 Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

Notater til INF2220 Eksamen

Notater til INF2220 Eksamen Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær

Detaljer

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan Generelle Tips INF2220 - lgoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo Du blir bedømt etter hva du viser at du kan Du må begrunne svar Du må ikke skrive av bøker

Detaljer

Datastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer

Datastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer Hva er en datastruktur? Datastrukturer Elementære Datastrukturer En datastruktur er en systematisk måte å lagre og organisere data på, slik at det er lett å aksessere og modifisere dataene Eksempler på

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 13: Eksamensgjennomgang Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 13 1 /

Detaljer

Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?

Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 14. desember 2011 Eksamenstid 1500 1900 Sensurdato 14. januar Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning

Detaljer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 4. august 015 Eksamenstid (fra-til): 15:00-19:00 Hjelpemiddelkode/Tillatte

Detaljer

Normalisering. ER-modell

Normalisering. ER-modell Normalisering Hensikten med normalisering: En informasjonsenhet ett sted. Forhindrer anomalier Anomalier: Innsettingsanomalier. F.eks være avhengig av å sette inn flere verdi, selv om det er det er bare

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /

Detaljer

IN Algoritmer og datastrukturer

IN Algoritmer og datastrukturer IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning

Detaljer

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN110 Algoritmer og datastrukturer Eksamensdag: 15. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

Spørsmålskompilering del 2

Spørsmålskompilering del 2 UNIVERSITETET I OSLO Spørsmålskompilering del 2 Estimere størrelsen på mellomresultater Vurdere fysiske spørreplaner Institutt for Informatikk INF3100-7.4.2015 - Ellen Munthe-Kaas 1 Oversikt: Fra spørring

Detaljer

Datastrukturer for rask søking

Datastrukturer for rask søking Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1 UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 7.2.2005 Ragnar Normann 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan være

Detaljer

Lars Vidar Magnusson

Lars Vidar Magnusson B-Trær Lars Vidar Magnusson 5.3.2014 Kapittel 18 B-trær Standard operasjoner Sletting B-Trær B-trær er balanserte trær som er designet for å fungere bra på sekundære lagringsmedium e.g. harddisk. Ligner

Detaljer

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes til å løse problemer. Undersøke ulike implementasjoner

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

TDT4225 Lagring og behandling av store datamengder

TDT4225 Lagring og behandling av store datamengder Institutt for datateknikk og informasjonsvitenskap Fakultet for Informasjonsteknologi, matematikk og elektroteknikk NTNU TDT4225 Lagring og behandling av store datamengder Onsdag 9. desember 2009, Kl.

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,

Detaljer

Liste som abstrakt konsept/datatype

Liste som abstrakt konsept/datatype Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert

Detaljer

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen Binære søketrær En ordnet datastruktur med raske oppslag Sigmund Hansen Lister og trær Rekke (array): 1 2 3 4 Lenket liste (dobbelt-lenket): 1 2 3 4 Binært søketre: 3 1 4 2 Binære

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning

Detaljer

Obligatorisk oppgave 1 INF1020 h2005

Obligatorisk oppgave 1 INF1020 h2005 Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte

Detaljer

Definisjon: Et sortert tre

Definisjon: Et sortert tre Binære søketrær Definisjon: Et sortert tre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning

Detaljer

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

INF2220: Time 4 - Heap, Huffmann

INF2220: Time 4 - Heap, Huffmann INF0: Time 4 - Heap, Huffmann Mathias Lohne mathialo Heap (prioritetskø) En heap (også kalt prioritetskø) er en type binært tre med noen spesielle struktur- og ordningskrav. Vi har to typer heap: min-

Detaljer

INF2220: Time 12 - Sortering

INF2220: Time 12 - Sortering INF0: Time 1 - Sortering Mathias Lohne mathialo Noen algoritmer Vi skal nå se på noen konkrete sorteringsalgoritmer. Gjennomgående i alle eksempler vil vi sortere tall etter tallverdi, men som diskutert

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning

Detaljer

Lars Vidar Magnusson

Lars Vidar Magnusson Binære Søketrær Lars Vidar Magnusson 14.2.2014 Kapittel 12 Binære Søketrær Søking Insetting Sletting Søketrær Søketrær er datastrukturer som støtter mange dynamiske sett operasjoner. Kan bli brukt både

Detaljer

Kap 9 Tre Sist oppdatert 15.03

Kap 9 Tre Sist oppdatert 15.03 Kap 9 Tre Sist oppdatert 15.03 Definere et tre som en datastruktur. Definere begreper knyttet til tre. Diskutere mulige implementasjoner av tre Analysere implementasjoner av tre som samlinger. Diskutere

Detaljer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informatikk Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39 963 Eksamensdato:

Detaljer

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Faglig kontakt under eksamen: Kjell Bratbergsengen Tlf.: 90617 185 / 7359 3439 Eksamensdato:

Detaljer

Kap 6.3: Symboltabellen Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 17. mars Dagens tema:

Kap 6.3: Symboltabellen Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 17. mars Dagens tema: Kap 6.3: Symboltabellen Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 17. mars 2015 Hvordan holde greie på: Dagens tema: Hvilke navn har en deklarasjon på «dette» sted i programmet? Hva

Detaljer

Parallelle og distribuerte databaser del III

Parallelle og distribuerte databaser del III UNIVERSITETET I OSLO Parallelle og distribuerte databaser del III NoSQL og alternative datamodeller Institutt for Informatikk INF3100 20.4.2015 Ellen Munthe-Kaas 1 NoSQL NoSQL er et paraplybegrep som omfatter

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær: TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer

Detaljer

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010 Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner, hashtabeller Kollisjonshåndtering

Detaljer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 7 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL KONTINUASJONSEKSAMEN I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER

Detaljer

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 15.mai 2018 Klokkeslett: 09:00 13:00 Sted: Tillatte hjelpemidler: Adm.bygget, rom K1.04 og B154 Ingen Type innføringsark (rute/linje):

Detaljer

Repetisjonsforelesning, SQL og utover

Repetisjonsforelesning, SQL og utover Repetisjonsforelesning, SQL og utover Evgenij Thorstensen V18 Evgenij Thorstensen Repetisjon V18 1 / 23 Temaer SQL, semantikk Databasearkitektur Spørringskompilering og optimisering Indekser Transaksjonshåndtering

Detaljer

Spørsmålskompilering. Basert på foiler av Hector Garcia-Molina

Spørsmålskompilering. Basert på foiler av Hector Garcia-Molina Spørsmålskompilering Basert på foiler av Hector Garcia-Molina Oversikt: Fra spørring til resultat SQL spørring parsere parseringstre konvertere resultat logiske spørreplaner (LSPer) anvende lover forbedrede

Detaljer

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn Binære trær Definisjon I et binært tre har hver node enten 0, 1 eller 2 barn Rekursiv definisjon: Et binært tre er enten tomt, eller: Består av en rotnode og to binære trær som kalles venstre subtre og

Detaljer

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Hashtabeller Lars Vidar Magnusson 12.2.2014 Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Dictionaries Mange applikasjoner trenger dynamiske sett som bare har dictionary oparsjonene

Detaljer

TDT4225 Lagring og behandling av store datamengder

TDT4225 Lagring og behandling av store datamengder Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen. Fredag 17. august 2012, kl. 0900-1300 Oppgaven er utarbeidet av faglærer Kjell Bratbergsengen. Kontaktperson under

Detaljer

INF1010 siste begreper før oblig 2

INF1010 siste begreper før oblig 2 INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av

Detaljer

Selv-balanserende søketrær

Selv-balanserende søketrær Selv-balanserende søketrær Georgy Maksimovich Adelson-Velsky Evgenii Mikhailovich Landis Søketrær og effektivitet O(log n) effektivitet av binære søketrær kan ikke garanteres Treet til venstre har høyde

Detaljer

Grunnleggende Datastrukturer

Grunnleggende Datastrukturer Grunnleggende Datastrukturer Lars Vidar Magnusson 7.2.2014 Kapittel 10 Stakker og køer Lenkede lister Pekere og objekter Trerepresentasjoner Datastrukturer Vi er i gang med tredje del av kurset hvor vi

Detaljer

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock Heap og prioritetskø Marjory the Trash Heap fra Fraggle Rock Binær heap En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle

Detaljer

Innføring i blokkjedeteknologi. Slobodan Petrović, NTNU Gjøvik 14/

Innføring i blokkjedeteknologi. Slobodan Petrović, NTNU Gjøvik 14/ Innføring i blokkjedeteknologi Slobodan Petrović, NTNU Gjøvik 14/09-2018 Innhold Innledning Grunnkomponenter av en blokkjede (blockchain) Kryptografiske hash funksjoner (spredefunksjon, avtrykkfunksjon)

Detaljer

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler

Detaljer

Oppgave 1 Datamodellering 22 %

Oppgave 1 Datamodellering 22 % Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL EKSAMENSOPPGAVE I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER Eksamensdato:

Detaljer

Integritetsregler i SQL. Primærnøkler

Integritetsregler i SQL. Primærnøkler Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler skranker på attributter og tupler Interrelasjonsskranker assertions Triggere INF212

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 6. juni 2013 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 11.2.2008 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan

Detaljer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige

Detaljer

Trær. En datastruktur (og abstrakt datatype ADT)

Trær. En datastruktur (og abstrakt datatype ADT) Trær Trær En datastruktur (og abstrakt datatype ADT) Trær En datastruktur (og abstrakt datatype ADT) En graf som 8lfredss8ller bestemte krav Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5

Detaljer

Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python

Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python 1 Enkle datastrukturer Lars Greger Nordland Hagen algdat@idi.ntnu.no Introduksjon til øvingsopplegget og gjennomgang av python 2 I dag Stack Kø (queue) Lenkede lister (linked list) Trær Binære søketrær

Detaljer

Integritetsregler i SQL

Integritetsregler i SQL UNIVERSITETET I OSLO Integritetsregler i SQL INF3100 8.2.2005 Ragnar Normann 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler

Detaljer

Hvordan databasesystemene kan hjelpe RAM-produsentene

Hvordan databasesystemene kan hjelpe RAM-produsentene Hvordan databasesystemene kan hjelpe RAM-produsentene Kreativ bruk av RAM i DBMSer Ragnar Normann Innhold Litt databasehistorie Litt UiO datahistorie Hvorfor (manglende) minnebruk i DBMSer er blitt et

Detaljer

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre: Heap Heap* En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger til venstre En heap er også et

Detaljer