IT-Universitetet i København
  Tilbage Kursusoversigt
Kursusnavn (dansk):Building Database Systems 
Kursusnavn (engelsk):Building Database Systems 
Semester:Efterår 2010 
Udbydes, softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Min. antal deltagere:
Forventet antal deltagere:45 
Maks. antal deltagere:65 
Formelle forudsætninger:This course assumes basic computer science background. It requires that the participants have taken the introductory programming courses and the modeling course for the Software Development and Technology study programme.
Læringsmål:After the course students should be able to:

  • dimension a database system with back of the envelope calculations

  • analyze the design of existing database systems

  • identify the source of complexity in a given system

  • identify the bottlenecks of a system running on a multicore computer

  • design a database component, based on core system design principles, in order to achieve given performance reqiurements

Fagligt indhold:Database systems are the foundation of many computer and web applications today. They are a commodity at the bottom of the software stack together with the operating system (including networking subsystem, IO subsystem, file system). This class digs into the principles that underly the design of such systems. This is important for two reasons. First, the database systems of tomorrow will likely be quite different from the database systems from today (which are pretty much the database systems of the 80s) -- this is because of the radical evolution of the underlying hardware and the emergence of flash technology, multicore processors and FPGAs. It is crucial to understand the underlying principles that drive the design of database systems to keep up with this evolution. Second, energy consumption is becoming the factor that dominates the total cost of ownership of any computer system. If each layer in the software stack is totally agnostic to the underlying layers, this leads to compound energy inefficiency (e.g., if a database server ignores the characteristic of the underlying IO subsystem).

We will cover topics on the engineering of computer software systems in general, and database systems in particular. We will start with a short overview of the core hardware abstractions in a computer system. We will then thoroughly cover the concept of system, the sources of complexity in computer systems, and the means to deal with them. We will then dig into the three key abstractions of computer systems (memory, processor, network) and into the central notions of naming and modularity (both client-server and virtualization). Throughout this first part, we will illustrate these concepts with examples and exercises related to database systems.
The second part of the course will be devoted to case studies (MySQL and Shore-MT) with the following three weeks devoted to a design project.
In the third part of the course, we will focus on security and how to avoid the exploitation of database systems.
Note that this class is about design not programming. This being said, you will need programming skills (regardless of the programming languages that you know) to detail your design all the way down to pseudo-code. 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

Information about study structure

This course is part of the SDT specialization Databases- find it described here:
SDT specializations

See the schedule here:
link to the time table
The schedule will be available shortly before the beginning of the term.

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

Weekly individual assignments, must be approved to qualify for the exam (6 out of 8).  

Litteratur udover forskningsartikler:Main course textbook:
Jerome H. Saltzer and M. Frans Kaashoek, Principles of Computer System Design: An Introduction, Morgan Kaufmann, 2009.

Additional books (not required):

  • The Design of Design: Essays from a Computer Scientist. Fred Brooks, 2010

  • Computer Organization and Design, Fourth Edition: The Hardware/Software Interface: The Hardware/software Interface, Patterson and Hennessy, 2008

  • The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation and Modelling. Ravi Jain, 1991

  • Transaction Processing: Concepts and Techniques (The Morgan Kaufmann Series in Data Management Systems). Jim Gray and Andreas Reuter. 1992.

Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
Onsdag 08.30-10.30 Forelæsning ITU Aud 4
Onsdag 10.45-12.45 Øvelser ITU Aud 4

Eksamen afholdes på følgende tid og sted:
2010-12-15 No later than 3 PM Skriftlige arbejder ITU The Examination Office
2011-01-18 Please contact the course manager Mundtlig eksamen ITU 4A30
2011-01-19 Please contact the course manager Mundtlig eksamen ITU 4A30
2011-03-10 Re-eksamen - Please contact the course manager Mundtlig eksamen ITU 4A30