www.der-wirtschaftsingenieur.de

- Generalist zwischen Wirtschaft und Technik



Structured Storage / NoSQL [Teil II/II]

Veröffentlicht in Datenbanken von zaadmin am 25. Jan. 2016

NoSQL ist ein aktueller Trendbegriff und steht für Datenbanken, die auch unstrukturierte Daten optimal und in großen Mengen verarbeiten können. Der Begriff NoSQL ist allerdings irreführend und stattdessen besser von Structured Storage gesprochen werden, denn dieses Akronym steht für Not only SQL. NoSQL bezeichnet zudem nicht ein einziges Datenbankmodell, sondern sehr viele unterschiedliche, die in vier Kategorien unterschieden werden können:

(mehr…)


NoSQL-Datenbanken im Vergleich zu SQL-Datenbanken [Teil I/II]

Veröffentlicht in Big Data Analytics, Datenbanken von zaadmin am 19. Jan. 2016

Big Data ist ein aktueller Wirtschaftstrend, der zum Kerngeschäft vieler neuer Start-Ups ist und zu gleich den Konzernen der traditionellen Industrie Kopfzerbrechen bereitet, aber auch als Hoffnung auf neue Geschäftsmodelle gesehen wird. Dabei wird Big Data in der Regel nicht von der IT-Abteilung, sondern von Fachbereichen getrieben. Das macht diesen Trend insbesondere für Wirtschaftsinformatiker sehr bedeutend, denn diese können mit technischen Wissen den Fachabteilungen bei der Umsetzung von Big Data Projekten nicht nur behilflich sein, sondern dank des Schnittstellenwissens direkt die Projektleitung übernehmen, wenn Sie über technisches Wissen um die Verarbeitung von sehr großen Datenmengen verfügen.

(mehr…)


Big Data Analytics mit Hadoop – Buchempfehlung

Veröffentlicht in Big Data Analytics, Bücher, Datenbanken, Informatik, Trends & Zukunft von Redakteur am 28. Jan. 2014

Big Data ist eines der Buzzwords dieser Jahre und steht für das Potenzial der heranwachsenden Datenmengen für Wirtschaft und Wissenschaft. Das Potenzial ergibt sich aus dem Erfassen und Sammeln dieser Datenmengen aus den unterschiedlichsten Quellen. Die Nutzung des Potenzials erfolgt jedoch erst mit der Datenanalyse, daher wird oftmals zwar von Big Data geredet, jedoch Big Data Analytics gemeint.

Das in der Praxis am häufigsten vorkommende Datenbankmodell ist die relationale Datenbank, die Daten in untereinander verknüpfte Tabellenstrukturen speichert. Relationale Datenbanken sind zwar nicht direkt auf eine bestimmte Größe beschränkt, so begrenzt ausschließlich das Betriebssystem die Größe einer MySQL-Datenbank, dennoch tauchen bei großen Abfragen mit SQL-Queries oftmals schwer nachvollziehbare Fehler auf. Eine fehlgeschlagene SQL-Query lässt sich nur schwer debuggen, wenn sie nach Stunden abbricht.

Abhilfe verspricht Apache Hadoop mit einem verteilten Dateisystem (HDFS) und dem NoSQL-Ansatz und MapReduce-Algorithmus, der auch die Analyse von unstrukturierten Daten ermöglicht. Durch HDFS werden mit Commodity Hardware Datensammlungen und Analysen im Petabyte-Bereich möglich. Für die Auswertung der Datenmengen werden dadurch auch keine backup-kritischen Großrechner mehr benötigt, denn MapReduce-Jobs können auf verschiedener, räumlich getrennter Hardware zeitlich parallel erfolgen, erst die Ergebnisse werden auf einem dafür vorbestimmten Rechner (Server) zusammengetragen und weiterverarbeitet. Dabei werden Daten über die verteilte Hardware redundant gehalten, was als Data Warehouse (unter bestimmten Voraussetzungen) Ausfallsicherheit bedeutet.

Hadoop ist ein freies Open Source Framework, dessen Entwicklung von der Apache Software Foundation vorangetrieben wurde. Es wird auch von den Unternehmen eingesetzt, die heute als Pioniere von Big Data gelten, beispielsweise Facebook, Yahoo!, Twitter, Amazon und Google. Vor allem Google, Facebook und Yahoo! steuerten große Teile zu Hadoop bei.

Hadoop: Zuverlässige, verteilte und skalierbare Big-Data-Anwendungen

