/


K. N.
Diese Lernkarten behandeln fortgeschrittene Themen der Datenbanken auf Universitätsniveau, mit Fokus auf Tabellen, Modelle, Beziehungen und Transaktionen. Sie decken Schlüsselkonzepte wie Attribute, Entitäten, Joins und SQL-Abfragen ab, sowie Methoden zum Tuning von Datenbanken und die Handhabung von Änderungen. Die Karteikarten sind ideal für Studierende und Fachleute, die ihr Verständnis von relationalen Datenbanken vertiefen und praktische Fähigkeiten im Umgang mit Datenbanken erwerben möchten.
Flashcards
62
Students
7
Language
German
Category
Computer Science
Level
University
Created / Updated
02.02.2016 / 27.04.2024

Flashcards

Was ist eine View?

- "virtuelle Tabelle"

- enthält aktuelle Informationen aus einer oder mehreren Tabellen

- existiert nur in Benutzersicht, liegt nicht physikalisch vor

Vorteile:

- Vermeidung komplexer Anfragen

- stabilere Schnittstelle zu Anwendungsprogrammen, Änderungen am Modell bleiben verborgen (Geheimnisprinzip)

Welche Probleme können beim Einfügen von Daten über eine View auftreten?

- falsches Setzen des Primärschlüssels, da z.B. nicht in der View enthalten

- beim Erzeugen der View wurden Werte berechnet, Nutzer weiß nicht, dass es sich eigentlich um mehrere Einzelwerte handelt

- Daten füllen nicht alle Spalten und NULL-Werte sind nicht zugelassen

- weitere Verstöße gegen Constraints, die in den Ausgangstabellen existieren

Was ist eine Transaktion?

- feste Folge von Datenbankoperationen (in Bezug auf Veränderungen von Tabelleninhalten), die logische Einheit bilden

- komplette Ausführung ohne Störung durch nebenläufige Operationen anderer Nutzer

 

Was versteht man unter den ACID-Eigenschaften von Transaktionen?

A = Atomicity (Unteilbarkeit), Aktualisierung komplett oder gar nicht

C = Consistency, Aktualisierung von einem konsistenten in einen ebenfalls konsistenten Datenzustand

I = Isolation, Aktualisierung, als ob sie Datenbank allein nutzen würde

D = Durability (Dauerhaftigkeit), Datenbankzustand nach abgeschlossener Aktualisierung ist dauerhaft

Was bedeuten Commit, Rollback und Savepoint?

Commit: Übernahme der eingegebenen Befehle in die Datenbank

Rollback: Abbruch der Transaktion, Verwerfen der Änderungen seit der letzten abgeschlossenen Transaktion

Savepoint: Setzen eines Sicherungspunktes, nächstes Rollback verwirft nur Befehle nach dem Sicherungspunkt

Welche Anomalien gibt es?

Dirty Read: Transaktion liest noch nicht durch Commit bestätigten, mit UPDATE oder DELETE veränderten Wert einer anderen Transaktion

Lost Update: Transaktion überschreibt durch andere Transaktion geänderte Werte, ohne zu erkennen, dass zwischen der eigenen Leseaktion und der anschließenden Änderung die gelesenen Daten von dieser anderen Transaktion geändert wurden.

Phantomproblem: Transaktion liest noch nicht durch Commit bestätigten, mit INSERT veränderten Wert einer anderen Transaktion

Welche Blocktypen gibt es in PL/SQL?

- anonymer Block

- Prozedur (über Name adressierbar, kann parametrisiert werden)

- Funktion (über Name adressierbar, kann parametrisiert werden, Rückgabewert)

Was ist der Unterschied zwischen einer Variablen und einem Bezeichner in PL/SQL?

Variable: verweist auf Speicherort von Variablen

Bezeichner: zur Benennung von PL/SQL-Objekten (Variablen, Cursor, Unterprogrammen)

Welche Variablentypen gibt es in PL/SQL?

- Skalar: einzelne Werte

- Zusammengesetzt

- Referenz: enthalten Zeiger mit Verweis auf Speicherort

- LOB (Large Object): enthalten Positionsanzeiger, die Speicherort großer Objekte (z.B. Grafiken) bezeichnen, die out-of-line gespeichert werden

