Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
424 lines (354 sloc) 15.4 KB
%Pakete;
%A4, Report, 12pt
\documentclass[ngerman,a4paper,12pt]{scrreprt}
\usepackage[a4paper, right=20mm, left=20mm,top=20mm, bottom=30mm, marginparsep=5mm, marginparwidth=5mm, headheight=7mm, headsep=15mm,footskip=15mm]{geometry}
%Papierausrichtungen
\usepackage{pdflscape}
\usepackage{lscape}
%Deutsche Umlaute, Schriftart, Deutsche Bezeichnungen
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
%quellcode
\usepackage{listings}
%tabellen
\usepackage{tabularx}
%listen und aufzählungen
\usepackage{paralist}
%farben
\usepackage[svgnames,table,hyperref]{xcolor}
%symbole
\usepackage{latexsym,textcomp}
%font
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
%Abkürzungsverzeichnisse
\usepackage[printonlyused]{acronym}
%Bilder
\usepackage{graphicx} %Bilder
\usepackage{float} %"Floating" Objects, Bilder, Tabellen...
\usepackage[space]{grffile} %Leerzechen Problem bei includegraphics
\usepackage{wallpaper} %Seitenhintergrund setzen
\usepackage{transparent} %Transparenz
%for
\usepackage{forloop}
\usepackage{ifthen}
%Dokumenteigenschaften
\title{Repetitionsfragen Dbs2}
\author{Tobias Blaser}
\date{\today{}, Rapperswil}
%Kopf- /Fusszeile
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\fancyhf{} %alle Kopf- und Fußzeilenfelder bereinigen
\renewcommand{\headrulewidth}{0pt} %obere Trennlinie
\fancyfoot[L]{Seite \thepage/\pageref{LastPage}} %Fusszeile mitte
\fancyfoot[R]{\today{}} %Fusszeile rechts
\renewcommand{\footrulewidth}{0.4pt} %untere Trennlinie
%Kopf-/ Fusszeile auf chapter page
\fancypagestyle{plain} {
\fancyhf{} %alle Kopf- und Fußzeilenfelder bereinigen
\renewcommand{\headrulewidth}{0pt} %obere Trennlinie
\fancyfoot[L]{Seite \thepage/\pageref{LastPage}} %Fusszeile mitte
\fancyfoot[R]{\today{}} %Fusszeile rechts
\renewcommand{\footrulewidth}{0.4pt} %untere Trennlinie
}
\usepackage{changepage}
% Abkürzungen für Kapitel, Titel und Listen
\input{commands/shortcutsListAndChapter}
\input{commands/TextStructuringBoxes}
%links, verlinktes Inhaltsverzeichnis, PDF Inhaltsverzeichnis
\usepackage[bookmarks=true,
bookmarksopen=true,
bookmarksnumbered=true,
breaklinks=true,
colorlinks=true,
linkcolor=black,
anchorcolor=black,
citecolor=black,
filecolor=black,
menucolor=black,
pagecolor=black,
urlcolor=black
]{hyperref} % Paket muss unbedingt als letzes eingebunden werden!
\usepackage{graphicx}
\begin{document}
% Inhaltsverzeichnis
\tableofcontents
\vspace{1cm}
\section*{Antworten zu den Repetitionsfragen}
Falls vorhanden befinden sich diese im GitHub Repository. Ergänzungen oder ganze Antwortensets sind jederzeit herzlich willkommen.
\noindent\url{https://github.com/moonline}
\clearpage
\ch{Repetition Dbs1}
\ol
\li Erklären Sie das ANSI 3-Ebenen Modell
\li Erklären SIe OLTP
\li Nennen Sie die vier ACID Kriterien. Wozu werden Sie verwendet?
\li Lesen Sie mit einer group by Anfrage aus einer Liste mit Absolventen die Studiengangsnotendurchschnitte heraus.
\olS
\ch{Oracle PL/SQL}
\olR
\li Was ist der Unterschied zwischen einer 'Stored Procedure' und einer Funktion?
\li Wie ist eine Funktion aufgebaut, wie eine Stored Procedure? Wie führen Sie den Code jeweils aus (Einbetten in anderen Code?)?
\li Wie funktioniert in PL/SQL das Exception Handling? Was sind unbenannte/benannte Benutzerexceptions, was benannte Systemexceptions?
\li Für welche drei Anwendungszwecke setzen Sie 'Stored Procedures' ein?
\li Welchen Vorteil bieten Stored Procedures in Zusammenhang mit Views?
\li Wozu dient die Pseudotabelle 'DUAL'?
\olS
\ch{Stored Procedures}
\olR
\li Erklären SIe den Unterschied zwischen einem anonymen PL/SQL Block und einer Stored Procedure. Nennen Sie je Vor- und Nachteile.
\li Wie funktionieren Stored Procedures mit Java?
\li Wie wird der Java Code verarbeitet und wo wird er gespeichert?
\li Beschreiben Sie, was sie alles unternehmen müssen, um eine Java Stored Procedure zum Laufen zu bekommen.
\li Machen Sie ein Beispiel, wie sie Stored Procedures mit Python verwenden.
\olS
\ch{Packages}
\olR
\li Was sind PL/SQL Packages, wozu können Sie eingesetzt werden?
\li Warum besitzt ein DBS keine gewöhliche Input/Output Shell? Wie können Sie trotzdem Angaben von einer Kommandozeile einlesen und ausgeben?
\li Machen Sie eine Beispiel für ein Package
\olS
\ch{Cursors}
\olR
\li Wozu verwenden Sie Cursors?
\li Lesen Sie mittels eines Cursors eine Tabelle mit Standorten und Temperaturen aus. Ist die Temperatur höher als x Grad, so übertragen Sie die Datenbankzeile in eine neue Tabelle.
Übergeben Sie x als Parameter, sodass der Cursor von aussen gesteuert werden kann.
\li Was können Sie mit den vier Curso-Attributen machen?
\olS
\ch{Constraints}
\olR
\li Was sind Constraints? Was können Sie damit machen?
\li Was sind primäre und sekundäre Constraints, was starke und schwache Constraints?
\li Auf welchen Objekten können Constraints definiert werden?
\li Machen Sie je Beispiele:
\ol
\li Constraint anlegen
\li Constraint löschen
\li Aktivieren / Deaktivieren von Constraints
\li Auflisten von Constraints
\olE
\olS
\ch{Triggers}
\se{Triggers}
\olR
\li Wozu dienen Triggers? Nennen SIe vier Hauptanwendungen.
\li Welche Ereignisse können einen Trigger auslösen?
\li Was sind Before-Triggers, was After-Triggers? Was sind Row-Triggers, was Statementtriggers?
\li Wozu dienen ':old' und ':new'?
\li Mit welchen Rechten werden Triggers ausgeführt?
\li Machen Sie ein Beispiel, wie mit Triggers die Daten überprüft werden können vor dem Einfügen.
\li Machen Sie ein Beispiel für einen Insert Trigger, der abgeleitete Attribute berechnet.
\li Erklären Sie, in welcher Reihenfolge und wann Triggers wie abgearbeitet werden.
\li Was sind instead-of Triggers? Was logon-/logoff Triggers?
\olS
\se{Updateable Views}
\olR
\li Wo liegt der Unterschied zwischen temporären Tabellen und Views?
\li Warum können Views keine zusätzlichen Indexes erhalten?
\li Was sind updateable Views? Warum können Views per Default nicht/nur mit sehr starken Einschränkungen updaten?
\li Wie realisieren Sie updateable Views?
\olS
\se{Materialized Views}
\olR
\li Was sind materialized Views?
\li Was ist eine virtuelle Tabelle?
\olS
\ch{Datenstrukturen}
\se{Arrays}
\olR
\li Was sind Arrays?
\li Nennen Sie den Hauptunterschied zu Sets.
\li Nennen Sie einige sinnvolle Anwendungen für die Verwendung von Arrays.
\li Warum sollten Sie Array nur dann einsetzen, wenn Daten vorwiegend einmal geschrieben werden und nicht geändert werden?
\li Wie legen definieren Sie ein Array als Spaltendatentyp? Wie schreiben Sie Daten in das Array? Wie lesen Sie Daten aus?
\li Wozu verwenden Sie array\_to\_text() und unnest()?
\li Wie funktionieren die Operatoren <@, = und \&\& ?
\li Wie können Sie in einem Select Statement automatisch alle Arraywerte durchsuchen
\olS
\se{Graphen}
\olR
\li Was ist ein Graph? Wozu können Sie ihn verwenden?
\li Wie definieren Sie eine Spalte als Graph und fügen einen Graph ein? (Nicht im Unterricht behandel)
\li Was ist ein CTE und wozu wird es verwendet? Was ist der Unterschied zur Subquery?
\olS
\se{Trees}
\olR
\li Was ist ein Tree? Welche Eigenschaften unterscheiden einen Tree von einem Graph?
\li Nennen Sie einige Sinnvolle Anwendungen für Trees.
\li Wie funktioniert die Adjazenzliste und das Nested-Set Modell? Machen Sie je ein Beispiel, wie Sie einen Tree anlegen und Daten auslesen.
\li Wie können Sie mit ltree's Bäume Abbilden? Wie Suchen Sie nach Kinder- und Elternknoten? Wie können Sie Subtrees vergleichen?
\li Wozu können Sie XML und JSON in einer Datenbank einsetzen? Nennen Sie einige Sinnvolle Anwendungsbeispiele.
\li Wie können Sie eine Tabelle als XML und JSON exportieren? Machen Sie ein Beispiel.
\li Wie können Sie XML in ein Tabellenfeld einfügen, validieren, parsen und verändern?
\olS
\se{Dictionaries}
\olR
\li Was ist ein Dictionary? Wozu können Sie ihn verwenden?
\li Wie definieren Sie eine Spalte als Dictionary? Wie fügen Sie Paare ein und wie lesen Sie welche aus?
\li Machen Sie ein Beispiel: Legen Sie eine Tabelle (id,tags) an und fügen Sie einige Einträge mit jeweils einigen Tags ein. Lesen Sie alle Datensätze aus, die den Tag 'Ferien' enthalten.
\olS
\ch{ORDBMS}
\olp{
\li Aus welchem Grund braucht es objektrelationale Datenbanken?
}
\se{Objekttypen}
\olp{
\li Was sind Objekttypen? Wie werden sie definiert?
\li Was sind Column Objects? Wozu können Sie sie verwenden? Wie werden sie deklariert? Wie fügen Sie Daten in eine Tabelle ein, die Column Objects enthält? Wie lesen Sie Daten aus?
\li Was sind Objekttabellen, wozu dienen sie und wie realisieren Sie Vererbung mit Objekttabellen?
\li Wie formulieren Sie Queries auf Objekttabellen.s
\li Wie definieren Sie Methoden für Objekttypen und wie arbeiten Sie damit? Machen Sie ein Beispiel.
\li Erklären Sie, wie sie mit 'map' oder 'order' eine Vergleichsmöglichkeit für eigene Typen anbieten.
\li Wie definieren Sie Objekt Referenzen? Wie funktioniert die Dereferenzierung? Wozu?
\li Wozu dient 'SCOPE FOR'?
\li Wie fügen Sie Tupel mit Referenzen ein? Wie lesen Sie referenzierte Objete aus?
\li Welche Probleme kann es mit 'dangling References' geben? Was können sie dagegen tun?
}
\se{VARRAYs und Nested Tables}
\olp{
\li Was sind VARRAYs und wozu dienen sie? Machen Sie ein Beispiel.
\li Was sind Nested Tables? In welchem Anwendungsfall sind die sinnvoll? Wie können SIe Nested Tables von aussen zugreifbar machen (als eigene Tabelle sichtbat)?
\li In welchem Fall verwenden Sie eine Nested Table und in welchem Fall ein VARRAY?
\li Was sind associative Arrays?
}
\ch{ODBS}
\olp{
\li Nennen Sie einige Anwendungsgebiete, für die ODBS besonders geeignet sind
\li Welche Nachteile hat die persistierung komplexer Objekte eines objektorientierten Programms in eine relationale Datenbank?
\li Wo liegt der Hauptunterschied zwischen ODBS und ORDBS?
\li Welche zwei Architekturen von ODBS gibt es
\li Nennen SIe einige Anforderungen, die an ein ODBS gestellt werden.
\li Was spricht gegen die Speicherung von Objekten mittels Objektserialisierung?
\li Wie funktioniert ``Persistence by Reachability''?
\li Wie funktioniert ein ``Page-Server'' und wie ein ``Object Server''?
\li Was ist ``Pointer Swizzling''?
\li Was ist der unterschied zwischen der logischen und physischen OID?
\li Wie funktioniert die Dereferenzierung der OID?
\li Erkären Sie den ODMG Standard.
\li Was ist die ODL? Was definiert die ODL? Machen Sie Beispiele für alle Relationstypen.
\li Was ist die OQL?
\li Wie fragen Sie mit OQL Eigenschaften von Objekten ab?
}
\se{db4o}
\olp{
\li Erklären Sie das Grundprinzip von ``db4o''?
\li Erklären Sie die drei Abfragemöglichkeiten von db4o.
\li Wie machen Sie Transaktionen mit db4o?
\li Wie aktualisieren Sie bestehende Objekte? Wie löschen Sie Objekte? Was gibt es zu beachten bei kaskadierten Objekten?
\li Was ist ``Aktivierung'' bei db4o?
}
\ch{NoSQL Datenbanken}
\olp{
\li Nennen fünf Eigenscahften, die die meissten NoSQL DB's gemeinsam haben
\li Welche fünf Arten von NoSQL Datenbanken gibt es? Nennen Sie je Eigenschaften und Vor- / Nachteile.
\li Welche Möglichkeiten haben Sie, Datenbanken zu verteilen?
\li Erklären Sie das CAP Theorem. Was bedeutet dies für die Praxis?
\li Erklären Sie BASE.
\li Wie funktioniert Map-Reduce? Wie können Sie Materialisiert Views dafür verwenden?s
}
\ch{Backup \& Recovery}
\olp{
\li Zeichnen Sie auf, welche Systemkomponenten für Backup und Recovery beteiligt sind.
\li Welche drei Fehlerklassen gibt es? Nennen Sie zu jeder, wann Sie auftreten können, was die Folgen sind und wie sie wieder einen konsistenten Zustand wiederherstellen. Welche Daten gehen möglicherweise verloren?
\li Erklären Sie das Konzept der Checkpoints.
\li Was ist ein physisches Backup, was ein logisches? Was ist ein offline backuü? Was ein Media Recovery?
\li Erklären Sie die beiden Varianten von Media Backup und deren Auswirkungen auf Daten und Konsistenz.
\li Wie funktioniert ein inkrementelles Backup?
\li Was ist ein ``Point in Time Recovery''?
\li Welche Fragen müssen Sie sich für eine Backup Planung stellen?
}
\ch{Indexe}
\se{Indexe}
\olp{
\li Was ist ein Heap?
\li Was sind Data Pages?
\li Was ist ein Table Scan? Wie performant ist er?
\li Was bietet ein Index?
\li Welche acht Arten von Queries gibt es?
\li Welche fünf Index-relevanten Operationen gibt es?
\li Erklären Sie, wie die folgenden Indexstrukturen aufgebaut sind, und wie effizient sie für welche Fälle sind:
\oli{
\li ISAM
\li B-Baum
\li B+ Tree
\li Clustered Index
\li Unclustered Index
\li Hash Index
\li Bitmap Index
\li Mehrdimensionale Indexes (R-Tree)
}
\li Erklären Sie diese Indexarten:
\oli{
\li Unique Index
\li Non unique Index
\li Index über mehrere Attribute
\li Clustered Index mit included Columns
}
\li Wie berechnen Sie für Heap, Clustered wie Unclustered Index die Kosten für die Verschiedenen Operationen?
}
\se{Query Processing}
\olp{
\li Skizzieren Sie, wie eine Query verarbeitet wird.
}
\se{Join}
\olp{
\li Wie funktioniert ein Hash Join? Wie ein Nested Loop Join? Wie ein Block Nested Loop Join? wie ein Merge Join?
\li Nennen Sie für die oben genannten Join Algorithmen je Vor- / Nachteile, Vorbedingungen und Anwendungsgebiet/Fall.
\li Erklären Sie das Kostenmodell der genannten Joins.
}
\ch{Optimierung}
\olp{
\li Wie können Sie eine Abfrage mit vielen Roundtripps optimieren?
\li Wozu dient Denoralisierung?
\li Was ist logische Optimierung?
\li Warum soll immer wann möglich eine Selektion vor einem Join durchgeführt werden?
\li Wozu dient ´´Entschachtelung''?
\li Was ist physische Optimierung? Welche drei Massnahmen beinhaltet es?
\li Wie funktioniert Kostenbasierte Optimierung?
\li Was ist Selektivität? Wie wird sie ermittelt?
\li Was ist Dichte? Wir wird sie ermittelt?
}
\ch{Verteilte DBSM}
\olp{
\li Was ist ein verteiltes DBMS?
\li Was ist Datenverteilungstransparenz?
\li Was bedeutet Atomarität von verteilten Transaktioen?
\li Erklären Sie den Unterscheid zwischen heterogenen und homogenen VDBMS.
\li Was sind MultiDBMS Systeme? Erklären Sie den Unterschied zwischen eng und lose gekoppelten MultiDBMS.
\li Erklären Sie horizontale und vertikale Fragmentierung.
\li Was ist Replikation?
\li Erklären Sie Fragmentierung und Allokation.
\li Wie werden verteilte Transaktionen realisiert?
\li Erklären Sie das Prinzip des 2 Phase Commit.
\li Was ist X/Open XA?
\li Wie loken Sie bei einem VDBMS DBs, Tabellen oder Tupels?
\li Wie funktioniert Serialisierbarkeit in VDBMS?
\li Erklären Sie die vier Arten, wie replizierte Daten synchronisiert werden können.
\li Wie lösen Sie verteilte Deadlocks auf?
}
\ch{Replikation}
\olp{
\li Welche Vorteile bringt Replikation?
\li Erklären Sie die folgenden Anwendungen, allenfalls mit einer Skizze:
\oli{
\li Load Balancing
\li Remote Server
\li Real-Time OLAP
\li Warm Standby
\li Mobile Datenbanken
}
\li Welche Knofigurationsmöglichkeiten gibt es?
\li Erklären Sie starke und schwache Konsistenz. Was ist eine streng konsistente Replikation?
\li Nennen Sie jeweils Vor- und Nachteile von symetrischer und asymetrischer Konfiguration.
\li Was ist ein Multi-Master?
\li Was sind asynchrone und synchrone Replikation?
\li Was ist eine Merge Replikation? Was passiert bei Konflikten?
\li Was ist ein Delete Konflikt?
\li Wie funktionieren Replikationen in Oracle DB, MS SQL Server und Mongo DB?
\li Was ist Sharding?
\li Erklären Sie den Zielkonflikt zwischen Leistung und Konsistenz.
}
\end{document}