Matura: Softwareentwicklung & Informationssysteme

9.1. SQL und Standards

Was besagt ANSI SQL92 – halten sich die DB-Anbieter daran?

Quelle: SQL-1-DDL (S. 6)

Wie sind die relationalen und die Mengenoperatoren in SQL umgesetzt?

Union

Intersection (Schnittmenge)

Differenz

Join

siehe unten

Quelle: SQL-1-DDL (S. 2-12)

Wie erfolgt die Gruppenverarbeitung in SQL?

Welche Aggregierungsfunktionen gibt es? (Formulieren Sie ein einfaches Beispiel für die Anwendung einer SQL-Funktion bei einer Gruppen-Selektion.)

Befehl Erklärung
COUNT Anzahl von Tupeln, Werten oder verschiedenen Werten
SUM Summe der Werte
AVG Durchschnitt der Werte
MAX Größter Wert
MIN Kleinster Wert
SELECT kunden_nr, COUNT(*) FROM Bestellung GROUP BY kunden_nr;
Kunden_nr   count(*)
---------------------
101         1
103         2
105         1

Quelle: Aggregatefunktionen_Groupby_Having (S. 7, 13)

Was versteht man unter einem Inner-Join, was unter einem Cross/Right/Left/Full-Join?

Cross Join

SELECT *
FROM Mitarbeiter
CROSS JOIN Abteilung;

Join (alte Schreibweise)

SELECT *
FROM Verlag, Postleitzahl
WHERE Verlag.plz = Postleitzahl.plz;

Inner Join

SELECT * FROM Verlag
INNER JOIN Postleitzahl ON (Postleitzahl.plz = Verlag.plz);

Left Join

SELECT *
FROM Mitarbeiter
LEFT JOIN Projekte ON (Mitarbeiter.Nachname = Projekte.Nachname AND Mitarbeiter.Vorname = Projekte.Vorname);

Right Join

SELECT *
FROM Mitarbeiter
RIGHT JOIN Projekte ON (Mitarbeiter.Nachname = Projekte.Nachname AND Mitarbeiter.Vorname = Projekte.Vorname);

Full Join

SELECT *
FROM Mitarbeiter
FULL JOIN Projekte ON (Mitarbeiter.Nachname = Projekte.Nachname AND Mitarbeiter.Vorname = Projekte.Vorname);

Quelle: SQL-5-Joins

Erklären Sie den Begriff „Unterabfrage“(„Subquery)“ anhand eines Beispiels.

SELECT id FROM t1
WHERE id IN (SELECT id FROM t2)`

Welche Möglichkeiten zur Formulierung von Integritätsbedingungen gibt es in SQL (auf Tabellen- und auf Spaltenebene)?

Quelle: SQL-1-DDL (S. 48)

Was versteht man unter “Constraints”?

Mit Constraints werden Bedingungen definiert, die zwingend vom Wert einer Variablen erfüllt werden müssen, damit der Wert ins System übernommen werden kann.

Quelle: https://de.wikipedia.org/wiki/Constraint

Geben Sie ein Beispiel für eine Constraint.

CREATE TABLE produkte (
    produkt_nr integer NOT NULL,
    name text NOT NULL,
    preis numeric NOT NULL CHECK (preis > 0)
);
CREATE TABLE Produkt_Bestellung (
    bestell_nr int,
    produkt_nr int,
    menge int,
    PRIMARY KEY(bestell_nr,produkt_nr),
    FOREIGN KEY (bestell_nr) REFERENCES Bestellung(bestell_nr),
    FOREIGN KEY (produkt_nr) REFERENCES Produkt(produkt_nr)
);

Quelle: SQL-1-DDL (S. 53, 64)

Wie wirken sich Constraints aus?

Wo kann man Constraints festlegen bzw. einsehen (DDL / DML / DCL)

Welche Funktionen bietet SQL an (Beispiele) und wie können diese in Abfragen integriert werden?

SELECT Spaltenname1, AVG(Spaltenname2) 
FROM Tabellenname 
GROUP BY Spaltenname1
SELECT COUNT(Spaltenname) 
FROM Tabellenname
SELECT MAX(Spaltenname) 
FROM Tabellenname
SELECT MIN(Spaltenname)
FROM Tabellenname
SELECT SUM(Spaltenname)
FROM Tabellenname
SELECT UCASE(Spaltenname)
FROM Tabellenname
SELECT LCASE(Spaltenname)
FROM Tabellenname
SELECT MID(Spaltenname, Startposition, Zeichenlänge)
FROM Tabellenname
SELECT LEN(Spaltenname)
FROM Tabellenname
SELECT ROUND(Spaltenname, Dezimalstellen nach dem Komma)
FROM Tabellenname
SELECT NOW() AS SPALTENNAME
FROM Tabellenname
SELECT FORMAT(Spaltenname, Format)
FROM Tabellenname

Welche Beziehungen (Kardinalitäten!) können unmittelbar mit Hilfe von SQL und den Integritätsbedingungen in einem relationalem DBMS umgesetzt werden?

CREATE TABLE Produkt_Bestellung (
    bestell_nr int,
    produkt_nr int,
    menge int,
    PRIMARY KEY(bestell_nr,produkt_nr),
    FOREIGN KEY (bestell_nr) REFERENCES Bestellung(bestell_nr) ON DELETE CASCADE,
    FOREIGN KEY (produkt_nr) REFERENCES Produkt(produkt_nr) ON DELETE RESTRICT
);

Quelle: SQL-1-DDL (S. 62-64, 69)

Bei welchen ist eine Zusatzprogrammierung erforderlich?

???

Was versteht man unter einer Transaktion?