Lektion 2:
Datenbanken Seite 31

Zusammenfassung

  • Relationale Datenbanken sind eine der größten Industrien im IT-Sektor.
  • Viele Webanwendungen verwenden Datenbanken zur persistenten Speicherung. So können sie auf Bedarf dynamische Seiten generieren.
  • Eine Datenbank(DB) ist eine Sammlung von Daten, denen ein Datenmodell zugrunde liegt.
  • Ein Datenbank Management System (DBMS) ist ein Programm, das die Daten bzw. Datenbanken verwaltet.
  • Ein Datenbank-Client ist ein Programm mit dem Sie auf die Daten einer Datenbank zugreifen können.
  • Die meisten DBMS im Web arbeiten nach dem Client-Server-Prinzip.
1. Frage
Wozu werden Datenbanken benötigt?
Datenbanken werden benötigt, um Daten strukturiert zu speichern.
2. Frage
Nennen Sie drei Arten von Webanwendungen, die Datenbanken verwenden.
Produktdatenbanken, Informationsdatenbanken, Online-Spiele
3. Frage
Geben Sie drei konkrete Beispiele für Webanwendungen, die Datenbanken verwenden!
z.B. amazon.com, ebay.de, webmasters-europe.org
4. Frage
Geben Sie drei konkrete Beispiele für Webkomponeten, die Datenbanken verwenden!
z.B. Forum, Blog, Wiki
5. Frage
Unterscheiden Sie die Begriffe Datenbank (DB) und Datenbank Management System (DBMS). Seite 25
Die Datenbank ist die eigentliche Sammlung der Daten. Das DBMS ist das Software-System, das die Daten verwaltet.
6. Frage
Was ist MySQL?
MySQL ist ein rationales Datenbanksystem (DBMS).
7. Frage
Nennen Sie mindestens 3 relationale Datenbank Management Systeme! geben Sie jeweils an, ob es sich um Open Source oder kommerzielle Software handelt.
SQl (open source), PostgresQL (open source), Oracle (kommerziell)

Lektion 3:
DB in der Praxis Seite 43

Zusammenfassung

  • MAMP und XAMPP helfen Ihnen dabei, schnell eine funktionierende Entwicklungsumgebung einzurichten.
  • Verwenden Sie SQL, um mit dem DBMS zu kommuniziern.
  • Die BNF ist eine Betasprache, die die Syntax eines SQL-Befehls darstellen kann. Lesen Sie BNF-Ausdrücke, wenn Sie neue SQL-Befehle verstehen möchten!
1. Frage
Was ist SQL?
SQL ist eine Abfragesprache. Viele DBMS verwenden SQL, um mit einer Anwendung (d.h. einem Client) zu kommunizieren.
2. Frage
Was ist ein Distribution?
Eine Distribution ist eine Bündelung von verschiedenen Software-Paketen. Eine Distribution hat meist einen gemeinsamen Installer und erleichtert somit die Einrichtung mehrerer aufeinander abgestimmter Programme.
3. Frage
Aus welchen Teilen besteht XAMPP?
XAMPP besteht aus Apache, MySQL, Perl, PHP und vielen Bibliotheken.
4. Frage
Was sind Terminale und Nichtterminale?
  • Terminale in der BNF sind Symbole, die nicht weiter ersetzt werden können.
  • Nichtterminale/Variablen in der BNF sind Symbole, die ersetzt werden müssen.
5. Frage
Was hat MySQL mit SQL zu tun?
MySQL ist ein DBMS, das SQL als Abfragesprache verwndet.

Lektion 4:
Datenbankdesign: Das Domänenmodell Seite 53

Zusammenfassung

  • Reden Sie mit Ihrem Kunden! Verlassen Sie sich nicht nur auf schriftliche Spezifikationen.
  • Ein Domänenmodell beschreibt die Kernkonzepte einer Anwendung aus Sicht des Anwenders- nicht des Entwicklers.
  • UML ist eine grafische Modellierungssprache.
  • In einem Klassendiagramm stellen Sie Klassen mit Methoden und Attributen dar.
