- Skema-fri struktur, hvilket gør det nemt at ændre data uden at skulle ændre hele databasen
<!-- .element class="fragment" -->
- Let at skalere horisontalt ved at tilføje flere servere
<!-- .element class="fragment" -->
- Hurtig læse- og skriveadgang til dokumenter
<!-- .element class="fragment" -->
- Data kan repræsenteres på en måde, der er tættere på den måde applikationen bruger den på
<!-- .element class="fragment" -->
- Kan håndtere komplekse og hierarkiske datastrukturer
<!-- .element class="fragment" -->
- Mange document databaser tilbyder ikke fuld ACID-kompatibilitet, hvilket kan være en ulempe for visse applikationer
<!-- .element class="fragment" -->
- Forespørgselssprogene kan være mindre kraftfulde end SQL
<!-- .element class="fragment" -->
- Kan føre til datadubletter og inkonsistens, hvis ikke håndteret korrekt
<!-- .element class="fragment" -->
- Forskellige document databaser kan have forskellige funktioner og begrænsninger
<!-- .element class="fragment" -->
MongoDB - https://www.mongodb.com/docs/drivers/
CouchDB - https://github.com/danielwertheim/mycouch/wiki?ref=danielwertheim.se
Amazon DocumentDB - https://aws.amazon.com/sdk-for-net/
Firebase Firestore - Ikke direkte supportet https://firebase.google.com/docs/firestore
RavenDB - https://ravendb.net/articles/connecting-c-application-to-ravendb-cloud
Relationelle databaser
Document Databaser
- relationer og normalisering sikrer konsistens
<!-- .element class="fragment" -->
- strukturen formes efter applikationens brugsscenarier
<!-- .element class="fragment" -->
Relationelle databaser
Document databaser
Relationelle databaser
Document databaser
Relationelle databaser
Document databaser
Consistency, Availability, Partition tolerance
- Consistency: alle noder ser de samme data
<!-- .element class="fragment" -->
- Availability: systemet svarer altid
<!-- .element class="fragment" -->
- Partition tolerance: systemet overlever netværksnedbrud
<!-- .element class="fragment" -->
Relationelle databaser
Document databaser
Vælg RDBMS når
Vælg Document DB når
--
- Data gemmes i fleksible, JSON-lignende dokumenter (faktisk BSON), hvilket gør det nemt at repræsentere komplekse datastrukturer
<!-- .element class="fragment" -->
- Understøtter horisontal skalering gennem sharding, hvilket gør det muligt at håndtere store datamængder og høj trafik
<!-- .element class="fragment" -->
- Understøtter replikasæt for høj tilgængelighed og databeskyttelse
<!-- .element class="fragment" -->
- Understøtter komplekse forespørgsler, aggregeringer og indeksering
<!-- .element class="fragment" -->
- Gør det muligt at gemme og forespørge geospatial data effektivt
<!-- .element class="fragment" -->
- Tillader ændringer i dokumentstrukturen uden at skulle ændre hele databasen
<!-- .element class="fragment" -->
- [https://www.mongodb.com/cloud/atlas](https://www.mongodb.com/cloud/atlas)
<!-- .element class="fragment" -->
- Lad dig endelig inspirere af docker compose udleveret
<!-- .element class="fragment" -->
Fordele
Ulemper
Fordele
Ulemper