Parallelle og distribuerte databaser del III

Like dokumenter
Parallelle og distribuerte databaser del II

Parallelle og distribuerte databaser del III

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

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

INF Algoritmer og datastrukturer

INF1300 Introduksjon til databaser

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

IN2090 Introduksjon til databaser

Databasesystemer, oversikt

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

INF Algoritmer og datastrukturer

Parallelle og distribuerte databaser del I

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

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

INF2220: Forelesning 3

Oppdateringsanomalier Normalformer

INF1020 Algoritmer og datastrukturer

Relasjonsdatabasedesign

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

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

To RDF or not to RDF Fagdag om Noark 5 og RDF

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

Dagens tema: Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Oppsummering. Thomas Lohne Aanes Thomas Amble

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

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

Informasjonsbærende representasjoner

OM DATABASER DATABASESYSTEMER

Effektiv eksekvering av spørsmål

INF3100 Databasesystemer

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

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

SIF8010 ALGORITMER OG DATASTRUKTURER

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

Informasjonssystemer, DBMSer og databaser

Parallelle og distribuerte databaser Del I

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

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

INF Algoritmer og datastrukturer

INF2220: Forelesning 2

INF Algoritmer og datastrukturer

INF1300 Introduksjon til databaser

Repetisjon: Normalformer og SQL

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

INF Algoritmer og datastrukturer

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

Lars Vidar Magnusson

INF2220: Forelesning 2

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

INF212 - Databaseteori. Kursinnhold

LO118D Forelesning 5 (DM)

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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

INF Algoritmer og datastrukturer

Innhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer

Relasjonsdatabasedesign

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

Informasjonsorganisering. Information Architecture Peter Morville & Jorge Arango Kapittel 4, 5 & 6

Relasjonsdatabasedesign

Hashing: Håndtering av kollisjoner

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

Databaser & objektorientering.

IN Algoritmer og datastrukturer

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

INF1300 Introduksjon til databaser

Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg

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

INF Algoritmer og datastrukturer

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Effektiv eksekvering av spørsmål

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Disjunkte mengder ADT

Spørsmålskompilering del 1

Parallelle og distribuerte databaser del II

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

Kompleksitet og Beregnbarhet

Relasjonsdatabasedesign

Relasjonsdatabasedesign. Ekstramateriale: Normalformer utover 4NF (ikke pensum)

Øving 5: Transaksjonshåndtering, logging og normalisering

UNIVERSITETET I OSLO

Systemfeil og logging

Datastrukturer. Kevin Thon. 25 april 2017

Lars Vidar Magnusson

KONTINUASJONSEKSAMEN

LO118D Forelesning 9 (DM)

Repetisjonsforelesning, SQL og utover

INF Algoritmer og datastrukturer

Transkript:

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 en rekke ulike typer teknikker og databaser. Typiske egenskaper ved NoSQL-databaser: Datamodell avviker fra relasjonsmodellen Intet fast (eksplisitt) skjema enklere å videreutvikle databasen Enorme mengder data store maskinclustere Open-source INF3100 20.4.2015 Ellen Munthe-Kaas 2

Hvorfor alternative datamodeller Tre ulike grunner til at alternative datamodeller kan være aktuelt: Big data: Behov for støtte til håndtering av virkelig store datavolumer. Bruk av maskinclustere Relasjonsdatabaser er ikke designet for dette formålet Ønsker datastrukturer som er lette å håndtere for databasesystemer på clustere CAP-teoremet; må veie konsistens mot responstid Informasjonsutveksling: Behov for større fleksibilitet i datastrukturene ved utveksling av informasjon mellom systemer Rikere datastrukturer Behov for mindre rigid skjema Grafer: Situasjoner hvor relasjonsmodellen er dårlig egnet til å representere virksomhetsområdet Data som er naturlig å beskrive som grafer Kompleks datastruktur der kompleksiteten i det vesentlige ligger i et stort antall relasjoner mellom elementene; relasjonsmodellen gir utstrakt bruk av dyre joiner INF3100 20.4.2015 Ellen Munthe-Kaas 3