1. Frage
Was ist eine Entität?
Eine Entity im Sinne der Domänmodelierun entspricht einem Konzept aus der realen Welt. Es kann sich dabei genauso um ein materielles Objekt wie um ein abstraktes Konzept handeln. Sie können einem Entity stehts Attribute zuordnen.
2. Frage
Welches Problem löst die UML?
Die UML gibt einein einheitlichen Standard für Modellierungsfragen in der Softwareentwicklung vor - und setzt danmit dem Wildwuchs von Diagrammtypen ein Ende. Allerdings gibt es in der Praxis neben der UML noch viele ansern Notationen, die aus verdschiedenen Gründen Verwendung finden.
3. Frage
Mit welchem Diagrammtyp begannen Datenbankentwickler die Modellierung, bevor die UML zur Verfügung stand?
Der klassische Weg ist die Verwendung eines ER-Diagramms. ER-Diagramme sind auch heute noch verbreitet.
4. Frage
Welche Hinweise können Sie verwenden, um Klassen, Attribute und Methoden des Domänenmodells aus einer Kundenanforderung zu extrahieren?
Ein erster Hinweis ist die Wortart. So sind Methoden grundsätzlich Verben, während Klassen und Attribute normalerweise Nomen sind.

Lektion 4:
Übungen Seite 54

Aufgabe 1 Finden Sie die Fehler
In folgendem Domänenmodell eines Online-Shops haben sich mehrere Fehler eingeschlichen. Finden Sie sie und kreisen Sie sie ein!
Notieren Sie Verbesserungsvorschläge, falls möglich.
Notebook
preis
modell
hersteller
verfügbar
CPU
höhe
tiefe
breite
2kg
farbig
rohlinge
modell
hersteller
zählen
preis
lagernd
liste_auf
Anzeige
kaufe()
  • Statt rohlinge sollten Die Rohlinge schreiben - groß und Singular.
  • Attribute werden üblicherweise klein geschrieben. deswegen ist cpu besser als CPU.
  • 2 kg ist ein Wert. Ein sinnvolles Attribut wäre gewicht.
  • Besser als farbig wäre farbe.
  • Statt zählen,sollten Sie anzahlverwenden.
  • Bei liste_auf fehlen die Klammern().
  • Anzeige ist kein Verb - besser ist: anzeigen oder idealerweise der Imperativ zeige_an.
  • Die Attribute lagernd und verfügbar sind nicht falsch. Sie könnten sie mit der logischen Werten TRUE/FALSE belegen. Besser eignet sich aber ein Attribut lieferzustand, das Sie mit Werten wie auf lager, verfügbar, vorbestellt, nicht mehr lieferbar, usw. belegen
Begriffe
Begriff Entity? Begründung falls kein Entity
blau nein kein Nomen
Cache ja technischer Begriff
Seminar ja
JavaScript-Programmierung nein 'JavaScript-Programmierung' ist ein Wert
Person ja
Entity nein zu allgemein
Unterricht nein keine Nomen
Organisation ja
Teilnahme ja
Rechnungstabelle nein Tabelle ist ein Begriff aus der Implementierung, besser wäre hier Rechnung
Variable nein technischer Begriff
Veranstaltung ja
Dienstschnittstelle nein technischer Begriff
Mahnung ja
Cron-Job nein technischer Begriff

Lektion 5:
Einführung in Dia Übungen Seite 59

Zusammenfassung

  • Es gibt viele Werkzeuge zur Erstellung von UML-Diagrammen.
  • Dia ist ein einfaches opensource-Programm, mit dem Sie UML-Diagramme zeichnen können.
  • Benutzen Sie in Dia die UML-Schablone, um standardkonforme UML-Diagramme zu erzeugen.
