20TD02U_ForAlle_Blooms_Side_63_Database_Tooling - itnett/FTD02N GitHub Wiki

For å få en helhetlig forståelse av databaser er det viktig å sette seg inn i de sentrale begrepene, teoriene, modellene, prosessene og verktøyene som brukes innenfor feltet. Her vil vi dekke disse emnene ved hjelp av Blooms taksonomi, som tar deg fra grunnleggende forståelse til avansert bruk. Vi vil også inkludere logiske, programmatiske og praktiske eksempler på hvordan disse konseptene kan anvendes i ulike scenarier.

Videregående Skole Nivå

1. Kunnskap (Remembering)

Emne: Grunnleggende Begreper i Databaser

  • Logisk tilnærming: Start med å lære de grunnleggende begrepene som tabeller, rader, kolonner, primærnøkkel, fremmednøkkel, indeks, og normalisering.
  • Programmatisk tilnærming: Implementer en enkel database med en tabell og bruk en primærnøkkel.
  • Praktisk tilnærming: Opprett en tabell i en database, angi en primærnøkkel, og legg til noen rader med data.

Se skriptet her

2. Forståelse (Understanding)

Emne: Relasjonsmodellen og Normalisering

  • Logisk tilnærming: Forstå hvordan relasjonsmodellen fungerer og hvordan normalisering brukes for å unngå redundans og forbedre dataintegritet.
  • Programmatisk tilnærming: Implementer en relasjonsdatabase med flere tabeller som er normalisert til tredje normalform (3NF).
  • Praktisk tilnærming: Normaliser en tabell som inneholder redundante data ved å dele den opp i flere tabeller og definere relasjoner mellom dem.

Se skriptet her

Høyskole Nivå

3. Anvendelse (Applying)

Emne: Databaseteorier og Modeller

  • Logisk tilnærming: Lær om teorier og modeller som ACID-prinsippene (Atomicity, Consistency, Isolation, Durability) i relasjonsdatabaser, samt CAP-teoremet (Consistency, Availability, Partition tolerance) i distribuerte systemer.
  • Programmatisk tilnærming: Implementer en transaksjon i en database som følger ACID-prinsippene.
  • Praktisk tilnærming: Utfør en transaksjon i en SQL-database og observer hvordan ACID-prinsippene sikrer dataintegritet.

Se skriptet her

4. Analyse (Analyzing)

Emne: Prosesser for Optimalisering av Databaser

  • Logisk tilnærming: Forstå hvordan optimalisering av spørringer og indeksering kan forbedre ytelsen i en database.
  • Programmatisk tilnærming: Bruk EXPLAIN i SQL for å analysere spørringsplaner og identifisere flaskehalser.
  • Praktisk tilnærming: Optimaliser en spørring ved å analysere dens ytelse og legge til nødvendige indekser.

Se skriptet her

Universitets Nivå

5. Syntese (Synthesizing)

Emne: Design av Kompleks Databasestruktur

  • Logisk tilnærming: Kombiner kunnskap om relasjonsmodellen, normalisering, og indeksering for å designe en kompleks databasestruktur som støtter et større system eller applikasjon.
  • Programmatisk tilnærming: Implementer en databasestruktur som inkluderer flere tabeller, relasjoner, indekser, og eventuelt triggere og lagrede prosedyrer.
  • Praktisk tilnærming: Design og implementer en database for et komplett system, som for eksempel et e-handelssystem med tabeller for produkter, kunder, ordrer, og betalinger.

Se skriptet her

6. Evaluering (Evaluating)

Emne: Evaluering av Databaseløsninger

  • Logisk tilnærming: Lær hvordan du evaluerer ulike databaseløsninger for å avgjøre hvilken som best tilfredsstiller spesifikke krav, som ytelse, skalerbarhet og sikkerhet.
  • Programmatisk tilnærming: Bruk benchmarking-verktøy til å sammenligne ytelsen til forskjellige databaser under ulike belastninger.
  • Praktisk tilnærming: Utfør en evaluering av to ulike databaser, for eksempel MySQL og PostgreSQL, for å avgjøre hvilken som er best egnet for et bestemt brukstilfelle.

