Zurück zur Artikelliste Artikel
12 Leseminuten

Übliche Fragen im Vorstellungsgespräch für SQL-Entwickler

Wurden Sie schon einmal für eine SQL-Einstiegsposition interviewt? Haben Sie vor, sich für eine solche Stelle zu bewerben? In diesem Artikel erfahren Sie, was Sie erwarten können und wie Sie sich auf die häufigsten Fragen in einem Vorstellungsgespräch für SQL-Entwickler vorbereiten.

Nachdem Sie sich einige Grundkenntnisse in SQL und Programmierung angeeignet haben, fragen Sie sich wahrscheinlich, was Sie als nächstes tun sollen. Vielleicht fragen Sie sich aber auch nicht! Sie wissen, dass das, was Sie gelernt haben, bald verschwinden wird, wenn Sie es nicht regelmäßig anwenden. Und der beste Weg, Ihr Wissen aufrechtzuerhalten und natürlich noch mehr zu lernen, ist, als SQL-Entwickler zu arbeiten. Aber Sie wissen nicht, welche Fragen Sie bei einem Vorstellungsgespräch erwarten können. Sie zögern also, sich um eine Stelle zu bewerben. Aber zu wissen, was man Sie fragen wird, hilft Ihnen nicht viel, oder? Was Sie brauchen, sind die Antworten! Deshalb werde ich Ihnen Fragen für Vorstellungsgespräche mit SQL-Entwicklern auf Einstiegsebene stellen und, was noch wichtiger ist, Antworten auf diese Fragen geben.

Kommen wir nun zu den Fragen und Antworten!

Frage 1: Was ist ein relationales Datenmodell? Erläutern Sie mehrere andere logische Datenmodelle

Relationales Datenmodell

Das relationale Datenmodell ist das am weitesten verbreitete Datenmodell. Es wurde 1969 von Edgar F. Codd eingeführt. Ein relationales Datenmodell basiert auf dem mathematischen Konzept der Relation. Der Zweck von Relationen besteht darin, Datenredundanz zu vermeiden, Datenintegrität zu gewährleisten und den Datenabruf zu beschleunigen.

Im Kontext der Datenbank sieht ein relationales Datenmodell die Datenbank als eine Sammlung von Relationen, wobei eine Relation einfach eine Tabelle ist. Die Tabelle enthält natürlich Werte. Die drei Hauptelemente einer Tabelle sind Spalten, Zeilen und Werte.

Spalten werden auch als Attribute bezeichnet, d. h. sie stehen für bestimmte Eigenschaften, für die Daten gespeichert werden. Es ist wichtig zu beachten, dass Spalten eindeutig sind, d. h. es sind keine Spalten mit demselben Namen in einer Tabelle erlaubt.

Jede Zeile ist ein einzelnes Vorkommen der Attribute. Zeilen werden auch Datensätze genannt.

Die Werte befinden sich an den Kreuzungspunkten der Spalten und Zeilen.

Netzwerkmodell

Ein weiteres gängiges Modell ist das Netzwerkmodell. Es wurde 1969 von Charles Bachman erfunden, um das hierarchische Datenmodell zu verbessern. Ein Netzwerkmodell wird durch einen Graphen dargestellt, der Objekttypen als Knoten und Beziehungstypen als Bögen zeigt.

Hierarchisches Datenmodell

Dieses Modell ähnelt dem Netzwerkmodell, nur dass es durch eine baumartige Struktur anstelle eines Graphen dargestellt wird. Wie beim Netzwerkmodell werden die Objekttypen durch Knoten dargestellt, die Beziehungstypen werden jedoch durch die "Eigentümer-Mitglieder" -Verknüpfung zwischen den Daten dargestellt.

Objekt-Relationale Datenbank

Dieses Modell ist dem relationalen Datenmodell ähnlich und wurde von objektorientierten Programmiersprachen wie Java, C++, Visual Basic, .Net oder C# inspiriert. Bei diesem Modell wird eine Datenbank als eine Sammlung gespeicherter Objekte betrachtet, die aus benutzerdefinierten Datentypen und Methoden zur Verarbeitung der Daten bestehen. Jedes Objekt gehört zu einer bestimmten Klasse. Zwischen jeder Klasse gibt es etablierte Vererbungs- und Aggregationsbeziehungen.