Datamodeller under NoSQL Aggregatorienterte modeller: Et aggregat er i denne forbindelsen en samling av data som utgjør en naturlig enhet, og hvor spørringer og transaksjoner i all hovedsak er begrenset til ett og ett aggregat. Hvert aggregat lagres som en enhet. Databasesystemet benytter hashing for å bestemme hvor aggregatene skal lagres Databasesystemet tilbyr typisk bare ACID-egenskaper pr. aggregat; ACID-egenskaper på tvers av aggregater støttes ikke. Transaksjoner eller søk som ikke passer med den valgte aggregatstrukturen, støttes i liten grad av systemet Grafmodeller: Data er strukturert i form av entiteter (noder) og kanter som reflekterer hvordan entitetene forholder seg til hverandre. INF3100 20.4.2015 Ellen Munthe-Kaas 4

Aggregatorienterte modeller Key-value stores: Hvert dataelement er på formen (k,v) der k er en nøkkel og v en verdi. Søk: Oppgi k, finn tilhørende v. Document databases: Hvert «dokument» består av en nestet struktur som inneholder navn-verdi-par. Til hvert dokument hører en nøkkel. Søk: Finn verdi for et gitt navn ved å angi en nøkkel og hvor i den tilhørende strukturen navn-verdiparet befinner seg. Column family databases: Data er strukturert i form av «kolonner» (tidsstemplede navn-verdi-par). Samhørende kolonner knyttes sammen til en kolonnefamilie med en nøkkel («radnøkkel»). Søk: Angi kolonnefamilienavn og radnøkkel for å finne tilhørende kolonner. INF3100 20.4.2015 Ellen Munthe-Kaas 5

Key-value stores Datastruktur: Par på formen (k,v) der k er en nøkkel og v en verdi. Hver verdi utgjør et aggregat og lagres som en enhet Søk: Oppgi k, finn tilhørende v. Applikasjonene må selv håndtere (vite om og utnytte) eventuell aggregatstruktur Bare én måte å søke på (en og en nøkkelverdi) Ordered key-value stores tillater søk på intervaller av nøkkelverdier Skjemaløs Hver enkelt verdi kan ha en hvilken som helst kompleks struktur Databasesystemet har ingen innsikt i eller tilgang til disse strukturene INF3100 20.4.2015 Ellen Munthe-Kaas 6

Dokumentdatabaser Datastruktur: Par på formen (k,v) der k er en nøkkel og v er et dokument, dvs. en nestet (vanligvis treliknende) struktur som inneholder navn-verdi-par Søk: Hvert dokument utgjør et aggregat og lagres som en enhet Kan søke på nøkkelverdier kombinert med felter i dokumentene Kan hente ut deler av et aggregat Kan bygge indekser basert på felter i dokumentene Skjemaløs Hvert enkelt dokument kan ha en vilkårlig nestet struktur (innenfor den klassen av strukturer som databasesystemet tillater) uten at dette må deklareres i forkant Databasesystemet kan traversere strukturene Strukturene kan endres dynamisk INF3100 20.4.2015 Ellen Munthe-Kaas 7

Key-value stores versus dokumentdatabaser Glidende overgang mellom de to betegnelsene Noen databasesystemer omtales som key-value store i enkelte sammenhenger og som dokumentdatabaser i andre Noen key-value stores kan suppleres med metadata som databasesystemet benytter til å få tilgang til/ innsikt i strukturene og utnytter til å snevre inn søket Dokumentdatabaser er key-value stores hvis man ikke er interessert i å søke på strukturene, men bare ønsker å få tak i fullstendige dokumenter INF3100 20.4.2015 Ellen Munthe-Kaas 8

Eksempel på dokumentdatabase INF3100 20.4.2015 Ellen Munthe-Kaas 9

Eksempel på key-value store INF3100 20.4.2015 Ellen Munthe-Kaas 10

Datastruktur: Søk: Kolonnefamiliedatabaser I NB! Begrepsbruken blant fagfolkene i området er ikke konsistent! I denne presentasjonen er begrepene som følger: En kolonne er et tidsstemplet navn-verdi-par (n,v) t der v er en atomær verdi. En kolonnefamilie er et par (k,cc) der k er en radnøkkel og cc en mengde av samhørende kolonner. En samling av samhørende kolonnefamilier gis et felles kolonnefamilienavn. Hver kolonnefamilie utgjør et aggregat og lagres som en enhet Angi kolonnefamilienavn og radnøkkel eller intervall av radnøkler Kan hente ut en delmengde av kolonnene i en kolonnefamilie ved å angi som del av søket kolonnenavn og/eller et intervall av tidsstempler INF3100 20.4.2015 Ellen Munthe-Kaas 11

