1/86
Vokabel-Lernkarten basierend auf der Vorlesung zu Datenbanken, SQL, Programmiergrundlagen und Software-Engineering-Modellen.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Warum ist Excel keine Datenbank
Excel ist nicht mehrbenutzerfähig, trennt Daten und Anwendung nicht strikt und vermeidet Redundanzen nicht automatisch.
Anforderungen an eine Datenbank
Mehrbenutzer-Fähigkeit, Strukturierung, kontrollierte Redundanz, Datenunabhängigkeit, Datenintegrität und zeitliche Permanenz.
Was ist ein Tupel
Eine einzelne Zeile in einer Tabelle, die als Datensatz inhaltlich zusammengehörige Informationen fasst.
Was ist ein Attribut in einer Datenbank
Eine Spaltenüberschrift der Tabelle, der ein spezifischer Datentyp zugeordnet ist und die eine Eigenschaft beschreibt.
Welche Datenbankmodelle gibt es
Wichtige Modelle sind relationale, hierarchische, netzwerkartige, objektorientierte und NoSQL-Datenbankmodelle.
Was kennzeichnet ein relationales Datenmodell
Strukturierung der Daten in Tabellen (Relationen), die über Primär- sowie Fremdschlüssel verknüpft sind.
Wozu dient ein Primärschlüssel
Dient der absolut eindeutigen Identifikation eines einzelnen Datensatzes (Tupel) innerhalb einer Tabelle.
Welche Anforderung gilt immer an einen Primärschlüssel
Ein Primärschlüssel darf sich während seiner gesamten Lebenszeit nach Möglichkeit niemals ändern.
Ziel der Normalisierung
Die konsequente Vermeidung von Redundanzen und Verhinderung von Inkonsistenzen bei Datenänderungen.
Was ist ein Fremdschlüssel
Ein Attribut in einer Tabelle, das auf den Primärschlüssel einer anderen Tabelle referenziert, um Beziehungen abzubilden.
Wie werden m:n-Beziehungen abgebildet
Durch eine zusätzliche Verbindungstabelle, welche die Fremdschlüssel beider beteiligter Tabellen enthält.
Was ist eine Transaktion in Datenbanken
Eine unteilbare Folge von Operationen, die eine Datenbank von einem konsistenten in einen neuen konsistenten Zustand überführt.
Wie lauten die Transaktionsschritte
Start der Transaktion durch „Begin“
Bestätigung durch „Commit“
Abbruch und Rückruf durch „Rollback“

ACID-Prinzip
Atomicity (Atomarität), Consistency (Konsistenz), Isolation (Isolation) und Durability (Dauerhaftigkeit).
Wo ist das ACID Prinzip besonders wichtig
Gleichzeitige Platzreservierung für Züge aus vielen Ticketschaltern
Statistische Datenbankoperationen
Überschneidende Konto-Operationen einer Bank
Was hat Rollback mit ACID zu tun
Änderungen müssen nicht durch das Programm Rückgängig gemacht werden, der Konsistente Zustand wird automatisch wieder hergestellt
CAP-Theorem
Consistency (Konsistenz), Availability (Verfügbarkeit) und Partition Tolerance (Ausfalltoleranz).
CAP-Theorem für NoSQL
In verteilten Systemen können immer nur maximal zwei der drei Eigenschaften (Konsistenz, Verfügbarkeit, Ausfalltoleranz) garantiert werden.
Was bedeutet Fragmentierung
Die logische Aufteilung von Daten in kleinere Einheiten, entweder vertikal (Spalten) oder horizontal (Zeilen) in verteilten Datenbanken.

Was ist eine Allokation
Die physische Verteilung und Zuweisung von Datenfragmenten an verschiedene Speicherknoten oder Standorte.

