Anzeige


SQL Datenbank - Daten verwalten...


Vorneweg eine Bemerkung: dieser Text wendet sich an Personen, die sich (noch) nicht mit Datenbanken und SQL auskennen! Falls Sie mit dieser Materie bereits vertraut sind: lesen Sie lieber nicht weiter. Sie werden hier nichts Neues finden, sondern eher voller Schrecken eine Sichtweise kennenlernen, wie man Datenbanken auch noch anders darstellen kann.

Doch whatever: Warum eine Datenbank? Eine Datei tut es doch auch...?

Bei diesen Fragen kommt der Punkt: Was ist eine Datenbank? Antwort: Eine Sammelstelle für Informationen aller Art. Und ja - rein theoretisch könnten Sie eine beliebige Word, Excel, Writer, Calc Datei damit ebenfalls als Datenbank bezeichnen. Allerdings sollte eine "richtige" Datenbank schon ein paar Merkmale aufweisen, um sich Datenbank nennen zu dürfen. Unter anderem sind es: schneller Zugriff auf beliebige Daten innerhalb der Datenbank, Sicherheitsmechanismen und Protokolle, um Einträge nach zu verfolgen, Multiusersupport, damit mehrere Benutzer gleichzeitig darauf Zugriff haben uvam...

Anders ausgedrückt: Wenn Sie das Telefonbuch mit einem Textverarbeitungsprogramm abtippen, haben Sie eigentlich und wenn man es philosophisch und dann auch noch von ganz tief unten betrachtet auch eine Art Datenbank erzeugt. (Erzählen Sie das bloß keinem! Das zeigt nicht gerade von tief gehenden PC Kenntnissen - und mit etwas Pech wird ein zufällig anwesender Computermensch in schallendes Gelächter ausbrechen, wenn Sie diese Behauptung aufstellen. Wenn Sie noch grösseres Pech haben, kippt der Typ auch mit einem Herzinfarkt um....)
Ihre Textdatei hat nämlich so ein paar "Probleme": Wenn Sie einen / alle Datensätze beginnend mit "S" in der Walzerstrasse suchen, die dann auch noch eine 6stellige Telefonnummer im Ortsteil Blankenburg aufweisen müssen - dann werden Sie die Suchfunktionen Ihres Textverarbeitungsprogrammes schon ganz schön verbiegen müssen. Bei einer "richtigen" Datenbank wäre dieser Zugriff einfacher: ein kleiner Befehl - und schon liefert Ihnen die Datenbank die passenden Antworten.

Zu theoretisch? Ich habe noch ein Beispiel: stellen Sie sich eine Datenbank als ein Haus bis unter das Dach angefüllt mit Büchern vor. (Früher nannte man solche Orte Bibliotheken. Sie dienten als Informationsquelle. Heute hat das Internet wohl diese Funktion übernommen.)
Wenn Sie vor einem solchen Gebäude standen, hatten Sie ein kleines Problem. Sie konnten nicht einfach hinein marschieren und sich ein Buch heraus holen. Stattdessen mussten Sie ein gewissen Prozedere einhalten. Sich zum Beispiel zuerst registrieren, die angebotenen Such- und Ordnungsmechanismen bemühen, um das gewünschte Buch zu finden und schlussendlich einen wie auch immer gestalteten Ausleihprozess durchlaufen. (Übrigens waren Bibliotheken früher nette Orte, um Menschen kennen zu lernen. Meistens vom anderen Geschlecht. Aber das hat heute wohl auch das Internet übernommen.)

Ähnliche Regeln mussten Sie einhalten, um das das entliehene Buch zurück zu bringen. (Als ordentlicher Benutzer öffentlicher Bibliotheken machte man so etwas.) Sie konnten das Buch nicht einfach durch das nächste offene Fenster in die Bibliothek werfen, sondern müssen auch hier bestimmte Mittel und Wege beschreiten, um das Buch ordnungsgemäß zurückzugeben.

Wenn Sie mit dem Beispiel "Bibliothek" etwas anfangen können - dann haben Sie schon die Grundlagen einer Datenbank begriffen. Eine Datenbank verwaltet Informationen. Eine Datenbank verlangt, dass Sie sich als User anmelden. Anschliessend können Sie der Datenbank haufenweise Befehle geben - und die Datenbank liefert Ihnen die gewünschten Informationen. Mit anderen Befehlen wiederum können Sie etwas in die Datenbank hineinschreiben.