1. Aufgabe
Makieren Sie Entities und Attribute im Anforderungstext.
Meine Mitarbeiter sollen Folme verwalten. Folme bestehen aus Titel und Spieldauer. Letz6tere wirdf in minuten angegeben. Manche Leute interessieren sich auch für das Erscheinungsjahr. Außerdem wokllen wir später eine Internetsuche anbieten, die es erlaubt, anhand des Regisseurs (Name, Vorname und Geburtsdatum) zu suchen. Zum gefundenen Film muss dann eine Kurzbeschreibung angezeigt werden. Im Moment ist es noch nicht wichtig, welche, welcher Film von welchem ressigeur stammt. Meine Mitarbeiter sollen aber schon mal eine Liste von Regisseuren erfassen können.
Film ist eine Entity, das sich aus den Attributen titel, spieldauer, erscheinungsjahr und kurzbeschreibung zusammensetzt. Die zweite Entity ist Regisseur, bestehend aus name, vorname und geburtsdatum.
2. Aufgabe
Erarbeiten Sie ein Dömänmodell in UML zum Projekt Filmverleih.
Film
titel
spieldauer
erscheinungsjahr
kurzbeschreibung
Regisseur
name
vorname
geburtsdatum

Lektion 6:
Datenbankdesign:
das physische Datenmodell Seite 67

Zusammenfassung

  • Auf die Domänenmodellierung folgt die Objektmodellierung und die physische Datenmodellierung
  • Das Domänmodell beschreibt die Konzepte einer Anwendung aus Sicht eines Anwenders oder Fachexperten.
  • Eine nicht anders deklarierte Klasse im UML-Diagramm eines Domänenmodells ist ein Entity.
  • Das physische Datenmodell ist eine direkte Abbildung der realen Datenbank.
  • Eine nicht anders deklarierte Klasse um UML-Diagramm eines physischen Datenmodells ist eine Tabelle.
  • Es gibt Transformationsregeln, die beschreiben, wie ein physisches Datenmodell aus einem Domänmodells abgeleitet werden kann. Diese sind jedoch nicht immer anwendbar.
1. Frage
Nennen Sie mindestens zwei Unterschiede zwischen dem Domänenmodell und dem physischen Datenmodell.
  • Das Domänenmodell beschreibt die Konzepte einer Anwendung aus der Sicht eines Fachexperten. Das physische Datenmodell stellt dagegen eine direkte Abbildung der realen Datenbank dar.
  • Eine Klasse im Klassendiagramm eines Domänenmodells beschreibt ein Entity, während sie im physischen DB-Modell eine Tabelle darstellt.
2. Frage
Was ist ein UML-Profil?
Ein UML-Profil ist eine Erweiterung zum UML-Standard. Der Standard beschreibt bereits, wie solche Profile definiert werden. Scott Ambler und andere haben UML-Profile speziell für Datenbank-Modelle entwickelt.
3. Frage
Nennen Sie mindestens zwei SQL-Programmierrichtlinien.
  • Geben Sie Tabellennamen für Tabellen, die aus Entitys entstanden sind, im Plural an.
  • Schreiben Sie alle Bezeichner klein
  • Trennen Sie Begriffe, die aus mehreren Wörtern bestehen, mit einem Underscore.
  • Vermeiden Sie Umlaute und Sonderzeichen.
Übung 1
Zeichnen Sie ein physisches Modell des Filmverleihs.
Film
titel
spieldauer
erscheinungsjahr
kurzbeschreibung
Regisseur
name
vorname
geburtsdatum

Lektion 7:
Das relationale Modell Seite 76

Zusammenfassung

  • Das rationale Modell ist von der Prädikatenlogik abgeleitet
  • Relationen lassen sich als Tabellen darstellen.
  • Relationen lassen sich in Mengenschreibweise notieren.
  • Die Reihenfolge der Attribute spielt keine Rolle.
  • Die Reihenfolge der Tupel spielt keine Rolle.
  • Es kann keine zwei verschiedenen Tupel geben, die für alle Attribute die gleichen Werte aufweist.
