Nutanix_Home_Lab_HLD_15_HLD_v6 - itnett/FTD02H-N GitHub Wiki

For å oppnå læringsutbyttet innen databasetemaet ved å bruke Nutanix-laben din, kan vi sette opp et database- og SQL-miljø som lar deg praktisere alt fra grunnleggende databaseteori til avanserte emner som datavisualisering og sikkerhet. Her er en detaljert plan som inkluderer oppsett av infrastrukturen, scenarioer for læring, og praktiske øvelser.

1. Oppsett av Databasemiljøet i Nutanix Lab

A. Infrastruktur

1. VM-er og Containere:

  • VLAN 120 (Database Network):
    • DB-SERVER-01 (Linux VM): Hoveddatabase-server, kjører MySQL eller PostgreSQL for praktiske øvelser innen SQL, normalisering, og brukeradministrasjon.
    • VISUAL-SERVER-01 (Linux VM): Dedikert til datavisualisering, kjører verktøy som Grafana, Power BI (med gateway), eller Tableau.
    • BACKUP-SERVER-01 (Linux VM): Dedikert til backup og gjenoppretting, kjører verktøy som Bacula eller pgBackRest (for PostgreSQL).

2. Containere:

  • Container 1: Docker container for MySQL/PostgreSQL for små databaser eller spesifikke prosjektbehov.
  • Container 2: Docker container for datavisualiseringsverktøy som Superset eller Grafana.

B. Nettverkskonfigurasjon

  • IP-adresseplan: 10.0.120.0/24
  • Gateway IP: 10.0.120.1
  • DNS IP: 10.0.120.2
  • DHCP Range: 10.0.120.100 - 10.0.120.200
  • Statisk IP Range: 10.0.120.10 - 10.0.120.50 (For servere og viktige tjenester)
  • Containere: 10.0.120.50 - 10.0.120.70 (For Docker-kontainere)

2. Scenarioer og Øvelser

A. Opprette og Bruke Databaser

Scenario: Opprett en MySQL eller PostgreSQL database på DB-SERVER-01 og utfør grunnleggende operasjoner.

Instruksjoner:

  1. Installer MySQL eller PostgreSQL på DB-SERVER-01:

    • Konfigurer database-serveren, opprett en ny database, og opprett tabeller med ulike datatyper.
    • Implementer grunnleggende SQL-spørringer (SELECT, INSERT, UPDATE, DELETE).
  2. Opprett en enkel database for en skoleadministrasjon:

    • Opprett tabeller for studenter, kurs, lærere, og påmeldinger.
    • Utfør CRUD-operasjoner på disse tabellene.

Læringsmål:

  • Forstå grunnleggende databaseteori og implementere det i praksis.
  • Lære å bruke SQL for å manipulere og hente data fra databaser.

B. Normalisering og Datamodellering

Scenario: Normaliser en eksisterende database, og lag en datamodell ved hjelp av ER-diagram.

Instruksjoner:

  1. Analyser en eksisterende database:

    • Identifiser unormaliserte tabeller og dataredundans.
    • Normaliser tabellene til 3NF (Tredje Normalform).
  2. Lag et ER-diagram for databasen:

    • Bruk verktøy som MySQL Workbench eller dbdiagram.io.
    • Definer entiteter, relasjoner, og nøkler (primær- og fremmednøkler).

Læringsmål:

  • Forstå og implementere normalisering i databaser.
  • Lære hvordan man modellerer databaser med ER-diagrammer.

C. Brukeradministrasjon og Sikkerhet

Scenario: Sett opp brukeradministrasjon og implementer sikkerhetstiltak i MySQL/PostgreSQL.

Instruksjoner:

  1. Opprett brukerroller i MySQL/PostgreSQL:

    • Opprett flere brukere med ulike tilgangsnivåer (f.eks., admin, read-only).
    • Konfigurer tilgangskontroll for spesifikke tabeller eller databaser.
  2. Implementer sikkerhetstiltak:

    • Aktiver SSL/TLS for å sikre kommunikasjonen mellom klienter og serveren.
    • Implementer kryptering av sensitive data som lagres i databasen.

