Stefanie

Aus ProgrammingWiki
Archivierte Version vom 2013-03-03T18:46:54+00:00. Aktuelle Version

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:

Corona_Blutspenderkartei_ER.jpeg















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:

NameGeburtsjahrAdresseBlut
Hans Meier1956Blumenweg 7, 05678 AuendorfAB Positiv
Ilse Meier1960Blumenweg 7, 05678 AuendorfA Positiv
Maria Schulze1973Mozartstraße 19, 05496 Himmelreich0 Negativ
Andreas Liebsch1988Am Bach 21, 05673 HemmingenA Negativ
Michael Goldmann1979Blumenweg 15, 05678 AuendorfB Positiv


Tabelle Krankenhaus:

NameAdresse
Stankt Marienstern KrankenhausLiebknechtstraße 22, 05678 Auendorf
Alexander Fleming KrankenhausKirchhofstraße 9, 05496 Himmelreich
Uniklinikum HemmingenKö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.

VornameNameGeburtsjahrStraßePLZOrtBlutgruppeRhesusfaktor
HansMeier1956Blumenweg 705678AuendorfABPositiv
IlseMeier1960Blumenweg 705678AuendorfAPositiv
MariaSchulze1973Mozartstraße 1905496Himmelreich0Negativ
AndreasLiebsch1988Am Bach 2105673HemmingenANegativ
MichaelGoldmann1979Blumenweg 1505678AuendorfBPositiv


NameStraßePLZOrt
Stankt Marienstern KrankenhausLiebknechtstraße 2205678Auendorf
Alexander Fleming KrankenhausKirchhofstraße 905496Himmelreich
Uniklinikum HemmingenKöhlerweg 505673Hemmingen



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.

Corona_Blutspenderkartei_ER.jpeg

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-IDVornameNameGeburtsjahrStraßePLZOrtBlutgruppeRhesusfaktor
001HansMeier1956Blumenweg 705678AuendorfABPositiv
002IlseMeier1960Blumenweg 705678AuendorfAPositiv
003MariaSchulze1973Mozartstraße 1905496Himmelreich0Negativ
004AndreasLiebsch1988Am Bach 2105673HemmingenANegativ
005MichaelGoldmann1979Blumenweg 1505678AuendorfBPositiv


Krankenhaus-IDNameStraßePLZOrt
583Stankt Marienstern KrankenhausLiebknechtstraße 2205678Auendorf
561Alexander Fleming KrankenhausKirchhofstraße 905496Himmelreich
549Uniklinikum HemmingenKöhlerweg 505673Hemmingen


Tabelle Spendet:

Krankenhaus-IDSpender-IDDatum
58300123. 7. 2011
58300223. 7. 2011
5830058. 8. 2011
56100330. 9. 2011
5490042. 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.