Datenverwaltung allgemein

DerStauner

Erfahrenes Mitglied
Hallo,

ich hätte einige allgemeine Fragen zur Datenverwaltung auf einem Server. Es sind relativ einfache Fragen, der Grund, warum ich diese stelle, ist, dass ich der serverseitigen Datenverwaltung endlich aun den Grund gehen möchte.

Die Fragen wären:

1. Wie viele Datenbanktypen gibt es? Hier meine ich z.B. mdb, sdf, dbf, usw.

2. Welche Datenbanktyp ist die beste (Geschwindigkeit im Vordergrung)?

3. Hat Microsoft SQL Server 2008 seine eigene Datenbanktyp?

4. Wenn ja, wie sieht das Performance aus?

5. Kann man auf einem SQL Server eine beliebige Datenbanktyp benutzen oder muss man sich mit einer besonderen Datenbanktyp begnügen?

6. Wie sieht es die Architektur aus, wenn auch ein Server im Spiel ist? Die Datenbank ist auf dem Server, die Clientanwendung auf den einzelnen Workstationen und die Kernanwendung? Auch auf dem Server?

7. Ich nehme an, der Server kann auf dem selben Compuer sein, wo der Clientanwendung ist (während der Entwicklungszeit), oder?

8. Habt ihr es bemerkt, dass Programme, die z. B. mit VB2008 erstellt wurden, saulangsam auf xp-Betriebssystemen sind? Auch dann, wenn die Anwendung nur aus einem einzigen Form besteht. Mit 'langsam' meine ich die Ladezeit vom Anklicken der Anwendung bis zum Erscheinen des Forms. Auf Vista-Systemen oder Windows 7 ist es wesentlich schneller. Ist es auch mit SQL Server 2008 so?

9. Könnt ihr ein besonders gutes Buch über Microsoft SQL Server 2008 empfehlen?

Danke im Voraus für eure Antworten.
 
Aaaaaaaaaallllssoo:

1. Anscheinend meinst du Dateitypen; darum solltest du dich gar nicht kümmern. Nahezu jede Datenbank (Oracle, Informix, SQL Server...) hat ihr eigenes Datenformat und ihre eigenen Dateitypen (was nicht ausschließt, dass die Dateiendungen auch manchmal gleich sein können) und braucht oft sogar mehrere.

2. Das behauptet jede von sich. Die eigentliche Frage ist aber nicht, welche die schnellste ist, sondern ob die Datenbank, die du hast oder bekommen kannst, eine für deine Zwecke ausreichende Leistungsfähigkeit hat, gut (ausführlich und verständlich) dokumentiert ist und Entwicklungstools bietet, die komfortabel und mächtig sind. Dies ist bei praktisch allen DBs der Fall. Wenn du aber wirklich einen Leistungsvergleich haben willst, solltest du mal zum Stichwort 'Benchmark SQLServer' googeln.

3. Ja (siehe 1.)

4. In .NET wird der Zugriff auf SQLServer mit eigenen Klassen unterstützt und kann deshalb als performant angesehen werden; andere DBs musst du mit den ODBC-Datenbankklassen ansprechen. Ansonsten (siehe 2.)

5. Nein, weil SQLServer eine Datenbank ist und kein Computer. Ja, muss man. (siehe 1.)

