Datenbankentwicklung
Was ist eine Datenbank?
Eine Datenbank ist eine Softwarelösung für die elektronische Datenverwaltung. Sie beinhaltet eine Datenbasis bzw. einen Datensatz und ein Datenbankmanagementsystem. Das DBMS erlaubt erst den Umgang mit der Datenbasis in Form von Einpflegen, Speichern, Bearbeiten, Darstellen, Ordnen oder Löschen von Daten. Außerdem können mit dem Datenbankmanagementsystem Abhängigkeiten und Zugriffsrechte festgelegt werden. Die Interaktionen mit der Datenbank erfolgen über eine bestimmte Datenbanksprache in Form von Befehlen, die entweder ein Nutzer oder ein zweites Softwaresystem (z.B. ein Computerprogramm oder eine Webtechnologie) vornehmen kann. Die gängigste Datenbanksprache ist SQL sowie das zugehörige DBMS MySQL. Softwareanbieter wie Microsoft bieten beispielsweise mit Access eine vorgefertigte Datenbanksoftware an.
Kategorien von Datenbanken
Relationale Datenbanken
- Häufigste Form der Datenbank
- Zuordnung des Datensatzes zu Attributen (Spalte) und Tupeln (Zeile)
- Flexible Neuanordnung der Daten
Objektorientierte Datenbanken
- Daten sind Klassen und Unterklassen zugeteilt
- Daten ergeben zusammen mit ihren Funktionen ein Objekt
- Häufig im Zusammenhang mit objektorientierten Programmiersprachen (z.B. C++ oder Java)
Dezentralisierte Datenbanken
- Datenbanken mit einem dezentralen Speicher
- Daten werden auf mehrere Knotenpunkte aufgeteilt
- Konsensmechanismus
- Beispiel: Blockchain
Datenbanken kommen in verschiedenen Branchen zum Einsatz. In den meisten Einsatzbereichen wie der Verwaltung, der Wissenschaft oder der Wirtschaft dienen sie dem Endnutzer. Unternehmen und Institutionen verwenden Datenbanken als alltägliches Arbeitswerkzeug zur Abwicklung von Arbeitsprozessen.
In der Webentwicklung dienen Datenbanken als Grundlage für Webseiten – im Grunde basiert jede moderne Website und Webanwendung auf einer Art von Datenbank. Mit MySQL können dynamische Webseiten und webbasierte Datenbanken erstellt werden, die die Daten als Antwort auf eine Serveranfrage bereithalten. Je nach Code kann eine Nutzeraktion auf einer Website nicht nur ein Abfragen von Daten sein, sondern auch eine Veränderung des Datensatzes der hintergründigen Datenbank auf dem Server hervorrufen. Gleiches gilt für die webbasierte Datenbank.
Auch in der Softwareentwicklung kommen Datenbanken zum Einsatz, hier vor allem objektorientierte Datenbanken. So können mehrfach verwendete Objekte oder Befehle durch einen automatisierten Zugriff auf die Datenbank schlank und flexibel in den Code integriert werden.
Geschichte der Datenbanken - von der Festplatte zur Blockchain
Verzeichnisstruktur
Die Geschichte der Datenbank beginnt etwa in den 1950er Jahren mit der Erfindung der Festplatte. Erstmals war es möglich, Daten auf einem Speichermedium zu speichern und diese Datenmengen wurden mit der Zeit immer größer. In den 1960er Jahren kamen die ersten Programme zur Massendatenverarbeitung zum Einsatz. Da die Daten zu dieser Zeit jedoch zu tausenden als einzelne Dateien ohne Unterverzeichnisse vorlagen, wurden Dateisysteme entwickelt, die die Dateien verschiedenen Verzeichnissen zuordneten, sodass keine widersprüchlichen oder redundanten Daten mehr entstehen und diese eindeutig verwaltet werden konnten.
Relationale Datenbanken
Auf dieser Grundlage entstanden erste Datenbanksysteme. Die Verzeichnisstruktur, auch Baumstruktur genannt, war das erste Datenbankkonzept. Die Hierarchie wurde in Parent-Child-Verhältnissen festgelegt. Dies erschwerte jedoch die Ergänzung von Daten. Aus diesem Grund entwickelte Edgar Frank Codd in den 1970er Jahren das relationale Modell, welches noch heute in Datenbanken Anwendung findet.
Die relationale Datenbank basiert auf dem Prinzip einer Tabelle. Die Tabellen (= Relationen) erlauben eine Trennung der Datenbankverwaltung und des physikalischen Speichers. Die flache Struktur macht eine flexible und unendliche Verknüpfung von Daten möglich.
Noch heute verwendete relationale Datenbanksysteme sind zum Beispiel Oracle, DB2 oder MySQL.
Objektorientierte Datenbanken
Den objektorientierten Datenbanken gingen die objektorientierten Programmiersprachen voraus, die in der Entwicklung von Software Anwendung finden. Eine objektorientierte Datenbank speichert Daten als Objekte und teilt diesen Funktionen bzw. Eigenschaften zu. So können anders als bei der relationalen Datenbank semantische Verknüpfungen entstehen und Objekte durch Suchen ihrer Funktionen gut gefunden werden.
Dezentrale Datenbanken
Eine noch junge Entwicklung ist die dezentrale Datenbank. Da durch die Digitalisierung immer mehr Daten anfallen – Stichwort Big Data – und diese nicht mehr auf lokalen Rechnern, sondern in der Cloud gespeichert werden können, birgt es ein großes Risiko, diese in zentral organisierten Datenbanken zu speichern. Gerade personenbezogene, sensible Daten und Aktualisierungen im Datenschutzgesetz machen spezielle Sicherheitsvorkehrungen nötig. Wenn eine Institution einen Systemausfall erleidet und die Daten zentral gespeichert wurden, kann dies einen allumfassenden Datenverlust bedeuten und schwerwiegende Konsequenzen haben.
Blockchain (Blockkette oder Knotenkette) bietet die Möglichkeit eines dezentralen Speichers durch mehrere Knotenpunkte. Der Datensatz wird so verteilt und der Zugriff wird nur erlaubt, wenn alle Knotenpunkte einen Konsens bilden. Durch diesen Konsensmechanismus gilt Blockchain als sehr sicher, weshalb sie vor allem bei Datenbanken für Rechnungsdaten oder auch für Kryptowährungen wie Bitcoin eingesetzt wird. Allerdings bietet sich Blockchain nur bei Datensätzen an, die nicht mehr verändert werden müssen, da ein häufiges Editieren innerhalb dieses Datenbanksystems sehr umständlich ist.
Phasen der Datenbankentwicklung
Bei der Datenbankentwicklung werden verschiedene Phasen durchlaufen und es kommen unterschiedliche Modelle zum Einsatz. Auch wenn jede einzelne Phase der Datenbankentwicklung unterschiedlich betitelt wird, lassen sie sich meist auf vier Teilschritte herunterbrechen, die ein Datenbankentwickler in Zusammenarbeit mit seinen Kunden durchläuft.
- Anforderungsanalyse
Im Rahmen einer Anforderungsanalyse wird geklärt, welche Informationen in welcher Form der Daten vorliegen und welchen Erkenntnisgewinn oder welches verwalterische Ziel mit der Entwicklung der Datenbank erreicht werden soll. - Konzeption
In dieser Phase, der Konzeption einer Datenbank, geht es zunächst um die semantische Datenmodellierung. Beispielsweise in einem Entity-Relationship-Modell, kurz ER-Modell genannt, können die Objekte (Entitäten) ähnlich einer Mindmap miteinander verbunden werden, um ihre Beziehungen zueinander darzustellen (Beziehungstypen). - Relationales Modell
Beim relationalen Modell geht es um die Logik einer Datenbank. In dieser Phase wird anhand eines Entwurfs das zuvor erstellte ERM in mehrere Tabellen (Relationen) übersetzt und ein Prototyp erstellt. Durch die Verwendung dieses Systems nach dem relationalen Modell entstehen zum Beispiel aus zwei Entitäten, welche durch einen Beziehungstypen miteinander verbunden sind, drei Tabellen, die sich Relationsschemata nennen. - Physischer Entwurf
Als letztes wird das Modell als physischer Entwurf schließlich in ein Datenbanksystem überführt.
Wie Stephan Kleuker in seinem Buch zur Datenbankentwicklung betont, müssen im Anschluss an die Überführung in das Datenbanksystem die einzelnen Funktionen zum Zwecke der Qualitätssicherung eingehend getestet werden. Wie er im Kapitel über das Testen von Datenbanken erwähnt, bieten sich dafür verschiedene Frameworks, wie beispielsweise JUnit, an. Auch nach dem Test ist es Teil der Datenbankentwicklung, die Datenbank laufend zu überprüfen und zu optimieren.
Datenbank erstellen
Wer sich als Unternehmen eine Datenbank erstellen lassen möchte und über keine eigene IT-Abteilung verfügt, wendet sich an Datenbankentwickler. Datenbankentwickler können Softwareunternehmen oder Agenturen sein, die sich auf die Datenbankentwicklung spezialisiert haben und die Entwicklung einer Datenbank mit SQL oder anderen Datenbanksprachen von Grund auf vornehmen. Da Datenbanken wie eingangs erwähnt auch in der Webentwicklung Anwendung finden, bietet nicht selten auch eine Webagentur an, eine Datenbank zu erstellen. Vor allem wenn eine webbasierte Datenbank erstellt werden soll, sind sie der richtige Ansprechpartner.
Da der Markt sehr schnelllebig ist und auch im Bereich der Digitalisierung häufig Umbrüche stattfinden, müssen Unternehmen flexibel sein. Datenbanken sind agile Software und erleichtern viele Arbeitsprozesse, die andernfalls manuell erledigt werden müssten. Mit Datenbanksystemen wie Firmendatenbanken, Kundendatenbanken oder Produktdatenbanken können gerade KMU schnell auf Anfragen reagieren und sind zudem besser vor Datenverlusten geschützt.
Datenbank erstellen lassen bei TenMedia Berlin
Datenbanken sind aus dem heutigen Berufsalltag nicht mehr wegzudenken. Sie gehören zu den Grundlagen einer strukturierten Organisation verschiedenster Datensätze in fast allen Unternehmensformen. Ein funktionierendes und sicheres Datenbanksystem für Unternehmen ist unerlässlich. Es wäre jedoch zu viel verlangt, wenn die Mitarbeiter eines Unternehmens selbst mit SQL umgehen können müssten, um selbst Datenbanken zu erstellen. Das andere Extrem, nämlich auf Standardsoftware zurückzugreifen, kann nicht immer die unternehmenseigenen Bedürfnisse erfüllen.
Die Erstellung einer Datenbank ist ein Fall für die individuelle Softwareentwicklung. Die Anforderungen eines Unternehmens gleichen keinem zweiten und daher sollte jede Unternehmenssoftware eine individuelle Lösung darstellen, welche genau auf die Bedürfnisse von Kunden und Mitarbeitern zugeschnitten ist.
TenMedia ist eine Digitalagentur in Berlin, die sich auf die individuelle Datenbankentwicklung spezialisiert hat. Von der Kundendatenbank über webbasierte Datenbanken bis hin zu Blockchain Rechnungstools bieten wir Unternehmen Softwarelösungen, die im Hintergrund hochkomplex und funktional sind, an der Oberfläche jedoch benutzerfreundlich und leicht zugänglich. Im Rahmen unserer Datenbankentwicklung arbeiten wir mit SQL und MySQL in Verbindung mit anderen state-of-the-art Technologien, mit denen sich moderne, funktionale, stabile, sichere und individuelle Softwarelösungen und Datenbankanwendungen entwickeln lassen.