Die Abkürzung Vserver steht für „virtuelle Server“. Durch den Einsatz einer Software für Virtualisierung kann ein Hardwaresystem in einige einzelne, voll funktionsfähige Server aufgeteilt werden. Durch die Virtualisierung, wie sie zum Beispiel Proxmox ermöglicht, lässt sich der Zugriff zwischen den einzelnen Systemen unterbinden bzw. steuern. Darüber hinaus kann ein virtueller Server mittels verschiedener Distributionen, wie zum Beispiel CentOS, Ubuntu oder Debian, betrieben werden.

Das allgemeine Leistungsspektrum von Vservern

Wenn Sie sich zum Beispiel einen Vserver über das Internet mieten möchten, dann bedeutet das nicht gleichzeitig, dass einen Server erhalten, der ausschließlich für Sie arbeitet. Ein virtueller Server ist im Grunde genommen eine „kleiner Teil“ eines noch weitaus größeren Servers, welche etwa in einem Rechenzentrum aufgestellt ist. Auf einem solchen physisch vorhandenen Server werden eine Vielzahl unterschiedlicher Nutzer verwaltet, die wie Sie ebenfalls eine virtuelle Maschine für ihre Zwecke angemietet haben.

In der Regel werden sowohl die Leistung als auch die Größe vom Anbieter/Hoster festgelegt. Die Netzanbindung unterliegt größtenteils etwaigen Vorgaben des Dienstleisters. Sie können sich jedoch darauf verlassen, dass Vserver mit überaus schnellen Anbindungen an ein Netzwerk bzw. an das Internet ausgestattet sind.

Häufig müssen Sie sich allerdings um die Installation des Vserers selbst kümmern und regelmäßige Backups erstellen, damit Sie keinen Datenverlust hinnehmen müssen, wenn der Server ausfällt. Derart aufwendige Aufgaben entfallen bei einem sogenannten Manged Server, welcher Serviceleistungen, wie zum Beispiel Backup-Systeme, eine regelmäßige Wartung ihres Internetauftritt oder auch unendlichen Speicherplatz, beinhaltet.

Wenn die Leistungsfähigkeit eines gesamten Servers aufgrund der hohen Last der angemeldeten Nutzer nicht mehr ausreicht, kann der Host den Vserver auf eine Maschine umziehen, welche zu diesem Zeitpunkt noch über freie Kapazitäten verfügt. Von diesem Umzug bemerken Sie im Regelfall so gut wie nichts und können wie gewohnt Ihrer Arbeit nachgehen.

Basis für viele Programme

Vserver zeichnen sich vor allem durch die Tatsache aus, dass sie eine augenscheinlich unendliche Menge an verschiedenen Programmen unterstützen und Nutzern zielgerichtet zur Verfügung stellen können. Dabei kann es sich um eine simple Seite im Internet, einen Mehrspieler-Server für PC- und Konsolen-Spiele oder komplexe Datenbanken handeln.

Die durchweg individuelle Skalierbarkeit bietet Nutzern zahlreiche Entscheidungsmöglichkeiten und steigert auf diese Weise die Flexibilität bei der täglichen Arbeit. Insbesondere Menschen jüngerer Generationen stehen dieser modernen Technologie überaus offen gegenüber. Firmen erkennen die Technik zunehmend häufiger als zielführend, wenn es um das Erreichen wichtiger unternehmerischer Ziele geht. Zudem schätzen Firmen jedweder Größe den Komfort durch die bereitgestellten dynamischen Server sowie die damit einhergehende Skalierbarkeit.

Die Virtualisierung im Detail

Wie Sie bereits erfahren haben, kümmert sich in der Regel ein Hoster bzw. ein Rechenzentrum um die Virtualisierung von physisch vorhandenen Computern bzw. Servern. Handelt es sich also um einen virtuellen Server/Vserver, handelt es sich im Grunde genommen um einen Computer, welche virtuell in viele einzelne Computer einschließlich alle dazugehörigen Ressourcen aufgeteilt wurde. Ein einzelner dieser kleineren Rechner bezeichnen IT-Experten als sogenannten Container.

Durch den Einsatz dieses Konzepts ist es möglich, dass die Ressourcen aufgespalten werden können und vollkommen dynamisch zu jeder Zeit an die Nutzer verteilt werden können. Besteht bei einem Kunden demnach ein größerer Bedarf, kann ihm der Hoster mehr Kapazität dauerhaft oder für einen begrenzten Zeitraum zuweisen.

Auf einem Vserver lässt sich darüber hinaus ein Betriebssystem installieren, welches im Anschluss einen „vollständigen“ Computer abbildet. Üblicherweise kommt auf einem Vserver das Betriebssystem Linux ohne eine grafische Oberfläche zum Einsatz. Mit Hilfe einer sogenannten SSH-Verbindung kann der Vserver verwaltet werden.

Der Verbindungsaufbau zu einem Vserver