Læringsmål:

  • Forstå hvordan man administrerer brukere og tilgang i en database.
  • Implementere sikkerhetsmekanismer for å beskytte data.

D. Indeksering, Logging, og Backup/Restore

Scenario: Optimaliser ytelsen av databasen ved å implementere indekser, og sikre dataene ved hjelp av logging og regelmessig backup.

Instruksjoner:

  1. Opprett indekser på tabeller:

    • Identifiser kolonner som ofte brukes i WHERE-klasuler, og legg til indekser.
    • Analyser forbedringer i spørringsytelsen før og etter indeksering.
  2. Konfigurer logging:

    • Aktiver logging i MySQL/PostgreSQL for å overvåke spørringer og endringer.
    • Analyser loggene for å identifisere potensielle ytelsesproblemer.
  3. Utfør backup og restore:

    • Bruk mysqldump eller pg_dump til å ta sikkerhetskopier av databasen.
    • Simuler en katastrofe ved å slette data og gjenopprette fra en backup.

Læringsmål:

  • Lære å optimalisere databasens ytelse ved hjelp av indeksering.
  • Forstå viktigheten av logging og hvordan det brukes i feilretting og overvåking.
  • Implementere backup- og gjenopprettingsstrategier for å sikre data.

E. Datavisualisering

Scenario: Visualiser data fra en database ved hjelp av datavisualiseringsverktøy.

Instruksjoner:

  1. Installer og konfigurer Grafana eller Superset på VISUAL-SERVER-01:

    • Koble verktøyet til MySQL/PostgreSQL-databasen.
    • Opprett dashboards som visualiserer viktige data (f.eks. studentregistreringer, kursgjennomføring).
  2. Lag interaktive grafer og diagrammer:

    • Bruk ulike typer visualiseringer (linjediagrammer, stolpediagrammer, heatmaps).
    • Legg til filtre og parametere for å gjøre visualiseringene mer dynamiske.

Læringsmål:

  • Lære hvordan man visualiserer data for å oppnå innsikt og formidle informasjon.
  • Forstå hvordan man integrerer databasemiljøer med datavisualiseringsverktøy.

3. Dokumentasjon og Refleksjon

Scenario: Dokumenter databaseprosjektene dine og reflekter over læringsutbyttet.

  • Verktøy: Bruk Markdown eller tradisjonelle tekstbehandlingsverktøy.
  • Innhold: Beskriv datamodeller, normalisering, sikkerhetstiltak, og backup-strategier du har implementert.

Læringsmål:

  • Lære å dokumentere databaseprosjekter på en profesjonell måte.
  • Reflektere over egen læring og identifisere områder for videre utvikling.

4. Samarbeid og Prosjektarbeid

Scenario: Samarbeid med andre for å utvikle en komplett databaseløsning fra modellering til datavisualisering.

Instruksjoner:

  1. Del prosjektet opp i oppgaver:

    • Noen kan jobbe på datamodellering og normalisering, andre på brukeradministrasjon og sikkerhet, og noen på datavisualisering.
    • Bruk Git/GitHub for versjonskontroll og samarbeid.
  2. Integrer alle komponentene:

    • Sett sammen datamodellen, sikkerhetstiltakene, og visualiseringen i en fungerende løsning.
    • Test løsningen som en helhet, og utfør nødvendige justeringer.

Læringsmål:

  • Lære å jobbe effektivt i grupper på databaseprosjekter.
  • Forstå hvordan man integrerer ulike komponenter i en databaseløsning.

Oppsummering:

Denne planen gir deg en omfattende tilnærming til å lære om databaser i din Nutanix-lab. Den dekker alt fra grunnleggende databaseoppsett til avanserte emner som sikkerhet, datavisualisering, og backup-strategier. Gjennom praktiske scenarioer og oppgaver vil du utvikle en sterk forståelse for databaseadministrasjon og SQL-programmering, samtidig som du lærer å arbeide effektivt i gruppeprosjekter.