# Google Spanner
## Geschichte der Datenbank
Google Spanner ist eine global-verteilte SQL Datenbank von Google und ist der Nachfolger der Google-Datenbanken BigTable und MegaStore. Google will Vorteile verschiedener Datenbanken vereinen. Spanner steht als kostenpflichtige Cloud-Anwendung öffentlich zur Verfügung.
<iframe width="560" height="315" src="https://www.youtube.com/embed/amcf6W2Xv6M" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## Datenbanktyp
**NewSQL**
Dies ist eine Gruppe von modernen relationalen Datenbanksystemen.
Google Spanner ist eigentlich eine Verbindung zwischen einer relationalen Datenbank (SQL) und Nicht-SQL-Funktionen die es aus anderen Datenbanken holt.
Dabei werden die Vorteile einer relationalen Datenbankstruktur mit nicht relationaler horizontaler Skalierung vereint.
Google versucht das beste aus beiden Systemen herauszuholen.
Spanner ist eine global-verteilte NewSQL-Datenbank: NewSQL ist eine Gruppe von modernen relationalen Datenbanksystemen. Es handelt sich um die Untermenge der not-only SQL-Datenbanken, welche SQL oder eine SQL ähnliche Sprache zur Abfrage verwenden.
#### Über NoSQL-Datenbanken
NoSQL (englisch für Not only SQL deutsch: „Nicht nur SQL“) bezeichnet Datenbanken, die einen nicht-relationalen Ansatz verfolgen und damit mit der langen Geschichte relationaler Datenbanken brechen.
Grundlage des Konzeptes relationaler Datenbanken ist die Relation. Operationen auf diesen Relationen werden durch die relationale Algebra bestimmt. Die theoretische Grundlage der SQL (Structured Query Language) ist die relationale Algebra.
Im Gegensatz zu reinen SQL-Datenbanken benötigen die Datenspeicher von Google Spanner keine festgelegten Tabellenschemata und versuchen Joins zu vermeiden. Sie skalieren dabei horizontal.
#### Der SQL-Join
Ein SQL-Join (deutsch: Verbund) bildet aus den Datensätzen zweier Tabellen einer relationalen Datenbank eine Ergebnistabelle, deren Datensätze Attribute beider Tabellen entsprechend einer angegebenen Verbundbedingung enthält.
## Vor- und Nachteile
**Vorteile**
* theoretisch unbegrenzt erweiterbar
* Globale Konsistenz
* Google verspricht eine hohe Stabilität
* Verteilte Workloads
**Nachteile**
* kostenpflichtig: Die Kosten werden pro Stunde und pro verwendetetem Knoten berechnet und zusätzlicher Speicherplatz kostet den Kunden 30 US-Cent pro GByte