Der SSH-Verbindungsaufbau unter Linux ähnelt dem Terminal- bzw. CMD-Programm der Betriebssysteme Unix und Windows. Sobald ein Administrator die IP-Adresse der virtuellen Maschine sowie die zwingend notwendigen Zugangsdaten (Benutzer und Passwort) eingibt, kann er eine Verbindung zum Server aufbauen und diesen Remote (aus der Ferne) verwalten. Er kann zum Beispiel Programm durch die entsprechenden Befehle in der Kommandozeile installieren oder Update einspielen. Dieses Vorgehen ist vor allem für einen Administrator überaus komfortabel und zeitsparend. Server mit einer grafischen Oberfläche benötigen weitaus mehr Ressourcen, sodass auf einem Vserver kaum andere Betriebssysteme anzutreffen sind.

Für wen sich Vserver eignen

Vserver sind mittlerweile wahre Alleskönner und sind in nahezu allen Bereichen einsetzbar. Sollten Sie darüber nachdenken, Ihren bereits vorhandenen Webspace abschaffen zu wollen und nach geeigneteren Technologien suchen, dürften Sie für einen oder mehrere Vserver in Frage kommen. Sofern Sie auf die Möglichkeit eines Manged Server verzichten möchten, sollten Sie in diesem Zusammenhang beachten, dass die erstmalige Konfiguration allerdings wesentlich aufwendiger und zeitintensiver ist.

Einsteiger können bei einem Hoster meist eine Basiskonfiguration für den virtuellen Server erwerben und sich mit der Materie vertraut machen. Wenn Sie im Lauf der Zeit feststellen, dass Ihnen die zur Verfügung gestellten Ressourcen nicht mehr ausreichen, können Sie Ihren Vserver jederzeit erweitern lassen. Für die Konfiguration des Servers sollte jedoch Fachwissen beim Nutzer vorhanden.

Customer-Relationship-Management, Warenwirtschaft, Finanzbuchhaltung und vieles mehr – Unternehmenssoftware muss heute einiges leisten und ist daher oft sehr kostspielig. Eine Ausnahme sind Open Source Softwareprogramme. Open Source, also kostenlos wird oft mit minderwertig gleichgestellt. Dass dies nicht immer der der Fall ist, beweist das Open Source Vtiger CRM.

Was ist Vtiger?

Vtiger ist eine webbasierte, kostenlose Open-Source Customer-Relationship-Management Software für kleine und mittlere Unternehmen. Neben der zentralen Aufgabe des Customer-Relationship-Managements bietet die Software Anwendern mit einem Angebots- und Rechnungswesen, einer einfache FiBu und integrierten Warenwirtschaft die wichtigsten Komponenten einer ERP Software.

Vtiger basiert auf einer mySQL Datenbank und wurde in PHP geschrieben. VTiger CRM kann auf Windows, Linux und Unix Systemen eingesetzt werden. Vtiger ist eine Abspaltung des seit einiger Zeit nur noch kommerziell vertriebenen SugarCRM. Entwickelt und vertrieben wird die Software von dem gleichnamigen in San Francisco, Kalifornien und Bangalore, Indien ansässigen Unternehmen Vtiger. Die erste Version wurde im Dezember 2004 veröffentlicht. Einen ähnlichen Funktionsumfang wie VTiger bietet odoo, eine weitere Open Source ERP und CRM Softwaresuite für kleine und mittlere Unternehmen.

Vtiger Module und Funktionen

VTiger ist zwar keine spezielle Branchenlösung, bietet jedoch alle grundlegenden Funktionen, die in einem Unternehmen benötigt werden. Es ist modular aufgebaut und kann flexibel an die spezifischen Arbeitsprozesse in Ihrem Unternehmen angepasst werden. Ein weiterer Vorteil des Vtiger CRM ist, dass es über jeden gängigen Web-Browser aufgerufen werden kann. Eine Softwareinstallation bei den Nutzern ist nicht erforderlich. Das Softwarepaket enthält die folgenden Anwendungen:

Vtiger Modul Sales / Vertrieb

Das Softwarepaket verwaltet End-to-End Vertriebsprozesse, mit denen die komplette Customer Journey vom Lead bis zur Bestellung und darüber hinaus zum Kundenservice gemanagt werden kann. In Vtiger sind die Bereiche Marketing, Sales/Vertrieb sowie Kundendienst miteinander verzahnt. Bei Bedarf können alle Daten als csv-Datei exportiert oder importiert werden. Darüber hinaus bietet die Software ein komfortables Activity Management mit Erinnerungsfunktionen. Alle Angaben zur Zuständigkeit, der Priorität sowie zum Status und die Benutzer können gesetzt und durch die Vergabe von Berechtigungen einem bestimmten Personenkreis oder allen Mitarbeitern zur Verfügung gestellt werden.

Vtiger CRM – Marketing & Analytics

Das Modul Marketing & Analytics ermöglicht die Automatisierung von zielgruppengerechten Kampagnen. Dieses Modul vereinfacht eine personalisierte Kundenansprache auf Basis der im System gespeicherten Kundeninformationen und die Erstellung übersichtlicher Kampagnen-Profile mit Angaben des Ziels und des Budgets. Zudem sind ein- und mehrstufiger Marketingkampagnen mit diesem Modul ohne großen Aufwand realisierbar. Mit der integrierten Analysefunktion ist ein kontinuierliches Monitoring der verschiedenen Kampagnen möglich.

