DB

Datenbanken

Datenbanken


T. G.
Diese Lernkarten behandeln fortgeschrittene SQL-Konzepte für Universitätsstudenten in der Informatik. Sie decken Themen wie Tabellen, Relationen, Integrität, SQL-Befehle und Optimierung ab, mit Fokus auf Klauseln, Indizes und Performance-Tuning. Nutzer lernen, effiziente Abfragen zu schreiben und Datenbanken zu optimieren, was für Datenbankadministratoren und Entwickler besonders nützlich ist.
Cartes-fiches
152
Utilisateurs
5
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
15.02.2015 / 05.03.2016

Cartes-fiches

Was besagt die semantische Integrität ? 

Eine Menge von Relationen besitzt semantische Integrität ,wenn die Korrektheit von Nutzereingaben gewährleistet ist. 

Ein Attributwert eines PK-Attributes enthält einen NULL-Wert , welche Integritätsbedingung ist verletzt? 

Der FK einer Relation enthält den Wert "7" , dieser Wert kommt nicht im zugehörigen PK der Master-Entity vor , 
welche Integritätsbedingung ist verletzt? 

Ein Nutzer kann in einem Attribut "Geschlecht" den Attributwert "Hallo" hinzufügen , 
welche Integritätsbedingung ist verletzt? 

Wann ist eine Relation in erster NF ? 

Wenn keine Mengenwertigen Attributwerte mehr vorhanden sind. 

Beispiel : Eine Relation "Buch" enthält das Attribut "Autor" , dort sind bei einem Buch 2 Autoren eingetragen. 
=> in 1.NF müsste hier ein neues Tupel eingeführt werden , dass nur jeweils einen Autor enthält . 

Wann ist eine Relation in 2. NF ? 

Wenn Sie in 1.NF ist und alle Nichtschlüsselattribute voll funktional abhängig vom PK sind. 
=> die 2. NF beseitigt partielle funktionale Abhängigkeiten durch Auflösen einer Relation in mehrere , in denen 
dann jedes Nichtschlüsselatrribut voll funktional abhängig vom PK ist. 
!! Eine Relation mit nur einem PK Attribut ist automatisch auch in 2.NF , wenn sie in 1.NF ist , 
da es keine partiellen Abhängigkeiten geben kann !!  

Eine Relation sei in 1.NF und habe folgende funktionale Abhängigkeiten : 
Ang_NR --> Name , Ort , AbtNR , AbtName 
Teile_NR --> Bezeichnung 
PK : Ang_NR , Teile_NR 

Welche  Relationen entstehen bei der Überführung in 2. NF ? 

Die aufgezeigten funktionalen Abhängigkeiten sind beide partiell (teilweise vom PK abhängig ) , daher 
sind dies auch die entstehenden Tabellen . 
Jedoch muss bei der Überführung in 2.NF die Verlustfreiheit gewährleistet sein , daher darf man auch die Tabelle mit der Zentralen Information ( Welcher Angestellte stellt welches Teil her ) nicht vergessen . 

Daher entstehen folgende Tabellen :
1)Ang_NR(PK) ,   Name , Ort , AbtNR , AbtName  
2)Teile_NR(PK) ,  Bezeichnung 
3)Ang_NR(PK), Teile_NR(PK)  

 

Wann ist die Zerlegung einer Relation ( bei NF-Bildung ) verlustfrei ? Wann abhägngkeitstreu ? 

Verlustfrei : Wenn sich alle Tupel der Ursprünglichen Tabelle durch einen Join der abgeleiteten Tabellen wiederherstellen lassen . 

Abhängigkeitstreu : Wenn jede funktionale Abhängigkeit in einer der resultierenden Tabellen enthalten bleibt. 

Welche Aussagen sind wahr zur Überführung eines ER-modells in ein relationales Datenbankschema? 

Thema : Übersetzen eines EERM in ein Relationales Datenbankschema , 
Was passiert bei sog. "virtueller Fragmentierung " ? 

Das EERM umfasst Systeme von Super;- und Subtypen. 
Bei der Übersetzung in ein relationales Datenbankschema werden zunächst alle Subtypen im Supertyp zusammengefasst. Tut man dies mithilfe von virtueller Fragmentierung , 
so wird der neuen Tabelle eine sog. "diskrimminierende Spalte" hinzugefügt, also ein Attribut, dass die Namen der Subtypen als Werte haben kann . 

Beispiel : 
EERM :
Supertyp :Person     , Subtypen : Kunde , Angestellter 

=> Neue Relation mit virtueller Fragmentierung : 
Person + Spalte "Typ"  , Typ kann dann "kunde" oder "Angestellter" als Attributwert haben . 

Thema : Übersetzung eines EERM in ein relationales Datenbankschema , 
Was passiert bei "vertikaler Fragmentierung" ? 