Es gibt natürlich noch viele andere Datenmodelle wie das Dokumentenmodell, das Sternschema, das Korrelationsmodell, die XML-Datenbank usw. Aber Sie müssen diese nicht alle kennen. Das relationale Datenmodell ist das am häufigsten verwendete. Und wenn Sie sich um eine Stelle als SQL-Entwickler beworben haben, werden Sie wahrscheinlich mit einer relationalen Datenbank arbeiten. Wenn Sie diese vier Datenmodelle erklären können, sollte das für ein Vorstellungsgespräch als SQL-Entwickler ausreichen.

Frage 2: Was ist RDBMS?

DBMS steht für "Datenbank-Management-System". Es ist eine Software, die zwischen dem Datenbankbenutzer und der Datenbank selbst steht. Das DBMS arbeitet mit Daten gemäß den Anweisungen des Datenbankbenutzers. Es ermöglicht die Eingabe, Speicherung und den Abruf der Daten. Dieser Logik folgend ist RDBMS ein relationales Datenbankmanagementsystem, ein DBMS, das speziell für den Umgang mit relationalen Datenbanken entwickelt wurde. Entsprechend der Logik der relationalen Datenbank speichert ein RDBMS Daten in Tabellen, die aus Spalten und Zeilen bestehen. Die bekanntesten RDBMS sind Microsoft SQL Server, Oracle Database, MySQL und IBM DB2.

Frage 3: Was ist ein ER-Diagramm und aus welchen Komponenten besteht es?

Als jemand, der in einem Bewerbungsgespräch für einen SQL-Programmierer gut abschneiden möchte, insbesondere als Einsteiger, sollten Sie etwas über das ER-Diagramm wissen. Ein ER-Diagramm ist ein Entity-Relationship-Diagramm, das die Beziehungen zwischen Entitäten in einer Datenbank darstellt. Es ist eines der wichtigsten Werkzeuge, die beim Entwurf einer Datenbank verwendet werden. Jedes ER-Diagramm besteht aus drei Komponenten:

  • Entität
  • Beziehung
  • Attribut

Entität

Die Entität ist im weitesten Sinne definiert als alles, worüber wir Daten sammeln können. Es handelt sich um ein Objekt oder Konzept im Geschäftsprozess, für das Sie Daten speichern möchten. Ein Beispiel: Ein Unternehmen hat Mitarbeiter, diese Mitarbeiter haben eindeutige persönliche Identifikationsnummern (PINs), sie arbeiten in bestimmten Abteilungen und sie stellen bestimmte Produkte her. Dies ist ein Geschäftsprozess, und in diesem Beispiel sind die Mitarbeiter, die Abteilungen und die Produkte Entitäten. Eine Entität besteht aus Attributen. Mehrere Entitäten können Entitätsmengen darstellen. Eine Entitätsmenge ist eine beliebige Anzahl von Entitäten, die aufgrund bestimmter Eigenschaften als ähnlich angesehen werden können.

Beziehung

Beziehungen zeigen, wie eine Entität mit einer anderen Entität oder anderen Entitäten verbunden oder assoziiert ist. In dem obigen Beispiel sind Mitarbeiter und PINs Entitäten. Ein Mitarbeiter kann nur eine PIN haben. Ebenso kann eine PIN nur einem Mitarbeiter zugewiesen werden: eine PIN ist eindeutig. Dies nennt man eine Eins-zu-Eins-Beziehung. Solche Beziehungen sind in Datenbanken eher selten. Wenn eine PIN nur einem Mitarbeiter zugewiesen werden kann und umgekehrt, besteht keine Notwendigkeit, die PIN als separate Entität zu haben. Sie kann das Entitätsattribut der Mitarbeiter sein. Ein weiteres Beispiel sind die Entitäten Mitarbeiter und Abteilungen. Die Beziehung zwischen ihnen besteht darin, dass ein Mitarbeiter nur in einer Abteilung arbeiten kann. In einer Abteilung kann es jedoch einen oder mehrere Mitarbeiter geben. Dies wird als eine Eins-zu-Viel-Beziehung bezeichnet. Die Beziehung zwischen Mitarbeitern und Produkten ist so beschaffen, dass ein Mitarbeiter mehr als ein Produkt herstellen kann. Außerdem kann ein Produkt von mehr als einem Mitarbeiter hergestellt werden. Diese Beziehung wird Many-to-many genannt.

Attribut