Vtiger Management und Controlling

Das Vtiger Modul Management und Controlling unterstützt die Unternehmensleitung bei der Steuerung des Unternehmens. Das Modul liefert jederzeit aktuelle Informationen aus dem Vertrieb oder der Fibu auf deren Basis zeitnah Entscheidungen getroffen und Strategien entwickelt werden können. Verschiedene Controlling-Funktionen, Statistiken, Vertriebsinformationen und viele weitere Features bieten aussagekräftige Auswertungen über alle Unternehmensbereiche.

Support & Kundenservice mit dem Vtiger CRM

Vtiger CRM Modul Support & Kundenservice ermöglicht schnelle Reaktionen auf Kundenanfragen und Beschwerden. Alle Informationen werden übersichtlich bereitgestellt. Anwender haben einen direkten Zugang auf die gesamte Kundenhistorie. Der Zugriff auf diese Informationen ist für alle beteiligten Mitarbeiter jederzeit möglich. Ein sogenanntes Trouble Ticket Management ermöglicht die unkomplizierte Erfassung von Tickets und deren Zuordnung zu Kontakten, Produkten oder einzelnen Kundenkonten. Zusätzlich wird der Support durch FAQs unterstützt, die Kunden über ein Customer Self Service Portal zur Verfügung gestellt werden können.

Administration von Vtiger

Über eine komfortable Administrationsoberfläche wird das gesamte CRM-System verwaltet. Benutzern, Abteilungen und Gruppen können individuelle Zugriffsrechte zugewiesen werden. Der Administrator kann das Layout von Eingabemasken oder E-Mail Templates über Assistenten individuell anpassen. Eine integrierte Back-up-Funktion ermöglicht eine schnelle Datenwiederherstellung, falls Objekte oder Dokumente gelöscht worden.

Vtiger – Plug-ins und Add-ons

VTiger stellt für Anwender eine Reihe nützlicher Plug-ins und Add-ons zur Verfügung, mit denen der Funktionsumfang des CRM erweitert werden kann.

Mozilla Thunderbird Plug-in

Das Mozilla Thunderbird Plugin erweitert die Produktivität und ermöglicht es, ein- und ausgehende E-Mails aus dem E-Mail Client in Vtiger zu integrieren, Kontaktdaten zu importieren und exportieren sowie Kontaktdaten zwischen dem CRM und dem Thunderbird E-Mail Client zu synchronisieren.

Microsoft Office Integration

Mithilfe dieses Plug-in können Daten aus dem CRM in Microsoft Office Anwendungen exportiert werden. Dadurch wird das Erstellen von Aufklebern, adressierten Briefumschlägen, Mailings, Katalogen und anderen Dokumenten, auf der Datenbasis des CRM erleichtert und beschleunigt.

Firefox Toolbar Plug-in

Die Toolbar für den Firefox Webbrowser ist ein komfortabel anwendbares Plug-in, mit dem Kontakte, Leads, Accounts und mehr direkt aus dem Firefox Webbrowser an das Vtiger CRM übermittelt werden können. .

TYPO3 Extension

Das TYPO3 Extension Add-On ermöglicht die automatische Generierung und Weiterverarbeitung von Leads. Zusätzlich können bereits vorhandene Leads oder Anfragen mit diesem Add-on in Vtiger importiert und weiterverarbeitet werden

Kundenportal Add-on

Mit dem Kundenportal Add-on können Nutzer auf der eigenen Website ein Self-Service Kundenportal mit FAQs und Ticketsystem einrichten. Über das Portal können Kunden zudem Rechnungen, Angebote und mehr bequem einsehen, ohne sich an den Kundenservice wenden zu müssen.

Sprachpaket Deutsch

Nicht zuletzt ist für Vtiger ein deutsches Sprachpaket als kostenloses Add-on erhältlich

Relationale Datenbanken, anders als MongoDB, wurden jahrzehntelang als die einzige Lösung zur Archivierung und Verwaltung elektronischer Daten angesehen. Nicht ohne Grund handelt es sich bei dem im Jahr 1995 veröffentlichten Datenbanksystem MySQL auch heute noch um das beliebteste Datenbank-Managementsystem für viele Webanwendungen.

Das kontinuierlich steigende Volumen an Daten, mit dem moderne Webanwendungen konfrontiert werden, bedarf jedoch neuer Ansätze und Lösungen. Genau diese Probleme versuchen Datenbanken mit nichtrelationalem Ansatz zu lösen, die sich allmählich zu ernsthaften Konkurrenten des traditionellen Modells entwickeln. Diese verteilten Systeme, wie beispielsweise das im Jahr 2009 erschienene MongoDB, basieren auf dokumentorientierten Prinzipien und werden als NoSQL-Datenbanken bezeichnet (Not only SQL), da sie auf den Einsatz der traditionellen Abfragesprache SQL völlig verzichten. Obwohl dies zwar höhere Ansprüche an die Anwendungsschicht stellt, erlaubt es jedoch den Datenbestand und Arbeitsprozesse auf verschiedene virtuelle Server zu verteilen, sodass sich diese modernen Systeme fast unbegrenzt skalieren lassen.

