Relationale Datenbanken
Was ist ein ER-Modell?
Erklärung: Das ER-Modell zeigt Entitäten (Objekte), ihre Attribute und Beziehungen zueinander. Es dient als Entwurfsgrundlage für relationale Datenbanken.
Was ist ein Primärschlüssel?
Erklärung: Der Primärschlüssel (Primary Key) ist ein Attribut (oder eine Kombination), dessen Wert in der Tabelle einzigartig ist, z. B. eine Schüler-ID.
Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.
Erklärung: Richtig. Ein Fremdschlüssel (Foreign Key) stellt eine Beziehung zwischen zwei Tabellen her, indem er auf den Primärschlüssel der referenzierten Tabelle zeigt.
Das Verfahren, Redundanzen in Datenbanken zu vermeiden, heißt ___.
Erklärung: Normalisierung (1NF, 2NF, 3NF) reduziert Datenredundanz und verhindert Anomalien beim Einfügen, Ändern und Löschen von Daten.
Welche Beziehung ist eine 1:n-Beziehung?
Erklärung: Eine Klasse hat viele Schüler, jeder Schüler gehört zu genau einer Klasse: 1:n. Umgesetzt wird das mit einem Fremdschlüssel in der Schüler-Tabelle. Ein Schüler hat genau einen Ausweis (1:1); Schüler und Wahlfächer sind m:n, denn ein Schüler wählt mehrere Fächer und jedes Fach hat viele Schüler.
Welcher SQL-Befehl verbindet zwei Tabellen?
Erklärung: SELECT ... FROM tabelle1 JOIN tabelle2 ON tabelle1.id = tabelle2.fremdschluessel verbindet Daten aus zwei Tabellen über gemeinsame Schlüssel.
schueler hat 3 Zeilen (Anna, Ben, Cem), ausleihe 2 Zeilen (je eine für Anna und Cem). Wie viele Zeilen liefert schueler LEFT JOIN ausleihe ON schueler.id = ausleihe.schueler_id?
Erklärung: LEFT JOIN liefert alle Datensätze der linken Tabelle – auch Ben ohne Ausleihe (seine Ausleihe-Spalten sind NULL): 3 Zeilen. Ein INNER JOIN liefert nur Treffer in beiden Tabellen (2 Zeilen). 6 wäre das Kreuzprodukt ohne ON-Bedingung.
Die erste Normalform (1NF) verlangt, dass jedes Attribut nur atomare (unteilbare) Werte enthält.
Erklärung: Richtig. In 1NF darf ein Attribut keine Listen oder verschachtelten Strukturen enthalten. Jede Zelle enthält genau einen Wert.
Welcher SQL-Befehl gruppiert Ergebnisse und ermöglicht Aggregatfunktionen?
Erklärung: GROUP BY gruppiert Zeilen mit gleichen Werten. Mit Aggregatfunktionen (COUNT, SUM, AVG, MAX, MIN) kann man dann pro Gruppe berechnen.
SELECT COUNT(*) FROM schueler WHERE klasse = '11a' zählt die ___ der Schüler in Klasse 11a.
Erklärung: COUNT(*) zählt alle Zeilen, die die WHERE-Bedingung erfüllen. Hier: Wie viele Schüler sind in der Klasse 11a?
Was ist eine Transaktion in einer Datenbank?
Erklärung: Transaktionen folgen dem ACID-Prinzip: Atomicity (ganz oder gar nicht), Consistency, Isolation, Durability. Z. B. bei einer Überweisung: Abbuchen UND Gutschreiben.
Was ist eine m:n-Beziehung und wie wird sie in einer relationalen Datenbank umgesetzt?
Erklärung: Eine m:n-Beziehung (z. B. Schüler ↔ Kurse) wird durch eine Zwischentabelle aufgelöst, die Fremdschlüssel zu beiden Tabellen enthält.
Mit einer Unterabfrage (Subquery) kann man das Ergebnis einer SELECT-Abfrage in einer anderen verwenden.
Erklärung: Richtig. Subqueries stehen in Klammern: SELECT * FROM schueler WHERE note < (SELECT AVG(note) FROM schueler) — alle Schüler mit Note unter dem Durchschnitt.
Was bewirkt die HAVING-Klausel?
Erklärung: WHERE filtert vor GROUP BY, HAVING filtert danach. Z. B.: GROUP BY klasse HAVING COUNT(*) > 25 — nur Klassen mit mehr als 25 Schülern.
Das Akronym ACID in Datenbanken steht für Atomicity, Consistency, Isolation und ___.
Erklärung: Durability (Dauerhaftigkeit) bedeutet, dass einmal bestätigte (committed) Transaktionen auch bei einem Systemausfall erhalten bleiben.