SQL (Express)-Matrix für Messwerte

Hallo,

bin gerade dabei, mir SQL-Express anzuschauen. Mein Ziel: Matrizen für Messwerte erstellen. Bsp.:

20,89 21,85 15,40
21,01 22,50 14,80
22,00 22,21 13,58
23,52 23,22 13,55

Und dann möchte ich zu einer jeden solchen Matrix eine Auswertetabelle erstellen, wo jeder Tabellenzeile eine Matrixzeile zugeordnet ist, z.B. so:

MAXIMALWERT MINIMALWERT ANDERER ZUGEORDNETER WERT
21,85 15,40 10,000
22,50 14,80 11,5
22,21 13,58 13,00
23,52 13,55 13,50

Natürlich sollen die Matrizen mal aus mehreren hunderttausend oder Millionen Zellen bestehen, deswegen die Idee, SQL zu benutzen (Excel versagt da).
Ich arbeite mit Visual C# Express 2008 und guck mir da LINQ to SQL an.

Wie kann ich obige Beziehungen erstellen, besonders die Matrix, deren Größe erst zur Laufzeit bestimmt werden kann? Eigentlich ist den Spalten der SQL-Tabellen bzw. Datenbanktabellen ja immer ein Name zugeordnet. Kann man das umgehen oder gibts dafür eine schöne Lösung, um so etwas ähnlich wie eine Excel-Tabelle zu erzeugen.

Schonmal Danke für die Antwort(en)!

Bastian

Hallo Bastian,
du bist in deinem Ansatz noch zu Excel-verseucht.

Erstmal sollte dir klar sein wie Daten in einer relationalen Datenbank gespeichert werden.

Dann schaust du dir an was du als Ergebnis haben möchtest und wie die Eingabe der Daten erfolgen muss und wie die Daten natürlich aussehen.

Aufgrund dieser Überlegung wird dann das Datenbankdesign festgelegt. Dieses Design sollte so sein, dass auch bei Messwerten die du heute noch nicht kennst, keine Änderung des Design notwendig sein sollte.

Die Transformation dieser Werte in eine Ausgabematrix deiner Wahl erfolgt dann in deiner Anwendung.

In deinem C# Programm werden dann die Daten gelesen, du erzeugst möglicherweise eigene Datatables die du dann für irgendwelche Gridviews oder Reports benutzt.

Schau dir auch besser das Entity-Framework an, da Linq2SQL nicht mehr weiter entwickelt wird.

Aber egal was du da benutzt. Dir werden damit nur die Daten geliefert. Das Reporting findet nicht in der Datenbank statt.
(Ausser du benutzt die Analysis-Services des SQL Servers - aber auch dort nur begrenzt)

Gruss
Joey

Hallo und danke für die schnelle Antwort!

Wenn das Entity-Framework die Zukunft ist, macht es wohl Sinn, sich da einzuarbeiten. Hab nur mal nach Literatur gesucht: Unter 1000 Seiten geht da leider gar nichts. Ist sowas notwendig, speziell für mein Problem ? Oder kann man das z.B. über MSDN lernen?

Zum Design: Also laut meinem begrenzten Verständnis von Datenbanken ist jeder Zeile ein Schlüssel zugeordnet. Den könnte ich ja als Zeilennumer (y-Werte von oben nach unten) der Matrix verwenden, oder? Und den Daten dafür, also den Spalten (x-Werte), geb ich einfach Namen wie x1, x2, x3 oder einfach 1, 2, 3 usw.?

In der Auswertetabelle kann ich dann über den Schlüssel direkt auf die Zeilennummer der Matrix(-tabelle), die dem Schlüssel entspricht, zugreifen.

Macht das Sinn, oder reden wir von verschiedenen Dingen?

Gruß

Bastian

Hallo,

notwendig, speziell für mein Problem ? Oder kann man das z.B.
über MSDN lernen?

Das Entity-Framework wirst du nur verstehen wenn du relationale Datenbanken verstanden hast. http://de.wikipedia.org/wiki/Relationale_Datenbank

Du kannst auch direkt mit den entsprechenden .Net Datenzugriffklassen und SQL arbeiten. SQL mußt du in jedem Fall kennen. http://de.wikipedia.org/wiki/SQL

Datenbanken ist jeder Zeile ein Schlüssel zugeordnet. Den
könnte ich ja als Zeilennumer (y-Werte von oben nach unten)

Excel hat Zeilennummern, Datenbanken kennen keine Zeilennummern, sie kennen nur Mengen von Datensätzen die, wenn es nicht explizit verlangt ist, in einer zufälligen Reihefolge sind.

Spalten (x-Werte), geb ich einfach Namen wie x1, x2, x3 oder

Hüstel …

In der Auswertetabelle kann ich dann über den Schlüssel direkt
auf die Zeilennummer der Matrix(-tabelle), die dem Schlüssel
entspricht, zugreifen.

Es gibt keine Auswertetabelle. Es gibt ein Programm welches die Auswertung macht und die Matrix erstellt.

Wie schon gesagt. Beschäftige dich erstmal mit dem Wesen von Datenbanken und vergiss in dem Zusammenhang bitte Excel.

Dann wirst du sehen, dass das speichern der Daten die eine Sache ist und das flexible Auswerten etwas anderes ist.

Das ist eine steile Lernkurve und nicht mal so eben gemacht.

Mit Excel 2007 kannst du auch über eine Million Zeilen ansprechen. Reicht das nicht?

Gruss
Joey