6. Die Bezeichnung Kernanwendung ist eigentlich unangemessen. Der Grundgedanke bei der Client-Server-Architektur ist, die Daten zentral zu verwalten, um sie leichter pflegen zu können und neue Informationen auch den anderen Nutzern schnellstmöglich zur Verfügung zu stellen; das Thema verteilte Datenbanken solltest du erstmal ausklammern. Die Clientanwendung ist dazu da, die benötigten Daten aus der DB abzurufen, dem Benutzer anzuzeigen, und Möglichkeiten zur Änderung der Daten zu bieten. Wieviel Funktionalität du in die Clientanwendung steckst und wieviel Vorarbeit die DB übernehmen soll bzw. kann, ist deiner Entscheidung überlassen und auch von der Art abhängig, wie die Daten verwertet werden sollen. Du solltest aber möglichst früh dazu übergehen, SELECTs, INSERTs, UPDATEs und DELETEs in DB-Prozeduren zu hinterlegen, die du dann in deiner Client-Anwendung mit den zugehörigen Parametern aufrufst; dies wird auch von den .NET-Entwicklungstools unterstützt. Du musst dir aber im klaren darüber sein, dass Änderungen in der Datenbankstruktur meistens auch Änderungen in der Clientanwendung macht. Du solltest also von Beginn an dir die Mühe machen, ein sauberes und möglichst mächtiges Datenbankmodell (Konzept der Struktur der Daten und ihrer Beziehungen zueinander) zu erstellen. Außerdem musst du entscheiden, ob du eine C#-Anwendung erstellen willst, das auf dem Client läuft, was sinnvoll ist, wenn auf Basis der Daten rechenintensive Nachbearbeitung notwendig ist, oder ob du das Programm als Webanwendung zu Verfügung stellst, wobei die Programme auf dem Server abgelegt und per Browser abgerufen werden, was die Pflege der Client-Anwendung vereinfacht, weil du das Programm zentral hast und deswegen nicht neue Versionen an alle Nutzer versenden musst, wenn du die Struktur deiner Datenbanken änderst.

7. Ja, du musst aber darauf achten, dass du die Verbindungsparameter konfigurierbar hältst, z.B. in der Web.config-Datei.

8. Nein, aber nur deswegen, weil ich mit C# arbeite (solltest du auch tun). Mit VB konnte ich mich nie anfreunden, zumal es sowieso den Ruf hat, nicht sehr performant zu sein.

9. Gut ist relativ; es hängt stark von dem Stil ab, den du bevorzugst. Schau dir einfach mal ein paar Bücher in einer Bibliothek oder Buchhandlung an und entscheide selbst. Viele Einsteigerbücher sind weitschweifig und können deshalb nur einen kleinen Teil der Möglichkeiten darstellen, die du nutzen kannst. Dafür sind sie reich bebildert und die grundlegenden Vorgänge sind leicht erlernbar. Bücher, die dir viel Informationen bieten, sind schwerer zu verstehen, bieten dir aber auch Unterstützung, wenn du fortgeschrittenere und leistungsfähigere Techniken einsetzen musst oder willst; sie landen nicht so schnell in einer staubigen Ecke.
Für den Anfang solltest du dir vor allem auch allgemeine Kenntnisse anlesen, und zwar:
- SQL: wie ist es aufgebaut, was kann man damit machen, wie wendet man es an. Zudem solltest du dir auch dir Hilfe-Dateien deiner DB anschauen, da jede DB ihren eigenen Dialekt hat.
- Wie plant man eine Datenbank? Stichworte: Datenbankmodell, Normalform(en), Tabellen, Sichten(Views), Relationen, Indizes, Verwendung von IDs, Datentypen, Datenbankdiagramme, Datenbankprozeduren.
Das klingt jetzt etwas komplizierter als es ist, weil dir das Thema fremd ist, aber es ist im Prinzip leicht zu verstehen.
Zum Schluss: Schau dir mal die Bücher von http://www.juergen-bayer.net/buecher/ an. .NET- ADO.NET- und C#-Bücher nutzen meist auch den SQLServer als Datenbank für ihre Anwendungen.

Ich wünsche dir viel Erfolg, und dass du dir nicht von der Vielzahl der Themen den Mut nehmen lässt.
 
Zuletzt bearbeitet:
Hallo Vereth,

danke, dass du Zeit genommen hast, meine Fragen zu beantworten.

Über SQL-Gundkenntnisse verfüge ich schon, habe auch einige datenbankbasierte Anwendungen programmiert (aber in kleinem Umfang), mir fehlt nur der Umgang mit einem SQL-Server und mit mehreren Usern. Deshalb habe ich die SQL Server 2008 Express Edition heruntergeladen. Dazu fand ich im Internet ein sehr gutes Einstiegtutorial. Pläne habe ich viel, Zeit leider weniger. Aber es wird mich daran nicht hindern, weil ich am Programmieren mein Spaß habe.

Danke nochmals.
 

Neue Beiträge

Zurück