Eine Datenbank ist demnach nichts anderes als ein Programm, das Ihnen seine Dienste anbietet. Da es außerordentlich schnell und strukturiert arbeitet und speziell für die Verwaltung von Informationen (Daten) ausgelegt wurde, haben wir hier auch schon den wesentlichen Unterschied gegenüber Ihrem abgetippten Telefonbuch in einer Textverarbeitungsdatei: Sie können schnell viele Daten lokalisieren und je mehr Daten Sie haben, desto wohler wird sich Ihre Datenbank fühlen. Ein weiterer wesentlicher Unterschied: Datenbanken unterstüzen den Multiuserzugriff, d.h. mehrere Benutzer dürfen (quasi) gleichzeitig auf die Informationen zugreifen. (Ob das Sinn macht, wenn alle im gleichen Datensatz zu gleichen Zeit die Telefonnummer ändern, sei dahin gestellt. Hier bietet die Datenbank dann wieder praktikable Sperrmethoden, um diese vielen Befehle und Änderungswünsche klug zu kanalisieren.)


SQL Datenbanken

Die häufigste Art von Datenbanken sind SQL DAtenbanken. SQL bezeichnet dabei eigentlich "nur" eine (mehr oder weniger) einheitliche Abfragesprache, um Informationen zu lokalisieren oder anzunehmen. Detaillierte Informationen gibt es bei WIKIPEDIA.

Die häufigsten SQL Datenbanken, die wir recht häufig in kleineren und mittleren Unternehmen (KMU) antreffen sind:

mySQL von SUN. http://dev.mysql.com/

MS SQL von Microsoft. Webseite MS SQL Server 2005.

mySQL von SUN ist wahlweise für Linux oder Windows verfügbar und entstammt eigentlich einem Open Source Projekt. Seit einiger Zeit ist mySQL in der Hand der Firma SUN - und der gewerbliche Einsatz kostenpflichtig. Zumindest lt.  Webseite (Stand April 2008) mit ca 500 Euro Server / Jahr. (Ob das nun pro Server UND / ODER pro Jahr heisst, habe ich nicht verstanden. Interessiert mich auch nicht weiter, denn:)

MS SQL (den MS SQL Server) von Micorsoft gibt es als kostenpflichtige Version(en) - allerdings auch mit kleineren Leistungseinschränkungen in der MS SQL Express Version als kostenfreie Version. Diese können Sie auch gewerblich kostenfrei einsetzen (zumindest zum Zeitpunkt, als ich diese Zeilen geschrieben habe.)

Darüber hinaus gibt es natürlich noch eine Reihe weiterer Datenbankprogramme, mal mit / mal ohne SQL. Ich nenne das jetzt mal properitäre Systeme - und dort ist vermutlich auch das eine oder andere gute Programm dabei. Aufgrund meiner beruflichen Verwendung interessiere ich mich aber nur für SQL Server und deshalb lasse ich alle diese properitären Systeme immer links liegen. (Oder rechts - ganz wie Sie wollen.)

Last-not-least müsste man wohl noch über MS ACCESS von Micrsoft sprechen. Das möchte ich aber noch ein paar wenige Zeilen zurückstellen und auf eine Besonderheit hinweisen, die gerade dem Datenbankeinstieger manchmal das Leben schwer macht:


SQL Client - Front End für den Benutzer

Eine Datenbank ist ein Programm, das verwaltet Daten. Allerdings - und das kennzeichnet mySQL und MS SQL - das Ding kommt erst einmal OHNE grafisches Programm daher, das Ihnen die gewünschten Daten auch wieder anzeigt. Um es einfacher zu gestalten: für SQL (Server-) Datenbanken benötigen Sie einen SQL Client, mit dem Sie Ihre Daten anzeigen oder eingeben können. Dieser SQL Client - sozusagen das Frontend an dem Sie Ihre Befehle tippen, Daten ansehen, Listen drucken und sonst wie mehr oder minder produktiv tätig sind, müssen Sie unter SQL selbst erstellen - oder erstellen lassen.

