Datenbanken 1. Semester
Datenbanken 1. Semester
Datenbanken 1. Semester
-
- 1 / 82
-
Cartes-fiches
Was bedeutet Kardinalität?
Abhängigkeit
Unter Kardinalität (Mengenverhältnis) versteht man die Angabe darüber, wie viele Zeilen aus der Tabelle A einer Zeile aus der Tabelle B zugeordnet sind und umgekehrt
Was bedeutet Atomar?
Ein Spaltenwert ist atomar, wenn er nicht mehr in Teilinformationen zerlegt werden kann, ohne seinen Sinn zu verlieren. Eine Tabelle ist atomar, wenn alle ihre Spaltenwerte atomar sind. Eine Datenbank ist atomar, wenn alle ihre Tabellen atomar sind.
Was bedeutet wiederholungsgruppenfrei?
Eine Tabelle ist dann wiederholungsgruppenfrei, wenn alle ihre Spaltenwerte keine Wiederholungsgruppen enthalten.
Erklären Sie den Begriff Wiederholungsgruppe
Eine Wiederholungsgruppe ist eine Liste von Informationen desselben inhaltlichen Typs in einer Spalte.
Was ist die Nullte Normalform?
Die Nullte Normalform ist dann gegeben, wenn alle Informationen in einer Tabelle vorhanden sind und noch unnormalisiert vorliegen.
Wann ist eine Tabelle in der 1. Normalform?
Eine Tabelle ist dann in der 1. Normalform, wenn sie atomar und wiederholsgruppenfrei ist.
Eine Datenbank ist dann in der 1. Normalform, wenn alle Tabellen in der 1. Normalform sind.
Wann ist eine Tabelle in der 2. Normalform?
Eine Tabelle ist dann in der 2. Normalform, wenn sie den Bedingungen der 1. Normalform entspricht und alle Nichtschlüsselspalten vollfunktional vom Primärschlüssel abhängig sind.
Eine Datenbank ist dann in der 2. Normalform, wenn alle Tabellen in der 2. Normalform sind.
Wann ist eine Tabelle in der 3. Normalform?
Eine Tabelle entspricht der 3. Normalform, wenn sie den Bedingungen der 2. Normalform entspricht und die Werte in den Spalten nicht transitiv sind.
Eine Datenbank ist dann in der 3. Normalform, wenn alle Tabellen der 3. Normalform entsprechen und auch zwischen den Tabellen keine Informationen transitiv ist.
transitiv = Nichtschlüsselspalte lässt sich aus anderen Nichtschlüsselspalten herleiten
(d.h. Information würden eigentlich redundant in Tabelle gehalten werden
Wann ist eine Spalte transitiv?
Eine Nichtschlüsselspalte ist transitiv, wenn sie sich aus anderen Nichtschlüsselspalten herleiten lässt.
Wie lautet der Befehl um eine Datenbank (XYZ) zu löschen?
DROP DATABASE XYZ;
Erstellen Sie in der Datenbank TestDB eine neue Tabelle namens Kunde und befühlen Sie diese:
- Kunden_ID, Primärschlüssel
- Name
- Kontaktperson, Fremdschlüssel
USE DATABASE TestDB;
CREATE TABLE Kunde(
Kunden_ID INT PRIMARY KEY AUTO_INCREMENT
Name VARCHAR(45)
Kontaktperson VARCHAR(45) FOREIGN KEY AUTO_INCREMENT
);
Was versteht man unter einem Schlüssel? Was macht diesen aus?
Ein Schlüssel identifiziert eine Zeile einer Tabelle eindeutig. Er besteht aus einer minimalen Anzahl von Attributen.
Was versteht man unter Redundanz?
- Mehrfach vorhandene Informationen
Was ist der Unterschied zwichen einem ERM und Relationenmodell?
Das ERM verfügt über M:N Beziehungen, welche im Relationenmodell auf Hilfstabellen übersetzt werden.
Was ist ein Relationenmodell?
Ein Abbild von tatsächlich vorhandenen Tabellen in einer Datenbank.
Erstellen Sie ein Script, welches die Tabelle Artikel zu Produkt umbenennt.
ALTER TABLE Artikel RENAME TO Produkt;
Formulieren Sie eine Abfrage, welche alle Kunden ausgibt, die keine E-Mail-Adresse aufweisen. Im Ergebnis werden die Felder KundeID, Name und Vorname erwartet.
SELECT KundeID, Name, Vorname FROM Kunde
WHERE Email IS NULL OR Email = '';
Formulieren Sie eine möglichst kurze Abfrage, welche alle Attribute der drei teuersten Artikel ausgibt.
SELECT * FROM Artikel
ORDER BY Nettopreis DESC
LIMIT 3;
Erstellen Sie eine Abfrage, mit welcher Sie die Preise aller Artikel um 15% senken.
UPDATE Artikel SET Nettopreis = Nettopreis * 0.85;
Vor- und Nachteile eines Hierarchisches Datenbankmodell.
Vorteile
- schneller Lesezugriff / kurze Zugriffszeiten
- einfach zu verstehen
Nachteil:
- langsames Schreiben
- unflexibel, weil man immer über Hierarchie auf den gewünschten Satz kommt
Vor und Nachteile eines objektorientiertes Datenbankmodell?
Vorteile
- effizient für Integration von Daten und Funktionen in jeweiliger Relation
- Performancesteigerung durch Wegfall von aufwendigen Verknüpfungen von Relatione
Nachteile
- Performance von Transaktionen nimmt mit Zunahme von Daten sehr schnell ab
- nur wenige kompatible Schnittstellen (wegen geringer Verbreitung)
Vor- und Nachteil eines Dokumentorientiertes Datenbankmodell?
Vorteile
- komplexe Hierarchien möglich
- freie Datenstrukturen / nicht gebunden
Nachteile
- nicht geeignet bei Speicherung von stark vernetzte Dateien
- nicht immer konsistent
Wie erstellt man eine Tabelle aus einer anderen?
CREATE TABLE verwaltung.strasse LIKE oshop.adresse;
Erstllen Sie eine temporäre Tabelle.
CREATE TEMPORARY TABLE tmp_kunde;
Wie lauter der Befehl um eine Tabelle zu leeren?
TRUNCATE tabellenname;
Befüllen Sie in der Tabelle plz die Felder plz und ortschaft.
INSERT INTO plz (plz, ortschaft)
VALUES ('8626', 'Hellberg'),
('3992', 'Bettmeralp'),
('3255', 'Frauchwil'),
('6353', 'Weggis');
Geben Sie den nachnamen und vornamen der Tabelle kunde aus. Sortieren Sie den Nachname absteigend und aufsteigend Vornamen aufsteigend.
SELECT nachname, vorname FROM kunde
ORDER BY nachname DESC, vorname ASC;
Was ist der unterschied wischen ASC und DESC?
ASC = aufsteigend (Zahlen 1 bis 10 / Buchstaben A bis Z / Datum ältestes bis neustes)
DESC = absteigend (Zahlen 10 bis 1 / Buchstaben Z bis A / Datum neustes bis ältestes)
Wie bestimmen Sie das von der Tabelle bank und der Spalte blz nur drei Ausgaben getätigt werden.
SELECT blz FROM bank
LIMIT 3;
Was bedeutet das Kartesisches Produkt?
Kreuzprodukt - Menge aller geordneten/unterschiedlichen Paare der beiden Mengen, wobei die erste Komponente ein Element der ersten Menge und die zweite Komponente der zweiten Menge ist.
Wie würde ein Cross Join aussehen?
SELECT {*|spaltennamen|ausdruck} FROM tabellenname, tabellenname;
SELECT kunde_id, nachname, vorname, rechnung_adresse_id, adresse_id FROM kunde, adresse;
Wie würde ein INNER JOIN aussehen?
SELECT {*|spaltennamen|ausdruck} FROM tabellennamefk
INNER JOIN tabellennamepk ON tabellennamefk.spaltennamefk = tabellennamepk.spaltennamepk;
SELECT kunde_id, nachname, vorname, rechnung_adresse_id, adresse_id FROM kunde
INNER JOIN adresse ON rechnung_adresse_id = adresse_id;
Was ist ein Right/Left OUTER JOIN?
Ist ein Inner Join, der um die Menge der Zeilen der rechten Tabelle (RIGHT OUTER JOIN) oder der linken Tabelle (LEFT OUTER JOIN) erweitert wird.
Die Tabelle, für die keine passenden PK-/FK-Schlüsselpaare gefunden werden, muss auf der jeweiligen Seite von JOIN mit dem passenden Wort (left/right) stehen
Wie würde ein LEFT OUTER JOIN aussehen?
Beispiel: Alle Mengeneinheiten ausgeben, auch wenn diese keinem Artikel zugeordnet sind
SELECT e.Bezeichnung, COUNT(artikel) AS AnzahlArtikel, SUM(preis) AS SummePreis, AVG(preis) AS AVGPreis
FROM part_einheit e
LEFT JOIN part_stamm s ON s.EinheitID=e.Ident
GROUP BY e.Bezeichnung;
Was sind Bestandteile von SQL?
- DQL = Data Query Language
- DDL = Data Definition Language
- DML = Data Manipulation Language
- DCL = Data Control Language
Nennen Sie die Schritte der Datenbankentwicklung.
- Use Cases
- ERM
- Relationenmodell
Mit welchem Schlüsselwort können Duplikate verhindert werden?
DISTINCT
Was ist ein Subselect?
Eine verschachtelte Unterabfrage