SlideShare a Scribd company logo
1 of 41
Polyglot Persistence

      Ole-Martin Mørk
Relasjonsdatabaser?
nosql-databaser?
Hvorfor så få?

• Ukjent og skremmende teknologi?
• Kunden er motvillig?
• Ser ikke fordelene med nosql?
Hvorfor database?

• Lagre data
• Relasjonssøk
• Lookup
• Fulltekstsøk
• Lage rapporter
Hvorfor RDBMS?

• Lagre data
• Relasjonssøk
• Lookup
• Fulltekstsøk
• Lage rapporter
Hvorfor RDBMS?

• Lagre data
• Relasjonssøk
• Lookup
• Fulltekstsøk
• Lage rapporter
Object
Relational
 Mapping
RDBMS   OOP
Hvorfor RDBMS?

• Lagre data
• Relasjonssøk
• Lookup
• Fulltekstsøk
• Lage rapporter
Hva med dette?

• Lagre data
• Relasjonssøk
• Lookup
• Fulltekstsøk
• Lage rapporter
Ett system

         System            Queries



                           Fulltext

Object
             Event store
store
                           Reports
Ett system

            System            Queries
                              Graph



                              Fulltext
                              Lucene

 Object
Key/Value       Event store
                   jdbm
  store
                              Reports
                              mySQL
Do you read me?
Polyglot Persistence

I'm confident to say that if you’re starting a
new strategic enterprise application you
should no longer be assuming that your
persistence should be relational.
                                   Martin Fowler
Polyglot Persistence
CAP theorem
CAP theorem
               RDBMS Cassandra Redis

Consistency
Availability
Partition
Eventual Consistency
Eventuelt konsistens
Omsider konsistens
Eventual Consistency

  First rule of Eventual Consistency
          is to not talk about
         Eventual Consistency

                         Greg Young
Bank-konto
 Saldo: 1000 kr
Bank-konto
           Saldo: 1000 kr


-500 kr
  ok?
Bank-konto
               Saldo: 1000 kr


-500 kr
  ok?     OK
Bank-konto
               Saldo: 1000 kr


-500 kr                         -800 kr
  ok?     OK                      ok?
Bank-konto
               Saldo: 1000 kr


-500 kr                          -800 kr
  ok?     OK                OK     ok?
Bank-konto
 Saldo: 1000 kr
Bank-konto
          Saldo: 1000 kr


 Ta ut
500 kr
Bank-konto
              Saldo: 500 kr


 Ta ut
500 kr   OK
Bank-konto
              Saldo: 500 kr


 Ta ut                        Ta ut
500 kr   OK                   800 kr
Bank-konto
              Saldo: -300 kr


 Ta ut                         Ta ut
500 kr   OK               OK   800 kr
nosql fikser ORM


• Rene objekter
• Relasjoner slik som du ønsker dem
Hastighet
Requests pr second
Requests pr second
60000


50000


40000


30000


20000


10000


    0
        SET   GET   LPUSH   LPOP   SADD   SPOP   LRANGE
Replication

Load balancing

   Failover

  Recovery
Oppsummering
Takk for meg

• martinfowler.com
• qi4j.org
• nosqltapes.com
• bit.ly/nosql-landscape

                           Ole-Martin Mørk

More Related Content

Viewers also liked

Europe Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.euEurope Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.euZN Consulting
 
Hyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweetsHyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweetsZN Consulting
 
Hyperlearning and getting started with MOOC
Hyperlearning and getting started with MOOCHyperlearning and getting started with MOOC
Hyperlearning and getting started with MOOCZN Consulting
 
Patterns for key-value stores
Patterns for key-value storesPatterns for key-value stores
Patterns for key-value storesOle-Martin Mørk
 
Collaborative Filtering in Map/Reduce
Collaborative Filtering in Map/ReduceCollaborative Filtering in Map/Reduce
Collaborative Filtering in Map/ReduceOle-Martin Mørk
 
Genetically modified organism
Genetically modified organismGenetically modified organism
Genetically modified organismerikatrinidad
 

Viewers also liked (11)

Presentation of Redis
Presentation of RedisPresentation of Redis
Presentation of Redis
 
Hele butikken i skyen
Hele butikken i skyenHele butikken i skyen
Hele butikken i skyen
 
Europe Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.euEurope Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.eu
 
Hyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweetsHyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweets
 
Evolusjonen av PaaS
Evolusjonen av PaaSEvolusjonen av PaaS
Evolusjonen av PaaS
 