Ein Attribut ist eine Eigenschaft einer Entität oder Beziehung, der ein bestimmter Wert zugewiesen werden kann. Ein Satz von Attributen beschreibt eine Entität oder eine Beziehung. Wenn beispielsweise Mitarbeiter eine Entität sind, dann können die Attribute Name, Nachname, Geburtsdatum usw. sein. Attribute für Abteilungen als Entität können Abteilungsname, Abteilungsleiter, Anzahl der Mitarbeiter usw. sein. Produkte als Entität können mit den folgenden Attributen beschrieben werden: ID, Produktname, Produktfarbe, Produktpreis, usw.

Frage 4: Was ist Datenbanknormalisierung? Erklären Sie Normalformen

Normalisierung ist der Prozess der Organisation von Daten in einer relationalen Datenbank, um Datenredundanz zu reduzieren und die Datenintegrität zu erhöhen. Das Ziel ist die Schaffung einer effizienten, zuverlässigen und flexiblen Datenbank. Die Normalisierung wird durch die Einhaltung von Regeln, den so genannten Normalformen, umgesetzt. Eine Datenbank gilt normalerweise als normalisiert, wenn sie die Anforderungen der 3NF erfüllt:

  • Erste Normalform (1NF)
  • Zweite Normalform (2NF)
  • Dritte Normalform (3NF)

Erste Normalform (1NF)

Sie verlangt, dass Attribute (Tabellenspalten) nur atomare und einzelne Werte enthalten dürfen. Der Zweck der 1NF ist es, sicherzustellen, dass es keine Datenmenge gibt, die als ein einziger Wert angezeigt wird.

Zweite Normalform (2NF)

Damit eine Datenbank in 2NF sein kann, muss sie in 1NF sein. Sie muss außerdem sicherstellen, dass alle Attribute nur vom Primärschlüssel einer Tabelle abhängen. Der Primärschlüssel ist ein Attribut oder ein Satz von Attributen, der jede Zeile in einer Tabelle eindeutig definiert. Das bedeutet, dass ein Primärschlüssel nur einer Zeile in einer Tabelle zugeordnet werden kann.

Dritte Normalform (3NF)

Die 3NF setzt natürlich voraus, dass eine Datenbank in 1NF und 2NF vorliegt. Darüber hinaus sind keine transitiven Abhängigkeiten erlaubt, d. h. alle Attribute, die kein Primärschlüssel sind, müssen voneinander unabhängig sein. Es ist nicht zulässig, dass ein Attribut von einem anderen Attribut abhängt, das wiederum von einem Primärschlüssel abhängt.

Auch wenn es noch die Boyce-Codd-Normalform, die vierte Normalform, die fünfte Normalform und einige andere zusätzliche Formen gibt, sollte die Kenntnis der ersten drei Normalformen für ein SQL-Einsteigerinterview ausreichen.

Frage 5: Was sind Attributbeschränkungen?

Eine Attributbeschränkung ist eine Regel, die die Art der Daten einschränkt, die als ein bestimmtes Attribut eingegeben werden können. Sie wird verwendet, um die Integrität der Datenbank zu gewährleisten. Die fünf häufigsten Attributbeschränkungen sind:

  • NOT NULL - verwendet, um sicherzustellen, dass das Attribut keinen NULL-Wert haben kann
  • CHECK - verwendet, wenn der Attributwert eine bestimmte Bedingung erfüllen muss
  • UNIQUE - verwendet, wenn ein bestimmter Attributwert nur einmal eingegeben werden kann
  • PRIMARY KEY - verwendet, um ein Attribut als Primärschlüssel zu bezeichnen, der UNIQUE sein muss und NOT NULL
  • FOREIGN KEY - verwendet, um die Beziehung zwischen den Tabellen darzustellen, d.h. der Attributwert in einer Tabelle wird aus dem Attribut einer anderen Tabelle abgerufen

Frage 6: Was sind die SQL-Subsprachen und Hauptschlüsselwörter?

SQL kann in drei Gruppen oder Subsprachen unterteilt werden:

  • Datendefinitionssprache (DDL)
  • Datenkontrollsprache (DCL)
  • Datenmanipulationssprache (DML)

Datendefinitionssprache (DDL)

