Initial commit: IHK Ausbildung materials
This commit is contained in:
159
00-Inhaltsverzeichnis.md
Normal file
159
00-Inhaltsverzeichnis.md
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
# IHK Ausbildung - Fachinformatiker Anwendungsentwicklung
|
||||||
|
|
||||||
|
> Index für die Ausbildungsunterlagen | [[00-Inhaltsverzeichnis|🔗 Direkt zum Inhaltsverzeichnis]]
|
||||||
|
|
||||||
|
## Überblick
|
||||||
|
|
||||||
|
Diese Vault enthält alle Lernunterlagen für die 3-jährige Ausbildung zum/zur Fachinformatiker/in Anwendungsentwicklung gemäß Rahmenlehrplan KMK (13.12.2019) und Ausbildungsverordnung FIAusbV (28.02.2020).
|
||||||
|
|
||||||
|
### Zeitlicher Ablauf
|
||||||
|
|
||||||
|
| Jahr | Lernfelder | Gesamtstunden |
|
||||||
|
| ------------------ | ---------- | ------------- |
|
||||||
|
| 1. Ausbildungsjahr | LF 1-5 | 320 Stunden |
|
||||||
|
| 2. Ausbildungsjahr | LF 6-9 | 280 Stunden |
|
||||||
|
| 3. Ausbildungsjahr | LF 10a-12a | 280 Stunden |
|
||||||
|
| | | |
|
||||||
|
|
||||||
|
### Prüfungsübersicht
|
||||||
|
|
||||||
|
- **Teil 1 der Abschlussprüfung**: Nach dem 4. Ausbildungshalbjahr (nach LF 1-6)
|
||||||
|
- **Teil 2 der Abschlussprüfung**: Am Ende der Ausbildung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ordnerstruktur
|
||||||
|
|
||||||
|
```
|
||||||
|
IHK-Ausbildung/
|
||||||
|
├── 📚 1-Ausbildungsjahr/
|
||||||
|
│ ├── 📖 LF1-Unternehmen-Rolle/
|
||||||
|
│ ├── 📖 LF2-Arbeitsplätze-ausstatten/
|
||||||
|
│ ├── 📖 LF3-Datenbanken/
|
||||||
|
│ ├── 📖 LF4-IT-Sicherheit/
|
||||||
|
│ └── 📖 LF5-Analyse-Design/
|
||||||
|
│
|
||||||
|
├── 📚 2-Ausbildungsjahr/
|
||||||
|
│ ├── 📖 LF6-Webanwendungen/
|
||||||
|
│ ├── 📖 LF7-Service/
|
||||||
|
│ ├── 📖 LF8-Daten-integration/
|
||||||
|
│ └── 📖 LF9-Netzwerke-Dienste/
|
||||||
|
│
|
||||||
|
├── 📚 3-Ausbildungsjahr/
|
||||||
|
│ ├── 📖 LF10a-Benutzeroberflächen/
|
||||||
|
│ ├── 📖 LF11a-Funktionalität-realisiren/
|
||||||
|
│ └── 📖 LF12a-Kundenspezifische-Entwicklung/
|
||||||
|
│
|
||||||
|
├── 📝 Prüfungsvorbereitung/
|
||||||
|
│ ├── 📖 Teil1-Prüfung/
|
||||||
|
│ ├── 📖 Teil2-Projekt/
|
||||||
|
│ └── 📖 Wirtschafts-Sozialkunde/
|
||||||
|
│
|
||||||
|
├── 🏢 Betriebliche-Ausbildung/
|
||||||
|
│ ├── 📖 Ausbildungsnachweis/
|
||||||
|
│ ├── 📖 Projekt-doku-Vorlagen/
|
||||||
|
│ └── 📖 Betriebliche-Themen/
|
||||||
|
│
|
||||||
|
├── 📚 Wissen/
|
||||||
|
│ ├── 📖 Programmiersprachen/
|
||||||
|
│ ├── 📖 Datenbanken/
|
||||||
|
│ ├── 📖 Netzwerk-Technik/
|
||||||
|
│ ├── 📖 IT-Sicherheit/
|
||||||
|
│ └── 📖 Projektmanagement/
|
||||||
|
│
|
||||||
|
└── 📋 Notizen/
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernfeld-Übersicht mit Kompetenzen
|
||||||
|
|
||||||
|
### 1. Ausbildungsjahr
|
||||||
|
|
||||||
|
#### LF 1: Das Unternehmen und die eigene Rolle im Betrieb beschreiben
|
||||||
|
- **Zeitrichtwert**: 40 Stunden
|
||||||
|
- **Kernkompetenz**: Unternehmen hinsichtlich Wertschöpfungskette präsentieren und eigene Rolle beschreiben
|
||||||
|
- **Themen**: Unternehmensleitbild, Marktstruktur, Rechtsform, Wertschöpfungskette, Organisationsstruktur
|
||||||
|
|
||||||
|
#### LF 2: Arbeitsplätze nach Kundenwunsch ausstatten
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Ausstattung eines Arbeitsplatzes nach Kundenwunsch dimensionieren, anzubieten, zu beschaffen und zu übergeben
|
||||||
|
- **Themen**: Hard-/Software-Auswahl, Nutzwertanalyse, Angebotserstellung, Beschaffung, Inbetriebnahme
|
||||||
|
|
||||||
|
#### LF 3: Clients in Netzwerke einbinden
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Netzwerkinfrastruktur analysieren und Clients integrieren
|
||||||
|
- **Themen**: Netzwerkkomponenten, IP-Konfiguration, DHCP, DNS, WLAN, Netzwerkprotokolle
|
||||||
|
|
||||||
|
#### LF 4: Schutzbedarfsanalyse im eigenen Arbeitsbereich durchführen
|
||||||
|
- **Zeitrichtwert**: 40 Stunden
|
||||||
|
- **Kernkompetenz**: Schutzbedarfsanalyse zur Ermittlung der Informationssicherheit auf Grundschutzniveau
|
||||||
|
- **Themen**: Schutzziele (Vertraulichkeit, Integrität, Verfügbarkeit), Bedrohungen, Sicherheitsleitlinie, BSI-Grundschutz
|
||||||
|
|
||||||
|
#### LF 5: Software zur Verwaltung von Daten anpassen
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Informationen mittels Daten abbilden, Daten verwalten und Software anpassen
|
||||||
|
- **Themen**: Datenbankmodelle, ER-Diagramme, SQL, Datenformate, Softwareanpassung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Ausbildungsjahr
|
||||||
|
|
||||||
|
#### LF 6: Serviceanfragen bearbeiten
|
||||||
|
- **Zeitrichtwert**: 40 Stunden
|
||||||
|
- **Kernkompetenz**: Serviceanfragen einordnen, Fehlerursachen ermitteln und beheben
|
||||||
|
- **Themen**: ITIL-Grundlagen, Ticket-Systeme, Support-Levels, Kommunikation, Dokumentation
|
||||||
|
|
||||||
|
#### LF 7: Cyber-physische Systeme ergänzen
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Physische Welt und IT-Systeme funktional zu einem CPS zusammenführen
|
||||||
|
- **Themen**: Sensoren, Aktoren, Mikrocontroller, IoT-Kommunikation, MQTT
|
||||||
|
|
||||||
|
#### LF 8: Daten systemübergreifend bereitstellen
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Daten aus dezentralen Quellen zusammenführen, aufbereiten und zur Verfügung stellen
|
||||||
|
- **Themen**: Datenbanken, APIs, Schnittstellen, Datenformate, Datenintegration
|
||||||
|
|
||||||
|
#### LF 9: Netzwerke und Dienste bereitstellen
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Netzwerke und Dienste planen, konfigurieren und erweitern
|
||||||
|
- **Themen**: Serverdienste, VPN, Firewall, Netzwerksicherheit, Dienste (HTTP, DNS, DHCP, etc.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Ausbildungsjahr (Fachrichtung Anwendungsentwicklung)
|
||||||
|
|
||||||
|
#### LF 10a: Benutzerschnittstellen gestalten und entwickeln
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Benutzeroberflächen für softwarebasierte Arbeitsabläufe und Geschäftsprozesse gestalten und entwickeln
|
||||||
|
- **Themen**: UI/UX-Design, Responsive Design, Benutzerfreundlichkeit, agile Methoden
|
||||||
|
|
||||||
|
#### LF 11a: Funktionalität in Anwendungen realisieren
|
||||||
|
- **Zeitrichtwert**: 80 Stunden
|
||||||
|
- **Kernkompetenz**: Modulare Komponenten zur informationstechnischen Verarbeitung entwickeln und Qualität sichern
|
||||||
|
- **Themen**: OOP, Modularisierung, Schnittstellen, Tests, Qualitätssicherung
|
||||||
|
|
||||||
|
#### LF 12a: Kundenspezifische Anwendungsentwicklung durchführen
|
||||||
|
- **Zeitrichtwert**: 120 Stunden
|
||||||
|
- **Kernkompetenz**: Kundenauftrag zur Anwendungsentwicklung vollständig durchführen und bewerten
|
||||||
|
- **Themen**: Projektmanagement, Anforderungsanalyse, Implementierung, Tests, Dokumentation, Übergabe
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wichtige Ressourcen
|
||||||
|
|
||||||
|
### Gesetzliche Grundlagen
|
||||||
|
- [[Rahmenlehrplan-KMK|Fachinformatiker Rahmenlehrplan KMK]]
|
||||||
|
- [[Ausbildungsverordnung|FIAusbV - Verordnung über die Berufsausbildung]]
|
||||||
|
- [[Liste-der-Entsprechungen|KMK/BIBB Liste der Entsprechungen]]
|
||||||
|
|
||||||
|
### Externe Links
|
||||||
|
- [KMK Rahmenlehrpläne](http://www.kmk.org)
|
||||||
|
- [BIBB Ausbildungsprofile](http://www.bibb.de)
|
||||||
|
- [Fachinformatiker Prüfungsvorbereitung](https://fachinformatikerpruefungsvorbereitung.de)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Zuletzt aktualisiert: 2024*
|
||||||
|
*Ausbildung: Fachinformatiker Anwendungsentwicklung | IHK Bremen*
|
||||||
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*
|
||||||
181
2-Ausbildungsjahr/LF6-Serviceanfragen/LF6-Notizen.md
Normal file
181
2-Ausbildungsjahr/LF6-Serviceanfragen/LF6-Notizen.md
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
# LF 6: Serviceanfragen bearbeiten
|
||||||
|
|
||||||
|
> **2. Ausbildungsjahr** | Zeitrichtwert: **40 Stunden**
|
||||||
|
|
||||||
|
## Kernkompetenz
|
||||||
|
|
||||||
|
Die Schülerinnen und Schüler verfügen über die Kompetenz, Serviceanfragen einzuordnen, Fehlerursachen zu ermitteln und zu beheben.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
Nach diesem Lernfeld kannst du:
|
||||||
|
- [ ] Serviceanfragen analysieren und einordnen
|
||||||
|
- [ ] Service-Level-Agreements (SLA) prüfen
|
||||||
|
- [ ] Ticket-Systeme bedienen
|
||||||
|
- [ ] Fehlerursachen systematisch ermitteln
|
||||||
|
- [ ] Lösungen im Rahmen des Support-Levels erarbeiten
|
||||||
|
- [ ] Mit Kunden situationsgerecht kommunizieren
|
||||||
|
- [ ] Den Bearbeitungsprozess reflektieren
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ITIL-Grundlagen
|
||||||
|
|
||||||
|
### Service-Struktur
|
||||||
|
|
||||||
|
```
|
||||||
|
ITIL-Prozesse
|
||||||
|
├── Service Strategy
|
||||||
|
├── Service Design
|
||||||
|
├── Service Transition
|
||||||
|
├── Service Operation
|
||||||
|
│ ├── Incident Management
|
||||||
|
│ ├── Problem Management
|
||||||
|
│ └── Request Fulfillment
|
||||||
|
└── Continual Service Improvement
|
||||||
|
```
|
||||||
|
|
||||||
|
### Support-Level
|
||||||
|
|
||||||
|
| Level | Beschreibung | Beispiel |
|
||||||
|
|-------|--------------|----------|
|
||||||
|
| **1st Level** | Erste Ebene, einfache Probleme | Passwort zurücksetzen |
|
||||||
|
| **2nd Level** | Technischer Support | Hard- und Softwareprobleme |
|
||||||
|
| **3rd Level** | Entwicklung/Hersteller | Komplexe Fehler |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ticket-Systeme
|
||||||
|
|
||||||
|
### Ticket-Lebenszyklus
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
||||||
|
│ New │───>│ Open │───>│ Pending │───>│ Closed │
|
||||||
|
└─────────┘ └─────────┘ └─────────┘ └─────────┘
|
||||||
|
│ │
|
||||||
|
v v
|
||||||
|
┌─────────┐ ┌─────────┐
|
||||||
|
│ In │ │ Resolved│
|
||||||
|
│ Progress │ └─────────┘
|
||||||
|
└─────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### Prioritäten
|
||||||
|
|
||||||
|
| Priorität | Beschreibung | Reaktionszeit |
|
||||||
|
|-----------|--------------|---------------|
|
||||||
|
| **P1 - Kritisch** | Geschäftskritisch | < 1 Stunde |
|
||||||
|
| **P2 - Hoch** | Große Auswirkung | < 4 Stunden |
|
||||||
|
| **P3 - Mittel** | Begrenzte Auswirkung | < 1 Arbeitstag |
|
||||||
|
| **P4 - Niedrig** | Minimaler Impact | < 1 Woche |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SLA (Service Level Agreement)
|
||||||
|
|
||||||
|
### Bestandteile
|
||||||
|
|
||||||
|
```
|
||||||
|
SLA-Inhalte
|
||||||
|
├── Verfügbarkeit (z.B. 99,9%)
|
||||||
|
├── Reaktionszeiten
|
||||||
|
├── Wiederherstellungszeiten
|
||||||
|
├── Support-Zeiten (24/7, 9-17 Uhr)
|
||||||
|
├── Eskalationsprozeduren
|
||||||
|
├── Reporting
|
||||||
|
└── Kosten
|
||||||
|
```
|
||||||
|
|
||||||
|
### Berechnung Verfügbarkeit
|
||||||
|
|
||||||
|
```
|
||||||
|
Beispiel: 99,9% Verfügbarkeit
|
||||||
|
|
||||||
|
Jährlich: 365 Tage × 24h = 8760h
|
||||||
|
Erlaubte Ausfallzeit: 8760 × 0,001 = 8,76h
|
||||||
|
Monatlich: 720h × 0,001 = 0,72h
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fehleranalyse
|
||||||
|
|
||||||
|
### Methoden
|
||||||
|
|
||||||
|
| Methode | Beschreibung |
|
||||||
|
|---------|--------------|
|
||||||
|
| **5 Whys** | Warum-Fragen stellen (Root Cause) |
|
||||||
|
| **Ishikawa** | Fischgräten-Diagramm |
|
||||||
|
| **Kepner-Tregoe** | Situationsanalyse |
|
||||||
|
|
||||||
|
### 5-Why-Beispiel
|
||||||
|
|
||||||
|
```
|
||||||
|
Problem: Drucker druckt nicht
|
||||||
|
|
||||||
|
1. Warum? → Kein Toner
|
||||||
|
2. Warum? → Toner wurde nie gewechselt
|
||||||
|
3. Warum? → Keine Warnung bei niedrigem Tonerstand
|
||||||
|
4. Warum? → Einstellungen nicht konfiguriert
|
||||||
|
5. Warum? → Schulung nicht erfolgt
|
||||||
|
|
||||||
|
→ Lösung: Schulung durchführen
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kommunikation
|
||||||
|
|
||||||
|
### Vier-Seiten-Modell (Schulz von Thun)
|
||||||
|
|
||||||
|
```
|
||||||
|
Nachricht hat 4 Seiten:
|
||||||
|
┌─────────────────────────────────────┐
|
||||||
|
│ Sachinhalt │ ← Was wurde mitgeteilt?
|
||||||
|
├─────────────────────────────────────┤
|
||||||
|
│ Selbstoffenbarung │ ← Was sagt das über mich aus?
|
||||||
|
├─────────────────────────────────────┤
|
||||||
|
│ Beziehung │ ← Wie stehe ich zum Empfänger?
|
||||||
|
├─────────────────────────────────────┤
|
||||||
|
│ Appelle │ ← Was will ich erreichen?
|
||||||
|
└─────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### Deeskalation
|
||||||
|
|
||||||
|
- **Aktives Zuhören**
|
||||||
|
- **Empathie zeigen**
|
||||||
|
- **Sachlich bleiben**
|
||||||
|
- **Lösungen anbieten**
|
||||||
|
- **Rückmeldung geben**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Handlungsphasen
|
||||||
|
|
||||||
|
1. **Aufnehmen**: Ticket erstellen, Kunden kontaktieren
|
||||||
|
2. **Analysieren**: SLA prüfen, Fehler eingrenzen
|
||||||
|
3. **Lösen**: Lösung erarbeiten, umsetzen
|
||||||
|
4. **Dokumentieren**: Ticket aktualisieren, dokumentieren
|
||||||
|
5. **Abschließen**: Kunden informieren, Feedback einholen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsrelevanz
|
||||||
|
|
||||||
|
- Wichtig für Support-Tätigkeiten
|
||||||
|
- Kommunikationskompetenz wird geprüft
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[1-Ausbildungsjahr/LF5-Datenbanken-anpassen|Vorher: LF 5]]
|
||||||
|
- [[2-Ausbildungsjahr/LF7-Cyber-physische-Systeme|Nachher: LF 7]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||||
225
2-Ausbildungsjahr/LF7-Cyber-physische-Systeme/LF7-Notizen.md
Normal file
225
2-Ausbildungsjahr/LF7-Cyber-physische-Systeme/LF7-Notizen.md
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
# LF 7: Cyber-physische Systeme ergänzen
|
||||||
|
|
||||||
|
> **2. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||||
|
|
||||||
|
## Kernkompetenz
|
||||||
|
|
||||||
|
Die Schülerinnen und Schüler verfügen über die Kompetenz, die physische Welt und IT-Systeme funktional zu einem cyber-physischen System zusammenzuführen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
Nach diesem Lernfeld kannst du:
|
||||||
|
- [ ] Ein CPS analysieren und dessen Komponenten beschreiben
|
||||||
|
- [ ] Datenfluss an Schnittstellen verstehen
|
||||||
|
- [ ] Sensoren und Aktoren auswählen und integrieren
|
||||||
|
- [ ] IoT-Kommunikationsprotokolle anwenden
|
||||||
|
- [ ] Energiebedarf berechnen
|
||||||
|
- [ ] System testen und dokumentieren
|
||||||
|
- [ ] Sicherheitsaspekte berücksichtigen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Was ist ein CPS?
|
||||||
|
|
||||||
|
```
|
||||||
|
Cyber-Physical System (CPS)
|
||||||
|
│
|
||||||
|
├── PHYSISCHE WELT
|
||||||
|
│ ├── Sensoren (Messdaten erfassen)
|
||||||
|
│ └── Aktoren (physikalische Aktionen)
|
||||||
|
│
|
||||||
|
├── IT-SYSTEM
|
||||||
|
│ ├── Steuerung/Regelung
|
||||||
|
│ ├── Datenverarbeitung
|
||||||
|
│ └── Speicherung
|
||||||
|
│
|
||||||
|
└── KOMMUNIKATION
|
||||||
|
├── Netzwerkverbindung
|
||||||
|
└── Protokolle (MQTT, REST, etc.)
|
||||||
|
```
|
||||||
|
|
||||||
|
### CPS vs. IoT
|
||||||
|
|
||||||
|
| Merkmal | CPS | IoT |
|
||||||
|
|---------|-----|-----|
|
||||||
|
| Fokus | Steuerung + Regelung | Vernetzung + Daten |
|
||||||
|
| Bereich | Produktion, Auto | Consumer, Gebäude |
|
||||||
|
| Echtzeit | Oft kritisch | Meist weniger |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sensoren
|
||||||
|
|
||||||
|
### Typen
|
||||||
|
|
||||||
|
| Sensortyp | Messgröße | Anwendung |
|
||||||
|
|-----------|-----------|------------|
|
||||||
|
| Temperatursensor | °C/°F | Klimaanlage |
|
||||||
|
| Feuchtigkeitssensor | %rH | Gewächshaus |
|
||||||
|
| Drucksensor | bar/Pa | Hydraulik |
|
||||||
|
| Lichtsensor | Lux | Beleuchtung |
|
||||||
|
| Abstandssensor | cm/mm | Automatisierung |
|
||||||
|
| Füllstandssensor | % | Tank |
|
||||||
|
| Bewegungssensor | bool | Sicherheit |
|
||||||
|
|
||||||
|
### Schnittstellen
|
||||||
|
|
||||||
|
```
|
||||||
|
Sensor-Schnittstellen
|
||||||
|
├── Analog
|
||||||
|
│ ├── 0-10V
|
||||||
|
│ └── 4-20mA (Stromschleife)
|
||||||
|
├── Digital
|
||||||
|
│ ├── I2C (Two-Wire)
|
||||||
|
│ ├── SPI
|
||||||
|
│ ├── 1-Wire
|
||||||
|
│ └── UART
|
||||||
|
└── Funk
|
||||||
|
├── Zigbee
|
||||||
|
├── Bluetooth LE
|
||||||
|
└── LoRa
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Aktoren
|
||||||
|
|
||||||
|
### Typen
|
||||||
|
|
||||||
|
| Aktortyp | Funktion | Beispiel |
|
||||||
|
|---------|---------|---------|
|
||||||
|
| Relais | Schalten | Licht, Motor |
|
||||||
|
| Motor | Drehung | Roboterarm |
|
||||||
|
| Ventil | Durchfluss | Hydraulik |
|
||||||
|
| Heizelement | Wärme | 3D-Drucker |
|
||||||
|
| LED | Lichtsignal | Statusanzeige |
|
||||||
|
| Piezo | Tonalarm | Signalton |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Mikrocontroller & Einplatinencomputer
|
||||||
|
|
||||||
|
### Vergleich
|
||||||
|
|
||||||
|
| Plattform | Prozessor | RAM | GPIO | OS |
|
||||||
|
|-----------|-----------|-----|------|-----|
|
||||||
|
| **Arduino Uno** | ATmega328P | 2KB | 14 | Nein |
|
||||||
|
| **Raspberry Pi 4** | ARM Cortex-A72 | 8GB | 40 | Linux |
|
||||||
|
| **ESP32** | Xtensa | 520KB | 34 | FreeRTOS |
|
||||||
|
| **BBC micro:bit** | ARM Cortex-M4 | 256KB | 19 | Keins |
|
||||||
|
|
||||||
|
### Programmierung
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Raspberry Pi / Python Beispiel
|
||||||
|
import RPi.GPIO as GPIO
|
||||||
|
import time
|
||||||
|
|
||||||
|
GPIO.setmode(GPIO.BCM)
|
||||||
|
GPIO.setup(18, GPIO.OUT)
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
GPIO.output(18, True) # LED an
|
||||||
|
time.sleep(1)
|
||||||
|
GPIO.output(18, False) # LED aus
|
||||||
|
time.sleep(1)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
GPIO.cleanup()
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## IoT-Kommunikationsprotokolle
|
||||||
|
|
||||||
|
### MQTT
|
||||||
|
|
||||||
|
**Publish/Subscribe-Prinzip:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Publisher Broker Subscriber
|
||||||
|
│ │ │
|
||||||
|
│──Topic: temp───>│ │
|
||||||
|
│ │──temp───> │
|
||||||
|
│ │ │
|
||||||
|
│──Topic: temp───>│ │
|
||||||
|
│ │ │
|
||||||
|
```
|
||||||
|
|
||||||
|
**Beispiel (Python):**
|
||||||
|
|
||||||
|
```python
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
def on_connect(client, userdata, flags, rc):
|
||||||
|
client.subscribe("sensor/temperature")
|
||||||
|
|
||||||
|
def on_message(client, userdata, msg):
|
||||||
|
print(f"Temperatur: {msg.payload.decode()}")
|
||||||
|
|
||||||
|
client = mqtt.Client()
|
||||||
|
client.on_connect = on_connect
|
||||||
|
client.on_message = on_message
|
||||||
|
client.connect("broker.example.com", 1883)
|
||||||
|
client.loop_forever()
|
||||||
|
```
|
||||||
|
|
||||||
|
### REST API
|
||||||
|
|
||||||
|
```
|
||||||
|
HTTP-Methoden:
|
||||||
|
GET → Daten abrufen
|
||||||
|
POST → Daten erstellen
|
||||||
|
PUT → Daten vollständig ersetzen
|
||||||
|
PATCH → Daten teilweise ändern
|
||||||
|
DELETE → Daten löschen
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Energiebedarf
|
||||||
|
|
||||||
|
### Berechnung
|
||||||
|
|
||||||
|
```
|
||||||
|
P = U × I (Leistung = Spannung × Strom)
|
||||||
|
|
||||||
|
Beispiel:
|
||||||
|
Mikrocontroller: 5V × 0,5A = 2,5W
|
||||||
|
Stunden pro Tag: 24h
|
||||||
|
Verbrauch/Tag: 2,5W × 24h = 60Wh = 0,06kWh
|
||||||
|
Jahr: 0,06kWh × 365 = 21,9kWh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Handlungsphasen
|
||||||
|
|
||||||
|
1. **Analysieren**: Bestehendes System verstehen
|
||||||
|
2. **Informieren**: Technische Dokumentation studieren
|
||||||
|
3. **Planen**: Komponentenauswahl, Konzept erstellen
|
||||||
|
4. **Implementieren**: Software, Hardware integrieren
|
||||||
|
5. **Testen**: Funktion prüfen, dokumentieren
|
||||||
|
6. **Reflektieren**: Optimierungsmöglichkeiten finden
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsrelevanz
|
||||||
|
|
||||||
|
- Wichtig für Anwendungsentwicklung
|
||||||
|
- Projektion in LF 10a-12a
|
||||||
|
- Praxisbezug für Abschlussprojekt
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[2-Ausbildungsjahr/LF6-Serviceanfragen|Vorher: LF 6]]
|
||||||
|
- [[2-Ausbildungsjahr/LF8-Daten-bereitstellen|Nachher: LF 8]]
|
||||||
|
- [[IoT-Programmierung|IoT-Programmierung Vertiefung]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||||
32
2-Ausbildungsjahr/LF7-Service/LF7-00-Übersicht.md
Normal file
32
2-Ausbildungsjahr/LF7-Service/LF7-00-Übersicht.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Lernfeld 7: Service und Support
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
Dieses Lernfeld behandelt die Bearbeitung von Serviceanfragen und den IT-Support.
|
||||||
|
|
||||||
|
## Themen
|
||||||
|
|
||||||
|
| Nr. | Thema | Beschreibung |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 7.1 | [[LF7-01-ITIL-Grundlagen]] | IT Service Management |
|
||||||
|
| 7.2 | [[LF7-02-Ticketmanagement]] | Ticketsysteme, Prozesse |
|
||||||
|
| 7.3 | [[LF7-03-Support-Stufen]] | 1st/2nd/3rd Level |
|
||||||
|
| 7.4 | [[LF7-04-Kommunikation]] | Kundenkommunikation |
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
- Serviceanfragen professionell bearbeiten
|
||||||
|
- ITIL-Prozesse anwenden
|
||||||
|
- Support-Stufen unterscheiden
|
||||||
|
- Kundenorientiert kommunizieren
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF6-04-Sicherheit-Web|Zurück: Web-Sicherheit]]
|
||||||
|
- [[LF8-Datenintegration|Nächstes Lernfeld: Datenintegration]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
150
2-Ausbildungsjahr/LF7-Service/LF7-01-ITIL-Grundlagen.md
Normal file
150
2-Ausbildungsjahr/LF7-Service/LF7-01-ITIL-Grundlagen.md
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
# 7.1 ITIL-Grundlagen
|
||||||
|
|
||||||
|
## Was ist ITIL?
|
||||||
|
|
||||||
|
**ITIL** (Information Technology Infrastructure Library) ist ein Framework für **IT Service Management (ITSM)**.
|
||||||
|
|
||||||
|
### Geschichte
|
||||||
|
|
||||||
|
```
|
||||||
|
ITIL-Versionen
|
||||||
|
├── ITIL v1 (1989) → 1990er
|
||||||
|
├── ITIL v2 (2001) → Best Practices
|
||||||
|
├── ITIL v3 (2007) → Service Lifecycle
|
||||||
|
└── ITIL 4 (2019) → Aktuell, flexibler
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ITIL Service Value System (SVS)
|
||||||
|
|
||||||
|
```
|
||||||
|
ITIL 4 - Überblick
|
||||||
|
┌────────────────────────────────────────┐
|
||||||
|
│ Organisation │
|
||||||
|
├────────────────────────────────────────┤
|
||||||
|
│ Service Value Chain │
|
||||||
|
│ Plan → Improve → Engage → Design → │
|
||||||
|
│ Transition → Operation │
|
||||||
|
├────────────────────────────────────────
|
||||||
|
│ ITIL Practices │
|
||||||
|
└────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ITIL Service Value Chain
|
||||||
|
|
||||||
|
```
|
||||||
|
Value Chain - Aktivitäten
|
||||||
|
├── Plan (Planen)
|
||||||
|
│ └── Strategie festlegen
|
||||||
|
├── Improve (Verbessern)
|
||||||
|
│ └── Kontinuierliche Verbesserung
|
||||||
|
├── Engage (Einbeziehen)
|
||||||
|
│ └── Kommunikation mit Stakeholdern
|
||||||
|
├── Design & Transition (Gestalten)
|
||||||
|
│ └── Services entwickeln
|
||||||
|
├── Obtain/Build (Beschaffen)
|
||||||
|
│ └── Komponenten bereitstellen
|
||||||
|
└── Deliver & Operate (Liefern/Betreiben)
|
||||||
|
└── Services bereitstellen
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ITIL Practices
|
||||||
|
|
||||||
|
### Service Practices
|
||||||
|
|
||||||
|
| Practice | Beschreibung |
|
||||||
|
|----------|-------------|
|
||||||
|
| Service Desk | Single Point of Contact |
|
||||||
|
| Incident Management | Störungsbearbeitung |
|
||||||
|
| Problem Management | Grundursachenanalyse |
|
||||||
|
| Change Management | Änderungsprozess |
|
||||||
|
| Release Management | Bereitstellung |
|
||||||
|
|
||||||
|
### Technical Practices
|
||||||
|
|
||||||
|
| Practice | Beschreibung |
|
||||||
|
|----------|-------------|
|
||||||
|
| Monitoring | Systemüberwachung |
|
||||||
|
| Event Management | Ereignisverarbeitung |
|
||||||
|
| Incident Response | Reaktionsfähigkeit |
|
||||||
|
|Continual Improvement | KVP |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kernkonzepte
|
||||||
|
|
||||||
|
### Service
|
||||||
|
|
||||||
|
```
|
||||||
|
Service - Definition
|
||||||
|
Ein Service ermöglicht es Kunden,
|
||||||
|
Wert zu erreichen, ohne spezifische
|
||||||
|
Kosten und Risiken zu tragen.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Value
|
||||||
|
|
||||||
|
```
|
||||||
|
Wert - Komponenten
|
||||||
|
├── Nutzen (Utility)
|
||||||
|
│ └── Funktionen, die Kunde braucht
|
||||||
|
└── Ertrag (Warranty)
|
||||||
|
└── Qualität, Verfügbarkeit
|
||||||
|
```
|
||||||
|
|
||||||
|
### Customer Experience
|
||||||
|
|
||||||
|
```
|
||||||
|
Service Relationship
|
||||||
|
┌─────────┐ Service ┌─────────┐
|
||||||
|
│ Service │◄───────────────►│ Kunde │
|
||||||
|
│ Provider│ │ │
|
||||||
|
└─────────┘ └─────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ITIL-Prozesse im Detail
|
||||||
|
|
||||||
|
### Incident Management
|
||||||
|
|
||||||
|
```
|
||||||
|
Incident Lifecycle
|
||||||
|
1. Detect → Erkennen
|
||||||
|
2. Record → Erfassen
|
||||||
|
3. Categorize → Kategorisieren
|
||||||
|
4. Prioritize → Priorisieren
|
||||||
|
5. Diagnose → Diagnostizieren
|
||||||
|
6. Resolve → Beheben
|
||||||
|
7. Close → Abschließen
|
||||||
|
```
|
||||||
|
|
||||||
|
### Problem Management
|
||||||
|
|
||||||
|
```
|
||||||
|
Problem - Ablauf
|
||||||
|
Problem erkannt
|
||||||
|
↓
|
||||||
|
Analyse der Grundursache
|
||||||
|
↓
|
||||||
|
Lösung entwickeln
|
||||||
|
↓
|
||||||
|
Change Request erstellen
|
||||||
|
↓
|
||||||
|
Problem gelöst
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF7-02-Ticketmanagement|Nächstes Thema: Ticketmanagement]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
178
2-Ausbildungsjahr/LF7-Service/LF7-02-Ticketmanagement.md
Normal file
178
2-Ausbildungsjahr/LF7-Service/LF7-02-Ticketmanagement.md
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
# 7.2 Ticketmanagement
|
||||||
|
|
||||||
|
## Ticketsysteme
|
||||||
|
|
||||||
|
### Was ist ein Ticket?
|
||||||
|
|
||||||
|
```
|
||||||
|
Ticket = Strukturierten Erfassung
|
||||||
|
einer Serviceanfrage oder Störung
|
||||||
|
```
|
||||||
|
|
||||||
|
### Lebenszyklus
|
||||||
|
|
||||||
|
```
|
||||||
|
Ticket-Lebenszyklus
|
||||||
|
┌──────────┐
|
||||||
|
│ Neu │ ← Created
|
||||||
|
└────┬─────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌──────────┐
|
||||||
|
│ In Bearb.│ ← Assigned
|
||||||
|
└────┬─────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌──────────┐
|
||||||
|
│ Gelöst │ ← Resolved
|
||||||
|
└────┬─────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌──────────┐
|
||||||
|
│ Geschlos.│ ← Closed
|
||||||
|
└──────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ticket-Kategorien
|
||||||
|
|
||||||
|
### Kategorisierung
|
||||||
|
|
||||||
|
| Kategorie | Beschreibung |
|
||||||
|
|-----------|-------------|
|
||||||
|
| Incident | Störung, Serviceausfall |
|
||||||
|
| Request | Anfrage, Wunsch |
|
||||||
|
| Change | Änderungsanfrage |
|
||||||
|
| Problem | Wiederkehrendes Problem |
|
||||||
|
|
||||||
|
### Prioritäten
|
||||||
|
|
||||||
|
| Priorität | Beschreibung | Reaktionszeit |
|
||||||
|
|-----------|-------------|---------------|
|
||||||
|
| **P1 - Kritisch** | Geschäftskritisch | < 1 Stunde |
|
||||||
|
| **P2 - Hoch** | Wichtige Funktion | < 4 Stunden |
|
||||||
|
| **P3 - Mittel** | Normale Priorität | < 1 Arbeitstag |
|
||||||
|
| **P4 - Niedrig** | Kleinere Probleme | < 1 Woche |
|
||||||
|
|
||||||
|
### Auswirkung (Impact)
|
||||||
|
|
||||||
|
| Level | Beschreibung |
|
||||||
|
|-------|-------------|
|
||||||
|
| 1 - Global | Alle Benutzer betroffen |
|
||||||
|
| 2 - Abteilung | Mehrere Abteilungen |
|
||||||
|
| 3 - Einzelner | Ein Benutzer |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ticketfelder
|
||||||
|
|
||||||
|
### Standardfelder
|
||||||
|
|
||||||
|
```
|
||||||
|
Ticket-Daten
|
||||||
|
├── ID (eindeutig)
|
||||||
|
├── Titel/Zusammenfassung
|
||||||
|
├── Beschreibung
|
||||||
|
├── Kategorie
|
||||||
|
├── Priorität
|
||||||
|
├── Status
|
||||||
|
├── Bearbeiter
|
||||||
|
├── Lösung
|
||||||
|
├── Erstellungsdatum
|
||||||
|
├── Fälligkeitsdatum
|
||||||
|
└── Anhang/Bilder
|
||||||
|
```
|
||||||
|
|
||||||
|
### Beispiel-Ticket
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Ticket #12345
|
||||||
|
|
||||||
|
Titel: Drucker druckt nicht
|
||||||
|
Kategorie: Hardware
|
||||||
|
Priorität: P3
|
||||||
|
Status: In Bearbeitung
|
||||||
|
|
||||||
|
Beschreibung:
|
||||||
|
Der Drucker im 2. OG zeigt Fehlermeldung
|
||||||
|
"Papierstau" obwohl kein Papier vorhanden.
|
||||||
|
|
||||||
|
Lösung:
|
||||||
|
Wartung durchgeführt, Walzen gereinigt.
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ticketwerkzeuge
|
||||||
|
|
||||||
|
### Tools
|
||||||
|
|
||||||
|
| Tool | Typ | Eigenschaften |
|
||||||
|
|------|-----|---------------|
|
||||||
|
| Jira Service Management | Cloud | Umfangreich |
|
||||||
|
| OTRS | Open Source | Deutsch |
|
||||||
|
| GLPI | Open Source | Asset-Management |
|
||||||
|
| Zendesk | Cloud | Support-fokussiert |
|
||||||
|
| Freshservice | Cloud | Einfach |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SLA (Service Level Agreement)
|
||||||
|
|
||||||
|
### SLA-Komponenten
|
||||||
|
|
||||||
|
```
|
||||||
|
SLA - Inhalt
|
||||||
|
├── Reaktionszeiten
|
||||||
|
├── Lösungszeiten
|
||||||
|
├── Verfügbarkeit
|
||||||
|
├── Support-Zeiten (Business Hours)
|
||||||
|
├── Eskalationsprozeduren
|
||||||
|
└── Kommunikationswege
|
||||||
|
```
|
||||||
|
|
||||||
|
### Eskalation
|
||||||
|
|
||||||
|
```
|
||||||
|
Eskalation - Stufen
|
||||||
|
├── 1. Stufe: Bearbeiter
|
||||||
|
├── 2. Stufe: Teamleiter
|
||||||
|
├── 3. Stufe: Manager
|
||||||
|
└── 4. Stufe: Geschäftsführung
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kennzahlen (KPIs)
|
||||||
|
|
||||||
|
### Wichtige Metriken
|
||||||
|
|
||||||
|
| KPI | Beschreibung | Zielwert |
|
||||||
|
|-----|-------------|----------|
|
||||||
|
| MTTR | Mean Time To Resolve | < 8h |
|
||||||
|
| MTTF | Mean Time To Failure | > 720h |
|
||||||
|
| FCR | First Contact Resolution | > 70% |
|
||||||
|
| CSAT | Customer Satisfaction | > 4.5/5 |
|
||||||
|
|
||||||
|
### Reporting
|
||||||
|
|
||||||
|
```
|
||||||
|
Ticket-Report
|
||||||
|
├── Anzahl offener Tickets
|
||||||
|
├── Durchschnittliche Lösungszeit
|
||||||
|
├── Tickets pro Kategorie
|
||||||
|
├── SLA-Einhaltung
|
||||||
|
└── Kundenfeedback
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF7-01-ITIL-Grundlagen|Zurück: ITIL-Grundlagen]]
|
||||||
|
- [[LF7-03-Support-Stufen|Nächstes Thema: Support-Stufen]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
194
2-Ausbildungsjahr/LF7-Service/LF7-03-Support-Stufen.md
Normal file
194
2-Ausbildungsjahr/LF7-Service/LF7-03-Support-Stufen.md
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
# 7.3 Support-Stufen
|
||||||
|
|
||||||
|
## Support-Struktur
|
||||||
|
|
||||||
|
### Eskalationsmodell
|
||||||
|
|
||||||
|
```
|
||||||
|
Support-Level
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ Service Desk │ ← 1st Level
|
||||||
|
│ (First Line / Front Office) │
|
||||||
|
└───────────────┬─────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ Technical Support │ ← 2nd Level
|
||||||
|
│ (2nd Line / Backend) │
|
||||||
|
└───────────────┬─────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ Expert Support │ ← 3rd Level
|
||||||
|
│ (3rd Line / Specialists) │
|
||||||
|
└───────────────┬─────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ External Vendors/Developers │ ← 4th Level
|
||||||
|
└─────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Level 1 - First Level Support
|
||||||
|
|
||||||
|
### Aufgaben
|
||||||
|
|
||||||
|
| Aufgabe | Beschreibung |
|
||||||
|
|---------|-------------|
|
||||||
|
| Annahme | Tickets entgegennehmen |
|
||||||
|
| Kategorisierung | Richtige Kategorie zuweisen |
|
||||||
|
| Grunddiagnose | Einfache Probleme lösen |
|
||||||
|
| Lösungswissen | Bekannte Lösungen anwenden |
|
||||||
|
| Eskalation | Komplexe Fälle weitergeben |
|
||||||
|
|
||||||
|
### Fähigkeiten
|
||||||
|
|
||||||
|
```
|
||||||
|
First Level - Anforderungen
|
||||||
|
├── Produktwissen
|
||||||
|
├── Kommunikationsfähigkeit
|
||||||
|
├── Grundlegende Technik
|
||||||
|
├── Dokumentation
|
||||||
|
└── Zeitmanagement
|
||||||
|
```
|
||||||
|
|
||||||
|
### Typische Lösungsquote
|
||||||
|
|
||||||
|
```
|
||||||
|
First Contact Resolution (FCR)
|
||||||
|
Ziel: 60-70% direkt gelöst
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Level 2 - Second Level Support
|
||||||
|
|
||||||
|
### Aufgaben
|
||||||
|
|
||||||
|
| Aufgabe | Beschreibung |
|
||||||
|
|---------|-------------|
|
||||||
|
| Tiefendiagnose | Komplexe Probleme analysieren |
|
||||||
|
| Technische Lösung | Fachliche Probleme beheben |
|
||||||
|
| Workarounds | Temporäre Lösungen finden |
|
||||||
|
| Dokumentation | Wissensdatenbank pflegen |
|
||||||
|
| Schulung | Level 1 unterstützen |
|
||||||
|
|
||||||
|
### Fähigkeiten
|
||||||
|
|
||||||
|
```
|
||||||
|
Second Level - Anforderungen
|
||||||
|
├── Vertieftes Technikwissen
|
||||||
|
├── Erfahrung mit Systemen
|
||||||
|
├── Analysefähigkeit
|
||||||
|
├── Eigenständigkeit
|
||||||
|
└── Mentoring
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Level 3 - Third Level Support
|
||||||
|
|
||||||
|
### Aufgaben
|
||||||
|
|
||||||
|
| Aufgabe | Beschreibung |
|
||||||
|
|---------|-------------|
|
||||||
|
| Expertenwissen | Spezialisten-Know-how |
|
||||||
|
| Grundursachenanalyse | Komplexe Fehler finden |
|
||||||
|
| Entwicklung | Fixes entwickeln |
|
||||||
|
| Architektur | Systemänderungen planen |
|
||||||
|
|Vendor-Kontakt | Hersteller einbinden |
|
||||||
|
|
||||||
|
### Fähigkeiten
|
||||||
|
|
||||||
|
```
|
||||||
|
Third Level - Anforderungen
|
||||||
|
├── Sehr tiefes Fachwissen
|
||||||
|
├── Programmierkenntnisse
|
||||||
|
├── Architekturverständnis
|
||||||
|
├── Innovationskraft
|
||||||
|
└── Dokumentation
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Eskalation
|
||||||
|
|
||||||
|
### Wann eskalieren?
|
||||||
|
|
||||||
|
```
|
||||||
|
Eskalations-Kriterien
|
||||||
|
├── Zeitüberschreitung
|
||||||
|
├── Fehlende Kompetenz
|
||||||
|
├── Benutzer-Escalation
|
||||||
|
├── Qualitätsprobleme
|
||||||
|
└── Neue Sachverhalte
|
||||||
|
```
|
||||||
|
|
||||||
|
### Vertikale vs. Horizontale Eskalation
|
||||||
|
|
||||||
|
| Typ | Beschreibung |
|
||||||
|
|-----|-------------|
|
||||||
|
| **Vertikal** | An Vorgesetzte/ höhere Level |
|
||||||
|
| **Horizontal** | An anderes Team/ Thema |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Remote Support
|
||||||
|
|
||||||
|
### Tools
|
||||||
|
|
||||||
|
| Tool | Beschreibung |
|
||||||
|
|------|-------------|
|
||||||
|
| AnyDesk | Fernwartung |
|
||||||
|
| TeamViewer | Universell |
|
||||||
|
| Windows Remote Desktop | Windows |
|
||||||
|
| VNC | Plattformübergreifend |
|
||||||
|
|
||||||
|
### Best Practices
|
||||||
|
|
||||||
|
```
|
||||||
|
Fernwartung - Regeln
|
||||||
|
├── Genehmigung einholen
|
||||||
|
├── Bildschirm freigeben lassen
|
||||||
|
├── Nur auf Abfrage handeln
|
||||||
|
├── Keine privaten Daten ansehen
|
||||||
|
└── Session dokumentieren
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wissensdatenbank
|
||||||
|
|
||||||
|
### Knowledge Base (KB)
|
||||||
|
|
||||||
|
```
|
||||||
|
KB - Inhalte
|
||||||
|
├── Lösungsschritte (How-To)
|
||||||
|
├── FAQ
|
||||||
|
├── Bekannte Probleme (Known Errors)
|
||||||
|
├── Produktdokumentation
|
||||||
|
└── Anleitungen
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ticket-to-Knowledge
|
||||||
|
|
||||||
|
```
|
||||||
|
Aus Ticket wird Artikel
|
||||||
|
1. Problem reproduziert
|
||||||
|
2. Lösung gefunden
|
||||||
|
3. KB-Artikel erstellen
|
||||||
|
4. Auf Kunden-Ticket verlinken
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF7-02-Ticketmanagement|Zurück: Ticketmanagement]]
|
||||||
|
- [[LF7-04-Kommunikation|Nächstes Thema: Kommunikation]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
161
2-Ausbildungsjahr/LF7-Service/LF7-04-Kommunikation.md
Normal file
161
2-Ausbildungsjahr/LF7-Service/LF7-04-Kommunikation.md
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
# 7.4 Kundenkommunikation
|
||||||
|
|
||||||
|
## Kommunikationsgrundlagen
|
||||||
|
|
||||||
|
### Grundsätze
|
||||||
|
|
||||||
|
```
|
||||||
|
Gute Kommunikation
|
||||||
|
├── Zuhören
|
||||||
|
├── Verständlich erklären
|
||||||
|
├── Geduldig sein
|
||||||
|
├── Freundlich bleiben
|
||||||
|
└── Nicht überfordern
|
||||||
|
```
|
||||||
|
|
||||||
|
### Aktives Zuhören
|
||||||
|
|
||||||
|
```
|
||||||
|
Aktives Zuhören - Techniken
|
||||||
|
├── Augenkontakt
|
||||||
|
├── Nicken
|
||||||
|
├── Nachfragen
|
||||||
|
├── Zusammenfassen
|
||||||
|
└── Nicht unterbrechen
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Gesprächsführung
|
||||||
|
|
||||||
|
### Am Telefon
|
||||||
|
|
||||||
|
```
|
||||||
|
Telefon - Checkliste
|
||||||
|
├── Begrüßung (Name, Firma)
|
||||||
|
├── Problem aufnehmen
|
||||||
|
├── Fragen stellen
|
||||||
|
├── Lösung anbieten
|
||||||
|
├── Zusammenfassung
|
||||||
|
├── Verabschiedung
|
||||||
|
```
|
||||||
|
|
||||||
|
### Gesprächsphasen
|
||||||
|
|
||||||
|
| Phase | Inhalt |
|
||||||
|
|-------|--------|
|
||||||
|
| Eröffnung | Begrüßung, Vorstellung |
|
||||||
|
| Ermittlung | Problem verstehen |
|
||||||
|
| Lösung | Lösung anbieten |
|
||||||
|
| Abschluss | Zusammenfassung, Nächste Schritte |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Technische Erklärungen
|
||||||
|
|
||||||
|
### Kunden verständlich
|
||||||
|
|
||||||
|
```
|
||||||
|
Komplexität reduzieren
|
||||||
|
├── Fachbegriffe vermeiden oder erklären
|
||||||
|
├── Analogien verwenden
|
||||||
|
├── Visuelle Hilfen einsetzen
|
||||||
|
├── Schritt für Schritt arbeiten
|
||||||
|
└── Nachfragen ob verstanden
|
||||||
|
```
|
||||||
|
|
||||||
|
### Analogien
|
||||||
|
|
||||||
|
```
|
||||||
|
Beispiele für Erklärungen
|
||||||
|
|
||||||
|
Netzwerk → Straßennetz
|
||||||
|
Server → Bibliothek
|
||||||
|
Firewall → Sicherheitskontrolle
|
||||||
|
Backup → Sicherheitskopie
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## schwierige Situationen
|
||||||
|
|
||||||
|
### Umgang mit Ärger
|
||||||
|
|
||||||
|
```
|
||||||
|
Ärgerlicher Kunde - Verhalten
|
||||||
|
├── Ruhig bleiben
|
||||||
|
├── Nicht persönlich nehmen
|
||||||
|
├── Verständnis zeigen
|
||||||
|
├── Nicht unterbrechen
|
||||||
|
└── Lösung anbieten
|
||||||
|
```
|
||||||
|
|
||||||
|
### Formulierungen
|
||||||
|
|
||||||
|
| Vermeiden | Besser |
|
||||||
|
|-----------|--------|
|
||||||
|
| Das ist unmöglich | Ich schaue mir das an |
|
||||||
|
| Das ist nicht mein Problem | Ich verbinde Sie mit... |
|
||||||
|
| Das müssen Sie | Hier ist die Lösung |
|
||||||
|
| Keine Ahnung | Das finde ich für Sie heraus |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dokumentation
|
||||||
|
|
||||||
|
### Ticket-Kommunikation
|
||||||
|
|
||||||
|
```
|
||||||
|
Dokumentation - Tipps
|
||||||
|
├── Wichtige Punkte notieren
|
||||||
|
├── Vereinbarungen festhalten
|
||||||
|
├── Nächste Schritte klären
|
||||||
|
├── Zeit notieren
|
||||||
|
└── Professionell bleiben
|
||||||
|
```
|
||||||
|
|
||||||
|
### E-Mail-Kommunikation
|
||||||
|
|
||||||
|
```
|
||||||
|
E-Mail - Struktur
|
||||||
|
├── Aussagekräftiger Betreff
|
||||||
|
├── Höfliche Anrede
|
||||||
|
├── Klare Beschreibung
|
||||||
|
├── Erwartete Antwort
|
||||||
|
├── Signatur
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Feedback und Zufriedenheit
|
||||||
|
|
||||||
|
### Kundenzufriedenheit messen
|
||||||
|
|
||||||
|
```
|
||||||
|
CSAT - Customer Satisfaction
|
||||||
|
└── Nach Ticket-Abschluss:
|
||||||
|
"Wie zufrieden sind Sie?"
|
||||||
|
(Skala 1-5)
|
||||||
|
```
|
||||||
|
|
||||||
|
### NPS - Net Promoter Score
|
||||||
|
|
||||||
|
```
|
||||||
|
Frage: "Wie wahrscheinlich empfehlen Sie uns?"
|
||||||
|
(0-10)
|
||||||
|
|
||||||
|
Berechnung:
|
||||||
|
Promoters (9-10) - Detractors (0-6)
|
||||||
|
= NPS (-100 bis +100)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF7-03-Support-Stufen|Zurück: Support-Stufen]]
|
||||||
|
- [[LF1-06-Eigene-Rolle|Eigene Rolle im Betrieb]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
182
2-Ausbildungsjahr/LF8-Daten-bereitstellen/LF8-Notizen.md
Normal file
182
2-Ausbildungsjahr/LF8-Daten-bereitstellen/LF8-Notizen.md
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
# LF 8: Daten systemübergreifend bereitstellen
|
||||||
|
|
||||||
|
> **2. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||||
|
|
||||||
|
## Kernkompetenz
|
||||||
|
|
||||||
|
Die Schülerinnen und Schüler besitzen die Kompetenz, Daten aus dezentralen Quellen zusammenzuführen, aufzubereiten und zur weiteren Nutzung zur Verfügung zu stellen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
Nach diesem Lernfeld kannst du:
|
||||||
|
- [ ] Datenquellen analysieren und bewerten
|
||||||
|
- [ ] Heterogene Datenquellen integrieren
|
||||||
|
- [ ] Daten für die Weiterverarbeitung aufbereiten
|
||||||
|
- [ ] APIs und Schnittstellen nutzen
|
||||||
|
- [ ] Datenbanksysteme anbinden
|
||||||
|
- [ ] Dokumentation erstellen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenquellen
|
||||||
|
|
||||||
|
### Typen
|
||||||
|
|
||||||
|
```
|
||||||
|
DATENQUELLEN
|
||||||
|
├── Relationale Datenbanken
|
||||||
|
│ ├── MySQL/MariaDB
|
||||||
|
│ ├── PostgreSQL
|
||||||
|
│ └── MS SQL Server
|
||||||
|
├── NoSQL-Datenbanken
|
||||||
|
│ ├── MongoDB (Dokument)
|
||||||
|
│ ├── Redis (Key-Value)
|
||||||
|
│ └── Cassandra (Spaltenorientiert)
|
||||||
|
├── Dateien
|
||||||
|
│ ├── CSV, JSON, XML
|
||||||
|
│ └── Excel, PDF
|
||||||
|
├── Web-Services
|
||||||
|
│ ├── REST-APIs
|
||||||
|
│ └── SOAP
|
||||||
|
└── Cloud-Dienste
|
||||||
|
└── AWS S3, Azure Blob, etc.
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenintegration
|
||||||
|
|
||||||
|
### ETL-Prozess
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
||||||
|
│ Extract │ → │ Transform│ → │ Load │ → │ Target │
|
||||||
|
└─────────┘ └─────────┘ └─────────┘ └─────────┘
|
||||||
|
│ │
|
||||||
|
│ Bereinigung │
|
||||||
|
│ Konvertierung │
|
||||||
|
│ Aggregation │
|
||||||
|
```
|
||||||
|
|
||||||
|
### Herausforderungen
|
||||||
|
|
||||||
|
- **Datenqualität**: Vollständigkeit, Konsistenz
|
||||||
|
- **Formate**: Unterschiedliche Strukturen
|
||||||
|
- **Latenz**: Echtzeit vs. Batch
|
||||||
|
- **Security**: Authentifizierung, Autorisierung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## APIs (Application Programming Interface)
|
||||||
|
|
||||||
|
### REST-Prinzipien
|
||||||
|
|
||||||
|
```
|
||||||
|
REST-Konventionen:
|
||||||
|
├── Ressourcenorientiert (Nomen)
|
||||||
|
├── HTTP-Methoden nutzen
|
||||||
|
│ ├── GET → Lesen
|
||||||
|
│ ├── POST → Erstellen
|
||||||
|
│ ├── PUT → Ersetzen
|
||||||
|
│ ├── PATCH → Teilaktualisierung
|
||||||
|
│ └── DELETE → Löschen
|
||||||
|
├── Statuscodes
|
||||||
|
│ ├── 200 OK
|
||||||
|
│ ├── 201 Created
|
||||||
|
│ ├── 400 Bad Request
|
||||||
|
│ ├── 401 Unauthorized
|
||||||
|
│ └── 404 Not Found
|
||||||
|
└── Stateless (zustandslos)
|
||||||
|
```
|
||||||
|
|
||||||
|
### API-Beispiel
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Python REST-API mit Flask
|
||||||
|
from flask import Flask, jsonify, request
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
# GET - Daten abrufen
|
||||||
|
@app.route('/api/kunden', methods=['GET'])
|
||||||
|
def get_kunden():
|
||||||
|
return jsonify(kunden_liste)
|
||||||
|
|
||||||
|
# POST - Daten erstellen
|
||||||
|
@app.route('/api/kunden', methods=['POST'])
|
||||||
|
def create_kunde():
|
||||||
|
daten = request.json
|
||||||
|
kunden_liste.append(daten)
|
||||||
|
return jsonify(daten), 201
|
||||||
|
|
||||||
|
# PUT - Daten aktualisieren
|
||||||
|
@app.route('/api/kunden/<int:id>', methods=['PUT'])
|
||||||
|
def update_kunde(id):
|
||||||
|
daten = request.json
|
||||||
|
for i, k in enumerate(kunden_liste):
|
||||||
|
if k['id'] == id:
|
||||||
|
kunden_liste[i] = daten
|
||||||
|
return jsonify(daten)
|
||||||
|
return jsonify({'error': 'Not found'}), 404
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenbank-Anbindung
|
||||||
|
|
||||||
|
### Python mit SQLAlchemy
|
||||||
|
|
||||||
|
```python
|
||||||
|
from sqlalchemy import create_engine, Column, Integer, String
|
||||||
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
|
|
||||||
|
Base = declarative_base()
|
||||||
|
|
||||||
|
class Kunde(Base):
|
||||||
|
__tablename__ = 'kunden'
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
name = Column(String(100))
|
||||||
|
email = Column(String(255))
|
||||||
|
|
||||||
|
# Verbindung herstellen
|
||||||
|
engine = create_engine('sqlite:///kunden.db')
|
||||||
|
Base.metadata.create_all(engine)
|
||||||
|
Session = sessionmaker(bind=engine)
|
||||||
|
session = Session()
|
||||||
|
|
||||||
|
# Daten abfragen
|
||||||
|
for kunde in session.query(Kunde).all():
|
||||||
|
print(f"{kunde.id}: {kunde.name}")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Handlungsphasen
|
||||||
|
|
||||||
|
1. **Analysieren**: Datenquellen identifizieren, Strukturen verstehen
|
||||||
|
2. **Planen**: Integrationskonzept erstellen
|
||||||
|
3. **Entwickeln**: Schnittstellen implementieren
|
||||||
|
4. **Testen**: Datenfluss prüfen
|
||||||
|
5. **Dokumentieren**: Handhabung beschreiben
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsrelevanz
|
||||||
|
|
||||||
|
- Wichtig für LF 12a (Abschlussprojekt)
|
||||||
|
- Datenintegration in Projekten
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[2-Ausbildungsjahr/LF7-Cyber-physische-Systeme|Vorher: LF 7]]
|
||||||
|
- [[2-Ausbildungsjahr/LF9-Netzwerke-Dienste|Nachher: LF 9]]
|
||||||
|
- [[Programmiersprachen/Python|Python Vertiefung]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||||
32
2-Ausbildungsjahr/LF8-Datenintegration/LF8-00-Übersicht.md
Normal file
32
2-Ausbildungsjahr/LF8-Datenintegration/LF8-00-Übersicht.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Lernfeld 8: Daten systemübergreifend bereitstellen
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
Dieses Lernfeld behandelt die Integration von Daten aus verschiedenen Quellen.
|
||||||
|
|
||||||
|
## Themen
|
||||||
|
|
||||||
|
| Nr. | Thema | Beschreibung |
|
||||||
|
|-----|-------|-------------|
|
||||||
|
| 8.1 | [[LF8-01-Datenquellen|Datenquellen]] | Datenbanken, APIs, Dateien |
|
||||||
|
| 8.2 | [[LF8-02-Schnittstellen|Schnittstellen]] | REST, SOAP, GraphQL |
|
||||||
|
| 8.3 | [[LF8-03-Datenformate|Datenformate]] | JSON, XML, CSV |
|
||||||
|
| 8.4 | [[LF8-04-ETL-Prozesse|ETL-Prozesse]] | Extrahieren, Transformieren, Laden |
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
- Daten aus verschiedenen Quellen integrieren
|
||||||
|
- Schnittstellen entwickeln und nutzen
|
||||||
|
- Datenformate konvertieren
|
||||||
|
- ETL-Prozesse implementieren
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF7-04-Kommunikation|Zurück: Kommunikation]]
|
||||||
|
- [[LF9-Netzwerke-Dienste|Nächstes Lernfeld: Netzwerke und Dienste]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
130
2-Ausbildungsjahr/LF8-Datenintegration/LF8-01-Datenquellen.md
Normal file
130
2-Ausbildungsjahr/LF8-Datenintegration/LF8-01-Datenquellen.md
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
# 8.1 Datenquellen
|
||||||
|
|
||||||
|
## Arten von Datenquellen
|
||||||
|
|
||||||
|
### Datenbanken
|
||||||
|
|
||||||
|
```
|
||||||
|
Datenbank-Typen
|
||||||
|
├── Relational (MySQL, PostgreSQL, Oracle)
|
||||||
|
├── NoSQL (MongoDB, Cassandra)
|
||||||
|
├── Graph (Neo4j)
|
||||||
|
└── Zeitreihen (InfluxDB)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dateisysteme
|
||||||
|
|
||||||
|
| Format | Typ | Einsatz |
|
||||||
|
|--------|-----|----------|
|
||||||
|
| CSV | Text | Tabellarische Daten |
|
||||||
|
| JSON | Text | Strukturierte Daten |
|
||||||
|
| XML | Text | Konfiguration, Austausch |
|
||||||
|
| Excel | Binär | Tabellenkalkulation |
|
||||||
|
| PDF | Binär | Dokumente |
|
||||||
|
|
||||||
|
### Externe Quellen
|
||||||
|
|
||||||
|
```
|
||||||
|
Externe Datenquellen
|
||||||
|
├── APIs (REST, SOAP)
|
||||||
|
├── Webservices
|
||||||
|
├── Cloud-Speicher
|
||||||
|
├── Stream-Daten (IoT)
|
||||||
|
└── Drittanbieter
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenbank-Anbindung
|
||||||
|
|
||||||
|
### JDBC (Java)
|
||||||
|
|
||||||
|
```java
|
||||||
|
// Verbindung zu Datenbank
|
||||||
|
Connection conn = DriverManager.getConnection(
|
||||||
|
"jdbc:mysql://localhost:3306/datenbank",
|
||||||
|
"benutzer",
|
||||||
|
"passwort"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Abfrage
|
||||||
|
Statement stmt = conn.createStatement();
|
||||||
|
ResultSet rs = stmt.executeQuery("SELECT * FROM tabelle");
|
||||||
|
```
|
||||||
|
|
||||||
|
### Python (SQLAlchemy)
|
||||||
|
|
||||||
|
```python
|
||||||
|
from sqlalchemy import create_engine
|
||||||
|
|
||||||
|
engine = create_engine(
|
||||||
|
'postgresql://user:password@localhost:5432/database'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Daten lesen
|
||||||
|
df = pd.read_sql("SELECT * FROM tabelle", engine)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dateien einlesen
|
||||||
|
|
||||||
|
### CSV
|
||||||
|
|
||||||
|
```python
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
# CSV einlesen
|
||||||
|
df = pd.read_csv('daten.csv')
|
||||||
|
|
||||||
|
# Mit Trennzeichen
|
||||||
|
df = pd.read_csv('daten.txt', sep='\t')
|
||||||
|
```
|
||||||
|
|
||||||
|
### JSON
|
||||||
|
|
||||||
|
```python
|
||||||
|
import json
|
||||||
|
|
||||||
|
# JSON laden
|
||||||
|
with open('daten.json') as f:
|
||||||
|
daten = json.load(f)
|
||||||
|
|
||||||
|
# Zu DataFrame
|
||||||
|
df = pd.json_normalize(daten)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Excel
|
||||||
|
|
||||||
|
```python
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
# Excel einlesen
|
||||||
|
df = pd.read_excel('daten.xlsx')
|
||||||
|
|
||||||
|
# Bestimmtes Sheet
|
||||||
|
df = pd.read_excel('daten.xlsx', sheet_name='Tabelle1')
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenbanktypen im Vergleich
|
||||||
|
|
||||||
|
| Kriterium | Relational | NoSQL |
|
||||||
|
|-----------|-----------|-------|
|
||||||
|
| Schema | Fest | Flexibel |
|
||||||
|
| Skalierung | Vertikal | Horizontal |
|
||||||
|
| Transaktionen | ACID | Eventual Consistency |
|
||||||
|
| Komplexität | Mittel | Niedrig |
|
||||||
|
| Beispiele | MySQL, PostgreSQL | MongoDB, Redis |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF8-02-Schnittstellen|Nächstes Thema: Schnittstellen]]
|
||||||
|
- [[LF3-Datenbanken|Datenbanken]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
185
2-Ausbildungsjahr/LF8-Datenintegration/LF8-02-Schnittstellen.md
Normal file
185
2-Ausbildungsjahr/LF8-Datenintegration/LF8-02-Schnittstellen.md
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
# 8.2 Schnittstellen
|
||||||
|
|
||||||
|
## API-Typen
|
||||||
|
|
||||||
|
### REST (Representational State Transfer)
|
||||||
|
|
||||||
|
```
|
||||||
|
REST-Prinzipien
|
||||||
|
├── Ressourcen-orientiert
|
||||||
|
├── Stateless
|
||||||
|
├── Einheitliche Schnittstelle
|
||||||
|
├── Client-Server
|
||||||
|
└── Cache-fähig
|
||||||
|
```
|
||||||
|
|
||||||
|
### REST-Endpunkte
|
||||||
|
|
||||||
|
```
|
||||||
|
Beispiel: Benutzer-API
|
||||||
|
|
||||||
|
GET /api/benutzer → Alle Benutzer
|
||||||
|
GET /api/benutzer/123 → Ein Benutzer
|
||||||
|
POST /api/benutzer → Erstellen
|
||||||
|
PUT /api/benutzer/123 → Aktualisieren
|
||||||
|
DELETE /api/benutzer/123 → Löschen
|
||||||
|
```
|
||||||
|
|
||||||
|
### REST-Beispiel
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Express.js Server
|
||||||
|
const express = require('express');
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
app.get('/api/benutzer/:id', async (req, res) => {
|
||||||
|
const benutzer = await findBenutzer(req.params.id);
|
||||||
|
res.json(benutzer);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.post('/api/benutzer', async (req, res) => {
|
||||||
|
const neuerBenutzer = await createBenutzer(req.body);
|
||||||
|
res.status(201).json(neuerBenutzer);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SOAP (Simple Object Access Protocol)
|
||||||
|
|
||||||
|
### Unterschiede zu REST
|
||||||
|
|
||||||
|
| Kriterium | REST | SOAP |
|
||||||
|
|-----------|------|------|
|
||||||
|
| Format | JSON, XML | Nur XML |
|
||||||
|
| Transport | HTTP | HTTP, SMTP |
|
||||||
|
| Stateless | Ja | Optional |
|
||||||
|
| Größe | Klein | Groß |
|
||||||
|
|
||||||
|
### SOAP-Beispiel
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
|
||||||
|
<soap:Header/>
|
||||||
|
<soap:Body>
|
||||||
|
<GetUserRequest xmlns="http://beispiel.de/api">
|
||||||
|
<UserId>123</UserId>
|
||||||
|
</GetUserRequest>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## GraphQL
|
||||||
|
|
||||||
|
### Konzepte
|
||||||
|
|
||||||
|
```
|
||||||
|
GraphQL - Besonderheiten
|
||||||
|
├── Eine Anfrage, viele Daten
|
||||||
|
├── Client definiert benötigte Felder
|
||||||
|
├── Stark typisiert (Schema)
|
||||||
|
└── Keine Over- oder Underfetching
|
||||||
|
```
|
||||||
|
|
||||||
|
### GraphQL-Beispiel
|
||||||
|
|
||||||
|
```graphql
|
||||||
|
# Anfrage
|
||||||
|
query {
|
||||||
|
user(id: "123") {
|
||||||
|
name
|
||||||
|
email
|
||||||
|
orders {
|
||||||
|
id
|
||||||
|
total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Antwort
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"user": {
|
||||||
|
"name": "Max",
|
||||||
|
"email": "max@example.com",
|
||||||
|
"orders": [
|
||||||
|
{ "id": "1", "total": 99.99 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## API-Design Best Practices
|
||||||
|
|
||||||
|
### URL-Design
|
||||||
|
|
||||||
|
```
|
||||||
|
Richtlinien
|
||||||
|
├── Ressourcen plural (benutzer nicht benutzer)
|
||||||
|
├── Bindestrich für Wörter (benutzer-profil)
|
||||||
|
├── Kleinbuchstaben
|
||||||
|
├── Keine Verben im Pfad
|
||||||
|
└── Query-Parameter für Filter
|
||||||
|
```
|
||||||
|
|
||||||
|
### HTTP-Statuscodes
|
||||||
|
|
||||||
|
| Code | Bedeutung | Verwendung |
|
||||||
|
|------|-----------|------------|
|
||||||
|
| 200 | OK | Erfolgreich |
|
||||||
|
| 201 | Created | Erstellt |
|
||||||
|
| 400 | Bad Request | Ungültige Anfrage |
|
||||||
|
| 401 | Unauthorized | Nicht angemeldet |
|
||||||
|
| 404 | Not Found | Nicht gefunden |
|
||||||
|
| 500 | Server Error | Fehler |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## API-Dokumentation
|
||||||
|
|
||||||
|
### OpenAPI (Swagger)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
openapi: 3.0.0
|
||||||
|
info:
|
||||||
|
title: Meine API
|
||||||
|
version: 1.0.0
|
||||||
|
paths:
|
||||||
|
/benutzer:
|
||||||
|
get:
|
||||||
|
summary: Alle Benutzer
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Erfolgreich
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/Benutzer'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tools
|
||||||
|
|
||||||
|
| Tool | Beschreibung |
|
||||||
|
|------|-------------|
|
||||||
|
| Swagger UI | Interaktive Dokumentation |
|
||||||
|
| Postman | API-Testing |
|
||||||
|
| Insomnia | API-Client |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF8-01-Datenquellen|Zurück: Datenquellen]]
|
||||||
|
- [[LF8-03-Datenformate|Nächstes Thema: Datenformate]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
199
2-Ausbildungsjahr/LF8-Datenintegration/LF8-03-Datenformate.md
Normal file
199
2-Ausbildungsjahr/LF8-Datenintegration/LF8-03-Datenformate.md
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
# 8.3 Datenformate
|
||||||
|
|
||||||
|
## JSON (JavaScript Object Notation)
|
||||||
|
|
||||||
|
### Grundstruktur
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "Max Mustermann",
|
||||||
|
"alter": 25,
|
||||||
|
"adresse": {
|
||||||
|
"stadt": "Berlin",
|
||||||
|
"plz": "10115"
|
||||||
|
},
|
||||||
|
"hobbys": ["Lesen", "Programmieren"],
|
||||||
|
"aktiv": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Datentypen
|
||||||
|
|
||||||
|
| Typ | Beispiel |
|
||||||
|
|-----|----------|
|
||||||
|
| String | "Hallo" |
|
||||||
|
| Number | 42, 3.14 |
|
||||||
|
| Boolean | true, false |
|
||||||
|
| Array | [1, 2, 3] |
|
||||||
|
| Object | {"key": "value"} |
|
||||||
|
| Null | null |
|
||||||
|
|
||||||
|
### JSON in Python
|
||||||
|
|
||||||
|
```python
|
||||||
|
import json
|
||||||
|
|
||||||
|
# String zu Dictionary
|
||||||
|
daten = json.loads('{"name": "Max"}')
|
||||||
|
|
||||||
|
# Dictionary zu String
|
||||||
|
text = json.dumps(daten, indent=2)
|
||||||
|
|
||||||
|
# Mit Datei
|
||||||
|
with open('daten.json', 'w') as f:
|
||||||
|
json.dump(daten, f, indent=2)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## XML (eXtensible Markup Language)
|
||||||
|
|
||||||
|
### Grundstruktur
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<benutzer>
|
||||||
|
<name>Max Mustermann</name>
|
||||||
|
<alter>25</alter>
|
||||||
|
<adresse>
|
||||||
|
<stadt>Berlin</stadt>
|
||||||
|
</adresse>
|
||||||
|
</benutzer>
|
||||||
|
```
|
||||||
|
|
||||||
|
### XML-Attribute
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<benutzer id="123" typ="admin">
|
||||||
|
<name>Max</name>
|
||||||
|
</benutzer>
|
||||||
|
```
|
||||||
|
|
||||||
|
### XML in Python
|
||||||
|
|
||||||
|
```python
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
# Parsen
|
||||||
|
baum = ET.parse('daten.xml')
|
||||||
|
wurzel = baum.getroot()
|
||||||
|
|
||||||
|
# Element finden
|
||||||
|
for kind in wurzel.findall('.//kind'):
|
||||||
|
print(kind.text)
|
||||||
|
|
||||||
|
# Erstellen
|
||||||
|
root = ET.Element('daten')
|
||||||
|
ET.SubElement(root, 'wert').text = 'test'
|
||||||
|
baum = ET.ElementTree(root)
|
||||||
|
baum.write('ausgabe.xml')
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## CSV (Comma Separated Values)
|
||||||
|
|
||||||
|
### Grundstruktur
|
||||||
|
|
||||||
|
```csv
|
||||||
|
Name,Alter,Stadt
|
||||||
|
Max,25,Berlin
|
||||||
|
Anna,30,Hamburg
|
||||||
|
Peter,28,München
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mit Python
|
||||||
|
|
||||||
|
```python
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
# Lesen
|
||||||
|
df = pd.read_csv('daten.csv', sep=',')
|
||||||
|
|
||||||
|
# Schreiben
|
||||||
|
df.to_csv('ausgabe.csv', index=False)
|
||||||
|
|
||||||
|
# Mit Header überspringen
|
||||||
|
df = pd.read_csv('daten.csv', skiprows=1)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Vergleich
|
||||||
|
|
||||||
|
| Kriterium | JSON | XML | CSV |
|
||||||
|
|-----------|------|-----|-----|
|
||||||
|
| Lesbarkeit | Gut | Gut | Gut |
|
||||||
|
| Datentypen | Ja | Ja | Nein |
|
||||||
|
| Komplexität | Niedrig | Mittel | Niedrig |
|
||||||
|
| Dateigröße | Klein | Groß | Kleinest |
|
||||||
|
| Einsatz | APIs | Konfiguration | Tabellarisch |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenkonvertierung
|
||||||
|
|
||||||
|
### CSV zu JSON
|
||||||
|
|
||||||
|
```python
|
||||||
|
import pandas as pd
|
||||||
|
import json
|
||||||
|
|
||||||
|
# CSV lesen
|
||||||
|
df = pd.read_csv('daten.csv')
|
||||||
|
|
||||||
|
# Zu JSON
|
||||||
|
json_string = df.to_json(orient='records', indent=2)
|
||||||
|
|
||||||
|
# In Datei schreiben
|
||||||
|
with open('daten.json', 'w') as f:
|
||||||
|
f.write(json_string)
|
||||||
|
```
|
||||||
|
|
||||||
|
### XML zu JSON
|
||||||
|
|
||||||
|
```python
|
||||||
|
import xmltodict
|
||||||
|
import json
|
||||||
|
|
||||||
|
# XML zu Dictionary
|
||||||
|
with open('daten.xml') as f:
|
||||||
|
daten = xmltodict.parse(f)
|
||||||
|
|
||||||
|
# Zu JSON
|
||||||
|
json_string = json.dumps(daten, indent=2)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenvalidierung
|
||||||
|
|
||||||
|
### JSON Schema
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"alter": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["name"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF8-02-Schnittstellen|Zurück: Schnittstellen]]
|
||||||
|
- [[LF8-04-ETL-Prozesse|Nächstes Thema: ETL-Prozesse]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
217
2-Ausbildungsjahr/LF8-Datenintegration/LF8-04-ETL-Prozesse.md
Normal file
217
2-Ausbildungsjahr/LF8-Datenintegration/LF8-04-ETL-Prozesse.md
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
# 8.4 ETL-Prozesse
|
||||||
|
|
||||||
|
## Was ist ETL?
|
||||||
|
|
||||||
|
**ETL** = Extract, Transform, Load
|
||||||
|
|
||||||
|
```
|
||||||
|
ETL - Prozess
|
||||||
|
┌─────────┐ ┌─────────────┐ ┌─────────┐
|
||||||
|
│ Extract │ → │ Transform │ → │ Load │
|
||||||
|
│(Extrahieren)│ │(Transformieren)│ │(Laden) │
|
||||||
|
└─────────┘ └─────────────┘ └─────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### Anwendungsfälle
|
||||||
|
|
||||||
|
| Fall | Beschreibung |
|
||||||
|
|------|-------------|
|
||||||
|
| Data Warehouse | Daten für Analysen konsolidieren |
|
||||||
|
| Migration | Daten auf neues System übertragen |
|
||||||
|
| Integration | Daten aus verschiedenen Quellen zusammenführen |
|
||||||
|
| Reporting | Daten für Reports aufbereiten |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Extract (Extraktion)
|
||||||
|
|
||||||
|
### Extraktionsarten
|
||||||
|
|
||||||
|
| Typ | Beschreibung |
|
||||||
|
|-----|-------------|
|
||||||
|
| Full Load | Alle Daten laden |
|
||||||
|
| Incremental | Nur neue/geänderte Daten |
|
||||||
|
| CDC | Change Data Capture |
|
||||||
|
|
||||||
|
### Quelldaten
|
||||||
|
|
||||||
|
```
|
||||||
|
Extraktionsquellen
|
||||||
|
├── Datenbanken
|
||||||
|
├── Dateien (CSV, JSON, XML)
|
||||||
|
├── APIs
|
||||||
|
└── Streams
|
||||||
|
```
|
||||||
|
|
||||||
|
### Beispiel
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Datenbank
|
||||||
|
df_quelle = pd.read_sql("SELECT * FROM tabelle", conn)
|
||||||
|
|
||||||
|
# API
|
||||||
|
response = requests.get('https://api.example.com/daten')
|
||||||
|
df_quelle = pd.DataFrame(response.json())
|
||||||
|
|
||||||
|
# Datei
|
||||||
|
df_quelle = pd.read_csv('daten.csv')
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Transform (Transformation)
|
||||||
|
|
||||||
|
### Transformationstypen
|
||||||
|
|
||||||
|
```
|
||||||
|
Transformationen - Übersicht
|
||||||
|
├── Datentyp-Konvertierung
|
||||||
|
├── Berechnungen
|
||||||
|
├── Aggregationen
|
||||||
|
├── Filterung
|
||||||
|
├── JOINs
|
||||||
|
├── Normalisierung
|
||||||
|
└── Bereinigung
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bereinigung
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Fehlende Werte
|
||||||
|
df['alter'].fillna(df['alter'].mean(), inplace=True)
|
||||||
|
|
||||||
|
# Duplikate entfernen
|
||||||
|
df.drop_duplicates(inplace=True)
|
||||||
|
|
||||||
|
# Groß-/Kleinschreibung
|
||||||
|
df['name'] = df['name'].str.lower()
|
||||||
|
|
||||||
|
# Trimmen
|
||||||
|
df['name'] = df['name'].str.strip()
|
||||||
|
```
|
||||||
|
|
||||||
|
### Berechnungen
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Neue Spalte
|
||||||
|
df['umsatz_mit_mwst'] = df['umsatz'] * 1.19
|
||||||
|
|
||||||
|
# Bedingte Werte
|
||||||
|
df['rabatt'] = df.apply(
|
||||||
|
lambda x: x['umsatz'] * 0.1 if x['umsatz'] > 100 else 0,
|
||||||
|
axis=1
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Aggregation
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Gruppieren und aggregieren
|
||||||
|
df_grouped = df.groupby('kategorie').agg({
|
||||||
|
'umsatz': 'sum',
|
||||||
|
'anzahl': 'count'
|
||||||
|
}).reset_index()
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Load (Laden)
|
||||||
|
|
||||||
|
### Ladestrategien
|
||||||
|
|
||||||
|
| Typ | Beschreibung |
|
||||||
|
|-----|-------------|
|
||||||
|
| Full Load | Tabelle komplett ersetzen |
|
||||||
|
| Incremental Load | Nur neue Daten hinzufügen |
|
||||||
|
| Upsert | Update oder Insert |
|
||||||
|
|
||||||
|
### Ziel-Systeme
|
||||||
|
|
||||||
|
```
|
||||||
|
Lade-Ziele
|
||||||
|
├── Datenbank (MySQL, PostgreSQL)
|
||||||
|
├── Data Warehouse (Snowflake, BigQuery)
|
||||||
|
├── Datei (CSV, JSON)
|
||||||
|
└── Cloud Storage
|
||||||
|
```
|
||||||
|
|
||||||
|
### Beispiel
|
||||||
|
|
||||||
|
```python
|
||||||
|
# In Datenbank laden
|
||||||
|
df.to_sql('ziel_tabelle', conn, if_exists='replace', index=False)
|
||||||
|
|
||||||
|
# In CSV schreiben
|
||||||
|
df.to_csv('ausgabe.csv', index=False)
|
||||||
|
|
||||||
|
# In Excel schreiben
|
||||||
|
df.to_excel('ausgabe.xlsx', index=False)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Orchestrierung
|
||||||
|
|
||||||
|
### Tools
|
||||||
|
|
||||||
|
| Tool | Beschreibung |
|
||||||
|
|------|-------------|
|
||||||
|
| Apache Airflow | Workflow-Orchestrierung |
|
||||||
|
| Luigi | Python-basiert |
|
||||||
|
| dbt | Data Transformation |
|
||||||
|
| Talend | ETL-Werkzeug |
|
||||||
|
| Apache NiFi | Datenfluss |
|
||||||
|
|
||||||
|
### Airflow DAG
|
||||||
|
|
||||||
|
```python
|
||||||
|
from airflow import DAG
|
||||||
|
from airflow.operators.python import PythonOperator
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
dag = DAG('etl_pipeline', start_date=datetime(2024, 1, 1))
|
||||||
|
|
||||||
|
extract = PythonOperator(
|
||||||
|
task_id='extract',
|
||||||
|
python_callable=extract_daten,
|
||||||
|
dag=dag
|
||||||
|
)
|
||||||
|
|
||||||
|
transform = PythonOperator(
|
||||||
|
task_id='transform',
|
||||||
|
python_callable=transform_daten,
|
||||||
|
dag=dag
|
||||||
|
)
|
||||||
|
|
||||||
|
load = PythonOperator(
|
||||||
|
task_id='load',
|
||||||
|
python_callable=load_daten,
|
||||||
|
dag=dag
|
||||||
|
)
|
||||||
|
|
||||||
|
extract >> transform >> load
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fehlerbehandlung
|
||||||
|
|
||||||
|
```
|
||||||
|
ETL - Fehlerstrategien
|
||||||
|
├── Logging
|
||||||
|
├── Benachrichtigung
|
||||||
|
├── Retry-Logik
|
||||||
|
├── Quarantäne (Problem-Daten)
|
||||||
|
└── Monitoring
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF8-03-Datenformate|Zurück: Datenformate]]
|
||||||
|
- [[LF9-Netzwerke-Dienste|Nächstes Lernfeld: Netzwerke und Dienste]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
32
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-00-Übersicht.md
Normal file
32
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-00-Übersicht.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Lernfeld 9: Netzwerke und Dienste bereitstellen
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
Dieses Lernfeld behandelt die Bereitstellung von Netzwerken und Netzwerkdiensten.
|
||||||
|
|
||||||
|
## Themen
|
||||||
|
|
||||||
|
| Nr. | Thema | Beschreibung |
|
||||||
|
|-----|-------|-------------|
|
||||||
|
| 9.1 | [[LF9-01-Netzwerkdienste|Netzwerkdienste]] | DHCP, DNS, HTTP |
|
||||||
|
| 9.2 | [[LF9-02-Server|Server]] | Betrieb, Virtualisierung |
|
||||||
|
| 9.3 | [[LF9-03-Virtualisierung|Virtualisierung]] | Container, Cloud |
|
||||||
|
| 9.4 | [[LF9-04-Monitoring|Monitoring]] | Überwachung, Alerts |
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
- Netzwerkdienste konfigurieren
|
||||||
|
- Server betreiben
|
||||||
|
- Virtualisierung verstehen
|
||||||
|
- Systeme überwachen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF8-04-ETL-Prozesse|Zurück: ETL-Prozesse]]
|
||||||
|
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Betriebswirtschaft]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
# 9.1 Netzwerkdienste
|
||||||
|
|
||||||
|
## Wichtige Netzwerkdienste
|
||||||
|
|
||||||
|
### Übersicht
|
||||||
|
|
||||||
|
```
|
||||||
|
Netzwerkdienste
|
||||||
|
├── DHCP (IP-Adressen)
|
||||||
|
├── DNS (Namen auflösen)
|
||||||
|
├── HTTP/HTTPS (Web)
|
||||||
|
├── SMTP (E-Mail)
|
||||||
|
├── FTP/SFTP (Dateien)
|
||||||
|
├── SSH (Remote-Zugriff)
|
||||||
|
└── LDAP (Verzeichnis)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## DHCP (Dynamic Host Configuration Protocol)
|
||||||
|
|
||||||
|
### Funktion
|
||||||
|
|
||||||
|
```
|
||||||
|
DHCP - Ablauf
|
||||||
|
Client → DHCP Discover (Broadcast)
|
||||||
|
Server → DHCP Offer
|
||||||
|
Client → DHCP Request
|
||||||
|
Server → DHCP Acknowledge
|
||||||
|
```
|
||||||
|
|
||||||
|
### Konfiguration
|
||||||
|
|
||||||
|
```
|
||||||
|
DHCP-Server - Einstellungen
|
||||||
|
├── IP-Bereich (Pool)
|
||||||
|
├── Subnetzmaske
|
||||||
|
├── Gateway
|
||||||
|
├── DNS-Server
|
||||||
|
├── Lease Time
|
||||||
|
└── Reservierungen
|
||||||
|
```
|
||||||
|
|
||||||
|
### Beispiel
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# DHCP-Konfiguration (ISC DHCP)
|
||||||
|
subnet 192.168.1.0 netmask 255.255.255.0 {
|
||||||
|
range 192.168.1.100 192.168.1.200;
|
||||||
|
option routers 192.168.1.1;
|
||||||
|
option domain-name-servers 8.8.8.8, 8.8.4.4;
|
||||||
|
default-lease-time 600;
|
||||||
|
max-lease-time 7200;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## DNS (Domain Name System)
|
||||||
|
|
||||||
|
### Aufbau
|
||||||
|
|
||||||
|
```
|
||||||
|
DNS - Hierarchie
|
||||||
|
. (Root)
|
||||||
|
├── de
|
||||||
|
│ └── example.de
|
||||||
|
├── com
|
||||||
|
│ └── example.com
|
||||||
|
└── org
|
||||||
|
└── wikipedia.org
|
||||||
|
```
|
||||||
|
|
||||||
|
### DNS-Records
|
||||||
|
|
||||||
|
| Typ | Bedeutung | Beispiel |
|
||||||
|
|-----|----------|----------|
|
||||||
|
| A | IPv4-Adresse | example.com → 93.184.216.34 |
|
||||||
|
| AAAA | IPv6-Adresse | example.com → ... |
|
||||||
|
| CNAME | Alias | www → example.com |
|
||||||
|
| MX | Mail-Server | @ → mail.example.com |
|
||||||
|
| TXT | Text | v=spf1 include:_spf.google.com ~all |
|
||||||
|
|
||||||
|
### nslookup/dig
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# DNS-Abfrage
|
||||||
|
nslookup example.com
|
||||||
|
dig example.com
|
||||||
|
|
||||||
|
# Bestimmter Record-Typ
|
||||||
|
dig MX example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## HTTP/HTTPS
|
||||||
|
|
||||||
|
### HTTP-Request
|
||||||
|
|
||||||
|
```
|
||||||
|
GET /index.html HTTP/1.1
|
||||||
|
Host: www.example.com
|
||||||
|
User-Agent: Mozilla/5.0
|
||||||
|
Accept: text/html
|
||||||
|
```
|
||||||
|
|
||||||
|
### HTTPS/TLS
|
||||||
|
|
||||||
|
```
|
||||||
|
HTTPS - Ablauf
|
||||||
|
1. Client → Server: Hallo
|
||||||
|
2. Server → Client: Zertifikat + Public Key
|
||||||
|
3. Client: Zertifikat prüfen
|
||||||
|
4. Client → Server: Pre-Master-Secret (verschlüsselt)
|
||||||
|
5. Beide: Session Key generieren
|
||||||
|
6. Verschlüsselte Kommunikation
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Weitere Dienste
|
||||||
|
|
||||||
|
### SSH (Secure Shell)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Verbinden
|
||||||
|
ssh benutzer@server.example.com
|
||||||
|
|
||||||
|
# Datei kopieren
|
||||||
|
scp datei.txt benutzer@server:/pfad/
|
||||||
|
|
||||||
|
# Schlüssel generieren
|
||||||
|
ssh-keygen -t ed25519
|
||||||
|
```
|
||||||
|
|
||||||
|
### SMTP (E-Mail-Versand)
|
||||||
|
|
||||||
|
```
|
||||||
|
SMTP - Ablauf
|
||||||
|
1. EHLO client
|
||||||
|
2. MAIL FROM: absender@example.com
|
||||||
|
3. RCPT TO: empfaenger@example.com
|
||||||
|
4. DATA
|
||||||
|
5. Nachricht
|
||||||
|
6. QUIT
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF9-02-Server|Nächstes Thema: Server]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
179
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-02-Server.md
Normal file
179
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-02-Server.md
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
# 9.2 Server
|
||||||
|
|
||||||
|
## Server-Grundlagen
|
||||||
|
|
||||||
|
### Serverarten
|
||||||
|
|
||||||
|
| Typ | Aufgabe |
|
||||||
|
|-----|----------|
|
||||||
|
| Webserver | HTTP bereitstellen |
|
||||||
|
| Datenbankserver | Daten speichern |
|
||||||
|
| Fileserver | Dateien bereitstellen |
|
||||||
|
| Mailserver | E-Mail |
|
||||||
|
| Druckserver | Drucker verwalten |
|
||||||
|
| Authentifizierungsserver | Anmeldung (AD, LDAP) |
|
||||||
|
|
||||||
|
### Betriebssysteme
|
||||||
|
|
||||||
|
```
|
||||||
|
Server-Betriebssysteme
|
||||||
|
├── Windows Server
|
||||||
|
│ ├── 2019
|
||||||
|
│ └── 2022
|
||||||
|
├── Linux
|
||||||
|
│ ├── Ubuntu Server
|
||||||
|
│ ├── CentOS/RHEL
|
||||||
|
│ └── SUSE
|
||||||
|
└── BSD
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Linux-Server
|
||||||
|
|
||||||
|
### Grundbefehle
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Paketverwaltung (Debian/Ubuntu)
|
||||||
|
apt update
|
||||||
|
apt upgrade
|
||||||
|
apt install paketname
|
||||||
|
|
||||||
|
# Systemd
|
||||||
|
systemctl start dienst
|
||||||
|
systemctl stop dienst
|
||||||
|
systemctl status dienst
|
||||||
|
systemctl enable dienst
|
||||||
|
|
||||||
|
# Prozesse
|
||||||
|
ps aux
|
||||||
|
top
|
||||||
|
htop
|
||||||
|
```
|
||||||
|
|
||||||
|
### Benutzerverwaltung
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Benutzer anlegen
|
||||||
|
sudo useradd -m benutzername
|
||||||
|
|
||||||
|
# Passwort ändern
|
||||||
|
sudo passwd benutzername
|
||||||
|
|
||||||
|
# Zur Gruppe hinzufügen
|
||||||
|
sudo usermod -aG gruppe benutzername
|
||||||
|
|
||||||
|
# Benutzer löschen
|
||||||
|
sudo userdel benutzername
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Windows Server
|
||||||
|
|
||||||
|
### Rollen
|
||||||
|
|
||||||
|
```
|
||||||
|
Windows Server Rollen
|
||||||
|
├── Active Directory (AD DS)
|
||||||
|
├── DNS-Server
|
||||||
|
├── DHCP-Server
|
||||||
|
├── IIS (Webserver)
|
||||||
|
├── Dateiserver
|
||||||
|
├── Drucker-Server
|
||||||
|
└── Hyper-V
|
||||||
|
```
|
||||||
|
|
||||||
|
### PowerShell
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Dienst starten
|
||||||
|
Start-Service -Name "Spooler"
|
||||||
|
|
||||||
|
# Prozesse anzeigen
|
||||||
|
Get-Process
|
||||||
|
|
||||||
|
# Benutzer anlegen
|
||||||
|
New-LocalUser -Name "Benutzer" -Password (ConvertTo-SecureString "Passwort" -AsPlainText -Force)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Webserver
|
||||||
|
|
||||||
|
### Apache
|
||||||
|
|
||||||
|
```apache
|
||||||
|
# Virtual Host
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName example.com
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
|
<Directory /var/www/html>
|
||||||
|
Options Indexes FollowSymLinks
|
||||||
|
AllowOverride All
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||||
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||||
|
</VirtualHost>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Nginx
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name example.com;
|
||||||
|
|
||||||
|
root /var/www/html;
|
||||||
|
index index.html index.php;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_pass unix:/var/run/php/php-fpm.sock;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Server-Hardware
|
||||||
|
|
||||||
|
### Komponenten
|
||||||
|
|
||||||
|
| Komponente | Bedeutung |
|
||||||
|
|------------|----------|
|
||||||
|
| CPU | Rechenleistung |
|
||||||
|
| RAM | Arbeitsspeicher |
|
||||||
|
| Festplatte | Speicher (SSD bevorzugen) |
|
||||||
|
| Netzwerk | Bandbreite |
|
||||||
|
| USV | Ausfallschutz |
|
||||||
|
|
||||||
|
### RAID
|
||||||
|
|
||||||
|
```
|
||||||
|
RAID - Stufen
|
||||||
|
├── RAID 0: Striping (keine Redundanz)
|
||||||
|
├── RAID 1: Mirroring (Spiegelung)
|
||||||
|
├── RAID 5: Parität (min. 3 Platten)
|
||||||
|
├── RAID 6: Doppelte Parität
|
||||||
|
└── RAID 10: Spiegel + Striping
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF9-01-Netzwerkdienste|Zurück: Netzwerkdienste]]
|
||||||
|
- [[LF9-03-Virtualisierung|Nächstes Thema: Virtualisierung]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
# 9.3 Virtualisierung
|
||||||
|
|
||||||
|
## Virtualisierung - Grundlagen
|
||||||
|
|
||||||
|
### Was ist Virtualisierung?
|
||||||
|
|
||||||
|
```
|
||||||
|
Virtualisierung
|
||||||
|
Mehrere virtuelle Maschinen auf einer
|
||||||
|
physischen Hardware betreiben
|
||||||
|
```
|
||||||
|
|
||||||
|
### Vorteile
|
||||||
|
|
||||||
|
| Vorteil | Beschreibung |
|
||||||
|
|---------|-------------|
|
||||||
|
| Kosteneinsparung | Weniger Hardware |
|
||||||
|
| Flexibilität | Schnell bereitgestellt |
|
||||||
|
| Isolation | Getrennte Umgebungen |
|
||||||
|
| Skalierung | Leicht erweiterbar |
|
||||||
|
| Testumgebung | Schnell aufgesetzt |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Virtualisierungstypen
|
||||||
|
|
||||||
|
### Full Virtualization
|
||||||
|
|
||||||
|
```
|
||||||
|
Gast-OS läuft unverändert
|
||||||
|
├── VMware Workstation
|
||||||
|
├── VirtualBox
|
||||||
|
└── Hyper-V
|
||||||
|
```
|
||||||
|
|
||||||
|
### Para-Virtualization
|
||||||
|
|
||||||
|
```
|
||||||
|
Gast-OS weiß von Virtualisierung
|
||||||
|
├── Xen
|
||||||
|
└── Citrix XenServer
|
||||||
|
```
|
||||||
|
|
||||||
|
### Container-Virtualisierung
|
||||||
|
|
||||||
|
```
|
||||||
|
Leichtgewichtige Virtualisierung
|
||||||
|
├── Docker
|
||||||
|
├── Podman
|
||||||
|
└── Kubernetes
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
### Grundlagen
|
||||||
|
|
||||||
|
```
|
||||||
|
Docker - Begriffe
|
||||||
|
├── Image: Vorlage (Template)
|
||||||
|
├── Container: Laufende Instanz
|
||||||
|
├── Dockerfile: Image-Beschreibung
|
||||||
|
├── Registry: Image-Speicher
|
||||||
|
└── Volume: Persistenter Speicher
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker-Befehle
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Container starten
|
||||||
|
docker run -d -p 8080:80 nginx
|
||||||
|
|
||||||
|
# Container auflisten
|
||||||
|
docker ps
|
||||||
|
docker ps -a
|
||||||
|
|
||||||
|
# Container stoppen
|
||||||
|
docker stop container_id
|
||||||
|
|
||||||
|
# Image bauen
|
||||||
|
docker build -t mein-image .
|
||||||
|
|
||||||
|
# Container entfernen
|
||||||
|
docker rm container_id
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dockerfile
|
||||||
|
|
||||||
|
```dockerfile
|
||||||
|
# Basis-Image
|
||||||
|
FROM node:18-alpine
|
||||||
|
|
||||||
|
# Arbeitsverzeichnis
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Dateien kopieren
|
||||||
|
COPY package*.json ./
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Abhängigkeiten installieren
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Port freigeben
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Startbefehl
|
||||||
|
CMD ["node", "server.js"]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kubernetes
|
||||||
|
|
||||||
|
### Architektur
|
||||||
|
|
||||||
|
```
|
||||||
|
Kubernetes - Komponenten
|
||||||
|
├── Master Node
|
||||||
|
│ ├── API Server
|
||||||
|
│ ├── Scheduler
|
||||||
|
│ ├── Controller Manager
|
||||||
|
│ └── etcd
|
||||||
|
├── Worker Nodes
|
||||||
|
│ ├── Kubelet
|
||||||
|
│ ├── Kube Proxy
|
||||||
|
│ └── Container Runtime
|
||||||
|
└── Add-ons (DNS, Dashboard)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Kubernetes-Objekte
|
||||||
|
|
||||||
|
| Objekt | Beschreibung |
|
||||||
|
|--------|-------------|
|
||||||
|
| Pod | Kleinste Einheit (1+ Container) |
|
||||||
|
| Deployment | Replikate, Updates |
|
||||||
|
| Service | Netzwerkzugriff |
|
||||||
|
| Ingress | HTTP-Routing |
|
||||||
|
| ConfigMap | Konfiguration |
|
||||||
|
| Secret | Sensitive Daten |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cloud-Computing
|
||||||
|
|
||||||
|
### Service-Modelle
|
||||||
|
|
||||||
|
```
|
||||||
|
Cloud - Modelle
|
||||||
|
├── IaaS: Infrastructure as a Service
|
||||||
|
│ └── Virtuelle Maschinen, Netzwerk
|
||||||
|
├── PaaS: Platform as a Service
|
||||||
|
│ └── Laufzeitumgebung
|
||||||
|
└── SaaS: Software as a Service
|
||||||
|
└── Fertige Anwendung
|
||||||
|
```
|
||||||
|
|
||||||
|
### Anbieter
|
||||||
|
|
||||||
|
| Anbieter | Service |
|
||||||
|
|----------|----------|
|
||||||
|
| AWS | EC2, S3, Lambda |
|
||||||
|
| Azure | VMs, Blob, Functions |
|
||||||
|
| Google Cloud | Compute Engine, Cloud Storage |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF9-02-Server|Zurück: Server]]
|
||||||
|
- [[LF9-04-Monitoring|Nächstes Thema: Monitoring]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
176
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-04-Monitoring.md
Normal file
176
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-04-Monitoring.md
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
# 9.4 Monitoring
|
||||||
|
|
||||||
|
## Monitoring - Grundlagen
|
||||||
|
|
||||||
|
### Was wird überwacht?
|
||||||
|
|
||||||
|
```
|
||||||
|
Monitoring-Bereiche
|
||||||
|
├── Verfügbarkeit (Ist das System erreichbar?)
|
||||||
|
├── Performance (CPU, RAM, Disk)
|
||||||
|
├── Netzwerk (Traffic, Latenz)
|
||||||
|
├── Anwendungen (Logs, Fehler)
|
||||||
|
└── Sicherheit (Eindringlinge)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wichtige Metriken
|
||||||
|
|
||||||
|
| Metrik | Beschreibung | Beispiel |
|
||||||
|
|--------|-------------|----------|
|
||||||
|
| CPU | Auslastung | < 80% |
|
||||||
|
| RAM | Speicherauslastung | < 85% |
|
||||||
|
| Disk | Festplattennutzung | < 90% |
|
||||||
|
| Network | Durchsatz | 100 Mbps |
|
||||||
|
| Latency | Antwortzeit | < 200ms |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Monitoring-Tools
|
||||||
|
|
||||||
|
### Nagios
|
||||||
|
|
||||||
|
```
|
||||||
|
Nagios - Features
|
||||||
|
├── Host-Überwachung
|
||||||
|
├── Service-Überwachung
|
||||||
|
├── Alerting
|
||||||
|
├── Plugins
|
||||||
|
└── Web-Interface
|
||||||
|
```
|
||||||
|
|
||||||
|
### Prometheus + Grafana
|
||||||
|
|
||||||
|
```
|
||||||
|
Stack
|
||||||
|
├── Prometheus: Metriken sammeln
|
||||||
|
├── Alertmanager: Alarme
|
||||||
|
├── Grafana: Visualisierung
|
||||||
|
└── Exporters: Datenquellen
|
||||||
|
```
|
||||||
|
|
||||||
|
### Prometheus - Beispiel
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# prometheus.yml
|
||||||
|
global:
|
||||||
|
scrape_interval: 15s
|
||||||
|
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: 'node'
|
||||||
|
static_configs:
|
||||||
|
- targets: ['localhost:9100']
|
||||||
|
```
|
||||||
|
|
||||||
|
### Grafana Dashboard
|
||||||
|
|
||||||
|
```
|
||||||
|
Grafana - Verwendung
|
||||||
|
1. Datenquelle hinzufügen (Prometheus)
|
||||||
|
2. Dashboard erstellen
|
||||||
|
3. Panels konfigurieren (Graph, Stat, Table)
|
||||||
|
4. Alerts einrichten
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Logging
|
||||||
|
|
||||||
|
### Log-Management
|
||||||
|
|
||||||
|
```
|
||||||
|
Log-Stufen
|
||||||
|
├── DEBUG: Detaillierte Informationen
|
||||||
|
├── INFO: Allgemeine Informationen
|
||||||
|
├── WARNING: Warnungen
|
||||||
|
├── ERROR: Fehler
|
||||||
|
└── CRITICAL: Kritische Fehler
|
||||||
|
```
|
||||||
|
|
||||||
|
### Zentrales Logging
|
||||||
|
|
||||||
|
```
|
||||||
|
ELK-Stack
|
||||||
|
├── Elasticsearch: Suchmaschine
|
||||||
|
├── Logstash: Verarbeitung
|
||||||
|
├── Kibana: Visualisierung
|
||||||
|
└── Beats: Sammlung
|
||||||
|
```
|
||||||
|
|
||||||
|
### Logging in Python
|
||||||
|
|
||||||
|
```python
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logging.basicConfig(
|
||||||
|
level=logging.INFO,
|
||||||
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||||
|
)
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.info("Anwendung gestartet")
|
||||||
|
logger.error("Fehler aufgetreten")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Alerting
|
||||||
|
|
||||||
|
### Alert-Regeln
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
groups:
|
||||||
|
- name: example
|
||||||
|
rules:
|
||||||
|
- alert: HighCPU
|
||||||
|
expr: cpu_usage > 80
|
||||||
|
for: 5m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "Hohe CPU-Auslastung auf {{ $labels.instance }}"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Benachrichtigungswege
|
||||||
|
|
||||||
|
| Kanal | Einsatz |
|
||||||
|
|-------|----------|
|
||||||
|
| E-Mail | Standard |
|
||||||
|
| Slack | Team-Kommunikation |
|
||||||
|
| PagerDuty | Incident Management |
|
||||||
|
| SMS | Kritische Alarme |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verfügbarkeit
|
||||||
|
|
||||||
|
### Uptime
|
||||||
|
|
||||||
|
```
|
||||||
|
Uptime-Berechnung
|
||||||
|
99% → 7,3 Stunden/Jahr offline
|
||||||
|
99,9% → 8,7 Stunden/Jahr offline
|
||||||
|
99,99% → 52 Minuten/Jahr offline
|
||||||
|
99,999% → 5 Minuten/Jahr offline
|
||||||
|
```
|
||||||
|
|
||||||
|
### Checks
|
||||||
|
|
||||||
|
```
|
||||||
|
Verfügbarkeitsprüfung
|
||||||
|
├── Ping
|
||||||
|
├── Port-Check
|
||||||
|
├── HTTP-Response
|
||||||
|
├── Zertifikat
|
||||||
|
└── Transaktion
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[LF9-03-Virtualisierung|Zurück: Virtualisierung]]
|
||||||
|
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Betriebswirtschaft]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
187
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-Notizen.md
Normal file
187
2-Ausbildungsjahr/LF9-Netzwerke-Dienste/LF9-Notizen.md
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
# LF 9: Netzwerke und Dienste bereitstellen
|
||||||
|
|
||||||
|
> **2. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||||
|
|
||||||
|
## Kernkompetenz
|
||||||
|
|
||||||
|
Die Schülerinnen und Schüler verfügen über die Kompetenz, Netzwerke und Dienste zu planen, zu konfigurieren und zu erweitern.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
Nach diesem Lernfeld kannst du:
|
||||||
|
- [ ] Anforderungen an Netzwerke und Dienste ermitteln
|
||||||
|
- [ ] Netzwerkkomponenten auswählen
|
||||||
|
- [ ] Dienste konfigurieren (DNS, DHCP, etc.)
|
||||||
|
- [ ] Netzwerksicherheit implementieren
|
||||||
|
- [ ] Funktionsprüfungen durchführen
|
||||||
|
- [ ] Dokumentation erstellen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Netzwerkdienste
|
||||||
|
|
||||||
|
### DNS (Domain Name System)
|
||||||
|
|
||||||
|
**Aufgabe**: Namen zu IP-Adressen auflösen
|
||||||
|
|
||||||
|
**Zonentypen:**
|
||||||
|
- **Master**: Originaldaten, Schreibzugriff
|
||||||
|
- **Slave**: Kopie vom Master
|
||||||
|
- **Forward**: Name → IP
|
||||||
|
- **Reverse**: IP → Name
|
||||||
|
|
||||||
|
**Beispiel named.conf:**
|
||||||
|
```
|
||||||
|
zone "example.com" {
|
||||||
|
type master;
|
||||||
|
file "db.example.com";
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### DHCP (Dynamic Host Configuration Protocol)
|
||||||
|
|
||||||
|
**Aufgabe**: IP-Konfiguration automatisch vergeben
|
||||||
|
|
||||||
|
**Konfigurationsbeispiel:**
|
||||||
|
```
|
||||||
|
subnet 192.168.1.0 netmask 255.255.255.0 {
|
||||||
|
range 192.168.1.100 192.168.1.200;
|
||||||
|
option routers 192.168.1.1;
|
||||||
|
option domain-name-servers 8.8.8.8, 8.8.4.4;
|
||||||
|
default-lease-time 86400;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Weitere Dienste
|
||||||
|
|
||||||
|
| Dienst | Port | Beschreibung |
|
||||||
|
|--------|------|--------------|
|
||||||
|
| HTTP | 80/443 | Webserver |
|
||||||
|
| FTP | 21 | Dateiübertragung |
|
||||||
|
| SSH | 22 | Sichere Shell |
|
||||||
|
| SMTP | 25 | E-Mail-Versand |
|
||||||
|
| IMAP/POP3 | 143/110 | E-Mail-Abruf |
|
||||||
|
| LDAP | 389 | Verzeichnisdienst |
|
||||||
|
| SNMP | 161/162 | Netzwerküberwachung |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Netzwerksicherheit
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
|
||||||
|
**Typen:**
|
||||||
|
- **Paketfilter**: Layer 3/4
|
||||||
|
- **Stateful Inspection**: Verbindungsverfolgung
|
||||||
|
- **Application Layer Gateway**: Layer 7
|
||||||
|
|
||||||
|
**iptables-Beispiel:**
|
||||||
|
```bash
|
||||||
|
# Eingehend blocken, ausgehend erlauben
|
||||||
|
iptables -P INPUT DROP
|
||||||
|
iptables -P OUTPUT ACCEPT
|
||||||
|
# Lokale Kommunikation erlauben
|
||||||
|
iptables -A INPUT -i lo -j ACCEPT
|
||||||
|
# SSH erlauben
|
||||||
|
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
|
||||||
|
# Bestehende Verbindungen erlauben
|
||||||
|
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
```
|
||||||
|
|
||||||
|
### VPN (Virtual Private Network)
|
||||||
|
|
||||||
|
**Arten:**
|
||||||
|
- **Site-to-Site**: Netzwerk-zu-Netzwerk
|
||||||
|
- **Remote Access**: Einzelner Client
|
||||||
|
|
||||||
|
**Protokolle:**
|
||||||
|
- **IPsec**: Sicher, weit verbreitet
|
||||||
|
- **OpenVPN**: Open Source, flexibel
|
||||||
|
- **WireGuard**: Modern, einfach
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## VLAN (Virtual Local Area Network)
|
||||||
|
|
||||||
|
### VLAN-Konzepte
|
||||||
|
|
||||||
|
```
|
||||||
|
┌────────────────────────────────────┐
|
||||||
|
│ Switch │
|
||||||
|
├──────┬──────┬──────┬─────────────┤
|
||||||
|
│ VLAN10│ VLAN20│ VLAN30│ Native │
|
||||||
|
│ (Mgmt)│ (Data)│ (Voice)│ │
|
||||||
|
└──────┴──────┴──────┴─────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
**VLAN-Tagging (802.1Q):**
|
||||||
|
- Jeder Frame erhält VLAN-ID
|
||||||
|
- Tagged Frames über Trunk-Ports
|
||||||
|
|
||||||
|
### Routing zwischen VLANs
|
||||||
|
|
||||||
|
```
|
||||||
|
┌────────┐ ┌────────┐
|
||||||
|
│ VLAN10 │──────│ │
|
||||||
|
│ 192.168.10.0/24 │ Router│
|
||||||
|
├────────┤ │ │ ┌────────┐
|
||||||
|
│ VLAN20 │──────│ │──────│ VLAN30 │
|
||||||
|
│ 192.168.20.0/24 │ │ │ 192.168.30.0/24
|
||||||
|
└────────┘ └────────┘ └────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Netzwerk-Monitoring
|
||||||
|
|
||||||
|
### Tools
|
||||||
|
|
||||||
|
| Tool | Typ | Beschreibung |
|
||||||
|
|------|-----|--------------|
|
||||||
|
| Nagios | Monitoring | Verfügbarkeitsprüfung |
|
||||||
|
| Zabbix | Monitoring | Umfassend |
|
||||||
|
| Wireshark | Analyse | Paket Sniffing |
|
||||||
|
| tcpdump | Analyse | Kommandozeile |
|
||||||
|
| Cacti | Visualisierung | Graphen |
|
||||||
|
|
||||||
|
### SNMP (Simple Network Management Protocol)
|
||||||
|
|
||||||
|
**Komponenten:**
|
||||||
|
- **Manager**: Überwachungssystem
|
||||||
|
- **Agent**: Auf überwachtem Gerät
|
||||||
|
- **MIB**: Management Information Base
|
||||||
|
|
||||||
|
**SNMP-Versionen:**
|
||||||
|
- v1: Keine Sicherheit
|
||||||
|
- v2c: Performance, keine Sicherheit
|
||||||
|
- v3: Authentifizierung und Verschlüsselung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Handlungsphasen
|
||||||
|
|
||||||
|
1. **Informieren**: Anforderungen erheben, recherchieren
|
||||||
|
2. **Planen**: Konzept erstellen, Komponenten wählen
|
||||||
|
3. **Konfigurieren**: Dienste einrichten, testen
|
||||||
|
4. **Dokumentieren**: Konfiguration beschreiben
|
||||||
|
5. **Reflektieren**: Optimierungsmöglichkeiten finden
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsrelevanz
|
||||||
|
|
||||||
|
- Wichtig für Systemintegration
|
||||||
|
- Netzwerkkenntnisse in Teil 2
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[2-Ausbildungsyear/LF8-Daten-bereitstellen|Vorher: LF 8]]
|
||||||
|
- [[3-Ausbildungsyear/LF10a-Benutzeroberflächen|Nachher: LF 10a]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||||
231
3-Ausbildungsjahr/LF10a-Benutzeroberflächen/LF10a-Notizen.md
Normal file
231
3-Ausbildungsjahr/LF10a-Benutzeroberflächen/LF10a-Notizen.md
Normal file
@@ -0,0 +1,231 @@
|
|||||||
|
# LF 10a: Benutzerschnittstellen gestalten und entwickeln
|
||||||
|
|
||||||
|
> **3. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||||
|
|
||||||
|
## Kernkompetenz
|
||||||
|
|
||||||
|
Die Schülerinnen und Schüler verfügen über die Kompetenz, Benutzeroberflächen für softwarebasierte Arbeitsabläufe und Geschäftsprozesse zu gestalten und zu entwickeln.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
Nach diesem Lernfeld kannst du:
|
||||||
|
- [ ] Geschäftsprozesse analysieren und modellieren
|
||||||
|
- [ ] Benutzeroberflächen ergonomisch gestalten
|
||||||
|
- [ ] UI/UX-Prinzipien anwenden
|
||||||
|
- [ ] Responsive Design umsetzen
|
||||||
|
- [ ] Agile Entwicklungsmethoden anwenden
|
||||||
|
- [ ] Datenschutz und Benutzerfreundlichkeit prüfen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## UI/UX-Grundlagen
|
||||||
|
|
||||||
|
### UI (User Interface)
|
||||||
|
|
||||||
|
```
|
||||||
|
Gestaltungselemente:
|
||||||
|
├── Layout
|
||||||
|
│ ├── Struktur
|
||||||
|
│ ├── Hierarchie
|
||||||
|
│ └── Weißraum
|
||||||
|
├── Typografie
|
||||||
|
│ ├── Schriftart
|
||||||
|
│ ├── Schriftgröße
|
||||||
|
│ └── Lesbarkeit
|
||||||
|
├── Farben
|
||||||
|
│ ├── Farbschema
|
||||||
|
│ ├── Kontrast
|
||||||
|
│ └── Bedeutung
|
||||||
|
└── Komponenten
|
||||||
|
├── Buttons
|
||||||
|
├── Formulare
|
||||||
|
└── Navigation
|
||||||
|
```
|
||||||
|
|
||||||
|
### UX (User Experience)
|
||||||
|
|
||||||
|
```
|
||||||
|
UX-Prinzipien:
|
||||||
|
├── Benutzerzentrierung
|
||||||
|
├── Konsistenz
|
||||||
|
├── Feedback
|
||||||
|
├── Fehlertoleranz
|
||||||
|
├── Übersichtlichkeit
|
||||||
|
└── Erwartungskonformität
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Web-Entwicklung
|
||||||
|
|
||||||
|
### HTML5
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Beispielseite</title>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<nav>
|
||||||
|
<a href="/">Start</a>
|
||||||
|
<a href="/produkte">Produkte</a>
|
||||||
|
<a href="/kontakt">Kontakt</a>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<h1>Willkommen</h1>
|
||||||
|
<p>Dies ist eine Beispielseite.</p>
|
||||||
|
</main>
|
||||||
|
<footer>© 2024</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
### CSS3
|
||||||
|
|
||||||
|
```css
|
||||||
|
/* Responsive Design */
|
||||||
|
.container {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile First */
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
.grid {
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Flexbox Navigation */
|
||||||
|
nav {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### JavaScript
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// DOM Manipulation
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const button = document.getElementById('submit-btn');
|
||||||
|
|
||||||
|
button.addEventListener('click', async (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
const formData = new FormData(document.querySelector('form'));
|
||||||
|
const data = Object.fromEntries(formData);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch('/api/submit', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify(data)
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
alert('Erfolgreich gesendet!');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Fehler:', error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Geschäftsprozess-Modellierung
|
||||||
|
|
||||||
|
### BPMN (Business Process Model and Notation)
|
||||||
|
|
||||||
|
```
|
||||||
|
BPMN-Elemente:
|
||||||
|
├── Start/End Event
|
||||||
|
├── Task (Aufgabe)
|
||||||
|
├── Gateway (Verzweigung)
|
||||||
|
│ ├── XOR (entweder-oder)
|
||||||
|
│ ├── AND (parallel)
|
||||||
|
│ └── OR (möglicherweise)
|
||||||
|
├── Sequence Flow (Sequenzfluss)
|
||||||
|
└── Message Flow (Nachrichtenfluss)
|
||||||
|
```
|
||||||
|
|
||||||
|
### EPK (Ereignisgesteuerte Prozesskette)
|
||||||
|
|
||||||
|
```
|
||||||
|
Komponenten:
|
||||||
|
├── Funktionen (Aktivitäten)
|
||||||
|
├── Ereignisse (Auslöser)
|
||||||
|
├── Kanten (Verknüpfungen)
|
||||||
|
└── Operatoren (UND, ODER, XOR)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Agile Methoden
|
||||||
|
|
||||||
|
### Scrum
|
||||||
|
|
||||||
|
```
|
||||||
|
Scrum-Rollen:
|
||||||
|
├── Product Owner
|
||||||
|
├── Scrum Master
|
||||||
|
└── Development Team
|
||||||
|
|
||||||
|
Scrum-Events:
|
||||||
|
├── Sprint Planning
|
||||||
|
├── Daily Standup
|
||||||
|
├── Sprint Review
|
||||||
|
└── Sprint Retrospective
|
||||||
|
|
||||||
|
Scrum-Artefakte:
|
||||||
|
├── Product Backlog
|
||||||
|
├── Sprint Backlog
|
||||||
|
└── Increment
|
||||||
|
```
|
||||||
|
|
||||||
|
### Kanban
|
||||||
|
|
||||||
|
```
|
||||||
|
Kanban-Prinzipien:
|
||||||
|
├── Visualisierung
|
||||||
|
├── Limit Work in Progress
|
||||||
|
├── Flow-Management
|
||||||
|
└── Kontinuierliche Verbesserung
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsrelevanz
|
||||||
|
|
||||||
|
- Wichtig für LF 12a (Abschlussprojekt)
|
||||||
|
- UI-Design wird in Teil 2 geprüft
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[2-Ausbildungsjahr/LF9-Netzwerke-Dienste|Vorher: LF 9]]
|
||||||
|
- [[3-Ausbildungsjahr/LF11a-Funktionalität-realisiren|Nachher: LF 11a]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||||
@@ -0,0 +1,261 @@
|
|||||||
|
# LF 11a: Funktionalität in Anwendungen realisieren
|
||||||
|
|
||||||
|
> **3. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||||
|
|
||||||
|
## Kernkompetenz
|
||||||
|
|
||||||
|
Die Schülerinnen und Schüler verfügen über die Kompetenz, modulare Komponenten zur informationstechnischen Verarbeitung von Arbeitsabläufen und Geschäftsprozessen zu entwickeln und deren Qualität zu sichern.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
Nach diesem Lernfeld kannst du:
|
||||||
|
- [ ] Datenstrukturen und Funktionalitäten aus Anforderungen ableiten
|
||||||
|
- [ ] Modulare Softwarekomponenten planen
|
||||||
|
- [ ] Objektorientierte Programmierung anwenden
|
||||||
|
- [ ] Schnittstellen dokumentieren
|
||||||
|
- [ ] Testfälle formulieren und automatisierte Tests durchführen
|
||||||
|
- [ ] Qualitätskriterien anwenden
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Objektorientierte Programmierung (OOP)
|
||||||
|
|
||||||
|
### Grundkonzepte
|
||||||
|
|
||||||
|
```
|
||||||
|
OOP-Prinzipien:
|
||||||
|
├── Kapselung (Encapsulation)
|
||||||
|
│ └── Daten und Methoden zusammenfassen
|
||||||
|
├── Vererbung (Inheritance)
|
||||||
|
│ └── Gemeinsame Eigenschaften vererben
|
||||||
|
├── Polymorphismus
|
||||||
|
│ └── Gleiches Verhalten, unterschiedliche Formen
|
||||||
|
└── Abstraktion
|
||||||
|
└── Komplexität reduzieren
|
||||||
|
```
|
||||||
|
|
||||||
|
### Klassen-Beispiel (Python)
|
||||||
|
|
||||||
|
```python
|
||||||
|
from abc import ABC, abstractmethod
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
class Kunde(ABC):
|
||||||
|
"""Abstrakte Basisklasse für Kunden"""
|
||||||
|
|
||||||
|
def __init__(self, kundennummer: int, name: str):
|
||||||
|
self._kundennummer = kundennummer
|
||||||
|
self._name = name
|
||||||
|
self._erstellt_am = datetime.now()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def kundennummer(self) -> int:
|
||||||
|
return self._kundennummer
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def berechne_rabatt(self, betrag: float) -> float:
|
||||||
|
"""Berechnet den Rabatt für den Kunden"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
return f"Kunde {self._kundennummer}: {self._name}"
|
||||||
|
|
||||||
|
|
||||||
|
class Privatkunde(Kunde):
|
||||||
|
"""Privatkunde mit Standard-Rabatt"""
|
||||||
|
|
||||||
|
def __init__(self, kundennummer: int, name: str):
|
||||||
|
super().__init__(kundennummer, name)
|
||||||
|
self._rabatt_stufe = 1
|
||||||
|
|
||||||
|
def berechne_rabatt(self, betrag: float) -> float:
|
||||||
|
return betrag * 0.05 * self._rabatt_stufe
|
||||||
|
|
||||||
|
|
||||||
|
class Firmenkunde(Kunde):
|
||||||
|
"""Firmenkunde mit erhöhtem Rabatt"""
|
||||||
|
|
||||||
|
def __init__(self, kundennummer: int, name: str, firmenname: str):
|
||||||
|
super().__init__(kundennummer, name)
|
||||||
|
self._firmenname = firmenname
|
||||||
|
self._rabatt_stufe = 2
|
||||||
|
|
||||||
|
def berechne_rabatt(self, betrag: float) -> float:
|
||||||
|
return betrag * 0.10 * self._rabatt_stufe
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Entwurfsmuster (Design Patterns)
|
||||||
|
|
||||||
|
### Singleton
|
||||||
|
|
||||||
|
```python
|
||||||
|
class DatabaseConnection:
|
||||||
|
"""Singleton für Datenbankverbindung"""
|
||||||
|
|
||||||
|
_instance = None
|
||||||
|
|
||||||
|
def __new__(cls):
|
||||||
|
if cls._instance is None:
|
||||||
|
cls._instance = super().__new__(cls)
|
||||||
|
cls._instance.connection = None
|
||||||
|
return cls._instance
|
||||||
|
|
||||||
|
def connect(self, connection_string: str):
|
||||||
|
if self.connection is None:
|
||||||
|
print(f"Verbinde mit: {connection_string}")
|
||||||
|
self.connection = "Datenbankverbindung hergestellt"
|
||||||
|
|
||||||
|
def disconnect(self):
|
||||||
|
if self.connection:
|
||||||
|
print("Trenne Verbindung")
|
||||||
|
self.connection = None
|
||||||
|
```
|
||||||
|
|
||||||
|
### Factory Method
|
||||||
|
|
||||||
|
```python
|
||||||
|
class KundeFactory:
|
||||||
|
"""Factory für Kunden-Erstellung"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def create_kunde(kundentyp: str, **kwargs) -> Kunde:
|
||||||
|
if kundentyp == "privat":
|
||||||
|
return Privatkunde(**kwargs)
|
||||||
|
elif kundentyp == "firma":
|
||||||
|
return Firmenkunde(**kwargs)
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unbekannter Kundentyp: {kundentyp}")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Schnittstellen
|
||||||
|
|
||||||
|
### API-Design
|
||||||
|
|
||||||
|
```python
|
||||||
|
from typing import List, Optional
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
class BestellPosition(BaseModel):
|
||||||
|
"""Datenmodell für Bestellposition"""
|
||||||
|
artikel_id: int
|
||||||
|
menge: int
|
||||||
|
einzelpreis: float
|
||||||
|
|
||||||
|
class Bestellung(BaseModel):
|
||||||
|
"""Datenmodell für Bestellung"""
|
||||||
|
bestell_id: Optional[int] = None
|
||||||
|
kundennummer: int
|
||||||
|
positionen: List[BestellPosition]
|
||||||
|
gesamtpreis: float
|
||||||
|
|
||||||
|
def berechne_gesamtsumme(self) -> float:
|
||||||
|
return sum(p.menge * p.einzelpreis for p in self.positionen)
|
||||||
|
```
|
||||||
|
|
||||||
|
### REST-API mit FastAPI
|
||||||
|
|
||||||
|
```python
|
||||||
|
from fastapi import FastAPI, HTTPException
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
app = FastAPI(title="Bestell-API")
|
||||||
|
|
||||||
|
bestellungen: List[Bestellung] = []
|
||||||
|
|
||||||
|
@app.post("/bestellungen", response_model=Bestellung)
|
||||||
|
async def create_bestellung(bestellung: Bestellung):
|
||||||
|
"""Neue Bestellung erstellen"""
|
||||||
|
bestellung.gesamtpreis = bestellung.berechne_gesamtsumme()
|
||||||
|
bestellung.bestell_id = len(bestellungen) + 1
|
||||||
|
bestellungen.append(bestellung)
|
||||||
|
return bestellung
|
||||||
|
|
||||||
|
@app.get("/bestellungen/{bestell_id}")
|
||||||
|
async def get_bestellung(bestell_id: int):
|
||||||
|
"""Bestellung abrufen"""
|
||||||
|
for b in bestellungen:
|
||||||
|
if b.bestell_id == bestell_id:
|
||||||
|
return b
|
||||||
|
raise HTTPException(status_code=404, detail="Nicht gefunden")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Qualitätssicherung
|
||||||
|
|
||||||
|
### Testmethoden
|
||||||
|
|
||||||
|
```
|
||||||
|
Test-Pyramide:
|
||||||
|
╱╲
|
||||||
|
╱ ╲ E2E Tests
|
||||||
|
╱────╲
|
||||||
|
╱ ╲ Integrationstests
|
||||||
|
╱────────╲
|
||||||
|
╱ ╲ Unit-Tests
|
||||||
|
╱────────────╲
|
||||||
|
```
|
||||||
|
|
||||||
|
### Unit-Tests (pytest)
|
||||||
|
|
||||||
|
```python
|
||||||
|
import pytest
|
||||||
|
from bestellung import Bestellung, BestellPosition
|
||||||
|
|
||||||
|
class TestBestellung:
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def beispiel_bestellung(self):
|
||||||
|
positionen = [
|
||||||
|
BestellPosition(artikel_id=1, menge=2, einzelpreis=10.00),
|
||||||
|
BestellPosition(artikel_id=2, menge=1, einzelpreis=25.00)
|
||||||
|
]
|
||||||
|
return Bestellung(kundennummer=100, positionen=positionen)
|
||||||
|
|
||||||
|
def test_gesamtsumme_berechnung(self, beispiel_bestellung):
|
||||||
|
"""Test der Gesamtsummen-Berechnung"""
|
||||||
|
ergebnis = beispiel_bestellung.berechne_gesamtsumme()
|
||||||
|
# 2 × 10 + 1 × 25 = 45
|
||||||
|
assert ergebnis == 45.00
|
||||||
|
|
||||||
|
def test_leere_bestellung(self):
|
||||||
|
"""Test mit leerer Positionen-Liste"""
|
||||||
|
bestellung = Bestellung(kundennummer=100, positionen=[])
|
||||||
|
ergebnis = bestellung.berechne_gesamtsumme()
|
||||||
|
assert ergebnis == 0.00
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Handlungsphasen
|
||||||
|
|
||||||
|
1. **Analysieren**: Anforderungen verstehen, Datenmodelle ableiten
|
||||||
|
2. **Planen**: Module und Schnittstellen entwerfen
|
||||||
|
3. **Implementieren**: Komponenten entwickeln
|
||||||
|
4. **Testen**: Tests durchführen, Qualität sichern
|
||||||
|
5. **Optimieren**: Verbesserungen einarbeiten
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsrelevanz
|
||||||
|
|
||||||
|
- Programmierkenntnisse für Teil 2
|
||||||
|
- Wichtig für Abschlussprojekt
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[3-Ausbildungsjahr/LF10a-Benutzeroberflächen|Vorher: LF 10a]]
|
||||||
|
- [[3-Ausbildungsjahr/LF12a-Kundenspezifische-Entwicklung|Nachher: LF 12a]]
|
||||||
|
- [[Programmiersprachen/Python|OOP mit Python]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||||
@@ -0,0 +1,273 @@
|
|||||||
|
# LF 12a: Kundenspezifische Anwendungsentwicklung durchführen
|
||||||
|
|
||||||
|
> **3. Ausbildungsjahr** | Zeitrichtwert: **120 Stunden**
|
||||||
|
|
||||||
|
## Kernkompetenz
|
||||||
|
|
||||||
|
Die Schülerinnen und Schüler verfügen über die Kompetenz, einen Kundenauftrag zur Anwendungsentwicklung vollständig durchzuführen und zu bewerten.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lernziele
|
||||||
|
|
||||||
|
Nach diesem Lernfeld kannst du:
|
||||||
|
- [ ] Eine Anforderungsanalyse durchführen
|
||||||
|
- [ ] Ein Projekt planen und kalkulieren
|
||||||
|
- [ ] Lösungsvarianten entwickeln und vergleichen
|
||||||
|
- [ ] Ein Angebot erstellen
|
||||||
|
- [ ] Die Lösung implementieren
|
||||||
|
- [ ] Qualitätssicherung durchführen
|
||||||
|
- [ ] Das Projekt präsentieren und dokumentieren
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Projektphasen
|
||||||
|
|
||||||
|
```
|
||||||
|
PROJEKTLEBENSZYKLUS
|
||||||
|
|
||||||
|
┌─────────────┐
|
||||||
|
│ 1. Start │ Kick-off, Projektziele definieren
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ 2. Analyse │ Anforderungen erheben, Lastenheft
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ 3. Planung │ Pflichtenheft, Aufwandsschätzung
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ 4. Design │ Architektur, Datenmodell, UI
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ 5. Implem. │ Programmierung, Tests
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ 6. Test │ Qualitätssicherung, Abnahme
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ 7. Abschluss│ Übergabe, Schulung, Dokumentation
|
||||||
|
└─────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Anforderungsanalyse
|
||||||
|
|
||||||
|
### Lastenheft (vom Kunden)
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Lastenheft - Projekt [Name]
|
||||||
|
|
||||||
|
## 1. Ausgangslage
|
||||||
|
[Beschreibung der aktuellen Situation]
|
||||||
|
|
||||||
|
## 2. Zielsetzung
|
||||||
|
[Was soll erreicht werden?]
|
||||||
|
|
||||||
|
## 3. Funktionale Anforderungen
|
||||||
|
- [ ] Anforderung 1
|
||||||
|
- [ ] Anforderung 2
|
||||||
|
|
||||||
|
## 4. Nicht-funktionale Anforderungen
|
||||||
|
- Performance: < 2s Ladezeit
|
||||||
|
- Verfügbarkeit: 99%
|
||||||
|
- Sicherheit: TLS-Verschlüsselung
|
||||||
|
|
||||||
|
## 5. Randbedingungen
|
||||||
|
- Budget: [Betrag]
|
||||||
|
- Zeitrahmen: [Datum]
|
||||||
|
- Technologien: [Liste]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pflichtenheft (vom Auftragnehmer)
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Pflichtenheft - Projekt [Name]
|
||||||
|
|
||||||
|
## 1. Zielbestimmung
|
||||||
|
[Festlegung der zu erreichenden Ziele]
|
||||||
|
|
||||||
|
## 2. Produkteinsatz
|
||||||
|
[Für wen/was wird das Produkt eingesetzt?]
|
||||||
|
|
||||||
|
## 3. Produktfunktionen
|
||||||
|
### F001: [Funktionsname]
|
||||||
|
- Beschreibung: [Was macht die Funktion?]
|
||||||
|
- Priorität: [Must/Should/Could]
|
||||||
|
|
||||||
|
## 4. Produktdaten
|
||||||
|
[List der zu verwaltenden Daten]
|
||||||
|
|
||||||
|
## 5. Produktleistungen
|
||||||
|
- Antwortzeit: < 500ms
|
||||||
|
- Verfügbarkeit: 99,9%
|
||||||
|
|
||||||
|
## 6. Abnahmekriterien
|
||||||
|
[Wie wird die Abnahme durchgeführt?]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Projektkalkulation
|
||||||
|
|
||||||
|
### Aufwandsschätzung
|
||||||
|
|
||||||
|
**Funktionspunktmethode:**
|
||||||
|
|
||||||
|
```
|
||||||
|
FP = Σ (Komplexität × Gewichtung)
|
||||||
|
|
||||||
|
Beispiel:
|
||||||
|
- Bildschirmmasken: 5 × 5 = 25 FP
|
||||||
|
- Datenbanktabellen: 8 × 10 = 80 FP
|
||||||
|
- Schnittstellen: 3 × 7 = 21 FP
|
||||||
|
- Berichte: 4 × 5 = 20 FP
|
||||||
|
────────────────────────────
|
||||||
|
Gesamt-FP: 146
|
||||||
|
|
||||||
|
Aufwand (Stunden) = 146 × 4h = 584h
|
||||||
|
```
|
||||||
|
|
||||||
|
### Kostenberechnung
|
||||||
|
|
||||||
|
```
|
||||||
|
PERSONALKOSTEN:
|
||||||
|
Entwickler 500€/Tag × 60 Tage = 30.000€
|
||||||
|
Projektleiter 600€/Tag × 20 Tage = 12.000€
|
||||||
|
────────────────────────────────────────────
|
||||||
|
Summe Personal: = 42.000€
|
||||||
|
|
||||||
|
SACHKOSTEN:
|
||||||
|
Software-Lizenzen = 5.000€
|
||||||
|
Hardware = 3.000€
|
||||||
|
Reisekosten = 2.000€
|
||||||
|
────────────────────────────────────────────
|
||||||
|
Summe Sachkosten: = 10.000€
|
||||||
|
|
||||||
|
GESAMTKOSTEN: = 52.000€
|
||||||
|
|
||||||
|
+ Gewinn (15%): = 7.800€
|
||||||
|
+ MwSt (19%): = 11.382€
|
||||||
|
─────────────────────────────────────────────────────
|
||||||
|
ANGEBOTSPREIS: = 71.182€
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Qualitätssicherung
|
||||||
|
|
||||||
|
### Testverfahren
|
||||||
|
|
||||||
|
```
|
||||||
|
TESTMETHODEN
|
||||||
|
├── Statische Tests
|
||||||
|
│ ├── Code-Review
|
||||||
|
│ └── Statische Analyse
|
||||||
|
├── Dynamische Tests
|
||||||
|
│ ├── Unit-Tests
|
||||||
|
│ ├── Integrationstests
|
||||||
|
│ ├── Systemtests
|
||||||
|
│ └── Abnahmetests
|
||||||
|
└── Weitere
|
||||||
|
├── Performance-Tests
|
||||||
|
├── Security-Tests
|
||||||
|
└── Usability-Tests
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testdokumentation
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Testprotokoll
|
||||||
|
|
||||||
|
## Testobjekt: [Komponente/Funktion]
|
||||||
|
|
||||||
|
## Testfall TC-001
|
||||||
|
| Schritt | Beschreibung | Erwartetes Ergebnis | Ergebnis |
|
||||||
|
|--------|--------------|---------------------|---------|
|
||||||
|
| 1 | Start Button klicken | Anwendung startet | ✓ OK |
|
||||||
|
| 2 | Login eingeben | Feld zeigt Eingabe | ✓ OK |
|
||||||
|
| 3 | Falsches Passwort | Fehlermeldung | ✓ OK |
|
||||||
|
|
||||||
|
## Tester: [Name]
|
||||||
|
## Datum: [Datum]
|
||||||
|
## Ergebnis: BESTANDEN / NICHT BESTANDEN
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Präsentation und Übergabe
|
||||||
|
|
||||||
|
### Präsentationsstruktur
|
||||||
|
|
||||||
|
```
|
||||||
|
PRÄSENTATION (15-20 Minuten)
|
||||||
|
|
||||||
|
1. Einleitung (2 min)
|
||||||
|
- Projektvorstellung
|
||||||
|
- Ausgangslage
|
||||||
|
|
||||||
|
2. Lösung (5 min)
|
||||||
|
- Vorgehensweise
|
||||||
|
- Architektur
|
||||||
|
- Kernfunktionen
|
||||||
|
|
||||||
|
3. Demonstration (5 min)
|
||||||
|
- Live-Vorführung
|
||||||
|
- Highlight-Features
|
||||||
|
|
||||||
|
4. Projektmanagement (3 min)
|
||||||
|
- Zeitplan
|
||||||
|
- Herausforderungen
|
||||||
|
|
||||||
|
5. Fazit (2 min)
|
||||||
|
- Erreichte Ziele
|
||||||
|
- Ausblick
|
||||||
|
```
|
||||||
|
|
||||||
|
### Übergabedokumentation
|
||||||
|
|
||||||
|
- Installationsanleitung
|
||||||
|
- Benutzerhandbuch
|
||||||
|
- Administratorhandbuch
|
||||||
|
- Technische Dokumentation
|
||||||
|
- Abnahmeprotokoll
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsrelevanz
|
||||||
|
|
||||||
|
- **Gewichtung Teil 2: 50%**
|
||||||
|
- Betriebliche Projektarbeit (40h + Dokumentation)
|
||||||
|
- Präsentation + Fachgespräch (30 min)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tipps für die Prüfung
|
||||||
|
|
||||||
|
1. **Projektplanung**: Realistische Zeitplanung
|
||||||
|
2. **Dokumentation**: Vollständig und nachvollziehbar
|
||||||
|
3. **Präsentation**: Übung, Übung, Übung!
|
||||||
|
4. **Fachgespräch**: Fachbegriffe sicher beherrschen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Querverweise
|
||||||
|
|
||||||
|
- [[3-Ausbildungsjahr/LF11a-Funktionalität-realisiren|Vorher: LF 11a]]
|
||||||
|
- [[Prüfungsvorbereitung/Teil2-Projekt|Teil 2 Projekt]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||||
101
Betriebliche-Ausbildung/Ausbildungsnachweis-Vorlage.md
Normal file
101
Betriebliche-Ausbildung/Ausbildungsnachweis-Vorlage.md
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# Ausbildungsnachweis (Berichtsheft)
|
||||||
|
|
||||||
|
> Vorlage für den betrieblichen Ausbildungsnachweis gemäß § 13 BBiG
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Persönliche Daten
|
||||||
|
|
||||||
|
| Feld | Eintrag |
|
||||||
|
|------|---------|
|
||||||
|
| Name | [Dein Name] |
|
||||||
|
| Ausbildungsberuf | Fachinformatiker Anwendungsentwicklung |
|
||||||
|
| Ausbildungsbetrieb | [Firmenname] |
|
||||||
|
| Ausbildungsdauer | [Start] bis [Ende] |
|
||||||
|
| Ausbilder/in | [Name] |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ausbildungsnachweis
|
||||||
|
|
||||||
|
### Woche Nr. ____
|
||||||
|
|
||||||
|
**Datum:** ____.__.20__ bis ____.__.20__
|
||||||
|
|
||||||
|
#### Tägliche Einträge
|
||||||
|
|
||||||
|
| Tag | Uhrzeit | Tätigkeit | Ausbildungsnachweis |
|
||||||
|
|-----|---------|-----------|---------------------|
|
||||||
|
| Mo | 08:00 - 16:30 | [Tätigkeit] | [LF/Thema] |
|
||||||
|
| Di | 08:00 - 16:30 | [Tätigkeit] | [LF/Thema] |
|
||||||
|
| Mi | 08:00 - 16:30 | [Tätigkeit] | [LF/Thema] |
|
||||||
|
| Do | 08:00 - 16:30 | [Tätigkeit] | [LF/Thema] |
|
||||||
|
| Fr | 08:00 - 14:00 | [Tätigkeit] | [LF/Thema] |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Zusammenfassung der Woche
|
||||||
|
|
||||||
|
**Geleistete Arbeitszeit:** ___ Stunden
|
||||||
|
|
||||||
|
**Ausbildungsinhalte:**
|
||||||
|
|
||||||
|
1. _______________________________________________
|
||||||
|
2. _______________________________________________
|
||||||
|
3. _______________________________________________
|
||||||
|
|
||||||
|
**Besonders interessant/für mich neu:**
|
||||||
|
|
||||||
|
_________________________________________________
|
||||||
|
|
||||||
|
**Noch nicht verstanden / Fragen:**
|
||||||
|
|
||||||
|
_________________________________________________
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Checkliste: Lernfeld-Abdeckung
|
||||||
|
|
||||||
|
### 1. Ausbildungsjahr
|
||||||
|
|
||||||
|
- [ ] LF 1: Unternehmen und eigene Rolle
|
||||||
|
- [ ] LF 2: Arbeitsplätze nach Kundenwunsch
|
||||||
|
- [ ] LF 3: Clients in Netzwerke einbinden
|
||||||
|
- [ ] LF 4: Schutzbedarfsanalyse
|
||||||
|
- [ ] LF 5: Software zur Datenverwaltung
|
||||||
|
|
||||||
|
### 2. Ausbildungsjahr
|
||||||
|
|
||||||
|
- [ ] LF 6: Serviceanfragen bearbeiten
|
||||||
|
- [ ] LF 7: Cyber-physische Systeme
|
||||||
|
- [ ] LF 8: Daten systemübergreifend bereitstellen
|
||||||
|
- [ ] LF 9: Netzwerke und Dienste
|
||||||
|
|
||||||
|
### 3. Ausbildungsjahr
|
||||||
|
|
||||||
|
- [ ] LF 10a: Benutzeroberflächen
|
||||||
|
- [ ] LF 11a: Funktionalität realisieren
|
||||||
|
- [ ] LF 12a: Kundenspezifische Entwicklung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Unterschriften
|
||||||
|
|
||||||
|
| | Datum | Unterschrift Auszubildende/r | Unterschrift Ausbilder/in |
|
||||||
|
|---|-------|---------------------------|------------------------|
|
||||||
|
| Woche 1 | | | |
|
||||||
|
| Woche 2 | | | |
|
||||||
|
| ... | | | |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Hinweise
|
||||||
|
|
||||||
|
- Führe den Ausbildungsnachweis regelmäßig (mindestens wöchentlich)
|
||||||
|
- Achte auf Vollständigkeit aller Tage
|
||||||
|
- Unterschriften rechtzeitig einholen
|
||||||
|
- Bei Fehlzeiten: Angabe der Gründe (Krankheit, Urlaub, etc.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Gemäß § 13 Berufsbildungsgesetz (BBiG) ist der Ausbildungsnachweis zu führen.*
|
||||||
145
Prüfungsvorbereitung/Prüfungsübersicht.md
Normal file
145
Prüfungsvorbereitung/Prüfungsübersicht.md
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
# Prüfungsvorbereitung - Fachinformatiker Anwendungsentwicklung
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
### Abschlussprüfung - Teil 1
|
||||||
|
|
||||||
|
**Zeitpunkt:** Nach dem 4. Ausbildungshalbjahr (ca. nach 1,5 Jahren)
|
||||||
|
|
||||||
|
**Prüfungsbereich:**
|
||||||
|
- Einrichten eines IT-gestützten Arbeitsplatzes
|
||||||
|
|
||||||
|
**Inhalte:**
|
||||||
|
- Kundenbedarfe ermitteln
|
||||||
|
- Hard- und Software auswählen
|
||||||
|
- IT-Arbeitsplatz konfigurieren und testen
|
||||||
|
- Datenschutz und IT-Sicherheit beachten
|
||||||
|
- Kunden einweisen
|
||||||
|
|
||||||
|
**Dauer:** 90 Minuten (schriftlich)
|
||||||
|
|
||||||
|
**Gewichtung:** 20%
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Abschlussprüfung - Teil 2
|
||||||
|
|
||||||
|
**Zeitpunkt:** Am Ende der Ausbildung
|
||||||
|
|
||||||
|
**Prüfungsbereiche:**
|
||||||
|
|
||||||
|
| Prüfungsbereich | Gewichtung |
|
||||||
|
|-----------------|------------|
|
||||||
|
| Planen und Umsetzen eines Softwareprojektes | 50% |
|
||||||
|
| Planen eines Softwareproduktes | 10% |
|
||||||
|
| Entwicklung und Umsetzung von Algorithmen | 10% |
|
||||||
|
| Wirtschafts- und Sozialkunde | 10% |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsbereich 1: Softwareprojekt (50%)
|
||||||
|
|
||||||
|
### Projektarbeit
|
||||||
|
|
||||||
|
- Dauer: max. 80 Stunden
|
||||||
|
- Dokumentation mit praxisbezogenen Unterlagen
|
||||||
|
- Projektbeschreibung zur Genehmigung vorlegen
|
||||||
|
|
||||||
|
### Projektphasen
|
||||||
|
|
||||||
|
1. **Analyse**: Kundenspezifische Anforderungen
|
||||||
|
2. **Planung**: Projektplanung durchführen
|
||||||
|
3. **Wirtschaftliche Betrachtung**: Kosten/Nutzen
|
||||||
|
4. **Implementierung**: Software erstellen/anpassen
|
||||||
|
5. **Test**: Software testen, Einführung vorbereiten
|
||||||
|
6. **Dokumentation**: Projekt dokumentieren
|
||||||
|
|
||||||
|
### Präsentation
|
||||||
|
|
||||||
|
- Dauer: max. 15 Minuten
|
||||||
|
- Vorstellung der Ergebnisse
|
||||||
|
|
||||||
|
### Fachgespräch
|
||||||
|
|
||||||
|
- Dauer: max. 30 Minuten (inkl. Präsentation)
|
||||||
|
- Begründung der Vorgehensweise
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsbereich 2: Planen eines Softwareproduktes (10%)
|
||||||
|
|
||||||
|
**Dauer:** 90 Minuten (schriftlich)
|
||||||
|
|
||||||
|
### Inhalte
|
||||||
|
|
||||||
|
- Entwicklungsumgebungen und -bibliotheken auswählen
|
||||||
|
- Programmspezifikationen festlegen
|
||||||
|
- Bedienoberflächen konzipieren
|
||||||
|
- Qualitätskontrolle planen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsbereich 3: Algorithmen (10%)
|
||||||
|
|
||||||
|
**Dauer:** 90 Minuten (schriftlich)
|
||||||
|
|
||||||
|
### Inhalte
|
||||||
|
|
||||||
|
- Programmcode interpretieren
|
||||||
|
- Algorithmen in Programmiersprache umsetzen
|
||||||
|
- Algorithmen grafisch darstellen (Struktogramm, PAP)
|
||||||
|
- Testszenarien auswählen
|
||||||
|
- Datenbankabfragen erstellen (SQL)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prüfungsbereich 4: Wirtschafts- und Sozialkunde (10%)
|
||||||
|
|
||||||
|
**Dauer:** 60 Minuten (schriftlich)
|
||||||
|
|
||||||
|
### Themenübersicht
|
||||||
|
|
||||||
|
- Wirtschaftliche Grundlagen
|
||||||
|
- Rechtliche Rahmenbedingungen
|
||||||
|
- Arbeitsrecht
|
||||||
|
- Sozialrecht
|
||||||
|
- Unternehmensformen
|
||||||
|
- Marketing
|
||||||
|
- Controlling
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Mündliche Ergänzungsprüfung
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
|
||||||
|
- Antrag in einem Prüfungsbereich
|
||||||
|
- Schlechter als "ausreichend"
|
||||||
|
- Kann zum Bestehen führen
|
||||||
|
|
||||||
|
### Ablauf
|
||||||
|
|
||||||
|
- Dauer: 15 Minuten
|
||||||
|
- Verhältnis: 2:1 (schriftlich : mündlich)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lerntipps
|
||||||
|
|
||||||
|
1. **Frühzeitig beginnen**: Nicht erst kurz vor der Prüfung
|
||||||
|
2. **Alte Prüfungen üben**: Praxisbezug herstellen
|
||||||
|
3. **Zeitmanagement üben**: Prüfungssimulation
|
||||||
|
4. **Gruppen lernen**: Unterschiedliche Perspektiven
|
||||||
|
5. **Fragen stellen**: Bei Unsicherheiten nachfragen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ressourcen
|
||||||
|
|
||||||
|
- [IHK Prüfungstermine](https://www.ihk-bremen.de)
|
||||||
|
- [Rahmenlehrplan KMK](http://www.kmk.org)
|
||||||
|
- [Fachinformatiker Prüfungsvorbereitung](https://fachinformatikerpruefungsvorbereitung.de)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
286
Wissen/Programmiersprachen/Programmierübersicht.md
Normal file
286
Wissen/Programmiersprachen/Programmierübersicht.md
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
# Programmierübersicht - Fachinformatiker Anwendungsentwicklung
|
||||||
|
|
||||||
|
> Wichtige Programmiersprachen und Konzepte für die Ausbildung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
| Sprache | Typ | Typisierung |Paradigma | Hauptverwendung |
|
||||||
|
|---------|-----|------------|----------|-----------------|
|
||||||
|
| **Python** | Interpreter | Dynamisch | OOP, funktional | Scripting, Web, Data Science |
|
||||||
|
| **Java** | Kompiliert | Statisch | OOP | Enterprise, Android |
|
||||||
|
| **JavaScript** | Interpreter | Dynamisch | OOP, funktional | Web-Entwicklung |
|
||||||
|
| **C#** | Kompiliert | Statisch | OOP | .NET, Games |
|
||||||
|
| **SQL** | deklarativ | - | - | Datenbanken |
|
||||||
|
| **HTML/CSS** | Markup/Stylesheet | - | - | Web-Frontend |
|
||||||
|
| **Bash/Shell** | Interpreter | Dynamisch | Prozedural | Systemadministration |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Python
|
||||||
|
|
||||||
|
### Grundlagen
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Variablen
|
||||||
|
name = "Max"
|
||||||
|
alter = 25
|
||||||
|
ist_student = True
|
||||||
|
|
||||||
|
# Datentypen
|
||||||
|
text = "Hallo Welt" # str
|
||||||
|
zahl = 42 # int
|
||||||
|
komma = 3.14 # float
|
||||||
|
listen = [1, 2, 3] # list
|
||||||
|
tuples = (1, 2) # tuple
|
||||||
|
wörter = {"a": 1, "b": 2} # dict
|
||||||
|
|
||||||
|
# Kontrollstrukturen
|
||||||
|
if alter >= 18:
|
||||||
|
print("Volljährig")
|
||||||
|
elif alter >= 16:
|
||||||
|
print("Führerschein")
|
||||||
|
else:
|
||||||
|
print("Minderjährig")
|
||||||
|
|
||||||
|
# Schleifen
|
||||||
|
for i in range(5):
|
||||||
|
print(i)
|
||||||
|
|
||||||
|
while alter > 0:
|
||||||
|
alter -= 1
|
||||||
|
|
||||||
|
# Funktionen
|
||||||
|
def gruss(name):
|
||||||
|
return f"Hallo, {name}!"
|
||||||
|
|
||||||
|
# Klassen
|
||||||
|
class Person:
|
||||||
|
def __init__(self, name, alter):
|
||||||
|
self.name = name
|
||||||
|
self.alter = alter
|
||||||
|
|
||||||
|
def vorstellen(self):
|
||||||
|
return f"Ich bin {self.name}"
|
||||||
|
```
|
||||||
|
|
||||||
|
### List Comprehension
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Traditionell
|
||||||
|
quadrate = []
|
||||||
|
for i in range(10):
|
||||||
|
quadrate.append(i**2)
|
||||||
|
|
||||||
|
# Elegant
|
||||||
|
quadrate = [i**2 for i in range(10)]
|
||||||
|
|
||||||
|
# Mit Bedingung
|
||||||
|
gerade = [i for i in range(20) if i % 2 == 0]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## JavaScript
|
||||||
|
|
||||||
|
### Grundlagen
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Variablen (ES6+)
|
||||||
|
let name = "Max"; // Veränderbar
|
||||||
|
const alter = 25; // Konstante
|
||||||
|
var alter2 = 30; // Veraltet, nicht mehr nutzen
|
||||||
|
|
||||||
|
// Datentypen
|
||||||
|
const text = "Hallo"; // string
|
||||||
|
constzahl = 42; // number
|
||||||
|
const istWahr = true; // boolean
|
||||||
|
const array = [1, 2, 3]; // array
|
||||||
|
const objekt = { key: "value" }; // object
|
||||||
|
|
||||||
|
// Arrow Functions
|
||||||
|
const gruss = (name) => `Hallo, ${name}!`;
|
||||||
|
|
||||||
|
// Klassen
|
||||||
|
class Person {
|
||||||
|
constructor(name, alter) {
|
||||||
|
this.name = name;
|
||||||
|
this.alter = alter;
|
||||||
|
}
|
||||||
|
|
||||||
|
vorstellen() {
|
||||||
|
return `Ich bin ${this.name}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DOM Manipulation
|
||||||
|
document.getElementById("meinElement").addEventListener("click", () => {
|
||||||
|
console.log("Geklickt!");
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### Async/Await
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Promise
|
||||||
|
fetch("https://api.example.com/data")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => console.log(data))
|
||||||
|
.catch(error => console.error(error));
|
||||||
|
|
||||||
|
// Async/Await (moderner)
|
||||||
|
async function ladeDaten() {
|
||||||
|
try {
|
||||||
|
const response = await fetch("https://api.example.com/data");
|
||||||
|
const data = await response.json();
|
||||||
|
console.log(data);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SQL
|
||||||
|
|
||||||
|
### Grundlegende Abfragen
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- Daten abfragen
|
||||||
|
SELECT spalte1, spalte2
|
||||||
|
FROM tabelle
|
||||||
|
WHERE spalte1 = 'wert'
|
||||||
|
ORDER BY spalte2 DESC;
|
||||||
|
|
||||||
|
-- Mit JOIN
|
||||||
|
SELECT k.name, b.bestelldatum
|
||||||
|
FROM kunde k
|
||||||
|
JOIN bestellung b ON k.id = b.kunde_id;
|
||||||
|
|
||||||
|
-- Aggregatfunktionen
|
||||||
|
SELECT
|
||||||
|
COUNT(*) AS anzahl,
|
||||||
|
SUM(preis) AS gesamt,
|
||||||
|
AVG(preis) AS durchschnitt
|
||||||
|
FROM produkte
|
||||||
|
WHERE kategorie = 'Elektronik';
|
||||||
|
|
||||||
|
-- Gruppierung
|
||||||
|
SELECT kategorie, COUNT(*) AS anzahl
|
||||||
|
FROM produkte
|
||||||
|
GROUP BY kategorie
|
||||||
|
HAVING COUNT(*) > 5;
|
||||||
|
```
|
||||||
|
|
||||||
|
### Datenmanipulation
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- Einfügen
|
||||||
|
INSERT INTO kunde (name, email)
|
||||||
|
VALUES ('Max Mustermann', 'max@example.com');
|
||||||
|
|
||||||
|
-- Aktualisieren
|
||||||
|
UPDATE kunde
|
||||||
|
SET email = 'neu@example.com'
|
||||||
|
WHERE id = 1;
|
||||||
|
|
||||||
|
-- Löschen
|
||||||
|
DELETE FROM kunde WHERE id = 1;
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Java
|
||||||
|
|
||||||
|
### Grundlagen
|
||||||
|
|
||||||
|
```java
|
||||||
|
// Klassenstruktur
|
||||||
|
public class Person {
|
||||||
|
private String name;
|
||||||
|
private int alter;
|
||||||
|
|
||||||
|
// Konstruktor
|
||||||
|
public Person(String name, int alter) {
|
||||||
|
this.name = name;
|
||||||
|
this.alter = alter;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getter
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setter
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// main-Methode
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Person p = new Person("Max", 25);
|
||||||
|
System.out.println(p.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wichtige Konzepte
|
||||||
|
|
||||||
|
### OOP-Prinzipien
|
||||||
|
|
||||||
|
1. **Kapselung**: Daten nach außen schützen
|
||||||
|
2. **Vererbung**: Eigenschaften weitergeben
|
||||||
|
3. **Polymorphismus**: Gleiches Verhalten, unterschiedliche Formen
|
||||||
|
4. **Abstraktion**: Komplexität verbergen
|
||||||
|
|
||||||
|
### Entwurfsmuster
|
||||||
|
|
||||||
|
- **Singleton**: Eine Instanz einer Klasse
|
||||||
|
- **Factory**: Erstellt Objekte, ohne exakte Klasse zu kennen
|
||||||
|
- **Observer**: Ereignisbenachrichtigung
|
||||||
|
- **Strategy**: Austauschbare Algorithmen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Versionskontrolle (Git)
|
||||||
|
|
||||||
|
### Grundbefehle
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Repository initialisieren
|
||||||
|
git init
|
||||||
|
|
||||||
|
# Änderungen hinzufügen
|
||||||
|
git add .
|
||||||
|
git commit -m "Nachricht"
|
||||||
|
|
||||||
|
# Branching
|
||||||
|
git checkout -b feature-neu
|
||||||
|
|
||||||
|
# Merge
|
||||||
|
git checkout main
|
||||||
|
git merge feature-neu
|
||||||
|
|
||||||
|
# Remote
|
||||||
|
git push origin main
|
||||||
|
git pull origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## IDEs und Tools
|
||||||
|
|
||||||
|
| IDE | Sprache | Kosten |
|
||||||
|
|-----|---------|--------|
|
||||||
|
| VS Code | Multi | Kostenlos |
|
||||||
|
| IntelliJ IDEA | Java | Community Edition |
|
||||||
|
| PyCharm | Python | Community Edition |
|
||||||
|
| Eclipse | Java | Kostenlos |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024*
|
||||||
207
Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung.md
Normal file
207
Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung.md
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
# WISO - Wirtschaft und Sozialkunde
|
||||||
|
|
||||||
|
> Prüfungsrelevante Themen für die Abschlussprüfung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Wirtschaft
|
||||||
|
|
||||||
|
### Wirtschaftssysteme
|
||||||
|
|
||||||
|
```
|
||||||
|
Wirtschaftssysteme
|
||||||
|
├── Planwirtschaft (Staatswirtschaft)
|
||||||
|
│ └── Staat plant und lenkt
|
||||||
|
├── Marktwirtschaft
|
||||||
|
│ ├──freie Marktwirtschaft (soziale Marktwirtschaft)
|
||||||
|
│ └──Preise durch Angebot und Nachfrage
|
||||||
|
└── Mixed Economy (gemischte Wirtschaft)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wirtschaftssektoren
|
||||||
|
|
||||||
|
| Sektor | Beispiel |
|
||||||
|
|--------|----------|
|
||||||
|
| **Primär** | Landwirtschaft, Bergbau |
|
||||||
|
| **Sekundär** | Industrie, Handwerk |
|
||||||
|
| **Tertiär** | Dienstleistungen |
|
||||||
|
| **Quartär** | Forschung, Entwicklung |
|
||||||
|
|
||||||
|
### Unternehmen
|
||||||
|
|
||||||
|
#### Rechtsformen
|
||||||
|
|
||||||
|
| Rechtsform | Stammkapital | Haftung | Organe |
|
||||||
|
|-----------|--------------|---------|--------|
|
||||||
|
| **GmbH** | ≥25.000€ | Gesellschaft | GF, Gesellschafter |
|
||||||
|
| **UG** | ≥1€ | Gesellschaft | GF, Gesellschafter |
|
||||||
|
| **AG** | ≥50.000€ | Gesellschaft | Vorstand, Aufsichtsrat |
|
||||||
|
| **OHG** | - | Persönlich | Gesellschafter |
|
||||||
|
| **KG** | - | Komplementär: persönlich | Komplementär, Kommanditist |
|
||||||
|
| **Einzelunternehmen** | - | Persönlich | Inhaber |
|
||||||
|
|
||||||
|
#### Unternehmensziele
|
||||||
|
|
||||||
|
- **Ökonomisch**: Gewinnmaximierung, Umsatzwachstum
|
||||||
|
- **Ökologisch**: Umweltschutz, Nachhaltigkeit
|
||||||
|
- **Sozial**: Mitarbeiterzufriedenheit, Gesellschaft
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Recht
|
||||||
|
|
||||||
|
### Vertragsrecht
|
||||||
|
|
||||||
|
#### Vertragsarten
|
||||||
|
|
||||||
|
| Vertrag | Beschreibung |
|
||||||
|
|---------|--------------|
|
||||||
|
| **Kaufvertrag** | Eigentumsübergang gegen Geld |
|
||||||
|
| **Werkvertrag** | Herstellung eines Werkes |
|
||||||
|
| **Dienstvertrag** | Arbeitsleistung |
|
||||||
|
| **Mietvertrag** | Überlassung gegen Miete |
|
||||||
|
|
||||||
|
### Arbeitsrecht
|
||||||
|
|
||||||
|
#### Rechte und Pflichten
|
||||||
|
|
||||||
|
**Arbeitnehmer:**
|
||||||
|
- Arbeitsleistung nach Weisung
|
||||||
|
- Sorgfaltspflicht
|
||||||
|
- Treuepflicht
|
||||||
|
|
||||||
|
**Arbeitgeber:**
|
||||||
|
- Vergütungspflicht
|
||||||
|
- Schutzpflicht
|
||||||
|
- Fürsorgepflicht
|
||||||
|
|
||||||
|
#### Kündigung
|
||||||
|
|
||||||
|
- **Ordentliche Kündigung**: Fristgemäß
|
||||||
|
- **Außerordentliche**: Fristlos bei wichtigem Grund
|
||||||
|
- **Betriebsbedingte**: wirtschaftliche Gründe
|
||||||
|
- **Personenbedingte**: persönliche Gründe
|
||||||
|
- **Verhaltensbedingte**: Fehlverhalten
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Marketing
|
||||||
|
|
||||||
|
### Marketing-Instrumente (4P)
|
||||||
|
|
||||||
|
```
|
||||||
|
Produkt (Product)
|
||||||
|
├── Qualität
|
||||||
|
├── Design
|
||||||
|
├── Verpackung
|
||||||
|
└── Marke
|
||||||
|
|
||||||
|
Preis (Price)
|
||||||
|
├── Preispolitik
|
||||||
|
├── Rabatte
|
||||||
|
└── Zahlungsbedingungen
|
||||||
|
|
||||||
|
Standort (Place)
|
||||||
|
├── Vertriebskanäle
|
||||||
|
└── Logistik
|
||||||
|
|
||||||
|
Kommunikation (Promotion)
|
||||||
|
├── Werbung
|
||||||
|
├── PR
|
||||||
|
├── Verkaufsförderung
|
||||||
|
└── Direktmarketing
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Controlling
|
||||||
|
|
||||||
|
### Kennzahlen
|
||||||
|
|
||||||
|
#### Rentabilität
|
||||||
|
|
||||||
|
```
|
||||||
|
Umsatzrentabilität = Gewinn / Umsatz × 100
|
||||||
|
|
||||||
|
Eigenkapitalrentabilität = Gewinn / Eigenkapital × 100
|
||||||
|
|
||||||
|
Gesamtkapitalrentabilität = (Gewinn + Zinsen) / Gesamtkapital × 100
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Liquidität
|
||||||
|
|
||||||
|
```
|
||||||
|
Liquidität 1. Grades = (flüssige Mittel / kurzfr. Verb.) × 100
|
||||||
|
Liquidität 2. Grades = ((flüssige Mittel + Forderungen) / kurzfr. Verb.) × 100
|
||||||
|
Liquidität 3. Grades = (Umlaufvermögen / kurzfr. Verb.) × 100
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Finanzierung
|
||||||
|
|
||||||
|
### Finanzierungsarten
|
||||||
|
|
||||||
|
| Art | Quelle |
|
||||||
|
|-----|--------|
|
||||||
|
| **Innenfinanzierung** | Gewinn, Abschreibungen |
|
||||||
|
| **Außenfinanzierung** | Eigenkapital, Fremdkapital |
|
||||||
|
| **Selbstfinanzierung** | Einbehaltene Gewinne |
|
||||||
|
| **Fremdfinanzierung** | Kredite, Darlehen |
|
||||||
|
|
||||||
|
### Kostenrechnung
|
||||||
|
|
||||||
|
```
|
||||||
|
Kostenarten:
|
||||||
|
├── Materialkosten
|
||||||
|
├── Personalkosten
|
||||||
|
├── Abschreibungen
|
||||||
|
└── Sonstige Kosten
|
||||||
|
|
||||||
|
Kostenstellen:
|
||||||
|
├── Material
|
||||||
|
├── Fertigung
|
||||||
|
├── Verwaltung
|
||||||
|
└── Vertrieb
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Rechtsformen der Unternehmen
|
||||||
|
|
||||||
|
### GmbH (Gesellschaft mit beschränkter Haftung)
|
||||||
|
|
||||||
|
- Mindestkapital: 25.000€
|
||||||
|
- Haftung: Nur Gesellschaftsvermögen
|
||||||
|
- Organe: Geschäftsführer, Gesellschafterversammlung
|
||||||
|
|
||||||
|
### UG (Unternehmergesellschaft)
|
||||||
|
|
||||||
|
- Mindestkapital: 1€
|
||||||
|
- Haftung: Nur Gesellschaftsvermögen
|
||||||
|
- Pflicht: 25% des Gewinns in Rücklage
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Datenschutz (DSGVO)
|
||||||
|
|
||||||
|
### Grundsätze
|
||||||
|
|
||||||
|
- Rechtmäßigkeit
|
||||||
|
- Zweckbindung
|
||||||
|
- Datenminimierung
|
||||||
|
- Richtigkeit
|
||||||
|
- Speicherbegrenzung
|
||||||
|
- Integrität und Vertraulichkeit
|
||||||
|
|
||||||
|
### Betroffenenrechte
|
||||||
|
|
||||||
|
- Auskunft
|
||||||
|
- Berichtigung
|
||||||
|
- Löschung
|
||||||
|
- Datenübertragbarkeit
|
||||||
|
- Widerspruch
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Stand: 2024 | Quelle: KMK Rahmenlehrplan*
|
||||||
Reference in New Issue
Block a user