Datenbanken Flashcards
Was ist eine Datenbank?
Eine Datenbank ist eine integrierte Ansammlung von Daten, die allen Benutzern eines Anwendungsbereichs als gemeinsame Basis aktueller Information dient.
Welche Probleme gab es bei Dateisystemen?
Inkonsistenz der Daten, Redundanz, Daten-Programm-Abhängigkeit, Inflexibilität
Zeichnen Sie die Schichten einer Datenbank. Erklären Sie die einzelnen Schichten.
Interne Schicht, konzeptuelle Schicht, externe Schicht
Welche Aufgaben hat das DBMS?
Das Datenbankmanagementsystem ist eine Software, die allgemein gesprochen den Zugriff der Programmiererin auf die Daten regelt, also ermöglicht, Daten abzurufen, zu verändern, zu erstellen oder zu löschen und die Datenbank überhaupt aufzusetzen. Konkret übernimmt das DBMS die notwendigen Umsetzungen, ermittelt die Objekte und übergibt die gewünschten Daten in entsprechender Form an das Anwendungsprogramm. Es stellt die Isolationsschicht zwischen Datenbank und Programmierern dar, so dass diese nicht die interne Struktur der Datenbank kennen müssen.
Was ist das Modell der konzeptuellen Schicht?
Das konzeptuelle Modell ist ein Modell des Unternehmens bezüglich aller wesentlicher Daten, deren Beziehungen zueinander, Bedingungen, die für die Daten immer gelten oder Vorschriften für das Ändern von Daten machen (= Integritätsbedingungen), Vorschriften, welche Operationen ausgeführt werden dürfen.
Was ist das Entity-Relationship-Modell?
Das ER-Modell ist ein semantisches Datenmodell (eins der bekanntesten) zum Entwurf von Datenbanken, also für die konzeptuelle Ebene. Als Basiskonstrukte kennt es Entity-Typ (= Objekte gleicher Art), Beziehungs-Typ (= ihre Beziehungen zueinander), die wiederum Attribute haben. Entities können beliebig viele Instanzen haben und beliebig viele Beziehungen zueinander.
Schreiben Sie ein Relationenschema auf.
R=(A_1,…,A_n), R=Relationenschema, A_i=Attribute
Beispiel:
Kundenschema=(Kundennr, Name, Telefon)
Schreiben Sie die Definition einer Relation auf.
R Teilmenge D_1 x D_2 x … D_n ist eine n-stellige Relation über den Mengen und n ist der Grad der Relation
Was sind Relationenkalkül und Relationenalgebra?
Beides sind Spezifikationen der gewünschten Relationen. Eine Relationenalgebra tut dies durch Angabe einer Folge von Operationen, mit denen die Relation(en) aufgebaut werden sollen, beim Relationenkalkül wird - mit Hilfe des Prädikatenkalküls - die Menge der gewünschten Tupel beschrieben. Es wird ein Prädikat (= Bedingung) angegeben, das die Tupel erfüllen müssen.
Was ist funktionale Abhängigkeit?
In Prosa: Wenn bestimmte Attributwerte einer Relation von anderen Attributwerten derselben Relation abhängen.
Mathematisch: Sei R (A_1, A_2, …, A_n) ein Relationenschema und X und Y Teilmengen von {A_1, A_2, … A_n}, dann ist Y funktional abhängig von X, geschrieben X –> Y, wenn es keine Relation vom Typ R geben kann, in der zwei Tupel den selben Wert für X, aber zwei verschiedene Werte für Y haben.
Schreiben Sie die Grundform einer Abfrage in SQL auf. Erklären Sie dazu die Semantik.
SELECT A_1,…, A_n
FROM R_1,…, R_n
WHERE Prädikat(R_1,…, R_n)
Ai ist ein Attribut einer der Relationen R1,…, Rn, Prädikat(R1,…, Rn) ist eine Bedingung, die Attributwerte mit Konstanten oder zwei Attributwerte eines Tupels miteinander vergleicht oder andere Operatoren auf die Attributwerte anwendet. Diese Teilbedingungen können durch die Booleschen Operatoren AND und OR miteinander verknüpft und mit NOT negiert werden.
Welche anderen Möglichkeiten gibt es Abfragen aufzuschreiben?
Mit Relationenalgebra oder Relationenkalkül.
Welche Operationen hat die Relationenalgebra?
Als Grundoperationen gelten Vereinigung, Differenz, Kartesisches Produkt, Projektion, Selektion. (evtl. Umbenennung - wird im Skript benutzt)
Können alle Relationen vereinigt werden?
Nein, sie müssen vereinigungsverträglich sein, die Teilmengen also bezüglich ihrer Bezeichnung und Wertebereiche übereinstimmen
Wie wird kartesisches Produkt gebildet?
Durch Kombination aller Attribute verschiedener Relationen
Welche Bedingung muss gelten, damit das kartesische Produkt gebildet werden kann?
Alle Attribute der betreffenden Mengen müssen verschieden sein.
Was ist ein Join?
Eine Kombination/Verbund von Tupeln aus zwei Relationen, die bzgl. eines Feldes aus beiden Relationen einem vorgegebenen Vergleich genügen.
Wie kann der Join in den Grundoperationen formuliert werden?
Kartesisches Produkt und Selektion
V = Sigma R_i theta S_j (R x S) (wobei theta = Verbundbedingung.
Was ist ein Natural Join?
Ein Verbund der Tupel aus zwei Relationen, bei denen denen jeweils die Attribute gleichen Namens aus beiden Relationen übereinstimmen (diese sind im Ergebnis nur einmal vorhanden)
Welche Grundoperation ist zusätzlich (im Vergleich zum Join) nötig um den Natural Join auszudrücken?
V = Sigma R_i = S_j (R x S), ‘=’ ist die konkrete Verbundbedingung theta)
Was ist ein Datenbank-Management-System (DBMS)?
dient zur Kontrolle der Datenbank: Ein Softwaresystem, das ermöglicht, deine DB zu definieren, Daten zu speichern, zu verändern, zu löschen und Anfragen an die DB zu stellen.
Das DBMS isoliert die DB von den Anwendungsprogrammen und sorgt dafür, dass der Nutzer die Details der DB nicht kennen muss.
Was ist ein Datenbanksystem (DBS)?
DB und DBMS = Datenbanksystem (DBS)
Was für Schichten/Datenebenen gibt es und wozu sind sie gut?
Logische Gesamtsicht: Beschreibung der Gesamtheit der Unternehmensdaten inklusive ihrer Beziehungen zueinander
interne Sicht: Datenorganisation der Daten auf den Speichern, so dass verschiedene Nutzer möglichst effizient auf die gewünschten Daten zugreifen können
externe Sichten: Sicht einzelner Benutzergruppen, jeweils auf die Ausschnitte, die für sie wichtig sind.
Welche Datenmodelle gibt es?
relationales, objektrelational, objektorientierte Datenmodelle; ER-Modell
Welche zwei Arten von Datenunabhängigkeit gibt es?
Physische Datenunabhängigkeit: Isolierung der Anwendungsprogramme von Änderungen der physischen Datenorganisation. In der Drei-Schichten-Architektur lassen Änderungen des internen Modells das konzeptuelle Modell unberührt, sie werden durch Änderung der Transformationsregeln aufgefangen. Somit bleiben auch die externen Modelle unberührt.
Logische Datenunabhängigkeit: Isolierung der Anwendungsprogramme von Änderungen des konzeptuellen Modells. Bestehende externe Modelle bleiben von Änderungen wie Hinzufügen von Attributen oder neuen Beziehungen unberührt, nur die Transformationsregeln müssen ggfs abgeändert werden.
Statische vs. Dynamische Datenunabhängigkeit: bei Binden zur Übersetzungszeit muss das Anwendungsprogramm nach Änderungen des internen/konzeptuellen Schemas neu übersetzt werden (statische DU), bei Binden zur Zugriffszeit nicht (dynamische DU), ist aber mit hohen Kosten verbunden.
Wie werden Daten im konzeptuellen Modell beschrieben?
Die Realwelt wird mittels (semantischem) Datenmodell beschrieben, das nicht unmittelbar vom DBS unterstützt wird, daraus wird dann ein semantisch „ärmeres“ konzeptuelles Model für das DBS abgeleitet. Es sind Konstrukte/“Bauelemente“ vorgegeben, mit denen das konzeptuelle Modell erstellt werden muss. Das Datenmodell muss mächtig genug sein, um alle wichtigen Aspekte der Realwelt beschreiben zu können und zugleich eine einfache, effiziente Implementierung auf der internen Ebene zu ermöglichen.
Wie ist die mathematische Notation des Relationenmodells?
Ein Relaionenschema R(A_i,…,A_n) spezialisiert eine Relation mit Namen R und mit den paarweise verschiedenen Attributen A_1,…,A_n .
Jedem Attribut Ai ist ein Wertebereich dom(A_i) zugeordnet.
Die Wertemengen verschiedener Attribute können identisch sein.
Die zu R(A_1,…,A_n) zugehörigen Relationen sind sämtliche Relationen des Typs R, Teilmenge dom(A_1) x dom(A_2) x…x dom(A_n)
Welche Beziehungstypen gibt es?
1:1-, 1:n-, n:m-Beziehungen
Was ist ein Schlüssel?
Ein Schlüssel macht Entity-Typen/Tupel einer Relation unterscheidbar: die minimal nötige Menge der Attribute, die eine Relationeninstanz eindeutig beschreiben = Primary Key, weitere heißen candidate keys.
Ein Fremdschlüssel ist ein Attribut oder eine Attributkombination einer Relation, welches auf einen Primärschlüssel einer anderen oder der gleichen Relation verweist.
Schlüssel im Kontext Normalisierung: X ist Schlüssel von {A1, …, An} genau dann wenn X –> {A1, …, An} e F+ und {A1, …, An} ist voll funktional abhängig von X
Wie arbeitet die Relationenalgebra?
Spezifikation von gewünschten Relationen durch Angabe einer Folge von Operationen, mit der die Relationen aufgebaut werden sollen.
Der Benutzer wendet spezielle Operationen auf Relationen an, um seine gewünschte Relation zu konstruieren
Welche Vorteile bietet das konzeptionelle Modell?
- stellt stabilen Bezugspunkt für alle Anwendungen dar
- stellt eine einheitliche Dokumentation wesentlicher Aspekte dar
- bietet die Möglichkeit, den Gebrauch der Daten an zentraler Stelle zu kontrollieren
- schafft wesentliche Voraussetzung für Datenunabhängigkeit der Anwendungsprogramme
Wie ist das ER-Modell aufgebaut?
Das ER kennt folgende Basiskonstrukte:
- Entity-Typ
- Beziehungstyp
- Attribute von Entity-Typen und Beziehungstypen
- beliebig viele Instanzen von Entities und Beziehungen
Wie werden Daten aus einer DB abgefragt?
- DBMS empfängt Befehl vom Anwendungsprogramm, ein bestimmtes Objekt eines externen Modells zu lesen
- DBMS holt sich Definitionen des entsprechenden Objekttyps aus dem zugehörigen externen Schema
- Mithilfe der Transformationsregeln extern/koneptuell stellt das DBMS fest, welche konzeptuellen Objekte und Beziehungen benötigt werden
- Mit Hilfe der Transformationsregeln konzeptuelles/internes Schema stellt das DBMS fest, welche physischen Objekte zu lesen sind, es ermittelt die auszunützenden Zugriffspfade
- DBMS übergibt Betriebssystem die Nummer der zu lesenden Speicherblöcke
- Betriebssystem übergibt die verlangten Blöcke an das DBMS in einem Systempuffer
- Mit Hilfe der Transformationsregeln stellt DBMS aus den vorhandenen physischen Sätzen das verlangte externe Objekt zusammen
- DBMS übergibt das externe Objekt dem Anwendungsprogramm in seinen Arbeitsspeicher
- Anwendungsprogramm verarbeitet die Daten
Definiton Relation
Mathematisch: R D1 x D2 x …x Dn ist eine n-stellige Relation über den Mengen (domains) und n ist der Grad (degree) der Relation. (Di x Dj = kartesisches Produkt)
Definition Tupel
Mathematisch: Ein Element r = (d1, d2, …, dn) e R (di e Di, i = 1, …, n) ist ein Tupel einer Relation R (n-Tupel), di ist i-te Komponente des Tupels.
Einfache Abfrage mit Join und Filter zu den Relationen im Relationenkalkül notieren Die gleiche Abfrage zu den Relationen in SQL notieren
Zwei Tabellen:
ANGEST(NAME,BERUF,ID,OFFICENR)
OFFICE(ID,STANDORD,OFFICELEITER)
Wir suchen Standorte, in denen ein Programmierer beschäftigt ist.
SQL: SELECT STANDORT FROM ANGEST JOIN OFFICE ON ANGEST.OFFICENR=OFFICE.ID WHERE BERUF= ‘PROGRAMMIERER‘
Relationenkalkül:
{(OFFICE.STANDORT)|OFFICE.ID=ANGEST.OFFICENR „logisches und“ ANGEST.BERUF=‘PROGRAMMIERER‘}
Definition der 3 Normalformen
1NF=Die Relationen, wie wir sie definiert haben, sind bereits in erster Normalform. Das bedeutet: die Werte der Wertebereiche jedes Attributes sind unteilbare Werte und nicht ihrerseits wieder Mengen oder Tupel
bestehen.
2NF=Eine Relation R ist in zweiter Normalform, wenn jedes Nichtschlüsselattribut A von R voll funktional abhängig von jedem Schlüssel X von R ist.
3NF=Ein Relationenschema R mit Pd-Menge F ist in dritter Normalform, wenn für alle X➔A E p+ mit A nichtelement X gilt: X enthält einen Schlüssel für R oder A ist Schlüsselattribut.
Ähnelt eine SQL-Abfrage eher dem Relationenkalkül oder der Relationenalgebra ?
Eher dem Relationenkalkül. Man spezifiziert in der Abfrage, WAS man erhalten will, nicht WIE das geschehen soll.