Dienstag, 15. April 2014

Optimierung durch Entity Abstraktion - Teil I Datenbankdesign

Beim Datenbankdesign hat man oft hauptsächlich die Daten vor Augen. Es wird geprüft, ob die Daten Redundanzen enthalten. Wenn ja, führt man die üblichen Normalisierungen durch. An die Implementierung denkt man in der Regel dabei noch nicht oder nur selten. Meistens nimmt man an, daß sich aus den richtigen Datenstrukturen in der Datenbank die passenden Datenstrukturen für die Implementierung einfach ergeben. Dass das nur die halbe Wahrheit ist, möchte ich in diesem Artikel zeigen.

Ich arbeite für eine bekannte Wetterseite. Aus diesem Umfeld möchte ich auch das Beispiel entlehnen. Es geht um Wetterberichte. Diese erhalten wir als XML Dateien. Es gibt z.Z. ca. 20 verschiedene Wetterberichte. Für meine Überlegungen reichen drei Typen aus und die stelle ich hier auch nur vereinfacht dar.

Die Wetterdaten


Da wäre zunächst der Kurzwetterbericht wetterbericht_kurz.xml mit folgender Struktur:

1:  <?xml version="1.0" encoding="UTF-8"?>   
2:   <wt_kurz>   
3:    <datumzeit>   
4:     <datum>2013-11-10</datum>   
5:     <zeit>12:00:00 </zeit>   
6:    </datumzeit>   
7:    <titel>Langwetter Nachrichten</titel>   
8:    <ueberschrift>Wetterbericht fuer Bayern, Sonntag 15. Juli, 12:00 Uhr</ueberschrift>   
9:    <kopfzeile>Im Westen regnerisch, im Osten anfangs noch warm</kopfzeile>   
10:    <ueberschrift_wt_text>Das Wetter in Bayern:</ueberschrift_wt_text>   
11:    <wt_text>Hier steht jetzt der Wettertext ... blalalalallala</wt_text>   
12:    <ueberschrift_wt_naechste_tage>Die weiteren Aussichten bis Donnerstag:</ueberschrift_wt_naechste_tage>   
13:    <wt_naechste_tage>und auch in den kommenden Tagen viel Wetter .... </wt_naechste_tage>   
14:    <fuss>MeteoInfo: Meteorologe vom Dienst: Tel: 089 / 123456</fuss>   
15:   </wt_kurz>