Vertikale Fragmentierung ist eine Technik zur Übersetzung eines Super;- Subtyp-Systems in ein relationales Datenbankschema. 
Dabei wird das System möglichst wie im ERM auf neue Relationen aufgeteilt , die mittels FK's mit dem Supertyp verknüpft werden . 

Beispiel : 
Supertyp : Personen 
Substypen : Angestellte , Kunden , Lieferanten 

==> Übersetzte Relationen : 
Personen (so wie im EERM ) 
Angestellte (mit FK aus Personen ) 
Kunden (mit FK aus Personen ) 
Lieferanten (mit FK aus Personen ) 

Thema : Übersetzung eines EERM in ein relationales Datenbankschema , 
Was passiert bei "horizontaler Fragmentierung" ? 

Bei horizontaler Fragmentierung werden sie Subtypen wie bei vertikaler Fragmentierung als Relationen ins relationale Datenbankschema übernommen , allerdings wird der Supertyp komplett ausgelassen , daher auch keine FK Beziehung aufgebaut . Diese Technik hat den Nachteil , das man nicht mehr unmittelbar ablesen kann , ob es Tupel gibt, die in mehreren Subtypen auftauchen . 

Wozu nutzt man "Views" in der Datenbankwelt? 

Views stellen meist einen auf den Anwender zugeschnittenen Ausschnitt der Daten zur Verfügung . 
So kann z.B aus einer Datenbank mit Kunden  , Lieferanten , Lagern usw... eine View 
"Rechnung" erzeugt werden ,die nur ausgewählte Informationen enthält . 
z.B 
Ware wurde geliefert an : Kunden.Kundenname 
Lieferung stammt aus  : Lager.Name , Lager.Ort , Lager.PLZ 

Welche Aussagen zu SQL- Anweisungen und ihren entsprechungen in der relationalen Algebra sind wahr ? 

Was versteht man unter logischer Optimierung ? 

Bei der logischen Optimierung wird ein Ausdruck in der RA zu einem äquivalenten Ausdruck umgeformt ,der weniger Laufzeit benötigt . Dies ist nur möglich , weil die RA in der Regel mehrere Wege zum erhalten einer Ergebnismenge kennt . 

Was versteht man unter physischer Optimierung ? 

Bei der physischen Optimierung wird auf unterschiedliche Implementierungen der Relationalen Algebra zurückgegriffen. D.h aus mehreren Möglichkeiten , eine Anfrage in die RA zu übersetzen wird die performanteste herausgesucht . Diese Auswahl berücksichtigt Paramter wie : 
-Größe und Auslastung des Hauptspeichers 
-Statistiken über erfolgte Zugriffe 
-Informationen über die Verteilung der Daten in den betroffenen Tabellen 

Wofür stehen folgende Abkürzungen der Bestandteile von SQL : 
DDL 
DML 
DQL 
DAL 

DDL = Data-Definition- Language (CREATE , ALTER , DROP )
DML = Data-Manipulation-Language (INSERT , UPDATE ,DELETE ) 
DQL = Data-Query- Language ( SELECT ) 
DAL = Data-Administration-Language (GRANT , REVOKE ) 

Welche Typkonstruktoren kennt SQL ? 

MULTISET(ROW(BASISDATENTYP))

Das heißt im Gegensatz zur RA sind in SQL Duplikate grundsätzlich erlaubt 

Welche dieser Datentypen kennt SQL ? 

Worin besteht der Unterschied zwischen dem Datentyp varchar und char ? 

Ein char der Länge 5 reserviert auch immer alle 5 zeichen indem Sie mit leerzeichen gefüllt werden. 
Beim varchar wird nur der tatsächlich benötigte Speicherplatz reserviert . 

Beispiel : 
char (5) , Inhalt HEXE => " H E X E _" 
varchar (5) , Inhalt HEXE => "H E X E" 

Um beide Datentypen vergleichbar zu machen gibt es die Funktion RTRIM() , die die Leerzeichen entfernt 

Nach ANSI Standard existieren 3 Integer Datentypen , 
Smallint 
Integer 
Bigint 

Wie lautet deren Entsprechung in der Implementierung von Oracle? 

Number

Wieviele Werte kann ein Boolean Datentyp unter Oracle SQL annehmen ? 

3 , true , false , unknown/null  
Stichwort : Dreiwertige Logik 

Wann liefert der Between Operator TRUE ? 
Wie kann man ihn negieren ? 

Wenn ein Wert zwischen den beiden angegeben Grenzen liegt . 

SELECT * 
FROM tabelle1 
WHERE gehalt 
BETWEEN 3000 AND 5000 ; 

Negation : mit NOT BETWEEN 

Wann liefert der IN- Operator TRUE? 

Wenn es eine Übereinstimmung mt einem der Werte aus der Argumentliste gibt . 

SELECT * 
FROM tabelle 1 
WHERE gehalt 
IN (3000, 5000, 6000)

Negation : NOT IN 

Wann liefert der LIKE-Operator TRUE ? 

