Moderne Databases

Modern Databases

6 EC

Semester 2, periode 4

5062MODA6Y

Eigenaar Bachelor Informatica
Coördinator dr. Leen Torenvliet
Onderdeel van Bachelor Informatica, jaar 3

Studiewijzer 2017/2018

Globale inhoud

Lange tijd hebben relationele databases het gebied gedomineerd. Sinds de opkomst van de cloud en big-data zijn databases groter en meer gedistribueerd geworden, mede hierdoor hebben andere ideeën over dataopslag en data-access veel terrein gewonnen. De alternatieven worden ook wel NoSQL of moderne databases genoemd. In dit college maken de studenten kennis met een aantal voorbeelden van deze moderne databases.

We beginnen in de eerste week met een klassieke relationele database, te weten PostgreSQL en behandelen aan de hand daarvan een aantal concepten die niet eerder in de studie aandacht hebben gekregen. In het bijzonder besteden we aandacht aan transactiemanagement en serializability van gedistribueerde processen, omdat die later een belangrijke rol gaan spelen. In de volgende drie weken besteden we aandacht aan CouchDB als voorbeeld van een document database, RIAK als voorbeeld van een Key-Value database, en Neo4J als voorbeeld van een graph-database.
De laatste drie weken worden in projectvorm besteed. In dit project gaan studenten zelf een document store implementeren.


Studiemateriaal

Syllabus

  • Een syllabus geschreven door Stephan van Schaik, Leen Torenvliet en Robin de Vries is beschikbaar

Practicummateriaal

  • In de syllabus komen stukjes code voor. Deze stukjes code zijn *ook* als textfiles beschikbaar via de webpagina van de cursus.

Software

  • Werkende versies van de verschillende databases zijn downloadbaar van het internet.

Overig

  • Op de (eigen) laptop moeten databaseomgevingen geinstalleerd worden. Daarbij wordt tevens verwacht dat "ruwe" data van het internet geladen wordt en in het juiste formaat wordt gebracht. Hiervoor is, aangezien de bestanden soms vrij groot zijn, een goede internetverbinding nodig. Anders zal de student aanzienlijke tijd op de faculteit aanwezig zijn om de aansluiting aldaar te gebruiken.

Leerdoelen

Kennismaking met NoSQL database concepten. Aan het eind van het vak kan de student omgaan met diverse moderne databaseconcepten, die databases installeren, bevragen en onderhouden.

Onderwijsvormen

  • Hoorcollege
  • Zelfstudie
  • Zelfstandig werken aan bijv. project/scriptie

Hoorcollege, practicum en project

Verdeling leeractiviteiten

Activiteit

Aantal uur

Hoorcollege

16

Vragenuur

14

Zelfstudie

40

Zelfstudie

98

Academische vaardigheden

De student wordt geacht van haar activiteiten verslag te doen in de vorm van een kort rapport, zoals dat is geleerd bij Academische Vaardigheden. Het verslag heeft het karakter van het verslag van een experiment. Deze rapporten worden zowel op inhoud als op vorm beoordeeld.

Aanwezigheid

Aanwezigheidseisen opleiding (OER-B):

  • Voor practica en werkgroepbijeenkomsten met opdrachten geldt een aanwezigheidsplicht. Wanneer studenten niet voldoen aan deze aanwezigheidsplicht kan dit als gevolg hebben dat het onderdeel niet met een voldoende kan worden afgerond.

Aanvullende eisen voor dit vak:

Er zijn geen bijeenkomsten waarvoor aanwezigheid van de student verplicht is. Haar aanwezigheid wordt uiteraard wel op prijs gesteld. De practicumdocenten zijn bereikbaar via email voor vragen. Er is ook een wekelijks vragenuurtje ingeroosterd waar de student meer details in persoon aan de practicumdocent kan voorleggen. Voor aanwezigheid hier dient vooraf een afspraak met de practicumdocent gemaakt te worden, zodat enige raming betreffende de hoeveelheid tijd gemaakt kan worden.

Toetsing

Onderdeel en weging Details

Eindcijfer