MS ACCESS beinhaltet nicht nur eine Datenbank, sondern kommt gleich mit integrierten Front End daher. Das müssen Sie zwar auch noch konfigurieren - aber das bietet für den Ungeübten schon eine Menge von Vorschlägen, Wizzards und ähnlichem tollen Schnickschnack, das den Aufbau einer eigenen Datenbank incl. grafischen Frontend recht einfach gestaltet. Einfach erkauft man aber auch mit dem möglichen Problem, dass man im Fall einer Fehlbedienung etwas falsch machen kann. Wir haben lange mit ACCESS gearbeitet. (Alte Version aus MS Office 97.) Immer wieder war ein User dabei, der uns eine Eingabemaske aufgrund einer Fehlbedienung "verhuddelte" - und dann musste man immer ran und das Ganze wieder grafisch schön zurechtziehen. (Das "auf die Finger hauen" half auch - aber das ist in unserer heutigen Arbeitswelt inzwischen arbeitsgerichtlich untersagt: Man darf seine Kollegen nicht mehr prügeln. Nicht mal bei nachgewiesener Doofheit.)
Daraus folgt: Offene Systeme sind zwar toll - implizieren aber auch den Nachteil, dass man viel Falsch machen kann - oder das Ganze wieder mit mehr oder weniger viel Aufwand schützen muss. (Stichwort: Benutzerrechte. Man kann alles schützen, stellt sich nur die Frage, ob sich der Aufwand lohnt...)

Wäre ACCESS eine perfekte Lösung? Vielleicht ja, theoretisch - wenn Sie a) nicht zu viele Daten haben, b) bereit sind, sich für jeden Datenbank User eine MS OFFICE Version incl. ACCESS zu kaufen. (Kosten der MS Office Prof. Version ca. 700 Euro. Stand Anfang 2008.)


MS SQL Server Express Version ist meine erste Wahl...

Hier schliesst sich der Kreis, warum ich / wir unseren Kunden im KMU Bereich die MS SQL Server Express Version empfehlen und einsetzen.

  • Kostenfrei - da wir auch Software im LOW Budget Bereich anbieten, ist es schwer vermittelbar, dass der Benutzer 200 Euro für unsere Software und dann ein Mehrfaches für eine Datenbank(lizenz) bezahlen soll

  • Akzeptable Performance und Leistungsfähigkeit mit vergleichsweise geringen Einschränkungen gegenüber den Bezahlversionen - zumindest solange der Datenzugriff überschaubar bleibt  *1

  • vollkommene Gestaltungsfreiheit beim Front End - das wird einmal passgenau programmiert und bietet optimale Bedienung für den Benutzer vor Ort.

*1 Zumindest solange Sie in einem kleinen Team oder in einer kleineren und mittleren Firma arbeiten. Wenn Sie ein Unternehmen mit mehreren Tausend Angestellten sind, ist die Express Version eher nichts für Sie. Dann sind sie kein KMU mehr. Sie sollten sich Gedanken über die Bezahlversionen machen...


Installation - die ersten Schritte...

So weit, so gut. Wir setzen also auf MS SQL Server Express Version. Doch wie sieht das in der Praxis aus? Was wird geboten, um das Ganze "rund zu bekommen. Wie geht es? Was muss man wissen, können, tun...?

Schritt 1: SQL Grundinfos besorgen

Viele Fragen. Die erste Antwort lautet: sich etwas über SQL informieren. Ganz hiflreich sind SQL Bücher - oder das Internet. (SQL Bücher kann man sich übrigens in Bibliotheken ausleihen. Ha - genial gewähltes Beispiel, nicht?)
Wenn man erst einmal halbwegs verstanden hat, das ein SQL Server verschiedene Datenbanken verwaltet (hostet), dass die Datenbanken in Tabellen aufgeteilt sind, wie eine SQL Abfrage funktioniert - dann hat man schon das nötige Rüstzeug für die eigene Nutzung erworben.

Schritt 2: MS SQL Server Express installieren - MS SQL Server Express Version

Der nächste Schritt wäre dann, sich die MS SQL Server Express Version zu besogen. Gibt es als Download im Internet. Dann installieren.

Jetzt haben Sie einen SQL Server auf Ihrem PC am Laufen - und dürften erst einmal etwas frustriert sein. Sie sehen ja nichts. Das Ding verrichtet seinen Dienst irgendwo im Hintergrund (anzusehen unter Systemsteuererung --> Verwaltung --> Dienste --> SQL Server), Ihr PC läuft vielleicht auch noch etwas langsamer - aber mehr ist nicht. Nix bunte Bilder, nix mit Anmeldung. Alles umsonst. Nur Performance und Plattenplatz geopfert... oder?

Schritt 3: Admintool installieren MS SQL Server Management Express