1. Frage
Wie werden Daten in einem relationalen DBMS organisiert?
Eine relationale DBMS (RDBMS) organisiert Daten in Relationen. Relationen lassen sich als Tabellen darstellen.
2. Frage
Erläutern Sie die folgenden Begriffe:
Begriff Alternativ Beschreibung
Menge Set Ist eine ungeordnete Sammlung von Elementen eines bestimmten Datentyps, von denen jeweils maximal ein Exemplar enthalten ist
Attribut Eigenschaft In der Tabellendarstellung eine Spalte oder column.
Tupel Datensatz Die Zeile in einer Tabellendarstellung, auch geläufig row oder record genannt
Relation Tabelle Ist nicht wirklich eine Tabelle, aber sie lässt sich auf dem Papier als eine Tabelle am besten darstellen.
Wert value Inhalt einer Tabellenzelle und Teil der Menge eines Attributes
Tabelle Relation Der Versuch eine relation darzustellen.
Heading Tabellenschema Als Spaltenüberschrift in der Tabelle dargestellt.
Body Datenbankschema Die Menge aller Tabellenschemata

Lektion 8:
Datentypen Seite 84

Zusammenfassung

  • Ein Typ (oder Datentyp)ist eine benannte endliche Menge von Werten.
  • Ein Attribut ist ein Paar aus einem Namen und einem Typ.
  • Jedes DBMS kann andere Typen anbieten.
  • Das physische Datenmodel zeigt die zugeordneten Typen.

MySQL-Typenübersicht

  • Zeichenketten: VARCHAR, TEXT
  • Zahlen: DECIMAL, INTEGER
  • Zeit. Datumsangaben: DATE, TIME, DATETIME
  • Warheitswert: BOOLEAN
1. Frage
Nennen Sie 3 Datentypen und erklären Sie deren Einsatzzweck!
  • INTEGER: wird zum Speichern ganzer Zahlen verwendet.
  • DATE: für Datumsangaben
  • TEXT: zum Speichern längerer Texte
2. Frage
Welche Gruppen von Datentypen gibt es?
Zeichenkette, Zahlen, Zeit- und Datumstypen und Wahrheitswerte
3. Frage
Welchen Datentyp würden Sie für eine Telefonnummer verwenden?
VARCHAR. Ein INTEGER ist ungeeignet, da viele Telefonnummern mit 0 beginnen.

Lektion 9:
SQL: Tabellen anlegen und löschen Seite 93

Zusammenfassung

  • Die SQL ist in die drei Teile DDL, DML und DCL gegliedert.
    • DDL: Data Definition Language
    • DML: Data Manipulation Language
    • DCL: Data Control Language
1. Frage
Weche Art von SQl-Anweisungen weden durch die DDL zusammengefasst?
SQL-Anweisungen, die die Definition der Daten betreffen.
2. Frage
Weche durch die DLM?
SQL-Anweisungen, mit denen Sie die Rechte der Daten manipulieren und auslesen.
3. Frage
Weche durch die DCL?
SQL-Anweisungen, mit denen Sie die Rechte der Datenbank verändern können.
4. Frage
Gibt es neben DDL, DML und DCL noch weitere Arten von SQL-Anweisungen?
In MySQL gibt es z.B. noch die Database Administration Statements und die My SQL Utility Statements. Das kann sich aber von DBMS zu DBMS unterscheiden.
5. Frage
Wie viele Tabellen kann eine Datenbank enthalten?
Manche DBMS haben eine künstlliche begrenzung, aber im Prinzip beliebig viele.

Lektion 10:
SQL: Datensätze einfügen und auslesen Seite 89

Zusammenfassung

  • Mit der INSERT-Anweisung fügen Sie Datensätze ein.
  • Mit der SELECT-Anweisung lesen Sie Datensätze aus.
  • Setzten Sie Strings und Datumsangaben in Anführungszeichen.
  • Achten Sie darauf, denselben Datensatz nicht versehentlich mehrfach einzufügen.

Lektion 11:
Schlüssel Seite 112