Anforderungen an Verteilte DBS
Lokale Autonomie
Lokale Daten werden unabhängig von anderen Standorten verwaltet
Unabhängigkeit von zentralen Systemfunktionen
Hohe Verfügbarkeit
Systemfehler dürfen nur Teile des Systems lahmlegen
Physischer Standort der Daten sollte für Nutzer verborgen bleiben
Verteilte Anfrageverarbeitung
Anfragen müssen Zugriff auf mehrere Standorte gleichzeitig haben
Verteilte Transaktionsverarbeitung
Transaktionseigenschaften müssen an allen Standorten eingehalten werden
Definition von Big Data
Mit "Big Data" werden große Mengen an Daten bezeichnet, die u.a. aus Bereichen wie Internet und Mobilfunk, Finanzindustrie, Energiewirtschaft, Gesundheitswesen und Verkehr und aus Quellen wie intelligenten Agenten, sozialen Medien, Kredit- und Kundenkarten, Smart-Metering-Systemen, Assistenzgeräten, Überwachungskameras sowie Flug- und Fahrzeugen stammen und die mit speziellen Lösungen gespeichert, verarbeitet und ausgewertet werden.
Mögliche Big Data Quellen
Text (Fließtext, Textsammlung)
Grafik (Stadtplan, Landkarte, 3D Grafik)
Bild (Foto, Satellitenbild, Röntgenbild)
Audio (Sprache, Musik, Geräusche)
Video (Film, Animation Telekonferenz)

Die 5 Vs von Big Data
Volume (Menge), Velocity (Geschwindigkeit), Variety (Vielfalt), Veracity (Wahrhaftigkeit) und Value (Wert).
Big Data vs. Relationale Datenbanken
Relationale Systeme sind zu starr für unstrukturierte Daten und lassen sich nicht einfach und kosteneffizient horizontal skalieren.
Warum eignet sich NoSQL für Big Data
Das Datenbankmodell ist nicht relational
Mindestens 3 V‘s werden erfüllt: Volume, Velocity, Variety
Unterliegt keinem fixen Datenbankschema
Unterstützt Datenreplikation
Konsistenz zumindest verzögert gewährleistet
Vor- und Nachteile von No SQL
Vorteile:
Best Practices
Vielfalt an Produkten
Flexible Datenmodelle
Hohe Performance & Fehlerresistenz
Nachteile:
Fehlende Standards / Sprachen
Einsetzbarkeit häufig unklar
Fehlende Verfügbarkeit von Experten
Mangelhafte Dokumentation

Was ist Polyglotte Persistenz
bezeichnet den Einsatz verschiedener Datenbanken für verschiedene Anforderungen
Bsp. für Polygotte Persistenz
Einkaufskorb = Key/Value Datenbank
Bestelldienst = Document Store
Kunden- & Konten Mgt = Relationelle Datenbank
Business Analytics = InMemory Datenbank
Social Media = Graphdatenbank

Was versteht man unter Datenmodellierung
Ein Datenmodell ist ein Abbild des jeweiligen Weltausschnitts, das mit den Mitteln und gemäß den Regeln des jeweiligen datenbanktheoretischen Ansatzes realisiert wurde und das mit Hilfe eines Datenbanksystems in eine Datenbank umgesetzt wird
Zusammenhang ERM und relationale Datenbank
Das ERM wird durch feste Transformationsregeln in Tabellen und Relationen der Datenbank überführt.
Entity-Relationship-Modell (ERM)
In der betrieblichen Datenverarbeitung häufig (bes. zur konzeptionellen Datenmodellierung; konzeptionelles Datenmodell) angewendetes Modell zur formalisierten Darstellung der Datensicht auf einen Ausschnitt der realen Welt. Konstruktionselemente sind das Objekt (Entity) und die Beziehung (Relationship) ... Wesentlicher Vorteil des Entity-Relationship-Modells ist die Möglichkeit der grafischen Darstellung von Sachverhalten: In einem Entity- Relationship-Diagramm werden Objekte durch Rechtecke und Beziehungen durch Rauten repräsentiert.
Grafische Grundelemente eines ERM
Rechtecke für Entitäten, Ellipsen für Attribute und Rauten für Relationen.
Was sind Attribute und -ausprägungen
Attribute: Identifizieren und beschreiben die zu erfassenden Objekte
Attributsausprägungen: konkreter Wert eines Attributs (Bsp.: Silber, Mayer, 600)
Relationstyp vs. Relation
Der Relationstyp verknüpft 2 oder mehr Entitäten (Raute).
Die Relation ist die konkrete Verknüpfung zwischen Entitäten, Attributen und Relationstypen.
Was geben Kardinalitäten an
Das exakte Mengenverhältnis, mit dem Entitäten an einer Beziehung beteiligt sein können (z.B. 1:1, 1:n, m:n).
Funktion eines identifizierendes Attributes
Macht eine Entität absolut eindeutig und wird in Diagrammen als Primärschlüssel unterstrichen.
Was ist Generalisierung
Das Zusammenfassen gleichartiger Subtypen zu einem allgemeineren Supertyp mit allen gemeinsamen Attributen.
Was ist Spezialisierung
Die Unterteilung eines bestehenden Supertyps in spezifischere Subtypen zur feineren Unterscheidung.
Wichtige Datentypen
INTEGER → ganze Zahl
NUMERIC(n,m) → Festkommazahl mit n Stellen, davon m Nachkommastellen
VARCHAR(n) → Zeichenkette (Buchstaben und Zahlen) mit variabler Länger aber maximal n Zeichen
DECIMAL(p,s) → Gesamtanzahl der Ziffern = Präzision, s Nachkommastellen
DATE → Datum ohne Zeitangabe
TIME → Zeitangabe
BOOLEAN → boolesche Variable (kann die Werte true oder false annehmen)
Warum nutzt man Datentypumwandlung (CAST)
Inkompatible Datentypen vergleichen
Rechenoperationen ermöglichen
Datenformate vereinheitlichen
Fehler bei Abfragen vermeiden
Wann nutzt man Datentypumwandlung (CAST)
Datumsberechnung (Date)
Rechnen mit Zahlen (Int)
Finanzdaten (Decimal)
Textausgabe (Varchar)
Logische Abfragen (Boolean)