Das Buch Hadoop – Zuverlässige, verteilte und skalierbare Big-Data-Anwendungen vom Autor Ramon Wartala bietet einen breiten und tiefen Einblick in Hadoop und dessen modulare Nebensysteme:

  • Datenfluss-Sprachen:
    • Hive
    • Pig
    • CludBase
  • Spaltenorientierte Datenbanken
    • HBase
    • Hypertable
  • Daten-Serialisierung
    • Avro
    • Thrift
    • Google Protocol Buffer
    • Sqoop
  • Workflow-Systeme
    • Azkaban
    • Oozie
    • Cascading
    • Hue
  • ZooKeeper
  • Mahout
  • Whirr

Das Buch führt ausführlich durch die Installation von Hadoop auf einem Linux-System, leitet die ersten Schritte im Umgang mit dem verteilten Dateisystem von Hadoop (HDFS) sowie zur Implementierung von MapReduce-Algorithmen an. Auch in die empfohlene Entwicklungsumgebung Eclipse (mit Plugin) wird hinreichend eingewiesen. Zum Ende gibt der Autor noch Tipps rund um das Management und die Überwachung der MapReduce-Jobs und des Hadoop-Ökosystems. Ferner werden vier Beispiele des Hadoop-Einsatzes in der Praxis vorgestellt. Wer einen Einstieg in die Praxis von Hadoop finden möchte, kann sich Hadoop als Standalone-Anwendung installieren und die Datenverteilung simulieren, oder sich Linux-Server bei Providern anmieten.

Hadoop besteht im Wesentlichen aus Java Programmcode (von Oracle, vormals Sun Microsystems), daher ist zumindest ein Grundwissen in Java notwendig, um tiefer in Hadoop eintauchen zu können und auch um die Quellcode-Beispiele im Buch verstehen zu können. Außerdem sind Linux-Kenntnisse (insbesondere Ubuntu/Debian) vorteilhaft. Wer kein Freund der Programmiersprache Java ist, kann durch das Hadoop Streaming auch MapReduce-Funktionen in C, Ruby, PHP oder Python realisieren; Hierfür bietet Hadoop eine Standardein/ausgabe-Schnittstelle an.


Hadoop: The Definitive Guide

Die Community rund um Hadoop ist nahezu vollständig englischsprachig, für einen tieferen Einblick in Hadoop ist daher englischsprachige Literatur zu empfehlen, beispielsweise das Buch Hadoop: The Definitive Guide. Für einen ersten Einstieg in das Hadoop-System ist das obige deutschsprachige Buch jedoch absolut empfehlenswert.


Verteilte Systeme – Buchempfehlung

Veröffentlicht in Bücher, Datenbanken, Informatik, Technik von Redakteur am 18. Jun. 2012

Verteilte Anwendungen sind aus dem Alltag der Industrienationen nicht mehr wegzudenken, auch wenn die meisten Anwender nicht viel davon bemerken. Insbesondere mobile Anwendungen und die immer leistungsfähiger werdenden dienstorientierten Architekturen (Service-Oriented Architecture – SOA) lassen verteilte Anwendungen immer bedeutsamer werden. Verteilte Systeme bestehen aus verteilten Systembausteinen, welche im Netzwerk (z. B. dem Internet) miteinander kommunizieren und zusammenarbeiten. Es gibt heute kaum noch Anwendungen, welche nicht verteilt sind und gerade industrielle Anwendungen sind ohne verteilte Systeme undenkbar. Typische Einsatzfelder sind der Handel, die Büroautomatisierung, PPS-Anwendungen (z. B. Fertigungssteuerung), ERP-Anwendungen, PLM-Anwendungen, Überwachungssysteme und alltägliche Anwendungen (z. B. Browser, Instant-Messenger, Smartphone Apps).

Das Buch Verteilte Systeme von Alexander Schill und Thomas Springer geht auf die Systemarchitekturen (z. B. das Cloud Computing) und Kommunikationsmodelle verteilter Anwendungen ausführlich ein. Auch Transaktionen (Kommunikationsschritte zwischen den verteilten Systembausteinen), Namens- und Verzeichnisdienste, Sicherheit, Konzepte der Softwareentwicklung speziell für verteilte Systeme, dienstbasierte Architekturen (SOA) sowie das mobile Computing werden behandelt. Das Buch steht unter dem Dach der Wirtschaftsinformatik mit Fokus auf die Modellierung und Unterstützung von Geschäftsprozessen.



Verteilte Systeme: Grundlagen und Basistechnologien (eXamen.press) (German Edition)
(mehr…)


Datenbankmodelle