Zusammenfassung

  • Ein Schlüssel ist eine Teilmenge eines Headings, die (a) eindeutig indentifiziert und sich (b) nicht reduzieren lässt.
  • Der Primärschlüssel ist ein ausgewählter Schlüssel.
  • Ein Relation kann auch mehrere Schlüssel haben.
  • Verwendn Sie ein id-Attribut als Primärschlüssel.
1. Frage
Erläutern Sie die Begriffe: eindeutig und irreduzibel.
Anhand einer eindeutigen Attributmenge können Sie eine Zeile in einer Tabelle eindeutig identifizieren. Eine Attributmenge heißt irreduzibel, wenn Sie kein Attribut meht herausnehmen können, ohne dass die Menge ihre Eindeutigkeit verliert.
2. Frage
Geben Sie ein Beispiel für eine Teilnmenge von seminare ={titel, beschreibung, preis}, die nicht irreduzibel ist.
{preis}
3. Frage
Geben Sie ein Beispiel für eine Teilmenge von seminare ={titel, beschreibung, preis}, die nicht irreduzibel ist.
{titel, preis}
4. Frage
Erläutern Sie die Begriffe: Primäreschlüssel und Alternativeschlüssel.
Ein Primärschlüssel ist ein ausgewählter Schlüssel. Ein Alternativschlüssel ist ein weiterer Schlüssel, der nicht ausgewählt wurde.
5. Frage
Was bedeutet die Unterstreichung bei folgender Menge?
uebungen = {seminar titel, kapitel nr, uebungs nr, punkte}
Die Menge {seminare_titel, kapitel_nr, uebungs_nr} ist der Primärschlüssel.
6. Frage
Wozu wird ein Identity Field benötigt?
Das Muster Identity Field ermöglicht ein 1:1-Mapping zwischen Objekten und Datensätzen.
7. Frage
Sind natürlich oder eher künstliche Schlüssel im Allgemeinen zu bevorzugen?
Diese Frage lässt sich so allgemein nicht beantworten. Die Meinungen gehen hier weit auseinander. Im spezziellen Bereich der Webentwicklung (insbesondere in Verbindung mit einr ORM) haben sich aber künstliche Schlüssel durchgesetzt.
8. Frage
Kann eine Relation auch gar keinen Schlüssel haben? Begründen Sie die Anwort.
Nein Im schlimmsten Fall werden alle Attribute zur eindrutigen Identifikation benötigt. Dann sind diese aber auch schon irreduzibel und dasmit ist die Menge dieser Attribute der Schlüssel der Relation.

Lektion 12:
Schlüssel in SQL Seite 122

Zusammenfassung

  • Alternativschlüssel werden in MySQL mit UNIQUE KEY angegeben.
  • Definieren Sie das id-Attribut als PRIMARY KEY.
  • Verwenden Sie AUTO_INCREMENT für Ihre id-Attribute!
1. Frage
Wie viele Spalten in einer Tabelle können Sie als PRIMARY KEY deklarieren und wie viele als UNIQUE KEY?
Nur eine Spalte kann PRJIMARY LEY sein, aber Sie können beliebig viele als UNIQUE KEY deklarieren.
2. Frage
Welche Vorraussetzungen muss eine Spalte erfüllen, damit Sie sie mit AUTO_INCREMENT versehen können?
Sie müssen Schlüssel sein und einen Zahlentyp haben. Außerdem darf es keine weitere AUTO_INCTEMENT-Spalte in der gleichen Tabelle geben.

Lektion 13:
SQL: Ändern und bestehender Tabellen Seite 130

Zusammenfassung

  • Mit ALTER-Anweisungen können Sie das Tabellenschema ändern, ohne Daten zu verlieren.
1. Frage
Was unterscheidet CHANGE und ALTER?
Alter ist der Grundbefehl zum Ändern in SQL. Mit CHANGE können Sie innerhalb einer ALTER-Anweisung eine Spalte umdefinieren.
2. Frage
Kann ALTER einen Datenverlust bewirken?
Ja Allerdings versucht ALTER verlustfrei zu arbeiten, falls möglich.

Lektion 14:
Migrationen Seite 136

