Kapitel 1

  1. Stelle den Aufbau von Informationssystemen dar!
  2. Was versteht man unter Persistenz?
  3. Wie unterstützt man Persistenz?
  4. Was versteht man unter einer Speicherhierachie?
  5. Welche Ebenen besitzt eine Speicherhierarchie im Datenbankbereich?
  6. Was sind Unterscheidungskriterien zwischen den Ebenen einer Speicherhierarchie?
  7. Wodurch zeichnen sich Massendatenstrukturen aus?
  8. Was sind Mechanismen, um mit der Quantität von Massendatenstrukturen umzugehen?
  9. Was ist eine Iterationsabstraktion? Gib ein Beispiel und nenne die Vorteile!
  10. Nenne die Merkmale der Reaktivität?
  11. Was bedeutet Integritätssicherung in Datenbanken?
  12. Welche Klassen von Integritätsbedingungen gibt es?
  13. Grenze deklarative und prozedurale Integritätssicherung gegeneinander ab! Nenne Vor- und Nachteile!
  14. Kapitel 2

  15. Wozu braucht man Datenmodelle?
  16. Welche Benutzergruppen kann man bei Datenbanken unterscheiden?
  17. Welche Modellierungselemente unterstützt das ER-Modell? Gib Beispiele für die graphische Notation dieser Elemente in einem ER-Diagramm.
  18. Gib ein Beispiel für die Modellierung mit ER-Diagrammen. Benutze Entitäten, Beziehungen, Spezialisierung, Kardinalitäten.
  19. Gib die in dem folgenden ER-Diagramm gezeigten Zusammenhänge textuell wieder.
  20. Unterscheide Strukturierungs- und operationsbezogene Konzepte im Bereich der Datenbankmodellierung!
  21. Welche Datenabstraktionskonzepte zur Informationsstrukturierung kennst Du?
  22. Stelle den Zusammenhang zwischen Daten und Information her!
  23. Wie werden atomare Informationen repräsentiert. Gib Beispiele!
  24. Wodurch unterscheiden sich Werte und Objekte in atomaren Informationsrepräsentationen!
  25. Was versteht man unter Objektidentität?
  26. Was ist der Unterschied zwischen Kopier- und Referenzsemantik?
  27. Wann wird Klassifikation angewendet? Gib ein Beispiel!
  28. Wann wird Aggregation angewendet? Gib ein Beispiel!
  29. Wann wird Generalisierung angewendet? Gib ein Beispiel?
  30. Was versteht man unter Vererbung? Unterscheide von Subtypisierung!
  31. Was versteht man unter Assoziation? Gib ein Beispiel!
  32. Was für Arten von Assoziationen kennst Du? Wie werden Assoziationen näher beschrieben?
  33. Was unterscheidet die referentielle Identifikation von der assoziativen Identifikation?
  34. Welche Rolle spielen Schlüssel in einer Datenbank? Welche Arten von Schlüsseln kennst Du?
  35. Was versteht man unter Strukturierungsorthogonalität? Kennst Du Beispiele, in denen die Forderung nach vollständiger Orthogonalität verletzt wird?
  36. Welche Alternativen gibt es zur Definition der Lebensdauer von Daten? Diskutiere die Vor- und Nachteile!
  37. Zeige die Drei-Schichten-Architektur!
  38. Was bedeutet Datenunabhängigkeit? Was ist der Unterschied zwischen logischer und physischer Datenunabhängigkeit?
  39. Welchen Beitrag leistet eine Schemaarchitektur wie die Drei-Schichten-Architektur zur Datenunabhängigkeit?
  40. Welche Datenbankmodelle kennst Du?
  41. Was sind die Hauptbestandteile von Datenbanksprachen?
  42. Kapitel 3

  43. Charakterisiere das relationale Datenbankmodell?
  44. Was ist eine Relation im Datenbankkontext?
  45. Erkläre folgende Begriffe: Grad einer Relation, Domäne, Kardinalität, Attribut.
  46. Wie werden im relationalen Datenbankmodell Beziehungen dargestellt? Zeige ein Beispiel!
  47. Wie werden Objekte im relationalen Modell identifiziert?
  48. Was ist der Unterschied zwischen Entitäts- und Beziehungstabellen?
  49. Wie werden 1:1-, 1:N- und N:M-Beziehungen im relationalen Modell abgebildet?
  50. Was versteht man unter referentieller Integrität? Definiere formal! Zeige am Beispiel!
  51. Was versteht man unter Primärschlüsselintegrität? Definiere formal! Zeige am Beispiel!
  52. Welche Operationen können die referentielle Integrität einer Datenbank verletzen? Warum?
  53. Welche Operationen können die Primärschlüsselintegrität einer Datenbank verletzen? Warum?
  54. Was ist Normalisierung? Welches Ziel verfolgt die Normalisierung?
  55. Welche Normalformen kennst Du? Formalisiere und gebe Beispiele!
  56. Welche Anomalien, die sich mit Normalformen vermeiden lassen, treten in Datenbanken auf?
  57. Gib ein Beispiel für eine NF2-Tabelle!
  58. Welche Klassen von Anfragesprachen kennst? Wie unterscheiden sie sich? Ordne SQL in die Klassen ein!
  59. Welche grundlegenden Bestandteile enthält eine SQL-Anfrage? Erkläre deren Aufgabe!
  60. Was zeichnet eine deklarative Anfragesprache gegenüber einer prozeduralen aus?
  61. Was sind die Operationen der relationalen Algebra?
  62. Was sind die Operationen des relationalen Kalküls?
  63. Charakterisiere die Unterschiede zwischen relationalem Kalkül und relationaler Algebra!
  64. Diskutiere die größten Einschränkungen des relationalen Datenbankmodells!
  65. Was ist ein Datenbankschema?
  66. Welche Bestandteile gehören zur Definition eines (Basis-)Datentypen?
  67. Was sind Nullwerte? Wofür werden sie verwendet? Gib Beispiele!
  68. Welche Konsequenzen hat die Einführung der Nullwerte für die Operationen auf den Wahrheitswerten? Gib die Wahrheitstabellen für AND und OR an (true, false, null)!
  69. Was ist eine Tabellendefinition? Unterscheide zwischen Typdefinition, Variablendefinition und Variableninstantiierung!
  70. Charakterisiere das Verhältnis von Lebensdauer, Sichtbarkeit und gemeinsamer Nutzung für Datenbankobjekte!
  71. In einer Angestelltentabelle sind die Vorgesetzten der Angestellten wiederum Angestellte (vgl. untenstehenden Schema). Formuliere eine SQL-Anfrage, die zu jedem Angestellten (Name) den Namen seines Vorgesetzten ermittelt. Ausgabe sollen Namenspaare sein.
  72. Welche Arten von Joins kennst Du?
  73. Beispiel: Universelle Quantifizierung, Existentielle Quantifizierung.
  74. Welche algebraische Tabellenoperationen kennst Du?
  75. Beispiel für Sortieren einer Tabelle nach zwei Kriterien.
  76. Welche Aggregatfunktionen von SQL kennst Du? Gib Beispiele!
  77. Wann wird Gruppierung angewendet. Gib ein Beispiel. Verfolge die einzelnen Schritte bei der Auswertung graphisch nach! (Darstellung der Zwischenergebnisse/Tabellen)
  78. Was ist eine Sicht? Gib ein Beispiel!
  79. Wie definiert man eine Sicht in SQL? Welche Einschränkungen gibt es auf Sichten in SQL? Warum?
  80. Wie macht man ein Update eines Objekts in SQL?
  81. Wie fügt man in SQL ein Objekt in die Datenbank ein? Gibst es auch eine Möglichkeit, mehrere Objekte mit einer Operation einzufügen?
  82. Wie löscht man in SQL Objekte aus der Datenbank?
  83. Welche Integritätsbedingungen können beim Einfügen, Ändern oder Löschen verletzt werden?
  84. Wie greift man auf SQL aus einer Programmiersprache zu? Was ist der Impedance Mismatch?
  85. Welcher Zusammenhang existiert zwischen Integritätsbedingungen und Transaktionen?
  86. Können alle Integritätsbedingungen sofort (beim Einfügen oder Löschen) überprüft werden? Zeige am Beispiel!
  87. Anfragen an die Projektdatenbank in SQL

  88. Formulieren Sie eine Anfrage, die die Namen aller Unterabteilungen liefert.
  89. Formulieren Sie eine Anfrage, die die Namen aller Abteilungen liefert, die Unterabteilungen besitzen.
  90. Formulieren Sie eine Anfrage, die eine zweispaltige Tabelle liefert, die im Klartext (d.h. Projekttitel bzw. Abteilungsname) angibt, welche Abteilung an welchen Projekten mitarbeitet. Die Tabelle soll dabei nach Abteilungen sortiert sein.
  91. Formulieren sie die obige Anfrage so um, daß die Spalten des Ergebnisses "Abteilung" und "Projekt" heißen.
  92. Formulieren Sie eine Anfrage, die alle Abteilungen liefert, die sowohl Unterabteilungen hat als auch selbst Unterabteilung ist.
  93. Formulieren Sie eine Anfrage, die zu jeder Abteilung die Anzahl der Projekte, an denen sie beteiligt ist, ermittelt.
  94. Formulieren Sie eine Anfrage, die sie Summe der Budgets aller Projekte liefert.
  95. Formulieren Sie eine Anfrage, die das durchschnittliche Budget aller Projekte liefert. Die Projekte ohne Budget sollen dabei nicht miteingerechnet werden.
  96. Formulieren Sie eine Anfrage, die die Namen der Projekte alphabetisch sortiert liefert.
  97. Formulieren Sie eine Anfrage, die eine zweispaltige Tabelle mit den Namen aller Abteilungen und dem Namen ihrer jeweiligen Oberabteilung liefert.
  98. Formulieren Sie eine Anfrage, die alle Namen derjenigen Abteilungen liefert, die sowohl Unterabteilungen als auch eine übergeordnete Abteilung besitzen.
  99. Formulieren Sie eine Anfrage, die die Namen der Abteilungen liefert, die Unterabteilungen besitzen, die selbst wieder Unterabteilungen haben.
  100. Formulieren Sie eine Anfrage, die die Abteilungsnamen liefert, sortiert nach der Anzahl der Projekte, an denen sie beteiligt ist.
  101. Formulieren Sie eine Anfrage, die alle Projekttitel derjenigen Projekte liefert, deren Budget größer als der Durchschnitt ist.
  102. Formulieren Sie eine Anfrage, die alle Projekttitel liefert, die von der PC-Software-Abteilung betreut werden.
  103. Formulieren Sie eine Anfrage, die die Abteilungsnamen der Abteilungen liefert, die kein Projekt betreuen.
  104. Formulieren Sie eine Anfrage, die alle Projekte liefert, die von wenigstens einer Abteilung betreut werden.
  105. Formulieren Sie eine Anfrage, die die Projekttitel der Projekte liefert, die von Oberabteilungen (d.h. von Abteilungen mit Unterabteilungen) betreut werden.
  106. Formulieren Sie eine Anfrage, die alle Projekttitel und Abteilungsnamen zusammen in einer einspaltigen Tabelle liefert.
  107. Formulieren Sie Anweisungen, die die Abteilung 'Mainframe SW' mitsamt aller aller betreuten Projekte löscht.
  108. Formulieren Sie eine Anweisung, die das Budget aller Projekte um 14.000 DM erhöht.
  109. Formulieren Sie eine Anfrage, die das Budget aller Projekte, die von der Abteilung für für Unix-Software ('UXSW') betreut werden, verdoppelt.
  110. Formulieren Sie eine Anfrage, die das kleinste Budget aller Projeke findet, das größer als Null ist.
  111. Formulieren Sie eine Anfrage, die alle Projekte liefert, die ein höheres Budget als die von der Abteilung 'UXSW' betreuten Projekte haben.
  112. Formulieren Sie eine Anfrage, die die Anzahl aller Projekte liefert.
  113. Formulieren Sie eine Anweisung, die eine neue Abteilung 'PDA Software' mit dem Kürzel 'PDSW' als Unterabteilung der 'Leitung SW' ('LTSW') anlegt.
  114. Formulieren Sie Anweisungen, die ein neues Projekt 'E-Kalender' anlegen, das von den Abteilungen 'PDA Software' und 'PC Software' betreut wird.
  115. Formulieren Sie eine Anweisung, die dafür sorgt, daß alle Projekte, die bereits von der Abteilung für PC-Software ('PCSW') betreut werden, zusätzlich auch noch von der Abteilung für Macintosh-Software ('MCSW') betreut werden.
  116. Formulieren Sie eine Anfrage, die die Abteilungen sortiert nach Oberabteilungen als erstem und ihrem eigenen Namen als zweitem Kriterium liefert.
  117. Formulieren Sie eine Anweisung, die die Marketing-Abteilung löscht.
  118. Formulieren Sie eine Anweisung, die ein Projekt erzeugt, das das Durchschnittsbudget aller bereits vorhandenen Projekte hat.
  119. Formulieren Sie eine Anweisung, die das Budget des Projektes 'ADAC Kundenstamm' auf 500.000 setzt.
  120. Formulieren Sie eine Anfrage, die zu allen Oberabteilungen die Anzahl der direkten Unterabteilungen liefert.
  121. Formulieren Sie eine Anfrage, die eine alle Projekte liefert, an denen die Abteilung für PC-Software mitarbeitet.
  122. Formulieren Sie eine Anfrage,die eine alle Projekte liefert, an denen die Abteilung für PC-Software nicht mitarbeitet.
  123. Formulieren Sie eine Anfrage, die eine alle Projekte liefert, die von keiner Abteilung betreut werden.
  124. Formulieren Sie eine Anfrage, die eine zweispaltige Tabelle mit der Zuordnung von Ober- zu Unterabteilung durch deren Namen liefert.
  125. Formulieren Sie eine Anfrage, die die Abteilungen liefert, die das Projekt 'TUHH-Vorlesungs DB' betreuen.
  126. Formulieren Sie eine Anweisung, die alle Unterabteilungen der Abteilung 'Leitung SW' löscht.
  127. Formulieren Sie eine Anfrage, die alle Projekte bis auf das mit dem niedrigsten Budget liefert. Dabei sollen diejenigen mit Budget=0 nicht berücksichtigt werden.
  128. Kapitel 4

  129. Was sind die wichtigsten Unterschiede zwischen dem Netzwerkdatenmodell, dem relationalen und dem objektorientierten Modell? Welche sind dichter verwandt?
  130. Was versteht man unter einer DBTG-Menge? Aus welchen Bestandteilen besteht sie? Wozu verwendet man sie?
  131. Wie werden die verschiedenen Beziehungsarten (1:1, 1:N., N:M) in NDM modelliert?
  132. Was versteht man unter einem Verbindungsrecord im NDM?
  133. Wie werden Anfragen im NDM gestellt?
  134. Welche Operationen auf DBTG-Mengen gibt es?
  135. Was unterscheidet das NDM und das HDM voneinander? Welche Konsequenzen ergeben sich daraus für das HDM?
  136. Wie werden die verschiedenen Beziehungsarten (1:1, 1:N., N:M) in HDM modelliert?
  137. Wodurch ergeben sich Schemaalternativen im HDM?
  138. Vergleiche die vier Datenmodelle (RDM, OODM, NDM, HDM) in Bezug auf die Anfragesprachen und die Struktur für Massendaten!
  139. Kapitel 5

  140. Nenne mindestens drei Modellierungskonzepte, welche die objektorientierte Modellierung gegenüber der relationalen Modellierung auszeichnen.
  141. Was versteht man unter Objektidentität? Gib ein Beispiel!
  142. Welche Vorteile bietet die Objektidentität gegenüber einer Identifikation durch Werte?
  143. Was ist Kapselung? Welche Vorteile bietet sie?
  144. Was ist Vererbung? Welche Vorteile bietet sie?
  145. Was ist der Unterschied zwischen Overloading und Overwriting?
  146. Was ist späte Bindung? Erkläre an einem Beispiel! Was sind die Vorteile?
  147. Wie werden die verschiedenen Beziehungsarten (1:1, 1:N., N:M) in ODMG modelliert? Erkläre die Unterschiede zum relationalen Modell!
  148. Welche Bestandteile besitzt ein ODMG-Objekttyp?
  149. Was ist eine Extension eines Objekttyps?
  150. Welche Konsequenzen hat die Subtypisierung für die Extension der beteiligten Typen?
  151. Welche Integritätsbedingungen sind modellinhärent im objektorientierten Datenmodell?
  152. Was sind die Erweiterungen von OQL gegenüber SQL?
  153. Was versteht man unter einer geschachtelten Bereichsrelation?
  154. Was versteht man im Kontext von OQL unter Orthogonalität?
  155. Wie werden die Joins des relationalen Modells im objektorientierten Modell abgebildet? Gib ein Beispiel!
  156. Was ist der Unterschied zwischen Literalen und Objekten in ODMG? Gib ein Beispiel!
  157. Was ist ein parametrisierter Typ? Nenne eine Anwendung!
  158. Was sind abstrakte Typen? Gib ein Beispiel!
  159. Welche Kollektionstypen gibt es in der ODMG-Typhierarchie? Charakterisiere die einzelnen Typen!
  160. Was sind Iteratoren? Wie sieht die Schnittstelle eines Iterators aus? Gib ein Beispiel zur Anwendung!
  161. Was ist Typorthogonalität? Gib ein Beispiel!
  162. Was versteht man unter Mehrfachvererbung? Gib ein Beispiel!
  163. Welche Probleme können bei Mehrfachvererbung auftreten? Wie kann man diese lösen? Gib ein Beispiel!
  164. Wozu verwendet man einen Konstruktor? Was unterscheidet Konstruktoren von Methoden?
  165. Braucht man im OODM Nullwerte? Warum? Gib ein Beispiel!
  166. Wozu verwendet man quantifizierte Prädikate? Welche kennst Du? Gib Beispiele!
  167. Kapitel 8

  168. Was ist eine Transaktion?
  169. Was versteht man unter den ACID-Eigenschaften?
  170. Charakterisiere die Atomarität! Zeige an Beispielen!
  171. Charakterisiere die Konsistenz! Zeige an Beispielen!
  172. Charakterisiere die Isolation! Zeige an Beispielen!
  173. Charakterisiere die Dauerhaftigkeit! Zeige an Beispielen!
  174. Was beinhaltet das Rücksetzen einer Transaktion?
  175. Beschreibe das Zwei-Phasen-Commit-Protokoll!
  176. Was sind Sperrkompatibilitätsmatrizen? Zeige anhand einer Tabelle!
  177. Was sind wohlgeformte Transaktionen?
  178. Wie funktioniert das Zwei-Phasen-Sperr-Protokoll? Welche Probleme treten auf? Wie werden sie gelöst?
  179. Was versteht man unter einer serialisierbaren Historie?
  180. Unterscheide die unterschiedlichen Isolationsgrade! Wie werden sie erreicht?
  181. Kapitel 9

  182. Welche Datenbankarchitekturen kennst Du?
  183. Nach welchen Entwurfsprinzipien werden Datenbankarchitekturen entworfen?
  184. Welche Bestandteile gehören zu einem Schichtenmodell?
  185. Was ist eine abstrakte Maschine im Kontext von Schichtenarchitekturen?
  186. Welche Anforderungen werden an Datenverwaltungssysteme bzgl. der Sprachen und Funktionalität gestellt?
  187. Was zeichnet die STRAWMAN Architektur aus? Mit welchem Ziel wurde sie entworfen?
  188. Was zeichnet die ANSI/SPARC Architektur aus? Mit welchem Ziel wurde sie entworfen?
  189. Welche Schichten unterscheidet man in der ANSI/SPARC Architektur? Welche Aufgaben haben sie?
  190. Was bedeutet Datenunabhängigkeit im Kontext der ANSI/SPARC Architektur?
  191. Was ist der Unterschied zwischen logischer und physischer Datenunabhängigkeit?
  192. Was zeichnet die Fünf-Schichten-Architektur aus? Mit welchem Ziel wurde sie entworfen?
  193. Welche sechs Schnittstellen gibt es in der Fünf-Schichten-Architektur?
  194. Welche Abstraktionen stellen die sechs Schnittstellen der Fünf-Schichten-Architektur zur Verfügung?
  195. Was sind die Aufgaben und Objekte der Externspeicherverwaltung?
  196. Was sind die Aufgaben und Objekte der Systempufferverwaltung?
  197. Wie werden die Speicherungsstrukturen in der Fünf-Schichten-Architektur realisiert?
  198. Beschreibe die Implementierung der satzorientierten Schnittstelle!
  199. Beschreibe die Implementierung der mengenorientierten Schnittstelle!
  200. Beschreibe das Schattenspeicherkonzept! Was sind die Vor- und Nachteile?
  201. Was versteht man unter einer indirekten Einbringstrategie?
  202. Was sind die Vorteile einer indirekten Seitenadressierung?
  203. Was versteht man unter einem Zugriffspfad?
  204. Charakterisiere die Aufgaben des Rekordmanagers!
  205. Wie funktioniert das TID-Konzept? Wie ist der Zugriffsfaktor? Gib ein Beispiel! Nenne Vor- und Nachteile?
  206. Welche grundsätzlichen Arten von Zugriffspfaden für Primärschlüssel kennst Du?
  207. Definiere B-Bäume? Wozu werden sie eingesetzt?
  208. Wie ist der Zusammenhang zwischen den Charakteristiken eines B-Baums und der Anzahl der Seitenzugriffe? Gebe eine Formel zur Abschätzung an!
  209. Beschreibe die interne Struktur eines B-Baums möglichst detailliert! Zeichne einen Beispielknoten!
  210. Was unterscheidet einen B-Baum von einem B*-Baum! Nenne den Hauptvorteil des B*-Baums!
  211. Beschreibe die interne Struktur eines B*-Baums möglichst detailliert! Zeichne einen Beispielknoten!
  212. Wie ist der Zusammenhang zwischen den Charakteristiken eines B*-Baums und der Anzahl der Seitenzugriffe? Gebe eine Formel zur Abschätzung an!
  213. Wie ergibt sich die Höhe eines B*-Baums? Zeige die Extremfälle auf!
  214. Wie läuft eine Einfügeoperation im B-Baum ab? Welche Fälle können auftreten? Wie werden sie behandelt?
  215. Was ist das Datenwörterbuch? Welche Aufgabe hat es? Ordne in die Fünf-Schichten-Architektur ein!
  216. Was versteht man unter Anfrageoptimierung? Welche Arten von Optimierung kennst Du?