Modellierung
Klausurvorbereitung Modellierung
Klausurvorbereitung Modellierung
-
- 1 / 56
-
Cartes-fiches
Was sind Eigenschaften eines Datenbank Management Systems?
- organisiert sehr hohe Mengen an Daten
- unterstützt effizienten Zugang zu diesen Daten
- unterstützt ggf.s auch den paralellen Zugriff auf diese Daten
- unterstützt sicheren atomaren Zugang zu ihnen
Was sind Eigenschaften einer Datenbank?
- Fehlertoleranz
- Aufzeichnung von Daten während einer normalen Operation
- Automatische Reperatur
- rückgängig machen von nicht beendeten Operationen
- beenden von abgeschlossenen Transaktionen
- Mehrbenutzeroperationen
- gleichzeitiger Zugriff von verschiedenen Benutzern auf die gleichen Daten
- Synchronisierung
Transaktionseigenschaften (ACID)
- Atomizität: Transaktionensänderungen sind atomar, entweder alle Änderungen werden aufgenommen oder gar keine; dies beinhaltet Datenbankänderungen, Nachrichten und Aktionen auf den Transducer
- Konsistenz: Transaktionen müssen korrekt verlaufen und nicht die Intigrität eines Zustandes ändern
- isolierte Ausübung: trotz Gleichzeitigkeit darf eine Transaktion T nur vor oder nach einer anderen Transaktionen angewendet werden, nicht beides gleichzeitig (keine Verschachtelung)
- Dauerhaftigkeit: Daten nach dem erfolgreichen Abschluss einer Transaktion sind garantiert dauerhaft in der Datenbank gespeichert
Welche Datenbank Entwurfssprachen gibt es?
- Entity-Relationship Model ERM
- Unified Model Langugage UML
- Extended Markup Language XML
- Standard for the Exchange of Product Defintion Data STEP
Was ist eine Entität?
Eine Entität ist ein Ding, das existiert (physisch und mental) und unterscheidbar ist von anderen Objekten
Was ist eine Entitätsmenge?
Eine Menge von Entitäten des gleichen Typs, die die gleichen Eigenschaften teilen
Was ist eine Datenbank (ER-Modell)?
Eine begrenzte Anzahl an Entitätsmengen, die sich nicht unbedingt klar von einander abgrenzen müssen (Person kann z.B. auch Kunde sein und umgekehrt)
Was ist eine Relation?
Eine Verbindung unter mehreren Entitäten
Was ist eine Relationsmenge?
Eine mathematische Relation zwischen mehr als 2 Entitäten und Entitätenmengen: \(R\subseteq E_1 \times E_2 \times E_3 \times ...\times E_n \) mit \(n\geq 2\) und\(\Rightarrow R=\{(e_1,e_2,...,e_n)|e_1 \in E_1, e_2 \in E_2 ,...,e_n \in E_n \}\)und \((e_1,e_2 ,...,e_n )\) ist eine Beziehung.
Was ist eine Domain?
Eine Menge an erlaubten Werten
Was sind Attribute?
beschreibende Eigenschaften , die auch alle Entitätsmengen beschreiben (sie können simpel, zusammengesetzt, mehrwertig, nullwertig oder abgeleitet sein)
Was ist ein Super Key?
Ein Attribut, deren Werte eine Entitätsmenge eindeutig beschreiben
Was ist ein Candidate Key?
Ein Superkey, dass keine redundanten Attribute mehr hat und nicht weiter reduzierbar ist. Es kann mehr als nur einen Candidate Key geben.
Was ist ein Primary Key?
Einer von den Candidate Keys, dass sich dafür eignet die Entitätsmenge eindeutig zu identifizieren. Manchmal ist es nötig diesen künstlich zu erzeugen (z.B. Rentenversicherungsnummer).
Was ist ein Weak Entity Set?
Ein Entitätsmenge, die keinen Primary Key hat. Sie muss sich auf eine Strong Entity Set beziehen mittels one-to-many Verbindung.
Wie vererben ER-Modelle?
- Superclass Eigenschaften werden an Subklassen weiter vererbt
- dadurch keine Wiederholung von beschreibenden Informationen (kürzer)
- Fehlervermeidung
- vererbt werden Attribute, Konstanten und default Werte, sowie Beziehungen, Methoden, Prädikate und Operationen
Was sind die fundamentalen Regeln des Relationalen Models?
- Jede Zeile (Tupel) ist einzigartig und beschreibt eine Entität der Miniwelt.
- Bedeutende Informationen werden einzig und allein durch Werte dargestellt.
- Jeder Datenwert ist ein atomares Datenelement in der Tabelle
- Ein Primärschlüssel existiert und machmal auch mehrere zusätzliche candidate keys.
- Die Anordnung von Zeilen ist nicht relevant.
- Die Anordnung der Spalten ist nicht relevant.
Was ist ein foreign key?
Was gilt für foreign keys?
- sie können NULL Werte haben, wenn sie nicht Teil eines Primärschlüssels sind.
- candidate keys dürfen keine NULL Werte haben
- Eine Tabelle kann mehrere foreign keys haben, die zu einer anderen oder zur gleichen Tabelle referenzieren.
- referenzierte und referenzierende Tabelle müssen nicht unbedingt verschieden sein (selbstreferezierend)
- Zyklen sind möglich.
Zwei Entitätsmengen + One-To-Many Relationsmenge
Die n-entity bekommt als Fremschlüssel dne Primärschlüssel der 1-entity. Ausnahme: die Relation hat zusätzliche Attribute, dann Extratabelle für die Relation
Schwache Entitätsmenge
Zwei Tabellen. 3 Tabellen nur wenn die Relation beschreibende Attribute hat.
Relationale Algebra (Operatoren)
- Selektion : \(\delta_p(R)\) Ausfall einer Spalte einer Tabelle durch Prädikate. Ergebnis ist Teilmenge der Tabelle.
- Projektion: \(\pi_p(R)\)wählt Teilmenge der Attribute aus, also Spalten. Duplikate werden entfernt.
- Vereinigung: \(R'=R_1\cup R_2\)nur bei gleichen Schemata anwendbar, vereinigt zwei Tabellen.
- Differenz: \(R'=R_1-R_2\) nur bei gleichme Schemata anwendbar, entfernt R2 von R1
- Kreuzprodukt: \(R'=R_1\times R_2\)Schemata egal, jedes Tupel aus R1 wird mit jedem Tupel aus R2 zusammengeführt
- Umbenennung: \(R'=\rho_{R'}(R)\)Alias wird definiert, möglichst ist auch eine Umbenennung von einzelnen Atributen
- Join: Karthesisches Produkt und Selektion (Hintereinanderausführung \(\Rightarrow R\bowtie _{Ausdruck}S:=\delta_{Ausdruck}(R\times S)\)
Wie sieht eine typische SQL Anfrage aus?
SELECT A1, A2,…An (Attribute)
FROM r1, r2, … rm (Tabellen bzw. Relationen)
WHERE P (Prädikat)
Das Resultat einer SQL Anfrage ist eine Tabelle
Wie verhindert man Duplikate im Ergebnis der SQL Anfrage wie verhindert man dies?
Durch das Keyword DISTINCT nach SELECT
SELECT DISTINCT projectno
Durch das Keyword ALL nach SELECT wird das verhindert.
Was bewirkt das Keyword BETWEEN in der WHERE Abfrage?
Beschränkt den Ausgabebereich
WHERE budget BETWEEN 200000
AND 10000000
Was macht die FROM Klausel?
Sie entspricht dem karthesischem Produkt der Tabellen die gescannt werden.
Welche String Operationen gibt es in SQL?
(%): Suche nach Substrings (Anknüpfungen)
(_): Suche nach Einzelzeichen
Was bewirkt das Keyword ORDER BY?
Ergebnis in aufsteigender Reihenfolge (default) oder absteigend mit Keyword DESC
FROM parts
ORDER BY description DESC
Was bewirkt ein * ?
Auswahl aller Attribute in der Tabelle
Welche arithmetischen Operationen gibt es bei SQL Abfragen als Keyword?
- AVG: Durschnittswert
- MIN: Minimum
- MAX: Maximum
- SUM: Summe
- COUNT: Anzahl an Zeilen oder Werten (wie viele verschiedene Werte?)
Beispiel: Durchschnittsbudget aller Projekte:
SELECT AVG(budget)
FROM projects
Was bewirkt GROUP BY?
Gruppierung nach Attribut
Was bewirkt die HAVING Klausel?
Muss nach GROUP BY erfolgen. Bewirkt die Auswahl der Gruppen die ins Resultat einbezogen werden zu wählen.
Schritte einer SQL Abfrage
- Die Tabelle, die überprüft wird, wird aus der FROM Klausel bezogen
- Das karthesische Produkt aller Tabellen in der FROM Klausel wird gebildet
- Alle Zeilen, die die WHERE Klausel erfüllen, werden selektiert (das Prädikat muss wahr sein)
- Die Zeilen werden in verschiedene Gruppen getrennt, die von der GROUP BY Klausel bestimmt werden.
- Gruppen, die die HAVING Klausel erfüllen, werden selektiert
- Die Ausgabe wird von der SELECT Klausel abgeleitet
- Die Ergebnistupel werden durch das ORDER BY geordnet.
Was bewirkt das Keyword IS NULL oder IS NOT NULL?
Überprüft auf NULL Werte
SELECT partno
FROM parts
WHERE projectno IS NULL
Was sind Armstrong Axiome?
- wenn \(\beta\subseteq\alpha\), dann \(\alpha \rightarrow \beta\)(Reflexivität)
- wenn \(\alpha\rightarrow \beta\), dann \(\gamma \alpha\rightarrow\gamma\beta\) (Vermehrung/Augmentation)
- wenn \(\alpha\rightarrow \beta \), dann \(\beta\rightarrow\gamma\) , dann \(\alpha\rightarrow \gamma\) (Transitivität)
- Wenn \(\alpha\rightarrow \beta \) und ,\(\alpha\rightarrow \gamma\) dann \(\alpha\rightarrow \beta\gamma\) (Vereinigung)
- Wenn \(\alpha \rightarrow\beta\gamma\) und \(\alpha \rightarrow \beta\), dann \(\alpha\rightarrow\gamma\)(Dekomposition)
- Wenn \(\alpha \rightarrow \beta\) und \(\beta\gamma \rightarrow \delta\) , dann \(\alpha\gamma \rightarrow \delta\) (Pseudotransitivität)
Was ist der Closure Algorithmus?
R=(A,B,C,G,H,I)
F=(A -> B, A -> C, CG -> H, CG -> I, B -> H)
AG^+
Result =AG
=ABG
=ABCG
=ABCGH
=ABCGHI
Candidate key?
- AG -> R in F^+
- A -> R in F^+
- G -> R in F^+
Was sind die Kriterien für die First Normal Form?
- Werte jedes Attributs sind atomar
- Keine zusammengesetzten Werte
- Alle Einträge in einer Spalte müssen gleichen Typs sein
- Jede Spalte muss einen einzigartigen Namen haben
- Keine zwei Zeilen dürfen identisch sein