SQL- & NoSQL-Datenbanken Speichern und Analysen von großen Datenmengen 1 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Zitat von Eric Schmidt (Google CEO): „There was 5 exabytes of information created between the dawn of civilization through 2003, but that much information is now created every 2 days, and the pace is increasing.“ 2 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Die Geschichte der Datenbanksysteme • • • • 3 1960er - Erste Datenbanksysteme erscheinen 1970er - System R von Edgar F. Codd Ende 1970er - SQL kommt auf den Markt 1990er - Die ersten NoSQL-Datenbanken erscheinen 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation (Quelle: http://de.wikipedia.org/wiki/Datenbank; 20.06.14) 4 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Beispiel Relationsname: Studenten 5 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Beispiel Relation: Student 6 04.07.14 Relation: Geburtstag Relation: Fach Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Entity-Relationship-Modell 7 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Zeilenorientierte Speicherung abc,Hertz,Heinrich Rudolf;def,Gaede,Wolfgang Max Paul;ghi,Gerthsen,Christian; 8 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Transaktionen Student „def“ bringt das Buch „2“ zurück 9 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation ACID-Prinzip für Transaktionen Atomicity ● Consistency ● Isolation ● Durability ● 10 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Skalierung (Quelle: Cloud Computing für Unternehmen, Buch) Horizontale Skalierung ● ● ● Zusätzliche Rechner Software muss angepasst werden Nicht begrenzt Vertikale Skalierung ● ● ● 11 04.07.14 Zusätzliche/bessere Komponenten (RAM, CPU, Grafikkarte etc.) Softwareunabhängig Begrenzt Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Bekannte relationale Datenbanken DB2 von IBM ● Oracle Database ● SAP MaxDB ● 12 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Kritik an relationalen Datenbanken Aufwendiges Speichern und Abrufen von Objekten, bei komplexen Join-Verbindungen ● „Unnötige“ Daten durch Schlüsselattribute ● Nicht direkt kompatibel mit den meisten Programmiersprachen ● 13 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation NoSQL-Datenbanken 14 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Spaltenorientierte Datenbanken abc,def,ghi; Hertz,Gaede,Gerthsen; Heinrich Rudolf,Wolfgang Max Paul,Christian; 15 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Objektdatenbank (Quelle: http://wikis.gm.fh-koeln.de/wiki_db/Datenbanken/Objektdatenbank) 16 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Dokumentorientierte Datenbank (Quelle: http://wikis.gm.fh-koeln.de/wiki_db/uploads/Datenbanken/DokumentenorientierteDatenbank/bsp_dokument.png) 17 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation CAP-Theorem Konsistenz (C) Verfügbarkeit (A) 18 04.07.14 Partitionstoleranz (P) Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation BASE Basically Available Soft State Eventually Consistent 19 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation Quellen ● ● ● 20 Datenbanken Online Lexikon (http://wikis.gm.fh-koeln.de/wiki_db/) Wikipedia (http://www.wikipedia.org/) Use the Index, Luke! (http://use-the-index-luke.com/de) 04.07.14 Software-Entwurf und -Qualität Institut für Programmstrukturen und Datenorganisation