Wenn es eine Übereinstimmung mit einem Zeichenmuster gibt. Wildcard Zeichen sind % und _ . 

SELECT * 
FROM tabelle1 
WHERE name 
LIKE Gandal_ ; 

% steht für einen oder mehrere beliebige Zeichen  ,
_ steht für genau ein beliebiges Zeichen 

Nenne 3 Singlerow Funktionen .

Strings : 
UPPER(String) => kann genutzt werden um groß und kleinschreibungsunterschiede bei vergleichen abzufangen 
LOWER(String)
CONCAT(String1 , String2 , ...) => Hängt zwei Zeichenketten aneinander 
SUBSTRING(String , Pos1, Pos2 )=> liefert einen Substring von Position 1 bis Position 2 

Numbers : 
NVL (Spalte, Wert) => ersetzt NULL-Werte einer Spalte durch den "Wert" Parameter 
ROUND(Ausdruck , Genauigkeit) => Rundet einen Audruck auf die angegebene Genauigkeit 
 

Wie kann man Typecasts unter SQL durchführen ? 

Dafür existieren Typumwandlungsfunktionen wie : 
TO_CHAR 
TO_NUMERIC 
TO_DATE 
TO_VARCHAR 

Beispiel : 
SELECT TO_CHAR(gehalt)
FROM angestellte; 
=> Liefert die Werte der Gehaltssspalte als Char-Datentyp 

Was sind aggregate functions unter SQL ? 

Welche Datenbankobjekte kann man mit dem CREATE Befehl anlegen ? 

Welche Befehle kennt die DDL ? 

Welche Arten von Integritätsbedingungen gibt es ? 
 

Mit welchen Befehlen werden Integritätsbedingungen in SQL realisiert ? 

NOT NULL => Spaltenwerte dürfen keine Nullwerte enthalten 

CHECK => Legt eine selbstdefinierte Bedingung fest 

PRIMARY KEY => im Sinne des ERM , obligatorisch und not null , keine Duplikate , für Schlüsselspalten wird automatisch ein INDEX agelegt
 
FOREIGN KEY => Fremdschlüssel , benötigen REFERENCES-Klausel 

UNIQUE => Legt eine oder mehrere Schlüsselspalten neben dem PK fest, erlaubt keine Duplikate, aber NULL-Werte 
für Schlüsselspalten wird automatisch ein INDEX agelegt

Ordne den 3 Integritätsarten ihre entsprechung in SQL zu . 

Welche Aussagen bezüglich der Auswertung von Integritätsbedingungen sind wahr? 

Für welche Schlüsselarten wird automatisch ein INDEX erzeugt, der den lesenden Zugriff beschleunigt? 

Nenne ein Beispiel einer CREATE INDEX Anweisung 

CREATE  UNIQUE INDEX teile_index1 ON Teile (Teile_ID) 

Unique unterdrückt doppelte Werte  

Was ist der unterschied zwischen virtuellen und materialisierten Sichten (Views) ? 

Man verwendet Sichten um Anwendern nur Ausschnitte der Daten zu zeigen (z.B bei einem Formular ) ,
ANSI-3-Ebenen Modell : Externe Ebene 

Bei einer virtuellen Sicht wird im Data Dictionary nur die Anfrage zum erhalt der Daten gespeichert 
Vorteil : Keine Datenredundanz 
Nachteil : Bei jedem Zugriff neue Abfrage 

Bei einer materialisierten Sicht wird das Ergebnis der Anfrage ebenfalls im DD gespeichert 
Vorteil : Anfrage muss nicht bei jedem Zugriff neu gestellt werden 
Nachteil : Bei Änderungen muss die View ebenfalls geändert werden , Datenredundanz 

Wie sind virtuelle und materialisierte Views in SQL implementiert ? 

virutelle View : CREATE VIEW sichtname AS SELECT....  
materialisierte View : CREATE MATERIALIZED VIEW  sichtname AS SELECT... 

materialisierte Views bieten unter Oracle noch die möglichkeit anzugeben ,wann die Tabelleninformation aktualisiert werden soll. 

Welche Aktualisierungszeitpunkte (für materialized views) bitet Oracle an ? 

Wie sieht eine CREATE SEQUENCE Anweisung aus ? 
Wann wird eine solche Anweisung in der Regel verwendet  ?

Sequences erlauben das Erstellen fortlaufender Nummern , 
dies ist vorallem beim Erstellen künstlicher Primärschlüssel (surrogate Keys) sinnvoll. 

Beispiel : 
CREATE SEQUENCE name 
INCREMENT BY 1 
START WITH 0 
MAXVALUE 100 
MINVALUE 0 
NOCYCLE 
CACHE 5
ORDER ; 

Erläuterung :
NOCYCLE entscheidet ob nach Verwendung von MIN / MAXvalue von vorn gzählt wird 
CACHE bestimmt wieviele Schlüssel für schnelleren Zugriff im Hauptspeicher liegen können 
 

Étudier