Geben Sie Beispiele für skalare Datentypen.

Char, Varchar2, Number, Binary_Integer oder PLS_Integer, Boolean, Binary_Float, Binary_Double, Date, Timestamp (verschiedene Variationen)

Wie können für eine Variable vorhandene Variablendeklarationen übernommen werden?

- Deklaration gemäß Definition einer Datenbankspalte oder einer anderen deklarierten Variablen

- Attribut %TYPE, davor kommt Spaltenname oder Name der bereits deklarierten Variablen

- für Records entsprechend %ROWTYPE

Wie werden zusammengesetzte Datentypen deklariert?

TYPE typname IS RECORD (felddeklaration1, felddeklaration2)

felddeklaration entspricht der Deklaration einer Variablen: Feldname Datentyp

Welche Ziele hat das DB-Tuning?

- Verkürzung der Antwortzeiten

- Erhöhung des Durchsatzes (Bearbeitung möglichst vieler Anfragen innerhalb einer Zeitspanne)

 

Welche Ebenen hat das DB-Tuning? Ordnen Sie sie nach aufsteigendem Optimierungspotenzial.

- Hardware

- Network

- DB Changes

- Indexes (30%)

- SQL Statements (60%)

Wie kann das Relationenschema angepasst werden, um eine Datenbank zu tunen?

- Zerlegung von Relationen, wenn auf Teile der Relation wesentlich häufiger zugegriffen wird als auf andere

- Denormalisierung (durch redundante Speicherung) zur Vermeidung von Joins

Was sind Materialized Views?

- im Gegensatz zu normaler View Datenkopien der Originaldaten

- einmal berechnet und dann dauerhaft gespeichert

- Vorteil: bei aufwendiger Berechnung bessere Performance als normale View

- Nachteil: muss neu berechnet werden, wenn Daten aktualisiert werden

Was ist ein Datenbank-Index?

- ähnlich einem Index in einem Buch

- eigener Speicherplatz

- besteht größtenteils aus Redundanzen, verweist auf Information, die an anderer Stelle gespeichert ist

- Einträge in bestimmter Reihenfolge --> einzelne Einträge können schneller gefunden werden, da sich Position des Eintrags aus Sortierreihenfolge ergibt

Welche beiden Möglichkeiten gibt es für Anwendungssoftware, auf eine Datenbank zuzugreifen?

Embedded SQL: Einbettung von SQL-Befehlen in die Programmiersprache (Unterstützung durch Compiler notwendig)

Realisierung der Schnittstelle durch DB-Hersteller: Programm verhält sich wie normaler Datenbankbenutzer

Was ist JDBC?

Java Database Connectivity

- Datenbankschnittstelle der Java Plattform

- einheitliche Schnittstelle zu Datenbanken unterschiedlicher Hersteller

- auf relationale Datenbanken ausgerichtet

Was ist ODBC?

Open Database Connectivity

- standardisierte Datenbankschnittstelle

- Verwendung von SQL als Datenbanksprache

- Programmierschnittstelle zur relativ unabhängigen Entwicklung einer Anwendung von dem verwendeten DBMS, wenn dafür einer ODBC-Treiber existiert

Wie erfolgt der Zugriff auf die H2-Datenbank aus Java heraus?

Laden des Datenbanktreibers

  • Class.forName("org.h2.Driver");

Aufbau der Datenbankverbindung

  • Connection conn = DriverManager.getConnection(<Connection String>, <user>, <password>);

Erzeugen eines Statements:

  • Statement std = conn.createStatement();

Ausführen des SQL-Statements:

  • ResultSet rs = std.executeQuery(<String>);

Auslesen der Ergebnisse aus SQL-Abfrage:

  • while (rs.next()) {<Anweisung>}

Ändern / Einfügen von Datensätzen:

  • std.executeUpdate(<String>)

Schließen der Verbindung:

  • std.close();
  • conn.close();

Was sind die Java-Basisklassen zur DB-Anbindung?

Connection: Kapselt einer DB-Verbindung

Statement: Kapselt ein DB-Statement

ResultSet: Kapselt das Ergebnis einer Datenbankabfrage

Study