Nenne die Vorteile von Datenbanken gegenüber einfachen Datein für besonders große Datenmengen
Spezifische und einfach zu nutzende Funktionen für die Auswertung.
Optimiert auf komplexe Auswertungenund große Datenbenken, dadurch sehr viel
effizienter. Es müssen nur tatsächlich genutzen Daten gelesen & geschrieben werden.
Gleichzeitiger Zugriff mehrerer Benutzer auf die Daten.
Feingranularer Zugriffschutz, d.h. Benutzerrechte können festgelegt werden.
Unterstützen die Zuverlässigkeit des Systems, bei einem Absturz / Schreibfehler
kann ein konistenter Zustand wiedergestellt werden und es kann vollzogen werden, welche Änderungen umgesetzt / nicht umgesetzt worden
Was bedeutet die Abkürzung DBMS?
Datenbankmanagementsystem
Grafik: Datenbank, Datenbankmanagementsystem und Datenbanksystem
(Erstelle ein Use-Case: Datenbanksystem)
Aufbau:
Was sind Datenbanken
Enthalten die gespeicherten Daten in einem effizienten Format auf einem Speichermedium z.B. Festplatte
Beschreibe Datenbankmanagementsysteme (DBMS)
Softwaresystem zum Betrieb von Datenbanken wird Datenbankmanagementsystem (DBMS) genannt.
Verwalten und stellen Funktionen zum Zugriff auf die Datenbank bereit.
Zugriff einer Anwendung auf eine Datenbank geschieht über das DBMS und nicht direkt auf die Datenbank.
Typische Vertreter sind MySQL, Orcacle, Microsoft SQL Server & IBM DB2
Beschreibe Datenbanksysteme
Kombination aus Datenbank + Datenbankmanagemensystem
Was ist die am weitesten verbreiteste Art und Weise, die Speicherung von Daten zu organisieren?
Relationales Datenmodell (RDBMS)
Wie ist der Aufbau einer relationalen Datenbank?
Bringe eine Beispielrelaltion: Kunde
Was ist ein Identizifierer?
Damit werden Attribute bezeichnet, deren Werte bezogen auf alle Datensätze nur einmal
vergeben werden.
Dies dient der eindeutigen Identifikation eines Datensatzes.
Es darf keine zwei Datensäte mit demselben ID-Wert geben
Wie werden Identifizierer in relationalen Datenbanken bezeichnet?
Primärschlüssel / primary key
Nenne die verschiedenen Typen von Beziehungen anhand ihrere Kardinalität
1:1 Beziehung
1:N Beziehung
N:M Beziehung
Erkläre die 1:1 Beziehung
Genau ein Objekt mit einem Objekten (Hauptwohnsitz)
Erkläre die 1:N Beziehung
Genau ein Objekt mit mehreren Objekten (Lieferadresse)
Erkläre die N:M Beziehung
Mehrere Objekt mit mehreren Objekten (Rechnungsadresse)
Was wird benötigt um N:M Beziehungen abzubilden?
Beziehungstabellen
Was ist eine Beziehungstabelle?
Wird genutzt um N:M Beziehungen abzubilden
Hat als Attribute die Identifizierer der Relation, die sie in Beziehung setzen soll
Besteht nur aus Fremdschlüsseln
Beispiel:
ADRESSID der Realtion ADRESSE sowie
KUNDEID der Relation KUNDE
Grafik: Beziehungstabelle für N:M-Beziehungen
Der Primärschlüssel der Tabelle RECHNUNGSADRESSE ergibt sich aus der Kombination von ADRESSID und KUNDEID. Damit handelt es sich um einen zusammengesetzen Primärschlüssel
Beschreibe ganz allgemein das Eintragen von Datensätzen in relationale Datenbanken
1. Auswahl der gesuchten Relaltionen (Tabellen), in denen die gewünschte Information eingetragen werden soll
2. Einfügen des Objektes (Datensatz) mit den entsprechenden Attributwerten; dabei
3. darauf achten, dass die Primärschlüsseleindeutig gesetzt werden und keine Fremdschlüssel ohne dazugehörigen Primärschlüssel entstehen
Was ist eine "Relation"?
Ist die Teilmenge des kartesischen Produkt
Was ist eine "Tabelle"?
Eine Tabelle ist eine Veranschaulichung einer Realation, in der Werte stehen, die zur Relation
gehören
Was ist ein "Datensatz"?
Tabellenzeile
Ist ein Element der durch die Tabelle veranschaulichten Relation
Was ist "Entität" ? (engl. entity)
Eigenständige Einheit z.B. ein Geschäftsobjekt
Ist eindeutig identifizierbar
Jeder Datensatz einer Datenbank ist eine Entität
Was ist ein "Attribut" (eng. attribute, property)
Spalte einer Tabelle
Konkrete Eigenschaften von Entitätenwerden als Attribute beschrieben
Haben einen Namen (Bezeichner) und einen genau festgelegten Wertebereich (Domäne)
Was ist "Domäne"? (eng. domain)
Bezeichnung für den Wertebereich eines Attributes
Was ist die "Entitätsmenge"?
Menge von Entitäten von einem Entitätstyp
Alle in einer Tabelle gespeicherten Datensätze bilden eine Entitätsmenge
Was ist der "NULL-Wert"? (auch: NULL)
Existiert zu einem Attribut einer Tabelle kein Wert, wird der Attributswert mit NULL gekennzeichnet.
Bedeutet: Keine Information zum Attribut gespeichert
Verbraucht genauso viel Speicher wie ein gültiger Wert
Tabellen mit vielen NULL-Werten sollen vermieden werden
Was ist der Primärschlüssel (engl. primary key)?
Ein Attribut oder eine Menge von Attributen mit dessen Hilfe eine Entität von einer gleichartigen Entität eindeutig unterschieden werden kann.
Es darf keine zwei Entitäten mit gleichen Werten in allen Attributen geben - sonst nicht unterscheidbar
Einfacher Primärschlüssel = durch genau ein Attribut abgebildet
Zusammengesetzer Primärschlüssel = Besteht aus mehrere Attributen
Schlüssel darf nicht NULL sein
Was ist ein Künstlicher Schlüssel (eng. surrogate key)?
Ein zusätzliches Attribut einer Relation, das als Primärschlüssel verwendet wird, wenn es keinen natürlichen und eindeutigen Primärschlüssel gibt.
Häufig ein automatischer Ganzzahltyp
Nur in der Datenbank von Bedeutung, keine fachliche Verbindung
Unterschied INNER JOIN: ON & Using
ON beide Spalten sind erhalten
USING Vergleichsspalten werden zusammengefasst
Was versteht man unter Isolationslevel ?
Kompromiss zwischen Datenkonsistenz und Mehrnutzerbetrieb
Grad gleichzeitiger Ausführung von Transaktionen gezielt konfiguriert
Erläutere AUTOCOMIIT
Option eines DBMS bei dem jedes einzelne SQL-Statement automatisch als Transaktion
durchgeführt wird.
Erläutere COMMIT und ROLLBACK
COMMIT: Änderung gespeichert
ROLLBACK: Änderung rückgängig gemacht
Wofür muss das Transaktionsmanagement eines DBMS sorgen im Falle von eintreffenden Gefahren für die Konsistenz?
Das nicht vollständig ausgeführte Operationen den Datenbestand verändern kann.
Was ist ein „Non-repeatable Read“ und wie kann er verhindert werden?
Ein Non-repeatable Read ist ein Isolationsphänomen und bezeichnet einen Effekt, bei dem ein mehrmaliges Lesen derselben Daten einer Datenbank innerhalb einer Anfrage jeweils unterschiedliche Ergebnisse zurückliefert. Dieser Effekt kann durch das Fordern der Isolationslevel „Repeatable Read“ oder „Serialize“ verhindert werden.
Erkläre Serialize
Stellt sicher, das beim mehrfachen Lesen innerhalb einer Transaktion jeweils immer die gleichen Datenmengen zur Verfügung steht. Verhindert somit alle Isolationsphänomene.
Erkläre Repeatable Read
Stellt sicher, dass beim mehrfachen Lesen des gleichzeitigen Datensatz die gleichen Daten zur Verfügung stehen. Verhindert jedoch keine Abweichung durch Einfügen oder Löschen Phantom Read kann auftreten
Was ist ein Fremdschlüssel?
Ein Attribut einer Tabelle das auf einen Primärschlüssel einer anderen Tabelle referenziert
Für jeden Fremdschlüssel muss es einen Primärschlüssel geben (referentielle Integrität)
Was ist die referentielle Integrität?
Eigenschaft einer Tabelle, dass alle verwendeten Fremdschlüssel auch tatsächlich als Primärschlüssel in einer anderen Tabelle verwendet werden und damit eine gültige Referenz auf einen anderen Datensatz existiert.
Was ist Konsistenz?
Datensätze müssen fachlich korrekt und widersprichsfrei sein
Fachliche als auch technische Bedingungen wie die referentielle Integrität müssen erfüllt
werden
Zentrale Aufgabe des Datenbankmanagementsystems
Erläutern Sie die Begriffe Entität, Tabelle, Spalte und Datensatz sowie deren Zusammenhang.
Entitäten sind Elemente, die in einer Datebank gespeichert werden. Alle Entitäten haben die
gleiche Menge an Attributen.
In relationalen Datenbanken sind die gespeicherten Daten in Form von Tabellen
organisiert. Jede Zeile einer Tabelle enthällt einen Datensatz.
Ein Datensatz sind Informationen, die zu einer Entität gehören.
Jede Spalte einer Tabelle speichert den Wert für ein bestimmtes Attribut, mit dessen Namen sie bezeichnet wird.
Was ist die häufigste Operation die in einem Datenbank durchgeführt wird?
Suchen und Zurückliefern von Daten aus einer Datenbank
Was bedeutet SQL ausgeschrieben?
Structured Query Language
Erkläre “Non-repeatable Read”
Phänomen bei dem durch das mehrmalige Lesen derselben Daten jeweils unterschiedliche Ergebnisse zurückgeliefert werden.
Was ist SQL?
Programmiersprache für Datenabfragen
Stellt eine universelle Schnittstelle gegenüber relationalen Datenbanksystemen dar.
Datenbanken können mit SQL erstellt, Zugriffsrechte gesteuert & Daten zugegriffen werden
International standardisiert (ISO / IEC 9075)
In welche Teilsprachen lässt sich SQL einteilen?
Data Manipulation Language (DML)
Data Definition Language (DDL)
Transaction Control Language (TCL)
Data Control Language (DCL)
Erkläre die "Data Manipulation Language" (DML)
Befehle zum Lesen und Ändern der gespeicherten Daten
Beschreibe die "Data Definition Language" (DDL)
Befehle zur Erstellung und Änderung des Datenschemas, also der logischen Strukutu einer Datenbank
Beschreibe die Transaction Control Language (TCL)
Befehle zum kontrollierten Ausführen und Überwachen von komplexen Befehlen der DML
Beschreibe die "Data Control Language" (DCL)
Befehle zur Verwaltung von Zugriffsrechten
Was wird benötigt um relationale Datenbanken betreiben und verwenden zu können?
Ein Datenbankmanagementsystem
Schnittstelle zur Abfrage und Manipulation der Daten (SQL)
Beschreibe die grundsätzliche Vorgehensweise beim Suchen von Datensätzen in relationalen Datenbanken
1. Bestimmung der Relationen (Tabellen) in der Datenbank, in denen die gesuchte
Information abgelegt ist. Inklusive aller Tabellen, die ggf. die gesuchte Information
nicht direkt enthalten, jedoch zur Identifikation der konkreten Datensätze
benötigt werden z.B. Beziehungstabellen
2. Die konkreten Attribute in den in Schritt 1 gewählte Relation müssen identifiziert
werden, die als Ergebnis zurückgegeben werden sollen.
3. (Die gesuchten Attributwerte nach Kritieren einschränken)
4. (nach festgelegten Kriterien sortieren)
Beispiel "Suchen und Zückliefern" Kunde Hr. Schwarz
1. KUNDE und ADRESSE sind die relevanten Relationen, die Beziehung LIEFERADRESSE zwischen KUNDE und ADRESSE ist im Attribut KUNDEID in der Relation ADRESSE gespeichert
2. Ermitteln der KUNDEID von Hr. Schwarz, Ermitteln aller Adressen, deren Wert in
KUNDEID mit der KUNDEID von Hr. Schwarz übereinstimmt.
3. Einschränken der gefundenen Adressen auf die Attribute PLZ und ORT.
Ergebniss: (60311 Frankfurt), (10117 Berlin)
Was ist für die genaue Formulierung von Suchanfragen an eine Datenbank nötig?
Kenntniss des Datenmodells
Fachliche Bedeutung von Fremdschlüsseln, st oft nicht direkt aus dem Datenmodell erkennbar, sondern nur in der Dokumentation zu finden
Was muss nach dem Löschen sicherstellt werden?
Das alle übrigen Datensätze fachlich konsistent und vollständig gespeichert sind
Sicherstellen, das nach dem Löschen der Objekte aus der Datenbank keine
Fremdschlüssel gibt, die nicht aufgelöst werden können (referentielle Integrität).
Nenne die grundsätzliche Vorgehensweise beim Löschen von Datensätzen
1. Auswählen der Relationen (Tabellen) in der Datenbank, in denen die zu löschenden Objekte abgelegt sind. Inklusive aller Tabellen, die ggf. die gesuchte Information nicht direkt enthalten, jedoch zurIdentifikation der konkreten Datensätze benötigt werden z.B. Beziehungstabellen
2. Identifikation der zu löschenden Datensätze anhand der in der Löschanfrage formulierten Kriterien.
3. Sicherstellen, das nach dem Löschen der Objekte aus der Datenbank keine Fremdschlüssel gibt, die nicht aufgelöst werden können (referentielle Integrität).
Beispiel: Löschen von Datensätzen Frau Bauer
1. KUNDE und ADRESSE sowie alle Beziehungstabellen sind relevante Relationen, die beim Löschen berücksichtigt werden müssen
2. Ermitteln der KUNDEID von Fr. Bauer, dann Ermitteln und Entfernen aller Datensätze in den Beziehungstabellen, deren Wert in KUNDEID mit der KUNDEID von Fr. Bauer übereinstimmt. Entfernen des Datensatzes der Kundin Fr.Bauer in der Tabelle KUDNE. Entfernen aller Datensätze in ADRESSE, die nicht mehr in einer Beziehungstabelle verwendet werden. Das betrifft die Adressen 5 & 6 in Tabelle 10, während die Adressen, 3 und 4 nicht gelöscht werden dürfen, da sie auch von anderen Kunden verwendet werden.
3. Sicherstellen, dass nach dem Entfernen aller Daten alle Fremdschlüssel in den
Beziehungstabellen auf einen gültigen Datensatz referenzieren.
Außerdem gibt es in der Tabelle der Rechnungsadressen, unabhängig vom Löschen der Kundin Silke Bauer, den Eintrag (3;098483), zu dem es keinen passenden Eintrag in der
Kundendatei gibt. D.H. dieser Datensatz muss ebenfalls gelöscht werden
Wrum reicht nur die Kenntnis der Struktur der Datenbanktabellen oft nicht aus, um
Suchanfragen formulieren zu können?
Die fachliche Bedeutung von Fremschlüsseln ist oft nicht direkt aus dem Datenmodell erkennbar, sondern nur in der Dokumentation zu finden.
Sie ist nicht direkt aus der Relation ablesbar. Ebenso ist nicht klar aus einer Datenbanktabelle ersichtlich, welche fachliche Bedeutung ein Fremdschlüssel hat, bzw. in welcher fachlichen Beziehung Tabellen zueinaner stehen, die per Fremdschlüssel technisch verbunden sind.
Was für eine Operation ist das abfragen einer Tabelle aus einer Datenbank?
Read-only-Operation
SQL Befehlt: SELECT
Was ist SELECT?
Eine Datenbankabfrage bei dem der Inhalt von einer oder mehreren Tabellen ausgegeben wird
Grafik: Beispiel für eine einfach SELECT-Anfrage
Aus was besteht ein gültiges SELECT-Statement?
SELECT und FROM - rest optional
Endet mit ";"
Beispiel: SELECT Name, Age FROM Personalbestand;
Ausgabe: Eine virtuelle Tabelle
Was wird verwendet um mittels SELECT alle Spalten auszugeben?
Schreibe den Code
SELECT * FROM Country;
Nenne alle Elemente von SELCT
Mit welchem SQL-Befehl können identische Datensätze (Doubletten) zusammengefasst werden?
DISTINCT
Beispielcode für das zusammenfassen von identischen Datensätzen
SELECT DISTINCT Continent FROM Country;
Fromulieren Sie ein SQL-Statement: Fragen sie aus der Tabelle Country den Namen der Hauptstädte (Capital) ab
SELECT Capital FROM Country;
Erläutere die Read-Only-Operation
Aktuell gespeicherter Datenbestand wird nicht verändert
Befehle für Datenabfrage: SELECT
Mit SELECT kann Inhalt einer oder mehrere Tabellen ausgegeben werden
Was macht das Schlüsselwort WHERE?
Es erweitert SELECT um eine Bedingung um die Ergebnismenge einzuschränken
Beispiel: In einer Kundendatenbank sollen nur die Kunden aus Berlin ausgegeben werden
Beispielcode für WHERE:
SELECT Name FROM Country WHERE Continent ='America';
Nenne die logischen Operatoren für WHERE
NOT = Negation einer Bedingung.
Beispiel: NOT Contnent = 'America';
OR = ODER-Verknüpfung von Bedingungen.
Beispiel: Continent = 'America' or Continent = 'Africa";
AND = UND-Verknpüfung von Bedingungen.
Beispiel: Continent ='Europe' and Percentage = 100;
Wann und wie wird die Verkettung von Zeichenketten eingesetzt?
Zur Erzeugung von Ausgabetexten, wie Adressen, Export von Daten in strukturierten Text wie z.B. XML
Befehl: SELECT CONCAT(Name, PLZ) FROM Country;
Formulieren Sie ein SQL-Statement:
Fragen Sie aus der Tabelle Country eine duplikatfreie Liste mit den Namen aller Länder ab, die auf mehreren Kontinenten liegen.
SELECT DISTINCT Name FROM Country
WHERE Percentage < 100;
Mit welchem Schlüsselwort können Ergebnismengen sortiert werden?
ORDER BY
Beispielcode:
SELECT Name FROM Country
WHERE Continent = 'America' ORDER BY Population
DESC;
Nenne die Reihenfolgenindikatoren und ihre Beschreibung
ASC = Aufsteigend
DESC = Absteigend
- - (Keine Angabe) = Defaultwert = Aufsteigend
Beispiel für eine Sortierung mehrere Spalten in aufsteigender / absteigender Reihenfolge
ORDER BY Continent ASC, Percentage DESC,
Name ASC;
Fragen Sie aus der Tabelle Country eine duplikatfreie Liste von Ländercodes ab, die zuerst nach dem Kontinent und dann nach Grundfläche sortiert sind.
Geben Sie diese zusammen mit dem Kontinent aus.
SELECT DISTINCT Code, Continent FROM
Country ORDER BY Continent, Area;
Erläutere GROUP BY
Schlüsselwort um Daten zu gruppieren
Werden zusammen mit Auswertungsfunktionen eingesetzt
Aufgabe: Gesucht wird für jeden Kontienent die Anzahl der Länder, die zu jedem Kontinent in einer Datenbank gespeichert sind
SQL-Statement:
SELECT Continent, COUNT(*) FROM Country
GROUP BY Continent;
Was sind Aggregatsfunktionen?
Mit Aggregatsfunktionen werden mehrere Werte zu einem Wert aggregiert, d.h. verdichtet oder
zusammengefasst.
Dadurch sehr effiizente Berechnungen auf den Datensätzen möglich.
Ohne GROUP BY -> Bezieht sich auf die gesamte Tabelle
WHERE -> Beschränkte Ergebnismenge
Wie kann man Spalten in Abfrageergebnissen umbenennen?
Mit Schlüsselword “AS”
Wie kann man Gruppen Einschränken?
Mit Schlüsselword “HAVING”
Unterschied HAVING und WHERE
WHERE bezieht sich auf Datensätze vor dem Gruppieren;
HAVING nach dem Gruppieren
Having Beispiel: Liste der Kontinente, die mindestens 5 Länder haben, welche vollständig auf einem Kontinent liegen
SELECT Continent FROM Country
WHERE Percentage = 100
GROUP BY Continent
HAVING COUNT(*) >=5;
Gesucht ist eine Liste aller Kontinente mit jeweils dem Namen des Kontinents und der
Größe des kleinsten Landes auf dem Kontinent
SELECT Continent, MIN(Area) FROM Country
Wie werdem Unterabfragen auch genannt?
Subselect
Was macht der Vergleichsoperator IN
Prüft ob ein bestimmer Wert (links von IN) in einer Menge von Werten (Rechts von IN)
enthalten ist
Ermitteln Sie aus der Tabelle Country die Anzahl von Ländern, deren Bevölkerung größer ist als die durchschnittliche Landeseinwohnerzahl von allen Ländern der gesamten Welt.
SELECT COUNT(*) FROM Country WHERE
Population > (SELECT AVG(Population)
FROM Country);
Was bedeutet "iterativ"?
wiederholend
Die Erstellung der Struktur einer relatinalen Datenbank
ist ein ... Prozess
iterativer
Was kann zur Modellierung für grafische Datenbanken verwendet werden?
Entity-Relationship-Diagramm Um alle wichtigen Elemente einer
Datenbankstruktur darzustellen
Was unterscheidet ER-Diagramme zu universellen UML-Klassendiagrammen
ER-Diagramme können nur zur Modellierung von Datenschemas eingesetzt werden
Nenne die Modellelemente in einem ER-Modell
Entitäten
Attribute
Schlüssel
Beziehungen
Erläutere Beziehungen
Entitäten können in Beziehung zueinander stehen
Zweistellige Beziehungen = 2 Entitäten die in Verbindung stehen
Mehrstellige Beziehungen = Mehr als zwei Entitäten die in Beziehung stehen
Beziehungen können eigene Attribute haben
Nenne die unterschiedlichen Notationformen
Chen-Notation
Martin-Notation (Krähenfußnotation)
UML-Klassendiagramm
Beschreibe die Chen-Notation
Entitäten durch Rechteck dargestellt
Attribute in einem Oval
Attribute und Enitäten sind miteinander verbunden
Primärschlüssel unterschrichen
Grafik Chen-Notation
Beschreibe die Martin-Notation
Name der Entität über dem Rechteck
Primärschlüssel oberen Bereich
Attribute im unterem Bereich
Bereiche durch eine Linie getrennt
Beschreibe das UML-Klassendiagramm
Rechteck
Entität im oberen Bereich
Attribute im unteren Bereich
Primärschlüssel durch {PK}
Fremdschlüssel durch {FK} markiert
Welche Notationsformen sind in der praxis kompakter darzustellen? Warum ist dies so?
UMl & Martin-Notation
Modellierung der Attribute beansprucht nicht so viel Platz und ist leicht erkenntlich zu welcher Entität diese gehören
Nnnen und beschreiben Sie die Elemente eines Entity-Relationship-Diagramms anhand eines selbstgewählten Beispiels.
Ein Entity-Relationship-Diagramm besteht aus Entitäten und deren Attributen, sowie Beziehungen zwischen Entitäten.
Eine Entität (im Bsp. Bestellung und Artikel) ist eine eigenständige Einheit, z. B. ein Geschäftsobjekt, die unter anderen, gleichartigen Einheiten eindeutig identifiziert werden kann.
Jeder in der Datenbank gespeicherte Datensatz ist eine Entität.
Konkrete Eigenschaften von Entitäten werden als deren Attribute beschrieben.
Wie auch in der Objektorientierung hat jedes Attribut einen Namen (auch: Bezeichner) und einen genau festgelegten Wertebereich (auch: Domäne).
Jede Spalte einer Tabelle speichert den Wert für ein bestimmtes Attribut, mit dessen Namen
sie bezeichnet wird.
Entitäten können in Beziehungen zueinander stehen.
Eine Beziehung heißt zweistellig, wenn zwei Entitäten in Beziehung stehen.
Beziehungen können aber auch mehrstellig sein, d. h. mehr als zwei Entitäten in Beziehung setzen.
Eine Beziehung selber kann auch eigene Attribute haben
Was bedeutet “Optionalität”?
Dies ist die Möglichkeit einer optionalen Beziehung.
Damit ist auch das explizite Weglassen möglich
Modellieren Sie folgenden Sachverhalt als ER-Diagramm in der Martin-Notation (Krähenfußnotation), berücksichtigen Sie dabei vorerst nur Entitäten und Beziehungen:
Ein Land liegt auf einem oder zwei Kontinenten, wobei auf einem Kontinent beliebig viele Länder liegen können. Jedes Land hat genau eine Hauptstadt, die vollständig in dem Land liegt. Zudem gibt es Flüsse, die durch ein oder mehrere Länder fließen.
In einem Land können jedoch beliebig viele Flüsse liegen.
Erläutern Sie den Unterschied zwischen einer C:CN- und einer N:CM-Beziehung anhand eines
selbstgewählten Beispiels.
Bei Modellierung eines Sachverhalts stellen Sie fest, dass
Sie eine N:C-Beziehung modellieren müssen, jedoch ist dieser Beziehungstyp in der
verwendeten Notation nicht definiert.
Wie gehen Sie vor?
Eine N:C-Beziehung kann durch eine C:N-Beziehung dargestellt werden.
Erkläre ORDER BY
Sortierkritierum, nach denen das Ergebnis dieser Abfrage sortiert wird.
Was macht der SQL Vergleichsoperator “=“?
Prüft auf Gleichheit
Was macht der SQL Vergleichsoperator “!=“?
Prüft auf Ungleichheit
Was macht der SQL Vergleichsoperator “>,<“?
Prüft auf Größer oder Kleiner als
Was macht der SQL Vergleichsoperator “Between“?
Schränkt Wertebereich ein
Was macht der SQL Vergleichsoperator “Like“?
Einschränkung auf bestimmte Muster von Attributen:
_ steht für ein beliebiges einzelnes Zeichen
% steht für eine beliebige Folge von null oder mehr Zeichen
...Code LIKE '_'; (Einstelliger Wert)
...Code LIKE 'C__'; (Beginnt mit C und
besteht aus 3 Zeichen)
...Code LIKE '%A'; (Wert endet mit A)
...Code LIKE 'G%Y'; (Wert beginnt mit G
und endet mit Y)
Was macht der SQL Vergleichsoperator “IS NULL“?
Kein Wert in Datenbank gespeichert
Was macht der SQL Vergleichsoperator “IS NOT NULL“?
Zusicherung, dass ein Wert in der Datenbank gespeichert ist
Was macht der SQL Vergleichsoperator “IN“?
Einschränkung auf Werte einer gegeben Wertemenge
Aggregatsfunktion: COUNT(*)
Zählt die Anzahl der Datensätze einer Gruppe
SELECT Continent, COUNT(*) AS AnzahlDerLaenderProKontinent FROM Country
Aggregatsfunktion: SUM(Spalte)
Summiert die Werte einer Spalte innerhalb einer Gruppe.
SELECT Contienent, SUM(Area) AS FlaecheDesKontinents FROM Country
Aggregatsfunktion AVG(Spalte)
Berechnet den Durchschnittswert einer Spalte innerhalb einer Gruppe
SELECT Continent, AVG(Area) AS DurchschnittlicheFlaecheProLand FROM
Country GROUP BY Continent
Aggregatsfunktion MAX(Spalte)
Berechnet den Maximalwert einer Spalte innerhalb einer Gruppe.
Kann für Zahlen, Zeichenketten und Datumswerte eingesetzt werden.
SELECT Continent, MAX(Area) AS GroessedesGroesstenLandes FROM Country
Aggregatsfunktion MIN(Spalte)
Berechnet den Minimalwert einer Spalte innerhalb einer Gruppe.
Kann für Zahlen, Zeichenketten und Datumwerte eingesetzt werden.
SELECT Continent, MIN(Area) AS GroesseDesKleinstenLandes FROM Country
Werden die Aktivitäten zur Erstellung einer Datenbank immer in ihrer Reihenfolge durchlaufen. Begründe deine Meinung!
Nein, die Aktivitäten sind nicht streng sequenziell.
Aktivitäten durchlaufen in der Praxis mehrere Iterationen und Rücksprünge an
den Startpunkt
Nenne die Aktivitäten zum logischen Datenbankentwurf
1. Entitäten identifizieren
2. Beziehungen festlegen
3. Primärschlüssel festlegen
4. Umwandlung in ein physikalisches Datenmodell
5. Attribute festlegen und normalisieren
6. Konsistenzbedingungen festlegen
7. Transaktionen formulieren
Erläutere die ersten typische Aktivitäten zur Erstellung einer Datenbank
Entitäten identifizieren
Identifikation von Relationen
Ausgangspunkt: Fachliche Entitäten welche schrittweise um technische details verfeinert.
Häufig bereits durch das Requirements Engineering und Spezifikation erledigt, dadurch startes es mit einem fachlich-technischen Datenmodell.
In der Objektorientierung: Klassen identifizieren
Erkläutere die zweiten typische Aktivität zur Erstellung einer Datenbank
Beziehung festlegen
Beziehungen zwischen Entitäten ermitteln
Mit Kardinalitäten werden Mengenangaben zu Beziehungen festgelegt
Das erzeugte Modell (Identifitkation von Entitäten und Festlegen von Beziehungen) nennt man konzeptionelle Datenmodell
Erläutere die dritte typische Aktivität zur Erstellung einer Datenbank
Primärschlüssel festlegen
Primärschlüssel zu Relationen festgelegt
Attribute bilden
einfachen/zusammengesetzen Primärschlüssel oder es wird ein künstlicher Schlüssel erzeugt
Erkläre Read Committed
Erlaubt das Lesen nur von bereits durch COMMIT bestätigen Daten, verhindert jedoch keine Inkosistenzen bei mehrfachen Lesen.
Non-repeatable Read, Phantom Read können auftreten
Erkläre Read Uncommitted
Niedrigste Isolationslevel, bei dem auch nicht durch eine COMMIT bestätige Änderung gelesen werden können
Lost Update, Dirty Read, Non-repetabel Read & Phantom Read können auftreten
Nenne die vier Isolationslevel
> Read Uncommitted
>Read Committed
> Repeatabel Read
> Serialize
Erkläre Isolationslevel
Bezeichnet den in einem DBMS eingestellten Kompromiss zwischen Datenkonsistenz und Mehrbenutzerbetrieb. Dabei wird der Grad der gleichzeitigen Ausführungen von Transaktionen gezielt konfiguriert.
Was ist Phantom Read?
Phänomen bei dem unterschiedliche Ergebnisse gelesen werden durch das Einfügen (INSERT) oder Löschen (DELETE) von Datensätzen in einer Datenbank
Was ist Non-repeatable Read?
Non-repeatable Read: Phänomen bei dem durch das mehrmalige Lesen derselben Daten jeweils unterschiedliche Ergebnisse zurückgeliefert werden.
Erkläre das Phänomen Dirty-Read
Änderungen werden gelesen, bevor diese durch ein COMIT auch tatsächlich gespeichert werden.
Wird die Aktion mit einem ROLLBACK rückgängig gemacht, ist ein niemals gültiger Wert bekannt.
Was ist das Lost-Update-Phänomen?
Es passieren Änderen von nebenläufigen Transaktionen und dadurch können Datensätze überschrieben werden
Welche vier Isolationsphänomene gibt es?
> Lost Update,
> Dirty Read (Tempory Update),
> Non-repeatable Read,
> Phantom Read
Was ist ein Isolationspänomen?
Führen mehrere Nutzer gleichzeitig Transaktionen auf den selben Datensatz aus kann es unerwünschte Effekte geben.
Aus welchen Schlüsselwörtern besteht TRANSACTION?
Wie sieht das Schema einer Transaktion aus und
gebe ein Beispiel.
START TRANSACTION / COMMIT beginnt die Transaktion COMMIT werden alle Änderungen persistent gespeichert
ROLLBACK im Falle eines Fehler kann damit der Zustand wiederhergestellt werden
Erkläre ACID (bzw. AKID).
Atomarität (atomicity): Eine Transaktion ist atomar, also wird vollständig oder gar nicht ausgeführt.
Konsistenz (consistency): Enthält die Konsistenz, von einem Konsistenen Zustand in einen anderen konsistenten Zustand.
Isoliertheit (Isolation): Mehrerer zeitgleiche Transaktionen beeinflussen sich nicht und werden nacheinander ausgeführt.
Dauerhaftigkeit (durabitly): Änderungen werden dauerhaft in der Datenbank gespeichert
Nenne mögliche Ursachen für Gefahren der Konsistenz einer Datenbank
Erläutere die vierte typische Aktivität zur Erstellung einer Datenbank
Umwandlung in physikalisches Datenmodell
Beziehungen zwischen Entitäten werden in ein Modell transformiert, das von relationalen DBMS unterstützt wird.
Grundidee: Transformation von einem netzwerkartigen Modell
(UML-Klassendiagramm) in ein hierarisches Modell, das sich auf den Tabellen von relationen Datenbanksystem abbilden lässt.
Erläutere die fünfte typische Aktivität zur Erstellung einer Datenbank
Attribute festlegen und normalisieren
Identifikation von Attributen zur Beschreibung einer Entität, wobei diese bereits schon bei der entitäten identifizierung vorhanden sind
Bestimmung des Datentyps zum jeweiligen Attribut
Datenbank wird normalisiert ensprechend den Anforderungen des Projekts
Attribute von Relationen werden auf Struktur und Abhängigkeiten untersucht -> Bei Bedarf weitere Relationen hinzugefügen
Erläutere die sechste typische Aktivität zur Erstellung einer Datenbank
Konsistenzbedingungen festlegen
Explizite Konsistenzbedinungen werden
formuliert
Eventuell müssen spezifische Konsistenzbedingungen durch DBMS gewährleistet werden
Sorgt dafür das der Datenbestand in fachlich-technisch "sauberer" Form vorliegt.
Sicherstellung das beim Ändern und Löschen von Datensätzen immer genau so viele Relationen gleichzeitig geändert oder gelöscht werden, dass alle technischen und fachlichen Konsistenzbedingungen gewährleistet sind.
Nenne die typischen Konsistenzeigenschaften
Sicherstellung, dass alle Werte in einem ID-Attribut wirklich einmalig sind;
Einhaltung des vorgegebenen Formats und Wertebereichs von Attributen;
Erhaltung der referentiellen Integrität und die Möglichkeit Fremdschlüssel sicher auflösen zu können.
Erläutere die siebte typische Aktivität zur Erstellung einer Datenbank
Transaktionen formulieren
Transaktionen sind Operationen auf den Datenbestand einer Datenbank
Festlegung aus welchen SQL-Befehlen Anfrage zum Auslesen, Hinzufügen, Ändern
und Löschen von Daten im Einzelnen besteht damit Konsistenzbedingungen eingehalten werden.
Festlegungen von Transaktionen gewährleistet das im Fehlerfall Datenbestand konsistent bleibt -> Alle Schritte einer nicht abgeschlossenen Transaktionen können rückgängig / nachvollzogen werden
Wie wird die Normalform bestimmt?
Mithilfe der Struktur von Attributen einer Relation & deren Abhängikeiten untereinander
Welche Bedingungen müssen erfüllt sein, damit eine Tabelle in der 1. Normalform
vorliegt?
Alle Attribute sind atomare Werte
Zu jedem Attribut wird genau ein Wert gespeichert
Jeder Datensatz ist eindeutig über den Primärschlüssel identifizierbar
Für welche Tabellen kommt die 2. Normalform in frage?
Welche Kriterien müssen zusätzlich zu den Bedingungen der 1. Normalform erfüllt sein?
Relevant nur für Tabellen mit zusammengesetzten Primärschlüssel
Alle Bedinungen wie bei der 1. Normalform
Jedes Nichtschlüsselattribut ist abhängig vom gesamten zusammengesetzten Primärschlüssel
Wann liegt eine Tabelle in der dritten Normalform vor?
Wenn Kritierien der 1. Normalform gelten
Wenn bei Tabellen mit zusammengesetzten Primärschlüssel Kriterein der 2. Normalform gelten
Wenn jedes Nichtschlüsselattribut direkt vom Schlüsselattribut abhängt
Es gibt keine funktionalen Abhängigkeiten zwischen Attributen, die nicht Teil des Primärschlüssel sind
Was wird mit Erreichen der ersten Normalform möglich?
Das sortieren nach bestimmten Attributen
Datensätze eindeutig zu referenzieren und zu verändern
Was wird in der dritten Normalform sofort ersichtlich und warum?
Alle transitiven Abhängigkeiten von Daten, da sie direkt durch die Struktur der Tabellen
abgebildet sind
Was sagt die Normalform über ein Datenschema aus und wozu wird die Normalform eingesetzt?
Maß für die Struktur einer Datenbank
Hinweise wie redundant Daten in einer Datenbank gespeicher sind
Je höher die Normalform, desto weniger redundant liegen die Daten vor
Je nach Anforderungen an den Datenbestand wird ein Datenschema durch
Normalisierung in die erforderliche Normalform gebracht
Was bedeutet Redundanz?
Eigenschaft eines Datenbestands, bei dem es durch das Löschen von Daten nicht zwingend
zu einem Informationsverlust kommt.
Dazu muss die Information mehrfach gespeichert sein.
Martin-Notation: 1:1 Beziehung
Martin Notation: Jedem Kunde ist kein oder genau ein Artikel zugeordnet, jeder Artikel gehört genau zu einem Kunden
Martin Notation: Jedem Kunde ist kein oder genau ein Artikel zugeordnet, jeder Artikel ist keinem oder genau einem Kunden zugeordnet.
UML-Notation: 1:1
UML-Notation: Jedem Kunde ist kein oder genau ein Artikel zugeordnet, jeder Artikel gehört genau zu einem Kunden
UML-Notation: Jedem Kunde ist kein oder genau ein Artikel zugeordnet, jeder Artikel ist keinem oder genau einem Kunden zugeordnet.
Chen-Notation: 1:1
Welche Bedeutung hat in der Chen-Notation die 1:1 Beziehung?
Steht für die Beziehung: 0 oder 1 zu 0 oder 1
Martin Notation: 1:N
Einem Kunden gehören ein oder mehrere Artikel und jeder Artikel gehört zu genau einem Kunden.
UML-Notation: 1:N
Chen-Notation: 1:N
Einem Kunden gehören ein oder mehrere Artikel und jeder Artikel gehört zu genau einem Kunden
Martin-Notation:
Einem Kunden gehören beliebig viele Artikel und jeder Artikel gehört
genau zu einem Kunden
UML: Einem Kunden gehören beliebig viele Artikel und jeder Artikel gehört genau zu einem Kunden.
Martin-Notation: Einem Kunden gehören beliebig viele Artikel und jeder Artikel gehört zu keinem oder genau zu einem Kunden.
UML-Notation: Einem Kunden gehören beliebig viele Artikel und jeder Artikel gehört zu keinem oder genau zu einem Kunden.
Martin-Notation: Einem Kunden gehört mindestens ein Artikel und jeder Artikel gehört zu keinem oder genau zu einem Kunden.
UML-Notation: Einem Kunden gehört mindestens ein Artikel und jeder Artikel gehört zu keinem oder genau zu einem Kunden.
Wofür steht die 1:N in der Chen Notation?
Null oder mehr, statt mindestens eins
Martin-Notation N:M Einem Kunden gehört mindestens ein Artikel und jeder Artikel gehört zu mindestens einem Kunden.
UML-Notation N:M Einem Kunden gehört mindestens ein Artikel und jeder Artikel gehört zu mindestens einem Kunden.
Chen-Notation: N:M
Martin-Notation: Einem Kunden gehören beliebig viele Artikel und jeder Artikel gehört zu mindestens einem Kunden.
Was gechieht wenn mit dem Schlüsselwort UPDATE keine Auswahlbedingung formuliert wird?
Beispiel
Die Änderung betrifft alle Datensätze der Tabelle
Was gilt es bei relationalen DBMS beim Löschen zu beachten?
• Es gibt keine UNDO Funktion
• Gelöschte Datensätze nur mit Backup wiederherstellbar
Was gibt dieser Code an?
ALTER TABLE Adresse
ADD CONSTRAINT pk_1
PRIMARY KEY (AdresseID);
• -Beispielhaft Definition primary key mit ALTER TABLE-
• Hier wird durch ein Constraint mit der ID pk_1 in der Tabelle Adresse die Spalte AdresseID zum
Primärschlüssel bestimmt.
Wie sieht das Schema zum Löschen von einer Tabelle aus?
DROP TABLE Tabellenname;
Wie kann mit MariaDB der Primärschlüssel entfernt werden?
ALTER TABLE Adresse DROP PRIMARY KEY;
Wie können Contraints hinzugefügt / gelöscht werden werden?
Beispielcode für einen Constraint: Fremdschlüssel
• ADD CONSTRAINT contraintdefinition
• DROP CONSTRAINT constraintname
Wie können Spalten einer bereits erstellen Tabelle gelöscht werden?
ALTER TABLE tabelle DROP spalten;
Wie können Eigenschaften einer Spalten verändert werden?
ALTER Spaltendefinition
Manchmal auch: MODIFY Spaltendefinition
Wie können einer bereits bestehenden Tabelle weitere Spalten hinzugefügt werden?
Mit dem Schlüsselwort ADD, die Syntax ist wie bei CREATE TABLE
Nenne 5 Elemente zur Änderung einer Tabelle
Mit welchem Schlüsselwort können Tabellen verändert werden?
ALTER TABLE
Wie sieht das Schema zum Löschen eines Datensatzes aus?
DELETE FROM tabelle WHERE bedingung;
Was bedeutet Lost Update und wie kann dies verhindert werden?
Lost Update tritt bei nebenläufigen Transaktionen auf, die den gleichen Datensatz ändern, wobei eine Änderung durch die andere überschrieben wird.
Kann durch den Isolationslevel „Read Commited“ verhindert werden.
Wie kann eine Sortierung eingeschränkt werden?
Erstelle eine einfache Tabelle einer Entität.
CREATE TABLE tabelle (
spalte1 datentyp1,
spalte2 datentyp2,
spalte3 datentyp3);
Nenne 3 Beispiele für SQL-Statements für die Sprache DML
> UPDATE,
> DELETE,
> INSERT INTO
Datensatz ändern: Neue BestellID bei Kunde K23 setzen.
UPDATE Kunde
SET BestellID = „NeueNummer“
WHERE Kunde = „K23“;
Zeige eine sortierte Liste der PLZ der Kunden die eine Bestellung platziert haben, sortiert nach der Summe der Rechnungsbeträge.
SELECT plz FROM kunde
WHERE bestellung > 0
ORDER BY SUM(rechnungsbetrag);
Nachträglich Foreign Key zu einer Spalte hinzufügen mit ON UPDATE CASCADE, weil Änderungen an der referenzierten Tabelle übernommen werden sollten.
ALTER TABLE Bestellung ADD FOREIGN KEY(Spalte) REFERENCES Lieferung(ID) ON UPDATE CASCADE;
Einfacher Insert Befehl in Tabelle Kunde.
Es ist der komplette Datensatz einzugeben.
INSERT INTO Tabelle(
spalte1, spalte2, spalte3)
VALUES (
wert1, wert2, wert3);
„Erstelle eine Liste mit den BestellIDs der Bestellungen, die kleiner oder gleich dem durchschnittlichen Rechnungsbetrag aller Bestellungen sind“
SELECT BestellID FROM bestellungen
WHERE rechnungsbetrag <= AVG(rechnungsbetrag);
Tabelle, Relation, Datensatz: Zusammenhänge erläutern
Eine Tabelle enthält in den Zeilen die Datensätze und in den Spalten die Attribute.
Eine Tabelle wird auch Relation genannt.
Ein Datensatz ist eine Zeile einer Tabelle.
Der Befehl MINUS geht nicht immer, was ist die Alternative dazu?
Als Alternative zu MINUS kann EXCEPT genutzt werden.
Was ist die automatische Typumwandlung?
Wenn beim Einfügen von Daten kein expliziter Datentyp angegeben wurde, versucht das DBMS die Daten in den Datentyp der Spalte umzuwandeln, in die eingefügt werden soll.
Es wird kein Wert in die Datenbank übergeben, erläutern Sie was passiert
Das DBMS versucht die fehlenden Attribute selber zu füllen.Wenn für ein Attribut ein Default Wert gilt, so wird dieser eingetragen.Bei AUTO_INCREMENT wird automatisch weiter gezählt.Ist NULL erlaubt, wird NULL eingetragen.Gilt NOT NULL, wird ein Fehler ausgegeben und INSERT nicht ausgeführt.
Erklären Sie was ein RIGHT JOIN ist.
Bei einem RIGHT JOIN werden zusätzlich zu den gemeinsamen Daten auch alle weiteren Daten der Tabelle rechts des JOIN-Ausdrucks ausgegeben. Nicht vorhandene Daten der anderen (linken) Tabelle werden mit NULL aufgefüllt.
Aus zwei Tabellen einen Datensatz ausgeben (einfaches JOIN Statement) (6 Punkte)
SELECT tabelle1.spalte1, tabelle2.spalte2 FROM tabelle1
JOIN tabelle2
USING (spalte);
oder
JOIN tabelle2 ON
tabelle1.spalte = tabelle2.spalte;
Vorteile der „Joined Subclass Table“-Strategie erläutern.
Es gibt kaum Redundanz in den Daten. Unterklassen können einfach hinzugefügt werden und die Daten der Oberklasse können sehr einfach geladen werden.
Ein Tier mit Namen “Hasso” aus einer Tabelle löschen.
DELETE FROM tabelleTier WHERE nameTier = „Hasso“;
Erklären, wie Martin-Notation als E/R-Diagramm modelliert wird
Die Attribute der Entität werden in einem Rechteck modelliert, der Name der Entität als Überschrift darüber, der Primärschlüssel als oberstes Attribut.
Drei Hauptausdrücke der DDL. (Schlüsselwörter reichen)
> CREATE TABLE
> ALTER TABLE
> DROP TABLE
Erklären sie LEFT JOIN.
Mit LEFT JOIN werden alle gemeinsamen Spalten beider Tabelle ausgegeben und alle übrigen der Tabelle, die links des JOIN-Ausdrucks steht. Die fehlenden Attribute der Spalten der rechten Tabelle werden mit NULL aufgefüllt.
Nachteile der Joined Subclass Strategie
Da die Daten über zwei oder mehr Tabellen verteilt sind, müssen auch immer mehrere Tabellen ausgelesen werden, um einen vollständigen Datensatz zu erhalten. Dies kann bei großen Datenbanken sehr lange dauern und die Antwortzeiten der Datenbank stark vergrößern.
Was ist der Unterschied zwischen RESTRICT und NO ACTION bei ON UPDATE in MySQL
Mit RESTRICT wird das Löschen (ON DELETE) oder Ändern (ON UPDATE) in der verwiesenen Tabelle unterbunden, sofern es noch verweisende Tabellen gibt.Mit NO ACTION wird die verweisende Tabelle nicht geändert, was allerdings die referentielle Integrität stört. Deswegen wird NO ACTION nicht von allen DBMS unterstützt.
Was versteht man unter einer Verbundmenge?
Eine Verbundmenge ist eine Ergebnismenge eines SELECT-Statements, welches zwei oder mehr Tabellen durch JOIN miteinander verbindet, so dass in der Regel im Ergebnis Daten aus mehreren Tabellen ausgegeben werden. Die abgefragten Tabellen müssen miteinander in Beziehung stehen und über Fremdschlüssel verbunden sein.
ORDER BY erläutern
Mit ORDER BY spalte wird die Ausgabe sortiert, nach der „spalte“. Ohne weitere Angaben bzw. mit ASC aufsteigend. Mit DESC wird absteigend sortiert.
Unterschied zwischen C:CN und N:CM erklären (8 Punkte)
Das „C“ steht für „optional“, also bei „C“ für null oder eins, bei „CN“ bzw. „CM“ für null oder eins oder mehrere.Der Unterschied auf der linken Seite zwischen „C“ und „N“ ergibt sich daraus, „N“ steht für mindestens eins oder mehrere.
Aus zwei Tabellen einen Datensatz ausgeben (6 Punkte)
Aus zwei Tabellen sollten Datensätze so gelöscht werden, so, dass die Konsistenz erhalten bleibt, also SQL Statement mit Transaction (6 Punkte)
START TRANSACTION;
DELETE FROM tabelle1 WHERE bedingung1;
DELETE FROM tabell2 WHERE bedingung2;
COMMIT;
Warum/Wozu Transaktionen erklären
Bei zusammenhängenden SQL-Statements besteht die Gefahr, dass es im Verlauf der Abarbeitung zu einem Fehler und Abbruch kommt. Damit wären die vorherigen SQL-Statements erfolgreich ausgeführt, die folgenden aber nicht. Durch die logische Abhängigkeit der SQL-Statements können durch den Abbruch Inkonsistenzen entstehen.Deswegen werden solche zusammenhängenden SQL-Statements in eine Transaktion verpackt, die entweder alle enthalten SQL-Statements komplett durchführt, oder aber bei einem Fehler, keine. So bleibt die Konsistenz der Datenbank in jedem Fall gewahrt.
Nennen und beschreiben Sie jeweils mit einem selbstgewählten Beispiel die Beziehungstypen, die in relationalen Datenbanken unterstützt werden.
• 1:1-Beziehung: Genau eine Entität steht in Beziehung mit genau einer anderen Entität. Bsp.: Eine Familie wohnt in genau einer Wohnung, in einer Wohnung wohnt genau eine Familie.
• 1:N-Beziehung: Genau eine Entität steht in Beziehung mit mehreren anderen Entitäten, die alle vom gleichen Typ sind. Bsp.: Ein Kind hat genau eine Mutter, eine Mutter kann jedoch 1 oder mehr Kinder haben.
• N:M-Beziehung: Mehrere Entitäten eines Typs stehen in Beziehung mit mehreren anderen Entitäten, die alle vom gleichen Typ sind. Bsp.: Ein Dozent betreut mehrere Studenten, und ein Student wird durch mehrere Dozenten betreut
Stellung nehmen, ob SQL eine standardisierte Sprache ist
Im Prinzip ja, aber jedes DBMS hat einen eigenen „Dialekt“, der abweichende Befehle und Verhalten kennt. Vor Benutzung der SQL-Statements muss die Dokumentation des DBMS zu Rate gezogen werden, um die Funktion der SQL-Statements herauszubekommen.
View erstellen, gegeben sind 3 Tabellen (Tier, Halter, Behandlung) erstelle einen View in der Tier, Art, Alter, Datum, Diagnose, Haltername, Haltervorname ausgegeben werden, es soll nach Haltername sortiert werden (10 P.)
CREATE VIEW TierDiagnose AS
SELECT tier.Tier, tier Art, tier.Alter, behandlung.diagnose, halter,haltername, halter.haltervorname FROM Tier
JOIN behandlung ON
tier.spalte = behandlung.spalte
JOIN halter ON
tier.spalte = halter.spalte
ORDER BY Haltername;
Unterschiede zwischen Chen- und Martin-Notation
Chen kann keine optionalen Beziehungen wie 1:C / 1:CN darstellen
Verbundtypen aufzählen
> INNER JOIN – verbindet über angegebene Spalte
> NATURAL JOIN - verbindet über alle gleich benannten Spalten
> LEFT JOIN – verbindet über angegebene Spalte und gibt alle Datensätze der linken Tabelle aus (rechte wird mit NULL aufgefüllt)
> RIGTH JOIN – wie LEFT, nur andersherum
Was sind die Nachteile der Single Table Strategie? (8 Pkt.)
Die Single Table Strategie speichert alle Subklassen einer Vererbungshierarchie in einer gemeinsamen Tabelle. Daraus ergeben sich folgende Nachteile:
Es entstehen viele NULL-Werte, da Spalten oft nur für bestimmte Subklassen relevant sind.
Die Tabelle enthält unnötige oder redundante Spalten, was die Übersichtlichkeit verringert.
Integritätsregeln lassen sich schwer auf Subklassenebene durchsetzen.
Das Schema verletzt oft Normalformen, da nicht alle Attribute voneinander abhängig sind.
Constraints wie NOT NULL oder CHECK sind schwer typabhängig definierbar.
NOT NULL
CHECK
Die Wartbarkeit des Modells leidet bei komplexeren Vererbungshierarchien.
Es kann zu Performanceproblemen durch große und spaltenreiche Tabellen kommen.
Es besteht ein erhöhtes Risiko für inkonsistente oder fehlerhafte Daten.
Was ist KEINE Aggregatsfunkton in SQL?
Welches SQL-Statement ist korrekt, um eine Anfrage
“ViewAutosUndHalterMitBaujahrNach2013”
zu speichern?
Wie kann folgendes SQL-Statement umformuliert werden, um anstelle der WHERE-Klausel mit einer Verbundmenge korrekt zu arbeiten?
Welche Aufgabe haben Datenbanksysteme?
Wählen Sie eine Antwort:
Was sind Isolationsphänomene?
Welche Aussagen zu Tabellen relationaler Datenbanken stimmt?
Welche der folgenden Beispiele ist kein Vergleichsoperator?
In welchem Zusammenhang kann das Schlüsselwort DESC benutzt werden?
Wozu werden Befehle der “Data Definition Language” eingesetzt?
Welche Aussage trifft auf folgendes Statement zu?
SELECT*FROM Konto WHERE Kontostand>=ANY (SELECT AVG(Kontostand)
FROM KONTO GROUP BY (Name))
(‘Name’ bezieht sich auf den Namen des Kontoinhabers.)
Gegeben sei folgender SQL-Befehl.
SELECT CONCAT_WS (‘,’,Art, Rasse) AS Tiere FROM tier;
Welche Aussage ist korrekt?
Gemeinsamkeiten / Unterschiede UML-Klassendiagramm und E/R-Diagramme
(10 Punkte)
Bei beiden handelt es sich um Konstruktionsdiagramme. Beide haben die Hauptbausteine von Beziehungen und Attributen unterscheiden sich dann aber bei den Klassen(UML) und Entitäten(ER). Beziehungen werden durch Kardinalitäten dargestellt. Beide nutzen meistdie visualisierte Darstellungsform
Klassendiagramme
E/R-Diagramme
-beschreibt nicht nur Datenstrukturen sondern auch Prozesse und Systemteilnehmer
-sehr flexible Modellierungssrache mit Möglichkeit für jedes ER-Modell eim UML Äquivalent zu formulieren
-deutlich komplexer, kann das Modell dadurch auch schwerer verständlich für den Leser machen.
-können Methoden darstellen(Abfolge von Schritten)
-Kommt aus dem Bereich der
Datenbanksysteme, beschreibt
Datenstrukturen so wie sie später in
einer relationalen Datenbank
wiedergespiegelt werden sollen.
-ER Diagramm kann vollständig in ein UML Diagramm überführt werden, andersherum ist dies nur bedingt möglich.
Last changed5 days ago