Was bedeutet SQL bzw. NoSQL?
SQL: Structured Query Language
NoSQL: Not only Structured Query Language
(Siehe unten)
Was sind Joins?
In der Programmierung – besonders bei Datenbanken und SQL – sind Joins eine Methode, um Daten aus mehreren Tabellen miteinander zu verknüpfen, basierend auf gemeinsamen Spalten (Schlüsseln).
Anders:
Joins „verbinden“ Tabellen, damit man zusammengehörige Informationen aus mehreren Quellen in einer Abfrage erhält.
📂 Beispiel:
Zwei Tabellen:
Kunden (KundenID, Name)
Bestellungen (BestellID, KundenID, Produkt)
Ein Join kann z. B. alle Bestellungen mit dem Kundennamen anzeigen, indem die gemeinsame Spalte KundenID verwendet wird.
Welche Join Arten gibt es?
Join-Typ
Beschreibung
INNER JOIN
Gibt nur passende Datensätze aus beiden Tabellen zurück
LEFT JOIN
Gibt alle Datensätze aus der linken Tabelle zurück, auch wenn es keine Übereinstimmung in der rechten gibt
RIGHT JOIN
Umgekehrt: Alle aus der rechten Tabelle, auch ohne Treffer links
FULL JOIN
Alle Datensätze aus beiden Tabellen, auch ohne Übereinstimmung
Was ist Python bzw. SQL?
Python ist eine objektorientierte Programmiersprache, die sich besonders gut für Datenverarbeitung, maschinelles Lernen, Webentwicklung und Automatisierung eignet. Sie verfügt über umfangreiche Bibliotheken wie pandas für Datenanalyse oder matplotlib für Visualisierung und wird häufig in der Datenwissenschaft eingesetzt.
SQL (Structured Query Language) ist eine Abfragesprache, mit der strukturierte Daten in relationalen Datenbanken erstellt, verändert und abgefragt werden können. SQL wird genutzt, um Datensätze zu filtern, zu sortieren, zu verknüpfen (Joins) oder zusammenzufassen (z. B. mit GROUP BY und Aggregatfunktionen wie SUM oder AVG).
(Siehe Rückseite)
Erkläre folgende Übersicht!
Die Grafik zeigt eine Übersicht, wie man Datenbanken (DBs) mit Python ansteuern kann – insbesondere über die Python-Bibliotheken SQLAlchemy und Pandas.
Du kannst aus einem Python-Skript heraus Befehle an eine Datenbank schicken, z. B. um Daten abzufragen oder einzufügen.
Linke Seite: Methoden
Diese Seite beschreibt die technischen Befehle, mit denen Python auf eine Datenbank zugreift:
• SQLAlchemy → create_engine
Baut die Verbindung zur Datenbank auf. Beispiel: create_engine("sqlite:///datenbank.db")
• Pandas → read_sql_query, execute
Damit kannst du SQL-Befehle ausführen oder Daten direkt als DataFrame einlesen.
Rechte Seite: Was diese Methoden “verstehen”
Das ist die logische Bedeutung dieser Methoden – also was sie “bewirken”:
1. „Verbinde dich mit dem Datenbankserver“
Das passiert z. B. mit create_engine().
2. „Führe die folgende SQL-Anweisung aus“
Z. B. ein SELECT, INSERT, UPDATE oder DELETE.
3. „Gib mir den Wert für Attribut X aus“
Das ist ein typischer SQL-Query, etwa:
Was macht Cloud-Computing aus?
Cloud Computing ermöglicht es Computing-Ressourcen über das Internet zu mieten.
Dienste wie Amazon Web Services, Google Cloud Platform und Microsoft Azure bieten eine Vielfalt von Diensten an, darunter Datenbankdienste.
Welche Vorteile und Herausforderungen gehen mit den Datenbankdiensten in der Cloud einher?
Vorteile:
-Skalierbarkeit
-Kosteneffizienz
-Verwaltung der Infrastruktur auf den Anbieter
Herausforderungen:
-Sicherheitsbedenken
-Abhängigkeiten
-Latenzprobleme
Was ist Django ORM und wozu ist es geeignet?
Das Django ORM ist das Object-Relational Mapping-System von Django, einem beliebten Web-Framework für Python.
Django's ORM ermöglicht eine einfache Interaktion mit Datenbanken, zudem können Djangos eingebaute Funktionen auch dazu beitragen die Entwicklungsgeschwindigkeit zu erhöhen und die Sicherheit der Anwendung zu gewährleisten.
Vorteile des Django ORM
Kein SQL nötig (aber trotzdem möglich)
Datenbankabstraktion: PostgreSQL, MySQL, SQLite usw. wechselbar
Automatische Migrationen mit makemigrations / migrate
Sichere Standardabfragen (z. B. SQL-Injection-Schutz)
Was ist ein ORM?
Ein Object-Relational Mapper (ORM) übersetzt zwischen Python-Klassen und Datenbanktabellen. Statt SQL manuell zu schreiben, kannst du mit Python-Objekten arbeiten – Django erledigt die Datenbankabfragen im Hintergrund.
Was ist die Aufgabe von Cloud-Datenbankdiensten?
Cloud-Datenbankdiensten stellen die Skalierbarkeit und Verfügbarkeit der zugrunde liegenden Datenbankinfrastruktur sicher und ermöglichen darüber hinaus eine einfache Integration mit anderen Cloud-Diensten, was zu einer verbesserten Effizienz und einer kürzeren Markteinführungszeit führen kann.
Welchen Herausforderungen stehen sich Django und Cloud Datenbankdiensten gegenüber?
Django:
-kommt bei komplexeren oder stark optimierungsbedürftigen SQL-Anfragen an seine Grenzen
–>Je mehr Kontrolle, Effizienz oder SQL-Spezialfeatures du brauchst, desto eher musst du das ORM umgehen – oder zumindest ergänzen.
Cloud-Datenbankdienste:
-erhöhte Abhängigkeit von einem einzigen Anbieter
–>eingeschränkte Flexibilität
-Sicherheitsbedenken ggf. Weitergabe von sensiblen Daten an Dritte
Was sind Integritätsbedingungen im Zusammenhang mit SQL?
Integritätsbedingungen sind Vorgaben, die die Qualität und Zuverlässigkeit von Daten garantieren. Sie verhindern Fehler wie z. B.:
doppelte Einträge,
fehlende Pflichtangaben,
falsche Verknüpfungen zwischen Tabellen.
Sie sorgen dafür, dass:
nur gültige Daten in die Datenbank gelangen
Daten logisch zusammenpassen
Verknüpfungen (z. B. zwischen Kunden und Bestellungen) bestehen bleiben
Integritätsbedingungen = Datenregeln, die verhindern, dass Müll in die Datenbank kommt.
INTEGRITÄTSBEDINGUNGEN
Wichtige SQL-Datentypen!
Was sind Strings?
Strings sind in der Programmierung (und auch in SQL) eine Folge von Zeichen, also Text – zum Beispiel Wörter, Sätze oder auch Zahlen, sofern sie nicht zum Rechnen gedacht sind.
Ein String ist eine Zeichenkette, also eine Reihe von Buchstaben, Zahlen, Symbolen oder Leerzeichen, die zusammen als Text behandelt werden.
• Strings werden in Anführungszeichen geschrieben (meist 'Text')
• Auch Zahlen wie "2025" sind ein String, wenn sie nicht zum Rechnen verwendet werden (z. B. Postleitzahl, Telefonnummer)
String = alles, was du lesen kannst – aber nicht zwingend rechnen musst.
Was versteht man unter dem Prozess der Normalisierung und welche Vorteile ergeben sich daraus?
Normalisierung ist ein Prozess in der Datenbankentwicklung, bei dem Tabellen so gestaltet werden, dass Redundanz (Doppelungen) vermieden und Datenkonsistenz sichergestellt wird.
Anders formuliert: Normalisierung bringt Ordnung in die Datenbank, reduziert Doppelungen und schützt vor logischen Fehlern.
Erläutere kurz die einzelnen Schritte der 3.Normalisierungen!
1. Normalform (1NF) - Atomare Werte sicherstellen
-Alle Tabellenfelder enthalten nur einen Wert pro Zelle – keine Listen, Kommas, mehrfachen Inhalte.
-Ziel: Die Datenbank ist einheitlich und durchsuchbar.
2. Normalform (2NF) – Teilabhängigkeiten auflösen
-Alle Spalten, die nicht vom gesamten Primärschlüssel abhängen (bei zusammengesetzten Schlüsseln), werden ausgelagert.
-Ziel: Vermeidung von Redundanz, wenn Tabellen mehrere Themen mischen.
3. Normalform (3NF) – Transitive Abhängigkeiten entfernen
-Wenn ein Nicht-Schlüsselattribut von einem anderen Nicht-Schlüsselattribut abhängt, wird es ausgelagert.
-Ziel: Klarheit und Eindeutigkeit der Beziehungen – keine indirekten Abhängigkeiten.
(Siehe weit unten)
Beispiel Normalisierung
Was bedeutet Atomarität?
Ein Datenbankwert ist atomar, wenn er nur eine einzige, unteilbare Information enthält.
Atomar = 1 Feld = 1 Wert = 1 Bedeutung
While und for Schleife(Python)
Continue und brake
While Schleife mit brake und Continue
Operatoren
Numpy Array
Vererbung(unbedingt verstehen!) sehr wichtig
Markiert sehr wichtig!
Python Listen Kopie
Zuletzt geändertvor einer Stunde