Workshop-format
...
Case?
Hva må være på plass for å gjennomføre workshop:
verktøy (er det mulig å bruke sql developer i nettleser?)
dbeaver?
Ansvarlig: Geir tester sqldeveloper. Kai gjør et søk på alternativerdatabase med data
Vi kan finne en filmdatabase på nett kanskje
https://www.w3resource.com/sql-exercises/movie-database-exercise/joins-exercises-on-movie-database.php#google_vignette
- Finne eksempeldatabase og se om det er mulig å bruke den i vårt valgte verktøy (Geir)
- trekke ut modellen i valgt verktøy (Kai)
- lage en pakke som folk kan installere (Daniel)
en for mac, unix og microsoftoppgaver - hva skal vi få de til å gjøre
Ansvarlig: KaiOrganisere: Kalle inn til møter - lage dokumentasjon.
Ansvarlig: Kari
“Grunnmur” eller GraphQL (presentasjonslag), eller begge deler
Hvor tett på basen? Eller mer abstrakt på “logisk” datanivå?
Quiz, s.u. - passe på ikke for mye forlesning, passe mye overkommelig interaktivt med deltakerne
Hvem lager den mest effektive sqlen?
...
Hva er datamodellering, og hvorfor driver vi med det?
Dataintegritet/-kvalitet
Begrepsavklaring
- Diskutere/kommunisere
Tap av dette kan bli vanvittig dyrt, og kanskje ikke en gang mulig, å rette opp i ettertid
Begrepsavklaring
Kommunikasjon ml. utviklere/arkitekter/ikke-teknikere om hvordan en del av verden “ser ut“
Ytelse (det er en myte at normaliserte modeller gir dårlig ytelse)
Datamodellering er en “egen greie“, ikke bare fasilitering av applikasjonsutvikling
Beskriver forretningsregler/en del av verden bedriften befatter seg med – på “kanonisk” form
Også til fremtidig bruk vi ikke aner noe om nå
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
Man klarer ikke forutsi alle bruksområder for dataene i fremtiden
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)
...