Diese Untersprache wird zum Erstellen, Löschen oder Ändern eines bestimmten Datenbankobjekts verwendet. Die drei wichtigsten Schlüsselwörter sind:

  • CREATE - erstellt ein Objekt (z. B. eine Tabelle) in einer Datenbank
  • DROP - löscht ein Objekt in einer Datenbank
  • ALTER - ändert ein bereits vorhandenes Objekt in einer Datenbank

Datenkontrollsprache (DCL)

Die DCL wird für die Autorisierung, die Erstellung von Rollen und die Kontrolle des Zugriffs auf bestimmte Daten in einer Datenbank verwendet. Die beiden wichtigsten Schlüsselwörter sind:

  • GRANT - erlaubt einem bestimmten Datenbankbenutzer, eine Datenbank oder bestimmte Datenbankobjekte zu benutzen
  • REVOKE - widerruft oder verringert die einem bestimmten Datenbankbenutzer erteilte Genehmigung

Datenmanipulationssprache (DML)

Diese SQL-Teilsprache besteht aus Schlüsselwörtern, die zur Manipulation von Daten verwendet werden, d. h. zum Hinzufügen, Ändern oder Entfernen von Daten. Die wichtigsten Schlüsselwörter sind:

  • SELECT - wird verwendet, um Daten abzurufen, und gelegentlich in Verbindung mit anderen Schlüsselwörtern, wie z. B.:
    • FROM - zur Auswahl der Tabelle, aus der die Daten abgerufen werden
    • WHERE - zum Abrufen von Daten, die einen bestimmten Wert enthalten
    • GROUP BY - verwendet, um die abgerufenen Daten nach einem bestimmten Attribut zu gruppieren
    • HAVING - mit GROUP BY verwendet, um die abzurufenden Zeilen zu identifizieren
    • ORDER BY - verwendet, um die abgerufenen Daten nach einem bestimmten Attribut zu sortieren
  • INSERT - zum Einfügen von Zeilen in eine bereits vorhandene Tabelle
  • UPDATE - zum Ändern von Werten einer bereits vorhandenen Zeile
  • MERGE - verwendet, um Daten aus zwei oder mehr Tabellen zusammenzuführen
  • DELETE - zum Löschen bereits vorhandener Zeilen aus einer Tabelle
  • TRUNCATE - zum Löschen aller Daten aus einer Tabelle
  • BEGIN WORK - zum Markieren des Beginns einer Transaktion
  • COMMIT - zum Markieren des Endes einer Transaktion
  • ROLLBACK - verwendet, um alle Änderungen seit der letzten COMMIT zu verwerfen oder ROLLBACK

Bitte beachten Sie, dass laut einiger Dokumentationen TRUNCATE ein DDL-Schlüsselwort und kein DML-Schlüsselwort ist.

Frage 7: Erläutern Sie den Unterschied zwischen TRUNCATE, DELETE, und DROP

Da Sie nun die Antwort auf die vorhergehende Frage kennen, sollte diese Frage einfach sein. Wie Sie bereits gelernt haben, werden mit TRUNCATE alle Daten aus der Tabelle gelöscht. Wenn Sie DELETE verwenden, können Sie einige Zeilen löschen (wenn Sie die WHERE-Klausel verwenden), oder Sie können alle Zeilen löschen, wie bei TRUNCATE. Der Hauptunterschied besteht darin, dass DELETE die Daten zeilenweise löscht, wobei jede gelöschte Zeile von RDBMS protokolliert wird. Wenn Sie versuchen, eine große Datenmenge zu löschen, wäre die Verwendung von DELETE viel langsamer als TRUNCATE, da TRUNCATE nur eine Aktion protokolliert. Es ist auch gut zu wissen, dass TRUNCATE nicht verwendet werden kann, wenn es einen Fremdschlüssel in einer Tabelle gibt. Die Verwendung von TRUNCATE sperrt auch die Tabelle, so dass es nicht ratsam ist, es auf gemeinsam genutzten Tabellen zu verwenden.

Aber was macht DROP? Es löscht sicherlich etwas, aber was? Der Hauptunterschied besteht darin, dass TRUNCATE und DELETE verwendet werden, um Daten aus einer Tabelle zu löschen, aber nicht die Tabelle selbst. Wenn Sie jedoch DROP verwenden, löschen Sie die gesamte Tabelle. Wenn Sie eine Tabelle löschen, sind Ihre Daten natürlich weg. Aber Sie löschen auch die Indizes, Trigger, Beschränkungen und Berechtigungsangaben.

