Initial commit: IHK Ausbildung materials
This commit is contained in:
79
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-00-Übersicht.md
Normal file
79
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-00-Übersicht.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# LF 1: Das Unternehmen und die eigene Rolle im Betrieb beschreiben
|
||||
|
||||
> **1. Ausbildungsjahr** | Zeitrichtwert: **40 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, ihr Unternehmen hinsichtlich seiner Wertschöpfungskette zu präsentieren und ihre eigene Rolle im Betrieb zu beschreiben.
|
||||
|
||||
---
|
||||
|
||||
## Themenübersicht
|
||||
|
||||
1. [[LF1-01-Unternehmensziele|Unternehmensziele und Leitbild]]
|
||||
2. [[LF1-02-Marktstruktur|Marktstruktur und Wettbewerb]]
|
||||
3. [[LF1-03-Rechtsformen|Rechtsformen]]
|
||||
4. [[LF1-04-Organisation|Organisationsstruktur]]
|
||||
5. [[LF1-05-Wertschoepfungskette|Wertschöpfungskette]]
|
||||
6. [[LF1-06-Eigene-Rolle|Eigene Rolle im Betrieb]]
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Die ökonomischen, ökologischen und sozialen Zielsetzungen deines Unternehmens erläutern
|
||||
- [ ] Die Marktstruktur in deiner Branche analysieren
|
||||
- [ ] Das Unternehmen als komplexes System mit Markt- und Kundenbeziehungen einordnen
|
||||
- [ ] Die Wertschöpfungskette beschreiben und die eigene Rolle darin darstellen
|
||||
- [ ] Die Organisationsstruktur und Rechtsform des Unternehmens erklären
|
||||
- [ ] Den eigenen Handlungs- und Entscheidungsspielraum (Vollmachten) beschreiben
|
||||
|
||||
---
|
||||
|
||||
## Kompetenzbereiche
|
||||
|
||||
### Fachkompetenz
|
||||
- Unternehmensziele und Leitbild verstehen
|
||||
- Wertschöpfungskette analysieren
|
||||
- Rechtsformen unterscheiden (GmbH, UG, OHAG, KG, AG, etc.)
|
||||
- Organisationsstrukturen interpretieren
|
||||
|
||||
### Selbstkompetenz
|
||||
- Eigene Rolle reflektieren
|
||||
- Stärken und Entwicklungsbereiche identifizieren
|
||||
- Perspektiven für die berufliche Entwicklung aufzeigen
|
||||
|
||||
### Sozialkompetenz
|
||||
- Im Team präsentieren
|
||||
- Kommunikationsregeln anwenden
|
||||
- Feedback geben und annehmen
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen (vollständige Handlung)
|
||||
|
||||
1. **Informieren**: Unternehmensleitbild, Ziele, Struktur erkunden
|
||||
2. **Planen**: Präsentation vorbereiten, Inhalte strukturieren
|
||||
3. **Durchführen**: Präsentation erstellen und vortragen
|
||||
4. **Überprüfen**: Qualität des Produkts bewerten
|
||||
5. **Reflektieren**: Eigene Rolle und Handeln bewerten
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Basis für die gesamte Ausbildung
|
||||
- Wird in Teil 1 der Abschlussprüfung vorausgesetzt
|
||||
- Grundlagen für WISO-Prüfung
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-Arbeitsplätze-ausstatten|Nachher: LF 2 - Arbeitsplätze nach Kundenwunsch ausstatten]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO - Wirtschaft und Soziales]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
@@ -0,0 +1,85 @@
|
||||
# 1.1 Unternehmensziele und Leitbild
|
||||
|
||||
## Ökonomische Ziele
|
||||
|
||||
| Ziel | Beschreibung | Beispiel |
|
||||
|------|-------------|----------|
|
||||
| Gewinnmaximierung | Erzielung maximalen Gewinns | 10% Umsatzrendite |
|
||||
| Umsatzwachstum | Steigerung des Umsatzes | +15% jährlich |
|
||||
| Marktanteil | Vergrößerung des Marktanteils | 25% Marktanteil |
|
||||
| Liquidität | Sicherstellung der Zahlungsfähigkeit | positiver Cashflow |
|
||||
|
||||
## Ökologische Ziele
|
||||
|
||||
- **Umweltschutz**: Reduktion von CO2-Emissionen
|
||||
- **Nachhaltigkeit**: Nutzung erneuerbarer Energien
|
||||
- **Ressourceneffizienz**: Weniger Verbrauch pro Einheit
|
||||
- **Recycling**: Kreislaufwirtschaft fördern
|
||||
|
||||
## Soziale Ziele
|
||||
|
||||
- **Mitarbeiterzufriedenheit**: Gutes Betriebsklima
|
||||
- **Work-Life-Balance**: Flexible Arbeitszeiten
|
||||
- **Ausbildung**: Ausbildungsplätze anbieten
|
||||
- **Gesellschaftliches Engagement**: CSR-Projekte
|
||||
|
||||
---
|
||||
|
||||
## Unternehmensleitbild
|
||||
|
||||
### Was ist ein Leitbild?
|
||||
|
||||
Das Leitbild ist eine schriftliche Grundsatzerklärung, die die **Identität** und **philosophie** des Unternehmens darstellt.
|
||||
|
||||
### Elemente eines Leitbildes
|
||||
|
||||
```
|
||||
Leitbild-Komponenten
|
||||
├── Vision (langfristiges Ziel)
|
||||
├── Mission (Auftrag/Zweck)
|
||||
├── Werte (Grundsätze)
|
||||
└── Ziele (konkret, messbar)
|
||||
```
|
||||
|
||||
### Beispiel-Leitbild
|
||||
|
||||
> *"Unser Unternehmen bietet innovative IT-Lösungen, die das Leben unserer Kunden vereinfachen. Wir stehen für Qualität, Nachhaltigkeit und partnerschaftliche Zusammenarbeit."*
|
||||
|
||||
---
|
||||
|
||||
## SMART-Ziele
|
||||
|
||||
Ziele sollten nach der SMART-Formel formuliert werden:
|
||||
|
||||
| Buchstabe | Bedeutung | Beispiel |
|
||||
|-----------|----------|----------|
|
||||
| **S**pezifisch | Klar definiert | "Umsatz steigern" |
|
||||
| **M**essbar | Quantifizierbar | "um 20%" |
|
||||
| **A**ttraktiv | Erstrebenswert | für alle Beteiligten |
|
||||
| **R**ealistisch | Erreichbar | im Rahmen der Möglichkeiten |
|
||||
| **T**erminiert | Mit Zeitpunkt | "bis 31.12.2025" |
|
||||
|
||||
---
|
||||
|
||||
## Übung
|
||||
|
||||
Formuliere ein SMART-Ziel für deinen Ausbildungsbetrieb:
|
||||
|
||||
```markdown
|
||||
Spezifisch: _______________
|
||||
Messbar: _______________
|
||||
Attraktiv: _______________
|
||||
Realistisch: _______________
|
||||
Terminiert: _______________
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF1-02-Marktstruktur|Nächstes Thema: Marktstruktur]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Unternehmensziele]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,98 @@
|
||||
# 1.2 Marktstruktur und Wettbewerb
|
||||
|
||||
## Marktanalyse
|
||||
|
||||
### Marktsegmente
|
||||
|
||||
Ein Markt besteht aus verschiedenen Segmenten:
|
||||
|
||||
```
|
||||
Markt
|
||||
├── Geografische Segmente
|
||||
│ ├── Regional
|
||||
│ ├── National
|
||||
│ └── International
|
||||
├── Produktbezogene Segmente
|
||||
│ ├── Premium
|
||||
│ ├── Standard
|
||||
│ └── Discount
|
||||
└── Kundenbezogene Segmente
|
||||
├── B2B (Business to Business)
|
||||
├── B2C (Business to Consumer)
|
||||
└── B2G (Business to Government)
|
||||
```
|
||||
|
||||
### Wettbewerbsanalyse (5-Kräfte-Modell nach Porter)
|
||||
|
||||
```
|
||||
┌─────────────────────┐
|
||||
│ Verhandlungsmacht │
|
||||
│ der Lieferanten │
|
||||
└──────────┬──────────┘
|
||||
│
|
||||
┌──────────────┼──────────────┐
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
┌─────────┐ ┌──────────┐ ┌─────────┐
|
||||
│ Bedrohung│ │ STATUS │ │ Bedrohung│
|
||||
│ durch │ │ QUO │ │ durch │
|
||||
│ neue │ │ │ │ Substit- │
|
||||
│ Konkurrenz│ │ Konkurrenz│ │ ute │
|
||||
└────┬─────┘ └────┬─────┘ └────┬─────┘
|
||||
│ │ │
|
||||
└──────────────┼──────────────┘
|
||||
│
|
||||
┌────────┴────────┐
|
||||
│ Verhandlungsmacht│
|
||||
│ der Kunden │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
## Wettbewerbsstrategien
|
||||
|
||||
| Strategie | Beschreibung | Beispiel |
|
||||
|----------|-------------|----------|
|
||||
| **Kostenführerschaft** | Günstigstes Angebot | Aldi, Lidl |
|
||||
| **Differenzierung** | Einzigartiges Produkt | Apple |
|
||||
| **Fokussierung** | Nische bedienen | Luxusmarken |
|
||||
|
||||
---
|
||||
|
||||
## Kundenbeziehungen
|
||||
|
||||
### Kundensegmente
|
||||
|
||||
```
|
||||
Kunden
|
||||
├── Bestandskunden (treu, regelmäßig)
|
||||
├── Neukunden (gewinnen)
|
||||
├── Potenzielle Kunden (ansprechen)
|
||||
└── Verlorene Kunden (zurückgewinnen)
|
||||
```
|
||||
|
||||
### Kundenbindung
|
||||
|
||||
- **Qualität**: Hohe Produktqualität
|
||||
- **Service**: Guter Kundenservice
|
||||
- **Preis**: Faire Preise
|
||||
- **Kommunikation**: Regelmäßiger Kontakt
|
||||
|
||||
---
|
||||
|
||||
## Übung: Marktanalyse für deinen Betrieb
|
||||
|
||||
1. Wer sind die Hauptwettbewerber?
|
||||
2. Welche Produkte/Dienstleistungen bieten sie?
|
||||
3. Was sind deren Stärken und Schwächen?
|
||||
4. Wie positioniert sich dein Unternehmen?
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF1-03-Rechtsformen|Nächstes Thema: Rechtsformen]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Marketing]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
109
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-03-Rechtsformen.md
Normal file
109
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-03-Rechtsformen.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# 1.3 Rechtsformen
|
||||
|
||||
## Übersicht der Rechtsformen
|
||||
|
||||
### Privatrechtliche Rechtsformen
|
||||
|
||||
```
|
||||
Rechtsformen
|
||||
├── Einzelunternehmen
|
||||
│
|
||||
├── Personengesellschaften
|
||||
│ ├── OHG (Offene Handelsgesellschaft)
|
||||
│ ├── KG (Kommanditgesellschaft)
|
||||
│ └── GbR (Gesellschaft bürgerlichen Rechts)
|
||||
│
|
||||
└── Kapitalgesellschaften
|
||||
├── GmbH (Gesellschaft mit beschränkter Haftung)
|
||||
├── UG (haftungsbeschränkt)
|
||||
├── AG (Aktiengesellschaft)
|
||||
└── GmbH & Co. KG
|
||||
```
|
||||
|
||||
## Im Detail
|
||||
|
||||
### Einzelunternehmen
|
||||
|
||||
| Merkmal | Beschreibung |
|
||||
|---------|--------------|
|
||||
| Gründer | Natürliche Person |
|
||||
| Haftung | Unbegrenzt, persönlich |
|
||||
| Mindestkapital | Keines |
|
||||
| Gewinn | Einkommensteuer |
|
||||
|
||||
### GmbH (Gesellschaft mit beschränkter Haftung)
|
||||
|
||||
| Merkmal | Beschreibung |
|
||||
|---------|--------------|
|
||||
| Gründer | 1+ Personen (natürlich/juristisch) |
|
||||
| Haftung | Auf Gesellschaftsvermögen beschränkt |
|
||||
| Mindestkapital | 25.000€ (bei Gründung) |
|
||||
| Organe | Geschäftsführer, Gesellschafterversammlung |
|
||||
|
||||
### UG (haftungsbeschränkt)
|
||||
|
||||
| Merkmal | Beschreibung |
|
||||
|---------|--------------|
|
||||
| Besonderheit | "Mini-GmbH" |
|
||||
| Mindestkapital | 1€ |
|
||||
| Pflicht | 25% Gewinn in Rücklage bis 25.000€ |
|
||||
|
||||
### AG (Aktiengesellschaft)
|
||||
|
||||
| Merkmal | Beschreibung |
|
||||
|---------|--------------|
|
||||
| Mindestkapital | 50.000€ |
|
||||
| Organe | Vorstand, Aufsichtsrat, Hauptversammlung |
|
||||
| Aktien | Anteile frei handelbar |
|
||||
|
||||
### OHG (Offene Handelsgesellschaft)
|
||||
|
||||
| Merkmal | Beschreibung |
|
||||
|---------|--------------|
|
||||
| Gründer | 2+ Personen |
|
||||
| Haftung | Alle Gesellschafter unbegrenzt |
|
||||
| Vertretung | Jeder Gesellschafter vertritt |
|
||||
|
||||
### GbR (Gesellschaft bürgerlichen Rechts)
|
||||
|
||||
| Merkmal | Beschreibung |
|
||||
|---------|--------------|
|
||||
| Gründer | 2+ Personen |
|
||||
| Zweck | Beliebig (nicht gewerblich) |
|
||||
| Haftung | Alle Gesellschafter persönlich |
|
||||
|
||||
---
|
||||
|
||||
## Vergleichstabelle
|
||||
|
||||
| Rechtsform | Mindestkapital | Haftung | Steuer |
|
||||
|-----------|----------------|---------|--------|
|
||||
| Einzelunternehmen | - | Unbegrenzt | ESt |
|
||||
| OHG | - | Persönlich | ESt |
|
||||
| KG | - | KG: unbegrenzt, K: begrenzt | ESt |
|
||||
| GmbH | 25.000€ | Begrenzt | KSt + GewSt |
|
||||
| UG | 1€ | Begrenzt | KSt + GewSt |
|
||||
| AG | 50.000€ | Begrenzt | KSt + GewSt |
|
||||
|
||||
---
|
||||
|
||||
## Wahl der Rechtsform
|
||||
|
||||
### Kriterien
|
||||
|
||||
1. **Haftung**: Persönliche Haftung vermeiden?
|
||||
2. **Kapital**: Wie viel Geld ist verfügbar?
|
||||
3. **Steuern**: Welche Steuerbelastung?
|
||||
4. **Flexibilität**: Wie einfach Änderungen?
|
||||
5. **Image**: Welche Rechtsform passt?
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF1-04-Organisation|Nächstes Thema: Organisationsstruktur]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Rechtsformen]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
113
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-04-Organisation.md
Normal file
113
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-04-Organisation.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# 1.4 Organisationsstruktur
|
||||
|
||||
## Aufbauorganisation
|
||||
|
||||
### Organigramm
|
||||
|
||||
```
|
||||
Organigramm - Beispiel IT-Unternehmen
|
||||
|
||||
┌─────────────────┐
|
||||
│ Geschäftsführer │
|
||||
└────────┬────────┘
|
||||
│
|
||||
┌────────────┼────────────┐
|
||||
│ │ │
|
||||
┌───▼───┐ ┌────▼────┐ ┌───▼───┐
|
||||
│ Leiter│ │ Leiter │ │ Leiter│
|
||||
│Vertrieb│ │Entwickl.│ │Support│
|
||||
└───┬───┘ └────┬───┘ └───┬───┘
|
||||
│ │ │
|
||||
┌───▼───┐ ┌────▼────┐ ┌───▼───┐
|
||||
│Team 1 │ │Team 2 │ │Team 3 │
|
||||
│ │ │ │ │ │
|
||||
└───────┘ └─────────┘ └───────┘
|
||||
```
|
||||
|
||||
## Organisationsformen
|
||||
|
||||
### Funktionale Organisation
|
||||
|
||||
```
|
||||
┌──────────┐
|
||||
│ CEO │
|
||||
└────┬─────┘
|
||||
┌──────┴──────┬──────┐
|
||||
│ │ │
|
||||
┌────▼────┐ ┌────▼──┐ ┌─▼─────┐
|
||||
│Produktion│ │Vertrieb│ │Finanzen│
|
||||
└─────────┘ └───────┘ └───────┘
|
||||
```
|
||||
|
||||
### Hierarchische Ebenen
|
||||
|
||||
| Ebene | Titel | Aufgabe |
|
||||
|-------|-------|----------|
|
||||
| 1 | Geschäftsführung | Strategie, Führung |
|
||||
| 2 | Abteilungsleitung | Operative Führung |
|
||||
| 3 | Teamleitung | Teamkoordination |
|
||||
| 4 | Mitarbeiter | Aufgabenerfüllung |
|
||||
|
||||
---
|
||||
|
||||
## Ablauforganisation
|
||||
|
||||
### Geschäftsprozesse
|
||||
|
||||
```
|
||||
Prozessmodell
|
||||
|
||||
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
||||
│ Input │ → │ Aktivität│ → │ Aktivität│ → │ Output │
|
||||
└─────────┘ └─────────┘ └─────────┘ └─────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ Entscheidung │
|
||||
└─────────────┘
|
||||
```
|
||||
|
||||
### Prozessarten
|
||||
|
||||
| Prozess | Beschreibung |
|
||||
|---------|-------------|
|
||||
| ** Kernprozesse** | Wertschöpfend (z.B. Produktion) |
|
||||
| **Supportprozesse** | Unterstützend (z.B. IT) |
|
||||
| **Managementprozesse** | Steuernd (z.B. Controlling) |
|
||||
|
||||
---
|
||||
|
||||
## Schnittstellen
|
||||
|
||||
### Horizontale Schnittstellen
|
||||
|
||||
- Zwischen Abteilungen
|
||||
- Gleiche Hierarchieebene
|
||||
|
||||
### Vertikale Schnittstellen
|
||||
|
||||
- Zwischen Hierarchieebenen
|
||||
- Vorgesetzte ↔ Mitarbeiter
|
||||
|
||||
---
|
||||
|
||||
## Organigramm erstellen
|
||||
|
||||
### Schritte
|
||||
|
||||
1. Alle Mitarbeiter erfassen
|
||||
2. Hierarchieebenen definieren
|
||||
3. Abteilungen bilden
|
||||
4. Zuständigkeiten zuweisen
|
||||
5. Visualisieren
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF1-05-Wertschoepfungskette|Nächstes Thema: Wertschöpfungskette]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Unternehmen]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,118 @@
|
||||
# 1.5 Wertschöpfungskette
|
||||
|
||||
## Definition
|
||||
|
||||
Die Wertschöpfungskette beschreibt alle Aktivitäten, die ein Unternehmen durchführt, um aus **Input** (Rohstoffe, Informationen) ein **Output** (Produkt/Dienstleistung) zu erstellen.
|
||||
|
||||
## Klassische Wertschöpfungskette (Porter)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ WERTSCHÖPFUNGSKETTE │
|
||||
├───────────────────────┬─────────────────────────────────────┤
|
||||
│ UNTERSTÜTZUNG │ HAUPTAKTIVITÄTEN │
|
||||
├───────────────────────┼─────────────────────────────────────┤
|
||||
│ │ │
|
||||
│ 1. Beschaffung │ 5. Marketing & Vertrieb │
|
||||
│ (Einkauf) │ (Kunden gewinnen) │
|
||||
│ │ │
|
||||
├───────────────────────┼─────────────────────────────────────┤
|
||||
│ 2. Personal- │ 4. Absatz / Vertrieb │
|
||||
│ verwaltung │ (verkaufen) │
|
||||
│ │ │
|
||||
├───────────────────────┼─────────────────────────────────────┤
|
||||
│ 3. Technologie │ 6. Service │
|
||||
│ (IT, F&E) │ (Kundendienst) │
|
||||
│ │ │
|
||||
├───────────────────────┴─────────────────────────────────────┤
|
||||
│ │
|
||||
│ 7. Produktion / Leistungserstellung │
|
||||
│ (Herstellung der Produkte/Dienstleistungen) │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Wertschöpfung im IT-Bereich
|
||||
|
||||
```
|
||||
IT-Wertschöpfungskette
|
||||
|
||||
┌─────────────┐
|
||||
│ ANALYSE │ ← Kundenanforderungen verstehen
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ DESIGN │ ← Lösungskonzepte entwickeln
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ ENTWICKLUNG │ ← Software programmieren
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ TESTING │ ← Qualität sichern
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ ROLLOUT │ ← Auslieferung & Installation
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ SUPPORT │ ← Wartung & Betreuung
|
||||
└─────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Wertschöpfungskette analysieren
|
||||
|
||||
### Fragen zur Analyse
|
||||
|
||||
1. Welche Aktivitäten erzeugen den größten Wert?
|
||||
2. Welche Aktivitäten kosten am meisten?
|
||||
3. Wo können wir effizienter werden?
|
||||
4. Welche Aktivitäten können wir auslagern?
|
||||
|
||||
---
|
||||
|
||||
## Eigene Rolle in der Wertschöpfung
|
||||
|
||||
### Einordnung
|
||||
|
||||
| Position | Beitrag zur Wertschöpfung |
|
||||
|----------|---------------------------|
|
||||
| Support | Hilft Kunden, Produkt zu nutzen |
|
||||
| Entwicklung | Erstellt das Produkt |
|
||||
| Vertrieb | Bringt Produkt zum Kunden |
|
||||
| Beratung | Schafft Mehrwert |
|
||||
|
||||
---
|
||||
|
||||
## Übung
|
||||
|
||||
Zeichne die Wertschöpfungskette deines Ausbildungsbetriebes:
|
||||
|
||||
```
|
||||
1. _______________
|
||||
2. _______________
|
||||
3. _______________
|
||||
4. _______________
|
||||
5. _______________
|
||||
6. _______________
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF1-06-Eigene-Rolle|Nächstes Thema: Eigene Rolle]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Wertschöpfung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
105
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-06-Eigene-Rolle.md
Normal file
105
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-06-Eigene-Rolle.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# 1.6 Eigene Rolle im Betrieb
|
||||
|
||||
## Ausbildungsvertrag
|
||||
|
||||
### Rechte und Pfflichten
|
||||
|
||||
**Auszubildende/r hat Recht auf:**
|
||||
- Ausbildung nach Ausbildungsplan
|
||||
- Vergütung (Ausbildungsentgelt)
|
||||
- Urlaub (mindestens 24 Werktage/Jahr)
|
||||
- Berufsschulunterricht
|
||||
- Nachhilfe bei Problemen
|
||||
|
||||
**Auszubildende/r ist verpflichtet:**
|
||||
- Lernpflicht (Berufsschule, Betrieb)
|
||||
- Sorgfaltspflicht
|
||||
- Schweigepflicht
|
||||
- Betriebsordnung einhalten
|
||||
|
||||
---
|
||||
|
||||
## Handlungsspielraum
|
||||
|
||||
### Vollmachten
|
||||
|
||||
| Bereich | Typische Grenzen |
|
||||
|---------|------------------|
|
||||
| Einkauf | Bis 100€ ohne Genehmigung |
|
||||
| Support | Grundlegende Supporttätigkeiten |
|
||||
| Konfiguration | Standardkonfigurationen |
|
||||
| Kundenkontakt | Nur unter Aufsicht |
|
||||
|
||||
### Entscheidungsspielraum
|
||||
|
||||
```
|
||||
Entscheidungsspielraum
|
||||
├── Kein Spielraum
|
||||
│ └── Kritische Entscheidungen (immer Rücksprache)
|
||||
│
|
||||
├── Begrenzter Spielraum
|
||||
│ └── Standardentscheidungen (innerhalb von Regeln)
|
||||
│
|
||||
└── Freier Spielraum
|
||||
└── Eigenverantwortliche Entscheidungen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Kommunikation
|
||||
|
||||
### Ansprechpartner
|
||||
|
||||
| Rolle | Aufgabe |
|
||||
|-------|---------|
|
||||
| Ausbilder | Betreuung im Betrieb |
|
||||
| Berufsschullehrer | Unterricht |
|
||||
| Azubi-Vertreter | Interessenvertretung |
|
||||
| Betriebsrat | Mitarbeitervertretung |
|
||||
|
||||
### Kommunikationswege
|
||||
|
||||
- **Formell**: Meetings, E-Mail, Tickets
|
||||
- **Informell**: Pausengespräch, Slack, Teams
|
||||
|
||||
---
|
||||
|
||||
## Fort- und Weiterbildung
|
||||
|
||||
### Während der Ausbildung
|
||||
|
||||
- Berufsschule
|
||||
- Überbetriebliche Lehrgänge
|
||||
- innerbetriebliche Schulungen
|
||||
|
||||
### Nach der Ausbildung
|
||||
|
||||
- Weiterbildung zum/zur:
|
||||
- Fachwirt/in
|
||||
- Techniker/in
|
||||
- Meister/in
|
||||
- Bachelor/Master
|
||||
|
||||
---
|
||||
|
||||
## Reflexion
|
||||
|
||||
### Selbsteinschätzung
|
||||
|
||||
Beantworte für dich:
|
||||
|
||||
1. Was sind meine Stärken?
|
||||
2. Was muss ich noch lernen?
|
||||
3. Welche Ziele habe ich für die Ausbildung?
|
||||
4. Wo sehe ich mich nach der Ausbildung?
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-Arbeitsplätze-ausstatten|Nächstes Lernfeld: LF 2]]
|
||||
- [[Prüfungsübersicht|Prüfungsvorbereitung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
121
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-Notizen.md
Normal file
121
1-Ausbildungsjahr/LF1-Unternehmen-Rolle/LF1-Notizen.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# LF 1: Das Unternehmen und die eigene Rolle im Betrieb beschreiben
|
||||
|
||||
> **1. Ausbildungsjahr** | Zeitrichtwert: **40 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, ihr Unternehmen hinsichtlich seiner Wertschöpfungskette zu präsentieren und ihre eigene Rolle im Betrieb zu beschreiben.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Die ökonomischen, ökologischen und sozialen Zielsetzungen deines Unternehmens erläutern
|
||||
- [ ] Die Marktstruktur in deiner Branche analysieren
|
||||
- [ ] Das Unternehmen als komplexes System mit Markt- und Kundenbeziehungen einordnen
|
||||
- [ ] Die Wertschöpfungskette beschreiben und die eigene Rolle darin darstellen
|
||||
- [ ] Die Organisationsstruktur und Rechtsform des Unternehmens erklären
|
||||
- [ ] Den eigenen Handlungs- und Entscheidungsspielraum (Vollmachten) beschreiben
|
||||
- [ ] Fort- und Weiterbildungsmaßnahmen im Unternehmen darstellen
|
||||
- [ ] Adressatengerechte multimediale Präsentationen erstellen
|
||||
|
||||
---
|
||||
|
||||
## Kompetenzbereiche
|
||||
|
||||
### Fachkompetenz
|
||||
- Unternehmensziele und Leitbild verstehen
|
||||
- Wertschöpfungskette analysieren
|
||||
- Rechtsformen unterscheiden (GmbH, UG, OHG, KG, AG, etc.)
|
||||
- Organisationsstrukturen interpretieren
|
||||
|
||||
### Selbstkompetenz
|
||||
- Eigene Rolle reflektieren
|
||||
- Stärken und Entwicklungsbereiche identifizieren
|
||||
- Perspektiven für die berufliche Entwicklung aufzeigen
|
||||
|
||||
### Sozialkompetenz
|
||||
- Im Team präsentieren
|
||||
- Kommunikationsregeln anwenden
|
||||
- Feedback geben und annehmen
|
||||
|
||||
---
|
||||
|
||||
## Zentrale Themen
|
||||
|
||||
### 1. Das Unternehmen kennenlernen
|
||||
```
|
||||
Unternehmensleitbild → Marktstruktur → Rechtsform →
|
||||
Organisationsstruktur → Wertschöpfungskette → Rolle im Betrieb
|
||||
```
|
||||
|
||||
### 2. Unternehmensziele
|
||||
- **Ökonomische Ziele**: Gewinn, Umsatz, Marktanteil
|
||||
- **Ökologische Ziele**: Umweltschutz, Nachhaltigkeit, Ressourceneffizienz
|
||||
- **Soziale Ziele**: Mitarbeiterzufriedenheit, Ausbildung, Gesellschaftliches Engagement
|
||||
|
||||
### 3. Rechtsformen (Überblick)
|
||||
| Rechtsform | Merkmale | Haftung |
|
||||
|------------|----------|---------|
|
||||
| GmbH | Juristische Person, min. 25.000€ Stammkapital | Gesellschaftsvermögen |
|
||||
| UG (haftungsbeschränkt) | Juristische Person, min. 1€ Stammkapital | Gesellschaftsvermögen |
|
||||
| OHG | Natürliche Personen | Persönlich, unbegrenzt |
|
||||
| KG | Mind. ein Komplementär, min. ein Kommanditist | Komplementär: unbegrenzt |
|
||||
| AG | Juristische Person, min. 50.000€ Grundkapital | Gesellschaftsvermögen |
|
||||
| Einzelunternehmen | Natürliche Person | Persönlich, unbegrenzt |
|
||||
|
||||
### 4. Organisationsstruktur
|
||||
- **Aufbauorganisation**: Hierarchie, Abteilungen, Zuständigkeiten
|
||||
- **Ablauforganisation**: Prozesse, Workflows, Schnittstellen
|
||||
- **Organigramme**: Visualisierung der Struktur
|
||||
|
||||
### 5. Wertschöpfungskette
|
||||
```
|
||||
Beschaffung → Produktion → Vertrieb → Marketing →
|
||||
Kundenservice → Buchhaltung/Controlling
|
||||
```
|
||||
|
||||
### 6. Eigene Rolle im Betrieb
|
||||
- Ausbildungsvertrag und Rechte/Pflichten
|
||||
- Handlungsspielraum und Vollmachten
|
||||
- Kommunikationswege
|
||||
- Ansprechpartner und Hierarchie
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen (vollständige Handlung)
|
||||
|
||||
1. **Informieren**: Unternehmensleitbild, Ziele, Struktur erkunden
|
||||
2. **Planen**: Präsentation vorbereiten, Inhalte strukturieren
|
||||
3. **Durchführen**: Präsentation erstellen und vortragen
|
||||
4. **Überprüfen**: Qualität des Produkts bewerten
|
||||
5. **Reflektieren**: Eigene Rolle und Handeln bewerten
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Basis für die gesamte Ausbildung
|
||||
- Wird in Teil 1 der Abschlussprüfung vorausgesetzt
|
||||
- Grundlagen für WISO-Prüfung
|
||||
|
||||
---
|
||||
|
||||
## Tipps für die Prüfung
|
||||
|
||||
1. **Mündliche Prüfung**: Übe Präsentationen vorzustellen
|
||||
2. **Unternehmensanalyse**: Kenntnisse über deinen eigenen Ausbildungsbetrieb
|
||||
3. **Rechtsformen**: Unterschiede können in WISO abgefragt werden
|
||||
4. **Wertschöpfung**: Verstehe die Prozesse im Unternehmen
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-Arbeitsplätze-ausstatten|Anschließend: LF 2 - Arbeitsplätze nach Kundenwunsch ausstatten]]
|
||||
- [[Wirtschafts-Sozialkunde|WISO - Wirtschaft und Soziales]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
@@ -0,0 +1,66 @@
|
||||
# LF 2: Arbeitsplätze nach Kundenwunsch ausstatten
|
||||
|
||||
> **1. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, die Ausstattung eines Arbeitsplatzes nach Kundenwunsch zu dimensionieren, anzubieten, zu beschaffen und den Arbeitsplatz an die Kunden zu übergeben.
|
||||
|
||||
---
|
||||
|
||||
## Themenübersicht
|
||||
|
||||
1. [[LF2-01-Kundenanforderungen|Kundenanforderungen aufnehmen]]
|
||||
2. [[LF2-02-Hardwareauswahl|Hardware auswählen]]
|
||||
3. [[LF2-03-Softwareauswahl|Software auswählen]]
|
||||
4. [[LF2-04-Nutzwertanalyse|Nutzwertanalyse durchführen]]
|
||||
5. [[LF2-05-Angebot|Kalkulation und Angebot]]
|
||||
6. [[LF2-06-Beschaffung|Beschaffung und Inbetriebnahme]]
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Kundenwünsche für Arbeitsplatz-Ausstattung aufnehmen und Anforderungen ermitteln
|
||||
- [ ] Auswahlkriterien für Hard- und Software ableiten
|
||||
- [ ] Technische Merkmale von Produkten vergleichen (Nutzwertanalyse)
|
||||
- [ ] Angebote erstellen und Preise kalkulieren
|
||||
- [ ] Beschaffungsprozess organisieren
|
||||
- [ ] IT-Arbeitsplatz konfigurieren und in Betrieb nehmen
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen
|
||||
|
||||
```
|
||||
1. Kundenwunsch aufnehmen
|
||||
↓
|
||||
2. Anforderungen analysieren
|
||||
↓
|
||||
3. Produkte vergleichen
|
||||
↓
|
||||
4. Angebot erstellen
|
||||
↓
|
||||
5. Beschaffen und konfigurieren
|
||||
↓
|
||||
6. Übergeben und dokumentieren
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- **Teil 1 der Abschlussprüfung** (Gewichtung: 20%)
|
||||
- Schwerpunktthema für den praktischen Teil
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF1-Unternehmen-Rolle|Vorher: LF 1]]
|
||||
- [[LF3-Datenbanken|Nachher: LF 3]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
@@ -0,0 +1,111 @@
|
||||
# 2.1 Kundenanforderungen aufnehmen
|
||||
|
||||
## Kundengespräch
|
||||
|
||||
### Vorbereitung
|
||||
|
||||
```
|
||||
Gesprächsvorbereitung
|
||||
├── Termin vereinbaren
|
||||
├── Unterlagen vorbereiten (Firmenpräsentation, Produktkataloge)
|
||||
├── Fragen formulieren
|
||||
└── Gesprächsziel definieren
|
||||
```
|
||||
|
||||
### Fragetechniken
|
||||
|
||||
| Fragentyp | Beispiel | Zweck |
|
||||
|-----------|---------|-------|
|
||||
| **Offen** | "Was sind Ihre Wünsche?" | Informationen sammeln |
|
||||
| **Geschlossen** | "Brauchen Sie Windows?" | Bestätigung |
|
||||
| **Zurückfragend** | "Warum ist das wichtig?" | Tiefes Verständnis |
|
||||
| **Zusammenfassend** | "Also benötigen Sie..." | Verständnis sichern |
|
||||
|
||||
---
|
||||
|
||||
## Anforderungen erfassen
|
||||
|
||||
### Lastenheft (vom Kunden)
|
||||
|
||||
Das Lastenheft enthält alle Anforderungen des Kunden:
|
||||
|
||||
```markdown
|
||||
# Lastenheft - Arbeitsplatzausstattung
|
||||
|
||||
## 1. Anlass
|
||||
Neueinstellung von 5 Mitarbeitern
|
||||
|
||||
## 2. Nutzerprofil
|
||||
- Büroarbeit
|
||||
- E-Mail, Office-Anwendungen
|
||||
- Videokonferenzen
|
||||
- gelegentlich Bildbearbeitung
|
||||
|
||||
## 3. Anforderungen Hardware
|
||||
- Leistungsstarker PC (Office + Bildbearbeitung)
|
||||
- 2 Monitore (24")
|
||||
- Headset für Videokonferenzen
|
||||
|
||||
## 4. Anforderungen Software
|
||||
- Windows 11 Pro
|
||||
- Microsoft 365 Business
|
||||
- Adobe Photoshop (Lizenz vorhanden)
|
||||
|
||||
## 5. Budget
|
||||
max. 2.000€ pro Arbeitsplatz
|
||||
|
||||
## 6. Zeitrahmen
|
||||
Lieferung bis zum 15. des Folgemonats
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Anforderungskategorien
|
||||
|
||||
### Funktionale Anforderungen
|
||||
|
||||
| Kategorie | Beispiele |
|
||||
|-----------|-----------|
|
||||
| Leistung | Schnell genug für alle Anwendungen |
|
||||
| Speicher | Ausreichend für Projektdaten |
|
||||
| Display | Für Videokonferenzen geeignet |
|
||||
|
||||
### Nicht-funktionale Anfordermen
|
||||
|
||||
| Kategorie | Beispiele |
|
||||
|-----------|-----------|
|
||||
| Zuverlässigkeit | 3 Jahre Garantie |
|
||||
| Ergonomie | TÜV-zertifiziert |
|
||||
| Nachhaltigkeit | Energy Star |
|
||||
|
||||
---
|
||||
|
||||
## Übung: Anforderungen aufnehmen
|
||||
|
||||
Führe ein Rollenspiel durch:
|
||||
|
||||
- Person A: Kunde (beschreibt Wünsche)
|
||||
- Person B: Azubi (notiert Anforderungen)
|
||||
|
||||
Dokumentiere die Ergebnisse:
|
||||
|
||||
```
|
||||
Kundenwunsch: _________________
|
||||
|
||||
Ermittelte Anforderungen:
|
||||
- Hardware: _______________
|
||||
- Software: _______________
|
||||
- Budget: _______________
|
||||
- Zeitrahmen: _______________
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-02-Hardwareauswahl|Nächstes Thema: Hardware auswählen]]
|
||||
- [[LF1-06-Eigene-Rolle|Kommunikation]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,102 @@
|
||||
# 2.2 Hardware auswählen
|
||||
|
||||
## PC-Komponenten
|
||||
|
||||
### Prozessor (CPU)
|
||||
|
||||
| Kriterium | Bedeutung |
|
||||
|-----------|-----------|
|
||||
| Kerne | Mehr Kerne = parallel arbeiten |
|
||||
| Taktfrequenz | Höher = schneller |
|
||||
| Cache | Mehr = schnellerer Datenzugriff |
|
||||
| Generation | Aktueller = effizienter |
|
||||
|
||||
**Aktuelle Generationen (2024):**
|
||||
- Intel: Core i3/i5/i7/i9 (14. Gen)
|
||||
- AMD: Ryzen 3/5/7/9 (5000-7000er)
|
||||
|
||||
### Arbeitsspeicher (RAM)
|
||||
|
||||
| Typ | Geschwindigkeit |
|
||||
|-----|----------------|
|
||||
| DDR4 | 2133-3200 MT/s |
|
||||
| DDR5 | 4800-7200 MT/s |
|
||||
|
||||
**Empfehlung:**
|
||||
- Office: 8-16 GB
|
||||
- Bildbearbeitung: 32 GB
|
||||
- Video/3D: 64+ GB
|
||||
|
||||
### Speicher
|
||||
|
||||
| Typ | Geschwindigkeit | Einsatz |
|
||||
|-----|----------------|----------|
|
||||
| SSD NVMe | Sehr schnell (3000+ MB/s) | System |
|
||||
| SSD SATA | Schnell (500 MB/s) | Programme |
|
||||
| HDD | Langsam (100 MB/s) | Datenarchiv |
|
||||
|
||||
### Grafikkarte (GPU)
|
||||
|
||||
| Typ | Einsatz |
|
||||
|-----|---------|
|
||||
| Integriert | Office, Surfen |
|
||||
| Dediziert (GTX/RTX) | Bildbearbeitung, Gaming |
|
||||
| Professionell (Quadro) | CAD, 3D |
|
||||
|
||||
---
|
||||
|
||||
## Peripherie
|
||||
|
||||
### Monitor
|
||||
|
||||
| Kriterium | Empfehlung |
|
||||
|-----------|-------------|
|
||||
| Größe | 24-27" |
|
||||
| Auflösung | Full HD (1920x1080) oder mehr |
|
||||
| Panel | IPS (betroffene Farben) |
|
||||
| Ergonomie | Höhenverstellbar, Pivot |
|
||||
|
||||
### Tastatur/Maus
|
||||
|
||||
- **Tastatur**: Tastatur-Layout (QWERTZ), mechanisch/sch Membrane
|
||||
- **Maus**: Ergonomisch, Kabel/Wireless
|
||||
|
||||
### Headset
|
||||
|
||||
- Für Videokonferenzen: Mit Mikrofon
|
||||
- Aktive Geräuschunterdrückung (ANC)
|
||||
|
||||
---
|
||||
|
||||
## Checkliste Hardware
|
||||
|
||||
```
|
||||
☐ Prozessor: _______________
|
||||
☐ RAM: _______________
|
||||
☐ Speicher (SSD): _______________
|
||||
☐ Grafikkarte: _______________
|
||||
☐ Monitor: _______________
|
||||
☐ Tastatur: _______________
|
||||
☐ Maus: _______________
|
||||
☐ Headset: _______________
|
||||
☐ Gesamtpreis: _______________
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Normen und Vorschriften
|
||||
|
||||
- **CE-Kennzeichnung**: EU-Sicherheitsstandard
|
||||
- **RoHS**: Beschränkung gefährlicher Stoffe
|
||||
- **Energy Star**: Energieeffizienz
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-03-Softwareauswahl|Nächstes Thema: Software auswählen]]
|
||||
- [[LF4-IT-Sicherheit|IT-Sicherheit]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,96 @@
|
||||
# 2.3 Software auswählen
|
||||
|
||||
## Betriebssysteme
|
||||
|
||||
### Optionen
|
||||
|
||||
| OS | Vorteile | Nachteile | Einsatz |
|
||||
|----|----------|-----------|----------|
|
||||
| **Windows 11** | Kompatibel, weit verbreitet | Lizenzkosten | Büro, privat |
|
||||
| **Linux (Ubuntu)** | Kostenlos, sicher | Weniger Software | Server, Developer |
|
||||
| **macOS** | Design, Ökosystem | Teuer, Apple-Hardware | Design, Media |
|
||||
|
||||
### Lizenzierung
|
||||
|
||||
```
|
||||
Lizenzmodelle
|
||||
├── Kauf (perpetual)
|
||||
├── Subscription (Mietmodell)
|
||||
├── Open Source (kostenlos)
|
||||
└── OEM (an Hardware gebunden)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Anwendungssoftware
|
||||
|
||||
### Office-Pakete
|
||||
|
||||
| Produkt | Kosten | Features |
|
||||
|---------|--------|----------|
|
||||
| Microsoft 365 | ~12-15€/Monat | Word, Excel, PowerPoint, Teams |
|
||||
| LibreOffice | Kostenlos | Word, Calc, Impress |
|
||||
| Google Workspace | ~6-12€/Monat | Docs, Sheets, Drive |
|
||||
|
||||
### Branchensoftware
|
||||
|
||||
- ERP-Systeme (SAP, Lexware)
|
||||
- CRM-Systeme (Salesforce)
|
||||
- Buchhaltung (DATEV)
|
||||
|
||||
---
|
||||
|
||||
## Softwarekriterien
|
||||
|
||||
### Auswahlkriterien
|
||||
|
||||
| Kriterium | Gewichtung | Beispiel |
|
||||
|-----------|------------|-----------|
|
||||
| Funktionalität | Hoch | Alle benötigten Features |
|
||||
| Kompatibilität | Hoch | Mit bestehender IT |
|
||||
| Benutzerfreundlichkeit | Mittel | Einfache Bedienung |
|
||||
| Support | Mittel |Deutscher Ansprechpartner |
|
||||
| Kosten | Mittel | Budget einhalten |
|
||||
| Datenschutz | Hoch | DSGVO-Konformität |
|
||||
|
||||
---
|
||||
|
||||
## Lizenzmanagement
|
||||
|
||||
### Lizenzarten
|
||||
|
||||
```
|
||||
Lizenzarten
|
||||
├── Einzelplatzlizenz
|
||||
├── Volumenlizenz (Site License)
|
||||
├── OEM-Lizenz (an Hardware gebunden)
|
||||
├── Subscription (zeitlich begrenzt)
|
||||
└── Concurrent License (gleiche Nutzer)
|
||||
```
|
||||
|
||||
### Compliance
|
||||
|
||||
- Lizenzen dokumentieren
|
||||
- Audit-Fähigkeit sicherstellen
|
||||
- Schulung der Nutzer
|
||||
|
||||
---
|
||||
|
||||
## Datenschutz (DSGVO)
|
||||
|
||||
### Anforderungen
|
||||
|
||||
- **Auftragsverarbeitung**: Vertrag mit Anbieter
|
||||
- **Datenspeicherung**: Wo werden Daten gespeichert?
|
||||
- **Löschkonzept**: Was passiert bei Vertragsende?
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-04-Nutzwertanalyse|Nächstes Thema: Nutzwertanalyse]]
|
||||
- [[LF4-IT-Sicherheit|DSGVO]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,113 @@
|
||||
# 2.4 Nutzwertanalyse durchführen
|
||||
|
||||
## Definition
|
||||
|
||||
Die Nutzwertanalyse (NWA) ist ein **systematisches Bewertungsverfahren** zur Auswahl zwischen verschiedenen Alternativen.
|
||||
|
||||
## Schritte
|
||||
|
||||
```
|
||||
Nutzwertanalyse - Ablauf
|
||||
|
||||
1. Kriterien festlegen
|
||||
↓
|
||||
2. Gewichtung definieren
|
||||
↓
|
||||
3. Bewertung durchführen
|
||||
↓
|
||||
4. Nutzwert berechnen
|
||||
↓
|
||||
5. Entscheidung treffen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schritt-für-Schritt
|
||||
|
||||
### 1. Kriterien definieren
|
||||
|
||||
| Nr. | Kriterium | Beispiel |
|
||||
|-----|----------|----------|
|
||||
| 1 | Preis | günstigster Preis |
|
||||
| 2 | Leistung | Prozessor-Rating |
|
||||
| 3 | Qualität | Garantiezeit |
|
||||
| 4 | Design | Optik |
|
||||
| 5 | Service | Support-Qualität |
|
||||
|
||||
### 2. Gewichtung (Summe = 100%)
|
||||
|
||||
| Kriterium | Gewichtung |
|
||||
|-----------|-------------|
|
||||
| Preis | 25% |
|
||||
| Leistung | 30% |
|
||||
| Qualität | 20% |
|
||||
| Design | 10% |
|
||||
| Service | 15% |
|
||||
| **Summe** | **100%** |
|
||||
|
||||
### 3. Bewertung (1-10 Punkte)
|
||||
|
||||
| Kriterium | Gewichtung | Laptop A | Laptop B |
|
||||
|-----------|------------|----------|----------|
|
||||
| Preis | 25% | 7 (70%) | 8 (80%) |
|
||||
| Leistung | 30% | 8 (80%) | 9 (90%) |
|
||||
| Qualität | 20% | 8 (80%) | 7 (70%) |
|
||||
| Design | 10% | 6 (60%) | 9 (90%) |
|
||||
| Service | 15% | 7 (70%) | 8 (80%) |
|
||||
|
||||
### 4. Nutzwert berechnen
|
||||
|
||||
```
|
||||
Nutzwert = Σ (Bewertung × Gewichtung)
|
||||
|
||||
Laptop A:
|
||||
= 0,25 × 7 + 0,30 × 8 + 0,20 × 8 + 0,10 × 6 + 0,15 × 7
|
||||
= 1,75 + 2,40 + 1,60 + 0,60 + 1,05
|
||||
= 7,40
|
||||
|
||||
Laptop B:
|
||||
= 0,25 × 8 + 0,30 × 9 + 0,20 × 7 + 0,10 × 9 + 0,15 × 8
|
||||
= 2,00 + 2,70 + 1,40 + 0,90 + 1,20
|
||||
= 8,20
|
||||
```
|
||||
|
||||
### 5. Ergebnis
|
||||
|
||||
| Laptop | Nutzwert | Rang |
|
||||
|--------|----------|------|
|
||||
| Laptop B | 8,20 | 1 |
|
||||
| Laptop A | 7,40 | 2 |
|
||||
|
||||
---
|
||||
|
||||
## Vorlage
|
||||
|
||||
### Nutzwertanalyse - Vorlage
|
||||
|
||||
| Kriterium | Gewichtung (%) | Lösung A | Lösung B | Lösung C |
|
||||
|-----------|-----------------|----------|----------|----------|
|
||||
| Kriterium 1 | | | | |
|
||||
| Kriterium 2 | | | | |
|
||||
| Kriterium 3 | | | | |
|
||||
| Kriterium 4 | | | | |
|
||||
| Kriterium 5 | | | | |
|
||||
| **Summe** | **100%** | | | |
|
||||
|
||||
---
|
||||
|
||||
## Tipps
|
||||
|
||||
- **Objektiv bewerten**: Nicht von persönlichen Präferenzen leiten lassen
|
||||
- **Kriterien dokumentieren**: Warum wurde welches Kriterium gewichtet?
|
||||
- **Alternativen vergleichen**: Mindestens 2-3 Optionen
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-05-Angebot|Nächstes Thema: Kalkulation und Angebot]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Entscheidungsfindung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
131
1-Ausbildungsjahr/LF2-Arbeitsplätze-ausstatten/LF2-05-Angebot.md
Normal file
131
1-Ausbildungsjahr/LF2-Arbeitsplätze-ausstatten/LF2-05-Angebot.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# 2.5 Kalkulation und Angebot
|
||||
|
||||
## Angebotskalkulation
|
||||
|
||||
### Handelskalkulation
|
||||
|
||||
```
|
||||
Listeneinkaufspreis (LEP)
|
||||
+ Bezugskosten (Fracht, Verpackung)
|
||||
= Einstandspreis (EP)
|
||||
|
||||
+ Handlungskosten (Gemeinkosten, z.B. 30%)
|
||||
= Selbstkosten (SK)
|
||||
|
||||
+ Gewinnmarge (z.B. 15%)
|
||||
= Netto-Angebotspreis
|
||||
|
||||
+ Umsatzsteuer (19%)
|
||||
= Brutto-Angebotspreis
|
||||
```
|
||||
|
||||
### Beispielrechnung
|
||||
|
||||
```
|
||||
Hardware:
|
||||
- PC-System: 800,00 €
|
||||
- Monitor: 300,00 €
|
||||
- Peripherie: 150,00 €
|
||||
---------------------------------
|
||||
Summe Hardware: 1.250,00 €
|
||||
|
||||
Bezugskosten (2%): 25,00 €
|
||||
---------------------------------
|
||||
Einstandspreis: 1.275,00 €
|
||||
|
||||
+ Gemeinkosten (30%): 382,50 €
|
||||
---------------------------------
|
||||
Selbstkosten: 1.657,50 €
|
||||
|
||||
+ Gewinn (15%): 248,63 €
|
||||
---------------------------------
|
||||
Netto-Angebotspreis: 1.906,13 €
|
||||
|
||||
+ Umsatzsteuer (19%): 362,16 €
|
||||
---------------------------------
|
||||
Brutto-Angebotspreis: 2.268,29 €
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Angebotsstruktur
|
||||
|
||||
### Angebotsvorlage
|
||||
|
||||
```
|
||||
Angebot Nr.: [Nummer]
|
||||
Datum: [Datum]
|
||||
|
||||
An:
|
||||
[Firmenname]
|
||||
[Ansprechpartner]
|
||||
[Adresse]
|
||||
|
||||
Angebot für: [Projektname/Beschreibung]
|
||||
|
||||
Sehr geehrte/r [Name],
|
||||
|
||||
wir bieten Ihnen如下:
|
||||
|
||||
Position | Beschreibung | Menge | Einzelpreis | Gesamtpreis
|
||||
---------|--------------|-------|-------------|-------------
|
||||
1 | [Produkt 1] | 1 | [Preis] | [Preis]
|
||||
2 | [Produkt 2] | 1 | [Preis] | [Preis]
|
||||
... | | | |
|
||||
|
||||
Zwischensumme (netto) | [Summe]
|
||||
+ Umsatzsteuer 19% | [MwSt]
|
||||
---------------------------------
|
||||
Gesamtbetrag (brutto) | [Gesamt]
|
||||
|
||||
Lieferzeit: [Zeit]
|
||||
Zahlungsbedingungen: [sofort/30 Tage/etc.]
|
||||
Gültigkeit: [Datum]
|
||||
|
||||
Mit freundlichen Grüßen,
|
||||
[Name]
|
||||
[Firma]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Angebotsvergleich
|
||||
|
||||
### Quantitative Kriterien
|
||||
|
||||
| Kriterium | Angebot A | Angebot B |
|
||||
|-----------|------------|------------|
|
||||
| Gesamtpreis | 2.268€ | 2.350€ |
|
||||
| Lieferzeit | 5 Tage | 3 Tage |
|
||||
| Garantie | 2 Jahre | 3 Jahre |
|
||||
|
||||
### Qualitative Kriterien
|
||||
|
||||
| Kriterium | Angebot A | Angebot B |
|
||||
|-----------|------------|------------|
|
||||
| Support | Deutsch | Deutsch + Englisch |
|
||||
| Referenzen | 5 | 10 |
|
||||
|
||||
---
|
||||
|
||||
## Wichtige Begriffe
|
||||
|
||||
| Begriff | Erklärung |
|
||||
|---------|-----------|
|
||||
| **LEP** | Listeneinkaufspreis |
|
||||
| **EP** | Einstandspreis |
|
||||
| **SK** | Selbstkosten |
|
||||
| **Anfrage** | Anforderung des Kunden |
|
||||
| **Angebot** | Verbindliches Angebot des Lieferanten |
|
||||
| **Auftragsbestätigung** | Annahme des Angebots |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-06-Beschaffung|Nächstes Thema: Beschaffung und Inbetriebnahme]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Kalkulation]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,169 @@
|
||||
# 2.6 Beschaffung und Inbetriebnahme
|
||||
|
||||
## Beschaffungsprozess
|
||||
|
||||
### Bestellung
|
||||
|
||||
```
|
||||
Beschaffungsablauf
|
||||
├── Bedarfsanalyse
|
||||
├── Lieferantenauswahl
|
||||
├── Bestellung auslösen
|
||||
├── Lieferung prüfen
|
||||
└── Einbuchen
|
||||
```
|
||||
|
||||
### Lieferantenmanagement
|
||||
|
||||
| Kriterium | Bedeutung |
|
||||
|-----------|-----------|
|
||||
| Lieferzeit | Schnelle Verfügbarkeit |
|
||||
| Preis | Wettbewerbsfähig |
|
||||
| Support | Technische Hilfe |
|
||||
| Zuverlässigkeit | Pünktliche Lieferung |
|
||||
|
||||
---
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### Hardware
|
||||
|
||||
```
|
||||
Konfigurationsschritte
|
||||
├── BIOS/UEFI Einstellungen
|
||||
├── RAID-Konfiguration
|
||||
├── Boot-Reihenfolge
|
||||
├── Energieeinstellungen
|
||||
└── Hardwaretests
|
||||
```
|
||||
|
||||
### Software
|
||||
|
||||
```
|
||||
Installationsreihenfolge
|
||||
├── Betriebssystem
|
||||
├── Updates und Patches
|
||||
├── Treiber
|
||||
├── Anwendungssoftware
|
||||
└── Virenschutz
|
||||
```
|
||||
|
||||
### Imaging
|
||||
|
||||
```
|
||||
Systemabbild erstellen
|
||||
├── Referenzsystem aufsetzen
|
||||
├── Treiber sammeln
|
||||
├── Sysprep durchführen
|
||||
├── Image erstellen (z.B. Clonezilla)
|
||||
└── Auf Clients verteilen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Inbetriebnahme
|
||||
|
||||
### Prüfungen
|
||||
|
||||
| Prüfung | Beschreibung |
|
||||
|---------|-------------|
|
||||
| Sichtprüfung | Keine Transportschäden |
|
||||
| Funktionstest | Alle Komponenten funktionieren |
|
||||
| Performance | Benchmark durchführen |
|
||||
| Sicherheit | Virenschutz, Updates |
|
||||
|
||||
### Dokumentation
|
||||
|
||||
```
|
||||
Konfigurationsdokumentation
|
||||
├── Seriennummern
|
||||
├── IP-Adressen
|
||||
├── Installierte Software
|
||||
├── Benutzerkonten
|
||||
└── Passwörter (sicher gespeichert)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Übergabe an Kunden
|
||||
|
||||
### Abnahme
|
||||
|
||||
```
|
||||
Übergabeprozedur
|
||||
├── Installation beim Kunden
|
||||
├── Funktionsprüfung
|
||||
├── Einweisung des Kunden
|
||||
├── Übergabedokumentation
|
||||
└── Abnahme durch Kunden
|
||||
```
|
||||
|
||||
### Einweisung
|
||||
|
||||
| Thema | Inhalt |
|
||||
|-------|--------|
|
||||
| Grundfunktionen | System starten/herunterfahren |
|
||||
| Software | Wichtige Programme erklären |
|
||||
| Support | Ansprechpartner nennen |
|
||||
| Support | Notfallkontakte |
|
||||
|
||||
### Übergabedokumentation
|
||||
|
||||
```markdown
|
||||
# Übergabeprotokoll
|
||||
|
||||
## Auftraggeber
|
||||
Name: _______________
|
||||
Datum: _______________
|
||||
|
||||
## Gelieferte Hardware
|
||||
- Gerät 1: _______________
|
||||
- Gerät 2: _______________
|
||||
|
||||
## Installierte Software
|
||||
- _______________
|
||||
|
||||
## Übergabeprüfung
|
||||
- [ ] Alle Geräte funktionieren
|
||||
- [ ] Software installiert
|
||||
- [ ] Kunde eingewiesen
|
||||
|
||||
## Unterschriften
|
||||
Kunde: _______________
|
||||
Techniker: _______________
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Garantie und Support
|
||||
|
||||
### Garantiebedingungen
|
||||
|
||||
| Typ | Dauer |
|
||||
|-----|-------|
|
||||
| Herstellergarantie | 2-3 Jahre |
|
||||
| Bring-in | Kunde sendet ein |
|
||||
| Vor-Ort | Techniker kommt vorbei |
|
||||
| Pick-up & Return | Abholung durch Hersteller |
|
||||
|
||||
### Supportstufen
|
||||
|
||||
```
|
||||
Support-Level
|
||||
├── Level 1: First-Level (Hotline)
|
||||
├── Level 2: Technischer Support
|
||||
├── Level 3: Entwicklung/Hersteller
|
||||
└── Eskalation bei Bedarf
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-05-Angebot|Zurück: Kalkulation und Angebot]]
|
||||
- [[LF3-Datenbanken|Nächstes Lernfeld: Datenbanken]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Vertragsrecht]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
165
1-Ausbildungsjahr/LF2-Arbeitsplätze-ausstatten/LF2-Notizen.md
Normal file
165
1-Ausbildungsjahr/LF2-Arbeitsplätze-ausstatten/LF2-Notizen.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# LF 2: Arbeitsplätze nach Kundenwunsch ausstatten
|
||||
|
||||
> **1. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, die Ausstattung eines Arbeitsplatzes nach Kundenwunsch zu dimensionieren, anzubieten, zu beschaffen und den Arbeitsplatz an die Kunden zu übergeben.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Kundenwünsche für Arbeitsplatz-Ausstattung aufnehmen und Anforderungen ermitteln
|
||||
- [ ] Auswahlkriterien für Hard- und Software ableiten
|
||||
- [ ] Technische Merkmale von Produkten vergleichen (Nutzwertanalyse)
|
||||
- [ ] Angebote erstellen und Preise kalkulieren
|
||||
- [ ] Beschaffungsprozess organisieren
|
||||
- [ ] IT-Arbeitsplatz konfigurieren und in Betrieb nehmen
|
||||
- [ ] Übergabeprotokoll erstellen
|
||||
- [ ] Den gesamten Prozess reflektieren und bewerten
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen
|
||||
|
||||
### 1. Kundenwunsch aufnehmen
|
||||
```
|
||||
Kundengespräch → Anforderungen ermitteln → Dokumentation → Auswahlkriterien
|
||||
```
|
||||
|
||||
**Wichtige Fragen:**
|
||||
- Welche Software wird benötigt?
|
||||
- Welche Leistungsanforderungen bestehen?
|
||||
- Ergonomische Anforderungen?
|
||||
- Budgetvorstellungen?
|
||||
|
||||
### 2. Produkte vergleichen
|
||||
|
||||
**Kriterien für Hardware:**
|
||||
| Kriterium | Beschreibung |
|
||||
|-----------|-------------|
|
||||
| Prozessor | Kerne, Taktfrequenz, Cache |
|
||||
| Arbeitsspeicher | Kapazität, Typ (DDR4/DDR5) |
|
||||
| Festplatte | SSD/HDD, Kapazität |
|
||||
| Grafikkarte | Dediziert/integriert, Speicher |
|
||||
| Display | Auflösung, Größe, Paneltyp |
|
||||
| Anschlüsse | USB, HDMI, etc. |
|
||||
|
||||
**Kriterien für Software:**
|
||||
- Lizenzmodell (Kauf, Subscription, Open Source)
|
||||
- Kompatibilität mit bestehender Infrastruktur
|
||||
- Benutzerfreundlichkeit
|
||||
- Support/Updates
|
||||
- Datenschutz (DSGVO)
|
||||
|
||||
### 3. Nutzwertanalyse
|
||||
|
||||
**Beispiel-Matrix:**
|
||||
|
||||
| Kriterium | Gewichtung | Laptop A | Laptop B |
|
||||
|-----------|------------|----------|----------|
|
||||
| Performance | 25% | 8 (80%) | 9 (90%) |
|
||||
| Preis | 20% | 7 (70%) | 6 (60%) |
|
||||
| Akkulaufzeit | 15% | 9 (90%) | 7 (70%) |
|
||||
| Display | 15% | 8 (80%) | 9 (90%) |
|
||||
| Ergonomie | 15% | 7 (70%) | 8 (80%) |
|
||||
| Support | 10% | 8 (80%) | 7 (70%) |
|
||||
| **Gesamt** | **100%** | **7,9** | **7,8** |
|
||||
|
||||
**Berechnung:**
|
||||
```
|
||||
Nutzwert = Σ (Bewertung × Gewichtung)
|
||||
```
|
||||
|
||||
### 4. Angebotskalkulation
|
||||
|
||||
```
|
||||
Listeneinkaufspreis
|
||||
+ Bezugskosten (Versand, Zoll)
|
||||
= Einstandspreis
|
||||
+ Gemeinkosten/Zuschlag (z.B. 30%)
|
||||
+ Gewinnmarge (z.B. 15%)
|
||||
= Angebotspreis
|
||||
+ MwSt. (19%)
|
||||
= Brutto-Angebotspreis
|
||||
```
|
||||
|
||||
### 5. Beschaffung und Inbetriebnahme
|
||||
|
||||
**Ablauf:**
|
||||
1. Bestellung auslösen
|
||||
2. Lieferung prüfen (Mängel dokumentieren!)
|
||||
3. Komponenten installieren
|
||||
4. Software konfigurieren
|
||||
5. Funktion testen
|
||||
6. Kunden einweisen
|
||||
7. Übergabeprotokoll erstellen
|
||||
|
||||
---
|
||||
|
||||
## Zentrale Inhalte
|
||||
|
||||
### Hard- und Software
|
||||
- Desktop-PC, Laptop, Workstation
|
||||
- Peripherie (Monitor, Tastatur, Maus, Drucker)
|
||||
- Betriebssysteme (Windows, Linux, macOS)
|
||||
- Anwendungssoftware (Office, Branchensoftware)
|
||||
- Cloud-Lösungen (SaaS, IaaS)
|
||||
|
||||
### Normen und Vorschriften
|
||||
- CE-Kennzeichnung
|
||||
- Ergonomie (Bildschirmarbeitsplätze)
|
||||
- Datenschutz (DSGVO)
|
||||
- IT-Sicherheit
|
||||
- Nachhaltigkeit (Green IT, Recycling)
|
||||
|
||||
### Elektrotechnik (Grundlagen)
|
||||
- Spannung, Strom, Leistung
|
||||
- Schutzmaßnahmen
|
||||
- Energieeffizienz
|
||||
|
||||
---
|
||||
|
||||
## Wichtige Begriffe
|
||||
|
||||
| Begriff | Erklärung |
|
||||
|---------|-----------|
|
||||
| **Lastenheft** | Vom Kunden erstellte Anforderungsbeschreibung |
|
||||
| **Pflichtenheft** | Vom Anbieter erstellte Umsetzungsbeschreibung |
|
||||
| **Nutzwertanalyse** | Systematisches Bewertungsverfahren für Alternativen |
|
||||
| **Angebotsvergleich** | Quantitative und qualitative Gegenüberstellung von Angeboten |
|
||||
| **Übergabeprotokoll** | Dokumentation der übergebenen Leistungen |
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- **Teil 1 der Abschlussprüfung** (Gewichtung: 20%)
|
||||
- Schwerpunktthema für den praktischen Teil
|
||||
- Projektarbeit: "Einrichten eines IT-gestützten Arbeitsplatzes"
|
||||
|
||||
---
|
||||
|
||||
## Typische Prüfungsaufgaben
|
||||
|
||||
1. Anforderungen aus Kundenwunsch ableiten
|
||||
2. Hardwarekomponenten auswählen und begründen
|
||||
3. Nutzwertanalyse durchführen
|
||||
4. Angebotskalkulation erstellen
|
||||
5. Konfiguration dokumentieren
|
||||
6. Störungen beheben
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF1-Unternehmen-Rolle|Vorher: LF 1 - Das Unternehmen]]
|
||||
- [[LF3-Netzwerke-einbinden|Nachher: LF 3 - Clients in Netzwerke einbinden]]
|
||||
- [[IT-Sicherheit|IT-Sicherheit und Datenschutz]]
|
||||
- [[Wirtschafts-Sozialkunde|WISO - Kalkulation]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
43
1-Ausbildungsjahr/LF3-Datenbanken/LF3-00-Übersicht.md
Normal file
43
1-Ausbildungsjahr/LF3-Datenbanken/LF3-00-Übersicht.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Lernfeld 3: Datenbanken entwickeln
|
||||
|
||||
## Übersicht
|
||||
|
||||
Dieses Lernfeld behandelt die Entwicklung und Verwaltung von Datenbanken.
|
||||
|
||||
## Themen
|
||||
|
||||
| Nr. | Thema | Beschreibung |
|
||||
|-----|-------|-------------|
|
||||
| 3.1 | [[LF3-01-Datenbankgrundlagen|Datenbankgrundlagen]] | Grundbegriffe, DBMS, Datenmodelle |
|
||||
| 3.2 | [[LF3-02-Datenmodellierung|Datenmodellierung]] | ER-Modell, Normalisierung |
|
||||
| 3.3 | [[LF3-03-SQL-Grundlagen|SQL-Grundlagen]] | SELECT, INSERT, UPDATE, DELETE |
|
||||
| 3.4 | [[LF3-04-SQL-Abfragen|SQL-Abfragen]] | JOINs, Aggregatfunktionen, Unterabfragen |
|
||||
| 3.5 | [[LF3-05-Datenbankmanagement|Datenbankmanagement]] | Rechte, Sicherheit, Backup |
|
||||
|
||||
## Lernziele
|
||||
|
||||
- Datenbanken konzipieren und modellieren
|
||||
- SQL-Abfragen erstellen
|
||||
- Datenbanken verwalten und absichern
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- LF1: Unternehmen und Rolle
|
||||
- LF2: Arbeitsplätze ausstatten
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Teil 1 Abschlussprüfung (schriftlich)
|
||||
- Teil 2 Abschlussprüfung (praktisch)
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-06-Beschaffung|Zurück: Beschaffung und Inbetriebnahme]]
|
||||
- [[LF4-IT-Sicherheit|Nächstes Lernfeld: IT-Sicherheit]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Datenschutz]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
127
1-Ausbildungsjahr/LF3-Datenbanken/LF3-01-Datenbankgrundlagen.md
Normal file
127
1-Ausbildungsjahr/LF3-Datenbanken/LF3-01-Datenbankgrundlagen.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# 3.1 Datenbankgrundlagen
|
||||
|
||||
## Was ist eine Datenbank?
|
||||
|
||||
Eine Datenbank ist eine **strukturierte Sammlung von Daten**, die elektronisch gespeichert und verwaltet werden.
|
||||
|
||||
### Vorteile gegenüber Dateisystem
|
||||
|
||||
| Dateisystem | Datenbank |
|
||||
|-------------|-----------|
|
||||
| Redundanz | Keine/reduzierte Redundanz |
|
||||
| Inkonsistenzen | Datenkonsistenz |
|
||||
| Zugriffskontrollle | Integrierte Rechteverwaltung |
|
||||
| Parallelzugriff | Concurrent Access |
|
||||
| Datensicherung | Backup/Recovery |
|
||||
|
||||
---
|
||||
|
||||
## Datenbankmanagementsystem (DBMS)
|
||||
|
||||
### Funktionen
|
||||
|
||||
```
|
||||
DBMS - Kernfunktionen
|
||||
├── Datendefinition (DDL)
|
||||
├── Datenmanipulation (DML)
|
||||
├── Zugriffskontrolle
|
||||
├── Transaktionsmanagement
|
||||
├── Datenintegrität
|
||||
└── Datensicherung
|
||||
```
|
||||
|
||||
### DBMS-Typen
|
||||
|
||||
| Typ | Beispiele | Einsatz |
|
||||
|-----|-----------|----------|
|
||||
| Relational | MySQL, PostgreSQL, Oracle | Standard |
|
||||
| Dokumentenorientiert | MongoDB | Unstrukturierte Daten |
|
||||
| Key-Value | Redis | Caching |
|
||||
| Graph | Neo4j | Netzwerke |
|
||||
|
||||
### Relationale Datenbanken
|
||||
|
||||
```
|
||||
Relationales Modell
|
||||
├── Tabelle (Relation)
|
||||
├── Zeile (Tupel/Datensatz)
|
||||
├── Spalte (Attribut)
|
||||
├── Primärschlüssel
|
||||
└── Fremdschlüssel
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datenbankarchitektur
|
||||
|
||||
### Dreischichtenarchitektur
|
||||
|
||||
```
|
||||
Architektur
|
||||
├── Externe Ebene (Benutzersicht)
|
||||
├── Konzeptionelle Ebene (logisches Modell)
|
||||
└── Interne Ebene (physikalische Speicherung)
|
||||
```
|
||||
|
||||
### ANSI-SPARC-Architektur
|
||||
|
||||
| Ebene | Beschreibung |
|
||||
|-------|-------------|
|
||||
| Extern | Benutzeransichten |
|
||||
| Konzeptuell | Gesamtsicht der DB |
|
||||
| Intern | Speicherstrukturen |
|
||||
|
||||
---
|
||||
|
||||
## Datenmodelle
|
||||
|
||||
### Hierarchisches Modell
|
||||
|
||||
```
|
||||
Baumstruktur
|
||||
Root
|
||||
├── Kind1
|
||||
│ └── Enkel1
|
||||
└── Kind2
|
||||
```
|
||||
|
||||
### Netzwerkmodell
|
||||
|
||||
```
|
||||
Netzstruktur
|
||||
Knoten1 ←→ Knoten2 ←→ Knoten3
|
||||
```
|
||||
|
||||
### Relationales Modell
|
||||
|
||||
```
|
||||
Tabellenmodell
|
||||
Kunde (ID, Name, Adresse)
|
||||
↓
|
||||
Bestellung (ID, Kunde_ID, Datum)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Wichtige Begriffe
|
||||
|
||||
| Begriff | Erklärung |
|
||||
|---------|-----------|
|
||||
| **Tabelle** | Sammlung von Datensätzen |
|
||||
| **Datensatz** | Eine Zeile in einer Tabelle |
|
||||
| **Attribut** | Eine Spalte in einer Tabelle |
|
||||
| **Primärschlüssel** | Eindeutige ID eines Datensatzes |
|
||||
| **Fremdschlüssel** | Verweis auf andere Tabelle |
|
||||
| **Index** | Beschleunigt den Zugriff |
|
||||
| **Sicht (View)** | Gespeicherte Abfrage |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF3-02-Datenmodellierung|Nächstes Thema: Datenmodellierung]]
|
||||
- [[LF5-03-Programmierung|Programmierung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
174
1-Ausbildungsjahr/LF3-Datenbanken/LF3-02-Datenmodellierung.md
Normal file
174
1-Ausbildungsjahr/LF3-Datenbanken/LF3-02-Datenmodellierung.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# 3.2 Datenmodellierung
|
||||
|
||||
## ER-Modell (Entity-Relationship)
|
||||
|
||||
Das ER-Modell ist ein **konzeptionelles Datenmodell** zur Beschreibung von Datenstrukturen.
|
||||
|
||||
### Grundbegriffe
|
||||
|
||||
```
|
||||
ER-Modell - Komponenten
|
||||
├── Entitäten (Entities)
|
||||
├── Beziehungen (Relationships)
|
||||
└── Attribute (Eigenschaften)
|
||||
```
|
||||
|
||||
### Entitäten
|
||||
|
||||
Eine Entität ist ein **Objekt der realen Welt**, das eindeutig identifizierbar ist.
|
||||
|
||||
| Entität | Beispiel |
|
||||
|---------|----------|
|
||||
| Person | Kunde, Mitarbeiter |
|
||||
| Ding | Produkt, Auto |
|
||||
| Konzept | Bestellung, Rechnung |
|
||||
|
||||
### Attribute
|
||||
|
||||
Attribute beschreiben **Eigenschaften** von Entitäten.
|
||||
|
||||
```
|
||||
Attribute - Typen
|
||||
├── Einfachwertig
|
||||
├── Mehrwertig (z.B. Telefonnummern)
|
||||
├── Zusammengesetzt (z.B. Adresse)
|
||||
└── Abgeleitet (z.B. Alter aus Geburtsdatum)
|
||||
```
|
||||
|
||||
### Beziehungen (Relationships)
|
||||
|
||||
Beziehungen verknüpfen Entitäten miteinander.
|
||||
|
||||
```
|
||||
Beziehungsgrade
|
||||
├── 1:1 (One-to-One)
|
||||
├── 1:n (One-to-Many)
|
||||
└── n:m (Many-to-Many)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ER-Diagramm
|
||||
|
||||
### Symbole
|
||||
|
||||
```
|
||||
Notation (Chen-Notation)
|
||||
Rechteck → Entität
|
||||
Raute → Beziehung
|
||||
Ellipse → Attribut
|
||||
Unterstrich → Primärschlüssel
|
||||
Doppel ellipse → Mehrwertiges Attribut
|
||||
```
|
||||
|
||||
### Kardinalitäten
|
||||
|
||||
| Symbol | Bedeutung |
|
||||
|--------|-----------|
|
||||
| 1 | Genau eins |
|
||||
| N | Eins bis viele |
|
||||
| 0..1 | Null bis eins |
|
||||
| 0..N | Null bis viele |
|
||||
|
||||
### Beispiel: Webshop
|
||||
|
||||
```
|
||||
ER-Diagramm - Webshop
|
||||
|
||||
Kunde ──────── Bestellung ──────── Produkt
|
||||
(1) (1..n) (1) (1..n) (1) (1..n)
|
||||
|
||||
Kunde: {Kunden_ID (PK), Name, E-Mail, Adresse}
|
||||
Bestellung: {Bestell_ID (PK), Kunden_ID (FK), Datum, Status}
|
||||
Produkt: {Produkt_ID (PK), Name, Preis, Kategorie}
|
||||
BestellPosition: {Bestell_ID (FK), Produkt_ID (FK), Menge}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Normalisierung
|
||||
|
||||
Normalisierung reduziert **Redundanz** und vermeidet **Anomalien**.
|
||||
|
||||
### Normalformen
|
||||
|
||||
```
|
||||
Normalisierungsstufen
|
||||
├── 1. Normalform (1NF)
|
||||
├── 2. Normalform (2NF)
|
||||
├── 3. Normalform (3NF)
|
||||
└── Boyce-Codd-Normalform (BCNF)
|
||||
```
|
||||
|
||||
### 1. Normalform (1NF)
|
||||
|
||||
**Bedingung**: Jedes Attribut enthält nur atomare (unteilbare) Werte.
|
||||
|
||||
```
|
||||
Nicht 1NF:
|
||||
Bestellung | Produkte
|
||||
-----------|------------------
|
||||
1 | A, B, C
|
||||
|
||||
1NF:
|
||||
Bestellung | Produkt
|
||||
-----------|----------
|
||||
1 | A
|
||||
1 | B
|
||||
1 | C
|
||||
```
|
||||
|
||||
### 2. Normalform (2NF)
|
||||
|
||||
**Bedingung**: 1NF erfüllt + jedes Nicht-Schlüssel-Attribut ist vom gesamten Primärschlüssel abhängig.
|
||||
|
||||
### 3. Normalform (3NF)
|
||||
|
||||
**Bedingung**: 2NF erfüllt + keine transitiven Abhängigkeiten.
|
||||
|
||||
```
|
||||
Nicht 3NF:
|
||||
{Student_ID, Kurs_ID} → {Note} → {Bewertungstext}
|
||||
|
||||
3NF:
|
||||
{Student_ID, Kurs_ID} → {Note}
|
||||
{Note} → {Bewertungstext}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Übung: Datenmodell erstellen
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Erstelle ein ER-Diagramm für eine Bibliothek:
|
||||
|
||||
- Bücher können ausgeliehen werden
|
||||
- Kunden leihen Bücher aus
|
||||
- Ein Buch hat mehrere Exemplare
|
||||
|
||||
### Lösung
|
||||
|
||||
```
|
||||
Entitäten:
|
||||
- Kunde (Kunden_ID, Name, Adresse)
|
||||
- Buch (ISBN, Titel, Autor, Verlag)
|
||||
- Exemplar (Exemplar_ID, ISBN, Status)
|
||||
- Ausleihe (Ausleihe_ID, Kunden_ID, Exemplar_ID, Datum)
|
||||
|
||||
Beziehungen:
|
||||
- Kunde (1) ─── (0..n) Ausleihe
|
||||
- Exemplar (1) ─── (0..1) Ausleihe
|
||||
- Buch (1) ─── (1..n) Exemplar
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF3-01-Datenbankgrundlagen|Zurück: Datenbankgrundlagen]]
|
||||
- [[LF3-03-SQL-Grundlagen|Nächstes Thema: SQL-Grundlagen]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
235
1-Ausbildungsjahr/LF3-Datenbanken/LF3-03-SQL-Grundlagen.md
Normal file
235
1-Ausbildungsjahr/LF3-Datenbanken/LF3-03-SQL-Grundlagen.md
Normal file
@@ -0,0 +1,235 @@
|
||||
# 3.3 SQL-Grundlagen
|
||||
|
||||
## Was ist SQL?
|
||||
|
||||
**SQL** (Structured Query Language) ist die Standardsprache für die Kommunikation mit relationalen Datenbanken.
|
||||
|
||||
### SQL-Teilsprachen
|
||||
|
||||
```
|
||||
SQL - Kategorien
|
||||
├── DDL (Data Definition Language)
|
||||
│ ├── CREATE → Objekte erstellen
|
||||
│ ├── ALTER → Objekte ändern
|
||||
│ └── DROP → Objekte löschen
|
||||
├── DML (Data Manipulation Language)
|
||||
│ ├── SELECT → Daten abfragen
|
||||
│ ├── INSERT → Daten einfügen
|
||||
│ ├── UPDATE → Daten ändern
|
||||
│ └── DELETE → Daten löschen
|
||||
├── DCL (Data Control Language)
|
||||
│ ├── GRANT → Rechte vergeben
|
||||
│ └── REVOKE → Rechte entziehen
|
||||
└── TCL (Transaction Control Language)
|
||||
├── COMMIT → Transaktion abschließen
|
||||
├── ROLLBACK → Transaktion zurücksetzen
|
||||
└── SAVEPOINT → Speicherpunkt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datentypen
|
||||
|
||||
### Numerisch
|
||||
|
||||
| Datentyp | Beschreibung | Bereich |
|
||||
|----------|-------------|---------|
|
||||
| INT | Ganzzahl | -2 Mrd. bis 2 Mrd. |
|
||||
| DECIMAL(p,s) | Dezimalzahl | p= Stellen, s= Nachkommastellen |
|
||||
| FLOAT | Gleitkommazahl | ~7 Stellen |
|
||||
| DOUBLE | Doppelte Präzision | ~15 Stellen |
|
||||
|
||||
### Zeichenketten
|
||||
|
||||
| Datentyp | Beschreibung | max. Länge |
|
||||
|----------|-------------|-------------|
|
||||
| CHAR(n) | Festlänge | 255 |
|
||||
| VARCHAR(n) | Variable Länge | 65.535 |
|
||||
| TEXT | Langer Text | 65.535+ |
|
||||
| LONGTEXT | Sehr langer Text | 4 GB |
|
||||
|
||||
### Datum/Zeit
|
||||
|
||||
| Datentyp | Beschreibung |
|
||||
|----------|-------------|
|
||||
| DATE | Datum (JJJJ-MM-TT) |
|
||||
| TIME | Zeit (HH:MM:SS) |
|
||||
| DATETIME | Datum + Zeit |
|
||||
| TIMESTAMP | Unix-Zeitstempel |
|
||||
|
||||
---
|
||||
|
||||
## DDL - Datenbankobjekte erstellen
|
||||
|
||||
### Tabelle erstellen (CREATE TABLE)
|
||||
|
||||
```sql
|
||||
CREATE TABLE Kunde (
|
||||
Kunden_ID INT PRIMARY KEY,
|
||||
Vorname VARCHAR(50) NOT NULL,
|
||||
Nachname VARCHAR(50) NOT NULL,
|
||||
E-Mail VARCHAR(100) UNIQUE,
|
||||
Geburtsdatum DATE,
|
||||
Erstellt_AM TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
```
|
||||
|
||||
### Tabelle ändern (ALTER TABLE)
|
||||
|
||||
```sql
|
||||
-- Spalte hinzufügen
|
||||
ALTER TABLE Kunde ADD Telefon VARCHAR(20);
|
||||
|
||||
-- Spalte ändern
|
||||
ALTER TABLE Kunde MODIFY E-Mail VARCHAR(150);
|
||||
|
||||
-- Spalte löschen
|
||||
ALTER TABLE Kunde DROP COLUMN Telefon;
|
||||
```
|
||||
|
||||
### Tabelle löschen (DROP TABLE)
|
||||
|
||||
```sql
|
||||
DROP TABLE Kunde;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## DML - Daten bearbeiten
|
||||
|
||||
### Daten einfügen (INSERT)
|
||||
|
||||
```sql
|
||||
-- Einzelne Zeile
|
||||
INSERT INTO Kunde (Kunden_ID, Vorname, Nachname, E-Mail)
|
||||
VALUES (1, 'Max', 'Mustermann', 'max@example.com');
|
||||
|
||||
-- Mehrere Zeilen
|
||||
INSERT INTO Kunde (Kunden_ID, Vorname, Nachname)
|
||||
VALUES
|
||||
(2, 'Anna', 'Schmidt'),
|
||||
(3, 'Peter', 'Müller');
|
||||
```
|
||||
|
||||
### Daten ändern (UPDATE)
|
||||
|
||||
```sql
|
||||
-- Ein Datensatz
|
||||
UPDATE Kunde
|
||||
SET E-Mail = 'max.neu@example.com'
|
||||
WHERE Kunden_ID = 1;
|
||||
|
||||
-- Mehrere Datensätze
|
||||
UPDATE Kunde
|
||||
SET Nachname = 'Meier'
|
||||
WHERE Nachname = 'Müller';
|
||||
```
|
||||
|
||||
### Daten löschen (DELETE)
|
||||
|
||||
```sql
|
||||
-- Bestimmte Zeilen
|
||||
DELETE FROM Kunde WHERE Kunden_ID = 1;
|
||||
|
||||
-- Alle Zeilen (Tabelle bleibt)
|
||||
DELETE FROM Kunde;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## SELECT - Daten abfragen
|
||||
|
||||
### Grundstruktur
|
||||
|
||||
```sql
|
||||
SELECT -- Was?
|
||||
Spalten
|
||||
FROM -- Woher?
|
||||
Tabelle
|
||||
WHERE -- Filter
|
||||
Bedingung
|
||||
ORDER BY -- Sortierung
|
||||
Spalte;
|
||||
```
|
||||
|
||||
### Einfache Abfragen
|
||||
|
||||
```sql
|
||||
-- Alle Spalten
|
||||
SELECT * FROM Kunde;
|
||||
|
||||
-- Bestimmte Spalten
|
||||
SELECT Vorname, Nachname FROM Kunde;
|
||||
|
||||
-- Mit Alias
|
||||
SELECT Vorname AS 'Vorname', Nachname AS 'Nachname' FROM Kunde;
|
||||
```
|
||||
|
||||
### WHERE-Klausel
|
||||
|
||||
```sql
|
||||
-- Einfache Bedingung
|
||||
SELECT * FROM Kunde WHERE Nachname = 'Mustermann';
|
||||
|
||||
-- Vergleichsoperatoren
|
||||
SELECT * FROM Kunde WHERE Alter >= 18;
|
||||
SELECT * FROM Produkt WHERE Preis > 100 AND Preis < 500;
|
||||
|
||||
-- LIKE (Mustervergleich)
|
||||
SELECT * FROM Kunde WHERE Name LIKE 'M%'; -- beginnt mit M
|
||||
SELECT * FROM Kunde WHERE Name LIKE '%er%'; -- enthält 'er'
|
||||
SELECT * FROM Kunde WHERE Name LIKE '___'; -- genau 3 Zeichen
|
||||
|
||||
-- IN (in Liste)
|
||||
SELECT * FROM Kunde WHERE Stadt IN ('Berlin', 'Hamburg', 'München');
|
||||
|
||||
-- BETWEEN (Bereich)
|
||||
SELECT * FROM Produkt WHERE Preis BETWEEN 100 AND 500;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Übung: SQL-Grundlagen
|
||||
|
||||
### Aufgaben
|
||||
|
||||
1. Erstelle eine Tabelle "Produkt" mit ID, Name, Preis, Kategorie
|
||||
2. Füge 3 Produkte ein
|
||||
3. Ändere den Preis des ersten Produkts auf 99,99
|
||||
4. Lösche das teuerste Produkt
|
||||
|
||||
### Lösung
|
||||
|
||||
```sql
|
||||
-- 1. Tabelle erstellen
|
||||
CREATE TABLE Produkt (
|
||||
Produkt_ID INT PRIMARY KEY,
|
||||
Name VARCHAR(100),
|
||||
Preis DECIMAL(10,2),
|
||||
Kategorie VARCHAR(50)
|
||||
);
|
||||
|
||||
-- 2. Daten einfügen
|
||||
INSERT INTO Produkt VALUES
|
||||
(1, 'Laptop', 1299.99, 'Elektronik'),
|
||||
(2, 'Maus', 29.99, 'Zubehör'),
|
||||
(3, 'Tastatur', 79.99, 'Zubehör');
|
||||
|
||||
-- 3. Preis ändern
|
||||
UPDATE Produkt SET Preis = 99.99 WHERE Produkt_ID = 1;
|
||||
|
||||
-- 4. Teuerstes löschen
|
||||
DELETE FROM Produkt WHERE Preis = (SELECT MAX(Preis) FROM Produkt);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF3-02-Datenmodellierung|Zurück: Datenmodellierung]]
|
||||
- [[LF3-04-SQL-Abfragen|Nächstes Thema: SQL-Abfragen]]
|
||||
- [[LF6-04-Sicherheit-Web|Sicherheit: SQL-Injection]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
263
1-Ausbildungsjahr/LF3-Datenbanken/LF3-04-SQL-Abfragen.md
Normal file
263
1-Ausbildungsjahr/LF3-Datenbanken/LF3-04-SQL-Abfragen.md
Normal file
@@ -0,0 +1,263 @@
|
||||
# 3.4 SQL-Abfragen
|
||||
|
||||
## JOINs - Tabellen verknüpfen
|
||||
|
||||
JOINs verbinden Daten aus mehreren Tabellen.
|
||||
|
||||
### Arten von JOINs
|
||||
|
||||
```
|
||||
JOIN-Typen
|
||||
├── INNER JOIN
|
||||
├── LEFT OUTER JOIN
|
||||
├── RIGHT OUTER JOIN
|
||||
├── FULL OUTER JOIN
|
||||
└── CROSS JOIN
|
||||
```
|
||||
|
||||
### INNER JOIN
|
||||
|
||||
Gibt nur übereinstimmende Zeilen zurück.
|
||||
|
||||
```sql
|
||||
-- Syntax
|
||||
SELECT spalten
|
||||
FROM tabelle1
|
||||
INNER JOIN tabelle2 ON tabelle1.spalte = tabelle2.spalte;
|
||||
|
||||
-- Beispiel: Kunden mit Bestellungen
|
||||
SELECT Kunde.Name, Bestellung.Datum
|
||||
FROM Kunde
|
||||
INNER JOIN Bestellung ON Kunde.Kunden_ID = Bestellung.Kunden_ID;
|
||||
|
||||
-- Kurzschreibweise (impliziter Join)
|
||||
SELECT Kunde.Name, Bestellung.Datum
|
||||
FROM Kunde, Bestellung
|
||||
WHERE Kunde.Kunden_ID = Bestellung.Kunden_ID;
|
||||
```
|
||||
|
||||
### LEFT OUTER JOIN
|
||||
|
||||
Gibt alle Zeilen der linken Tabelle zurück.
|
||||
|
||||
```sql
|
||||
-- Alle Kunden, auch ohne Bestellung
|
||||
SELECT Kunde.Name, Bestellung.Datum
|
||||
FROM Kunde
|
||||
LEFT OUTER JOIN Bestellung ON Kunde.Kunden_ID = Bestellung.Kunden_ID;
|
||||
```
|
||||
|
||||
### RIGHT OUTER JOIN
|
||||
|
||||
Gibt alle Zeilen der rechten Tabelle zurück.
|
||||
|
||||
```sql
|
||||
-- Alle Bestellungen, auch ohne Kunden
|
||||
SELECT Kunde.Name, Bestellung.Datum
|
||||
FROM Kunde
|
||||
RIGHT OUTER JOIN Bestellung ON Kunde.Kunden_ID = Bestellung.Kunden_ID;
|
||||
```
|
||||
|
||||
### Mehrere JOINs
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
Kunde.Name,
|
||||
Bestellung.Datum,
|
||||
Produkt.Name AS Produkt
|
||||
FROM Kunde
|
||||
INNER JOIN Bestellung ON Kunde.Kunden_ID = Bestellung.Kunden_ID
|
||||
INNER JOIN BestellPosition ON Bestellung.Bestell_ID = BestellPosition.Bestell_ID
|
||||
INNER JOIN Produkt ON BestellPosition.Produkt_ID = Produkt.Produkt_ID;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Aggregatfunktionen
|
||||
|
||||
Aggregatfunktionen fassen mehrere Zeilen zu einem Ergebnis zusammen.
|
||||
|
||||
| Funktion | Beschreibung | Beispiel |
|
||||
|----------|-------------|----------|
|
||||
| COUNT() | Anzahl der Zeilen | COUNT(*) |
|
||||
| SUM() | Summe | SUM(Preis) |
|
||||
| AVG() | Durchschnitt | AVG(Preis) |
|
||||
| MIN() | Minimum | MIN(Preis) |
|
||||
| MAX() | Maximum | MAX(Preis) |
|
||||
|
||||
### Beispiele
|
||||
|
||||
```sql
|
||||
-- Anzahl der Kunden
|
||||
SELECT COUNT(*) AS AnzahlKunden FROM Kunde;
|
||||
|
||||
-- Summe aller Bestellungen
|
||||
SELECT SUM(Gesamtbetrag) AS Gesamtumsatz FROM Bestellung;
|
||||
|
||||
-- Durchschnittspreis
|
||||
SELECT AVG(Preis) AS Durchschnittspreis FROM Produkt;
|
||||
|
||||
-- Minimale/Maximale Bestellung
|
||||
SELECT MIN(Gesamtbetrag) AS KleinsteBestellung,
|
||||
MAX(Gesamtbetrag) AS GrößteBestellung
|
||||
FROM Bestellung;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## GROUP BY - Gruppierung
|
||||
|
||||
Gruppiert Ergebnisse nach bestimmten Kriterien.
|
||||
|
||||
```sql
|
||||
-- Umsatz pro Kunde
|
||||
SELECT Kunden_ID, SUM(Gesamtbetrag) AS Umsatz
|
||||
FROM Bestellung
|
||||
GROUP BY Kunden_ID;
|
||||
|
||||
-- Anzahl Bestellungen pro Kunde
|
||||
SELECT Kunden_ID, COUNT(*) AS AnzahlBestellungen
|
||||
FROM Bestellung
|
||||
GROUP BY Kunden_ID;
|
||||
|
||||
-- Umsatz pro Kategorie
|
||||
SELECT Kategorie, SUM(Preis) AS Gesamtumsatz
|
||||
FROM Produkt
|
||||
GROUP BY Kategorie;
|
||||
```
|
||||
|
||||
### HAVING - Filter nach Aggregation
|
||||
|
||||
```sql
|
||||
-- Kunden mit mehr als 3 Bestellungen
|
||||
SELECT Kunden_ID, COUNT(*) AS Anzahl
|
||||
FROM Bestellung
|
||||
GROUP BY Kunden_ID
|
||||
HAVING COUNT(*) > 3;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Unterabfragen (Subqueries)
|
||||
|
||||
Unterabfragen sind verschachtelte SELECT-Anweisungen.
|
||||
|
||||
### Skalar-Unterabfrage
|
||||
|
||||
Gibt einen einzelnen Wert zurück.
|
||||
|
||||
```sql
|
||||
-- Alle Produkte, die teurer als der Durchschnitt sind
|
||||
SELECT Name, Preis
|
||||
FROM Produkt
|
||||
WHERE Preis > (SELECT AVG(Preis) FROM Produkt);
|
||||
```
|
||||
|
||||
### Unterabfrage mit IN
|
||||
|
||||
```sql
|
||||
-- Kunden, die mindestens eine Bestellung haben
|
||||
SELECT Name
|
||||
FROM Kunde
|
||||
WHERE Kunden_ID IN (SELECT Kunden_ID FROM Bestellung);
|
||||
```
|
||||
|
||||
### Korrelierte Unterabfrage
|
||||
|
||||
Referenziert Spalten der äußeren Abfrage.
|
||||
|
||||
```sql
|
||||
-- Produkte mit dem höchsten Preis pro Kategorie
|
||||
SELECT Name, Preis, Kategorie
|
||||
FROM Produkt p1
|
||||
WHERE Preis = (
|
||||
SELECT MAX(Preis)
|
||||
FROM Produkt p2
|
||||
WHERE p1.Kategorie = p2.Kategorie
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ORDER BY - Sortierung
|
||||
|
||||
```sql
|
||||
-- Aufsteigend (Standard)
|
||||
SELECT * FROM Produkt ORDER BY Preis;
|
||||
|
||||
-- Absteigend
|
||||
SELECT * FROM Produkt ORDER BY Preis DESC;
|
||||
|
||||
-- Mehrere Sortierspalten
|
||||
SELECT * FROM Bestellung
|
||||
ORDER BY Datum DESC, Gesamtbetrag DESC;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## LIMIT / TOP - Ergebnismenge begrenzen
|
||||
|
||||
```sql
|
||||
-- MySQL/MariaDB
|
||||
SELECT * FROM Produkt ORDER BY Preis DESC LIMIT 10;
|
||||
|
||||
-- SQL Server
|
||||
SELECT TOP 10 * FROM Produkt ORDER BY Preis DESC;
|
||||
|
||||
-- PostgreSQL
|
||||
SELECT * FROM Produkt ORDER BY Preis DESC LIMIT 10;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Übung: Komplexe Abfragen
|
||||
|
||||
### Ausgangsdaten
|
||||
|
||||
```sql
|
||||
-- Kunden (ID, Name, Stadt)
|
||||
-- Bestellungen (ID, Kunden_ID, Datum, Gesamtbetrag)
|
||||
-- BestellPositionen (Bestell_ID, Produkt_ID, Menge, Preis)
|
||||
```
|
||||
|
||||
### Aufgaben
|
||||
|
||||
1. Finde die 5 umsatzstärksten Kunden
|
||||
2. Liste alle Bestellungen mit Kundenname
|
||||
3. Zeige den durchschnittlichen Bestellwert pro Stadt
|
||||
|
||||
### Lösungen
|
||||
|
||||
```sql
|
||||
-- 1. Top 5 Kunden
|
||||
SELECT K.Name, SUM(B.Gesamtbetrag) AS Umsatz
|
||||
FROM Kunde K
|
||||
JOIN Bestellung B ON K.Kunden_ID = B.Kunden_ID
|
||||
GROUP BY K.Kunden_ID, K.Name
|
||||
ORDER BY Umsatz DESC
|
||||
LIMIT 5;
|
||||
|
||||
-- 2. Bestellungen mit Kundenname
|
||||
SELECT B.Bestell_ID, K.Name, B.Datum, B.Gesamtbetrag
|
||||
FROM Bestellung B
|
||||
JOIN Kunde K ON B.Kunden_ID = K.Kunden_ID
|
||||
ORDER BY B.Datum DESC;
|
||||
|
||||
-- 3. Durchschnittsbestellwert pro Stadt
|
||||
SELECT K.Stadt, AVG(B.Gesamtbetrag) AS Durchschnitt
|
||||
FROM Kunde K
|
||||
JOIN Bestellung B ON K.Kunden_ID = B.Kunden_ID
|
||||
GROUP BY K.Stadt;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF3-03-SQL-Grundlagen|Zurück: SQL-Grundlagen]]
|
||||
- [[LF3-05-Datenbankmanagement|Nächstes Thema: Datenbankmanagement]]
|
||||
- [[LF5-03-Programmierung|Programmierung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
245
1-Ausbildungsjahr/LF3-Datenbanken/LF3-05-Datenbankmanagement.md
Normal file
245
1-Ausbildungsjahr/LF3-Datenbanken/LF3-05-Datenbankmanagement.md
Normal file
@@ -0,0 +1,245 @@
|
||||
# 3.5 Datenbankmanagement
|
||||
|
||||
## Benutzerverwaltung
|
||||
|
||||
### Benutzer erstellen
|
||||
|
||||
```sql
|
||||
-- MySQL/MariaDB
|
||||
CREATE USER 'benutzer'@'localhost' IDENTIFIED BY 'passwort';
|
||||
|
||||
-- PostgreSQL
|
||||
CREATE USER benutzer WITH PASSWORD 'passwort';
|
||||
```
|
||||
|
||||
### Rechte vergeben (GRANT)
|
||||
|
||||
```sql
|
||||
-- Alle Rechte auf eine Datenbank
|
||||
GRANT ALL PRIVILEGES ON datenbank.* TO 'benutzer'@'localhost';
|
||||
|
||||
-- Nur Leserechte
|
||||
GRANT SELECT ON datenbank.tabelle TO 'benutzer'@'localhost';
|
||||
|
||||
-- Mehrere Rechte
|
||||
GRANT SELECT, INSERT, UPDATE ON datenbank.tabelle TO 'benutzer'@'localhost';
|
||||
```
|
||||
|
||||
### Rechte entziehen (REVOKE)
|
||||
|
||||
```sql
|
||||
REVOKE INSERT ON datenbank.tabelle FROM 'benutzer'@'localhost';
|
||||
```
|
||||
|
||||
### Rollen (PostgreSQL)
|
||||
|
||||
```sql
|
||||
-- Rolle erstellen
|
||||
CREATE ROLE leser;
|
||||
|
||||
-- Rechte zuweisen
|
||||
GRANT SELECT ON tabelle TO leser;
|
||||
|
||||
-- Rolle zu Benutzer
|
||||
GRANT leser TO benutzer;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Transaktionen
|
||||
|
||||
Transaktionen garantieren die **ACID-Eigenschaften**.
|
||||
|
||||
```
|
||||
ACID - Eigenschaften
|
||||
├── Atomicity (Atomarität)
|
||||
├── Consistency (Konsistenz)
|
||||
├── Isolation (Isolierung)
|
||||
└── Durability (Dauerhaftigkeit)
|
||||
```
|
||||
|
||||
### Transaktionssteuerung
|
||||
|
||||
```sql
|
||||
-- Transaktion starten (implizit bei vielen DBMS)
|
||||
START TRANSACTION;
|
||||
|
||||
-- Änderungen speichern
|
||||
COMMIT;
|
||||
|
||||
-- Änderungen zurücknehmen
|
||||
ROLLBACK;
|
||||
|
||||
-- Sicherungspunkt setzen
|
||||
SAVEPOINT speicherpunkt1;
|
||||
```
|
||||
|
||||
### Beispiel: Überweisung
|
||||
|
||||
```sql
|
||||
START TRANSaktion;
|
||||
|
||||
-- Geld abbuchen
|
||||
UPDATE Konto SET Kontostand = Kontostand - 100
|
||||
WHERE Konto_ID = 1;
|
||||
|
||||
-- Geld gutschreiben
|
||||
UPDATE Konto SET Kontostand = Kontostand + 100
|
||||
WHERE Konto_ID = 2;
|
||||
|
||||
-- Wenn alles OK, speichern
|
||||
COMMIT;
|
||||
|
||||
-- Bei Fehler: alles zurücksetzen
|
||||
ROLLBACK;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datensicherung (Backup)
|
||||
|
||||
### Backup-Typen
|
||||
|
||||
| Typ | Beschreibung |
|
||||
|-----|-------------|
|
||||
| Vollbackup | Alle Daten sichern |
|
||||
| Inkrementell | Nur Änderungen seit letztem Backup |
|
||||
| Differentiell | Änderungen seit Vollbackup |
|
||||
|
||||
### MySQL/MariaDB
|
||||
|
||||
```bash
|
||||
# Vollbackup
|
||||
mysqldump -u root -p datenbank > backup.sql
|
||||
|
||||
# Mehrere Datenbanken
|
||||
mysqldump -u root -p --databases db1 db2 > backup.sql
|
||||
|
||||
# Wiederherstellen
|
||||
mysql -u root -p datenbank < backup.sql
|
||||
```
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
```bash
|
||||
# Vollbackup
|
||||
pg_dump -U benutzer datenbank > backup.sql
|
||||
|
||||
# Wiederherstellen
|
||||
psql -U benutzer datenbank < backup.sql
|
||||
```
|
||||
|
||||
### Backup-Strategie
|
||||
|
||||
```
|
||||
Backup-Plan
|
||||
├── Täglich: Inkrementelles Backup
|
||||
├── Wöchentlich: Vollbackup
|
||||
├── Monatlich: Archivierung
|
||||
└── Offsite: Externe Speicherung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datenbankoptimierung
|
||||
|
||||
### Indizes
|
||||
|
||||
Indizes beschleunigen den Zugriff auf Daten.
|
||||
|
||||
```sql
|
||||
-- Index erstellen
|
||||
CREATE INDEX idx_name ON tabelle (spalte);
|
||||
|
||||
-- Zusammengesetzter Index
|
||||
CREATE INDEX idx_name ON tabelle (spalte1, spalte2);
|
||||
|
||||
-- Eindeutiger Index
|
||||
CREATE UNIQUE INDEX idx_email ON tabelle (email);
|
||||
|
||||
-- Index löschen
|
||||
DROP INDEX idx_name ON tabelle;
|
||||
```
|
||||
|
||||
### EXPLAIN - Abfrage analysieren
|
||||
|
||||
```sql
|
||||
-- Ausführungsplan anzeigen
|
||||
EXPLAIN SELECT * FROM tabelle WHERE spalte = 'wert';
|
||||
|
||||
-- MySQL
|
||||
EXPLAIN FORMAT=JSON SELECT * FROM tabelle WHERE spalte = 'wert';
|
||||
```
|
||||
|
||||
### Optimierungstipps
|
||||
|
||||
| Tipp | Beschreibung |
|
||||
|------|-------------|
|
||||
| INDEX verwenden | Für WHERE-Joins und -Spalten |
|
||||
| SELECT * vermeiden | Nur benötigte Spalten |
|
||||
| JOINs minimieren | Nicht mehr als nötig |
|
||||
| Wildcards vermeiden | `LIKE '%wert'` ist langsam |
|
||||
|
||||
---
|
||||
|
||||
## Datensicherheit
|
||||
|
||||
### SQL Injection verhindern
|
||||
|
||||
```sql
|
||||
-- NICHT SO: Direkte Eingabe
|
||||
SELECT * FROM benutzer WHERE name = '" + eingabe + "'
|
||||
|
||||
-- BESSER: Prepared Statements
|
||||
PREPARE stmt FROM 'SELECT * FROM benutzer WHERE name = ?';
|
||||
SET @name = eingabe;
|
||||
EXECUTE stmt USING @name;
|
||||
```
|
||||
|
||||
### Verschlüsselung
|
||||
|
||||
```
|
||||
Verschlüsselungsebenen
|
||||
├── Transport Layer Security (TLS)
|
||||
├── Transparent Data Encryption (TDE)
|
||||
└── Spaltenweise Verschlüsselung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Monitoring
|
||||
|
||||
### MySQL/MariaDB
|
||||
|
||||
```sql
|
||||
-- Aktuelle Verbindungen
|
||||
SHOW PROCESSLIST;
|
||||
|
||||
-- Statusvariablen
|
||||
SHOW STATUS LIKE 'Connections';
|
||||
SHOW STATUS LIKE 'Threads%';
|
||||
|
||||
-- Langsame Abfragen
|
||||
SHOW VARIABLES LIKE 'slow_query_log';
|
||||
```
|
||||
|
||||
### Wichtige Metriken
|
||||
|
||||
| Metrik | Beschreibung |
|
||||
|--------|-------------|
|
||||
| Connection Usage | Aktive Verbindungen |
|
||||
| Query Cache | Cache-Trefferquote |
|
||||
| Lock Waits | Warteschlangen |
|
||||
| Buffer Pool | Speicherauslastung |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF3-04-SQL-Abfragen|Zurück: SQL-Abfragen]]
|
||||
- [[LF4-IT-Sicherheit|Sicherheit: Zugriffskontrolle]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Datenschutz]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
226
1-Ausbildungsjahr/LF3-Netzwerke-einbinden/LF3-Notizen.md
Normal file
226
1-Ausbildungsjahr/LF3-Netzwerke-einbinden/LF3-Notizen.md
Normal file
@@ -0,0 +1,226 @@
|
||||
# LF 3: Clients in Netzwerke einbinden
|
||||
|
||||
> **1. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, eine Netzwerkinfrastruktur zu analysieren sowie Clients zu integrieren.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Anforderungen an die Client-Integration im Kundengespräch erfassen
|
||||
- [ ] Netzwerkkomponenten und deren Eigenschaften beschreiben
|
||||
- [ ] Physische und logische Netzwerkpläne lesen und erstellen
|
||||
- [ ] Clients für Netzwerke konfigurieren (IP, DNS, DHCP, etc.)
|
||||
- [ ] Clients in bestehende Netzwerke einbinden
|
||||
- [ ] Funktionstests durchführen und dokumentieren
|
||||
- [ ] Wirtschaftlichkeit und Ökologie berücksichtigen
|
||||
|
||||
---
|
||||
|
||||
## Netzwerk-Grundlagen
|
||||
|
||||
### OSI-Schichtenmodell (7 Layer)
|
||||
|
||||
| Layer | Name | Beispiele | Protokolle |
|
||||
|-------|------|-----------|-------------|
|
||||
| 7 | Application | HTTP, FTP, SMTP | DNS, DHCP |
|
||||
| 6 | Presentation | SSL/TLS | JPEG, GIF |
|
||||
| 5 | Session | RPC, NetBIOS | - |
|
||||
| 4 | Transport | TCP, UDP | - |
|
||||
| 3 | Network | IP, ICMP | Router |
|
||||
| 2 | Data Link | Ethernet, Wi-Fi | Switch |
|
||||
| 1 | Physical | Kabel, Glasfaser | Hub |
|
||||
|
||||
### TCP/IP-Modell (4 Layer)
|
||||
|
||||
```
|
||||
+------------------------+
|
||||
| Application Layer | ← HTTP, FTP, SMTP, DNS, DHCP
|
||||
+------------------------+
|
||||
| Transport Layer | ← TCP, UDP
|
||||
+------------------------+
|
||||
| Internet Layer | ← IP, ICMP, ARP
|
||||
+------------------------+
|
||||
| Network Access Layer | ← Ethernet, Wi-Fi
|
||||
+------------------------+
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Netzwerkkomponenten
|
||||
|
||||
### Aktive Komponenten
|
||||
|
||||
| Komponente | OSI-Layer | Funktion |
|
||||
|-----------|-----------|----------|
|
||||
| **Hub** | Layer 1 | Signal verstärken, Broadcast |
|
||||
| **Switch** | Layer 2 | MAC-Adressen lernen, VLANs |
|
||||
| **Router** | Layer 3 | IP-Routing zwischen Netzen |
|
||||
| **Gateway** | Layer 3-7 | Protokollübersetzung |
|
||||
| **Access Point** | Layer 1-2 | WLAN-Verbindung |
|
||||
|
||||
### Kabeltypen
|
||||
|
||||
| Typ | max. Länge | max. Geschwindigkeit |
|
||||
|-----|------------|---------------------|
|
||||
| CAT5e | 100m | 1 Gbit/s |
|
||||
| CAT6 | 100m | 10 Gbit/s (55m) |
|
||||
| CAT6a | 100m | 10 Gbit/s |
|
||||
| CAT7/7a | 100m | 10+ Gbit/s |
|
||||
|
||||
---
|
||||
|
||||
## IP-Konfiguration
|
||||
|
||||
### IPv4
|
||||
|
||||
**Aufbau:** 4 Oktette (0-255), maximal 32 Bit
|
||||
|
||||
**IP-Adresse Beispiel:** `192.168.1.100`
|
||||
|
||||
**Subnetzmaske:** `255.255.255.0` (/24)
|
||||
|
||||
**私有 IP-Bereiche (RFC 1918):**
|
||||
- 10.0.0.0/8
|
||||
- 172.16.0.0/12
|
||||
- 192.168.0.0/16
|
||||
|
||||
### IPv6
|
||||
|
||||
**Aufbau:** 8 Gruppen à 16 Bit, Hexadezimal
|
||||
|
||||
**Beispiel:** `2001:0db8:85a3:0000:0000:8a2e:0370:7334`
|
||||
|
||||
**Abkürzung:**
|
||||
- Führende Nullen können weggelassen werden
|
||||
- Doppelter Doppelpunkt (::) für aufeinanderfolgende Nullgruppen
|
||||
|
||||
---
|
||||
|
||||
## DHCP (Dynamic Host Configuration Protocol)
|
||||
|
||||
### Ablauf (DORA)
|
||||
|
||||
```
|
||||
Client Server
|
||||
| 1. DISCOVER |
|
||||
|------------------>|
|
||||
| 2. OFFER |
|
||||
|<------------------|
|
||||
| 3. REQUEST |
|
||||
|------------------>|
|
||||
| 4. ACK |
|
||||
|<------------------|
|
||||
```
|
||||
|
||||
### DHCP-Pool Beispiel
|
||||
|
||||
```
|
||||
Network: 192.168.1.0/24
|
||||
Range: 192.168.1.100 - 192.168.1.200
|
||||
Gateway: 192.168.1.1
|
||||
DNS: 192.168.1.1, 8.8.8.8
|
||||
Lease Time: 24 hours
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## DNS (Domain Name System)
|
||||
|
||||
### Aufbau
|
||||
|
||||
```
|
||||
Beispiel: www.example.com
|
||||
│ │
|
||||
│ └─> TLD (Top Level Domain)
|
||||
└──────────> Domain
|
||||
```
|
||||
|
||||
### DNS-Einträge
|
||||
|
||||
| Typ | Verwendung |
|
||||
|-----|------------|
|
||||
| A | IPv4-Adresse |
|
||||
| AAAA | IPv6-Adresse |
|
||||
| CNAME | Alias |
|
||||
| MX | Mailserver |
|
||||
| NS | Nameserver |
|
||||
| TXT | Textinfo |
|
||||
|
||||
---
|
||||
|
||||
## Netzwerkplanung
|
||||
|
||||
### Logischer Netzwerkplan
|
||||
|
||||
- IP-Adressierung
|
||||
- Subnetze
|
||||
- Routing
|
||||
- Dienste
|
||||
|
||||
### Physischer Netzwerkplan
|
||||
|
||||
- Kabelwege
|
||||
- Rack-Belegung
|
||||
- Port-Belegung
|
||||
- Switch-Ports
|
||||
|
||||
---
|
||||
|
||||
## Sicherheit
|
||||
|
||||
### Netzwerksicherheit
|
||||
|
||||
- Firewall-Regeln
|
||||
- VLAN-Trennung
|
||||
- Port-Security
|
||||
- VPN für Remote-Zugriff
|
||||
|
||||
### Energiesparen
|
||||
|
||||
- Energy Efficient Ethernet (EEE)
|
||||
- Wake-on-LAN
|
||||
- Zeitschaltuhren
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen
|
||||
|
||||
1. **Informieren**: Anforderungen erfassen, Netzwerk analysieren
|
||||
2. **Planen**: Konzept erstellen, Komponenten auswählen
|
||||
3. **Durchführen**: Konfiguration durchführen, Clients einbinden
|
||||
4. **Überprüfen**: Funktionstests, Dokumentation
|
||||
5. **Reflektieren**: Wirtschaftlichkeit, Optimierung
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- **Teil 1 der Abschlussprüfung**
|
||||
- Praktische Netzwerkkonfiguration
|
||||
- IP-Planung und Subnetting
|
||||
|
||||
---
|
||||
|
||||
## Übungsaufgaben
|
||||
|
||||
1. IP-Adresse für Client konfigurieren (statisch/DHCP)
|
||||
2. Kleinen Netzwerkplan erstellen (max. 10 Clients)
|
||||
3. DHCP-Server konfigurieren
|
||||
4. DNS-Auflösung testen
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF2-Arbeitsplätze-ausstatten|Vorher: LF 2]]
|
||||
- [[LF4-Schutzbedarfsanalyse|Nachher: LF 4 - Schutzbedarfsanalyse]]
|
||||
- [[Netzwerk-Technik|Netzwerktechnik]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
43
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-00-Übersicht.md
Normal file
43
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-00-Übersicht.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Lernfeld 4: IT-Sicherheit gewährleisten
|
||||
|
||||
## Übersicht
|
||||
|
||||
Dieses Lernfeld behandelt die Grundlagen der IT-Sicherheit und des Datenschutzes.
|
||||
|
||||
## Themen
|
||||
|
||||
| Nr. | Thema | Beschreibung |
|
||||
|-----|-------|-------------|
|
||||
| 4.1 | [[LF4-01-Gefahren-Analyse|Gefahren und Bedrohungen]] | Malware, Hacker, Social Engineering |
|
||||
| 4.2 | [[LF4-02-Schutzmassnahmen|Schutzmaßnahmen]] | Virenschutz, Firewall, Verschlüsselung |
|
||||
| 4.3 | [[LF4-03-Sicherheitskonzepte|Sicherheitskonzepte]] | BSI, ISO 27001 |
|
||||
| 4.4 | [[LF4-04-Datenschutz|Datenschutz (DSGVO)]] | Rechtliche Anforderungen |
|
||||
|
||||
## Lernziele
|
||||
|
||||
- Bedrohungen für IT-Systeme erkennen
|
||||
- Schutzmaßnahmen implementieren
|
||||
- Datenschutzanforderungen umsetzen
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- LF1: Unternehmen und Rolle
|
||||
- LF2: Arbeitsplätze ausstatten
|
||||
- LF3: Datenbanken entwickeln
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Teil 1 Abschlussprüfung (schriftlich)
|
||||
- Teil 2 Abschlussprüfung (praktisch)
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF3-05-Datenbankmanagement|Zurück: Datenbankmanagement]]
|
||||
- [[LF5-Analyse-Design|Nächstes Lernfeld: Analyse und Design]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Datenschutz]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
197
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-01-Gefahren-Analyse.md
Normal file
197
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-01-Gefahren-Analyse.md
Normal file
@@ -0,0 +1,197 @@
|
||||
# 4.1 Gefahren und Bedrohungen
|
||||
|
||||
## Bedrohungskategorien
|
||||
|
||||
```
|
||||
Bedrohungen - Übersicht
|
||||
├── Malware (Schadsoftware)
|
||||
├── Hacker-Angriffe
|
||||
├── Social Engineering
|
||||
├── Physische Bedrohungen
|
||||
└── Insider-Bedrohungen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Malware (Schadsoftware)
|
||||
|
||||
### Arten von Malware
|
||||
|
||||
| Typ | Beschreibung | Beispiel |
|
||||
|-----|-------------|----------|
|
||||
| **Virus** | Benötigt Wirt, verbreitet sich | Dateivirus |
|
||||
| **Wurm** | Selbstständig, Netzwerk | Conficker |
|
||||
| **Trojaner** | Tarnung als nützliches Programm | Emotet |
|
||||
| **Ransomware** | Verschlüsselt Daten | WannaCry |
|
||||
| **Spyware** | Spioniert Nutzer aus | Keylogger |
|
||||
| **Adware** | Werbung anzeigen | Browser-Hijacker |
|
||||
| **Rootkit** | Versteckt Eindringlinge | Kernel-Rootkit |
|
||||
|
||||
### Schadfunktionen
|
||||
|
||||
```
|
||||
Malware-Funktionen
|
||||
├── Datenspionage
|
||||
├── Datenzerstörung
|
||||
├── Systemübernahme
|
||||
├── Botnetz-Erstellung
|
||||
├── Erpressung
|
||||
└── Kryptomining
|
||||
```
|
||||
|
||||
### Angriffsvektoren
|
||||
|
||||
| Vektor | Beschreibung |
|
||||
|--------|-------------|
|
||||
| E-Mail | Phishing, infizierte Anhänge |
|
||||
| Web | Drive-by-Downloads |
|
||||
| USB | Infizierte Wechselmedien |
|
||||
| Netzwerk | Exploits, Schwachstellen |
|
||||
| Social Engineering | Benutzer täuschen |
|
||||
|
||||
---
|
||||
|
||||
## Hacker-Angriffe
|
||||
|
||||
### Angriffsarten
|
||||
|
||||
```
|
||||
Angriffstechniken
|
||||
├── Denial of Service (DoS)
|
||||
├── Distributed DoS (DDoS)
|
||||
├── Man-in-the-Middle
|
||||
├── SQL Injection
|
||||
├── Cross-Site Scripting (XSS)
|
||||
├── Buffer Overflow
|
||||
└── Brute Force
|
||||
```
|
||||
|
||||
### DoS/DDoS
|
||||
|
||||
```
|
||||
DoS - Denial of Service
|
||||
Ziel: Dienst unerreichbar machen
|
||||
|
||||
Methoden:
|
||||
├── Überlastung (Traffic-Flood)
|
||||
├── Ausnutzung von Schwachstellen
|
||||
└── Ressourcenerschöpfung
|
||||
```
|
||||
|
||||
### SQL Injection
|
||||
|
||||
```sql
|
||||
-- Bösartige Eingabe
|
||||
' OR '1'='1
|
||||
|
||||
-- Resultat (alle Daten werden zurückgegeben)
|
||||
SELECT * FROM benutzer WHERE name = '' OR '1'='1'
|
||||
```
|
||||
|
||||
### Brute-Force
|
||||
|
||||
```
|
||||
Brute-Force - Ausprobieren aller Möglichkeiten
|
||||
|
||||
Schutz:
|
||||
├── Sperrung nach X Versuchen
|
||||
├── Captcha
|
||||
├── Zwei-Faktor-Authentifizierung
|
||||
└── Starke Passwörter
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Social Engineering
|
||||
|
||||
### Psychologische Angriffe
|
||||
|
||||
| Technik | Beschreibung | Beispiel |
|
||||
|---------|-------------|----------|
|
||||
| **Phishing** | Gefäuschte E-Mails | Bank-Fake-Mails |
|
||||
| **Spear Phishing** | Gezielt auf Opfer | CEO-Fraud |
|
||||
| **Vishing** | Telefon-Phishing | Support-Anruf |
|
||||
| **Pretexting** | Erfundene Szenarien | Polizei-Anruf |
|
||||
| **Baiting** | Köder | USB-Stick liegen lassen |
|
||||
|
||||
### Erkennung
|
||||
|
||||
```
|
||||
Phishing-Merkmale
|
||||
├── Absender-Adresse verdächtig
|
||||
├── Dringlichkeit / Drohungen
|
||||
├── Rechtschreibfehler
|
||||
├── Unerwartete Anhänge
|
||||
├── Fehlerhafte Links
|
||||
└── Ungewöhnliche Anfragen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Physische Bedrohungen
|
||||
|
||||
### Risiken
|
||||
|
||||
```
|
||||
Physische Bedrohungen
|
||||
├── Diebstahl (Laptop, Handy)
|
||||
├── Hardware-Beschädigung
|
||||
├── Umgebungseinflüsse (Feuer, Wasser)
|
||||
├── Stromausfall
|
||||
└── unbefugter Zutritt
|
||||
```
|
||||
|
||||
### Gegenmaßnahmen
|
||||
|
||||
| Maßnahme | Beschreibung |
|
||||
|----------|-------------|
|
||||
| Zutrittskontrolle | Türschlüssel, Chipkarte |
|
||||
| Alarmanlagen | Bewegungsmelder |
|
||||
| Brandschutz | Rauchmelder, Löschgeräte |
|
||||
| USV | Unterbrechungsfreie Stromversorgung |
|
||||
| Datensicherung | Regelmäßige Backups |
|
||||
|
||||
---
|
||||
|
||||
## Schadensarten
|
||||
|
||||
### Vertraulichkeit
|
||||
|
||||
```
|
||||
Vertraulichkeitsverletzung
|
||||
├── Unbefugter Datenzugriff
|
||||
├── Datenklau
|
||||
├── Spionage
|
||||
└── Veröffentlichung
|
||||
```
|
||||
|
||||
### Integrität
|
||||
|
||||
```
|
||||
Integritätsverletzung
|
||||
├── Datenänderung
|
||||
├── Manipulation
|
||||
├── Sabotage
|
||||
└── Fälschung
|
||||
```
|
||||
|
||||
### Verfügbarkeit
|
||||
|
||||
```
|
||||
Verfügbarkeitsverletzung
|
||||
├── Systemausfall
|
||||
├── Datenverlust
|
||||
├── DDoS-Angriff
|
||||
└── Ransomware
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF4-02-Schutzmassnahmen|Nächstes Thema: Schutzmaßnahmen]]
|
||||
- [[LF5-03-Programmierung|Programmierung: Sichere Softwareentwicklung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
235
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-02-Schutzmassnahmen.md
Normal file
235
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-02-Schutzmassnahmen.md
Normal file
@@ -0,0 +1,235 @@
|
||||
# 4.2 Schutzmaßnahmen
|
||||
|
||||
## Sicherheitsmaßnahmen - Überblick
|
||||
|
||||
```
|
||||
Sicherheitsebenen (Defense in Depth)
|
||||
├── Physische Sicherheit
|
||||
├── Netzwerksicherheit
|
||||
├── Systemsicherheit
|
||||
├── Anwendungssicherheit
|
||||
└── Datensicherheit
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Virenschutz
|
||||
|
||||
### Antivirus-Software
|
||||
|
||||
| Komponente | Funktion |
|
||||
|------------|----------|
|
||||
| Echtzeitschutz | Scannt Dateien beim Zugriff |
|
||||
| On-Demand-Scan | Manuelle Prüfung |
|
||||
| Signatur-Erkennung | Bekannte Schadsoftware |
|
||||
| Heuristik | Verdachtsverhalten erkennen |
|
||||
| Sandbox | Ausführung in isolierter Umgebung |
|
||||
|
||||
### Antiviren-Programme
|
||||
|
||||
| Produkt | Typ | Eigenschaften |
|
||||
|---------|-----|---------------|
|
||||
| Windows Defender | Integriert | Kostenlos, gut |
|
||||
| Bitdefender | Kommerziell | Top-Schutz |
|
||||
| Kaspersky | Kommerziell | Umfassend |
|
||||
| ClamAV | Open Source | Linux-Server |
|
||||
|
||||
### Konfiguration
|
||||
|
||||
```
|
||||
Antivirus-Einstellungen
|
||||
├── Echtzeitschutz aktiviert
|
||||
├── Automatische Updates
|
||||
├── Geplante Vollscans
|
||||
├── Quarantäne bei Fund
|
||||
└── Reporting aktivieren
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Firewall
|
||||
|
||||
### Firewall-Typen
|
||||
|
||||
| Typ | Ebene | Beschreibung |
|
||||
|-----|-------|-------------|
|
||||
| Paketfilter | Netzwerk | Nach IP/Port filtern |
|
||||
| Stateful Inspection | Netzwerk | Verbindungsstatus prüfen |
|
||||
| Application Layer | Netzwerk | Anwendungsprotokolle |
|
||||
| Host-Based | System | Einzelner PC |
|
||||
| Web Application (WAF) | Anwendung | HTTP/HTTPS |
|
||||
|
||||
### Windows Firewall
|
||||
|
||||
```powershell
|
||||
# Status abfragen
|
||||
Get-NetFirewallProfile
|
||||
|
||||
# Regel erstellen (PowerShell)
|
||||
New-NetFirewallRule -DisplayName "HTTP-Allow" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
|
||||
|
||||
# Regel deaktivieren
|
||||
Set-NetFirewallRule -DisplayName "HTTP-Allow" -Enabled False
|
||||
```
|
||||
|
||||
### Firewall-Regeln
|
||||
|
||||
```
|
||||
Regelstruktur
|
||||
├── Aktion: Erlauben/Blockieren
|
||||
├── Richtung: Eingehend/Ausgehend
|
||||
├── Protokoll: TCP/UDP/ICMP
|
||||
├── Port: Nummer oder Bereich
|
||||
├── IP-Adresse: Quelle/Ziel
|
||||
└── Programm: Pfad zur Anwendung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Verschlüsselung
|
||||
|
||||
### Verschlüsselungsarten
|
||||
|
||||
| Art | Verwendung | Beispiele |
|
||||
|-----|------------|----------|
|
||||
| **Symmetrisch** | Gleicher Schlüssel | AES, 3DES |
|
||||
| **Asymmetrisch** | Schlüsselpaar | RSA, ECC |
|
||||
| **Hashing** | Einwegfunktion | SHA-256, MD5 |
|
||||
|
||||
### Symmetrische Verschlüsselung
|
||||
|
||||
```
|
||||
Verschlüsselung mit AES
|
||||
Klartext → AES (Schlüssel) → Chiffretext
|
||||
Chiffretext → AES (Schlüssel) → Klartext
|
||||
```
|
||||
|
||||
### Asymmetrische Verschlüsselung
|
||||
|
||||
```
|
||||
Schlüsselpaar
|
||||
├── Öffentlicher Schlüssel (Public Key)
|
||||
│ └── Verschlüsselung, Verifizierung
|
||||
└── Privater Schlüssel (Private Key)
|
||||
└── Entschlüsselung, Signatur
|
||||
```
|
||||
|
||||
### Verschlüsselungsbereiche
|
||||
|
||||
| Bereich | Technologie | Beispiel |
|
||||
|---------|-------------|----------|
|
||||
| Festplatte | Full Disk Encryption (FDE) | BitLocker, FileVault |
|
||||
| Datei | Transparent Encryption | EFS, VeraCrypt |
|
||||
| E-Mail | S/MIME, PGP | Gpg4win |
|
||||
| Web | TLS/SSL | HTTPS |
|
||||
| Datenbank | Transparent Data Encryption | TDE |
|
||||
|
||||
---
|
||||
|
||||
## Authentifizierung
|
||||
|
||||
### Authentifizierungsfaktoren
|
||||
|
||||
```
|
||||
Authentifizierungsfaktoren
|
||||
├── Wissen (Something you know)
|
||||
│ └── Passwort, PIN
|
||||
├── Besitz (Something you have)
|
||||
│ └── Chipkarte, Token, Handy
|
||||
└── Eigenschaft (Something you are)
|
||||
└── Fingerabdruck, Face ID
|
||||
```
|
||||
|
||||
### Starke Authentifizierung (2FA/MFA)
|
||||
|
||||
| Typ | Beschreibung |
|
||||
|-----|-------------|
|
||||
| **2FA** | Zwei Faktoren |
|
||||
| **MFA** | Mehrere Faktoren |
|
||||
| **TOTP** | Zeitbasiert (Google Authenticator) |
|
||||
| **SMS** | Einmalcode per SMS (unsicherer) |
|
||||
| **Hardware-Token** | Physischer Schlüssel (YubiKey) |
|
||||
|
||||
### Passwort-Richtlinien
|
||||
|
||||
```
|
||||
Sichere Passwörter
|
||||
├── Mindestens 12 Zeichen
|
||||
├── Groß- und Kleinbuchstaben
|
||||
├── Zahlen und Sonderzeichen
|
||||
├── Keine Wörterbuchwörter
|
||||
├── Keine Wiederverwendung
|
||||
└── Regelmäßig ändern
|
||||
```
|
||||
|
||||
### Passwort-Manager
|
||||
|
||||
| Produkt | Plattform | Typ |
|
||||
|---------|----------|-----|
|
||||
| Bitwarden | Alle | Open Source |
|
||||
| 1Password | Alle | Kommerziell |
|
||||
| KeePass | Windows/Linux | Open Source |
|
||||
| iCloud Keychain | Apple | Integriert |
|
||||
|
||||
---
|
||||
|
||||
## Updates und Patches
|
||||
|
||||
### Patch-Management
|
||||
|
||||
```
|
||||
Patch-Prozess
|
||||
├── Identifikation → Sicherheitslücken melden
|
||||
├── Bewertung → Schweregrad prüfen
|
||||
├── Entwicklung → Patch erstellen
|
||||
├── Test → In Testumgebung prüfen
|
||||
├── Verteilung → Rollout planen
|
||||
└── Dokumentation → Änderungen festhalten
|
||||
```
|
||||
|
||||
### Patch-Stufen
|
||||
|
||||
| Stufe | Priorität | Zeitrahmen |
|
||||
|-------|----------|------------|
|
||||
| Kritisch | Sofort | 24-72 Stunden |
|
||||
| Hoch | Bald | 1 Woche |
|
||||
| Mittel | Geplant | 1 Monat |
|
||||
| Niedrig | Bei Gelegenheit | Quartal |
|
||||
|
||||
---
|
||||
|
||||
## Netzwerksicherheit
|
||||
|
||||
### VPNs (Virtual Private Network)
|
||||
|
||||
```
|
||||
VPN - Tunnel durch unsicheres Netzwerk
|
||||
Lokaler PC → Verschlüsselter Tunnel → Unternehmensnetzwerk
|
||||
```
|
||||
|
||||
| VPN-Typ | Beschreibung |
|
||||
|---------|-------------|
|
||||
| Site-to-Site | Netzwerk-zu-Netzwerk |
|
||||
| Remote Access | Einzelner Benutzer |
|
||||
| SSL-VPN | Browser-basiert |
|
||||
| IPsec | Standard-basiert |
|
||||
|
||||
### WLAN-Sicherheit
|
||||
|
||||
| Standard | Sicherheit | Empfehlung |
|
||||
|----------|------------|-------------|
|
||||
| WEP | Unsicher | Nicht nutzen |
|
||||
| WPA | Schwach | Nicht nutzen |
|
||||
| **WPA2** | Sicher | Empfohlen |
|
||||
| WPA3 | Sehr sicher | Neuinstallation |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF4-01-Gefahren-Analyse|Zurück: Gefahren und Bedrohungen]]
|
||||
- [[LF4-03-Sicherheitskonzepte|Nächstes Thema: Sicherheitskonzepte]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,236 @@
|
||||
# 4.3 Sicherheitskonzepte
|
||||
|
||||
## IT-Sicherheitsstandards
|
||||
|
||||
### BSI-Grundschutz
|
||||
|
||||
Das **BSI (Bundesamt für Sicherheit in der Informationstechnik)** definiert den **IT-Grundschutz**.
|
||||
|
||||
```
|
||||
BSI-Grundschutz - Bausteine
|
||||
├── SYS
|
||||
│ ├── SYS.1.1 Allgemeiner Server
|
||||
│ ├── SYS.1.2 Windows Server
|
||||
│ ├── SYS.1.3 Linux Server
|
||||
│ ├── SYS.2.1 Client
|
||||
│ └── ...
|
||||
├── APP
|
||||
├── NET
|
||||
├── INF
|
||||
├── ORG
|
||||
└── OPS
|
||||
```
|
||||
|
||||
### ISO 27001
|
||||
|
||||
Internationaler Standard für **Informationssicherheits-Managementsysteme (ISMS)**.
|
||||
|
||||
```
|
||||
ISO 27001 - PDCA-Zyklus
|
||||
├── Plan (Planen)
|
||||
├── Do (Umsetzen)
|
||||
├── Check (Prüfen)
|
||||
└── Act (Verbessern)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schutzbedarfsanalyse
|
||||
|
||||
### Schutzziele
|
||||
|
||||
```
|
||||
Schutzziele - CIA
|
||||
├── Vertraulichkeit (Confidentiality)
|
||||
├── Integrität (Integrity)
|
||||
└── Verfügbarkeit (Availability)
|
||||
```
|
||||
|
||||
### Schutzbedarfsfeststellung
|
||||
|
||||
```
|
||||
Schutzbedarfsanalyse - Schritte
|
||||
1. Assets identifizieren
|
||||
2. Bedrohungen analysieren
|
||||
3. Schwachstellen identifizieren
|
||||
4. Schadensszenarien bewerten
|
||||
5. Schutzbedarf festlegen
|
||||
```
|
||||
|
||||
### Schutzbedarfskategorien
|
||||
|
||||
| Kategorie | Beschreibung | Beispiel |
|
||||
|----------|-------------|----------|
|
||||
| **Normal** | Geringe Auswirkungen | Internes Wiki |
|
||||
| **Hoch** | Erhebliche Auswirkungen | Kunden-Daten |
|
||||
| **Sehr hoch** | Existenzielle Auswirkungen | Passwörter, Finanzen |
|
||||
|
||||
### Beispiel: Schutzbedarfsanalyse
|
||||
|
||||
```
|
||||
Beispiel: Online-Shop
|
||||
|
||||
Asset: Kunden-Datenbank
|
||||
- Vertraulichkeit: Hoch (personenbezogene Daten)
|
||||
- Integrität: Hoch (keine Manipulation)
|
||||
- Verfügbarkeit: Hoch (24/7 Betrieb)
|
||||
|
||||
Schutzmaßnahmen:
|
||||
- TLS-Verschlüsselung
|
||||
- Regelmäßige Backups
|
||||
- Redundante Systeme
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Risikomanagement
|
||||
|
||||
### Risikobewertung
|
||||
|
||||
```
|
||||
Risiko = Wahrscheinlichkeit × Schadensausmaß
|
||||
|
||||
Matrix:
|
||||
| gering | mittel | hoch
|
||||
----------|--------|--------|------
|
||||
gering | niedrig| niedrig| mittel
|
||||
mittel | niedrig| mittel | hoch
|
||||
hoch | mittel| hoch | kritisch
|
||||
```
|
||||
|
||||
### Risikobehandlung
|
||||
|
||||
```
|
||||
Risikobehandlung - Optionen
|
||||
├── Vermeiden → Risiko eliminieren
|
||||
├── Reduzieren → Maßnahmen implementieren
|
||||
├── Versichern → Risiko übertragen
|
||||
└── Akzeptieren → Risiko bewusst hinnehmen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sicherheitsrichtlinien
|
||||
|
||||
### Informationssicherheitsrichtlinie
|
||||
|
||||
```markdown
|
||||
# Informationssicherheitsrichtlinie
|
||||
|
||||
## 1. Zweck
|
||||
Diese Richtlinie definiert die Grundsätze...
|
||||
|
||||
## 2. Geltungsbereich
|
||||
Diese Richtlinie gilt für alle Mitarbeiter...
|
||||
|
||||
## 3. Verantwortlichkeiten
|
||||
- CISO: Gesamtverantwortung
|
||||
- IT-Abteilung: Technische Umsetzung
|
||||
- Mitarbeiter: Einhaltung
|
||||
|
||||
## 4. Regelungen
|
||||
- Passwortrichtlinie
|
||||
- Datensicherungsrichtlinie
|
||||
- Zugangsberechtigungen
|
||||
- Nutzung von IT-Systemen
|
||||
```
|
||||
|
||||
### Berechtigungskonzept
|
||||
|
||||
```
|
||||
Berechtigungskonzept - Grundsätze
|
||||
├── Need-to-know → Nur was nötig ist
|
||||
├── Least Privilege → Minimale Rechte
|
||||
├── Segregation of Duties → Aufgabentrennung
|
||||
└── Regelmäßige Prüfung → Rechte überprüfen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Business Continuity Management (BCM)
|
||||
|
||||
### Notfallplanung
|
||||
|
||||
```
|
||||
Notfallmanagement-Prozess
|
||||
├── Prävention → Risiken minimieren
|
||||
├── Detektion → Störung erkennen
|
||||
├── Reaktion → Sofortmaßnahmen
|
||||
├── Wiederherstellung → Systeme wiederherstellen
|
||||
└── Nachbereitung → Lessons Learned
|
||||
```
|
||||
|
||||
### Notfalltypen
|
||||
|
||||
| Typ | Beispiel | Reaktionszeit |
|
||||
|-----|----------|---------------|
|
||||
| Kritisch | Ransomware | Sofort |
|
||||
| Hoch | Server-Ausfall | 4 Stunden |
|
||||
| Mittel | E-Mail-Probleme | 24 Stunden |
|
||||
| Niedrig | Druckerdefekt | 1 Woche |
|
||||
|
||||
---
|
||||
|
||||
## Datensicherungskonzept
|
||||
|
||||
### Backup-Strategie
|
||||
|
||||
```
|
||||
Backup-Regel 3-2-1
|
||||
├── 3 Kopien der Daten
|
||||
├── 2 verschiedene Medien
|
||||
└── 1 Kopie extern (offsite)
|
||||
```
|
||||
|
||||
### Backup-Typen
|
||||
|
||||
| Typ | Zeitpunkt | Wiederherstellung |
|
||||
|-----|-----------|-------------------|
|
||||
| Vollbackup | Wöchentlich | Schnell |
|
||||
| Differentiell | Täglich | Mittel |
|
||||
| Inkrementell | Stündlich | Langsam |
|
||||
|
||||
### Aufbewahrung
|
||||
|
||||
```
|
||||
Aufbewahrungsfristen
|
||||
├── Täglich: 7 Tage
|
||||
├── Wöchentlich: 4 Wochen
|
||||
├── Monatlich: 12 Monate
|
||||
└── Jährlich: 10 Jahre (gesetzlich)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schulung und Sensibilisierung
|
||||
|
||||
### Security-Awareness
|
||||
|
||||
```
|
||||
Schulungsprogramm
|
||||
├── Neue Mitarbeiter: Grundlagen
|
||||
├── Jährlich: Auffrischung
|
||||
├── Bei Bedarf: Spezialthemen
|
||||
└── Phishing-Simulationen
|
||||
```
|
||||
|
||||
### Themen
|
||||
|
||||
| Bereich | Inhalt |
|
||||
|---------|--------|
|
||||
| Passwörter | Starke Passwörter, 2FA |
|
||||
| E-Mail | Phishing erkennen |
|
||||
| Social Engineering | Betrugsversuche |
|
||||
| Datenschutz | DSGVO-Grundlagen |
|
||||
| Mobile Geräte | Sicherheitsrichtlinien |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF4-02-Schutzmassnahmen|Zurück: Schutzmaßnahmen]]
|
||||
- [[LF4-04-Datenschutz|Nächstes Thema: Datenschutz (DSGVO)]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
245
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-04-Datenschutz.md
Normal file
245
1-Ausbildungsjahr/LF4-IT-Sicherheit/LF4-04-Datenschutz.md
Normal file
@@ -0,0 +1,245 @@
|
||||
# 4.4 Datenschutz (DSGVO)
|
||||
|
||||
## DSGVO - Grundlagen
|
||||
|
||||
Die **Datenschutz-Grundverordnung (DSGVO)** ist seit dem 25. Mai 2018 EU-weit gültig.
|
||||
|
||||
### Grundprinzipien
|
||||
|
||||
```
|
||||
DSGVO - Grundsätze (Art. 5)
|
||||
├── Rechtmäßigkeit, Transparenz
|
||||
├── Zweckbindung
|
||||
├── Datenminimierung
|
||||
├── Richtigkeit
|
||||
├── Speicherbegrenzung
|
||||
└── Integrität und Vertraulichkeit
|
||||
```
|
||||
|
||||
### Anwendungsbereich
|
||||
|
||||
| Bereich | Geltung |
|
||||
|---------|---------|
|
||||
| EU-Bürger | Weltweit |
|
||||
| EU-Unternehmen | Weltweit |
|
||||
| Drittland-Unternehmen | Bei Angebot in EU |
|
||||
|
||||
---
|
||||
|
||||
## Personenbezogene Daten
|
||||
|
||||
### Definition
|
||||
|
||||
> Alle Informationen, die sich auf eine **identifizierte** oder **identifizierbare** natürliche Person beziehen.
|
||||
|
||||
### Kategorien
|
||||
|
||||
| Kategorie | Beispiele |
|
||||
|-----------|----------|
|
||||
| Stammdaten | Name, Adresse, Geburtsdatum |
|
||||
| Kontaktdaten | Telefon, E-Mail |
|
||||
| Vertragsdaten | Kunden-Nr., Vertragsinhalt |
|
||||
| Nutzungsdaten | Logfiles, Cookies |
|
||||
| Gesundheitsdaten | Krankheit, Behinderung |
|
||||
| Biometrische Daten | Fingerabdruck, Face ID |
|
||||
| Politische Meinungen | Parteizugehörigkeit |
|
||||
| Religiöse Überzeugung | Konfession |
|
||||
|
||||
### Besondere Kategorien
|
||||
|
||||
```
|
||||
Art. 9 DSGVO - Besondere personenbezogene Daten
|
||||
├── Gesundheitsdaten
|
||||
├── Biometrische Daten
|
||||
├── Politische Meinungen
|
||||
├── Religiöse Überzeugung
|
||||
├── Gewerkschaftszugehörigkeit
|
||||
├── Ethnische Herkunft
|
||||
├── Sexualleben
|
||||
└── Strafrechtliche Verurteilungen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Betroffenenrechte
|
||||
|
||||
### Rechte der Betroffenen
|
||||
|
||||
| Recht | Beschreibung |
|
||||
|-------|-------------|
|
||||
| **Auskunft** (Art. 15) | Informationen über verarbeitete Daten |
|
||||
| **Berichtigung** (Art. 16) | Falsche Daten korrigieren |
|
||||
| **Löschung** (Art. 17) | "Recht auf Vergessenwerden" |
|
||||
| **Einschränkung** (Art. 18) | Verarbeitung sperren |
|
||||
| **Datenübertragung** (Art. 20) | Daten in maschinenlesbarem Format |
|
||||
| **Widerspruch** (Art. 21) | Widerspruch gegen Verarbeitung |
|
||||
| **Automatisierte Entscheidungen** (Art. 22) | Keine rein automatisierten Entscheidungen |
|
||||
|
||||
### Informationspflichten
|
||||
|
||||
```
|
||||
Art. 13, 14 DSGVO - Bei Erhebung mitzuteilen
|
||||
├── Verantwortlicher
|
||||
├── Datenschutzbeauftragter
|
||||
├── Zweck der Verarbeitung
|
||||
├── Rechtsgrundlage
|
||||
├── Empfänger oder Kategorien
|
||||
├── Speicherdauer
|
||||
├── Betroffenenrechte
|
||||
└── Beschwerderecht bei Behörde
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Verantwortliche
|
||||
|
||||
### Verantwortlicher
|
||||
|
||||
> Natürliche oder juristische Person, die über die **Zwecke und Mittel** der Verarbeitung entscheidet.
|
||||
|
||||
### Auftragsverarbeitung (Art. 28)
|
||||
|
||||
```
|
||||
Auftragsverarbeiter (AV)
|
||||
├── Externe Dienstleister (Cloud, Hosting)
|
||||
├── Weisungsgebunden
|
||||
├── Auftragsverarbeitungsvertrag (AVV) erforderlich
|
||||
└── Kontroll- und Überwachungspflichten
|
||||
```
|
||||
|
||||
### Datenschutzbeauftragter (DSB)
|
||||
|
||||
| Unternehmen | Pflicht |
|
||||
|-------------|----------|
|
||||
| > 20 Mitarbeiter | Pflicht |
|
||||
| Verarbeitung besonderer Daten | Pflicht |
|
||||
| Öffentliche Stelle | Immer |
|
||||
|
||||
---
|
||||
|
||||
## Technische und organisatorische Maßnahmen (TOM)
|
||||
|
||||
### Mindestanforderungen
|
||||
|
||||
```
|
||||
Art. 32 DSGVO - Sicherheit der Verarbeitung
|
||||
├── Pseudonymisierung
|
||||
├── Verschlüsselung
|
||||
├── Vertraulichkeit
|
||||
├── Integrität
|
||||
├── Verfügbarkeit
|
||||
└── Rasche Wiederherstellbarkeit
|
||||
```
|
||||
|
||||
### Beispiele für TOM
|
||||
|
||||
| Maßnahme | Beschreibung |
|
||||
|----------|-------------|
|
||||
| Zutrittskontrolle | Zugang zum Serverraum |
|
||||
| Zugriffskontrolle | Berechtigungskonzept |
|
||||
| Weitergabekontrolle | TLS-Verschlüsselung |
|
||||
| Eingabekontrolle | Protokollierung |
|
||||
| Verfügbarkeitskonzept | Backup, USV |
|
||||
| Trennungsgebot | Test-/Produktivumgebung |
|
||||
|
||||
---
|
||||
|
||||
## Datenschutz-Folgenabschätzung (DSFA)
|
||||
|
||||
### Wann erforderlich?
|
||||
|
||||
```
|
||||
Art. 35 DSGVO - Pflicht zur DSFA
|
||||
├── Verarbeitung besonderer Kategorien
|
||||
├── Umfangreiches Profiling
|
||||
├── Systematisches Monitoring
|
||||
├── Neue Technologien
|
||||
└── Risikoreiche Verarbeitung
|
||||
```
|
||||
|
||||
### Durchführung
|
||||
|
||||
```
|
||||
DSFA-Schritte
|
||||
1. Beschreibung der Verarbeitung
|
||||
2. Bewertung der Erforderlichkeit
|
||||
3. Risiken für Betroffene identifizieren
|
||||
4. Maßnahmen zur Risikominimierung
|
||||
5. Stellungnahme DSB
|
||||
6. Dokumentation
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datenschutzverletzungen
|
||||
|
||||
### Meldepflicht
|
||||
|
||||
```
|
||||
Art. 33 DSGVO - Meldung an Behörde
|
||||
├── Innerhalb von 72 Stunden
|
||||
├── Beschreibung der Verletzung
|
||||
├── Kategorien betroffener Daten
|
||||
├── Anzahl Betroffener
|
||||
├── Wahrscheinliche Folgen
|
||||
└── Ergriffene Maßnahmen
|
||||
```
|
||||
|
||||
### Benachrichtigungspflicht
|
||||
|
||||
```
|
||||
Art. 34 DSGVO - Benachrichtigung Betroffener
|
||||
├── Wenn hohe Risiken für Rechte
|
||||
├── Sofortige Benachrichtigung
|
||||
└── In verständlicher Sprache
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Bußgeld und Strafen
|
||||
|
||||
### DSGVO-Bußgelder
|
||||
|
||||
```
|
||||
Art. 83 DSGVO - Geldbußen
|
||||
├── Bis zu 20 Mio. EUR oder
|
||||
├── Bis zu 4% des weltweiten Jahresumsatzes
|
||||
└── Je nach Schwere des Verstoßes
|
||||
```
|
||||
|
||||
### Bußgeld-Kategorien
|
||||
|
||||
| Verstoß | Maximales Bußgeld |
|
||||
|----------|-------------------|
|
||||
| Grundprinzipien | 10 Mio. oder 2% |
|
||||
| Rechte der Betroffenen | 10 Mio. oder 2% |
|
||||
| Übermittlung in Drittland | 20 Mio. oder 4% |
|
||||
| Sonstige Verstöße | 20 Mio. oder 4% |
|
||||
|
||||
---
|
||||
|
||||
## Checkliste Datenschutz
|
||||
|
||||
```
|
||||
□ Verarbeitungsverzeichnis (Art. 30)
|
||||
□ Datenschutzbeauftragter benannt (falls nötig)
|
||||
□ Auftragsverarbeitungsverträge (Art. 28)
|
||||
□ Technische Maßnahmen implementiert
|
||||
□ Mitarbeiter geschult
|
||||
□ Datenschutz-Folgenabschätzung (falls nötig)
|
||||
□ Prozesse für Betroffenenrechte
|
||||
□ Datenschutzerklärung auf Website
|
||||
□ Verletzungsmanagement dokumentiert
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF4-03-Sicherheitskonzepte|Zurück: Sicherheitskonzepte]]
|
||||
- [[LF3-Datenbanken|Datenbanken: Datensicherheit]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Rechtliche Grundlagen]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
183
1-Ausbildungsjahr/LF4-Schutzbedarfsanalyse/LF4-Notizen.md
Normal file
183
1-Ausbildungsjahr/LF4-Schutzbedarfsanalyse/LF4-Notizen.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# LF 4: Schutzbedarfsanalyse im eigenen Arbeitsbereich durchführen
|
||||
|
||||
> **1. Ausbildungsjahr** | Zeitrichtwert: **40 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, mit Hilfe einer bestehenden Sicherheitsleitlinie eine Schutzbedarfsanalyse zur Ermittlung der Informationssicherheit auf Grundschutzniveau in ihrem Arbeitsbereich durchzuführen.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Die Schutzziele der Informationssicherheit erklären
|
||||
- [ ] Rechtliche Regelungen zum Datenschutz anwenden (DSGVO, BDSG)
|
||||
- [ ] Bedrohungen für IT-Systeme identifizieren
|
||||
- [ ] Eine Schutzbedarfsanalyse durchführen
|
||||
- [ ] Schutzmaßnahmen vorschlagen und umsetzen
|
||||
- [ ] Den IT-Sicherheitsprozess reflektieren
|
||||
|
||||
---
|
||||
|
||||
## Schutzziele (CIA)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ SCHUTZZIELE │
|
||||
├─────────────────┬─────────────────┬─────────────────────┤
|
||||
│ VERTRAULICHKEIT │ INTEGRITÄT │ VERFÜGBARKEIT │
|
||||
│ (Confidentiality)│ (Integrity) │ (Availability) │
|
||||
├─────────────────┼─────────────────┼─────────────────────┤
|
||||
│ Nur befugte │ Daten müssen │ Systeme und Daten │
|
||||
│ Personen können │ korrekt und │ sind bei Bedarf │
|
||||
│ Daten lesen │ unverändert │ verfügbar │
|
||||
│ │ sein │ │
|
||||
├─────────────────┴─────────────────┴─────────────────────┤
|
||||
│ Weitere Schutzziele: │
|
||||
│ - Authentizität (Echtheit nachweisen) │
|
||||
│ - Verbindlichkeit (Nicht-Abstreitbarkeit) │
|
||||
│ - Zurechenbarkeit (Rückverfolgbarkeit) │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Bedrohungen
|
||||
|
||||
### Kategorien
|
||||
|
||||
| Kategorie | Beispiele |
|
||||
|-----------|-----------|
|
||||
| **Technisch** | Hardware-Ausfall, Software-Fehler, Malware |
|
||||
| **Natürlich** | Hochwasser, Feuer, Blitzschlag |
|
||||
| **Menschlich** | Fahrlässigkeit, Vorsatz, Social Engineering |
|
||||
| **Organisatorisch** | Prozessfehler, Personalmangel |
|
||||
|
||||
### Häufige Angriffe
|
||||
|
||||
```
|
||||
Angriffsvektoren:
|
||||
├── Phishing
|
||||
├── Ransomware
|
||||
├── DDoS
|
||||
├── SQL Injection
|
||||
├── Cross-Site Scripting (XSS)
|
||||
├── Man-in-the-Middle
|
||||
├── Brute Force
|
||||
└── Zero-Day-Exploits
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schutzmaßnahmen
|
||||
|
||||
### Organisatorisch
|
||||
- Sicherheitsrichtlinien
|
||||
- Schulungen/Awareness
|
||||
- Zugriffskontrollen
|
||||
- Incident-Response-Prozess
|
||||
|
||||
### Technisch
|
||||
- Firewall
|
||||
- Antivirensoftware
|
||||
- Verschlüsselung
|
||||
- Backup/Recovery
|
||||
- Updates/Patches
|
||||
|
||||
### Physisch
|
||||
- Zutrittskontrolle
|
||||
- Brandschutz
|
||||
- USV (unterbrechungsfreie Stromversorgung)
|
||||
|
||||
---
|
||||
|
||||
## Rechtliche Grundlagen
|
||||
|
||||
### DSGVO (Datenschutz-Grundverordnung)
|
||||
- seit 25.05.2018 wirksam
|
||||
- Personenbezogene Daten schützen
|
||||
- Betroffenenrechte stärken
|
||||
- Bußgelder bis 20 Mio. € oder 4% des Jahresumsatzes
|
||||
|
||||
### BDSG (Bundesdatenschutzgesetz)
|
||||
- Ergänzt DSGVO für Deutschland
|
||||
- Regelungen für öffentliche Stellen
|
||||
|
||||
### Wichtige Begriffe
|
||||
|
||||
| Begriff | Erklärung |
|
||||
|---------|-----------|
|
||||
| **Personenbezogene Daten** | Alle Informationen, die sich auf eine identifizierte Person beziehen |
|
||||
| **Verarbeitung** | Speichern, Übermitteln, Löschen, etc. |
|
||||
| **Einwilligung** | Freiwillige, informierte Zustimmung |
|
||||
| **Datenschutzbeauftragter** | Pflicht bei >20 Mitarbeitern mit Datenverarbeitung |
|
||||
|
||||
---
|
||||
|
||||
## BSI-Grundschutz
|
||||
|
||||
### Vorgehen
|
||||
|
||||
1. **Strukturanalyse**: IT-Systeme erfassen
|
||||
2. **Schutzbedarfsfeststellung**: Schutzniveau bestimmen
|
||||
3. **Modellierung**: Geeignete Bausteine auswählen
|
||||
4. **Umsetzung**: Maßnahmen umsetzen
|
||||
5. **Erprobung**: Basis-Check durchführen
|
||||
|
||||
### Schutzbedarfskategorien
|
||||
|
||||
| Kategorie | Normal | Hoch | Sehr Hoch |
|
||||
|-----------|--------|------|-----------|
|
||||
| Vertraulichkeit | begrenzt | erheblich | existenzbedrohend |
|
||||
| Integrität | begrenzt | erheblich | existenzbedrohend |
|
||||
| Verfügbarkeit | begrenzt | erheblich | existenzbedrohend |
|
||||
|
||||
---
|
||||
|
||||
## Verschlüsselung
|
||||
|
||||
### Symmetrisch
|
||||
- Ein Schlüssel für Ver- und Entschlüsselung
|
||||
- Bsp.: AES, DES, 3DES
|
||||
- Schnell, aber Schlüsselaustausch problematisch
|
||||
|
||||
### Asymmetrisch
|
||||
- Schlüsselpaar: öffentlich + privat
|
||||
- Bsp.: RSA, ECC
|
||||
- Langsamer, sicherer Schlüsselaustausch
|
||||
|
||||
### Hybride Verfahren
|
||||
- Asymmetrisch für Schlüsselaustausch
|
||||
- Symmetrisch für Datenverschlüsselung
|
||||
- Bsp.: TLS/SSL, PGP
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen
|
||||
|
||||
1. **Informieren**: Sicherheitsleitlinie, Schutzziele
|
||||
2. **Planen**: Schutzbedarfsanalyse vorbereiten
|
||||
3. **Durchführen**: Analyse durchführen, Maßnahmen ableiten
|
||||
4. **Überprüfen**: Ergebnisse bewerten
|
||||
5. **Reflektieren**: Prozess bewerten
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Wichtiges Grundlagen-Lernfeld für IT-Sicherheit
|
||||
- Wird in Teil 1 und Teil 2 der Prüfung vorausgesetzt
|
||||
- Basis für LF 11b/d (Betrieb und Sicherheit vernetzter Systeme)
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF3-Netzwerke-einbinden|Vorher: LF 3]]
|
||||
- [[LF5-Datenbanken-anpassen|Nachher: LF 5]]
|
||||
- [[IT-Sicherheit|Vertiefung IT-Sicherheit]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
45
1-Ausbildungsjahr/LF5-Analyse-Design/LF5-00-Übersicht.md
Normal file
45
1-Ausbildungsjahr/LF5-Analyse-Design/LF5-00-Übersicht.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Lernfeld 5: Softwareentwicklung analysieren und planen
|
||||
|
||||
## Übersicht
|
||||
|
||||
Dieses Lernfeld behandelt die Analyse und Planung von Softwareprojekten.
|
||||
|
||||
## Themen
|
||||
|
||||
| Nr. | Thema | Beschreibung |
|
||||
|-----|-------|-------------|
|
||||
| 5.1 | [[LF5-01-Anforderungsanalyse|Anforderungsanalyse]] | Anforderungen erheben und dokumentieren |
|
||||
| 5.2 | [[LF5-02-Softwaremodellierung|Softwaremodellierung]] | UML, Struktogramme, Flussdiagramme |
|
||||
| 5.3 | [[LF5-03-Programmierung|Programmierung]] | Algorithmen, Datenstrukturen |
|
||||
| 5.4 | [[LF5-04-Testverfahren|Testverfahren]] | Unit Tests, Integrationstests |
|
||||
|
||||
## Lernziele
|
||||
|
||||
- Anforderungen analysieren und dokumentieren
|
||||
- Softwaremodelle erstellen
|
||||
- Algorithmen entwickeln
|
||||
- Tests planen und durchführen
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- LF1: Unternehmen und Rolle
|
||||
- LF2: Arbeitsplätze ausstatten
|
||||
- LF3: Datenbanken entwickeln
|
||||
- LF4: IT-Sicherheit
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Teil 1 Abschlussprüfung (schriftlich)
|
||||
- Teil 2 Abschlussprüfung (praktisch)
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF4-04-Datenschutz|Zurück: Datenschutz (DSGVO)]]
|
||||
- [[LF6-Webanwendungen|Nächstes Lernfeld: Webanwendungen entwickeln]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Projektmanagement]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,220 @@
|
||||
# 5.1 Anforderungsanalyse
|
||||
|
||||
## Anforderungsmanagement
|
||||
|
||||
### Was sind Anforderungen?
|
||||
|
||||
```
|
||||
Anforderungen - Definition
|
||||
Anforderung = Bedürfnis oder Erwartung eines Stakeholders
|
||||
```
|
||||
|
||||
### Arten von Anforderungen
|
||||
|
||||
```
|
||||
Anforderungstypen
|
||||
├── Funktionale Anforderungen
|
||||
│ └── Was das System tun muss
|
||||
└── Nicht-funktionale Anforderungen
|
||||
└── Qualitätsanforderungen (Performance, Sicherheit, etc.)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Funktionale Anforderungen
|
||||
|
||||
### Beispiele
|
||||
|
||||
| Anforderung | Beschreibung |
|
||||
|-------------|-------------|
|
||||
| F01 | Das System muss Benutzer anmelden können |
|
||||
| F02 | Das System muss Daten speichern können |
|
||||
| F03 | Das System muss Berichte erstellen können |
|
||||
|
||||
### Anforderungskategorien
|
||||
|
||||
```
|
||||
Funktionale Anforderungen
|
||||
├── Geschäftsregeln
|
||||
├── Schnittstellen
|
||||
├── Datenverarbeitung
|
||||
├── Reporting
|
||||
└── Administrationsfunktionen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Nicht-funktionale Anforderungen
|
||||
|
||||
### Kategorien
|
||||
|
||||
| Kategorie | Beschreibung | Beispiele |
|
||||
|-----------|-------------|----------|
|
||||
| **Performance** | Geschwindigkeit | < 2 Sek. Ladezeit |
|
||||
| **Skalierbarkeit** | Wachstum | 1000 Benutzer |
|
||||
| **Verfügbarkeit** | Laufzeit | 99,9% |
|
||||
| **Sicherheit** | Schutz | TLS-Verschlüsselung |
|
||||
| **Benutzerfreundlichkeit** | Bedienung | Intuitiv |
|
||||
| **Wartbarkeit** | Änderungen | Modulare Struktur |
|
||||
| **Kompatibilität** | Plattformen | Windows, macOS, Linux |
|
||||
|
||||
---
|
||||
|
||||
## Anforderungen erheben
|
||||
|
||||
### Methoden
|
||||
|
||||
```
|
||||
Erhebungsmethoden
|
||||
├── Interviews
|
||||
├── Workshops
|
||||
├── Beobachtung
|
||||
├── Dokumentenanalyse
|
||||
├── Fragebögen
|
||||
└── Prototyping
|
||||
```
|
||||
|
||||
### Interview-Leitfaden
|
||||
|
||||
```
|
||||
Interview-Vorbereitung
|
||||
├── Ziele definieren
|
||||
├── Fragen vorbereiten
|
||||
├── Teilnehmer auswählen
|
||||
├── Zeitrahmen planen
|
||||
└── Dokumentation vorbereiten
|
||||
```
|
||||
|
||||
### Fragetechniken
|
||||
|
||||
| Fragetyp | Beispiel | Zweck |
|
||||
|----------|---------|-------|
|
||||
| Offen | "Wie arbeiten Sie heute?" | Verständnis |
|
||||
| Geschlossen | "Welches System nutzen Sie?" | Fakten |
|
||||
| Zurückfragend | "Warum ist das wichtig?" | Tiefe |
|
||||
| Hypothetisch | "Was würde passieren, wenn...?" | Szenarien |
|
||||
|
||||
---
|
||||
|
||||
## Anforderungen dokumentieren
|
||||
|
||||
### Lastenheft (Requirements Specification)
|
||||
|
||||
```markdown
|
||||
# Lastenheft - Projekt [Name]
|
||||
|
||||
## 1. Zielsetzung
|
||||
[Beschreibung des Projekts]
|
||||
|
||||
## 2. Funktionale Anforderungen
|
||||
- F01: [Beschreibung]
|
||||
- F02: [Beschreibung]
|
||||
|
||||
## 3. Nicht-funktionale Anforderungen
|
||||
- NF01: [Beschreibung]
|
||||
- NF02: [Beschreibung]
|
||||
|
||||
## 4. Schnittstellen
|
||||
- [Externe Systeme]
|
||||
|
||||
## 5. Abnahmekriterien
|
||||
- [Testfälle]
|
||||
```
|
||||
|
||||
### User Stories
|
||||
|
||||
```
|
||||
User Story - Format
|
||||
Als [Rolle] möchte ich [Ziel], um [Nutzen].
|
||||
|
||||
Beispiel:
|
||||
Als Kunde möchte ich mein Passwort zurücksetzen,
|
||||
um wieder Zugriff auf mein Konto zu haben.
|
||||
```
|
||||
|
||||
### User Story - Akzeptanzkriterien
|
||||
|
||||
```markdown
|
||||
User Story: Passwort zurücksetzen
|
||||
|
||||
Akzeptanzkriterien:
|
||||
- [ ] E-Mail-Adresse wird validiert
|
||||
- [ ] Link ist 24 Stunden gültig
|
||||
- [ ] Neues Passwort muss Mindestlänge haben
|
||||
- [ ] Bestätigungs-E-Mail wird gesendet
|
||||
- [ ] Nach Reset ist Login möglich
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Anforderungen priorisieren
|
||||
|
||||
### Priorisierungsmethoden
|
||||
|
||||
```
|
||||
Priorisierungs-Methoden
|
||||
├── MoSCoW-Methode
|
||||
├── Kano-Modell
|
||||
├── WSJF (Weighted Shortest Job First)
|
||||
└── Stack Ranking
|
||||
```
|
||||
|
||||
### MoSCoW-Methode
|
||||
|
||||
| Priorität | Bedeutung | Beispiel |
|
||||
|-----------|-----------|----------|
|
||||
| **Must have** | Unbedingt erforderlich | Login |
|
||||
| **Should have** | Sehr wichtig | Passwort vergessen |
|
||||
| **Could have** | Wünschenswert | Dark Mode |
|
||||
| **Won't have** | Dieses Release nicht | Export PDF |
|
||||
|
||||
---
|
||||
|
||||
## Anforderungen validieren
|
||||
|
||||
### Prüfkriterien
|
||||
|
||||
```
|
||||
Anforderungsprüfung - Checkliste
|
||||
├── Vollständig?
|
||||
├── Konsistent?
|
||||
├── Realisierbar?
|
||||
├── Testbar?
|
||||
├── Verständlich?
|
||||
└── Abgestimmt?
|
||||
```
|
||||
|
||||
### Review-Prozess
|
||||
|
||||
```
|
||||
Anforderungsreview
|
||||
├── Peer-Review
|
||||
├── Stakeholder-Abnahme
|
||||
├── Änderungsmanagement
|
||||
└── Versionierung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Werkzeuge
|
||||
|
||||
### Anforderungsmanagement-Tools
|
||||
|
||||
| Tool | Typ | Einsatz |
|
||||
|------|-----|---------|
|
||||
| Jira | Professionell | Große Projekte |
|
||||
| Azure DevOps | Professionell | Microsoft-Umgebung |
|
||||
| YouTrack | Professionell | Flexible Projekte |
|
||||
| Trello | Einfach | Kanban-Boards |
|
||||
| Markdown | Einfach | Dokumentation |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF5-02-Softwaremodellierung|Nächstes Thema: Softwaremodellierung]]
|
||||
- [[LF2-01-Kundenanforderungen|Kundengespräch]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
@@ -0,0 +1,335 @@
|
||||
# 5.2 Softwaremodellierung
|
||||
|
||||
## Modellierungssprachen
|
||||
|
||||
### Übersicht
|
||||
|
||||
```
|
||||
Modellierung - Sprachen
|
||||
├── UML (Unified Modeling Language)
|
||||
├── Struktogramme (Nassi-Shneiderman)
|
||||
├── Flussdiagramme (Flowcharts)
|
||||
├── Entity-Relationship (ER)
|
||||
└── Aktivitätsdiagramme
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## UML - Unified Modeling Language
|
||||
|
||||
### UML-Diagrammtypen
|
||||
|
||||
```
|
||||
UML 2.5 - Diagrammübersicht
|
||||
├── Strukturdiagramme
|
||||
│ ├── Klassendiagramm
|
||||
│ ├── Objektdiagramm
|
||||
│ ├── Komponentendiagramm
|
||||
│ ├── Verteilungsdiagramm
|
||||
│ └── Paketdiagramm
|
||||
└── Verhaltensdiagramme
|
||||
├── Anwendungsfalldiagramm
|
||||
├── Aktivitätsdiagramm
|
||||
├── Zustandsdiagramm
|
||||
└── Sequenzdiagramm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Klassendiagramm
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Klassendiagramm - Symbole
|
||||
┌─────────────────────────┐
|
||||
│ Klassenname │
|
||||
├─────────────────────────┤
|
||||
│ - attribut: Typ │ ← Eigenschaften
|
||||
├─────────────────────────┤
|
||||
│ + methode(): Rückgabetyp│ ← Methoden
|
||||
└─────────────────────────┘
|
||||
|
||||
Sichtbarkeit:
|
||||
+ public (öffentlich)
|
||||
- private (privat)
|
||||
# protected (geschützt)
|
||||
~ package (Paket)
|
||||
```
|
||||
|
||||
### Beziehungen
|
||||
|
||||
```
|
||||
Beziehungsarten
|
||||
├── Assoziation ───────
|
||||
├── Aggregation ◇─────── (hat ein, kann auch ohne existieren)
|
||||
├── Komposition ◆────── (hat ein, existiert nicht ohne)
|
||||
├── Vererbung △───────
|
||||
└── Implementierung ▷───
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌─────────────┐ ┌─────────────┐
|
||||
│ Kunde │ 1 * │ Bestellung │
|
||||
├─────────────┤─────────│─────────────┤
|
||||
│ -name │* │ -datum │
|
||||
│ -adresse │ │ -status │
|
||||
├─────────────┤ ├─────────────┤
|
||||
│ +bestellen()│ │ +erstellen()│
|
||||
└─────────────┘ └─────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Anwendungsfalldiagramm (Use Case)
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Anwendungsfall-Diagramm
|
||||
┌─────────────┐
|
||||
│ Akteur │
|
||||
└──────┬──────┘
|
||||
│
|
||||
│ (Verbindung)
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Anwendungsfall │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌────────┐
|
||||
│ Kunde │
|
||||
└────┬───┘
|
||||
│
|
||||
┌────┴────┐
|
||||
│ │
|
||||
▼ ▼
|
||||
┌─────────┐ ┌─────────────────┐
|
||||
│ Suchen │ │ Bestellen │
|
||||
└─────────┘ └─────────────────┘
|
||||
│
|
||||
┌───┴───┐
|
||||
│ │
|
||||
▼ ▼
|
||||
┌────────┐ ┌──────────┐
|
||||
│ Bezahlen│ │ Zurückgeben│
|
||||
└────────┘ └──────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Aktivitätsdiagramm
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Aktivitätsdiagramm - Symbole
|
||||
┌─────────┐ ◇──────►
|
||||
│ Start │ (Objekt)
|
||||
└─────────┘
|
||||
|
||||
▭ Entscheidung ▢ Parallel
|
||||
|
||||
┌─────────┐ ╱ ╲
|
||||
│ Aktion │ ╱ Merge ╲
|
||||
└─────────┘ ╲ ╱
|
||||
|
||||
┌─────────┐
|
||||
│ Ende │
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
▭
|
||||
▼
|
||||
┌───────────┐
|
||||
│ Bestellung │
|
||||
│ starten │
|
||||
└─────┬─────┘
|
||||
│
|
||||
▼
|
||||
┌───────────┐
|
||||
│ Ware │
|
||||
│ verfügbar?│
|
||||
└─────┬─────┘
|
||||
│
|
||||
╱ ╲
|
||||
Ja Nein
|
||||
╲ ╱
|
||||
▼ ▼
|
||||
┌────────┐ ┌──────────┐
|
||||
│Liefern │ │Benachrich-│
|
||||
│ │ │tigen │
|
||||
└───┬────┘ └────┬─────┘
|
||||
│ │
|
||||
└─────┬─────┘
|
||||
▼
|
||||
┌────────┐
|
||||
│ Ende │
|
||||
└────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sequenzdiagramm
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
Sequenzdiagramm - Elemente
|
||||
┌──────┐ ┌──────┐
|
||||
│ Actor│ │ System│
|
||||
└──┬───┘ └──┬───┘
|
||||
│ │
|
||||
│ Nachricht ──►
|
||||
│ │
|
||||
│ ◄─────── Rückmeldung
|
||||
│ │
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌────────┐ ┌────────┐ ┌────────┐
|
||||
│ Client │ │ Server │ │ Daten- │
|
||||
│ │ │ │ │ bank │
|
||||
└───┬────┘ └───┬────┘ └───┬────┘
|
||||
│ │ │
|
||||
│──Login()───►│ │
|
||||
│ │──Query()───►│
|
||||
│ │◄─────────── │
|
||||
│◄─────────── │ │
|
||||
│ │ │
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Struktogramme (Nassi-Shneiderman)
|
||||
|
||||
### Grundelemente
|
||||
|
||||
```
|
||||
Struktogramme
|
||||
┌──────────────────┐
|
||||
│ Anweisung │ ← einfache Anweisung
|
||||
└──────────────────┘
|
||||
|
||||
┌──────────────────┐
|
||||
│ Verzweigung │
|
||||
│ │
|
||||
│ Wenn Bedingung │
|
||||
│ dann Anweisung │
|
||||
│ sonst Anweisung│
|
||||
└──────────────────┘
|
||||
|
||||
┌──────────────────┐
|
||||
│ Schleife │
|
||||
│ │
|
||||
│ solange Bed. │
|
||||
│ Anweisung │
|
||||
└──────────────────┘
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────┐
|
||||
│ Eingegebene Zahl ist negativ? │
|
||||
├──────────────────────────────────────┤
|
||||
│ JA NEIN │
|
||||
│ │ │ │
|
||||
│ ┌─────┴─────┐ ┌────┴────┐ │
|
||||
│ │ "Zahl ist │ │ "Zahl │ │
|
||||
│ │ negativ" │ │ ist pos.│ │
|
||||
│ └───────────┘ └─────────┘ │
|
||||
└──────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Flussdiagramme (Flowchart)
|
||||
|
||||
### Symbole
|
||||
|
||||
```
|
||||
Flussdiagramm - Symbole
|
||||
┌─────────┐
|
||||
│ Oval │ → Start/Ende
|
||||
└─────────┘
|
||||
|
||||
┌─────────┐
|
||||
│ Rechteck│ → Aktion/Prozess
|
||||
└─────────┘
|
||||
|
||||
┌────┐
|
||||
│Raute│ → Entscheidung
|
||||
└────┘
|
||||
|
||||
→ → Verbindungslinie
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
│ Start │
|
||||
└───┬───┘
|
||||
│
|
||||
▼
|
||||
┌────────┐
|
||||
│ Zahl │
|
||||
│ einlesen│
|
||||
└───┬────┘
|
||||
│
|
||||
▼
|
||||
┌───────────┐
|
||||
│negativ? │
|
||||
└─────┬─────┘
|
||||
╱ ╲
|
||||
Ja Nein
|
||||
╲ ╱
|
||||
▼ ▼
|
||||
┌─────────┐ ┌─────────┐
|
||||
│ negativ │ │ positiv │
|
||||
└────┬────┘ └────┬────┘
|
||||
│ │
|
||||
└─────┬──────┘
|
||||
▼
|
||||
┌───────┐
|
||||
│ Ende │
|
||||
└───────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Werkzeuge
|
||||
|
||||
### Modellierungs-Tools
|
||||
|
||||
| Tool | Typ | Plattform |
|
||||
|------|-----|----------|
|
||||
| PlantUML | Text-basiert | Alle |
|
||||
| Mermaid | Text-basiert | Alle |
|
||||
| draw.io | Visuell | Web |
|
||||
| Lucidchart | Professionell | Web |
|
||||
| Enterprise Architect | Professionell | Windows |
|
||||
| Visual Paradigm | Professionell | Alle |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF5-01-Anforderungsanalyse|Zurück: Anforderungsanalyse]]
|
||||
- [[LF5-03-Programmierung|Nächstes Thema: Programmierung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
302
1-Ausbildungsjahr/LF5-Analyse-Design/LF5-03-Programmierung.md
Normal file
302
1-Ausbildungsjahr/LF5-Analyse-Design/LF5-03-Programmierung.md
Normal file
@@ -0,0 +1,302 @@
|
||||
# 5.3 Programmierung
|
||||
|
||||
## Algorithmen
|
||||
|
||||
### Was ist ein Algorithmus?
|
||||
|
||||
> Ein **Algorithmus** ist eine endliche Folge von eindeutigen Anweisungen zur Lösung eines Problems.
|
||||
|
||||
### Eigenschaften
|
||||
|
||||
```
|
||||
Algorithmus-Eigenschaften
|
||||
├── Endlichkeit → Endlich viele Schritte
|
||||
├── Eindeutigkeit → Jeder Schritt klar definiert
|
||||
├── Ausführbarkeit → Jeder Schritt ausführbar
|
||||
├── Terminiertheit → Algorithmus endet
|
||||
└── Korrektheit → Liefert richtiges Ergebnis
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Grundlegende Programmstrukturen
|
||||
|
||||
### Sequenz
|
||||
|
||||
```
|
||||
Anweisungen werden nacheinander ausgeführt
|
||||
|
||||
Schritt 1
|
||||
↓
|
||||
Schritt 2
|
||||
↓
|
||||
Schritt 3
|
||||
```
|
||||
|
||||
### Selektion (Verzweigung)
|
||||
|
||||
```
|
||||
Wenn-Dann-Sonst
|
||||
|
||||
┌───────────────┐
|
||||
│ Bed. erfüllt? │
|
||||
└───────┬───────┘
|
||||
╱ ╲
|
||||
Ja Nein
|
||||
╲ ╱
|
||||
▼ ▼
|
||||
┌────────┐ ┌────────┐
|
||||
│ Block A│ │ Block B│
|
||||
└────────┘ └────────┘
|
||||
```
|
||||
|
||||
### Iteration (Schleife)
|
||||
|
||||
```
|
||||
Wiederholung
|
||||
|
||||
┌───────────────┐
|
||||
│ Bedingung │
|
||||
└───────┬───────┘
|
||||
╱ ╲
|
||||
wahr falsch
|
||||
╲ ╱
|
||||
▼ ▼
|
||||
┌─────────┐ ┌──────┐
|
||||
│ Block │──►│ Ende │
|
||||
│ ausführen│ └──────┘
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datenstrukturen
|
||||
|
||||
### Grundlegende Datentypen
|
||||
|
||||
| Typ | Beispiel | Speicher |
|
||||
|-----|----------|----------|
|
||||
| Integer | 42 | 4 Byte |
|
||||
| Float | 3.14 | 8 Byte |
|
||||
| Boolean | true/false | 1 Byte |
|
||||
| Char | 'A' | 1 Byte |
|
||||
| String | "Hallo" | variabel |
|
||||
|
||||
### Arrays
|
||||
|
||||
```
|
||||
Array - eindimensional
|
||||
[0] [1] [2] [3] [4]
|
||||
10 20 30 40 50
|
||||
|
||||
Zugriff: array[2] → 30
|
||||
```
|
||||
|
||||
### Listen
|
||||
|
||||
```
|
||||
Liste - dynamisch
|
||||
Liste<String> namen = ["Max", "Anna", "Peter"]
|
||||
|
||||
Operationen:
|
||||
- add(Element) → Hinzufügen
|
||||
- remove(Index) → Entfernen
|
||||
- get(Index) → Abrufen
|
||||
- size() → Größe
|
||||
```
|
||||
|
||||
### Schlüssel-Wert-Paare (Dictionary/Map)
|
||||
|
||||
```
|
||||
Map - Schlüssel-Wert
|
||||
{
|
||||
"Name": "Max",
|
||||
"Alter": 25,
|
||||
"Stadt": "Berlin"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Algorithmen
|
||||
|
||||
### Suchen
|
||||
|
||||
#### Lineare Suche
|
||||
|
||||
```
|
||||
Suche in ungeordneter Liste
|
||||
Schleife durch alle Elemente
|
||||
→ O(n) Zeitkomplexität
|
||||
```
|
||||
|
||||
#### Binäre Suche
|
||||
|
||||
```
|
||||
Suche in sortierter Liste
|
||||
Teile und Herrsche
|
||||
→ O(log n) Zeitkomplexität
|
||||
```
|
||||
|
||||
### Sortieren
|
||||
|
||||
#### Bubble Sort
|
||||
|
||||
```
|
||||
Vergleiche benachbarte Elemente
|
||||
Tausche wenn in falscher Reihenfolge
|
||||
|
||||
Beispiel:
|
||||
[5, 3, 8, 1] → [3, 5, 1, 8] → [3, 1, 5, 8] → ...
|
||||
|
||||
→ O(n²) Zeitkomplexität
|
||||
```
|
||||
|
||||
#### Quick Sort
|
||||
|
||||
```
|
||||
Pivot-Element wählen
|
||||
Kleine links, große rechts
|
||||
Rekursiv wiederholen
|
||||
|
||||
→ O(n log n) Durchschnitt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Komplexität
|
||||
|
||||
### Big O Notation
|
||||
|
||||
| Notation | Name | Beispiel |
|
||||
|----------|------|----------|
|
||||
| O(1) | Konstant | Array-Zugriff |
|
||||
| O(log n) | Logarithmisch | Binäre Suche |
|
||||
| O(n) | Linear | Lineare Suche |
|
||||
| O(n log n) | Linearithmisch | Quick Sort |
|
||||
| O(n²) | Quadratisch | Bubble Sort |
|
||||
| O(2^n) | Exponentiell | Brute Force |
|
||||
|
||||
---
|
||||
|
||||
## Programmiersprachen
|
||||
|
||||
### Übersicht
|
||||
|
||||
| Sprache | Typ | Einsatz |
|
||||
|---------|-----|----------|
|
||||
| **Python** | Interpretiert | Data Science, Web |
|
||||
| **Java** | Kompiliert | Enterprise |
|
||||
| **JavaScript** | Interpretiert | Web, Frontend |
|
||||
| **C#** | Kompiliert | Windows, .NET |
|
||||
| **C/C++** | Kompiliert | Systemnah |
|
||||
|
||||
### Sprachkonzepte
|
||||
|
||||
```
|
||||
Programmierparadigmen
|
||||
├── Imperativ → Anweisungen
|
||||
├── Prozedural → Funktionen
|
||||
├── Objektorientiert → Klassen/Objekte
|
||||
├── Funktional → Funktionen ohne Zustand
|
||||
└── Logisch → Regeln und Fakten
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Objektorientierte Programmierung (OOP)
|
||||
|
||||
### Grundkonzepte
|
||||
|
||||
```
|
||||
OOP - Prinzipien
|
||||
├── Kapselung (Encapsulation)
|
||||
├── Vererbung (Inheritance)
|
||||
├── Polymorphie
|
||||
└── Abstraktion
|
||||
```
|
||||
|
||||
### Klasse und Objekt
|
||||
|
||||
```python
|
||||
# Klasse (Bauplan)
|
||||
class Auto:
|
||||
# Konstruktor
|
||||
def __init__(self, marke, farbe):
|
||||
self.marke = marke
|
||||
self.farbe = farbe
|
||||
self.geschwindigkeit = 0
|
||||
|
||||
# Methode
|
||||
def beschleunigen(self, wert):
|
||||
self.geschwindigkeit += wert
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.marke}, {self.farbe}"
|
||||
|
||||
# Objekt (Instanz)
|
||||
mein_auto = Auto("BMW", "rot")
|
||||
mein_auto.beschleunigen(50)
|
||||
```
|
||||
|
||||
### Vererbung
|
||||
|
||||
```python
|
||||
class Tier:
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
|
||||
def essen(self):
|
||||
print("Tier isst")
|
||||
|
||||
class Hund(Tier): # Vererbung
|
||||
def bellen(self):
|
||||
print("Wuff!")
|
||||
|
||||
hund = Hund("Bello")
|
||||
hund.essen() # Von Tier geerbt
|
||||
hund.bellen() # Eigene Methode
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Qualitätskriterien
|
||||
|
||||
### Clean Code Prinzipien
|
||||
|
||||
```
|
||||
Gute Software
|
||||
├── Lesbarkeit → Gut verständlich
|
||||
├── Wartbarkeit → Einfach zu ändern
|
||||
├── Effizienz → Schnell genug
|
||||
├── Zuverlässigkeit → Keine Fehler
|
||||
└── Sicherheit → Vor Angriffen geschützt
|
||||
```
|
||||
|
||||
### Namenskonventionen
|
||||
|
||||
```
|
||||
Variablen: camelCase
|
||||
meinName = "Max"
|
||||
|
||||
Konstanten: UPPER_CASE
|
||||
MAX_ALTER = 100
|
||||
|
||||
Funktionen: camelCase
|
||||
def holeDaten():
|
||||
|
||||
Klassen: PascalCase
|
||||
class Benutzer:
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF5-02-Softwaremodellierung|Zurück: Softwaremodellierung]]
|
||||
- [[LF5-04-Testverfahren|Nächstes Thema: Testverfahren]]
|
||||
- [[LF4-01-Gefahren-Analyse|Sicherheit: Sichere Programmierung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
274
1-Ausbildungsjahr/LF5-Analyse-Design/LF5-04-Testverfahren.md
Normal file
274
1-Ausbildungsjahr/LF5-Analyse-Design/LF5-04-Testverfahren.md
Normal file
@@ -0,0 +1,274 @@
|
||||
# 5.4 Testverfahren
|
||||
|
||||
## Softwaretests - Grundlagen
|
||||
|
||||
### Warum testen?
|
||||
|
||||
```
|
||||
Testziele
|
||||
├── Fehler finden
|
||||
├── Qualität sichern
|
||||
├── Vertrauen schaffen
|
||||
├── Risiken minimieren
|
||||
└── Dokumentation
|
||||
```
|
||||
|
||||
### Testprinzipien
|
||||
|
||||
```
|
||||
Grundsätze des Testens
|
||||
├── Vollständig unmöglich → 100% Test nicht möglich
|
||||
├── Frühzeitig → Tests von Anfang an
|
||||
├── Defektclustering → Fehler häufen sich
|
||||
├── Pestizid-Paradox → Tests wiederholen
|
||||
├── Fehlerfreiheitsirrtum → Keine Fehler ≠ Qualität
|
||||
└── Kontextabhängig → Projektabhängig
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testarten
|
||||
|
||||
### Nach Sichtweise
|
||||
|
||||
| Testart | Beschreibung |
|
||||
|---------|-------------|
|
||||
| **White Box** | Inneres bekannt, strukturbasiert |
|
||||
| **Black Box** | Inneres unbekannt, funktional |
|
||||
| **Gray Box** | Teilweise bekannt |
|
||||
|
||||
### Nach Zeitpunkt
|
||||
|
||||
```
|
||||
Testphasen
|
||||
├── Statische Tests (vor Ausführung)
|
||||
│ └── Code-Review, Analyse
|
||||
└── Dynamische Tests (bei Ausführung)
|
||||
└── Unit, Integration, System, Abnahme
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Teststufen
|
||||
|
||||
### Pyramide
|
||||
|
||||
```
|
||||
Testpyramide
|
||||
╱╲
|
||||
╱ ╲ End-to-End (wenige)
|
||||
╱────╲
|
||||
╱ ╲ Integration (mittel)
|
||||
╱────────╲
|
||||
╱ ╲ Unit-Tests (viele)
|
||||
╱────────────╲
|
||||
```
|
||||
|
||||
### Unit Tests
|
||||
|
||||
> Test einzelner Funktionen/Klassen
|
||||
|
||||
```python
|
||||
import unittest
|
||||
|
||||
class TestRechner(unittest.TestCase):
|
||||
|
||||
def test_addition(self):
|
||||
ergebnis = addieren(2, 3)
|
||||
self.assertEqual(ergebnis, 5)
|
||||
|
||||
def test_division_durch_null(self):
|
||||
with self.assertRaises(ZeroDivisionError):
|
||||
dividieren(10, 0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
```
|
||||
|
||||
### Integrationstests
|
||||
|
||||
> Test der Zusammenarbeit von Komponenten
|
||||
|
||||
```
|
||||
Integration - Strategien
|
||||
├── Big Bang → Alles gleichzeitig
|
||||
├── Top-Down → Oberste Ebene zuerst
|
||||
├── Bottom-Up → Unterste Ebene zuerst
|
||||
└── Sandwich → Beide Richtungen
|
||||
```
|
||||
|
||||
### Systemtests
|
||||
|
||||
> Test des gesamten Systems
|
||||
|
||||
```
|
||||
Systemtest - Prüfbereiche
|
||||
├── Funktionale Anforderungen
|
||||
├── Nicht-funktionale Anforderungen
|
||||
├── Schnittstellen
|
||||
├── Datenintegration
|
||||
└── Performance
|
||||
```
|
||||
|
||||
### Abnahmetests
|
||||
|
||||
> Test durch den Kunden
|
||||
|
||||
```
|
||||
Abnahmetest - Arten
|
||||
├── Alpha (beim Hersteller)
|
||||
├── Beta (bei Anwendern)
|
||||
└── Operational (im Echtbetrieb)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testmethoden
|
||||
|
||||
### Black-Box-Tests
|
||||
|
||||
```
|
||||
Techniken
|
||||
├── Äquivalenzklassen
|
||||
├── Grenzwertanalyse
|
||||
├── Entscheidungstabellen
|
||||
├── Zustandsübergänge
|
||||
└── Anwendungsfall-basiert
|
||||
```
|
||||
|
||||
### Äquivalenzklassen
|
||||
|
||||
```
|
||||
Beispiel: Alterseingabe (0-120)
|
||||
|
||||
Gültige Klasse: 0 bis 120
|
||||
Ungültige Klassen: < 0, > 120
|
||||
|
||||
Testfälle:
|
||||
- 25 (gültig)
|
||||
- 0 (Grenzwert)
|
||||
- 120 (Grenzwert)
|
||||
- -1 (ungültig)
|
||||
- 121 (ungültig)
|
||||
```
|
||||
|
||||
### White-Box-Tests
|
||||
|
||||
```
|
||||
Techniken
|
||||
├── Anweisungsabdeckung
|
||||
├── Zweigabdeckung
|
||||
├── Pfadabdeckung
|
||||
└── Bedingungsabdeckung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testmanagement
|
||||
|
||||
### Testplan
|
||||
|
||||
```markdown
|
||||
# Testplan - [Projekt]
|
||||
|
||||
## 1. Testobjekt
|
||||
[Was wird getestet]
|
||||
|
||||
## 2. Testumgebung
|
||||
[System, Tools]
|
||||
|
||||
## 3. Testfälle
|
||||
| ID | Beschreibung | Erwartung |
|
||||
|----|--------------|-----------|
|
||||
| T1 | Login gültig | Erfolg |
|
||||
| T2 | Login ungültig | Fehler |
|
||||
|
||||
## 4. Zeitplan
|
||||
[Termine]
|
||||
|
||||
## 5. Kriterien
|
||||
[Abnahme]
|
||||
```
|
||||
|
||||
### Testfall-Struktur
|
||||
|
||||
```
|
||||
Testfall - Elemente
|
||||
├── Testfall-ID
|
||||
├── Titel/Beschreibung
|
||||
├── Vorbedingungen
|
||||
├── Testschritte
|
||||
├── Erwartetes Ergebnis
|
||||
├── Tatsächliches Ergebnis
|
||||
├── Status (Pass/Fail)
|
||||
└── Tester
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testautomatisierung
|
||||
|
||||
### Werkzeuge
|
||||
|
||||
| Zweck | Tools |
|
||||
|-------|-------|
|
||||
| Unit Tests | JUnit (Java), pytest (Python), NUnit (.NET) |
|
||||
| UI Tests | Selenium, Playwright, Cypress |
|
||||
| API Tests | Postman, RestAssured |
|
||||
| Lasttests | JMeter, k6 |
|
||||
|
||||
### Beispiel: pytest
|
||||
|
||||
```python
|
||||
# test_calculator.py
|
||||
|
||||
import pytest
|
||||
|
||||
def test_addition():
|
||||
assert add(2, 3) == 5
|
||||
|
||||
def test_subtraktion():
|
||||
assert sub(5, 3) == 2
|
||||
|
||||
@pytest.mark.parametrize("a,b,expected", [
|
||||
(1, 1, 2),
|
||||
(0, 0, 0),
|
||||
(-1, 1, 0),
|
||||
])
|
||||
def test_add_param(a, b, expected):
|
||||
assert add(a, b) == expected
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Fehlermanagement
|
||||
|
||||
### Fehlerverfolgung
|
||||
|
||||
```
|
||||
Fehlerlebenszyklus
|
||||
Neu → Bestätigt → In Bearbeitung → Gelöst → Geschlossen
|
||||
↓
|
||||
Abgelehnt
|
||||
```
|
||||
|
||||
### Fehlerprioritäten
|
||||
|
||||
| Priorität | Beschreibung | Reaktionszeit |
|
||||
|-----------|-------------|---------------|
|
||||
| Kritisch | System nicht nutzbar | Sofort |
|
||||
| Hoch | Wichtige Funktion | 24h |
|
||||
| Mittel | Kleinere Probleme | 1 Woche |
|
||||
| Niedrig | kosmetisch | Bei Zeit |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF5-03-Programmierung|Zurück: Programmierung]]
|
||||
- [[LF6-Webanwendungen|Nächstes Lernfeld: Webanwendungen]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Qualitätsmanagement]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
253
1-Ausbildungsjahr/LF5-Datenbanken-anpassen/LF5-Notizen.md
Normal file
253
1-Ausbildungsjahr/LF5-Datenbanken-anpassen/LF5-Notizen.md
Normal file
@@ -0,0 +1,253 @@
|
||||
# LF 5: Software zur Verwaltung von Daten anpassen
|
||||
|
||||
> **1. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, Informationen mittels Daten abzubilden, diese Daten zu verwalten und dazu Software anzupassen.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Informationen als Daten abbilden und strukturieren
|
||||
- [ ] Datenbankmodelle unterscheiden und anwenden
|
||||
- [ ] ER-Diagramme erstellen
|
||||
- [ ] SQL-Abfragen erstellen und ausführen
|
||||
- [ ] Datenformate unterscheiden
|
||||
- [ ] Software zur Datenverwaltung anpassen
|
||||
- [ ] Testfälle entwickeln und Tests durchführen
|
||||
|
||||
---
|
||||
|
||||
## Datenbank-Grundlagen
|
||||
|
||||
### Datenbankmodelle
|
||||
|
||||
```
|
||||
Datenbankmodelle
|
||||
├── Hierarchisch
|
||||
├── Netzwerkartig
|
||||
├── Relational (am häufigsten)
|
||||
├── Objektorientiert
|
||||
└── NoSQL
|
||||
```
|
||||
|
||||
### Relationales Datenbankmodell
|
||||
|
||||
**Grundbegriffe:**
|
||||
|
||||
| Begriff | Erklärung |
|
||||
|---------|-----------|
|
||||
| **Tabelle (Relation)** | Sammlung von Datensätzen |
|
||||
| **Spalte (Attribut)** | Eigenschaft eines Datensatzes |
|
||||
| **Zeile (Tupel)** | Ein Datensatz |
|
||||
| **Primärschlüssel** | Eindeutige Identifikation |
|
||||
| **Fremdschlüssel** | Verweis auf andere Tabelle |
|
||||
|
||||
---
|
||||
|
||||
## ER-Diagramm (Entity-Relationship)
|
||||
|
||||
### Elemente
|
||||
|
||||
```
|
||||
┌─────────────┐ ┌─────────────┐
|
||||
│ Entity │ │ Entity │
|
||||
│ (Typ) │ │ (Typ) │
|
||||
├─────────────┤ ├─────────────┤
|
||||
│ Attribute │ │ Attribute │
|
||||
│ PK: id │ │ PK: id │
|
||||
└─────┬───────┘ └──────┬──────┘
|
||||
│ N │ M
|
||||
│ │
|
||||
└──────────┬───────────┘
|
||||
│
|
||||
┌──────┴──────┐
|
||||
│ Relationship │
|
||||
│ (Beziehung) │
|
||||
└──────────────┘
|
||||
```
|
||||
|
||||
### Beziehungsgrade
|
||||
|
||||
- **1:1** (One-to-One)
|
||||
- **1:N** (One-to-Many) - am häufigsten
|
||||
- **M:N** (Many-to-Many)
|
||||
|
||||
---
|
||||
|
||||
## Normalisierung
|
||||
|
||||
### Normalformen
|
||||
|
||||
| NF | Regel | Ziel |
|
||||
|----|-------|------|
|
||||
| 1NF | Atomare Werte | Keine wiederholenden Gruppen |
|
||||
| 2NF | Keine partielle Abhängigkeit | Vollständige funktionale Abhängigkeit vom PK |
|
||||
| 3NF | Keine transitiven Abhängigkeiten | Keine Abhängigkeiten zwischen Nicht-Schlüsselattributen |
|
||||
|
||||
### Beispiel: 1NF → 2NF
|
||||
|
||||
**Nicht normalisiert:**
|
||||
```
|
||||
Bestellung(BestellID, Kunde, {Artikel, Menge})
|
||||
```
|
||||
|
||||
**Normalisiert (1NF/2NF):**
|
||||
```
|
||||
Bestellung(BestellID, Kunde)
|
||||
Bestellposition(BestellID, Artikel, Menge)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## SQL (Structured Query Language)
|
||||
|
||||
### DDL (Data Definition Language)
|
||||
|
||||
```sql
|
||||
-- Tabelle erstellen
|
||||
CREATE TABLE Kunde (
|
||||
KundenID INT PRIMARY KEY,
|
||||
Name VARCHAR(100) NOT NULL,
|
||||
Email VARCHAR(255) UNIQUE,
|
||||
ErstelltAm DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Tabelle ändern
|
||||
ALTER TABLE Kunde ADD Telefon VARCHAR(20);
|
||||
|
||||
-- Tabelle löschen
|
||||
DROP TABLE Kunde;
|
||||
```
|
||||
|
||||
### DML (Data Manipulation Language)
|
||||
|
||||
```sql
|
||||
-- Daten einfügen
|
||||
INSERT INTO Kunde (Name, Email)
|
||||
VALUES ('Max Mustermann', 'max@example.com');
|
||||
|
||||
-- Daten aktualisieren
|
||||
UPDATE Kunde
|
||||
SET Email = 'neue@email.de'
|
||||
WHERE KundenID = 1;
|
||||
|
||||
-- Daten löschen
|
||||
DELETE FROM Kunde WHERE KundenID = 1;
|
||||
|
||||
-- Daten abfragen
|
||||
SELECT * FROM Kunde;
|
||||
```
|
||||
|
||||
### DQL (Data Query Language)
|
||||
|
||||
```sql
|
||||
-- Einfache Abfrage
|
||||
SELECT Name, Email FROM Kunde;
|
||||
|
||||
-- Mit Bedingung
|
||||
SELECT * FROM Kunde
|
||||
WHERE Name LIKE 'M%'
|
||||
ORDER BY Name ASC;
|
||||
|
||||
-- Mit JOIN
|
||||
SELECT b.BestellID, k.Name, a.Artikelname
|
||||
FROM Bestellung b
|
||||
JOIN Kunde k ON b.KundenID = k.KundenID
|
||||
JOIN Bestellposition bp ON b.BestellID = bp.BestellID
|
||||
JOIN Artikel a ON bp.ArtikelID = a.ArtikelID;
|
||||
|
||||
-- Aggregatfunktionen
|
||||
SELECT COUNT(*) AS Anzahl,
|
||||
SUM(Betrag) AS Gesamt
|
||||
FROM Bestellung
|
||||
WHERE YEAR(Datum) = 2024;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datenformate
|
||||
|
||||
### Strukturierte Daten
|
||||
|
||||
| Format | Beschreibung |
|
||||
|--------|--------------|
|
||||
| CSV | Komma-separierte Werte |
|
||||
| JSON | JavaScript Object Notation |
|
||||
| XML | eXtensible Markup Language |
|
||||
| YAML | YAML Ain't Markup Language |
|
||||
|
||||
### Beispiel: CSV
|
||||
|
||||
```csv
|
||||
ID;Name;Email
|
||||
1;Max Mustermann;max@example.com
|
||||
2;Anna Schmidt;anna@example.com
|
||||
```
|
||||
|
||||
### Beispiel: JSON
|
||||
|
||||
```json
|
||||
{
|
||||
"kunden": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Max Mustermann",
|
||||
"email": "max@example.com"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Software-Anpassung
|
||||
|
||||
### Vorgehen
|
||||
|
||||
1. **Anforderungen analysieren**
|
||||
2. **Datenmodell erweitern**
|
||||
3. **SQL-Skripte erstellen**
|
||||
4. **Anwendung anpassen**
|
||||
5. **Testfälle definieren**
|
||||
6. **Testen und dokumentieren**
|
||||
|
||||
### Testmethoden
|
||||
|
||||
- **Unit-Tests**: Einzelne Komponenten testen
|
||||
- **Integrationstests**: Zusammenspiel testen
|
||||
- **Systemtests**: Gesamtsystem testen
|
||||
- **Abnahmetests**: Mit Kunden testen
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen
|
||||
|
||||
1. **Informieren**: Daten analysieren, Anforderungen erheben
|
||||
2. **Planen**: Datenmodell entwerfen, Testfälle definieren
|
||||
3. **Durchführen**: Software anpassen, Tests durchführen
|
||||
4. **Überprüfen**: Funktion prüfen, Qualität sichern
|
||||
5. **Reflektieren**: Prozess evaluieren
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Fundament für LF 8 (Daten bereitstellen)
|
||||
- Wichtig für Teil 1 der Abschlussprüfung
|
||||
- SQL-Kenntnisse werden vorausgesetzt
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF4-Schutzbedarfsanalyse|Vorher: LF 4]]
|
||||
- [[LF8-Daten-bereitstellen|Nachher: LF 8]]
|
||||
- [[Datenbanken|Datenbanken-Vertiefung]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
42
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-00-Übersicht.md
Normal file
42
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-00-Übersicht.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Lernfeld 6: Webanwendungen entwickeln
|
||||
|
||||
## Übersicht
|
||||
|
||||
Dieses Lernfeld behandelt die Entwicklung von Webanwendungen.
|
||||
|
||||
## Themen
|
||||
|
||||
| Nr. | Thema | Beschreibung |
|
||||
| --- | --- | --- |
|
||||
| 6.1 | [[LF6-01-Web-Grundlagen]] | HTTP, HTML, CSS |
|
||||
| 6.2 | [[LF6-02-Frontend]] | JavaScript, Frameworks |
|
||||
| 6.3 | [[LF6-03-Backend]] | Server, APIs, Datenbanken |
|
||||
| 6.4 | [[LF6-04-Sicherheit-Web]] | XSS, CSRF, SQL Injection |
|
||||
|
||||
## Lernziele
|
||||
|
||||
- Webanwendungen entwickeln
|
||||
- Frontend und Backend verbinden
|
||||
- Sicherheitslücken erkennen und vermeiden
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- LF3: Datenbanken
|
||||
- LF4: IT-Sicherheit
|
||||
- LF5: Analyse und Design
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Teil 2 Abschlussprüfung (praktisch)
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF5-04-Testverfahren|Zurück: Testverfahren]]
|
||||
- [[LF9-Netzwerke-Dienste|Nächstes Lernfeld: Netzwerke]]
|
||||
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: E-Commerce]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
225
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-01-Web-Grundlagen.md
Normal file
225
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-01-Web-Grundlagen.md
Normal file
@@ -0,0 +1,225 @@
|
||||
# 6.1 Web-Grundlagen
|
||||
|
||||
## Internet und WWW
|
||||
|
||||
### Grundbegriffe
|
||||
|
||||
```
|
||||
Internet - Netzwerk der Netzwerke
|
||||
WWW (World Wide Web) - Dienst im Internet
|
||||
```
|
||||
|
||||
### Funktionsweise
|
||||
|
||||
```
|
||||
Client-Server-Modell
|
||||
┌─────────┐ ┌─────────┐
|
||||
│ Browser │ ───────►│ Server │
|
||||
│ (Client)│ ◄───────│ │
|
||||
└─────────┘ └─────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## HTTP - Hypertext Transfer Protocol
|
||||
|
||||
### HTTP-Ablauf
|
||||
|
||||
```
|
||||
HTTP - Kommunikation
|
||||
1. Client sendet Request
|
||||
2. Server verarbeitet
|
||||
3. Server sendet Response
|
||||
```
|
||||
|
||||
### HTTP-Methoden
|
||||
|
||||
| Methode | Beschreibung | idempotent |
|
||||
|---------|-------------|------------|
|
||||
| **GET** | Daten abrufen | Ja |
|
||||
| **POST** | Daten senden | Nein |
|
||||
| **PUT** | Daten ersetzen | Ja |
|
||||
| **PATCH** | Daten teilweise ändern | Nein |
|
||||
| **DELETE** | Daten löschen | Ja |
|
||||
|
||||
### HTTP-Statuscodes
|
||||
|
||||
| Code | Bedeutung | Beispiel |
|
||||
|------|-----------|----------|
|
||||
| **200** | OK | Erfolgreich |
|
||||
| **201** | Created | Erstellt |
|
||||
| **301** | Moved Permanently | Umleitung |
|
||||
| **400** | Bad Request | Fehlerhafte Anfrage |
|
||||
| **401** | Unauthorized | Nicht angemeldet |
|
||||
| **403** | Forbidden | Keine Berechtigung |
|
||||
| **404** | Not Found | Nicht gefunden |
|
||||
| **500** | Internal Server Error | Serverfehler |
|
||||
|
||||
### HTTPS
|
||||
|
||||
```
|
||||
HTTPS = HTTP + TLS-Verschlüsselung
|
||||
|
||||
Vorteile:
|
||||
├── Vertraulichkeit
|
||||
├── Integrität
|
||||
└── Authentifizierung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## HTML - HyperText Markup Language
|
||||
|
||||
### Grundstruktur
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Titel</title>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Inhalt -->
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
### HTML-Elemente
|
||||
|
||||
| Element | Bedeutung |
|
||||
|---------|----------|
|
||||
| `<h1>` bis `<h6>` | Überschriften |
|
||||
| `<p>` | Absatz |
|
||||
| `<a>` | Link |
|
||||
| `<img>` | Bild |
|
||||
| `<ul>`, `<ol>` | Liste |
|
||||
| `<table>` | Tabelle |
|
||||
| `<form>` | Formular |
|
||||
| `<div>`, `<span>` | Container |
|
||||
|
||||
### Semantisches HTML
|
||||
|
||||
```html
|
||||
<header>Kopfbereich</header>
|
||||
<nav>Navigation</nav>
|
||||
<main>
|
||||
<article>
|
||||
<section>Inhalt</section>
|
||||
</article>
|
||||
<aside>Seitenleiste</aside>
|
||||
</main>
|
||||
<footer>Fußbereich</footer>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## CSS - Cascading Style Sheets
|
||||
|
||||
### Einbindung
|
||||
|
||||
```html
|
||||
<!-- Extern -->
|
||||
<link rel="stylesheet" href="style.css">
|
||||
|
||||
<!-- Intern -->
|
||||
<style>
|
||||
body { background: white; }
|
||||
</style>
|
||||
|
||||
<!-- Inline -->
|
||||
<p style="color: red;">Text</p>
|
||||
```
|
||||
|
||||
### CSS-Selektoren
|
||||
|
||||
```css
|
||||
/* Element */
|
||||
p { color: blue; }
|
||||
|
||||
/* Klasse */
|
||||
.klasse { font-size: 16px; }
|
||||
|
||||
/* ID */
|
||||
#id { background: gray; }
|
||||
|
||||
/* Attribut */
|
||||
[type="text"] { border: 1px solid; }
|
||||
|
||||
/* Pseudoklasse */
|
||||
:hover { cursor: pointer; }
|
||||
|
||||
/* Nachfahre */
|
||||
div p { margin: 10px; }
|
||||
```
|
||||
|
||||
### Flexbox
|
||||
|
||||
```css
|
||||
.container {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
```
|
||||
|
||||
### Grid
|
||||
|
||||
```css
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 20px;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Responsive Design
|
||||
|
||||
### Viewport
|
||||
|
||||
```html
|
||||
<meta name="viewport"
|
||||
content="width=device-width, initial-scale=1.0">
|
||||
```
|
||||
|
||||
### Media Queries
|
||||
|
||||
```css
|
||||
/* Mobile zuerst */
|
||||
.container {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
width: 750px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.container {
|
||||
width: 970px;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Breakpoints
|
||||
|
||||
| Gerät | Breite |
|
||||
|-------|--------|
|
||||
| Mobile | < 768px |
|
||||
| Tablet | 768px - 1023px |
|
||||
| Desktop | >= 1024px |
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF6-02-Frontend|Nächstes Thema: Frontend-Entwicklung]]
|
||||
- [[LF4-02-Schutzmassnahmen|IT-Sicherheit: HTTPS]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
268
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-02-Frontend.md
Normal file
268
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-02-Frontend.md
Normal file
@@ -0,0 +1,268 @@
|
||||
# 6.2 Frontend-Entwicklung
|
||||
|
||||
## JavaScript
|
||||
|
||||
### Grundlagen
|
||||
|
||||
```javascript
|
||||
// Variablen
|
||||
let name = "Max"; // veränderbar
|
||||
const alter = 25; // konstant
|
||||
|
||||
// Datentypen
|
||||
let text = "Hallo"; // String
|
||||
letzahl = 42; // Number
|
||||
let wahr = true; // Boolean
|
||||
let array = [1, 2, 3]; // Array
|
||||
let objekt = { // Object
|
||||
name: "Max",
|
||||
alter: 25
|
||||
};
|
||||
```
|
||||
|
||||
### Kontrollstrukturen
|
||||
|
||||
```javascript
|
||||
// Bedingung
|
||||
if (alter >= 18) {
|
||||
console.log("Volljährig");
|
||||
} else {
|
||||
console.log("Minderjährig");
|
||||
}
|
||||
|
||||
// Switch
|
||||
switch (tag) {
|
||||
case "Mo":
|
||||
case "Di":
|
||||
console.log("Arbeitstag");
|
||||
break;
|
||||
default:
|
||||
console.log("Wochenende");
|
||||
}
|
||||
|
||||
// Schleifen
|
||||
for (let i = 0; i < 5; i++) {
|
||||
console.log(i);
|
||||
}
|
||||
|
||||
array.forEach(item => {
|
||||
console.log(item);
|
||||
});
|
||||
```
|
||||
|
||||
### Funktionen
|
||||
|
||||
```javascript
|
||||
// Funktionsdeklaration
|
||||
function gruss(name) {
|
||||
return "Hallo " + name;
|
||||
}
|
||||
|
||||
// Arrow Function
|
||||
const gruss = (name) => "Hallo " + name;
|
||||
|
||||
// Mit Standardwert
|
||||
function gruss(name = "Gast") {
|
||||
return "Hallo " + name;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## DOM - Document Object Model
|
||||
|
||||
### Element auswählen
|
||||
|
||||
```javascript
|
||||
// Nach ID
|
||||
const element = document.getElementById("meine-id");
|
||||
|
||||
// Nach Klasse
|
||||
const elemente = document.getElementsByClassName("klasse");
|
||||
|
||||
// Nach Selektor
|
||||
const element = document.querySelector(".klasse");
|
||||
const elemente = document.querySelectorAll("p");
|
||||
```
|
||||
|
||||
### Inhalt ändern
|
||||
|
||||
```javascript
|
||||
// Text ändern
|
||||
element.textContent = "Neuer Text";
|
||||
|
||||
// HTML ändern
|
||||
element.innerHTML = "<strong>Fett</strong>";
|
||||
|
||||
// Attribute
|
||||
element.setAttribute("class", "neu");
|
||||
element.getAttribute("href");
|
||||
```
|
||||
|
||||
### Events
|
||||
|
||||
```javascript
|
||||
// Event Listener
|
||||
element.addEventListener("click", function() {
|
||||
console.log("Geklickt!");
|
||||
});
|
||||
|
||||
// Arrow Function
|
||||
element.addEventListener("click", () => {
|
||||
alert("Geklickt!");
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Formulare
|
||||
|
||||
### HTML-Formular
|
||||
|
||||
```html
|
||||
<form id="login-form">
|
||||
<label for="email">E-Mail:</label>
|
||||
<input type="email" id="email" name="email" required>
|
||||
|
||||
<label for="password">Passwort:</label>
|
||||
<input type="password" id="password" name="password" required>
|
||||
|
||||
<button type="submit">Anmelden</button>
|
||||
</form>
|
||||
```
|
||||
|
||||
### Formulardaten auslesen
|
||||
|
||||
```javascript
|
||||
const formular = document.getElementById("login-form");
|
||||
|
||||
formular.addEventListener("submit", function(e) {
|
||||
e.preventDefault(); // Verhindert Seitenreload
|
||||
|
||||
const formData = new FormData(formular);
|
||||
const daten = Object.fromEntries(formData);
|
||||
|
||||
console.log(daten);
|
||||
// { email: "...", password: "..." }
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Frameworks
|
||||
|
||||
### React
|
||||
|
||||
```jsx
|
||||
import React, { useState } from 'react';
|
||||
|
||||
function Counter() {
|
||||
const [count, setCount] = useState(0);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<p>Zähler: {count}</p>
|
||||
<button onClick={() => setCount(count + 1)}>
|
||||
Erhöhen
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### Vue
|
||||
|
||||
```html
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const count = ref(0);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<p>Zähler: {{ count }}</p>
|
||||
<button @click="count++">Erhöhen</button>
|
||||
</template>
|
||||
```
|
||||
|
||||
### Vergleich
|
||||
|
||||
| Framework | Typ |特点 |
|
||||
|-----------|-----|-----|
|
||||
| React | Library | Flexibel, große Community |
|
||||
| Vue | Framework | Einfach zu lernen |
|
||||
| Angular | Framework | Enterprise, TypeScript |
|
||||
|
||||
---
|
||||
|
||||
## Asynchrone Programmierung
|
||||
|
||||
### Promises
|
||||
|
||||
```javascript
|
||||
// Promise erstellen
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
// Async Operation
|
||||
if (erfolg) {
|
||||
resolve("Erfolg!");
|
||||
} else {
|
||||
reject("Fehler!");
|
||||
}
|
||||
});
|
||||
|
||||
// Nutzen
|
||||
promise
|
||||
.then(ergebnis => console.log(ergebnis))
|
||||
.catch(fehler => console.error(fehler));
|
||||
```
|
||||
|
||||
### Async/Await
|
||||
|
||||
```javascript
|
||||
async function datenLaden() {
|
||||
try {
|
||||
const response = await fetch('/api/daten');
|
||||
const daten = await response.json();
|
||||
console.log(daten);
|
||||
} catch (error) {
|
||||
console.error("Fehler:", error);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Fetch API
|
||||
|
||||
```javascript
|
||||
// GET
|
||||
fetch('/api/benutzer')
|
||||
.then(response => response.json())
|
||||
.then(data => console.log(data));
|
||||
|
||||
// POST
|
||||
fetch('/api/benutzer', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: "Max",
|
||||
email: "max@example.com"
|
||||
})
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => console.log(data));
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF6-01-Web-Grundlagen|Zurück: Web-Grundlagen]]
|
||||
- [[LF6-03-Backend|Nächstes Thema: Backend-Entwicklung]]
|
||||
- [[LF6-04-Sicherheit-Web|Web-Sicherheit]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
272
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-03-Backend.md
Normal file
272
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-03-Backend.md
Normal file
@@ -0,0 +1,272 @@
|
||||
# 6.3 Backend-Entwicklung
|
||||
|
||||
## Server-Grundlagen
|
||||
|
||||
### Client-Server-Architektur
|
||||
|
||||
```
|
||||
Webanwendung - Architektur
|
||||
┌─────────────┐ HTTP ┌─────────────┐
|
||||
│ Browser │ ◄──────────────►│ Server │
|
||||
│ (Frontend) │ │ (Backend) │
|
||||
└─────────────┘ └──────┬──────┘
|
||||
│
|
||||
┌─────┴─────┐
|
||||
│ Datenbank │
|
||||
└───────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Node.js
|
||||
|
||||
### Grundlagen
|
||||
|
||||
```javascript
|
||||
// Einfacher Server
|
||||
const http = require('http');
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
res.writeHead(200, { 'Content-Type': 'text/html' });
|
||||
res.end('<h1>Hallo Welt!</h1>');
|
||||
});
|
||||
|
||||
server.listen(3000, () => {
|
||||
console.log('Server läuft auf Port 3000');
|
||||
});
|
||||
```
|
||||
|
||||
### Express.js
|
||||
|
||||
```javascript
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
|
||||
// Middleware
|
||||
app.use(express.json());
|
||||
|
||||
// GET-Route
|
||||
app.get('/api/benutzer', (req, res) => {
|
||||
res.json([
|
||||
{ id: 1, name: 'Max' },
|
||||
{ id: 2, name: 'Anna' }
|
||||
]);
|
||||
});
|
||||
|
||||
// POST-Route
|
||||
app.post('/api/benutzer', (req, res) => {
|
||||
const neuerBenutzer = req.body;
|
||||
// Speichern...
|
||||
res.status(201).json(neuerBenutzer);
|
||||
});
|
||||
|
||||
app.listen(3000);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## REST-API
|
||||
|
||||
### REST-Prinzipien
|
||||
|
||||
```
|
||||
REST - Grundsätze
|
||||
├── Ressourcen-orientiert (Nomen)
|
||||
├── Stateless (keine Session)
|
||||
├── Einheitliche Schnittstelle
|
||||
├── Client-Server-Trennung
|
||||
└── Cache-fähig
|
||||
```
|
||||
|
||||
### HTTP-Methoden
|
||||
|
||||
| Methode | CRUD | Beschreibung |
|
||||
|---------|-----|-------------|
|
||||
| GET | Read | Daten abrufen |
|
||||
| POST | Create | Daten erstellen |
|
||||
| PUT | Update | Daten vollständig ersetzen |
|
||||
| PATCH | Update | Daten teilweise ändern |
|
||||
| DELETE | Delete | Daten löschen |
|
||||
|
||||
### API-Endpunkte
|
||||
|
||||
```
|
||||
Beispiel: Benutzer-Ressource
|
||||
|
||||
GET /api/benutzer → Alle Benutzer
|
||||
GET /api/benutzer/:id → Ein Benutzer
|
||||
POST /api/benutzer → Benutzer erstellen
|
||||
PUT /api/benutzer/:id → Benutzer ersetzen
|
||||
PATCH /api/benutzer/:id → Benutzer ändern
|
||||
DELETE /api/benutzer/:id → Benutzer löschen
|
||||
```
|
||||
|
||||
### Response-Format
|
||||
|
||||
```json
|
||||
// Erfolgreich (200 OK)
|
||||
{
|
||||
"status": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"name": "Max"
|
||||
}
|
||||
}
|
||||
|
||||
// Erfolg (201 Created)
|
||||
{
|
||||
"status": "success",
|
||||
"message": "Benutzer erstellt",
|
||||
"data": {
|
||||
"id": 2
|
||||
}
|
||||
}
|
||||
|
||||
// Fehler (400 Bad Request)
|
||||
{
|
||||
"status": "error",
|
||||
"message": "Ungültige E-Mail-Adresse"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Datenbank-Zugriff
|
||||
|
||||
### MySQL mit Node.js
|
||||
|
||||
```javascript
|
||||
const mysql = require('mysql2/promise');
|
||||
|
||||
async function main() {
|
||||
const connection = await mysql.createConnection({
|
||||
host: 'localhost',
|
||||
user: 'root',
|
||||
password: 'passwort',
|
||||
database: 'webshop'
|
||||
});
|
||||
|
||||
// Daten abfragen
|
||||
const [rows] = await connection.execute(
|
||||
'SELECT * FROM benutzer WHERE id = ?',
|
||||
[1]
|
||||
);
|
||||
console.log(rows);
|
||||
|
||||
await connection.end();
|
||||
}
|
||||
|
||||
main();
|
||||
```
|
||||
|
||||
### MongoDB mit Node.js
|
||||
|
||||
```javascript
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
// Verbindung
|
||||
mongoose.connect('mongodb://localhost:27017/webshop');
|
||||
|
||||
// Schema
|
||||
const benutzerSchema = new mongoose.Schema({
|
||||
name: String,
|
||||
email: { type: String, unique: true },
|
||||
alter: Number
|
||||
});
|
||||
|
||||
const Benutzer = mongoose.model('Benutzer', benutzerSchema);
|
||||
|
||||
// Daten speichern
|
||||
const neuerBenutzer = new Benutzer({
|
||||
name: 'Max',
|
||||
email: 'max@example.com'
|
||||
});
|
||||
await neuerBenutzer.save();
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Session und Authentifizierung
|
||||
|
||||
### JWT (JSON Web Token)
|
||||
|
||||
```javascript
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
// Token erstellen
|
||||
function createToken(user) {
|
||||
return jwt.sign(
|
||||
{ id: user.id, email: user.email },
|
||||
'geheimer-schluessel',
|
||||
{ expiresIn: '24h' }
|
||||
);
|
||||
}
|
||||
|
||||
// Token prüfen
|
||||
function verifyToken(token) {
|
||||
try {
|
||||
return jwt.verify(token, 'geheimer-schluessel');
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Middleware
|
||||
function authenticate(req, res, next) {
|
||||
const token = req.headers.authorization?.split(' ')[1];
|
||||
const decoded = verifyToken(token);
|
||||
|
||||
if (!decoded) {
|
||||
return res.status(401).json({ error: 'Nicht autorisiert' });
|
||||
}
|
||||
|
||||
req.user = decoded;
|
||||
next();
|
||||
}
|
||||
```
|
||||
|
||||
### Passwort-Hashing
|
||||
|
||||
```javascript
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
// Passwort hashen
|
||||
async function hashPassword(password) {
|
||||
const salt = await bcrypt.genSalt(10);
|
||||
return await bcrypt.hash(password, salt);
|
||||
}
|
||||
|
||||
// Passwort prüfen
|
||||
async function checkPassword(password, hash) {
|
||||
return await bcrypt.compare(password, hash);
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## RESTful Best Practices
|
||||
|
||||
### Tipps
|
||||
|
||||
```
|
||||
API-Design - Empfehlungen
|
||||
├── Versionierung: /api/v1/...
|
||||
├── Plural: /benutzer nicht /benutzer
|
||||
├── Filter: /benutzer?alter=25
|
||||
├── Sortierung: /benutzer?sort=name
|
||||
├── Paginierung: /benutzer?page=1&limit=10
|
||||
├── Fehlercodes: HTTP-Statuscodes nutzen
|
||||
└── Dokumentation: OpenAPI/Swagger
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF6-02-Frontend|Zurück: Frontend-Entwicklung]]
|
||||
- [[LF6-04-Sicherheit-Web|Nächstes Thema: Web-Sicherheit]]
|
||||
- [[LF3-Datenbanken|Datenbanken]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
257
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-04-Sicherheit-Web.md
Normal file
257
1-Ausbildungsjahr/LF6-Webanwendungen/LF6-04-Sicherheit-Web.md
Normal file
@@ -0,0 +1,257 @@
|
||||
# 6.4 Web-Sicherheit
|
||||
|
||||
## OWASP Top 10
|
||||
|
||||
### Die wichtigsten Sicherheitsrisiken
|
||||
|
||||
```
|
||||
OWASP Top 10 (2021)
|
||||
├── A01: Broken Access Control
|
||||
├── A02: Cryptographic Failures
|
||||
├── A03: Injection
|
||||
├── A04: Insecure Design
|
||||
├── A05: Security Misconfiguration
|
||||
├── A06: Vulnerable Components
|
||||
├── A07: Authentification Failures
|
||||
├── A08: Software and Data Integrity Failures
|
||||
├── A09: Security Logging Failures
|
||||
└── A10: Server-Side Request Forgery
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Injection
|
||||
|
||||
### SQL Injection
|
||||
|
||||
**Problem:** Benutzereingaben werden direkt in SQL-Abfragen eingebaut.
|
||||
|
||||
```sql
|
||||
-- Gefährlich
|
||||
SELECT * FROM benutzer WHERE name = '" + name + "'
|
||||
|
||||
-- Bei name = "' OR '1'='1"
|
||||
SELECT * FROM benutzer WHERE name = '' OR '1'='1'
|
||||
-- → Alle Benutzer werden zurückgegeben!
|
||||
```
|
||||
|
||||
**Schutz: Prepared Statements**
|
||||
|
||||
```javascript
|
||||
// Gefährlich
|
||||
db.query("SELECT * FROM users WHERE name = '" + name + "'");
|
||||
|
||||
// Sicher - Parameterized Query
|
||||
db.query("SELECT * FROM users WHERE name = ?", [name]);
|
||||
```
|
||||
|
||||
### XSS (Cross-Site Scripting)
|
||||
|
||||
**Problem:** Schadcode wird in Webseiten eingeschleust.
|
||||
|
||||
```html
|
||||
<!-- Gefährlich: Benutzereingabe direkt ausgeben -->
|
||||
<div>{{ benutzereingabe }}</div>
|
||||
<!-- Bei eingabe = <script>alert('XSS')</script> -->
|
||||
```
|
||||
|
||||
**Schutz: Output Encoding**
|
||||
|
||||
```javascript
|
||||
// HTML-Escaping
|
||||
function escapeHtml(text) {
|
||||
const map = {
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
"'": '''
|
||||
};
|
||||
return text.replace(/[&<>"']/g, m => map[m]);
|
||||
}
|
||||
|
||||
// React macht das automatisch
|
||||
<div>{benutzereingabe}</div>
|
||||
```
|
||||
|
||||
### Content Security Policy (CSP)
|
||||
|
||||
```http
|
||||
Content-Security-Policy: default-src 'self'; script-src 'self'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## CSRF (Cross-Site Request Forgery)
|
||||
|
||||
### Das Problem
|
||||
|
||||
```
|
||||
CSRF-Angriff
|
||||
1. Opfer ist eingeloggt bei bank.com
|
||||
2. Opfer besucht bösartige Seite
|
||||
3. Bösartige Seite sendet Request an bank.com
|
||||
4. Browser sendet automatisch Session-Cookie
|
||||
5. Überweisung wird ausgeführt
|
||||
```
|
||||
|
||||
### Schutz: CSRF-Token
|
||||
|
||||
```javascript
|
||||
// Server: Token generieren
|
||||
app.get('/form', (req, res) => {
|
||||
const csrfToken = crypto.randomBytes(32).toString('hex');
|
||||
req.session.csrfToken = csrfToken;
|
||||
res.render('form', { csrfToken });
|
||||
});
|
||||
|
||||
// Server: Token prüfen
|
||||
app.post('/transfer', (req, res) => {
|
||||
if (req.body.csrfToken !== req.session.csrfToken) {
|
||||
return res.status(403).send('CSRF-Angriff erkannt');
|
||||
}
|
||||
// Weiter mit Überweisung...
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Authentifizierung
|
||||
|
||||
### Unsichere Praktiken
|
||||
|
||||
```
|
||||
Vermeiden
|
||||
├── Passwörter im Klartext speichern
|
||||
├── Schwache Passwörter erlauben
|
||||
├── Keine Zwei-Faktor-Authentifizierung
|
||||
├── Session-IDs in URL
|
||||
└── Unbegrenzte Login-Versuche
|
||||
```
|
||||
|
||||
### Sichere Authentifizierung
|
||||
|
||||
```javascript
|
||||
// 1. Passwörter hashen
|
||||
const hash = await bcrypt.hash(passwort, 12);
|
||||
|
||||
// 2. Rate Limiting
|
||||
const rateLimit = require('express-rate-limit');
|
||||
app.use('/login', rateLimit({
|
||||
windowMs: 15 * 60 * 1000,
|
||||
max: 5 // 5 Versuche
|
||||
}));
|
||||
|
||||
// 3. Sichere Session
|
||||
app.use(session({
|
||||
secret: 'geheimer-schluessel',
|
||||
httpOnly: true,
|
||||
secure: true, // HTTPS
|
||||
sameSite: 'strict'
|
||||
}));
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sicherheits-Header
|
||||
|
||||
### Wichtige Header
|
||||
|
||||
```http
|
||||
# HSTS - HTTPS erzwingen
|
||||
Strict-Transport-Security: max-age=31536000; includeSubDomains
|
||||
|
||||
# X-Content-Type-Options
|
||||
X-Content-Type-Options: nosniff
|
||||
|
||||
# X-Frame-Options - Clickjacking
|
||||
X-Frame-Options: DENY
|
||||
|
||||
# Content Security Policy
|
||||
Content-Security-Policy: default-src 'self'
|
||||
|
||||
# Referrer Policy
|
||||
Referrer-Policy: strict-origin-when-cross-origin
|
||||
```
|
||||
|
||||
### Implementierung in Express
|
||||
|
||||
```javascript
|
||||
const helmet = require('helmet');
|
||||
app.use(helmet());
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Eingabevalidierung
|
||||
|
||||
### Grundprinzip
|
||||
|
||||
```
|
||||
Validierung - Regeln
|
||||
├── Nie Benutzereingaben vertrauen
|
||||
├── Client-seitige Validierung reicht nicht
|
||||
├── Whitelist statt Blacklist
|
||||
├── Länge und Format prüfen
|
||||
└── Alle Eingaben validieren
|
||||
```
|
||||
|
||||
### Validierungsbeispiel
|
||||
|
||||
```javascript
|
||||
const Joi = require('joi');
|
||||
|
||||
const benutzerSchema = Joi.object({
|
||||
name: Joi.string()
|
||||
.alphanum()
|
||||
.min(3)
|
||||
.max(30)
|
||||
.required(),
|
||||
|
||||
email: Joi.string()
|
||||
.email()
|
||||
.required(),
|
||||
|
||||
alter: Joi.number()
|
||||
.integer()
|
||||
.min(18)
|
||||
.max(150)
|
||||
});
|
||||
|
||||
// Validierung
|
||||
const { error, value } = benutzerSchema.validate(req.body);
|
||||
if (error) {
|
||||
return res.status(400).json({ error: error.details });
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Checkliste Web-Sicherheit
|
||||
|
||||
```
|
||||
Sicherheits-Checkliste
|
||||
□ HTTPS erzwingen
|
||||
□ Sicherheits-Header setzen
|
||||
□ SQL Injection verhindern (Prepared Statements)
|
||||
□ XSS verhindern (Escaping)
|
||||
□ CSRF-Token verwenden
|
||||
□ Passwörter hashen (bcrypt)
|
||||
□ Rate Limiting
|
||||
□ Eingaben validieren
|
||||
□ Fehlermeldungen nicht zu detailliert
|
||||
□ Regelmäßige Updates
|
||||
□ Sicherheitstests durchführen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[LF6-03-Backend|Zurück: Backend-Entwicklung]]
|
||||
- [[LF4-IT-Sicherheit|IT-Sicherheit allgemein]]
|
||||
- [[LF3-05-Datenbankmanagement|Datenbank: SQL Injection]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024*
|
||||
Reference in New Issue
Block a user