Hyperlearning and getting started with MOOC
Hyperlearning and getting started with MOOCHyperlearning and getting started with MOOC
Hyperlearning and getting started with MOOC
 
Problem mind map assignment 3
Problem mind map assignment 3Problem mind map assignment 3
Problem mind map assignment 3
 
Graph search with Neo4j
Graph search with Neo4jGraph search with Neo4j
Graph search with Neo4j
 
Patterns for key-value stores
Patterns for key-value storesPatterns for key-value stores
Patterns for key-value stores
 
Collaborative Filtering in Map/Reduce
Collaborative Filtering in Map/ReduceCollaborative Filtering in Map/Reduce
Collaborative Filtering in Map/Reduce
 
Genetically modified organism
Genetically modified organismGenetically modified organism
Genetically modified organism
 

Polyglot persistence

Editor's Notes

  1. Polyglot persistence\n
  2. Hvor mange bruker relasjonsdatabaser i prosjektene sitt?\n
  3. Hvem bruker nosql-databaser?\n
  4. Hvorfor er det slik?\n\nnosql eksistert siden 70-tallet, dbm\n\nBEKK kjenner generelt ikke teknologien godt nok. Vi tør kanskje ikke jobbe hardt for å få bruke det.\nGjelder både salg og tech\nNoen har brukt det på fritidsprosjekter og noe kompetansebygging\nOfte kan arkitekter og dba-er være vanskelig å overbevise.\n\nMå ha kunnskap og motivasjon\n
  5. Hvorfor bruker vi egentlig databaser?\nLagre data\nGjenfinne data via identifikator\nGjenfinne data gjennom søk\nLage rapporter\n
  6. Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  7. Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  8. Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  9. Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  10. Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  11. ORM er vanskelig\nØdelegger ytelse\n\n
  12. OOP fra Venus\nDatabaser fra Mars \n\nSikkert hørt om “Impedance mismatch”?\n\nDe passer ikke sammen, og ødelegger for hver andre.\n\nVi gjør vårt aller beste for at det skal fungere, men av og til er det greit å skille lag\n
  13. Hvis vi går tilbake til denne\n
  14. Hva med å benytte database-teknologi som er optimalisert for det det skal brukes til?\n\n
  15. Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  16. Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  17. Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  18. Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  19. Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  20. \n
  21. Martin Fowler sier\n\nI'm confident to say that if you’re starting a new strategic enterprise application you should no longer be assuming that your persistence should be relational.\n\n
  22. Martin Fowler\nBruk riktig teknologi til riktig problem\n\nUtnytt de fordelene hver database gir\n\nLagre forskjellig data i forskjellige databaser\n\n\n
  23. “Bare” programmeringsspråk\n\nVeldig viktig for utviklere og hastigheten i prosjektet, men ikke viktig for bedriften!\n
  24. Et mye større skifte\n\nPåvirker hvordan bedriften organiserer og finner igjen sine data!\n\nI mange sammenhenger, sine viktigste assets\n
  25. Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  26. Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  27. Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  28. Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  29. Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  30. Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  31. Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  32. CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  33. CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  34. CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  35. CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  36. CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  37. CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  38. Ta med?\n
  39. Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  40. Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  41. Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  42. Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  43. Spør heller kunden om det er greit med 1 sekund venting på oppdaterte data\n\nHa atomiske operasjoner\noppdater data, ikke overskriv\n\nog dataene vil bli korrekte... til slutt\n\n\n
  44. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  45. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  46. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  47. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  48. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  49. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  50. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  51. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  52. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  53. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  54. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  55. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  56. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  57. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  58. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  59. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  60. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  61. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  62. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  63. Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  64. og hvis du absolutt må bruke ORM-lignende verktøy, så finnes det også\n
  65. \n
  66. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  67. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  68. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  69. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  70. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  71. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  72. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  73. Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  74. \n
  75. Det er ikke lett\nMan mister gamle utfordringer, men de blir erstattet med nye.\n\nPolitikk, DBA mister kontroll\nArkitekten vil ikke ha enda flere systemer\nMye gammel legacy-data som er viktige\n\nMen begynner vi å bevege oss i denne retningen så vil vi bli bedre på data\n- Får bedre domenemodeller\n- Får mye bedre måter å finne igjen data på\n- Blir flinkere til å levere det kunden vil ha\n\nRelasjonsdatabasen er ikke det viktigste for kunden\n
  76. Det var jeg ville si\n\nLykke til\n\nTakk for meg\n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  86. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  87. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  88. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  89. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  90. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  91. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  92. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  93. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  94. Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n