Theorie Flashcards

1
Q

Ein Unternehmen besitzt große Mengen an persistenten Daten und will diese in einer Software speichern/verwalten. Welche Fragen muss sich das Unternehmen dabei stellen?

A
  1. Typ der Software:
    -Ein kommerzielles(ticari) Programm mit vorgeschriebener Modellierungsweise
    -Oder ein eigenes Programm mit angepasster Modellierungsweise
  2. Umfang des Datenmodells:
    -Speziell für eine Anwendung geschaffenes Datenmodell
    -Oder ein Datenmodell welches das ganze Unternehmen einschließt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Randbedingungen für den Umgang mit persistenten Daten existieren?

A
  • Art der Daten
  • Zentrale Vorgaben
  • Hardware
  • Datenschutz
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist ein DBMS (Datenbankmangementsystem)?

A
  • Eine Sammlung von Dateien
  • Software zur Verwaltung von persistenter Daten
  • Definiert ein DB-Modell
  • Stellt Sprachen und Operationen zur Definition, Speicherung, Verwaltung der Daten zur Verfügung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist eine Datenbank?

A
  • Ein elektronisches Archiv
  • Basiert auf einem DBMS
  • Modelliert einen Ausschnitt der realen Welt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche Services in DBMS nach Codd gibt es?

A
  1. Elementare:
    - Speicherung, Abruf, Aktualisierung von Daten
    - Ein für Benutzer zugänglicher Katalog
  2. Erweitert:
    - Unterstützung von Transaktionen
    - Dienste zur Parallelitätssteuerung
    - Wiederhestellungsdienste
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welcher ist der “Trivial” Service von DBMS?

A
  1. Speicherung, Abruf, Aktualisierung von Daten
  2. Mindestumfang:
    - Einfügen
    - Lesen
    - Schreiben
  3. Besondere Aufgabenstellung durch:
    - Performance Anforderungen
    - Zuverlässigkeit
    - Mehrbenutzerbetrieb
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wozu überhaupt ein DBMS?

A
  1. Sichere, persistente Speicherung von Daten Programmübergreifend (programlar arasinda)
  2. DBMS bieten eine Reihe von Diensten, die ihre Anwendung komfortabel und sicher gestalten
  3. Sie bieten eine Modellierung die die Datenbeschreibung systemasiert und vereinheitlicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie ist die Sprache SQL im Bereich der Datenbanken einzuordnen?

A
  • SQL dient zur Definition und zur Bearbeitung von Daten
  • Gibt die Anweisungen an das DBMS weiter, welches dann den Zugriff auf die eigentliche Datenbank vornimmt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welchen Funktionsumfang besitzt SQL?

A
  • Datendefinition
  • Datenmanipulation
  • Datensicherheit
  • Datenschutz
  • Datenwiedergewinnung
  • Datenorganisation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Probleme ergeben sich aus DBMS spezifischen Datentypen?

A
  • Einschränkung der Portabilität der Datenbank (zB. Oracle: Integer -> Number 4 Byte werden zu 38 Byte)
  • Spezifisches Mapping der Standard Datentypen auf interne Datentypen
  • Häufig wird nur ein Sub-Set des Standards abgebildet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Vorteile ergeben sich durch die Verwendung von Views?

A
  • Verringern der Komplexität durch bessere Lesbarkeit der Abfrage
  • Nutzerzugriff kann auf bestimmte Views beschränkt werden -> Der Nutzer hat nur Zugriff auf die vom View gelieferten Daten (Sicherheit)
  • Logische Datenunabhängigkeit:
  • Die Schnittstelle für Anwendungen bleibt bei Änderungen in der Datenbankstruktur stabil
  • Einrichtung einer “Zwischenebene” um eine für den Benutzer angemessene Darstellung zu realisieren (zB. durch Umbenennen von Spalten)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie definiert sich eine Domäne?

A

Domäne ist eine Menge nicht mehr aufteilbarer Werte (atomar)
Bsp: Domäne der Wochentage = {Montag, …, Sonntag}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wo gibt es in RDBMS Domänen?

A

die Datentypen (zB. Integer, Char)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wo gibt es in RDBMS Relationen?

A
  • Spalten sind Domänen
  • Tabellen sind Relationen aus mehreren Spalten
  • zB. Stundenplan = {Mat-Nr, EDV-Nr, Semester}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche beiden Eigenschaften (matematisch) müssen für einen Candidate Key zwingend erfüllt sein?

A
  • Gegeben: Sei R eine Relation. Eine Teilmenge M der in R enthaltenen Menge aller Attribute heißt CK wenn:
  • Eindeutigkeit: Je 2 Tupel aus R unterscheiden sich in mindestens 1 Attribut aus M
  • Irreduzibilität: Jede echte Teilmenge aus M erfüllt die Eigenschaft der Eindeutigkeit nicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist ein Primärschlüssel?