Eine gute Gelegenheit, sich das SQL Server Studio Management Express downzuloaden und auch zu installieren! Diese Software ist ein grafisches Programm, um Ihren SQL Server zu verwalten. (Ähnliches gibt es wohl auch für mySQL. Dort kenne ich aber den Namen nicht. Zu meinen mySQL Zeiten hatte ich das Ding nur textbasiert, als Kommandozeile - und das hat mich wenig begeistert. Ein textbasierendes Kommandozeilentool gibt es auch für den MS SQL Server ("sqlcommand") - aber das benutze ich nur, wenn ich mich ernsthaft langweile, mir sonst nichts einfällt und ich mich unbedingt mal wieder zurück in die Anfangszeiten der zeilenorientierten Befehle zurück bewegen will. Nostalgie und Retro sind cool - und manchmal hat man ja nix anderes zur Hand...)

Schritt 4: Datenbanken anlegen, Server verwalten

Mit dem SQL Server Studio Management Express Programm können Sie sich an Ihren Server anmelden und haufenweise administrative Sachen veranstalten. Die Besten: Sie können Datenbanken anlegen. Sie können Tabellen in den Datenbanken anlegen. Sie können User anlegen und verwalten. Sie können sogar die Tabellen mit Daten füllen. Wenn Sie Ihr anfangs gelerntes SQL Wissen erproben möchten, können Sie auch die ersten eigenen SQL Befehle probieren und sich ansehen, wie Ihr Server auf Ihren SQL Enthusiasmus reagiert.

Kurzum: mit dem SQL Server Express und dem SQL Server Studio Management Express haben Sie die Grundlage geschaffen, um Ihren eigenen SQL Server zu verwalten und eine SQL Datenbank mehr oder weniger sinnvoll zu nutzen.

Schritt 5: Front End für den Benutzer programmieren

Jetzt wird es dunkel! SQL Server ohne SQL Client - ohne Frontend - können Sie vergessen. Ohne Programmierung geht es nicht weiter. Als Anwender von Microsoft Visual Studio ist jetzt etwas Arbeit notwendig, um sich das passende Frontend für Ihre SQL Datenbank zu generieren. Jetzt werden Sie vielleicht überrascht sein: innerhalb einer Zigarettenlänge können Sie Ihr Schmalspur SQL Frontend selbst programmieren. (Da Rauchen gesundheitsschädlich und sowieso OUT ist: das war früher eine mehr oder weniger anerkannte Zeiteinheit von ungefähr fünf Minuten...)

Nein ehrlich - kein Witz. Wenige Minuten und etwa Programmierung - und Sie haben ein einfaches Frontend für Ihren SQL Server fertig. Sie können sich Daten anzeigen lassen, diese ändern und bei Bedarf zurück in die SQL Datenbank schreiben.

Fairerweise sei erwähnt, dass das Schmalspurfrontend wirklich "Schmalspur" ist. Ähnlich einer Tabelle in MS Excel oder OpenOffice CALC. Aber wohlgemerkt: es sind IHRE Daten aus einem SQL Server! Sie können jetzt noch Tage und Wochen damit zubringen, das neu geschaffene Programm "rund" zu programmieren. Bunt, viele Felder, umfangreiche Abfragen, individuelle was-auch-immer-der-User-will usw usf.

Fertig?

Sie haben jetzt einen SQL Server, das Admintool und ein mehr oder weniger hübsch anzusehendes SQL Frontend für den Benutzer Ihres Rechners. Doch was ist, wenn Sie Mitglied eines Teams sind und mehrere Personen auf den Server zugreifen sollen...


SQL Server Networking...

Die SQL Datenbank ist multiuserfähig. Habe ich weiter vorne geschrieben. Doch das bringt Ihnen irgendwie nicht viel, wenn nur ein Benutzer an Ihrem PC sitzen kann. Eine Tastatur - ein Monitor = ein Benutzer.

"Hm, Netzwerk..." oder "Networking..." werden jetzt die Experten brummeln und den Raum verlassen - sofern sie das noch nicht getan haben.

Stimmt. Genau richtig. Unter Programme --> SQL Konfiguration SQL Server Configuration Manager werden Sie fündig.

Im SQL Server Configuration Manager können Sie unter Netzwerkkonfiguration die Protokolle auswählen.

Der Favourit dürfte TCP / IP sein. Unter Eigenschaften (rechte Mousetaste) können Sie eine IP Adresse und den Port Ihres Servers zuweisen. Damit schaffen Sie es dann, dass Ihr Server auch im Netzwerk erreichbar ist.

