/


Fichier Détails

Cartes-fiches 62
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 02.02.2016 / 27.04.2024
Lien de web
https://card2brain.ch/box/datenbanken_3_semester
Intégrer
<iframe src="https://card2brain.ch/box/datenbanken_3_semester/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

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