MongoDB im Detail

Das US-amerikanische Unternehmen 10gen mit Hauptsitz in Palo Alto im US-amerikanischen Bundesstaat Kalifornien begann im Jahr 2007 mit der Entwicklung von MongoDB, einer dokumentorientierten NoSQL-Datenbank, die zwei Jahre später in der finalen Version der breiten Öffentlichkeit vorgestellt wurde. Die Open-Source-Datenbank entwickelte sich binnen kürzester Zeit zu der beliebtesten NoSQL-Datenbank. Das Unternehmen 10gen, das jetzt als MongoDB Inc. firmiert, ist weiterhin für die Entwicklung, Verwaltung und den Vertrieb kommerzieller Lösungen verantwortlich.

Die NoSQL-Datenbank MongoDB ist in der Programmiersprache C++ entwickelt und speichert Daten im binären JSON-Format „BSON“, das sich im hohen Maße am JSON-Format (JavaScript Object Notation) orientiert. Dadurch werden sämtliche JS-Datentypen unterstützt, weshalb MongoDB in erster Linie in NodeJS-Anwendungen eingesetzt wird. Eine MongoDB-Datenbank setzt sich aus einer oder mehreren Datensammlungen zusammen, die unterschiedliche Dokumente mit unendlich vielen und verschiedenen Datenfeldern verwalten.

In vielen Distributionen ist die Mongo Shell standardmäßig enthalten. Dabei handelt es sich um einen Client, mit dem sich der Zugriff via Kommandozeile realisieren lässt. Darüber hinaus lässt sich eine webbasierte Administrationsoberfläche aktivieren und direkt im Webbrowser aufrufen. Zusätzlich sind verschiedene Nutzeroberflächen erhältlich, wie beispielsweise:

–       MongoChef

–       MongoClient

–       RoboMongo

Mit diesen Tools können Sie die Daten grafisch anzeigen lassen und bearbeiten. MongoDB ist mit allen aktuellen Windows-, Linux- und MacOS-Systemen kompatibel.

Datenbankenmodelle im Vergleich: NoSQL vs. SQL

Anders als relationale Datenbanken verfolgt MongoDB einen dokumentorientierten Ansatz und geht dementsprechend ganz andere Wege bei der Speicherung der Daten. Die Grundstruktur weist jedoch gewisse Ähnlichkeiten auf:

–       Die Daten werden anstatt in Tabellen in Sammelmappen, den sogenannten „Collections“ gespeichert.

–       Die Spalten der SQL-Tabellen werden durch Zeilen ersetzt, die durch Dokumente im BSON-Format definiert werden.

–       Ein Feld setzt sich dabei immer aus einem Paar zusammen, und zwar einem Schlüssel, der den Namen des Feldes darstellt, und dem jeweiligen Wert.

Bei einem MongoDB-Dokument handelt es sich also um eine Sammlung von Schlüssel-Werte-Paaren. Der bedeutendste Unterschied zwischen NoSQL- und SQL-Systemen spiegelt sich jedoch in der Tatsache wider, dass MongoDB-Dokumente keinem festen Schema folgen. Dokumente in einer NoSQL-Datenbank haben ihre eigene einzigartige Struktur. Dadurch können jederzeit neue Felder mit neuen Werten hinzugefügt werden, was bei einer SQL-Datenbank wie MySQL undenkbar wäre und eine komplette Umstrukturierung des Systems erfordern würde.

Wo wird MongoDB eingesetzt?

Die hoch performante Datenbank ist immer dann eine gute Wahl, wenn Sie Webanwendungen realisieren möchten, die auf einer großen Menge unstrukturierter Daten basieren. Der dokumentbasierte Ansatz und die Tatsache, ohne an ein festes Schema gebunden zu sein, ermöglicht, dass unterschiedliche Datentypen schnell verarbeitet und gespeichert werden können. MongoDB kann außerdem nahezu unbegrenzt skaliert werden, da sich die Datenbank schnell und unkompliziert auf mehrere virtuelle Server verteilen lässt, ohne die Performance einzuschränken. Um die Verfügbarkeit und Sicherheit der gespeicherten Daten zu gewährleisten stellt MongoDB mehrere Mechanismen zur Verfügung.

Der Einsatz von MongoDB kann dementsprechend für alle Webanwendungen empfohlen werden, bei denen folgende Kriterien wichtig sind:

–       Flexibilität: Das Webprojekt soll jederzeit dynamisch modifiziert werden können.

–       Skalierbarkeit: Wenn die Anzahl Ihrer Nutzer steigt, wird auch dementsprechend die Zahl der Anfragen größer.

–       Verfügbarkeit: Die Webanwendung soll jederzeit in der Lage sein, Dienste Ihren Nutzern zur Verfügung zu stellen, selbst im Falle Serverausfalls.

