Newbie-Frage

Vorab: kenne mich weder mit php, noch mit MySQL aus.

Frage: Kann ich numerische Daten einer Zelle einer MySQL-Tabelle durch MySQL (!) verarbeiten und in einer anderen Zelle speichern lassen.

Beispiel: Verschiedene User hat das Alter ihrer Kinder angegeben. In einer Zelle soll MySQL dann sofort das Durchschnittsalter berechnen.

Stelle mir das so vor wie in Excel. Die Formel wäre in der Zielzelle also schon hinterlegt.

Oder ist für all diese Operationen zwingend ein php-Skript oder ähnliches notwendig?

Danke euch!

Jan

Hallo!

Frage: Kann ich numerische Daten einer Zelle einer
MySQL-Tabelle durch MySQL (!) verarbeiten und in einer anderen
Zelle speichern lassen.

So etwas sollte man immer ausserhalb einer Datenbank machen lassen. Das wird immer beim Normalisieren beschrieben.

mfg
chris

Hey Chris,

danke für die Antwort. Ganz verstanden habe ich es aber noch nicht.

Frage: Kann ich numerische Daten einer Zelle einer
MySQL-Tabelle durch MySQL (!) verarbeiten und in einer anderen
Zelle speichern lassen.

So etwas sollte man immer ausserhalb einer Datenbank machen
lassen. Das wird immer beim Normalisieren beschrieben.

Warum sollte man das?
Normalisieren?

Danke und Gruß

Jan

Hi Jan,

Frage: Kann ich numerische Daten einer Zelle einer
MySQL-Tabelle durch MySQL (!) verarbeiten

ja

und in einer anderen Zelle speichern lassen.

Das sollte man nicht tun.

Beispiel: Verschiedene User hat das Alter ihrer Kinder
angegeben. In einer Zelle soll MySQL dann sofort das
Durchschnittsalter berechnen.

Das Durchschnittsalter stimmt nur im Moment der Berechnung. Wann soll die Berechnung vorgenommen werden? Bei der Eingabe? Dann kann der berechnete Wert bereits morgen falsch sein. Beim Auslesen der Daten? Dann gibt es keinen Grund, den Durchschnitt zu speichern - Anzeigen genügt.

Nebenbei bemerkt: Das Alter der Kinder zu speichern ist keine gute Idee, besser wäre das Geburtsdatum, dann kann die Datenbank auch in 3 Jahren noch sinnvoll ausgewertet werden.

Gruß Ralf

Hallo an dieser Stelle.

Hey Chris,

danke für die Antwort. Ganz verstanden habe ich es aber noch
nicht.

‚Schau’n mer mal‘:

Frage: Kann ich numerische Daten einer Zelle einer
MySQL-Tabelle durch MySQL (!) verarbeiten und in einer anderen
Zelle speichern lassen.

So etwas sollte man immer ausserhalb einer Datenbank machen
lassen. Das wird immer beim Normalisieren beschrieben.

Warum sollte man das?
Normalisieren?

Die Idee einer relationalen Datenbank ist das möglichst fehlerfreie Lesen/Speichern von Daten. Besser: die Logik einer sog. relationalen DB liegt in Tabellenform vor. Um Inkonsistenzen (speziell bei Löschvorgängen) zu vermeiden wird die DB normalisiert. Schlagwort: Codd’sche Normalformen. Ein Beispiel eines DB Schemas: http://www.eclipse.org/birt/db/dbschema/ClassicModel… . Die Materie wird relativ komplex, deshalb jetzt einfach ein paar links: http://www.schnydrig.ch/mm_informatikthemen.htm -> Datenmodellierung, http://www.datenbank-spektrum.de, http://de.wikipedia.org/wiki/Codd

HTH
mfg M.L.

Hallo Ralf!

Vielen Dank für deine Antwort!

Frage: Kann ich numerische Daten einer Zelle einer
MySQL-Tabelle durch MySQL (!) verarbeiten
und in einer anderen Zelle speichern lassen.

Das sollte man nicht tun.

Beispiel: Verschiedene User hat das Alter ihrer Kinder
angegeben. In einer Zelle soll MySQL dann sofort das
Durchschnittsalter berechnen.

Das Durchschnittsalter stimmt nur im Moment der Berechnung.
Wann soll die Berechnung vorgenommen werden? Bei der Eingabe?
Dann kann der berechnete Wert bereits morgen falsch sein. Beim
Auslesen der Daten? Dann gibt es keinen Grund, den
Durchschnitt zu speichern - Anzeigen genügt.
Nebenbei bemerkt: Das Alter der Kinder zu speichern ist keine
gute Idee, besser wäre das Geburtsdatum, dann kann die
Datenbank auch in 3 Jahren noch sinnvoll ausgewertet werden.

Gut - sehe ein, dass das Alter ein schlechtes Beispiel war :wink:
Mir geht es eigentlich um komplexere Berechnungen.
Die Idee war, dass die DB nur einmal rechnen müsste. Diesen Wert liest man dann beliebig oft aus, ohne dass der Interpreter (ist das so richtig?) jedesmal rechnen muss.

Ich hätte mir auch vorgestellt, dass es in der DB vielleicht einfacher wäre, beispielsweise verschachtelte Wenn-Dann-Beziehungen umzusetzen (weniger Syntax-Probleme)?

Gruß und noch mal Danke

Jan

Hallo Markus!

Danke für die Einführung in das Normalisieren.
Bist auch ein Hans-Dampf-in-allen-Gassen, oder?
Sprachen doch kürzlich erst über diskrete W.-Verteilungen (Chi-Quadrat etc.) in ‚Mathematik‘.
Gruß!

Jan

Hallo nochmal.

Hallo Markus!

Danke für die Einführung in das Normalisieren.

Auch wenn es nur eine Kurzfassung war :wink:

Bist auch ein Hans-Dampf-in-allen-Gassen, oder?

Eigentlich nicht (arbeite aber fleissig weiter dran :wink: )
Z.B. beträgt die Menge der Postings im Brett ‚Esoterik‘ meinerseits exakt ‚0‘…

Sprachen doch kürzlich erst über diskrete W.-Verteilungen
(Chi-Quadrat etc.) in ‚Mathematik‘.

In aller Bescheidenheit: relationale DB haben mit Mathematik mehr gemeinsam als man denkt. Und in grauer Vorzeit hatte sich der Autor dieser Zeilen auch mal mit Statistik befasst (Jugendsünde…). Danach kam Computergrafik und danach was Richtiges: SAP BW, SEM, ABAP, BSP, Java + .NET

mfg M.L.

Hi Jan,

Die Idee war, dass die DB nur einmal rechnen müsste.

die Idee hinter relationalen Datenbanken ist u.a., Probleme bei Datenänderungen zu vermeiden. Stell Dir vor, Du berechnest eine Summe und speicherst sie ab, kurz darauf muss einer der Summanden korrigiert werden. Wer berechnet dann die neue Summe? Oder, noch schlimmer: Die Berechnung ist wesentlich aufwendiger als eine Summenbildung, Du speicherst das Ergebnis und der Gesetzgeber ändert das Berechnungsverfahren. Wie werden die alten Daten korrigiert? Was passiert mit Daten, die während der Umstellung eintrudeln?

Ich hätte mir auch vorgestellt, dass es in der DB vielleicht
einfacher wäre, beispielsweise verschachtelte
Wenn-Dann-Beziehungen umzusetzen (weniger Syntax-Probleme)?

Einfacher als was?

Gruß Ralf