Info sql?

1 Antwort

Wo kommst du denn konkret nicht weiter?

Im Prinzip müsstest du folgendes können:

1.) Überführung des ER-Diagramms in Tabellen (offenbar auch optimiert, also musst du wohl auch normalisieren oder so?).

2.) SQL-Queries erstellen, um Informationen aus den tabellen abzurufen.

Zu 1.):

Du erstellst für jedes Entity deines ER-Diagramms eine Tabelle mit den Attributen des Entities als Spalten. Du erstellst für jede Relation deines ER-Diagramms eine Tabelle mit den Schlüsseln der Beteiligten Entities als Spalten.

Das wäre erst einmal die einfachste Form der Umsetzung. Das ganze soll dann evtl. noch optimiert werden, wie genau, das muss dir der Aufgabensteller sagen.

Zudem musst du evtl. noch Restriktionen einführen, beispielsweise Attribute oder Zusammengesetzte Attribute unique machen.

Zu 2.)

Ein (einfacher) SQL-Query ist folgendermaßen aufgebaut:

SELECT <spaltennamen> FROM <tabellenname> WHERE <bedingung auf zeilen> ORDER BY <sortierung>

Das wird folgendermaßen ausgeführt:

1.) Tabelle <tabellenname> wird geladen.

2.) Es werden gemäß <bedingung auf zeilen> nur die Zeilen behalten, die die Bedingung erfüllen.

3.) Es wird nach <sortierung> sortiert

4.) Es werden nur die Spalten aus <spaltennamen> behalten.

Ein komplizierterer SQL-Query wäre folgendermaßen aufgebaut:

Ein (einfacher) SQL-Query ist folgendermaßen aufgebaut:

SELECT <spaltennamen> FROM <tabellenname> WHERE <bedingung auf zeilen> GROUP BY <spaltenname_gruppierung> HAVING <bedingung auf gruppierten zeilen> ORDER BY <sortierung>

Das wird folgendermaßen ausgeführt:

1.) Tabelle <tabellenname> wird geladen.

2.) Es werden gemäß <bedingung auf zeilen> nur die Zeilen behalten, die die Bedingung erfüllen.

3.) Es wird gemäß <spaltenname_gruppierung> gruppiert, sodass Elemente mit dem gleichem Wert in der Spalte zu einer zusammengefasst werden. (Wie genau ist evtl. implementierungsabhängig)

4.) Die gruppierten Zeilen werden gemäß <bedingung auf gruppierten zeilen> gefiltert. Hier können auch besondere akkumulierende Funktionen wie MAX, MIN, AVG, SUM, ... verwendet werden, die entsprechend auf den zusammengruppierten Zeilen angewendet werden um das Ergebnis in der gruppierten Zeile zu erhalten.

5.) Es wird nach <sortierung> sortiert

6.) Es werden nur die Spalten aus <spaltennamen> behalten.

Zudem kann man statt <tabellenname> auch dynamisch generierte Tabellen einfügen, also entweder solche, die durch ein Query erzeugt wurden oder solche, die mit anderen Befehlen (wie zum Beispiel JOIN) erzeugt wurden.