A
  • Ein ausgezeichneter Candidate Key
  • i.d.R. der Candidate Key mit minimaler Attributanzahl
  • vielfach ein künstlicher Zähler
  • darf keine NULL-Werte besitzen
  • in transaktionalen Systemen verfügt jede Tabelle über einen PK
17
Q

Was ist ein Candidate Key?

A
  • Minimale Menge von Attributen.
  • Identifiziert jede Zeile eindeutig.
  • Enthält keine überflüssigen Attribute.
  • Ist eine mögliche Wahl für den Primärschlüssel.
18
Q

Welche Anforderungen müssen gegeben sein um Tabellen zu verknüpfen?

A
  • KONSISTENZ: In Tabelle A- Spalte a dürfen nur Werte vorkommen die in Tabelle B - Saplte b bereits enthalten sind
  • ÜBERWACHUNG: Erfolgt durch das DBMS
  • IMPLEMENTIERUNG IN SQL ÜBER FOREIGN KEY
19
Q

In welcher Reihenfolge müssen Tabellen / Datensätze eingefügt / gelöscht werden die mit einer PK - FK Beziehung verbunden sind?

A
  • EINFÜGEN von Datensätzen: ZUERST auf der PRIMÄRSEITE
  • LÖSCHEN von Datensätzen: ZUERST auf der FOREIGN-SEITE
  • LÖSCHEN von TABELLEN: Analog zu Datensätzen
20
Q

Wie kann man die oben beschriebenen Vorgänge automatisieren?

A
  • Löschen von Datensätzen auf der Foreign-Seite: ON DELETE CASCADE
  • NULL-setzen von FK-Attributen: ON DELETE SET NULL
21
Q

Randbedingungen (Constraints) sind in der Entwicklung, Wartung, Weiterentwicklung oftmals hinderlich! Welche Auswege gibt es in der professionellen Datenbank-Programmierung?

A
  • Restartfähige Skripte
  • Bildung von Befehlspaaren Löschen - Anlegen
  • Tabellen werden mit Ausnahme von Null / not Null ohne Randbedingungen angelegt
  • Zusammenfassung von Drop - Create und Alter Skripten
  • Fehler durch Löschbefehle beim erstmaligen Ausführen in Kauf nehemn
  • Typische Sequenz:
    LÖSCHEN CONSTRAINTS - LÖSCHEN OBJEKTE - ANLEGEN OBJEKTE - ANLEGEN CONSTRAINTS
22
Q

was muss alles beim Ändern von Tavellen beachtet werden?

A
  • bestehende Daten dürfen nicht ungültig werden: Bsp. Null -> Not null; es darf keine Null-Werte in der Spalte geben
  • bestehende Daten dürfen nicht verstümmelt werden: Bsp. kleinere Obergrenze einer Zeichenkette
  • bestehende Bezeichnungen dürfen nicht verletzt werden: Modifizieren eines PK ist nur zulässig, wenn die Tabelle nicht in einer PK-FK Beziehung ist
23
Q

Welche Möglichkeiten gibt es ABfragen über mehrere Tabellen durchzuführen?

A
  • ADDITIVE Mengenopertationen (mehrere Teilabfragen)
  • Multiplikative Verknüpfung (JOIN)
24
Q

Welche Join Arten gibt es?

A

1) KARTESISCHES PRODUKT: In der Form Klausel zwei Tabellen ausgewählt, aber nicht in der Where Bedingung limitiert
2) THETA JOIN: normaler Join, mehrere Tabellen in der Form Klausel, diese in der Where Bedingung limitiert
3) RESTRICTED JOIN: weitere Where Bedingungen
4) NATURAL JOIN: keine Duplizität in der Select Clause
5) SEMI JOIN: nur Element einer Tabelle in der Select Clause
6) MULTIPLE JOIN: mehr als zwei Tabellen im Join
7) AUTO JOIN: Join einer Tabelle mit sich selbst
8) INNER / (RIGHT-LEFT) OUTER JOIN: gibt auch Datensätze zurück, bei denen eine der Spalte keinen Wert hat (Null). Verwendung durch (+) bei where Clause

25
Q

Welche Vorteile/Nachteile bringt die Indexierung einer Tabelle mit sich?

A
  • (pos.) Zugriffsoptimierung einer Tabelle:
  • Ohne Index Komplexität von O(n/2) (sequenzielles Lesen)
  • Mit Index Komplexität von Id(n) (balancierte, binäre Bäume)
  • (neg.) Speichreplatz Problem
  • (neg.) Einfüge-, Lösch-, Aktualisierungsvorgänge dauern länger, da der Index aktualisiert werden muss