Veröffentlicht in Datenbanken von Redakteur am 3. Dez. 2008

Datenbankmodelle sind das Gerüst nach welchem implementierte Daten gespeichert werden. Datenbankmodell sind abhängig vom Datenbankmanagementsystem.

Das ER-Modell als abstraktes Datenmodell und Datenmodellierungsinstrument zählt nicht zu den Datenbankmodellen.

Es gibt vier Hauptdatenbankmodelle, welche nach folgenden Adjektiven eingeordnet werden:

  • netzwerkartig bzw. vernetzt
  • hierarchisch
  • objektorientiert
  • relational

Aus diesen vier Hauptdatenbankmodellen sind einige Mischformen bzw. hybride Modelle, z.B. das objektrelationale Datenbankmodell oder relationale Netzwerk-Datenbankmodell, entstanden, welche die Eigenschaften der unterschiedlichen Datenbankmodelle kombinieren.

Das verbreiteste Datenbankmodell ist das relationale Datenbankmodell. Für kleine bis mittelgroße Softwareprojekte wird fast ausschließlich eine oder mehrere relationale Datenbanken verwendet. (mehr…)


Datensicherungsverfahren

Veröffentlicht in Datenbanken von Redakteur am 2. Apr. 2008

Alle Datensicherungsverfahren haben den gleichen Zweck, sie dienen der Sicherung von Daten (Backup). Es gibt jedoch eine Unterscheidung der Datensicherungsverfahren in drei Datensicherungen, welche in ihrem Umfang unterschieden werden:

Vollständige Datensicherung

Werden sämtliche Daten gespeichert, handelt es sich um eine Vollsicherung. Diese könnte den gesamten Inhalt eines Datenträgers umfassen (inklusiver Betriebssystem etc.), oder ein bestimmter, abgegrenzter Datenbereich (z.B. eine Projektmappe oder ein Verzeichnis).

Vorteil: Eine vollständige Datensicherung ist unabhängig von anderen Datensicherungen.

Nachteil: Die Datensicherung ist ggf. sehr zeitintensiv und benötigt verhältnismäßig viel Datenspeicher. Geht die Datensicherung verloren, ist der Verlust enorm. Daher sollten Vollsicherungen redundant gehalten und an verschiedenen Orten archiviert werden.

Eine Vollsicherung ist jedoch unumgänglich und dient mindestens als Basis für die weitere Datensicherung.

Differenzielle Datensicherung

Es werden bei der differenziellen Datensicherung die aktuellen Daten mit den Daten dem Stand der letzten vollständigen Datensicherung abgeglichen. Der ersten differenziellen Datensicherung muss eine vollständige Datensicherung voraus gehen. Die differenzielle Datensicherung ist eine Teilsicherung.

Bei der differenziellen Datensicherung werden alle Daten gesichert, die sich seit der letzten Datensicherung geändert haben bzw. neu hinzugekommen sind.
Dabei sind der jeweiligen differenziellen Datensicherung die bereits durch andere differenzielle Datensicherungen gesicherten Daten unbekannt.
Jeder differenzielle Datensicherung umfasst daher mehr Daten als seine vorhergehende, sofern es eine gab und sich Daten seit der letzten Datensicherung geändert haben.

Vorteil: Eine vollständige Datensicherung und eine einzige (möglichst aktuelle) Teilsicherung nach dem Prinzip der differenziellen Datensicherung reicht für die Möglichkeit der vollständigen Datenwiederherstellung aus.

Nachteil: Datensicherung kann sehr groß werden und Dimensionen der letzten vollständigen Datensicherung annehmen oder diese überschreiten.
Der Nachteil gegenüber der inkrementellen Datensicherung tritt dann auf, wenn sich nie (oder nur bedingt) die gleichen Dateien ändern, sondern immer neue Dateien hinzukommen; Dann werden bei jeder Datensicherung die alten und die neuen Dateien gesichert.

Inkrementelle Datensicherung

Es werden bei der inkrementellen Datensicherung die aktuellen Daten mit den Daten dem Stand der letzten vollständigen Datensicherung oder Teilsicherung abgeglichen. Der ersten inkrementellen Datensicherung muss eine vollständige Datensicherung voraus gehen.

Vorteil: Die Datensicherung ist sehr klein und dementsprechend schnell geschehen.
Kommen ständig neue zu sichernde Dateien hinzu, werden nur die jeweils neuen (im Vergleich zur letzten Sicherung) Dateien gespeichert.

Ändern sich jedoch permanent die gleichen Dateien, hat die inkrementelle Datensicherung keinen Vorteil gegenüber der differenziellen Datensicherung.