In der Verteilung der Daten auf mehrere virtuelle Server besteht der wesentliche Unterschied zwischen MongoDB und relationalen Datenbanken: Nach der Speicherung der Daten bleibt ein kurzes Zeitfenster offen, in dem nachfolgende Lesezugriffe nur auf den alten Datenbestand zurückgreifen können. Dieses Konsistenzmodell wird als „Eventual Consistency“ bezeichnet.  Es stellt die Funktionalität zur Verfügung, das virtuelle Datenbanken-Server, die Teil eines größeren Datenbank-Clusters sind, Schreibzugriffe von Webanwendungen zulassen können, wenn sie vom Cluster getrennt sind.

Ob dynamische Webseite, Data Warehouse oder Analyseprogramme, ohne eine leistungsfähige Datenbank im Hintergrund sind viele Anwendungen undenkbar. Je größer die Datenmengen und je komplexer die Datenbankabfragen werden, umso leistungsfähiger muss das Datenbankmanagementsystem sein. PostgreSQL gilt heute als die weltweit fortschrittlichste Open-Source-Datenbanksystem für komplexe Datenbanken.

PostgreSQL – komplexe Daten sicher speichern und verwalten

Es ist ein leistungsstarkes, objektrelationales Datenbanksystem, abgekürzt ORDBMS. Die Software ist Open Source und kann kostenlos für private und geschäftliche Anwendungen genutzt werden. PostgreSQL unterstützt fast alle gängigen, für die Entwicklung von Prozeduren und Funktionen verwendeten Programmiersprachen sowie SQL (relational) als auch JSON (nicht-relationale) Abfragen. Die Leistung des Datenbank-Management-Systems ist mit kommerziellen Datenbanksystemen wie Oracle oder dem SQL-Server vergleichbar.

Das System beinhaltet viele Erweiterungen, die zusätzliche Funktionalität bieten, einschließlich PostGIS, Internationalisierung, Volltextsuche oder eine Unterstützung für internationale Zeichensätze. PostgreSQL ermöglicht es Benutzern darüber hinaus, das System um selbstdefinierte Datentypen, Operatoren, Trigger, Funktionen und Regeln, mit denen Zugriffe auf Datenbankobjekte gesteuert werden können, zu erweitern. Die Datenbank kann als 32 und 64 Bit Applikation auf Unix/Linux Umgebungen, MacOS und Windows Plattformen eingesetzt werden. PostgreSQL wird als primäre Datenbank und als Data Warehouse für viele Web-, Mobil-, Geo- und Analyseanwendungen eingesetzt.

Die Geschichte von PostgreSQL kurz gefasst

Das PostgreSQL-Projekt startete bereits 1986 unter der Leitung von Prof. Michael Stonebreaker an der Universität von Kalifornien, in Berkeley. Ursprünglich hieß das Projekt POSTGRES, in Anlehnung an die einige Jahre zuvor ebenfalls in Berkeley entwickelte Ingres-Datenbank. Im Rahmen des Projektes wurden verschiedene Funktionen, die beispielsweise zur vollständigen Unterstützung mehrerer Datentypen erforderlich sind, entwickelt und dem Ingres Nachfolger hinzugefügt. 10 Jahre nach dem Start im Jahr 1996 wurde das Projekt in PostgreSQL umbenannt, um zu verdeutlichen, dass POSTGRES die SQL-Abfragesprache unterstützt. Eine engagierte und weltweite Community unterstützt Anwender und erstellt bis heute regelmäßig Erweiterungen und neue Versionen für das Open-Source-Datenbankprojekt.

Wie funktioniert PostgreSQL?

PostgreSQL basiert wie die meisten relationalen Datenbanken auf einem Client-Server-Modell. Ein Serverprozess verwaltet die Datenbankdateien sowie die Verbindungen, die von Client-Programmen zum Server aufgebaut werden und bearbeitet die Anfragen, die von diesen Client-Programmen gestellt wurden. Diese Aufgaben werden bei PostgreSQL von einem „postmaster“ genannten Serverprogramm erledigt. Für die Kommunikation mit dem postmaster können verschiedene Client-Programme eingesetzt werden. Mit der PostgreSQL Distribution wird bereits ein als „psql“ bezeichneter schneller, aber einfach zu bedienender Datenbank-Monitor mitgeliefert. In den meisten PostgreSQL Linux-Distributionen ist mit „pgAccess“ ein grafischer Client enthalten, der auch auf Windows Plattformen genutzt werden kann. Bei interaktiven Webseiten übernimmt in der Regel der Webserver die Rolle des Client.

Typisch für das Client-Server-Modell ist die verteilte Architektur. Client und Server müssen nicht auf demselben dedizierten oder virtuellen Server installiert werden. Bei getrennter Installation kommunizieren Client und Server über eine TCP/IP Verbindung. Ein Vorteil ist, dass der PostgreSQL Server viele parallele Verbindungen verwalten kann. Jedes Mal, wenn sich ein Client mit dem Server verbindet, startet der „postmaster“ einen neuen Prozess, der dann die Client-Server-Kommunikation übernimmt.

Worin unterscheiden sich PostgreSQL und MySQL?

