...
Hva er datamodellering, og hvorfor driver vi med det?
Forskjellige typer/varianter av datamodellering
Database
Normalisert – “vanlige“ systemer (“operational systems“/”OLTP”)
Rettet mot
Hyppige, mindre oppdateringer i parallell
Enkel rapportering
Notasjoner
Entity-Relationship (“kråkeføtter“)
NIAM/ORM (utgangspunkt for FS og SODA)
Nivåer
Konseptuell
Logisk
Fysisk
Stjerne – datavarehus/analyse (“OLAP“)Dokument
Rettet mot
Tunge spørringer
Batch-oppdateringer
Begreper
Faktatabeller
Dimensjonstabeller
Dokumentdatabaser
Graf-databaser (Facebook, …)
Tekstbasert
XML, JSON…
GraphQL
…
Perspektiver på datamodellering
Dataintegritet
Gjenbrukbarhet
Ytelse
Enkelt å utvikle mot
Enkelt å forstå for forretningssiden
Enkelt å utvide
Top-down/bottom-up
Datamodellering er en egen greie – ikke bare fasilitering av utvikling
Historikk
To systemer som har overlevd i 30 år
Prinsipper
Generelle
Normalisering (atomiske verdier, én ting på ett sted)
Unngå sykler
Våre
Naturlige nøkler
Forretningsregler for dataintegritet i databasen
Deklarativt (constraints) der man kan
Imperativt (triggere) der man må
Generalisering/abstraksjon (semantiske forretningsregler i data fremfor i kode)
Kodetabeller (istf. f.eks. ENUMs)
...