PMG/Kurs 11/D Beleg/Stefanie
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
==Erstellen einer Datenbank==
<br>
Hier kannst du mitverfolgen, wie eine Datenbank ensteht. Mein Thema: '''Blutspenderkartei'''
<br>
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.
<br>
<br>
Zuerst erstellen wir ein '''ER-Modell'''('''E'''ntity-'''R'''elationship-Modell). Dazu über überlegen wir zunächst, welche Daten für die Bluspenderdatei wichtig sein könnten.
<br>
<br>Das ER-Modell könnte in etwa so aussehen:
<br>
[[Bild:Corona_Blutspenderkartei_ER.jpeg|left|500px]]
<br>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
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.
<br><br>
'''Tabelle Spender:''' <br>
{| border="1"
|-
|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
|}
<br><br>
'''Tabelle Krankenhaus:''' <br>
{| border="1"
|-
|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
|-
|}
<br><br><br>
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.<br>
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'''.<br>
<br>
{| border="1"
|-
|Vorname || Name || Geburtsjahr || Straße|| 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
|}
<br><br>
{| border="1"
|-
|Name || Straße || Ort
|-
|Stankt Marienstern Krankenhaus|| Liebknechtstraße 22 || 05678 Auendorf
|-
|Alexander Fleming Krankenhaus|| Kirchhofstraße 9 || 05496 Himmelreich
|-
|Uniklinikum Hemmingen|| Köhlerweg 5 || 05673 Hemmingen
|-
|}
<br><br><br>
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.<br>
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.<br>
<br>
{| border="1"
|-
|Spender-ID || Vorname || Name || Geburtsjahr || Straße|| 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
|}
<br><br>
{| border="1"
|-
|Krankenhaus-ID || Name || Straße || 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
|-
|}
<br><br>
'''Tabelle Spendet:''' <br><br>
{| border="1"
|-
|Spender-ID || Krankenhaus-ID|| Datum
|-
|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
|-
|}
<br><br>
<br>
Damit eine Tabelle in der '''dritten Normalform''' ist,
<code id="9ad5ec248vbf5">
</code>
<run id="9ad5ec248vbf5">
</run>