E-Book, Deutsch, 328 Seiten
Reihe: O'Reilly`s kurz & gut
ISBN: 978-3-96010-693-7
Verlag: dpunkt
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Alice Zhao ist Data Scientist und liebt es, komplexe Dinge leicht verständlich zu erklären. Als Senior Data Scientist bei Metis und als Mitbegründerin von Best Fit Analytics hat sie zahlreiche Kurse zu SQL, Python und R gegeben. Ihre sehr gut bewerteten technischen Tutorials auf YouTube sind dafür bekannt, gleichermaßen praktisch, unterhaltsam und visuell ansprechend zu sein. In ihrem Blog 'A Dash of Data' schreibt sie über Analytics und Popkultur. Ihre Arbeit wurde bereits in der Huffington Post, Thrillist und Working Mother veröffentlicht. Sie hat auf einer Vielzahl von Konferenzen über Themen wie Natural Language Processing und Datenvisualisierung gesprochen und hat einen Master of Science in Analytics und einen Bachelor of Science in Elektrotechnik erworben, beide von der Northwestern University.
Weitere Infos & Material
KAPITEL 1
SQL-Crashkurs
Dieses kurze Kapitel bietet Ihnen einen schnellen Einstieg in die grundlegende SQL-Terminologie und die SQL-Konzepte. Was ist eine Datenbank?
Beginnen wir ganz von vorn. Eine Datenbank ist ein Ort, an dem man auf organisierte Art und Weise Daten ablegen kann. Es gibt viele Möglichkeiten, Daten zu organisieren, und entsprechend gibt es viele Datenbanken, unter denen man wählen kann. Die zwei Kategorien, in die Datenbanken fallen, nennen sich SQL und NoSQL. SQL SQL ist die Abkürzung für Structured Query Language (strukturierte Abfragesprache). Stellen Sie sich vor, Sie hätten eine App, die sich die Geburtstage all Ihrer Freunde merkt. Mit sehr hoher Wahrscheinlichkeit würden Sie SQL verwenden, um mit dieser App zu reden. Deutsch: »Hallo App. Wann ist der Geburtstag meines Mannes?« SQL: SELECT * FROM birthdays WHERE person = 'husband'; SQL-Datenbanken werden oft als relationale Datenbanken bezeichnet, weil sie aus Relationen bestehen, die üblicherweise Tabellen genannt werden. Viele Tabellen, die miteinander verbunden sind, bilden eine Datenbank. Abbildung 1-1 zeigt das Bild einer Relation in einer SQL-Datenbank. Abbildung 1-1: Eine Relation (auch bekannt als Tabelle) in einer SQL-Datenbank Das Wichtigste, das man über SQL-Datenbanken wissen sollte, ist, dass sie vordefinierte Schemata erfordern. Stellen Sie sich ein Schema als die Art vor, in der die Daten in einer Datenbank organisiert oder strukturiert sind. Nehmen wir einmal an, Sie wollten eine Tabelle anlegen. Bevor Sie Daten in die Tabelle laden, muss die Struktur der Tabelle festgelegt werden, darunter solche Dinge wie die Spalten der Tabelle, ob diese Spalten Integer- oder Dezimalwerte enthalten usw. Irgendwann jedoch kommt der Zeitpunkt, an dem sich die Daten nicht mehr auf diese strukturierte Weise organisieren lassen. Ihre Daten haben vielleicht unterschiedliche Felder. Oder möglicherweise brauchen Sie eine effektivere Methode, um eine große Menge an Daten zu speichern und abzurufen. Hier kommt NoSQL ins Spiel. NoSQL NoSQL steht für Not only SQL (nicht nur SQL). Ich werde in diesem Buch nicht näher darauf eingehen, wollte es aber erwähnen, da der Begriff seit den 2010er-Jahren an Popularität gewonnen hat und es wichtig ist, zu verstehen, dass es auch noch andere Wege gibt, um Daten zu speichern, als nur Tabellen. NoSQL-Datenbanken werden oft als nicht relationale Datenbanken bezeichnet, und es gibt sie in allen Formen und Größen. Ihre wichtigsten Merkmale bestehen darin, dass sie dynamische Schemata haben (das heißt, ihre Schemata müssen nicht im Vorhinein starr festgelegt werden) und dass sie eine horizontale Skalierung erlauben (was bedeutet, dass die Daten sich über mehrere Rechner ausbreiten können). Die beliebteste NoSQL-Datenbank ist MongoDB, die zu den dokumentenorientierten Datenbanken gehört. Abbildung 1-2 zeigt, wie Daten in MongoDB gespeichert werden. Sie werden bemerken, dass die Daten nicht mehr in einer strukturierten Tabelle vorliegen und die Anzahl der Felder (vergleichbar einer Spalte) für die einzelnen Dokumente (vergleichbar einer Zeile) variiert. Abbildung 1-2: Eine Collection (eine Variante einer Tabelle) in MongoDB, einer NoSQL-Datenbank Wie gesagt, der Schwerpunkt dieses Buchs liegt auf SQL-Datenbanken. Selbst mit der Einführung von NoSQL speichern die meisten Unternehmen die Mehrzahl ihrer Daten in Tabellen relationaler Datenbanken. Datenbankmanagementsysteme (DBMS) Sie haben vermutlich schon Begriffe wie PostgreSQL oder SQLite gehört und fragen sich vielleicht, worin diese sich von SQL unterscheiden. Es gibt zwei Typen von Datenbankmanagementsystemen (DBMS), also von Software, die benutzt wird, um mit einer Datenbank zu arbeiten. Dazu gehören Dinge wie das Festlegen, wie Daten importiert und organisiert werden, aber auch Dinge wie die Handhabung des Zugriffs von Benutzern oder Programmen auf die Daten. Ein relationales Datenbankmanagementsystem (RDBMS) ist eine Software, die speziell für relationale Datenbanken oder Datenbanken, die aus Tabellen bestehen, gedacht ist. Jedes RDBMS hat eine andere Implementierung von SQL, das heißt, die Syntax variiert leicht von Software zu Software. So würden Sie zum Beispiel in fünf unterschiedlichen RDBMS zehn Zeilen mit Daten ausgeben: MySQL, PostgreSQL und SQLite SELECT * FROM birthdays LIMIT 10; Microsoft SQL Server SELECT TOP 10 * FROM birthdays; Oracle Database SELECT * FROM birthdays WHERE ROWNUM <= 10; SQL-Syntax mit Google suchen Wenn Sie online nach SQL-Syntax suchen, sollten Sie immer das RDBMS, mit dem Sie arbeiten, in die Suche aufnehmen. Als ich SQL lernte, konnte ich beim besten Willen nicht herausfinden, weshalb mein aus dem Internet kopierter Code nicht funktionierte. Und genau das war der Grund! Machen Sie dies. Suche: create table datetime postgresql ? Ergebnis: timestamp Suche: create table datetime microsoft sql server ? Ergebnis: datetime Nicht das. Suche: create table datetime ? Ergebnis: Syntax könnte für irgendein RDBMS gelten. Dieses Buch behandelt die SQL-Grundlagen zusammen mit den Nuancen von fünf beliebten Datenbankmanagementsystemen: Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL und SQLite. Manche sind proprietär, das heißt, sie gehören einem Unternehmen, und man muss Geld bezahlen, wenn man sie benutzen möchte. Andere sind Open Source, dürfen also kostenlos von allen verwendet werden. Tabelle 1-1 stellt die Unterschiede zwischen den einzelnen RDBMS dar. Tabelle 1-1: Relationale Datenbankmanagementsysteme im Vergleich RDBMS Besitzer Besondere Merkmale Microsoft SQL Server Microsoft •Beliebtes proprietäres RDBMS. •Wird oft zusammen mit anderen Microsoft-Produkten verwendet, einschließlich Microsoft Azure dem .NET Framework. •Auf Windows-Plattformen verbreitet. •Wird auch als MSSQL oder SQL Server bezeichnet. MySQL Open Source •Beliebtes Open-Source-RDBMS. •Wird oft zusammen mit Webprogrammiersprachen wie HTML/CSS/JavaScript eingesetzt. •Wurde von Oracle gekauft, ist aber weiterhin Open Source. Oracle Database Oracle •Beliebtes proprietäres RDBMS. •Wird aufgrund seiner vielen verfügbaren Funktionen, Werkzeuge und Supportmöglichkeiten häufig in großen Unternehmen eingesetzt. •Wird oft einfach als Oracle bezeichnet. PostgreSQL Open Source •Nimmt schnell an Popularität zu. •Wird oft zusammen mit Open-Source-Technologien wie Docker und Kubernetes eingesetzt. •Effizient und hervorragend für große Datenmengen geeignet. SQLite Open Source •Die weltweit am häufigsten eingesetzte Datenbank-Engine. •Verbreitet auf iOS- und Android-Plattformen. •Leichtgewichtig und hervorragend für eine kleine Datenbank geeignet. Ab sofort in diesem Buch: Microsoft SQL Server wird als SQL Server bezeichnet. Oracle Database wird als Oracle bezeichnet. Installationsanweisungen und...