...
Hva er datamodellering, og hvorfor driver vi med det?
Dataintegritet/-kvalitet
Begrepsavklaring
Diskutere/kommunisere hvordan en del av verden “ser ut“
Ytelse
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“)
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
Vedlikeholde integritet (stoppe ugyldige oppdateringer)
Imperativt (triggere) der man må
Vedlikeholde integritet som ikke kan uttrykkes deklarativt
Trigge andre endringer (kan også gjelde tekniske ting som logging o.l.)
Generalisering/abstraksjon (semantiske forretningsregler i data fremfor i kode)
Kodetabeller (istf. f.eks. ENUMs)
...