IN2106 Master Practical Course: Database Systems

The course will be held in English if there is one student who does not know German. The slides hoewever will still be mostly in German.

The practical course on database systems consists of a meeting of 2 hours every week. Here we present the basics that are necessary to process the weekly assignments. Students work in teams of two for the assignments and in teams of six for the final project of a web application. It is expected that you handle every assignment successfully; there will be about ten assignments including the final project. In addition you prepare an extensive E/R-model, prepare and present an integrated E/R-model in a team, and present a UML model also in a team. At the end there will the presentation of your web application project. There is a small mid term and a small final which assures that the single members of the teams all have worked properly in the course.

The lab course is 6 SWS, which corresponds in this case to 10 ECTS credits.

The learning targets for the lab course are the following:

  1. Modelling and Database Design
  2. SQL as a Data Definition, Data Manipulation, und Authorisation Language
  3. Programming in Java with Database Access via JDBC,
  4. Connecting to Databases via the Internet
  5. Modelling and Implementing a Database Application

Moreover we also proceed more general objectives like e.g. estimating the pro and cons of the applied methods (like E/R, SQL, or JSP), the ability to cooperate, your intellectual curiosity and creativity, the capability to discuss and criticize, a responsible handling in professional life, and the capability to present and visualize complex facts.

The learning targets mentioned above shall be achieved by processing the weekly assignments, attending the weekly meeting, as well as presenting and discussing the developed database design (at the moment for a scenario for olympic games).

In the weekly meetings we will at first deal with entity/relationship modelling, discuss 'good' and 'bad' examples, then deal with the integration of E/R-designs, the transformation to a relational model and its optimization. Afterwards it's about database administration (registering users with different rights) and database definition language (DDL), especially creating and deleting relations, indexes, and constraints. Then we deal with database manipulation language (DML), especially queries, subqueries, null values, updating (inserting, deleting) tupels, with meta data (catalogs) and with views.

For programming complex database applications we use Java with a connection to the database via JDBC. We program transactions at different isolation levels and use Java servlets and Java server pages to connect to databases via the web. We also deal with aspects of database tuning, synchronisation, and recovery.

In the weekly assignments we practice the above described matters, especially modelling a part of a complex application, integrating different parts to a complete model, construction of a database and querying and updating it including meta data, views, indexes, constraints, triggers, and user defined types and functions. At the end you will program complex applications with Java, JDBC, and JSP using the MVC pattern.

We use the commercial object-relational database management system DB2, currently V9 from IBM.