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.

Odoo ist eine Open Source ERP Lösung von einer starken Community und vielen zum Teil kostenfreien Zusatz-Apps. Odoo ist unter dem Namen OpenERP erstmals auf dem Markt veröffentlicht worden.

Was ist ein ERP?

ERP steht für Enterprise Resource Planning, auf Deutsch bedeutet es Ressourcenplanung für Unternehmen. Es handelt sich um eine für Unternehmen entwickelte Software mit umfangreichen Anwendungen für die Bündelung aller relevanten Vorgänge bzw. Prozesse.

Odoo als neue Version von OpenERP

OpenERP ist eine Softwarelösung mit dualem Lizenzmodell. Es handelt sich um eine Open-Source Software mit Unternehmen als Zielgruppe. Die Anwendungen der Software für Unternehmen sind breit gefächert: Website & E-Commerce, Finanzbuchhaltung (Fibu), CRM, Projektmanagement, Produktion, Abrechnung, Personalverwaltung und Dokumentenmanagement.

Es handelt sich um ein einziges und integriertes Tool, dass alle wesentlichen Funktionen für Unternehmen beinhalten soll. Auf diese Weise müssen keine unterschiedlichen Software verwendet bzw. integriert werden. Im Jahr 2014 wurde OpenERP in Odoo umbenannt.

Das Prinzip von ERP basiert auf der Verwendung von mehreren Datenbanken, die Verwaltung erfolgt dabei durch ein Datenbankmanagementsystem. Auf diese Weise liegt stets eine ständig aktualisierte Ansicht der wichtigsten Unternehmensprozesse vor.

Odoo mit umfassendem Paket

Es ist eine umfassendes Paket von Geschäftsanwendungen einschließlich Vertrieb, CRM, Projektmanagement, Lagerverwaltung, Fertigung, Finanzverwaltung und Personalwesen. Odoo/OpenERP bietet eine Auswahl von über tausend Modulen. Odoo/OpenERP ist in der Cloud oder vor Ort verfügbar und eignet sich am besten für kleine bis mittlere Unternehmen. Mit mehr als 1000 Downloads/Installationen pro Tag ist Odoo/OpenERP eine der meistgenutzten Open-Source-Lösungen der Welt. Es hat eine dynamische Community, ist flexibel und kann an individuelle Bedürfnisse angepasst werden.

Was spricht für Odoo?

Odoo bietet eine Fülle von Funktionalitäten mit über 1000 Modulen, die je nach den jeweiligen Geschäftsanforderungen eingesetzt werden können. Odoo/OpenERP wird von der Gemeinschaft aktiv entwickelt und unterstützt, und der Funktionalitätsstapel nimmt weiter zu. Es ist wichtig, ein ERP System zu finden, das über die benötigte Funktionalität verfügt. Einer der ersten Schritte bei jeder Implementierung ist die Analyse der Prozesse des Unternehmens.

Modularer Aufbau von Odoo

Das Programm ist in hohem Maße modular aufgebaut. Sie können Odoo/OpenERP mit einigen wenigen Modulen beginnen und später bei Bedarf weitere Module hinzufügen, wobei die Vorteile einer integrierten Lösung erhalten bleiben.

Aktualisierte Technologie

Odoo/OpenERP basiert auf einem Technologie-Stack, der modern und aktuell ist. Diese Technologien werden ständig weiterentwickelt und an die neuesten Paradigmen angepasst, so auch Odoo/OpenERP.

Niedrigere Gesamtbetriebskosten

Obwohl es klar ist, dass mehr Funktionalität und bessere Technologie die Kosten eines ERP-Systems oft ausgleichen, kann es schwierig sein, über die Anfangsinvestition hinaus zu sehen. Kosteneinsparungen in den folgenden Bereichen können die Ausgaben für ein neues ERP-System oft leicht rechtfertigen: Betriebskosten, Verwaltungskosten, Lagerhaltungskosten, veraltete Bestände und Wartungskosten. Andere greifbare Verbesserungen werden gewöhnlich in anderen Bereichen realisiert, wie z.B. Prozentsatz der fertigen und pünktlichen Lieferung, Reduzierung der Durchlaufzeit und des gesamten Produktionsausstoßes. Eine weitere Verbesserung bei einem integrierten System wie Odoo/OpenERP ist die Verfügbarkeit von On-Demand und aktuellen Berichten, deren Erstellung unter anderen Umständen Tage, Wochen oder Monate dauern könnte. Häufig machen Unternehmen den Fehler, ein ERP-System als Kostenstelle zu sehen und versäumen es, das Potenzial für diese Verbesserungen zu erkennen.

Strategie zur Konsolidierung

Odoo/OpenERP ermöglicht es Unternehmen, ihre Geschäftsprozesse einfach und effektiv zu vereinheitlichen. Mehrere Systeme stellen viele Herausforderungen dar, z. B. das Fehlen standardisierter Geschäftsprozesse im gesamten Unternehmen und die Konsistenz der Daten in den verschiedenen Systemen. Eine Situation wie diese erfordert eine Konsolidierungsstrategie.

Odoo ist anpassbar

Es ist nicht nur eine einfach zu bedienende Software, sondern auch sehr flexibel. Odoo/OpenERP kann an die spezifischen Geschäftsanforderungen des Unternehmens angepasst werden. In einer hochgradig wettbewerbsorientierten und sich schnell verändernden Welt müssen Unternehmen ständig innovativ sein, um mit den sich ändernden Geschäftsszenarien Schritt zu halten. Dies kann nur mit den richtigen Werkzeugen erreicht werden.

 

 

 

 

