Ein Objekt wird erzeugt, ohne dass das Programm genau wissen muss, welche Klasse dahintersteckt.
Zum Beispiel: Eine Fabrik baut unterschiedliche Autos, aber der Besteller muss die Bauweise nicht kennen.
Merksatz:
Erzeuge Objekte flexibel – ohne Details zu kennen.
Card 82
Question
Was ist das Observer-Pattern?
Answer
Wenn sich ein Objekt ändert, werden automatisch alle angemeldeten Beobachter benachrichtigt.
Zum Beispiel: In WhatsApp bekommst du sofort eine Nachricht, wenn dir jemand schreibt.
Merksatz:
Änderungen automatisch an alle Abonnenten melden.
Card 83
Question
Was ist das MVC-Pattern?
Answer
Teilt ein Programm in drei klare Bereiche:
Model: Verwalten der Daten (z. B. Nutzerdaten).
View: Anzeigen der Daten (z. B. die Webseite oder App-Oberfläche).
Controller: Steuert, was bei Aktionen passiert (z. B. Button-Klicks).
Merksatz:
Daten, Anzeige und Logik sind sauber getrennt.
Card 84
Question
Was ist Routing?
Answer
Weiterleiten von Datenpaketen über verschiedene Netzwerke hinweg.
Card 85
Question
Was ist Switching?
Answer
Direktes Weiterleiten von Daten im selben Netzwerk (Switch).
Card 86
Question
Was ist ARP (Address Resolution Protocol)?
Answer
Findet die MAC-Adresse zu einer IP-Adresse im lokalen Netzwerk.
Card 87
Question
Was bedeutet Vertraulichkeit?
Answer
Nur berechtigte Personen dürfen auf Daten zugreifen.
Card 88
Question
Liste alle Hersteller auf, die mehr als 50 nicht rezeptpflichtige Arzneimittel haben, sortiert absteigend nach der Anzahl.
Answer
SELECT h.Name AS Hersteller, COUNT(*) AS Anzahl FROM Hersteller AS h JOIN Arzneimittel AS a ON h.HerstellerID = a.HerstellerID WHERE a.rezeptpflichtig = false GROUP BY h.Name HAVING COUNT(*) > 50 ORDER BY Anzahl DESC;
Erklärung:
• JOIN: Verknüpft Hersteller und Arzneimittel über HerstellerID.
• WHERE a.rezeptpflichtig = false: Nur nicht rezeptpflichtige Medikamente zählen.
• GROUP BY h.Name: Gruppiert nach Herstellername.
• HAVING COUNT(*) > 50: Nur Hersteller mit mehr als 50 Medikamenten.
• ORDER BY Anzahl DESC: Absteigende Sortierung (Größter zuerst).
Merksatz:
Immer HAVING verwenden, wenn auf Gruppenergebnisse (z.B. COUNT) gefiltert wird!
Card 89
Question
Rechte der Personen laut DSGVO
Answer
Auskunftsrecht – dürfen erfahren, welche Daten über sie gespeichert sind.
Recht auf Berichtigung – Unrichtige Daten müssen berichtigt werden.
Recht auf Löschung (“Recht auf Vergessenwerden”) – können die Löschung ihrer Daten verlangen.
Recht auf Datenübertragbarkeit – dürfen ihre Daten in einem strukturierten Format erhalten.
Card 90
Question
Nenne je vier Aufgabenstellungen einer Kick-off-Sitzung auf der Sach- und Beziehungsebene.
Answer
Sachebene:
Projektziele und -umfang vorstellen
Zeitplan und Meilensteine abstimmen
Rollen und Verantwortlichkeiten klären
Risiken, Ressourcen und offene Punkte besprechen
Beziehungsebene:
Vertrauen zwischen den Beteiligten aufbauen
Teamgeist und Motivation fördern
Erwartungshaltungen klären
Kommunikationsregeln festlegen
Card 91
Question
Anforderungsanalyse in Informatik
Ziel ?
Arten von Anforderungen ?
Methoden zur Erhebung ?
Dokumente ?
Qualitätskriterien (nach IEEE 830) ?
Verwaltung ?
Answer
Ziel:
Ermittlung und Dokumentation der Anforderungen an ein Softwaresystem – was es leisten soll, nicht wie.
Arten von Anforderungen:
Funktional: Systemverhalten (z. B. Login-Funktion)
Nicht-funktional: Qualitätsmerkmale (z. B. Sicherheit, Performance)
Rahmenbedingungen: Vorgaben (z. B. Budget, Gesetze, Plattformen)
Methoden zur Erhebung:
Interviews
Fragebögen
Beobachtung
Workshops
Prototyping
Use Cases / User Stories
📄 Dokumente:
Lastenheft: Was der Kunde will
Pflichtenheft: Wie der Entwickler es umsetzt
Qualitätskriterien (nach IEEE 830):
Vollständig
Eindeutig
Konsistent
Überprüfbar
Änderbar
Nachverfolgbar
Verständlich
Verwaltung:
Priorisierung
Versionskontrolle
Änderungsmanagement
Card 92
Question
MVC – Model View Controller
Ziel ?
Komponenten ?
Vorteile ?
Beispiel ?
Answer
Ziel:
Architektur zur Trennung von Daten (Model), Darstellung (View) und Steuerung (Controller).
Komponenten:
Model:
Verwaltet Daten und Geschäftslogik
Unabhängig von Benutzeroberfläche
View:
Zeigt Daten an
Reagiert auf Änderungen des Models
Controller:
Verarbeitet Benutzereingaben
Steuert, welche View angezeigt wird und wie das Model reagiert
Vorteile:
Klare Trennung der Verantwortlichkeiten
Bessere Wartbarkeit & Testbarkeit
Ermöglicht parallele Entwicklung (Frontend ↔ Backend)
Beispiel:
Benutzer klickt auf "Speichern" → Controller empfängt Klick → speichert Daten im Model → View wird aktualisiert
Ziel:
Automatische Benachrichtigung von Objekten (Beobachtern), wenn sich der Zustand eines anderen Objekts (Subjekt) ändert.
Ablauf:
Subjekt (Subject) speichert Liste von Beobachtern
Beobachter registrieren sich beim Subjekt
Bei Änderung ruft Subjekt notify() → alle Beobachter werden benachrichtigt
Beobachter reagieren auf die Änderung
Beteiligte Klassen:
Subject (z. B. Wetterstation)
Observer (z. B. Anzeigeelement)
Konkrete Implementierungen von beiden
Beispiel:
Eine Wetterstation (Subject) meldet Temperaturänderungen → Displays (Observer) aktualisieren sich automatisch.
Vorteile:
Lose Kopplung zwischen Subjekt und Beobachtern
Einfache Erweiterbarkeit (neue Observer ohne Änderungen am Subjekt)
Card 94
Question
Objektorientierung (OOP)
Ziel ?
Grundprinzipien ?
Zentrale Begriffe ?
Beispiel ?
Answer
Ziel:
Strukturierung von Programmen durch Objekte, die Daten (Attribute) und Verhalten (Methoden) kapseln.
Grundprinzipien:
Kapselung (Encapsulation):
Daten sind privat
Zugriff nur über Methoden (Getter/Setter)
→ Schutz vor unkontrollierten Zugriffen
Vererbung (Inheritance):
Klassen können Eigenschaften & Methoden von Oberklassen erben
→ Wiederverwendung von Code
Polymorphie (Polymorphism):
Objekte können unterschiedliche Formen annehmen
Methoden können überladen oder überschrieben werden
→ Flexibles Verhalten zur Laufzeit
Abstraktion (Abstraction):
Reduktion auf das Wesentliche
Komplexität verbergen durch Schnittstellen/abstrakte Klassen
Zentrale Begriffe:
Klasse: Bauplan für Objekte
Objekt: Instanz einer Klasse
Attribut: Eigenschaft eines Objekts
Methode: Verhalten eines Objekts
Konstruktor: Methode zur Initialisierung
Beispiel:
Klasse Auto mit Attributen Farbe, Leistung und Methode fahre()
Card 95
Question
Normalisierung in relationalen Datenbanken
Answer
📶 Normalformen:
1. Normalform (1NF):
Nur atomare Werte (keine Listen/Feldgruppen)
Jede Zelle enthält nur einen Wert
2. Normalform (2NF):
1NF erfüllt
Alle Nicht-Schlüsselattribute hängen voll funktional vom Primärschlüssel ab
→ Teilschlüsselabhängigkeiten vermeiden
3. Normalform (3NF):
2NF erfüllt
Keine transitiven Abhängigkeiten (Nicht-Schlüsselattribut → Nicht-Schlüsselattribut)
📘 Beispiel (vereinfachte Sicht):
KundeNr
KundeName
PLZ
Ort
BestellungNr
→ Nach 3NF aufgeteilt in:
Tabelle Kunde:KundeNr, KundeName, PLZ
Tabelle Ort:PLZ, Ort
Tabelle Bestellung:BestellungNr, KundeNr
Card 96
Question
Polymorphie anhand des Entwurfsmusters
Answer
Im Zustand-Entwurfsmuster wird Polymorphie genutzt, da das Ladegerät eine gemeinsame Oberklasse Zustand verwendet, aber zur Laufzeit mit konkreten Unterklassen (NichtLadend, NormalLadend, SchnellLadend) arbeitet.
Durch die Variable zustand vom Typ Zustand kann das Ladegerät dynamisch zwischen verschiedenen Zustandsobjekten wechseln. Die Methode zustand.bearbeiten(this) ruft je nach aktuellem Objekt automatisch die überschriebene Methode der konkreten Klasse auf – das ist Polymorphie in Aktion.
Was versteht man unter Data Binding und wie unterscheidet es sich vom Observer-Muster?
Answer
Data Binding ist die automatische Verknüpfung von Daten (z. B. aus einem Modell) mit einem UI-Element (View). Änderungen am Modell wirken sich direkt auf die View aus – ohne zusätzlichen Code.
Im Gegensatz zum Observer-Muster, bei dem Views manuell über notify-Mechanismen aktualisiert werden müssen, geschieht dies beim Data Binding automatisch.
Card 99
Question
Was bedeutet die Fehlermeldung
Cannot delete or update a parent row: a foreign key constraint fails
und wodurch wird sie verursacht?
Answer
Die Fehlermeldung bedeutet, dass ein Datensatz nicht gelöscht oder geändert werden kann, weil ein anderer Datensatz über einen Fremdschlüssel davon abhängt.
Solange eine Verbindung besteht, verhindert die Datenbank aus Gründen der Datenintegrität die Änderung oder Löschung.
Card 100
Question
Was kann man tun, wenn beim Löschen eines Datensatzes ein foreign key constraint fails-Fehler auftritt?
Answer
Es gibt drei Möglichkeiten:
Abhängige Daten vorher löschen.
Fremdschlüsselwerte ändern oder auf NULL setzen, sofern erlaubt.
„ON DELETE CASCADE“ verwenden, damit abhängige Daten beim Löschen automatisch mitgelöscht werden (vorsichtig verwenden!).
How to use this set
Read the preview and check whether the content and answers suit your learning goal. You can add the public set to your sets to study it. Your account shows the available actions.