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()
Notieren Sie Verbesserungsvorschläge, falls möglich.
Notebook
preis
modell
hersteller
verfügbar
CPU
höhe
tiefe
breite
2kg
farbig
modell
hersteller
verfügbar
CPU
höhe
tiefe
breite
2kg
farbig
rohlinge
modell
hersteller
zählen
preis
lagernd
liste_auf
Anzeige
kaufe()
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.
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
spieldauer
erscheinungsjahr
kurzbeschreibung
Regisseur
name
vorname
geburtsdatum
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
spieldauer
erscheinungsjahr
kurzbeschreibung
Regisseur
name
vorname
geburtsdatum
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}
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
?
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?
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, hinterWHERE
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 undWHERE
-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
undIS 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
.