Zusammenfassung

  • SQl-Skripte enthalten Anweisungen, die Sie sonst auf die Konsole eingeben würden.
  • Mit Hilfe von Migrationsskripten können Sie Aufwände einsparn und Fehler vermmeiden.
  • Ein SQL-Skript mit Beispieldaten ist nützlich zum Testen Ihrer Anwendung.

Lektion 15:
SQL: Datensätze gezielt auslesen Seite 146

Zusammenfassung

  • Hinter SELECT können Sie Spalten auswählen, hinter WHERE Zeilen filtern.
  • Doppelte Datensätze entfernen Sie mit DISTINCT.
  • Eine Bedingung ist ein boole´scher Ausdruck.
  • Sie können in SQL Ausdrücke mit logischen Operatoren und Vergleichsoperatoren verwenden.

Lektion 16:
Ausdrücke in SQL Seite 158

Zusammenfassung

  • Mit SELECT bestimmen Sie die Spalten der Ergebnistabelle.
  • Ein Quelltabelle ist nicht zwingend erforderlich.
  • Mit AS können Sie die Spaltennamen der Ergebnisstabelle ändern.
  • MySQL kennt Operatoren und Funktionen. Sie können sie in SELECT-Ausdrücken und WHERE-Bedingungen verwenden.
  • Bei der Auswertung von Ausdrücken verwendet MySQL eine Präzedenzreihenfolge, die Sie mit Hilfe von Klammern beeinflussen können.
Operatoreübersicht in Rangreihenfolge
Präzedenz Operator Bedeutung Beispiel Ergebnis
1 * Multiplikaton 8 * 3 24
1 / Division 8 / 3 2.6667
1 DIV Integerdivision 8 DIV 3 2
1 % Modulo 8 % 3 2
2 + Addition 8 + 3 11
2 - Subtraktion 8 - 3 5
3 = gleich 8 = 3 0
3 != ungleich 8 != 3 1
3 >= größer gleich 8 >= 3 1
3 <= kleiner gleich 8 <= 3 0
3 größer > 8 > 3 1
3 < kleiner 8 + 3 0
3 LIKE like "Anna" LIKE "A%" 1
4 NOT not !TRUE 0
5 AND and 1 && 0 1
6 OR or 1 || 0 0

Lektion 17:
Aggregatsfunktionen Seite 164

Zusammenfassung

  • Mit Aggregationsfunktionen können Sie Informationen über ganze Spalten hinweg zusammensetzen (aggregieren).
1. Frage
Wo innerhalb einer SQL-Anweisung können Sie Aggregationsfunktionen eingesetzen, wo normale Funktionen?
Normale Funktionen können Sie sowohl innerhalb einer SELECT-Expression als auch in einer WHERE-Condition verwenden. Aggregationsfunktionen lassen sich dagegen nur in der SELECT-Expression einsetzten.
2. Frage
Was ist die Besonderheit von Aggrgationsfunktionen bezüglich ihrer Ein- und Ausgabe?
Aggregationsfunktionen verwenden als Eingabe eine Liste vin Werten. Im einfachsten Fall sind das alle Werte einer Spalte. Als Ausgabe liefern sie nur einen einzigen Wert zurück.

Lektion 18:
Datensätze ändern und löschen Seite 35

Zusammenfassung

  • Mit UPDATE können Sie bestehende Datensätze ändern (aktualisieren).
  • Mit DELETE können Sie Datensätze löschen.
1. Frage
Was passiert, wenn Sie ein UPDATE- oder DELETE-Anweisung ohne WHERE verwenden?
Es werden alle Datensätzte geändert bzw. gelöscht.

Lektion 19:
Sortierung und LIMIT Seite 175

Zusammenfassung

  • Mit ORDER BY können Sie die Ergebnistabelle sortieren.
  • Mit LIMIT können Sie die Ausgabe auf eine fixe Anzahl von Zeile beschränken.
  • LIMIT ist besonders nützlich, um eine Blätter-funktion zu programmieren.