Zwischen beiden Datenbank-Managementsystemen gibt es zahlreiche Entsprechungen aber auch Unterschiede. Beide Systeme sind SQL konform. Wobei PostgreSQL eine höhere Konformität mit den SQL-Spezifikationen aufweist als MySQL. Postgre SQL und MySQL basieren auf Tabellen, ähnlich einer Excel Tabelle, in deren Felder Daten gespeichert werden können. In einer relationalen Datenbank wie MySQL werden üblicherweise nur alphanumerische Daten zum Beispiel Produktbezeichnungen, Orte, Postleitzahlen oder Straßennamen gespeichert. MySQL ist weitverbreitet bei webbasierten Projekten, die eine Datenbank für einfache Datentransaktionen benötigen.

PostgreSQL ist eine objektrelationale Datenbank, bei der die Prinzipien einer relationalen Datenbank auf die Speicherung und Organisation beliebiger Daten ausgeweitet wurden. PostgreSQL ermöglicht die Speicherung von Datenobjekten und Operationen mit einer deutlich höheren Komplexität als MySQL. Beispiele für komplexe Daten, bei denen relationale Datenbanken schnell an ihre Grenzen stoßen, sind Bild- und Textdateien, geografische Karten, Audio- und Videodateien. Aufgrund der Möglichkeit, komplexe Daten speichern und miteinander verknüpfen zu können, ist PostgreSQL prädestiniert für große Systemen, wo hohe Lese- und Schreibgeschwindigkeiten gefordert werden, komplexe Abfragen beantwortet und Daten validiert werden müssen.

Keine Begrenzung bei der Datenbankgröße

Die Größe einer PostgreSQL Datenbank ist theoretisch unbegrenzt. In der Praxis wird die Größe der Datenbank wahrscheinlich eher durch die Speicherkapazität des dedizierten oder virtuellen Servers beschränkt als durch die Grenzen von PostgreSQL. Eine einzelne PostgreSQL Tabelle kann bis zu 32 Tera-Byte groß werden. Diese Tabelle kann wiederum unbegrenzt viele Datensätze enthalten, die jeweils bis zu maximal 1,6 TB groß sein können. Lediglich die Anzahl der Spalten ist, je nachdem, welche Datentypen verwendet werden, auf 250 – 1600 begrenzt. Jedes Feld einer Spalte kann bis zu 1 Gigabyte Daten aufnehmen und für jede Tabelle könne unbegrenzt viele Indizes definiert werden.

Die Anwendung gilt heute als das mit Abstand fehlerfreiste und stabilste Open Source Datenbanksystem. Es wird unter anderem von der Deutschen Telekom, verschiedenen Sparkassen Verbänden, den Verwaltungen verschiedener Schweizer Kantone sowie Skype eingesetzt.

Die Software SQLite ist eine verbreitete Programmbibliothek. Sie bietet die vollständige Laufzeitumgebung für eine SQL-basierte Datenbank. Die Besonderheit ist, dass sie den Datenbestand in einer einzelnen Datei vorhält. Zudem ist sie mit der Abfragesprache SQL kompatibel. Die Software ist gemeinfrei, also frei von Urheberrechten. SQLite ist in allen gängigen Betriebssystemen implementiert.

Geschichte und Herkunft

SQLite wurde im Jahr 2000 durch D. Richard Hipp im Rahmen seiner Tätigkeit für die amerikanische Firma General Dynamics entwickelt. Dies geschah im Auftrag der Marine des US-Militärs. Zunächst handelte es sich um eine Erweiterung der Skriptsprache Tcl. Inzwischen wird SQLite von zahlreichen Programmier- und Skriptsprachen unterstützt.

Der Name setzt sich aus der Abkürzung für die Abfragesprache Structured Query Language (SQL) und der umgangssprachlichen Bezeichnung Lite, für eine „abgespeckte“ Version, zusammen. Aktuell wird das Projekt SQLite von D. Richard Hipp und zwei weiteren Entwicklern fortgeführt.

Obwohl SQLite lizenzfrei angeboten wird, ist es möglich, kostenpflichtigen Support und Erweiterungen bei den Entwicklern zu erwerben.

Details zur Funktionsweise

Die SQLite-Bibliothek ist in Desktop Betriebssystemen wie Windows, MacOS und den Linux-Distributionen enthalten. Auch die verbreiteten Smartphone-Betriebssysteme Android und iOS unterstützen SQLite nativ.

Die gesamte Anwendung läuft in einem Prozess. Anders als bei anderen Datenbanksystemen, wie MySQL, ist keine Server-Client-Architektur nötig.

SQLite verwendet eine relationale Datenbank. Die Daten werden in Tabellen abgelegt, die spaltenweise über einen Identifier angesprochen werden können. Dies hat den Vorteil, dass Daten nicht redundant vorgehalten werden müssen. Vielmehr können die Inhalte einer Tabelle mit einer oder mehreren Spalten anderer Tabellen verknüpft, also in Relation gesetzt werden.

