info:sek1:db-instahub
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| info:sek1:db-instahub [2020/12/14 09:05] – [Eigenen Hub erstellen] demeny | info:sek1:db-instahub [2021/01/24 17:50] (aktuell) – [Mithilfe des Datenbanksystems zum ER-Diagramm] demeny | ||
|---|---|---|---|
| Zeile 62: | Zeile 62: | ||
| </ | </ | ||
| - | ===== Übung ===== | + | ===== Übung |
| <callout type=" | <callout type=" | ||
| Löse folgende Aufgaben und schreibe dir die SQL-Befehle ebenfalls in deinen digitalen Hefter. Kontrolliere die Anzahl der Ergebnisse mit der Vorgabe in Klammern. Diese Angaben gelten nur, wenn du bisher keine weiteren Änderungen an der Datenbasis vorgenommen hast. | Löse folgende Aufgaben und schreibe dir die SQL-Befehle ebenfalls in deinen digitalen Hefter. Kontrolliere die Anzahl der Ergebnisse mit der Vorgabe in Klammern. Diese Angaben gelten nur, wenn du bisher keine weiteren Änderungen an der Datenbasis vorgenommen hast. | ||
| Zeile 69: | Zeile 69: | ||
| - Gib die Anzahl an Fotos an, die in deinem Hub gespeichert sind. (1522) | - Gib die Anzahl an Fotos an, die in deinem Hub gespeichert sind. (1522) | ||
| - Zeige eine Tabelle, die die Städte der Benutzer*innen ausgibt. (204) | - Zeige eine Tabelle, die die Städte der Benutzer*innen ausgibt. (204) | ||
| - | - Manche | + | - Manche |
| - Welche der Städte ist bei alphabetischer Sortierung an erster Stelle? Informiere dich hierzu zum SQL-Befehl [[https:// | - Welche der Städte ist bei alphabetischer Sortierung an erster Stelle? Informiere dich hierzu zum SQL-Befehl [[https:// | ||
| - Erstelle eine Liste, die Benutzername und dazugehörige Stadt zeigt. Diese Übersicht soll absteigend nach Stadt sortiert sein. (204) | - Erstelle eine Liste, die Benutzername und dazugehörige Stadt zeigt. Diese Übersicht soll absteigend nach Stadt sortiert sein. (204) | ||
| Zeile 102: | Zeile 102: | ||
| FROM users | FROM users | ||
| ORDER BY centimeters DESC, name;</ | ORDER BY centimeters DESC, name;</ | ||
| + | </ | ||
| + | |||
| + | ===== Übung 2 ===== | ||
| + | <callout type=" | ||
| + | Bei den bisherigen Aufgaben genügte jeweils das Filtern von Daten in einer Tabelle - sogenannte einfache Abfragen. Nun soll es schrittweise schwieriger werden. Notiere dir neue Befehle und dazugehörige Beispiele in den Hefter. Los geht' | ||
| + | - Gib aus, wie viele Mitglieder in Berlin wohnen. (14) Erweitere hierzu die SQL-Befehle um [[https:// | ||
| + | - Ersetze in der vorhergehenden Abfrage " | ||
| + | - Ermittle alle Städte, die mit B beginnen. Informiere dich hier zum SQL-Befehl [[https:// | ||
| + | - Erstelle eine Übersicht aller Mitglieder, deren Namen auf " | ||
| + | - Frauen sind in Deutschland im Mittel 166 cm groß. Gib die Namen aller Nutzerinnen aus, die unterdurchschnittlich groß sind. (69) Um mehrere Bedingungen zu verknüpfen, | ||
| + | - Männer sind in Deutschland im Mittel 180 cm groß. Gib die Namen aller Nutzer aus, die unterdurchschnittlich groß sind. (57) | ||
| + | - Verbinde die beiden vorhergehenden Abfragen und erzeuge so eine Liste mit allen " | ||
| + | - Finde heraus, welche Fotos die Nutzerin " | ||
| + | - Anna teilt ihrem Freund das nächste Urlaubsziel verschlüsselt mit: Die Initialien der Nutzerin, die mit "Kann man das Photo irgendwo kaufen?" | ||
| + | </ | ||
| + | |||
| + | <button type=" | ||
| + | |||
| + | < | ||
| + | - <code SQL> | ||
| + | FROM users | ||
| + | WHERE city = " | ||
| + | - <code SQL> | ||
| + | FROM users | ||
| + | WHERE city != " | ||
| + | -- " | ||
| + | - <code SQL> | ||
| + | FROM users | ||
| + | WHERE city LIKE " | ||
| + | -- % ist ein Platzhalter für beliebig viele Zeichen. | ||
| + | -- _ ist ein Platzhalter für genau ein Zeichen.</ | ||
| + | - <code SQL> | ||
| + | FROM users | ||
| + | WHERE name LIKE " | ||
| + | ORDER BY name ASC;</ | ||
| + | - <code SQL> | ||
| + | FROM users | ||
| + | WHERE centimeters < 166 AND gender = " | ||
| + | -- Durch die Und-Verknüpfung werden nur Dateneinträge gezeigt, die gleichzeitig beide Bedingungen erfüllen. Bei jedem Eintrag gilt also, dass die Person kleiner als 166 cm und weiblich ist. </ | ||
| + | - <code SQL> | ||
| + | FROM users | ||
| + | WHERE centimeters < 180 AND gender = " | ||
| + | - <code SQL> | ||
| + | FROM users | ||
| + | WHERE (centimeters < 166 AND gender = " | ||
| + | -- Die Klammerung bewirkt, dass beide Bedingungen getrennt voneinander bearbeitet werden. Durch die Oder-Verknüpfung werden dann alle Datensätze gelistet, bei denen die 1., die 2. oder beide Bedingungen erfüllt sind.</ | ||
| + | - <code SQL> | ||
| + | FROM users, comments | ||
| + | WHERE users.username = " | ||
| + | -- Bei dieser Abfrage müssen zwei Tabellen abgefragt werden. Beide Tabellen haben die Nutzer-ID gemeinsam, weshalb gilt: users.id = comments.user_id. Da die Abfrage über mehrere Tabellen geht, müssen die Attribute mittels der Punktnotation der korrekten Tabelle zugeordnet werden. Dies kennst du bereits aus dem KOAM-Modell.</ | ||
| + | - <code SQL> | ||
| + | FROM users, comments | ||
| + | WHERE body LIKE "Kann man das Photo irgendwo kaufen?" | ||
| + | -- Es erscheint: Greta Bauer mit den Initialien GB. Es geht also in das Vereinigte Königreich.</ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Mithilfe des Datenbanksystems zum ER-Diagramm ===== | ||
| + | Mittlerweile hast du einen Einblick in die Datenorganisation deines InstaHubs gewonnen. Aber wie schaut eigentlich das ER-Diagramm zu InstaHub aus? | ||
| + | |||
| + | <callout type=" | ||
| + | Erstelle zuletzt das ER-Diagramm deines InstaHubs. Fokussiere dich auf die Zusammenhänge zwischen //users//, //photos//, // | ||
| + | </ | ||
| + | |||
| + | <button type=" | ||
| + | |||
| + | < | ||
| + | Hier siehst du einen Lösungsvorschlag. Aus einem konkreten Datenbanksystem das ER-Modell zu erstellen, ist keine einfache Aufgabe. Deine Lösung weicht gegebenenfalls ab. Du solltest jedoch nachvollziehen können, wieso auch diese Variante möglich ist und insbesondere die Kardinalitätsangaben begründen können. | ||
| + | {{ : | ||
| </ | </ | ||
info/sek1/db-instahub.1607933110.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
