Tag 1 : und 10.08.2015
Jede/r Lernende... kann in eigenen Worten die Entstehung von erläutern kennt die verschiedenen Arten von mit entsprechenden Eigenschaften kann die Abkürzungen ACID, BASE und CAP einordnen
früher (1) Applikationen wurden in Assembler programmiert Keine Multi-Tier Applikationen Zentralisierte Informatiksysteme Die Nutzdaten waren in Ihrer Form Teil jeweiligen Applikation!
früher - Reflexion Überlegungen / 10min 1 Was kann auf technischer Ebene in einer solchen Konstruktion schieflaufen? 2 Was kann auf menschlicher Ebene in einer solchen Konstruktion schieflaufen?
früher - Stichworte Wartbarkeit? Zukunftssicherheit? Stabilität? Transparenz?...
Mittel zu Ziel: Abstraktion Schnittstellen Standardisierung
... etwas detaillierter
Begriff und ihre Bedeutung Applikationsentwickler: SQL Structured Query Language Datenbankadministrator: SQL DDL Data Definition Language SQL DML Data Manipulation Language
Hierarchische Ziel Rechneroptimiert / Suche ist Top-Down ( Geh nach unten ) / Vater-Kind Beziehungen Systeme IMS/DB von IBM Heute Neue Relevanz durch die Bedeutung von XML
Netzwerkdatenbanken Definition Weiterentwicklung hierarchischen Datenbank Unterschied Keine strikten Vater-Kind Beziehungen mehr (Zwischenverknüpfungen möglich) Heute Komplex, teuer -> Finanzbranche (allerdings relativ selten)
Eigentlich das was wir kennen... Relationale (RDBMS) Beispiele: Oracle / DB2 / PostgreSQL / MySQL / MSSQL Als Einzelplatzlösung (MS Access) o netzwerkfähig SQL / SQL DDL / SQL DML als Sprachen Eigenschaften (Repetition, o?): Tabellen mit Datensätzen Spalten mit Attributen (mit speziellen Eigenschaften) Primärschlüssel (Was ist das?), Fremdschlüssel (Was ist das?) Beziehungen zwischen Tabellen über Fremd- und Primärschlüssel (Relationen)
Relationale (RDBMS) / Beispiel Als Repetition und Denksport gedacht (15min) Erstellen Sie ein einfaches Datenbankmodell nach folgenden Vorgaben: Mitarbeiter gehören zu genau einer Abteilung Mitarbeiter hat genau einen internen Kontakt (Anschrift, Email, Tel, etc.) und genau einen privaten Kontakt Mitarbeiter können ein Projekt leiten o im Projekt mitarbeiten
Objektorientierte Deckt Bedürfnisse Objektorientierung bei Programmiersprachen ab Speichert Beziehung von Objekten implizit AQL o OQL als Sprachen Pro: ist viel schneller / keine API nötig Con: Schlechte Performance
Objektrelationale Weiterentwicklung relationalen Speicherung von komplexeren Attributtypen möglich (inkl.ableitung und Zeiger) Beispielobjekte : IP-Adressen, Koordinaten, etc SQL3 als Abfragesprache Beispiel: PostgreSQL / Oracle / DB2
NOSQL- NOSQL = not only SQL Eigentlich ein altes, bekanntes Prinzip. Erfuhr durch die Verbreitung und Veränung des Internets eine Wiegeburt Verzicht auf Relationale Modelle Ausprägungen: Dokumentorientierte DB Effizienter Umgang mit Dokumenten (Bsp. MongoDB) Key-Value DB Datensätze werden als Value mit einem Key verwaltet (Bsp. Redis) Spaltenorientierte DB Datensätze werden in Spalten und nicht in Zeilen gespeichert (Google BigTable) Grafen-DB Abbildungen von Beziehungen vereinfacht -> für soziale Netzwerke / Fahrpläne / Karten (Neo4j)
NOSQL- / Vorteile Werden Datenmengen immer grösser (und verteilter), braucht es für die Bewirtschaftung Daten eine horizontale Skalierung (verteilte Systeme). Dem gegenüber steht die vertikale Skalierung (mehr Leistung / grösserer Speicher) CAP-Theorem C - Consistency dt. Konsistenz : sind die Datensätze überall (für jeden Lesezugriff) identisch A - Availability dt. Verfügbarkeit : sind die Datensätze immer zugänglich P - Partion tolerance dt. Partitionstoleranz : Wie gut funktioniert das Systme wenn Daten verteilt gespeichert werden Aussage: Es ist nicht möglich bei allen drei Faktoren
ACID-Prinzip Das ACID-Prinzip ist eine wichtige Grundlage Relationalen. Erarbeiten Sie sich die Information dazu selbst. Interessante Quellen: http://www.datenbanken-verstehen.de/blog/ datenbankentwicklung/ datenbanktransaktionen-nach-dem-acid-prinzip/ https://de.wikipedia.org/wiki/acid Auftrag: Erstellen Sie für sich selbst (max. 4) ANKI-Lernfragen zu ACID. Deponieren Sie die Lernkarten auf Moodle.
BASE-Prinzip Das BASE-Prinzip ist eigentlich eine gegenteilige Ansicht von ACID, auf dem die meisten NOSQL- beruhen. Erarbeiten Sich sich die Informationen dazu selbst. Interessante Quellen: http://db-engines.com/de/article/base Buchs Seite 20 Auftrag: Erstellen Sie für sich selbst (max. 3) ANKI-Lernfragen zu BASE. Deponieren Sie die Lernkarten auf Moodle.