Erklärungen zu den
Lösungen der Repetitionsaufgaben
(Daten verwalten
mit einer relationalen Datenbank –
E.Tutorial 2)
Frage
1:
Tabellen besitzen Spalten (->
senkrecht) mit Spaltenüberschriften (auch Attribute genannt)
und eine beliebige Anzahl an Zeilen mit den Daten (->
waagrecht).
Ein Primärschlüssel ist nötig,
um eine einzelne Zeile in einer
Tabelle
(hier eine Bestellung) eindeutig
zu
bezeichnen.
Frage
2:
Redundant bedeutet, dass
einzelne Einträge mehrfach
vorhanden sind. Im
Beispiel stehen z.B. bei jeder
Bestellung alle Angaben zum Kunden
(machte der
Kunde mehrere Bestellungen, stehen
auch seine Angaben mehrere Male in
der
Liste) -> simples Löschen einer
Zeile führt zu
Informationsverlust. Würde man
die Informationen auf mehrere
Tabellen aufteilen (z.B. «Kunde»
und
«Bestellung») müsste man die
Kundeninformationen nur noch
einmal in der
Kundentabelle stehen
haben.
Frage
3A:
Ein Kunde soll mehrere Bestellungen
machen können, eine Bestellung
hat aber nur einen Kunden. Daher ist
in diesem Schema die Beziehung falsch
herum eingezeichnet.
Frage
3B:
Die Primärschlüssel verschiedener
Tabellen haben nichts
miteinander zu tun.
Frage
3C:
«Artikel» könnte eine weitere Tabelle
sein, dann wäre «Bestellung»
die Zwischentabelle. Von Kunde zu
Artikel wäre es eine n:m Verknüpfung,
welche
nur mittels Zwischentabelle abgebildet
werden kann (siehe spätere
Fragen).
Frage
3D:
Richtig, da ein Kunde mehrere
Bestellungen haben kann, eine
Bestellung aber nur einen Kunden. Auch
zeigt der Fremdschlüssel Kunde_Id
korrekt an, welcher Kunde zu der
entsprechenden Bestellung
gehört.
Frage
3E:
Die Primärschlüssel verschiedener
Tabellen haben nichts
miteinander zu tun.
Frage
4A:
Der Familienname alleine ist
kein guter Primärschlüssel, da
mehrere Kunden den gleichen Familiennamen
haben können und dennoch
unterscheidbar sein müssen. (-> PRIMARY
KEY (Name))
Frage
4B:
Id alleine recht als Primärschlüssel,
den Namen braucht es nicht
auch noch. Hier fehlt aber vor allem,
dass die Id nicht null sein darf
(vergl. NOT
NULL CHECK(typeof ( Id ) =
'integer')), da sie als
Primärschlüssel dienen
soll.
Frage
4C:
Primärschlüssel-Definition
fehlt
Frage
4D:
Richtig, da die Id richtig erstellt
wird (darf nicht null sein)
und danach als Primärschlüssel
bestimmt wird.
Frage
5A:
Fast. Die Bestellung macht aber so
noch nicht ganz Sinn, da wir
nicht wissen, wie viele Stück der
Kunde bestellen möchte.
Frage
5B:
Frage: ist der
Primärschlüssel
so eindeutig??
Frage
5C:
Frage
5D:
Wäre doch schade, wenn man jeden
Artikel nur einmal bestellen
könnte…
Frage
5E:
Ein Kunde kann mehrere Bestellungen machen, ein Artikel kann aber
auch auf mehreren Bestellungen gleichzeitig
aufgeführt sein (-> n:m Verknüpfung
–
kann nur über eine Zwischentabelle
dargestellt werden).
Frage
6:
Zu Deutsch: Strukturierte
Abfrage-Sprache
Frage
7:
Alle richtigen Antworten habt ihr
früher oder später im Modul
selber gemacht. Eine n:m Verknüpfung
kann nicht direkt erstellt werden. Um
den
Überblick zu behalten hilft SQL direkt
auch nicht.
Frage
8:
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage, hier also nur eine
Spalte mit den Namen aller Kunden
(entsprechend auch doppelt vorkommende
Namen).
Frage
9:
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage, hier also nur zwei
Spalten mit der Id und dem Namen der
Artikel, welche teurer als 50.- sind.
Frage
10A:
Korrekt.
Frage
10B:
Die beiden Tabellen müssen mit einem
INNER JOIN erst richtig
verbunden werden (siehe richtige
Lösung).
Frage
10C:
Die beiden Tabellen müssen mit einem
INNER JOIN erst richtig
verbunden werden (siehe richtige
Lösung). Von einer Suche nach dem
Artikel
‘Stativ’ wird in der Aufgabenstellung
nichts erwähnt.
Frage
10D:
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage. Hier möchtest du nur
die Namen der Artikel, daher nur
Artikel.Name.
Frage
10E
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage. Hier möchtest du nur
die Namen der Artikel, daher nur
Artikel.Name.
Frage
11A:
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage, also Name des Kunden
und des Artikels.
Frage
11B:
Korrekt.
Frage
11C:
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage, also Name des Kunden
und des Artikels.
Frage
11D:
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage, also Name des Kunden
und des Artikels.
Frage
11E
Der Text nach ‘SELECT’ gibt dir genau
die Spaltenüberschriften
deiner Abfrage, also Name des Kunden
und des Artikels.