OpenERP ist eine Open-Source-Software für Unternehmen, die 2012 in Odoo umbenannt wurde. OpenERP wurde von Fabien Pinckaers gegründet. Die Anwendungen dieser Software umfassen ERP, Fibu, CRM, Projektmanagement, Produktion und auch Dokumentenmanagement. Im Prinzip soll die Software wie eine Branchenlösung alle wesentlichen Funktionen für kleine bis mittelständische Unternehmen beinhalten.

OpenERP hat Unternehmen als Zielgruppe

OpenERP ist eine Softwarelösung mit dualem Lizenzmodell. Es handelt sich um eine Open-Source Software mit Unternehmen als Zielgruppe. Die Anwendungen der Software für Unternehmen sind breit gefächert, unter anderem Website & E-Commerce, Finanzbuchhaltung (Fibu), CRM, Projektmanagement, Produktion, Abrechnung, Personalverwaltung und Dokumentenmanagement.

Es handelt sich um ein einziges und integriertes Tool, dass alle wesentlichen Funktionen für Unternehmen beinhalten soll. Auf diese Weise müssen keine unterschiedlichen Software verwendet bzw. integriert werden. Im Jahr 2014 wurde OpenERP in Odoo umbenannt.

TinyERP, OpenERB, Odoo – die Unternehmensgeschichte

Fabien Pinckaers gründete im Jahr 2005 das Softwereprodukt TinyERP. 2008 erfolgte die Umbenennung in OpenERP. Das Unternehmen entwickelte sich rasant und hatte 2010 bereits mehr als 100 Mitarbeiter. 2014 wurde OpenERP in Odoo umbenannt.

Was ist ein ERP?

ERP steht für Enterprise Resource Planning, auf Deutsch bedeutet es Ressourcenplanung für Unternehmen. Es handelt sich um eine für Unternehmen entwickelte Software mit umfangreichen Anwendungen für die Bündelung aller relevanten Vorgänge bzw. Prozesse.

Die Funktionsbereiche von Enterprise Resource Planning Systems

Das Prinzip von ERP basiert auf der Verwendung von mehreren Datenbanken, die Verwaltung erfolgt dabei durch ein Datenbankmanagementsystem. Auf diese Weise liegt stets eine ständig aktualisierte Ansicht der wichtigsten Unternehmensprozesse vor. Die folgenden Module sind typisch für ERP:

1)Finance Accounting

2)Management Accounting

3)Human Resources

4)Produktionsplanung

5)Auftragsabwicklung

Was ist CRM?

CRM ist eine Abkürzung für Customer Relationship Management, was im Deutschen Kundenbeziehungsmanagement bedeutet. Dieser Begriff schließt Verfahren und Technologien mit ein, bei denen die Unternehmen Daten in Bezug auf den Kunden analysieren und auch verwalten. CRM soll den Unternehmen dabei helfen, die Beziehungen zum Kunden zu verbessern und auch den Umsatz zu steigern.

Vorteile von CRM für Unternehmen

Es handelt sich bei CRM um eine Strategie. Durch diese Strategie erhält das Unternehmen mehr Informationen über die Verhaltensweisen und Bedürfnisse der Kunden. Wenn ein Unternehmen ein besseres und tiefgreifenderes Verständnis für seine Kunden aufbauen kann, dann kann es auch bessere und stärkere Bindungen zu ihm aufbauen. Es handelt sich im Prinzip um eine Philosophie, den Kunden zu helfen und zu unterstützen. Wenn der Kunde sich gut behandelt fühlt, dann kann er für weitere Geschäfte gehalten werden.

Durch CRM werden Informationen über das Kaufverhalten, der Vorlieben und Gewohnheiten der Kunden gewonnen. Es ist möglich, Kundenprofile für Einzelpersonen und auch Gruppen anzufertigen.

Was ist eine Fibu?

Fibu ist ein Kürzel für Finanzbuchhaltung. Die Finanzbuchhaltung ist ein Teilbereich des Rechnungswesens und umfasst die Bereiche:

-kaufmännische Buchhaltung

-Gewinn- und Verlustrechnung

-Abstimmungsbogen

-Lohnliste

Branchenlösung

Bei der Branchenlösung handelt es sich im Grunde um eine Software bzw. Softwarelösung. Diese Lösung ist immer auf eine individuelle Marktlücke mit ihren dazugehörigen Bedürfnissen abgestimmt.

DieseLösungen stellen für die jeweilige Branche eine Komplettlösung dar und gehen über ERP hinaus. Sie liefern einen kompletten Überblick:

-Finanzmanagement

-Produktmanagement

-CRM

Die Vor- und Nachteile von Branchenlösungen

Die Branchenlösung ist gut an die Bedürfnisse der jeweiligen Branche angepasst und dabei preiswerter als eine Individualsoftware. Die Software bündelt alle für die Branche üblichen Prozesse und Informationen und sie ist kurzfristig verfügbar. Viele Prozesse im Unternehmen können auf diese Weise effizienter und auch zeitsparender erledigt werden.

Ein Nachteil ist, dass die Unternehmen an eine Plattform gebunden sind. Gerade bei dem Vorhandensein mehrerer Branchen-Softwares kann es schnell unübersichtlich werden.

Wo kommen Branchenlösungen, wie OpenERP, zum Einsatz?

In den folgenden Feldern bzw. Zweigen kommen Branchenlösungen zum Einsatz:

-Automobilindustrie

-Bekleidung und Textilien

-Einzelhandel und Großhandel

-Kunststoffindustrie

-Konsumgüterindustrie

-Maschinenbau

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.