Kolonnefamiliedatabaser II Skjemaløs: Stor frihet i utformingen av hvert enkelt aggregat Hver kolonne kan ha et fritt valgt kolonnenavn Kolonnenavnet kan selv brukes som data: La f.eks. navnet være en dato; tilhørende verdi kan være nøkkelen til en relatert kolonnefamilie Hver kolonnefamilie kan inneholde et vilkårlig antall kolonner Kan dynamisk legge til eller fjerne kolonner fra en kolonnefamilie INF3100 20.4.2015 Ellen Munthe-Kaas 12

Byggeklosser i en kolonnefamiliedatabase 13

Eksempel: Markedsplass 14

Dokumentdatabaser versus kolonnefamiliedatabaser Dokumentdatabaser tillater generelle treliknende strukturer med vikårlig dybde; kolonnefamiliedatabaser har tre til fire nivåer (kolonnefamiliesamling-kolonnefamilie-kolonne eller kolonnefamiliesamling-kolonnefamilie-superkolonne-kolonne) Større frihet i valg av struktur gir større fleksibilitet hva gjelder å representere virksomhetsområdets modell direkte i databasen Rikere struktur tillater en rikere klasse av spørringer Enklere struktur gir mer effektive søk Begge kan bygge indekser på utvalgte navn i strukturene for å effektivisere søk INF3100 20.4.2015 Ellen Munthe-Kaas 15

Grafmodeller Data som er naturlig å beskrive som grafer Hver node har en indre struktur som angir nodens egenskaper Kantene angir relasjoner mellom nodene Kantene kan på samme måte som nodene være informasjonsbærere; som et minimum har de et navn eller en type som reflekterer hva slags noderelasjoner de representerer Kan gjøres skjemaløst, dvs. må ikke spesifisere i forkant nodenes indre struktur eller hvilke typer relasjoner de kan ha seg imellom Nye noder og kanter (med nye indre strukturer) kan introduseres on-the-fly Eksisterende noder og kanter kan utvides med nye egenskaper Søk: Angi hvordan grafen skal navigeres Grafen traverseres direkte via pekere til nabonoder (ingen indeksering, ingen joinoperasjoner) INF3100 20.4.2015 Ellen Munthe-Kaas 16

Eksempel på grafmodell http://vowl.visualdataweb.org/v2/ INF3100 20.4.2015 Ellen Munthe-Kaas 17

Grafmodeller versus andre datamodeller Grafmodeller vs. relasjonsmodellen: Traversering av grafen er svært mye billigere enn join; benytter direkte pekere til nabonoder Arbeidsbelastning forflyttes fra queryeksekvering til innsetting og vedlikehold av data Grafmodeller vs. aggregatorienterte modeller: Grafmodeller er ikke nødvendigvis designet med tanke på clustere; krever tildels monolittiske systemer Konsistens kan ivaretas på tvers av noder i grafen Spørrespråk følger helt andre prinsipper enn i aggregatorienterte modeller INF3100 20.4.2015 Ellen Munthe-Kaas 18

Hvilken NoSQL-datamodell? Big data: Aggregatorienterte modeller (key-value stores, dokumentdatabaser, kolonnefamiliedatabaser) Informasjonsutveksling: Dokumentdatabaser Grafer: Grafmodeller INF3100 20.4.2015 Ellen Munthe-Kaas 19

Introduksjon til NoSQL Martin Fowler har en god introduksjon til NoSQL (fra GOTO Aarhus Conference 2012): http://www.youtube.com/watch?v=qi_g07c_q5i (Varighet: 55 min.) Temaer: Historikken bak NoSQL Datamodeller i NoSQL Distribusjonsmodeller (sharding, replikering) ACID vs. BASE CAP-teoremet Når og hvorfor bruke NoSQL INF3100 20.4.2015 Ellen Munthe-Kaas 20