Herzlich willkommen,
06:54:58
liebe Schülerinnen und Schüler der Klasse 9c am DBG!
DATENBANK-PROJEKT (Fortsetzung)
Vorweg: Du kannst immer noch "einsteigen", in einem Team aus 2 bis 3 Personen oder auch alleine. Sieh Dir dazu den früheren Arbeitsauftrag mit der Beschreibung des Datenbank-Projekts an. Entscheide Dich für ein Projekt und schreibe in einer E-Mail an BAU, welches Projekt Du Dir ausgesucht hast.
Hier noch einmal die Informationen zum Auftrag und zum Ablauf des Projektes sowie Vorschläge für Datenbank-Projekte:
Inf9c_DatenbankProjekt.pdf (ca. 36 kB)
Wenn Du mit Deinem Team eine Rückmeldung zum Klassen-Beziehung-Diagramm und zum zugehörigen relationalen Datenbank-Modell erhalten hast, kannst Du Dich an die nächsten Projekt-Schritte machen:
- Anlegen von Tabellen und Eingabe von Beispiel-Datensätzen (mit phpMyAdmin)
- Erstellen von sinnvollen SQL-Abfragen, auch aus mehreren Tabellen
- Anfertigen einer Präsentation
Nach den Pfingstferien werden wir uns voraussichtlich wieder in der Schule sehen. Dann kannst Du mit Deinem Team Euer Datenbank-Projekt vorstellen.
27.04.2020: Datenbank-Projekt (Wochen 1 und 2): Team-Findung und Projekt-Auswahl
DATENBANK-PROJEKT
Wir haben mittlerweile alles gelernt, was wir für unser Datenbank-Projekt benötigen. Kleingruppen aus 2 bis 3 Personen sollen in einem gemeinsamen, von der Kleingruppe gewählten Projekt zusammenarbeiten.
Aufgrund der besonderen Situation ist die Beteiligung an einem solchen Datenbank-Projekt freiwillig. Wer sich in anderen Fächern schwer tut, insbesondere auch in Kernfächern, soll sich lieber auf das Lernen in diesen Fächern konzentrieren!
Die Arbeit an einem gemeinsamen Projekt macht aber bestimmt Spaß! Insbesondere alle, die Informatik in der Oberstufe belegen wollen oder sogar Informatik als Abiturfach wählen wollen, sollen sich bitte an einem Datenbank-Projekt beteiligen.
Beim Projekt kommen zur Anwendung:
- Aufstellen eines Klassen-Beziehung-Diagramms
- Umwandlung in das zugehörige relationale Datenbank-Modell
- Anlegen von Tabellen und Eingabe von Beispiel-Datensätzen (mit phpMyAdmin)
- Erstellen von sinnvollen SQL-Abfragen, auch aus mehreren Tabellen
- Anfertigen einer Präsentation und Vorstellung des Datenbank-Projektes (wenn das bis dahin wieder in der Schule möglich ist)
Informationen zum Auftrag und zum Ablauf des Projektes und Vorschläge für Datenbank-Projekte:
Inf9c_DatenbankProjekt.pdf (ca. 36 kB)
Team-Zusammenfindung und Einigung auf ein bestimmtes Datenbank-Projekt: bis Mo., 04.05.2020!
Bitte BAU in einer E-Mail schreiben:
- Welche 2 bis 3 Personen wollen zusammenarbeiten?
- Welches Datenbank-Projekt wurde gewählt?
(Eine E-Mail pro Team genügt.)
20.04.2020 Verbesserung S. 137/6 "Elektromarkt II" und "Datenschutz"
Verbesserung S. 137/6 "Elektromarkt II"
Die Lösungen dieser Aufgabe sind in der Tabelle "HAUSI" unten auf dieser Seite zu finden.
Vergleiche Deine Lösungen damit und verbessere gegebenenfalls Deine Lösungen!
Thema "Datenschutz"
Lies Dir im Buch die Seiten 151 bis 153 durch!
Zu erledigen bis Mo., 27.04.2020!
30.03.2020: Übung: S. 137/6 "Elektromarkt II"
Übung zu Abfragen aus mehreren Tabellen
Zu bearbeiten ist die Aufgabe S. 137/6 "Elektromarkt II" im Buch.
Gesucht ist bei dieser Aufgabe nicht die Antwort auf die jeweils gestellte Frage, sondern der SQL-Code, mit dem jeweils diese Antwort ausgegeben wird. (Auf die Zeichnung von Datenflussdiagrammen - in der Aufgabe verlangt - verzichten wir.)
Entwickle die verlangten SQL-Abfragen auf dieser Seite (unserer Startseite) und sichere Deine Ergebnisse, am besten in einer Datei (z. B. txt-Datei mit Editor oder Word-Datei oder Open-Office-Datei oder ...).
Die Datenbank-Schemata der Tabellen "FILIALE", "MITARBEITER", "BELIEFERT" und "GROSSHAENDLER" kannst Du Dir durch einen Klick auf "E-Markt" (unten) anzeigen lassen. Das erleichtert es, die jeweilige SQL-Abfrage zu erstellen.
Logge Dich dann in Deine Datenbank mit phpMyAdmin ein.
Lege für jede Teilaufgabe in Deiner Tabelle HAUSI einen neuen Datensatz an
und füge zur jeweiligen HNr Dein jeweiliges Ergebnis ein, also den gesuchten SQL-Code:
Teilaufgabe a) → HNr = 7, Teilaufgabe b) → HNr = 8, ..., Teilaufgabe e) → HNr = 11.
Tipp für e): Für diese Abfrage wird die Tabelle "MITARBEITER" zweimal benötigt. Dies erreicht man mit
... FROM MITARBEITER m1, MITARBEITER m2 ...
Hinweis: Einen Zeilenumbruch (d. h. eine neue Zeile in der Ergebnistabelle) erreicht man mit der Eingabe von <br> am gewünschten Zeilenende.
Überprüfe auf Deiner Abfrageseite (→ www.9c.infobauer.de/00Alle), wie Deine Ergebnisse aussehen und nimm ggf. notwendige Korrekturen vor.
(Anzeige Deiner HAUSI-Ergebnisse: SELECT * FROM HAUSI ORDER BY HNr DESC)
Zu erledigen bis Mo., 06.04.2020! (letzte Aufgabe vor den Osterferien)
Wenn Du Lust hast, kannst Du zusätzlich (freiwillig) eine Teilaufgabe f) (→ HNr = 12) bearbeiten:
Gesucht ist eine Liste aller Mitarbeiter (Name, Vorname) mit ihrer Filialen-Nr. und dem gesamten Namen ihres Vorgesetzten sortiert nach Filialen, also:
| Name | Vorname | Filiale | Vorgesetzter |
|---|---|---|---|
| Adlmann | Sylvia | 0 | Hans Danner |
| Angerer | Helmut | 1 | Pius Galgani |
| Burstedt | Annika | 1 | Katarina Frisch |
| ... | ... | ... | ... |
26.03.2020: SQL-Abfragen aus mehreren Tabellen
Arbeitsblatt "Das Kreuzprodukt von Tabellen"
Lade als Erstes das Arbeitsblatt herunter: Inf9c_Kreuzprodukt.pdf (ca. 20 kB)
Führe die auf dem Blatt aufgeführten SQL-Abfragen auf dieser Seite (unserer Startseite) aus und notiere Dir die Ergebnisse.
Logge Dich in Deine Datenbank mit phpMyAdmin ein.
Lege für jede HNr auf dem Arbeitsblatt in Deiner Tabelle HAUSI einen neuen Datensatz an und füge zur jeweiligen HNr Dein jeweiliges Ergebnis ein!
Beispiel, wie es aussehen sollte für HNr = 2:
| 2 |
SELECT * FROM SCHUELER liefert X Datensätze. SELECT * FROM WAHLKURS liefert Y Datensätze. SELECT * FROM SCHUELER, WAHLKURS liefert Z Datensätze. Wie diese Anzahl entstanden ist: Z = ? |
Hinweis: Einen Zeilenumbruch (d. h. eine neue Zeile in der Ergebnistabelle) erreicht man mit der Eingabe von <br> am gewünschten Zeilenende.
Überprüfe auf Deiner Abfrageseite (→ www.9c.infobauer.de/00Alle), wie Deine Ergebnisse aussehen und nimm ggf. notwendige Korrekturen vor.
Zu erledigen bis Mo., 30.03.2020!
23.03.2020: Anlegen der Tabelle HAUSI in Deiner Datenbank
Tabelle HAUSI anlegen und erste "Hausi" einfügen
Logge Dich in Deine Datenbank mit phpMyAdmin ein.
Lege eine eine neue Tabelle HAUSI an mit zwei Spalten:
1. Spalte: Name "HNr", Datentyp "INT", Länge "3"
Wähle unter "Index" den Eintrag "PRIMARY" aus, um das Attribut "HNr" zum Primärschlüssel zu machen.
2. Spalte: Name "Ergebnis", Datentyp "TEXT", Länge leer lassen.
Füge nun als erste "Hausi" den folgenden Datensatz ein:
HNr: 1
Ergebnis: Das folgende Zitat von Goethe:
| Es ist nicht genug zu wissen, man muss auch anwenden. Es ist nicht genug zu wollen, man muss auch tun. Johann Wolfgang von Goethe (1749 - 1832) |
Hinweis: Einen Zeilenumbruch (d. h. eine neue Zeile in der Ergebnistabelle) erreicht man mit der Eingabe von <br> am gewünschten Zeilenende.
Lasse Dir mit der auf der 9c-Startseite voreingestellten SQL-Abfrage (s. unten) das Ergebnis Deiner ersten "Hausi" anzeigen. Du musst dazu die SQL-Abfrage auf Deiner Abfrageseite eingeben und abschicken.
Zu erledigen bis Mi., 25.03.2020!
16.03.2020: Anlegen der Tabellen FACH, LEHRER und LEHRT in Deiner Datenbank
Tabellen anlegen und Daten einfügen mit phpMyAdmin
Anleitung: Inf9c_Datenbank_Anlegen_web.pdf (ca. 410 kB)
Die benötigten Daten sind der per E-Mail verschickten PDF-Datei zu entnehmen.
Zu erledigen bis So., 23.03.2020!
Tabelle "land"
| Field | Type | Null | Key |
|---|---|---|---|
| LNR | varchar(4) | NO | |
| Name | varchar(50) | NO | |
| Einwohner | double(20,2) | YES | |
| Flaeche | double(53,0) | YES | |
| Hauptstadt | varchar(30) | YES | |
| Kontinent | varchar(15) | YES | |
| KontinentFlaeche | double(8,0) | YES | |
| KontinentEinwohner | double(8,0) | NO |
Tabelle "ort"
| Field | Type | Null | Key |
|---|---|---|---|
| Name | varchar(30) | YES | |
| Land | varchar(50) | NO | |
| Einwohner | int(11) | YES | |
| Laenge | double(10,4) | YES | |
| Breite | double(10,4) | YES |
Tabelle "model" (Buch S. 80)
| Field | Type | Null | Key |
|---|---|---|---|
| ID | int(11) | NO | PRI |
| name | varchar(50) | YES | |
| cname | varchar(50) | YES | |
| age | int(11) | YES | |
| sex | varchar(1) | YES | |
| height | decimal(3,2) | YES | |
| weight | decimal(3,1) | YES | |
| nationality | varchar(50) | YES |
Tabelle "SORTIMENT" (Buch S. 79)
| Field | Type | Null | Key |
|---|---|---|---|
| ArtNr | int(11) | NO | PRI |
| Artikel | varchar(50) | YES | |
| Kategorie | varchar(50) | YES | |
| Hersteller | varchar(50) | YES | |
| EP | decimal(5,2) | YES | |
| VP | decimal(5,2) | YES | |
| Bestand | int(11) | YES |
Tabelle "WAHLKURS" (Buch S. 110/2)
| Field | Type | Null | Key |
|---|---|---|---|
| Kurs | varchar(50) | NO | PRI |
| LNr | varchar(50) | YES | |
| Stunden | int(11) | YES | |
| Tag | varchar(20) | YES | |
| Uhrzeit | varchar(5) | YES |
Tabelle "BELEGT"
| Field | Type | Null | Key |
|---|---|---|---|
| SNr | int(11) | NO | PRI |
| Kurs | varchar(50) | NO | PRI |
Tabelle "SCHUELER"
| Field | Type | Null | Key |
|---|---|---|---|
| SNr | int(11) | NO | PRI |
| Name | varchar(50) | YES | |
| Vorname | varchar(50) | YES | |
| GebDat | varchar(10) | YES | |
| Geschlecht | varchar(1) | YES | |
| Klasse | varchar(4) | YES |
Tabelle "LEHRER"
| Field | Type | Null | Key |
|---|---|---|---|
| LNr | varchar(3) | NO | PRI |
| Name | varchar(30) | NO | |
| Vorname | varchar(30) | NO | |
| Geschlecht | varchar(1) | NO |
Tabelle "FACH"
| Field | Type | Null | Key |
|---|---|---|---|
| FNr | varchar(3) | NO | PRI |
| Fach | varchar(30) | NO | |
| Kernfach | int(1) | NO |
Tabelle "LEHRT"
| Field | Type | Null | Key |
|---|---|---|---|
| LNr | varchar(3) | NO | PRI |
| FNr | varchar(3) | NO | PRI |
Tabelle "FILIALE" (Buch S. 137/6)
| Field | Type | Null | Key |
|---|---|---|---|
| Nr | int(11) | NO | PRI |
| Ort | varchar(50) | YES | |
| Telefon | int(11) | YES | |
| Flaeche | int(11) | YES | |
| Leiter | int(11) | YES | MUL |
Tabelle "MITARBEITER"
| Field | Type | Null | Key |
|---|---|---|---|
| Nr | int(11) | NO | PRI |
| Name | varchar(50) | YES | |
| Vorname | varchar(50) | YES | |
| Abteilung | varchar(50) | YES | |
| Filiale | int(11) | YES | MUL |
| Vorgesetzter | int(11) | YES | MUL |
Tabelle "BELIEFERT"
| Field | Type | Null | Key |
|---|---|---|---|
| Haendler | int(11) | NO | PRI |
| Filiale | int(11) | NO | PRI |
Tabelle "GROSSHAENDLER"
| Field | Type | Null | Key |
|---|---|---|---|
| Nr | int(11) | NO | PRI |
| Name | varchar(50) | YES | |
| Branche | varchar(50) | YES | |
| Ansprechpartner | varchar(50) | YES | |
| Tel | int(11) | YES |
Ergebnis: 12 Datensätze
| Name | Vorname | Klasse | Kurs | Tag | Uhrzeit | LNr |
|---|---|---|---|---|---|---|
| Ammer | Sigrid | 10b | Chor | Montag | 13:15 | Sachse |
| Aumann | Susanne | 10a | Chor | Montag | 13:15 | Sachse |
| Boswald | Sofie | 5a | Chor | Montag | 13:15 | Sachse |
| Aumann | Susanne | 10a | Homepage | Mittwoch | 14:00 | Geel |
| Boswald | Sofie | 5a | Homepage | Mittwoch | 14:00 | Geel |
| Christ | Fritz | 10b | Homepage | Mittwoch | 14:00 | Geel |
| Ammer | Sigrid | 10b | Orchester | Donnerstag | 14:00 | Lückmann |
| Baer | Franziska | 8c | Orchester | Donnerstag | 14:00 | Lückmann |
| Bauer | Dominik | 7a | Orchester | Donnerstag | 14:00 | Lückmann |
| Bauer | Manfred | 7a | Orchester | Donnerstag | 14:00 | Lückmann |
| Boswald | Sofie | 5a | Tastschreiben | Dienstag | 13:00 | Linhoff |
| Ceelen | Hannah | 10c | Tastschreiben | Dienstag | 13:00 | Linhoff |