Se skriptet her

7. Skapelse (Creating)

Emne: Utvikling av Avanserte Databaseløsninger

  • Logisk tilnærming: Design og implementer avanserte databaseløsninger som inkluderer komplekse relasjoner, triggere, lagrede prosedyrer, og eventuelt distribuerte databaser.
  • Programmatisk tilnærming: Implementer en database med avanserte funksjoner som automatiserte triggere og lagrede prosedyrer for å håndtere komplekse forretningsregler.
  • Praktisk tilnærming: Design og implementer en database for et komplekst distribusjonssystem med høy tilgjengelighet og skalerbarhet.

Se skriptet her

Konklusjon

Denne fullstendige tilnærmingen til begreper, teorier, modeller, prosesser, og verktøy innenfor databaser dekker alle nivåer fra videregående skole til universitetsnivå, basert på Blooms taksonomi. Ved å bruke praktiske, logiske og programmatiske eksempler, vil du utvikle en dyp forståelse av hvordan databaser fungerer, hvordan de kan designes og optimaliseres, og hvordan avanserte funksjoner kan implementeres for å møte spesifikke krav i ulike systemer.


Denne veiledningen er designet for studenter, utviklere, og IT-fagfolk som ønsker en grundig forståelse av de grunnleggende og avanserte konseptene innenfor databaser, og hvordan disse kan brukes til å utvikle robuste og effektive databaser.

Database tooling refererer til verktøyene og programmene som brukes til å administrere, utvikle, feilsøke, overvåke og optimalisere databaser. Disse verktøyene er avgjørende for å effektivisere arbeidsflyten, sikre dataintegritet, og optimalisere ytelsen. Vi skal dekke "Database Tooling" ved å bruke Blooms taksonomi for å ta deg fra grunnleggende forståelse til avansert bruk. Denne tilnærmingen inkluderer logiske, programmatiske, og praktiske eksempler på hvordan forskjellige databaseverktøy kan brukes i ulike scenarier.

Videregående Skole Nivå

1. Kunnskap (Remembering)

Emne: Grunnleggende Databaseverktøy

  • Logisk tilnærming: Start med å lære om de mest grunnleggende databaseverktøyene som brukes til SQL-spørring og grunnleggende databaseadministrasjon, som MySQL Workbench, phpMyAdmin, og pgAdmin.
  • Programmatisk tilnærming: Bruk MySQL Workbench for å opprette en enkel tabell og utføre grunnleggende spørringer.
  • Praktisk tilnærming: Installer og bruk MySQL Workbench til å koble til en lokal database, opprette en tabell, og sette inn data.
# Trinn for å bruke MySQL Workbench:
1. Åpne MySQL Workbench.
2. Koble til din lokale MySQL-server.
3. Opprett en ny database ved å kjøre SQL-kommandoer i Workbench.
4. Opprett en tabell og sett inn noen rader med data.

2. Forståelse (Understanding)

Emne: SQL-Editorer og Database-Utviklingsverktøy

  • Logisk tilnærming: Forstå hvordan SQL-editorer og utviklingsverktøy som DBeaver, HeidiSQL, og DataGrip fungerer, og hvordan de kan brukes til å administrere og utvikle databaser effektivt.
  • Programmatisk tilnærming: Bruk DBeaver til å utføre mer avanserte spørringer, som å bli med i flere tabeller og analysere data.
  • Praktisk tilnærming: Installer DBeaver, koble til en database, og bruk den til å lage spørringer som kobler sammen flere tabeller og utfører komplekse operasjoner.

Se skriptet her

Høyskole Nivå

3. Anvendelse (Applying)

