Stefanie
Aus ProgrammingWiki
Erstellen einer Datenbank
Hier kannst du mitverfolgen, wie eine Datenbank ensteht. Mein Thema: Blutspenderkartei
Zur Blustspende gehen jählich rund 4 Millionen Menschen. Diese werden in die Blutspenderkartei aufgenommen. Diese Kartei ist - wie man sich schon denken kann - eine Datenbank. Und wie man eine solche erstellt, werde ich jetzt zeigen.
Zuerst erstellen wir ein ER-Modell(Entity-Relationship-Modell). Dazu über überlegen wir zunächst, welche Daten für die Bluspenderdatei wichtig sein könnten.
Das ER-Modell könnte in etwa so aussehen:
Nachdem wir das nun haben, formen wir aus dem ER-Modell Tabellen. Jede Entität wird zur Tabelle, oder auch Relation, jedes Attribut wird zu einer Spalte.
Tabelle Spender:
Name | Geburtsjahr | Adresse | Blut |
Hans Meier | 1956 | Blumenweg 7, 05678 Auendorf | AB Positiv |
Ilse Meier | 1960 | Blumenweg 7, 05678 Auendorf | A Positiv |
Maria Schulze | 1973 | Mozartstraße 19, 05496 Himmelreich | 0 Negativ |
Andreas Liebsch | 1988 | Am Bach 21, 05673 Hemmingen | A Negativ |
Michael Goldmann | 1979 | Blumenweg 15, 05678 Auendorf | B Positiv |
Tabelle Krankenhaus:
Name | Adresse |
Stankt Marienstern Krankenhaus | Liebknechtstraße 22, 05678 Auendorf |
Alexander Fleming Krankenhaus | Kirchhofstraße 9, 05496 Himmelreich |
Uniklinikum Hemmingen | Köhlerweg 5, 05673 Hemmingen |
In diesen Tabellen sind jetzt einige Angaben, die man so nicht lassen kann, weil sie nicht atomar sind. Zum Beispiel Adresse: Angenommen, man will wissen, welche Spender in Auendorf wohnen, ist das nicht möglich, da der Computer das nicht erkennen kann.
Teilt man aber das Attribut Adresse in Straße und Ort auf, ist die Suche möglich. Wenn man alle Daten einzeln stellt, nennt man das die erste Normalisierung oder erste Normalform.
Vorname | Name | Geburtsjahr | Straße | PLZ | Ort | Blutgruppe | Rhesusfaktor |
Hans | Meier | 1956 | Blumenweg 7 | 05678 | Auendorf | AB | Positiv |
Ilse | Meier | 1960 | Blumenweg 7 | 05678 | Auendorf | A | Positiv |
Maria | Schulze | 1973 | Mozartstraße 19 | 05496 | Himmelreich | 0 | Negativ |
Andreas | Liebsch | 1988 | Am Bach 21 | 05673 | Hemmingen | A | Negativ |
Michael | Goldmann | 1979 | Blumenweg 15 | 05678 | Auendorf | B | Positiv |
Name | Straße | PLZ | Ort |
Stankt Marienstern Krankenhaus | Liebknechtstraße 22 | 05678 | Auendorf |
Alexander Fleming Krankenhaus | Kirchhofstraße 9 | 05496 | Himmelreich |
Uniklinikum Hemmingen | Köhlerweg 5 | 05673 | Hemmingen |
In der zweiten Normalform ist eine Tabelle dann, wenn alle Eingaben atomar sind (also einzeln stehen -> erste Normalform) und wenn alle Attribute vom Primärschlüssel abhängig sind. Dieser Primärschlüssel muss für jeden Spender und jedes Krankenhaus festgelegt werden. Hier nehmen wir die Spender- und die Krankenhaus-ID.
Von diesen Primärschlüsseln sind alle Attribute bereits abhängig, es müssen also keine weiteren Veränderungen gemacht werden.
Doch, wie man mit einem Blick auf das ER-Modell feststellen kann, fehlen noch ein paar Daten. Also muss noch eine weitere Tabelle Spendet erstellt werden.
Spender-ID | Vorname | Name | Geburtsjahr | Straße | PLZ | Ort | Blutgruppe | Rhesusfaktor |
001 | Hans | Meier | 1956 | Blumenweg 7 | 05678 | Auendorf | AB | Positiv |
002 | Ilse | Meier | 1960 | Blumenweg 7 | 05678 | Auendorf | A | Positiv |
003 | Maria | Schulze | 1973 | Mozartstraße 19 | 05496 | Himmelreich | 0 | Negativ |
004 | Andreas | Liebsch | 1988 | Am Bach 21 | 05673 | Hemmingen | A | Negativ |
005 | Michael | Goldmann | 1979 | Blumenweg 15 | 05678 | Auendorf | B | Positiv |
Krankenhaus-ID | Name | Straße | PLZ | Ort |
583 | Stankt Marienstern Krankenhaus | Liebknechtstraße 22 | 05678 | Auendorf |
561 | Alexander Fleming Krankenhaus | Kirchhofstraße 9 | 05496 | Himmelreich |
549 | Uniklinikum Hemmingen | Köhlerweg 5 | 05673 | Hemmingen |
Tabelle Spendet:
Krankenhaus-ID | Spender-ID | Datum |
583 | 001 | 23. 7. 2011 |
583 | 002 | 23. 7. 2011 |
583 | 005 | 8. 8. 2011 |
561 | 003 | 30. 9. 2011 |
549 | 004 | 2. 5. 2012 |
Damit eine Tabelle in der dritten Normalform ist, muss sie die Bedingungen der zweiten Normalform aufweisen und alle Attribute müssen von einem Schlüsselattribut abhängen. Auch das ist bei uns schon gegeben. (Besser zu sehen hier.)
Jetzt muss nur noch die Datenbank erstellt werden.
Angezeigt werden soll der Name und die Adresse aller Krankenhäuser in Auendorf.
Angezeigt werden sollen die Namen und die Geburtsjahre aller, die heute(in 2013) über 23 Jahre alt sind.
Anzeige von allen Einträgen aus den Tabellen spender und spendet.
Ausgabe der Namen und der Informationen über das Blut aller Spender mit Blutgruppe A oder Rhesusfaktor positiv.