So ist es typisch für eine Speicherung in relationalen Datenbanken, dass Daten je nach Zweck in unterschiedlichen Tabellen abgelegt werden. Eine Mail-Software könnte beispielsweise folgende Tabellen in ihrer Datenbank führen:

-Kontakte: Enthält die Mailadressen der Kommunikationspartner,

-Konversation: Speichert den Mailverlauf mit einem Gesprächspartner,

-Mails: Beinhaltet die Metadaten einzelner Mails,

-Attachments: Weist Metadaten und Pfade von Anlagen auf.

Anstatt nun in jeder Spalte der Tabelle „Mails“ die Adressen der Absender und Empfänger aufzuführen, wird dort nur die Ordnungsnummer des Kontakts abgelegt. Entsprechend erfolgt die Zuordnung der Anlagen und die Zuordnung einer einzelnen Mail zu einer Konversation.

Datentypen unter SQLite

Daten können in verschiedenen Formaten abgelegt werden. Dies erleichtert die Weiterverarbeitung ohne vorherige Konvertierung. Mögliche Datentypen sind: Null (Nullwert), Integer (Zahlenwert), Real (Fließkommazahl), Text (Klartextlicher Inhalt) und Blob (Binärwert).

Hiermit sind alle Datentypen abbildbar. So werden Datumswerte häufig als Zahlenwert, etwa im Format Unix-Time (Sekunden seit dem 01.01.1970), abgelegt. Alternativ findet sich auch eine Notierung im klartextlichen Datumsformat.

Sehr universell wird der Datentyp Blob (Binary Large Object) eingesetzt. Es können beispielsweise Vorschaubilder darin abgelegt werden. Ebenso finden sich aber auch Konfigurationsdateien, etwa im XML- oder PLIST-Format, in Blob-Datenfeldern.

Datensicherheit und temporäre Dateien

SQLite beherrscht zwei Methoden zur Gewährleistung der Konsistenz einer Datenbank.

Eine Möglichkeit ist das Führen eines Rollback-Journals. Hier wird beim Öffnen der Datenbank ein temporäres Journal erstellt. Dies erhält den Namen der Datenbank mit der Endung „-journal“. In der Datei werden die vorgenommenen Änderungen dokumentiert. So kann beim Auftreten von Problemen eine Wiederherstellung (Rollback) erfolgen.

Die andere Alternative ist die Nutzung des Write-Ahead-Logs (WAL). Bei dieser Methode werden Änderungen zunächst in die Logdatei geschrieben. Die permanente Übernahme in die Datenbank erfolgt beim ordnungsgemäßen Schließen der Datenbank oder durch manuelle Speicherung mit einem Commit-Befehl.

Zudem wird in diesem Fall ein Index in der „Shared-Memory“-Datei (SHM) geführt.

Entsprechend werden bei dieser Methode zwei temporäre Dateien angelegt. Diese erhalten den Namen der Datenbank mit den Endungen „-shm“ und „-wal“.

Schnittmengen mit SQL

Die Verarbeitung der Inhalte in SQLite-Datenbanken erfolgt mittels der Abfragesprache nach dem SQL-92 Standard. Hierdurch ist gewährleistet, dass SQL-Befehle und Abfragen angewendet werden können.

Die Speicherung eines Kontaktes könnte beispielsweise durch einen Befehl nach dem Muster

INSERT INTO kontakte (lfd_nr, name, vorname, mailadresse, rufnummer) VALUES (1, „Mustermann“, „Max“, „mustermann@muster.xyz“, „0123/45678“)

erfolgen. Hierdurch würden in der Tabelle „kontakte“ in die Spalten innerhalb der ersten Klammer die Werte aus der zweiten Klammer eingetragen.

Inhalte aus verschiedenen Tabellen können durch den Befehl JOIN kombiniert werden. Zudem ist es möglich, die Ausgaben beispielsweise durch Befehle wie WHERE und LIKE an Bedingungen zu knüpfen.

Anwendungsgebiete von SQLite

Inzwischen findet man SQLite-Datenbanken als Unterbau vieler Anwendungen. Gängige Apps auf Smartphones, zum Beispiel Messenger wie WhatsApp und Facebook, legen ihre Daten darin ab. Ebenso Browser wie Firefox und Chrome auf Desktop-PC.

Auch kommerzielle Programme nutzen SQLite. Dies bietet sich für verteilte Anwendungen an. Es muss nur die Datenbank für alle Anwender freigegeben sein. Hierdurch ist auch keine besondere Performanz mehr nötig und es ist gut möglich, diese auf virtuellen Servern bereitzustellen.

Ein solcher muss sich nicht notwendigerweise physikalisch im eigenen Netzwerk befinden. Zur Gewährleistung der Verfügbarkeit können sich hierfür extern gehostete Server anbieten.

Bei Microsoft SQL (MS-SQL) handelt es sich um ein relationales Datenbankmanagementsystem, welches von dem US-Konzern in den 90er-Jahren veröffentlicht wurde. SQL ist speziell für Anwendungen konzipiert, die in Unternehmen eingesetzt werden. Das Datenbankmanagementsystem orientiert sich an standardisierten SQL-Versionen und wird von Microsoft durch zusätzliche moderne Features ergänzt.