Frage 8: Welche Arten von Joins gibt es in SQL?

Joins in SQL werden verwendet, wenn Sie versuchen, Daten aus zwei oder mehr Tabellen gleichzeitig zu verwenden. Dazu müssen Sie die Tabellen irgendwie miteinander verbinden, was mit den fünf SQL-Join-Typen geschehen kann:

  • Kreuz-Join
  • Innerer Join
  • Linker äußerer Join
  • Rechter äußerer Join
  • Vollständiger äußerer Join

Kreuzverknüpfung

Diese Art von Join bedeutet, dass jede Zeile einer Tabelle mit jeder Zeile einer anderen Tabelle verbunden wird. Er vervielfacht die Zeilen. Wenn Sie mit einer großen Datenmenge arbeiten, ist dies nicht ratsam. Diese Art der Verknüpfung wird auch als kartesisches Produkt bezeichnet. Weitere Einzelheiten zum Cross Join finden Sie in diesem Artikel.

Inner Join

Inner Join ruft Daten ab, bei denen die Datensätze aus der ersten Tabelle gleich den Datensätzen aus der zweiten Tabelle sind, und zwar auf der Grundlage einer festgelegten Bedingung. Es gibt auch einen Artikel, der den Inner Join ausführlicher erklärt und Ihnen bei der Vorbereitung auf Ihr Vorstellungsgespräch helfen kann.

Linker äußerer Join

Bei dieser Art der Verknüpfung werden alle Zeilen aus der ersten (oder linken) Tabelle und die passenden Zeilen aus der zweiten (oder rechten) Tabelle abgerufen. Wenn es in der zweiten Tabelle keine übereinstimmende Zeile gibt, erhalten Sie einen NULL-Wert.

Rechter äußerer Join

Das Prinzip dieser Verknüpfung ist das gleiche wie bei der linken äußeren Verknüpfung. Er gibt alle Zeilen der zweiten (oder rechten) Tabelle und die übereinstimmenden Zeilen der ersten (oder linken) Tabelle zurück. Keine übereinstimmenden Zeilen in der ersten Tabelle führen zu einem NULL-Wert.

Vollständiger äußerer Join

Bei dieser Verknüpfung werden alle Zeilen aus der ersten Tabelle und alle Zeilen aus der zweiten Tabelle abgerufen. Wenn es nicht übereinstimmende Zeilen sowohl in der ersten als auch in der zweiten Tabelle gibt, werden sie als NULL-Wert angezeigt. In diesem Artikel wird alles, was Sie über Outer-Joins wissen müssen, anhand von Beispielen erklärt.

Fühlen Sie sich bereit für die Fragen im SQL Developer Interview?

In diesem Artikel habe ich einige grundlegende Fragen und Antworten behandelt, die in einem SQL-Einsteigerinterview auftauchen könnten. Ich halte diese Fragen für alle, die sich um eine Stelle als SQL-Entwickler bemühen, für unerlässlich. Das heißt natürlich nicht, dass Sie außer diesen acht Fragen und Antworten nichts wissen müssen. Dies soll nur als Leitfaden dienen, Sie können also gerne tiefer in diese Themen eintauchen. Es gibt noch viele andere Fragen, die auftauchen könnten, aber diese acht sollten Ihnen ein Gefühl dafür geben, was Sie erwarten können. Wenn Sie sich nicht sicher sind, ob Sie die oben genannten Konzepte verstehen, sollten Sie ein wenig üben, indem Sie einige Kurse besuchen. Die Plattform LearnSQL.de bietet praktische Kurse zu den Grundlagen von SQL (im Allgemeinen) und der Verknüpfung von Tabellen.

Fanden Sie diesen Artikel hilfreich? Hat er Sie ermutigt, sich auf die Stelle zu bewerben, die Sie vor ein paar Tagen ausgeschrieben sahen? Lassen Sie mich wissen, wie es gelaufen ist und ob Ihnen einige dieser Fragen gestellt wurden. Oder sind Sie vielleicht schon zu mehreren Vorstellungsgesprächen gegangen? Was wurden Sie gefragt? Fanden Sie einige der oben genannten Antworten unzureichend oder zu ausführlich? Lassen Sie es mich im Kommentarbereich wissen! Ich würde mich freuen, von Ihren Erfahrungen zu hören.