Datenmanipulation durch Data Manipulation Language
umfasst Befehle zum Abfragen und Ändern von Daten (SELECT, INSERT, UPDATE, DELETE).
SQL Datentypen
Wichtige Typen sind INTEGER (Ganzzahl), NUMERIC (Festkomma), VARCHAR (Zeichenkette), DATE (Datum) und BOOLEAN (Wahrheitswert).
Select und *
Auswahl von Attributen aus einem Datensatz; mit * wird die gesamte Tabelle ausgewählt
From
Gibt an, Aus welcher Tabelle die Daten ausgelesen werden sollen (Bsp.: FROM Studentenverwaltung)
Where
Filtert Datensätze (Zeilen) nach einer bestimmten Bedingung
INSERT INTO „Tabellenname“ (Spalte 1, Spalte 2; …) & Value
Befehl zum Einfügen neuer Datensätze in die Datenbank.
&
Fügt die konkreten Werte in die Tabelle ein
UPDATE „Tabellenname“ & SET „Spalte“ = Wert [Where „Bedingung“]
Befehl zum Verändern bestehender Datensätze
&
Bestimmt die Spalte und den neuen Wert, der dort eingetragen werden soll
DELETE FROM
Befehl zum gezielten Löschen von Datensätzen (ganze Zeile) unter Verwendung einer WHERE-Bedingung
Ohne Bedingung → alle Datensätze löschen
CAST
Wandelt einen Datentypen in einen anderen um z. B. Text → Zahl
TRIM
Entfernt Leerzeichen vor und nach einem Text
Count
(Select Count (*)
From „Tabelle“
[Where „Bedingung“])
Zählt die Anzahl an Datensätzen, die die Filterbedingung erfüllen (liefert nur eine Zahl)
COALESCE
Gibt den ersten nicht NULL-Wert aus einer Liste zurück
LIKE Aussagentyp für WHERE-Klausel
Wird für Mustersuchen verwendet,
„_“ ersetzt eine unbekannte Stelle/Zeichen
„%“ beliebige Zahl unbekannter Stellen
Können beliebig oft verwendet werden
z.B. WHERE Nachname LIKE 'B%' für Nachnamen, die mit B beginnen.
ORDER BY Erweiterung ASC & DESC
Klausel zum Sortieren von Datensätzen in einer SQL-Abfrage. Entweder Aufsteigend oder Absteigend
SELECT Erweiterung DISTINCT
Schlüsselwort zur Verhinderung der Mehrfachausgabe identischer Datensätze → liefert nur unterschiedliche
LIMIT
Beschränkt die Anzahl ausgegebener Zeilen
GROUP BY
Fasst Zeilen mit gleichen Werten in ausgewählten Spalten zusammen, um Aggregatfunktionen darauf anzuwenden.
HAVING
Filtert die durch GROUP BY gebildeten Gruppen nach Aggregation (Count, Sum)
Bsp.:
GROUP BY customer_id
HAVING SUM (order_amount) > 400
COUNT(*)
Aggregatfunktion zur Ermittlung der genauen Anzahl der Zeilen, die einem Suchkriterium entsprechen → Zählt Anzahl der Datensätze
Boolsche Operatoren
AND (und)
OR (oder)
NOT (nicht)
XOR (entweder oder)
Operatoren
BETWEEN (prüft ob ein Wert innerhalb eines Bereiches liegt)
IS NULL / IS NOT NULL (prüft, ob ein Feld keinen oder einen Wert hat)
Verbinden von Tabellen (Joins)
Nennung beider Tabellen in der FROM-Klausel und Gleichsetzen von Primär- und Fremdschlüssel in der WHERE-Klausel.
Was ist PL/SQL
Eine proprietäre Programmiersprache von Oracle, die SQL um prozedurale Konstrukte wie Schleifen und Verzweigungen erweitert.
Struktur eines PL/SQL-Blocks
Besteht aus DECLARE (Deklaration: Definition von Variablen und Konstanten)
BEGIN (Ausführung: Eigentliches Programm)
EXCEPTION (Fehlerbehandlung)
END; (Abschluss).
Schleifenarten in PL/SQL
LOOP Schleife
WHILE Schleife
FOR Schleife
REVERSE-FOR Schleife
CURSOR-FOR Schleife
Elementare Datentypen in C++
int (Ganze Zahlen), float/double (Gleitkomma), bool (Wahrheitswerte), char (Zeichen) und string (Zeichenkette).
Deklaration vs. Initialisierung in C++
Die Deklaration legt Name und Datentyp fest; die Initialisierung weist der Variablen ihren ersten Wert zu.
Schleifenarten in C++
For
While
Do-While
Was sind Kopfgesteuerte und Fußgesteuerte Schleifen in C++
Kopfgesteuerte Schleifen werden nur durchlaufen, wenn Anfangsbedingung erfüllt ist.
Fußgesteuerte Schleifen führen die Schleife einmal aus und überprüfen danach erst die Bedingung
Wozu dienen Datenstrukturen
Daten strukturiert zu speichern und gezielt auf diese zuzugreifen (Bsp.: Arrays, Vektoren, Klassen)
Array vs. Vektor in C++
Ein Array hat eine unveränderliche feste Größe; ein Vektor kann hingegen dynamisch wachsen.
Vector Befehle
push_back()
pop_back()
size()
begin() / end()
Funktionen in C++
Codeabschnitt, der nur ausgeführt wird, wenn er explizit aufgerufen wird. (Spart Code und Dopplungen → muss nur einmal geschrieben werden)
Bei Void keine Ausgabe; bei int, char,…: Ausgabe über return
Objektorientiertes Paradigma
Programmieransatz, der zusammengehörige Daten (Attribute) und Operationen (Methoden) in Objekten kapselt.
Klasse
Ein benutzerdefinierter Datentyp, der als Schablone oder Bauplan für die Erzeugung konkreter Objekte dient.
Objekt
Eine konkrete, zur Laufzeit existierende Instanz, die nach dem Bauplan einer Klasse erzeugt wurde.
Wissenstreppe nach North
Hierarchie der Wertschöpfung: Zeichen -> Daten -> Information -> Wissen -> Handeln -> Kompetenz -> Wettbewerbsfähigkeit.
KDD vs. Data Mining
KDD ist der vollständige Prozess der Wissensentdeckung; Data Mining ist der Teilschritt der Mustererkennung.
Wasserfallmodell
Entwicklungsmodell mit streng sequenziellen Phasen, bei dem jede Phase erst nach Abschluss der vorherigen beginnt.
V-Modell
Verbindet konstruktive Entwurfsphasen auf der linken Seite direkt mit überprüfenden Testphasen auf der rechten Seite.
Statische vs. Dynamische Tests
Statische Tests prüfen Code ohne Ausführung (z.B. Reviews); dynamische Tests führen die Software real aus.
Funktionale vs. Nicht-funktionale Anforderungen
Funktionale beschreiben WAS das System tun soll; nicht-funktionale beschreiben WIE qualitativ (z.B. Performance) es arbeiten soll.
Vision (Scrum)
Vom Product Owner vorgegebene Ziele, die die Priorisierung der Aufgaben erleichtern.
Bestandteile eines Sprints
Sprint Planning, Daily Scrums, Entwicklungsarbeit und das fertige Produkt-Inkrement.
Relativität von Hardware und Software
Trotz Softwarefokus ist Hardware oft kaufentscheidend und in absoluten Zahlen häufig profitabler als reine Software.