Die Geschichte von MS-SQL

Seinen Ursprung hat MS-SQL Ende der 80er-Jahre. SQL basiert auf einem von der Firma Sybase entwickelten Code. Im Rahmen einer Zusammenarbeit zwischen den Firmen Microsoft, Sybase und Ashton-Tate wurde die erste Version des Datenbankmanagementsystems für das Betriebssystem OS/2 veröffentlicht. Im Jahr 1992 erschient für OS/2 bereits die SQL-Version 4.2. Version 4.21 kam im Jahr 1993 auf den Markt und war erstmals mit Microsofts Windows NT kompatibel. Kurz darauf endete die Kooperation zwischen Microsoft und Sybase. Mittlerweile bieten beide Unternehmen eigene SQL-Server-Versionen an: Sybase unter der Bezeichnung Adaptive Server Enterprise (ASE) und Microsoft unter dem Namen Microsoft SQL Server.

Wozu wird MS-SQL benötigt?

Wenn ein Unternehmen zum Beispiel ein CRM– oder ERP-System im Einsatz hat, dann benötigt die Software eine Datenbankstruktur, um Daten jedweder Art speichern zu können. Nach wie vor ist es gängig, dass vor allem Puristen den Betrieb von Datenbank-Servern nach wie vor gerne auf physischer Hardware bewerkstelligen. Mittlerweile lassen allerdings ein Großteil aller Datenbank-Server auf virtuellen Servern problemlos betreiben.

Grundsätzlich lässt MS-SQL dadurch beschreiben, dass die sogenannte Abfragesprache einen standardisierten Zugriff auf Datenbanken gewährleistet. Sowohl MS-SQL als auch MySQL können auf fast alle Datenbanksysteme angewendet werden. Mit Hilfe von MS-SQL können Administratoren oder Datenbank-Entwickler Tabellen erstellen oder abfragen ersten. Die SQL-Befehle „Select“ sowie „Create“ sind in diesem Zusammenhang wohl die am meisten genutzt Abfrage-Befehle.

Vor diesem Hintergrund ist es nützlich zu wissen, dass die Abkürzung „SQL“ für Structured Query Language, übersetzt „strukturierte Abfrage-Sprache“, steht. MS-SQL ist eine Abfragesprache für relationale Datenbanken, um etwa Tabellen zu definieren und Daten zu bearbeiten oder abzufragen. Häufige genutzte Daten von Unternehmen sind hierbei unter anderem Material- und Kundendaten, Rechnungen sowie Unterlagen für erhaltene Aufträge.

Redundanzen verhindern

MS-SQL ist für relationale Datenbanken entwickelt. Die dort hinterlegten Informationen sind üblicherweise auf viele verschiedene Tabellen verteilt. Dass Felder bzw. Informationen „doppelt“ vorkommen, ist nicht vorgesehen, wenn die Idee des relationalen Datenbankmodells eingehalten werden soll. Um Redundanzen (Doppelte Einträge) zu vermeiden, müssen alle notwendigen Informationen auf mehrere Tabellen verteilt und durch einen Schlüssel miteinander verknüpft werden. Diese essentiell wichtige Schlüssel wird auch als primärer Schlüssel bezeichnet und bildet das Fundament für eine relationale Datenbank auf Basis von MS-SQL.

MS-SQL geht mit der Zeit

MS-SQL hat eine lange Entstehungsgeschichte und konnte sich über alle die Jahre hinweg gegenüber etwaige Konkurrenzprodukte stets behaupten. Dafür sind vor allem permanente Weiterentwicklungen verantwortlich, welche sich dem jeweils aktuellen Stand der Technik angepasst haben und für den Einsatz im Unternehmen einen Mehrwert mit sich gebracht haben.

Aktuelle MS-SQL-Versionen sind überaus leistungsfähig und lassen sich problemlos im Big-Data-Umfeld sowie für komplexe Cloud-Lösungen einsetzen. Darüber hinaus ist die Realisierung von Datenbankmanagementsystemen für geschäftskritische sowie intelligente Anwendungen oder für hochskalierbare Hybrid-Datenbankplattformen im Bereich des Möglichen. Zum derzeitigen Leistungsspektrum von MS-SQL gehören unter anderem erweiterte Sicherheitsfeatures, In-Memory-Funktionen sowie Analysemöglichkeiten für große Datenbestände.

Auf der Basis von MS-SQL sind mittlerweile Apps verfügbar, welche Onlinetransaktionsverarbeitung (OLTP) mit einer sehr guten Skalierbarkeit und einer hohen Verfügbarkeit bereitstellen können. Umfassende Analysefunktionen stehen durch „R“, eine spezielle Statistiksprache, für SQL-Datenbanken zur Verfügung. Durch den Einsatz von „R“ ist selbst das Verschieben von Daten vollkommen überflüssig geworden. MS-SQL findet somit in Private Clouds, Public Clouds (zum Beispiel Microsoft Azure) oder in einem Rechenzentrum nach wie vor nützliche Verwendungen für die unterschiedlichsten Bereiche.