26
Q

Was versteht man unter Selektivität in Bezug auf Datenbanken? + Fromel

A
  • Gibt die Güte einer Spalte für die Verwendung eines Index an
  • Selektivität = (distinct(N)/N)*100%>80% entscheidet über die Güte
  • Spalten mit der höchsten Selektivität voranstellen (bei binären, balancierten Bäumen)
27
Q

Wann sollte man einen binären, balancierten Baum als Index verwenden und wann einen Bitmap-Index?

A
  • Hohe Selektivität: binärer, balancierter Baum
  • Niedrige Selektivität: Bitmap-Index
28
Q

Was ist das Ziel einer Anforderungserhebung/-analyse? Wie wird dieses Ziel erreicht?

A
  • Ziel: eine vollständige Auflistung aller Sachverhalte die in den Entwurfsprozess der Datenbank einfließen
  • Voraussetzung: partizipative Systemanalyse (gemeinsames Vorgehen von Analytikern und ausgewählten Nutzervertretern)
29
Q

Welche Vorteile bringt eine partizipative Systemanalyse mit sich?

A
  • Akzeptanzsteigerung bei zukünftigen Anwendern, da diese aktiv in den Entwicklungsprozess eingebunden sind
  • Kommunikation zwischen Systemanalytikern und Anwendern wird vereinfacht
  • Fachwissen der Anwender fließt in die Entwicklung mit ein -> Expertenwissen muss nicht eingekauft werden
30
Q

Welche Methoden bieten sich an um eine Anforderungsanalyse zu erstellen?

A
  • Dokumentanalyse, Selbstaufschreibung, Fragebogentechniken, Beobachtung, Interviews / Workshops
31
Q

Welche Eigenschaften eines Anforderungsdokumentes sind wünschenswert?

A

Korrektheit, Vollständigkeit, Einfachheit, eindeutigkeit, Konsistenz

32
Q

Erläutere das ACID-Prinzip!

A
  • Atomicty: “Alles oder Nichts”; ununterbrechbar
  • Consisteny: Überführung von konsistentem Zustand Z1 in konsistentem Zustand Z2; bei jeglicher Unterbrechung Z1=Z2
  • Isolation: Bearbteitung in einem virtuellen Single-User-Betrieb
  • Durability: Kein Systemfehler darf dazu führen, dass ein erreichter Zustand Z2 wieder verloren geht
33
Q

Nenne und beschreibe die Möglichkeiten zur Konsistenzsicherung in SQL

A
  • in Tabellen durch Constraints: auf Attributebene und Tabellenebene
  • auf Ablaufebene: durch commit, rollback, savepoints
  • auf prozeduraler Ebene: durch Trigger
34
Q

Durch welche Sperrmechanismen wird Parallelitätssteuerung ermöglicht?

A

1) Funktionale Sperr-Ebenen -> Problem der gegenseitigen Behinderung:
-Lese-Sperre
-Schreib-Sperre
-Exklusive-Sperre
2)Physische Sperr-Ebenen -> Reduktion der Auswirkung dieser Behinderung:
-Table-Level
-Page-Level
-Row-Level

35
Q

Was versteht man unter Impedance Mismatch?

A

-Problem: SQL arbeitet Mengenorientiert, Programme arbeiten Satzorientiert
- Select-Befehl liefert unbestimmte Anzahl an Datensätzen
- Um Datensätze einzeln zu bearbeiten wird je nach Einbindung ein Cursor-Iterator-ResultSet folgt den Konzepten der OO, die in vielen Hochsprachen nicht verfügbar sind
-Ausweg ist die Verlegung des Iterators in die Datenbank (PLSQL)

36
Q

Welche unerwünschten Phänomene können im Mehrbenutzerbetrieb auftreten? Erläutere!

A

1) Lost-Update:
-Transaktion A schreibt Wert in X, Transaktion B schreibt Wert in x -> Änderung von Transaktion A wird durch B überschrieben!
2) Dirty Read:
-Lesen eines Wertes der von einer anderen Session geändert wurde aber noch nicht mit Commit bestätigt wurde
3) Non-repeatable Read:
-A liest Wert aus X, B verändert X und Commited, A liest Wert aus X und bekommt einen anderen Wert als bei der ersten Abfrage

37
Q

Wofür kann die SELECT-Anweisung verwendet werden?

A

-Selektion eines bestimmten Datenpools zur:
* Ausgabe von selektierten Daten
* Definition von teemporären Tabellen
* Definition von Views
* weiteren Verarbeitung in geschachtelten Queries
* Bearbeitung des selektierten Pools
* Zusammenführung von Daten aus mehreren Tabellen