Nachteil: Es werden alle Datensicherungen seit der letzten Vollsicherung benötigt, wenn alle Daten wieder hergestellt werden sollen. Geht eine Datensicherung verloren, handelt es sich um einen Teildatenverlust.


Datenbankmanagementsystem (DBMS)

Veröffentlicht in Datenbanken von Redakteur am 15. Mrz. 2008

Die Datenmenge einer Datenbank ist nicht nur oft sehr groß, sondern auch verteilt. Die Daten sind in verschiedenen Containern (Tabellen) vorliegend und möglicherweise sogar auf verschiedene Rechner oder gar Netzwerke verteilt. Die Daten werden von mehreren Benutzern aufgerufen, bearbeitet oder gelöscht.

Ein Datenbankmanagementsystem, kurz DBMS oder auch Datenbankverwaltungssystem, organisiert die Datenbankzugriffe (Transaktionen) und verhindert so Probleme, die bei der Arbeit mit Datenbanken auftreten können.

Darstellungsprinzip

Eine Datenbank ist eine Sammlung an Daten, abstrahiert in mehreren Dateien. Datenbanken sind abstrakt und für den Menschen nur schwer, am besten aber bildlich vorstellbar. Ein DBMS stellt die Datenbank durch Objekte dar, es zeigt die Beziehungen der Daten zueinander und die Daten lassen sich auch in der Objektdarstellung bearbeiten.

Schnittstellenprinzip

Ein DBMS trennt im Grunde die Datenbank-Benutzer von der Datenbank. Die Benutzer sprechen die Datenbankgrundsätzlich über das DBMS an, so dass keine Transaktion nicht von der DBMS z.B. auf Validität (Gültigkeit der eingegebenen Daten) geprüft wird.

Des weiteren lassen sich mit einem DBMS häufig Datenbank- und Speichereinstellungen (z.B. in welcher Kodierung Texte abgespeichert werden sollen) benutzerfreundlich und ohne Datenbankabfragesprachen (z.B. SQL) einstellen. Die Benutzer werden daher weitgehenst von Programmiersyntax verschont und verwalten die Daten über ergonomische Benutzeroberflächen.

Sicherheit und Zugriffsbeschränkung

In einem Unternehmen, welches eine Datenbank für Kunden- und Zulieferdaten hat, ist es mit Sicherheit erwünscht, dass nicht jeder Benutzer Zugriff auf die gesamten Daten hat und diese beliebig verändern kann. Beispielsweise sollte ein Mitarbeiter der Abteilung „Einkauf“ nicht die Rechnungsdaten der Endkunden verändern, vielleicht nicht einmal einsehen, dürfen. Die Rechnungsdaten dürfen nur die Mitarbeiter der Abteilung „Verkauf/Vertrieb“ bearbeiten. Die Geschäftsführung soll aber alle Daten einsehen und verändern dürfen. Vielleicht gibt es auch Zulieferer oder Endkunden, die bestimmte Daten aus der Datenbank lesen oder sogar verändern dürfen.

Ein DBMS verwaltet Zugriffsrechte, die von den Datenbank-Administratoren eingerichtet werden. So müssen nicht alle Daten der gesamten Belegschaft oder Dritten anvertraut werden müssen. Da es diesbezüglich sehr viele strenge Rechtsvorschriften gibt, ist ein DBMS mit ausgereiftem Rechtevergabesystem sogar Pflicht!

Ein weiterer Punkt ist die Nachvollziehbarkeit von Datenzugriffen. So kann nachvollzogen werden, welcher Benutzer wann und welche Daten angelegt, verändert oder gelöscht hat.

Inkonsistenz bei Redundanz

Datenbanken sollten grundsätzlich keine redundanten Daten enthalten. Bei Datenbanken, die besonders schnell sein müssen, können diese jedoch in Kauf genommen worden sein. Oder die Datenbank ist derart verteilt oder gesplittet, dass benötigte Daten an einem Zugangspunkt nicht immer zur Verfügung stehen (z.B. im zeitweisen Offline-Betrieb) und die Daten daher zusätzlich lokal angelegt werden und somit datenbankglobal redundant sind.

Bei solchen Redundanzen muss das DBMS eine Inkonsistenz verhindern oder ggf. nachträglich korrigieren, so dass Datensätze mit gleichen Inhalt immer abgeglichen werden.

Schutz vor Datenverlust