Theoretisch. In der Praxis müssen Sie noch einen User gestatten, sich über Netzwerk an das Netzwerk anzumelden. Konkret heisst das: Verwenden Sie SQL Server Studio Management Express, um Benutzer anzulegen und mit Rechten auszustatten, damit sich diese an den Server anmelden und SQL Aktivitäten durchführen können.

Das Ganze war für "Techniker". Einfacher muss es für den Benutzer gehen. Der soll von dem ganzen Gedöns unter der SQL Obefläche nichts mitbekommen. Maximal SQL Server installierne, Anwendung installieren - und los geht es...


SQL Anwendung - Datenbankclient - hier in einer Zeiterfassung

Als Beispiel für eine SQL Anwendung sei unsere Zeiterfassung genannt. Hierbei erfassen Terminalsysteme vor Ort Daten und übermitteln diese sofort per Netzwerk an einen SQL Server. Die Daten sind die jeweiligen An- und Abmeldungenv von Personen. Technische Anmerkung am Rande: Die Terminalsysteme laufen unter Linux. Wir haben sie um einen Client - wahlweise für die Kommunikation mit mySQL oder Microsoft MS SQL Datenbanken erweitern.

Die SQL Datenbank dient als "Sammeltopf", um die An- und Abmeldezeiten zu sammeln. Dazu gibt es ein PC Programm  mit dem die Daten auf einem PC "visualisiert" werden. Der Benutzer lässt sich die Mitarbeiter aus einer SQL Tabelle anzeigen, klickt auf einen Mitarbeiter, das Programm sucht die für diesen Mitarbeiter zugehörigen Zeiten aus einer SQL Tabellen mit Zeiten - und zeigt sie an. (Natürlich rechnet es auch - die Gesamtzeit, die der Mitarbeiter in einem frei definierbaren Zeitintervall angemeldet war.)

Das eigentliche Kernstück dieser Anwendung ist der SQL Server. Er sammelt die Daten vom Terminal - und stellt sie auf Anforderung der PC Software (dem Client) bereit. Jeder Versuch das ohne SQL zu basteln, wäre mit wesentlich mehr Aufwand verbunden.

Informationen zur Anwendung hier: PZE-TRM21-WIN**.


SQL Tool: Datenbanken, Tabellen, User programmgesteuert anlegen....

SQL ist kompliziert hört man öfters. Ja stimmt - wenn man die Befehle direkt eingibt. Wenn man sein Auto selbst zusasmmenbastelt ist aber auch Autofahren kompliziert. Einfach wird es hingegen, wenn jemand das Auto fertig montiert vor die Türe stellt.

So ist es auch in der SQL Welt. Für jeden SQL Server gibt es leistungsfähige Admintools, z.B. das MS SQL Management Tool (auch in der kostenfreien Express Verson für den MS SQL Server Express.) Damit lassen sich Datenbanken schnell und einfach verwalten, ohne dass man sich durch die unterste Welt der SQL Befehle wurschteln muss.

Natürlich geht es noch einfacher. Für unsere Anwendungen haben wir z.B. mit SQL-DB-INIT ein kleines Initialisierungsprogramm entworfen. Diese Software (mehr ein Tool) legt auf einem SQL Server die für eine Anwendung benötigten Datenbanken, Tabellen und - falls notwendig - User an.

In Verbindung mit der Zeiterfassung PZE-TRM21-WIN werden hier z.B. die Datenbank für die Zeiterfassung, die Tabelle für MITARBEITER und ZEITEN sowie der User für das Terminal im Netzwerk vollautomatisch angelegt. Der Benutzer kann dieses Programm einmalig starten - und anschliessend mit seiner Zeiterfassung loslegen. Das Tool ersetzt kein Admintool - schafft es aber, dass der Benutzer mit seiner Arbeit beginnen kann, ohne gleich am Anfang das Admintool verwenden zu müssen. (Das kann er später immer noch tun. Wenn er seine ersten Arbeitszeiten erfasst und die Datenbanken "gefüllt" hat.)

Informationen zum SQL Toolhier: SQL-DB-INIT**.

 

.... wird fortgesetzt...

 

Text: Hans-J. Walter, Stand Mai 2008 / Update Mrz 2009
Pers. Anmerkung: Obiger Eintrag ist subjektiv und persönliche Meinungsäusserung. Er stellt keine Wertung für irgendwelche Softwarepakete da.

(c) hjw AE, Last Update: 26.01.2011. Alle Angaben ohne Gewähr
IT Lösungen für die Industrie: www.terminal-systems.de || IT Beiträge