Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Workshop-format

...

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å alternativer

  • database 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 microsoft

  • oppgaver - hva skal vi få de til å gjøre
    Ansvarlig: Kai

  • Organisere: 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

      • 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)

...