Elk wekelijks rapport wordt beoordeeld met een cijfer tussen 1 en 10 (inclusief). De eerste vier rapporten zijn individueel, de laatste 4 rapporten vormen onderdeel van het project, waaraan studenten in paren werken. Paren studenten krijgen een gezamenlijk cijfer voor deze rapporten. Het eindcijfer is het gewone gemiddelde van de 8 resultaten.

Opdrachten

Onderstaande opdrachten komen aan bod in deze cursus:

  •    Postgress : De student installeert een implementatie van een postgressdatabase op de (eigen) computer en voert hiermee een aantal opdrachten uit. In het rapport komen tevens antwoorden op een aantal opgaven over transacties en locking.
  •    CouchDB : De student installeert een implementatie van CouchDB op de computer alsmede een CouchDB voorbeelddatabase. Op de voorbeelddatabase worden enige queries verricht.
  •    Neo4J:.De student installeert een implementatie van CouchDB op de computer alsmede een CouchDB voorbeelddatabase. Op de voorbeelddatabase worden enige queries verricht.
  • RIAK:De student installeert een implementatie van RIAK op de computer alsmede een RIAK voorbeelddatabase. Op de voorbeelddatabase worden enige queries verricht. De database uit opdracht 1 komt hier terug.
  • Document Store: De student implementeert een documentstore op de computer waarbij ook een implementatie van een indexstructuur (B-Boom) geprogrammeerd wordt. De twee onderdelen van dit werk worden apart gerapporteerd.
  • REST Interface: Op de in de vorige week gebouwde documentstore wordt een REST interface gebouwd.
  • Distributed Hash Tables: De student maakt een impementatie van distributed hash tables (i.h.b. Chord) en beantwoordt in het rapport tevens een aantal vragen.

 

Fraude en plagiaat

Over het algemeen geldt dat elke uitwerking die je inlevert ter verkrijging van een beoordeling voor een vak je eigen werk moet zijn, tenzij samenwerken expliciet door de docent is toegestaan. Het inzien of kopiëren van andermans werk (zelfs als je dat hebt gevonden bij de printer, in een openstaande directory of op een onbeheerde computer) of materiaal overnemen uit een boek, tijdschrift, website, code repository of een andere bron - ook al is het gedeeltelijk - en inleveren alsof het je eigen werk is, is plagiaat.

We juichen toe dat je het cursusmateriaal en de opdrachten met medestudenten bespreekt om het beter te begrijpen. Je mag bronnen op het web raadplegen om meer te weten te komen over het onderwerp en om technische problemen op te lossen, maar niet voor regelrechte antwoorden op opgaven. Als in een uitwerking gebruik is gemaakt van externe bronnen zonder dat een bronvermelding is vermeld (bijvoorbeeld in de rapportage of in commentaar in de code), dan kan dat worden beschouwd als plagiaat.

Deze regels zijn er om alle studenten een eerlijke en optimale leeromgeving aan te kunnen bieden. De verleiding kan groot zijn om te plagiëren als de deadline voor een opdracht nadert, maar doe het niet. Elke vorm van plagiaat wordt bestraft. Als een student ernstige fraude heeft gepleegd, kan dat leiden tot het uitschrijven uit de Universiteit. Zie voor meer informatie over het fraude- en plagiaatreglement van de Universiteit van Amsterdam: www.uva.nl/plagiaat

Weekplanning

Weeknummer Onderwerpen Studiestof
1 Postgresql en transactie management (locking) syllabus
2 Document databases en CouchDB, Acid vs Base, Map Reduce, CAP syllabus
3 Neo4J, Graph databases, Chord, Kademlia, Vector Clocks syllabus
4 RIAK en distributed hash tables B-trees. syllabus
5 project  
6 project  
7 project  
8 uitloop en cijfer  

Rooster

Het rooster van dit vak is in te zien op DataNose.

Aanvullende informatie

Aanbevolen voorkennis: Enige kennis van SQL database talen (bijvoorbeeld MySQL) is gewenst.

Contactinformatie

Coördinator

  • dr. Leen Torenvliet