====== Datenbanken ====== ===== Relationale Datenbanken ===== Relationale Datenbanken speichern die Daten in Tabellen. Sie sind weit verbreitet und gut erforscht. **[[https://ddi.uni-wuppertal.de/www-madin//material/materialsammlung/oberstufe/skriptum/Q1_skriptum_python.pdf|Kap. 6: Wissensbasierte Modellierung mit Datenbanken]]** beschreibt wichtige Begriffe zum Themengebiet Datenbanken. Die Modellierung und die Nutzung von Datenbanken werden kurz und übersichtlicher dargestellt. * [[archive>http://oszhdl.be.schule.de/gymnasium/faecher/informatik/datenbanken/index.htm|Grundlagen zu Datenbanksystemen]] ==== Modellierung von Datenbanken ==== * [[Erste Schritte in SQL]] * [[https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap4.htm|Normalisierung (Erläuterung über die 3.NF hinaus)]] [[https://www.oszhandel.de/gymnasium/faecher/informatik/datenbanken/normal/index.htm|Beispiel für eine Normalisierung]], [[https://www.tinohempel.de/info/info/datenbank/normalisierung.htm|Beispiel Normalisierung 2]], [[archive>http://oszhdl.be.schule.de/gymnasium/faecher/informatik/datenbanken/normal/index.htm|Übung Normalisierung]], [[wp>Database normalization]] * Übungen (Quiz) zur [[http://www.datenbanken-verstehen.de/datenbanken/uebungsaufgaben-loesungen/datenmodellierung-uebungen/|Datenmodellierung]] und zur [[http://www.datenbanken-verstehen.de/datenbanken/uebungsaufgaben-loesungen/normalisierung-uebungen/|Normalisierung]]. * [[wpde>Entity-Relationship-Modell]], [[http://www.minet.uni-jena.de/dbis/lehre/ws2005/dbs1/Chen.pdf|Originalartikel von Peter Chen]] * [[https://www.monst-er.de/|Monst-ER]]: Spiel zum Erlenen von ER-Diagrammen. Am Ende erhält man ein [[https://www.monst-er.de/cert.php?id=a5d422b8e9|Zertifikat]]. ==== Abfragen mit SQL ==== * [[https://sqlzoo.net/|sqlzoo]] Kurs zum eigenständigen Lernen von SQL-Abfragen * [[https://modern-sql.com/concept/three-valued-logic|The Three-Valued Logic of SQL]] * [[https://www.w3resource.com/sql/tutorials.php|SQL Tutorial bei w3ressource]] * Clients: [[https://dbeaver.io/|DBeaver (Community)]], [[https://sqlitestudio.pl/|SQLiteStudio]] * [[http://www.schulserver.hessen.de/darmstadt/lichtenberg/SQLTutorial/|SQL-Tutorial]], ([[https://www.imoodle.de/sqltutorial/index.html|Mirror]]) ist eine interaktive Übungseinheit mit Erklärungen für SQL-SELECT-Anweisungen. * [[http://wwwlgis.informatik.uni-kl.de/cms/courses/informationssysteme/sqlisland/|SQL Island Adventure]] - erkunde die Welt von SQL in einem Spiel. Wenn du nicht weiterkommst, helfen dir vielleicht ein paar Hinweise zu den [[SQL Island Adventure|ersten Schritten]]. * Bei [[https://mystery.knightlab.com/|Murder Mystery]] muss mit Hilfe von SQL-Anweisungen ein Mordfall gelöst werden. * [[Joins|Tabellen mit JOIN verbinden]] * Daten aus CSV-Dateien importieren mit ''LOAD DATA INFILE''. * Gruppierung mit GROUP BY, WHERE und HAVING: [[http://www.schulserver.hessen.de/darmstadt/lichtenberg/SQLTutorial/lektion4.html|Lektion 4 des SQL-Tutorials]] inklusive [[http://www.schulserver.hessen.de/darmstadt/lichtenberg/SQLTutorial/uebung.php?lektion=4|Übungen]] ==== Weblinks ==== * [[https://www.inf-schule.de/information/datenbanksysteme|Datenbanksysteme]] bei inf-schule. * Eine Übersicht der häufigsten SQL-Befehle liefert ein [[https://www.w3schools.com/Sql/sql_quickref.asp|Tutorial bei w3schools]]. * [[https://www.schule-bw.de/faecher-und-schularten/mathematisch-naturwissenschaftliche-faecher/informatik/material/datenbanken/relationale-datenbanken/db-modellierung.pdf/view|Relationale Datenbanken: Datenmodellierung]] (Skript) * [[https://dzone.com/refcardz/essential-mysql|Reference Card MySQL]] ist eine Übersicht über die wichtigsten Befehle des Datenbanksystems MySQL. * Datensätze der [[http://data.deutschebahn.com/datasets/|Deutschen Bahn]] und der [[http://data.worldbank.org/|Weltbank]] * [[https://www.google.com/covid19/mobility/|Veränderungen der Mobilität]] während der [[Corona]]-Krise (von Google erhoben) * [[Analyse einer Wiki-Datenbank]] * Neben MySQL bzw. MariaDB existieren als weitere prominente Vertreter der relationalen Datenbanken die DB-Systeme [[wpde>SQLite]] und [[wpde>postgreSQL]]. * In einer [[http://www.lehrer-online.de/datenbankentwicklung.php|Unterrichtsreihe]] wird eine Datenbank für einen fiktiven Party-Service entwickelt. * [[http://moodle.stadtgymnasium-detmold.de/course/view.php?id=197|Fortbildungsunterlagen]] des Stadtgymnasium Detmold. * [[https://github.com/wi-wissen/instahub|InstaHub]] ist ein soziales Netzwerk, dessen Datenhaltung für Bildungszwecke exploriert werden kann. [[https://informatikkeller.de/instahub-select-anweisung/|Hier]] gibt es auch Aufgaben zu dieser Datenbank. * [[http://marcohensel.de/ihk/|Skriptsammlung]] zum Thema Datenbanken ===== NoSQL (Not only SQL) ===== Im Gegensatz zu relationalen Datenbanken, speichern objektorientierte Datenbanken die Inhalte als Objekte und nicht in Tabellen ab. * [[db4o]] - eine objekt-orientierte Datenabank für C# und Java * [[http://redis.io/|Redis]] (Abkürzung für //remote dictionary server//) ist ein einfacher Speicher für Key-Value-Paare. * [[wpde>SPARQL]] ist eine Abfragesprache für [[wpde>Wikidata]]. * Eine Round-Robin-Database speichert Daten und fasst sie zusammen, damit die Größe nicht beliebig wächst. Eine Implementierung hierfür ist [[wp>RRDtool]] ([[http://oss.oetiker.ch/rrdtool/|Website)]]. Eine Einführung zu dem Tool steht in //Raspberry Pi - Das umfassende Handbuch//, Kap. 30.2. * [[https://www.youtube.com/watch?v=qI_g07C_Q5I|Introduction to NoSQL]] - Video, in dem Martin Fowler eine Einführung in das Thema gibt. * [[https://sw101.tbs1.de/persistenz/#pickle|Pickle]] ermöglicht das Speichern von [[Python]]-Objekten in Dateien.