1. Frage
Nennen Sie zwei Varianten, um die Tabelle seminar nach dem Attribut preis aufsteigend zu sortieren.
Sie können das ASC angeben oder weglassen, da aufsteigende Sortierung bereits das Standardverhalten ist:
SELECT * FROM seminar ORDER BY preis;
SELECT * FROM seminar ORDER BY preis ASC;

Lektion 20:
Die Null-Markierung Seite 183

Zusammenfassung

  • NULL-Marker stehen für unbekannte Werte.
  • Sie können Sie aber auch in anderer Bedeutung verwenden, z.B. als nicht existent.
  • Spalten, die Sie als NOT NULL markiert haben, sind Pflichtfelder.
  • Zum Abfragen von NULL-Werten benötigen Sie die Operatoren IS NULL und IS NOT NULL:
1. Frage
Überlegen Sie sich mindestens zwei weitere Bedeutungen, für die Sie den NULL-Marker einsetzten können?
  • NichtAnwendbar -z.B. Ehemann einer unverheitrateten Frau
  • Information noch nicht verfügbar - z.B. Todesdatum bei einer lebenden Person
2. Frage
Welches UML-Mittel benötigen Sie, um Attribute in einem Klassendiagramm als NOT NULL zu kennzeichnen? Wie lautet die Kennzeichnung genau?
Sie kennzeichnen die Attribute mit Hilfe der OCL als {not null}.
3. Frage
Welche Änderung ergibt sich bezüglich NULLs in der neusten Version des relationalen Modells?
Sie sind nicht länger erlaubt.
4. Frage
Was ergibt NULL = NULL SQL?
NULL

Lektion 21:
Beziehungen im Domänenmodell Seite 189

Zusammenfassung

  • Beziehungen stellen eine Verbindung zwischen Entities her.
  • Die Namen von Beziehungen sind normalerweise Verben. Zusammen mit den dazugehörigen Entities einer Beziehung können Sie einein Satz bilden.
  • Die Kardinalität gibt die Anzahl von Datensätzen an, die in einer Beziehung beteiligt sind.
1. Frage
Warum wird die Kardinalität nicht genauer bestimmt, z.B. 1:7 statt 1:n?
Zum einen wäre das sehr unflexibel, da sich die genaue Kardinalität in der Praxis ständig ändert und zum anderen ist es für die Datenbankentwicklung nicht weiter wichtig.

Lektion 22:
1:n-Bjeziehung in SQL Seite 196

Zusammenfassung

  • 1:n-Beziehungen können Sie mit Hilfe von Fremdschlüssel realisieren.
  • Ein Fremdschlüssel entspricht dem Primärschlüssel einer anderen Tabelle.
  • Mit einem JOIN können Sie Daten aus mehreren Tabellen abfragen.
1. Frage
Kennt ein Datenbankschema Beziehungen?
Antwort 21 ;
2. Frage
Wie nennen Sie einen Fremdschlüssel, der eine id in der Tabelle buecher zeigt?
Antwort 21 ;

Lektion 23:
n:m-Beziehungen in SQL Seite 202

Zusammenfassung

  • Eine n:m-Beziehung können Sie mit Hilfe einer Zwischentabelle abbilden.
  • Der Primärschlüssel der Zwischentabelle setzt sich aus den beiden Fremdschlüsseln zu den beteiligten Tabellen zusammen.
  • Beziehungen können selbst Attrubute haben, aber besser ist es, solche Beziehunggen als Entity darzustellen.
1. Frage
Wie viele JOINs benötigen Sie, um eine einfache n:m-Beziehung abzufragen?
Das Datenbankschema selbst kennt das Konzept der Beziehungen nicht. Die müssen sie mit Hilfe von JOIN bei deinr SQL-Abfrage erst wieder herstellen. Hilfreich ist natürlich, wenn Sie sich an das Namenschema gehalten haben.
2. Frage
Wie viele JOINs sind in einer SELECT-Anweisung prinzipiell möglich?
Gemäß dem vorgestellten Namensschema heißt der Fremdschlüssel buch_id .