Data and Knowledge Engineering
Johann Mitloehner, 2020-23
- Relational Database Systems
- Knowledge Graphs
- Applications
Jupyter Notebooks
sind fuer Sie zugaenglich ueber die Learn-Seite zur LV (Lernaktivitaeten).
Damit koennen Sie auf einem server unseres Instituts arbeiten, wo alle notwendigen
packages schon installiert sind.
Mit ein wenig Installationsaufwand koennen Sie exakt die gleiche Umgebung auch auf Ihrem eigenen Computer
haben; in der LV wird nur open source software verwendet: siehe
jupyter.org und falls noetig fuer Python
python.org
Misc & FAQ
- Comments: # for Python, -- for SQL
- PostgresQL statt SQLite: verwenden Sie folgenden connector (statt sqlite:///..,
und mit Ihrer Matrikelnummer):
%sql postgresql://h12345678:h12345678@postgresql.student-db.svc.cluster.local/h12345678
Ab nun gehen alle SQL statements zur Postgres DB. Den aktuellen connector sehen Sie
in Jupyter notebook auch in der Rueckmeldung nach jedem statement. Sie haben in Postgres nur
eine DB und koennen nicht weitere anlegen wie in SQLite. Die Daten sind am DB server gespeichert,
nicht im directory Ihres notebooks.
- Big source of CSV data files:
R datasets
- RDF List of countries:
SELECT ?name WHERE {
?x a <http://dbpedia.org/class/yago/WikicatMemberStatesOfTheUnitedNations> .
?x rdfs:label ?name . FILTER (lang(?name) = 'en') . } ORDER BY ?name
- RDF sources for more challenging projects:
References
- C. J. Date, An Introduction to Database Systems, 8th edition, Pearson, 2003.
Other editions are fine as well, used copies are very cheap from online retailers, e.g. paperback 1999.
This one stands out from the large crowd of DB books as it is not tied to a particular software product and
approaches relational DB systems and SQL
critically; Date covers relational theory in great detail and points out weaknesses and bad design
decisions in existing DBMS and SQL, at least from his point of view. Lots of exercises, very interesting read.
Highly recommended, but not at all needed for this lecture; for those who wish to further explore
the relational approach.