Sollte der Schreibzugriff auf Daten in der Datenbank fehlgeschlagen sein, droht – abhängig von der Datenbank – Datenverlust. Auch andere Gründe, z.B. ein Update, Upgrade oder ein Hardwareausfall, können zum Datenverlust führen. Ein gutes DBMS sorgt nicht nur für ein benutzerfreundliches Backup (Datensicherung), sondern prüft Backups auch auf Aktualität und führt nötigenfalls periodenweise oder unmittelbar vor einem kritischen Zugriff in Eigenregie ein Backup aus.

Mehrbenutzer-Probleme

Daten werden in der Regel von mehreren Benutzern verwaltet. Auf die Kundendaten können z.B. die Mitarbeiter der Rechnungs-, Support-, Vertriebs- und der Reklamationsabteilung zugreifen. Kritisch werden die Transaktionen, wenn mehrere Benutzer zeitgleich die selben Daten bearbeiten wollen.

Ein DBMS hat zur Aufgabe, Daten zu sperren, die in Bearbeitung sind und idealerweise Datenänderungen zwischenzuspeichern, abzugleichen und zu speichern.

Gewährleistung der Integrität

Ein DBMS kontrolliert bei Datenzugriff die Datenintegrität. So kann z.B. kein neuer Rechnungsdatensatz angelegt werden, ohne eine Kundennummer. Wird bei Eintragung von Rechnungsdaten die Kundennummer ausgelassen, wird der Datensatz nicht in die Datenbank gespeichert. Wird eine Kundennummer angegeben, prüft das DBMS, ob die Kundennummer (und damit auch der Kundendatensatz) existiert. Existiert kein Kunde mit der angegebenen Kundennummer, kommt wiederum eine Fehlermeldung durch das DBMS. So können nur Datensätze in die Datenbank gelangen, die komplett in einem Zusammenhang einzubringen sind. Eine Rechnungsdatensatz ohne Kunde ist ein wertloser Datensatz.
Umgekehrt soll auch kein Kundendatensatz gelöscht werden, welcher noch offene Rechnungen hat. Auch diese Prüfung wird vom DBMS durchgeführt und ist sehr wichtig, um die Integrität der Daten in der Datenbank zu gewährleisten.


Datenbanken – Hohe Priorität für die Zukunft

Veröffentlicht in Datenbanken von Redakteur am 14. Mrz. 2008

Experten sprechen heute von der Generation der Informationsgesellschaft, die mit den Heim-PC, den mobilen Endgräten und der Großrechnern vieler Firmenzentralen, vor ungefähr 3 Jahrzehnten ihren Aufbruch fand. Vor zwei Jahrzehnten waren die gespeicherten, persönlichen Daten einer Person noch recht überschaubar. Heute und in Zukunft ist eher von einer Informationsflucht zu reden. Das produzierende Gewerbe, Banken, Versicherungen, Möbelgeschäfte, Mietwagengesellschaften, Schulen, Vermieter, Behörden, Berater, Ärzte, Anwälte….. und noch viele Andere speichern und verwalten die Daten ihrer Kunden/Klienten/Patienten/Geschäftspartner.

Vor Jahrzehnten wurden z.B. die Versicherten-Daten der Krankenkarten auf Kärtchen im Karteikartensystem festgehalten. Dieses Karteikartensystem könnte bereits als Datenbank bezeichnet werden. Heute wird in jeder Krankenkasse mit digitalen Datenbanken eine weit größere Datenmenge verwaltet. Dabei haben die digitalen Datenbanksysteme die heutige Datenmenge erst möglich gemacht. Die Datenmenge wird zunehmend größer, die Datentechnologien leistungsfähiger und die dazugehörigen Rechtsvorschriften immer vielfältiger.
Kein mittelgroßes bis großes Unternehmen kann heutzutage noch auf ein großes Datenbanksystem verzichten. Die Datenbank alleine reicht jedoch noch lange nicht. Die Wirtschaft und Verwaltung benötigt gute Datentechnologien, ausgefeilte Datenbankverwaltungssysteme und -natürlich- auch qualifizierte Datenbank-Spezialisten.

Datenbanksysteme sind jedoch nicht nur für die Datenbank-Spezialisten interessant. Neben den meisten Wirtschaftsinformatikern werden auch viele Wirtschaftsingenieure nebenbei mit Datenbanken konfrontiert werden. Nicht umsonst ist die Lehre über Datenbanken und dem Datenbankmanagement fester Bestandteil in den Lehrplänen der meisten Hochschulen und oft auch für Studenten der Betriebswirtschaftslehre oder eines Ingenieurstudiengangs vorgesehen.