Emne: Overvåkings- og Optimaliseringsverktøy

  • Logisk tilnærming: Lær om overvåkings- og optimaliseringsverktøy som New Relic, Datadog, og Percona Monitoring and Management (PMM) som brukes til å overvåke ytelsen til databaser og identifisere flaskehalser.
  • Programmatisk tilnærming: Bruk PMM til å overvåke en MySQL-database og identifisere ytelsesproblemer.
  • Praktisk tilnærming: Installer PMM og sett opp overvåking for en MySQL-database, analyser ytelsesdataene, og identifiser potensielle optimaliseringer.

Se skriptet her

4. Analyse (Analyzing)

Emne: Feilsøkingsverktøy og Prosesser

  • Logisk tilnærming: Forstå hvordan feilsøkingsverktøy som Query Profiler, EXPLAIN, og debugging-funksjoner i DataGrip og DBeaver kan brukes til å identifisere og løse problemer i databaser.
  • Programmatisk tilnærming: Bruk Query Profiler i DataGrip for å analysere ytelsen til en spørring og identifisere flaskehalser.
  • Praktisk tilnærming: Kjør en kompleks SQL-spørring i DataGrip, bruk Query Profiler til å analysere spørringsplanen, og optimaliser spørringen basert på funnene.

Se skriptet her

Universitets Nivå

5. Syntese (Synthesizing)

Emne: Integrasjon og Automatisering med CI/CD Verktøy

  • Logisk tilnærming: Lær hvordan databaseverktøy kan integreres i CI/CD-rørledninger for å automatisere databaseutvikling og distribusjon ved hjelp av verktøy som Jenkins, GitLab CI, og Liquibase.
  • Programmatisk tilnærming: Implementer et CI/CD-rørledning for en databaseapplikasjon som automatisk tester, bygger og distribuerer databaseendringer.
  • Praktisk tilnærming: Sett opp Jenkins eller GitLab CI for å kjøre automatiserte tester og oppdateringer til en database ved hjelp av Liquibase-skript.

Se skriptet her

6. Evaluering (Evaluating)

Emne: Evaluering av Databaseverktøy for Ytelse og Sikkerhet

  • Logisk tilnærming: Lær hvordan du evaluerer forskjellige databaseverktøy basert på deres evne til å opprettholde sikkerhet, ytelse og skalerbarhet i store systemer.
  • Programmatisk tilnærming: Bruk benchmarking-verktøy som sysbench eller pgbench for å evaluere ytelsen til databasen under bruk av forskjellige verktøy og teknikker.
  • Praktisk tilnærming: Gjennomfør en ytelsesevaluering av et databasesystem ved å bruke forskjellige verktøy og sammenligne resultatene.

Se skriptet her

7. Skapelse (Creating)

Emne: Design og Implementering av Skreddersydde Databaseverktøy

  • Logisk tilnærming: Design og implementer skreddersydde verktøy som automatiserer spesifikke oppgaver innen databaseadministrasjon, for eksempel backup-skript, monitoring-agenter, eller migreringsverktøy.
  • Programmatisk tilnærming: Lag et skript eller et program som utfører automatiserte backups eller databaseovervåking tilpasset din organisasjons behov.
  • Praktisk tilnærming: Implementer et backup- og gjenopprettingsverktøy ved hjelp av Python eller Bash som kan brukes til å sikre regelmessig datalagring og rask gjenoppretting.

Se skriptet her

Konklusjon

Denne fullstendige tilnærmingen til database tooling dekker alle nivåer fra videregående skole til universitetsnivå, basert på Blooms taksonomi. Ved å bruke praktiske, logiske og programmatiske eksempler, vil du utvikle en dyp forståelse av hvordan forskjellige databaseverktøy fungerer, hvordan de kan brukes til å forbedre utviklings-, administrasjons- og feilsøkingsprosesser, og hvordan du kan integrere dem i større systemer for å oppnå optimal ytelse og sikkerhet.


Denne veiledningen er designet for studenter, utviklere og databaseadministratorer som ønsker en grundig forståelse av de verktøyene som brukes i databaseadministrasjon, og hvordan disse kan anvendes til å forbedre drift, utvikling og sikkerhet i databasesystemer.