http://www.inf.unibz.it/~calvanese/teaching/18-19-idb/
Free University of Bozen-Bolzano
Faculty of Computer Science
Bachelor in Computer Science
Home page of the course
Introduction to Databases
A.Y. 2018/2019
News
Course
Description
Objectives. Students attending this course will have acquired the
techniques and methods to address problems of database design, and to make use
of the basic functionalities (definition, update, and querying of the database)
of database management systems in the context of development and deployment of
information systems. In addition, students will be able to develop applications
that programmatically interact with a database management system. The course
explicitly refers to relational databases and to the corresponding database
management systems based on the SQL language. However, the taught methods and
principles are of a more general nature, and can be applied also in those
contexts where data models and database systems different from relational ones
are adopted.
Prerequisites. Students should have a solid mathematical foundation and
be familiar with the basic programming concepts, data structures and
algorithms. These prerequisites are covered in the following courses: Analysis,
Introduction to Programming, Programming Project, and Data Structures and
Algorithms.
Teaching material
- Introduction to Databases (Course Slides).
Diego Calvanese, Giuseppe De Giacomo, Maurizio Lenzerini. 2018.
The slides will be made available during the course and can be downloaded
from the course
page in the OLE system.
- Esercises solved in class.
The exercises will be assigned for the exercise hours, and the solutions
will be made available in the following week on
the course page
in the OLE system.
- Database Management Systems (3rd edition). Raghu Ramakrishnan,
Johannes Gehrke. McGraw-Hill, 2005.
Available at University Library Bozen: 13-Textbook Collection (ST 271).
The textbook is suggested, but not strictly necessary.
For Students Who Have to Take the 8CFU Exam
For students enrolled in the old BSc in Computer Science and Engineering, who
still have to take the 8 CFU Exam for the Database Systems course, the
written exam will include also questions that cover the additional topics for 2
credit points of "Physical Data Storage" (covered in Chapter 6 of
Database System Concepts) and of "Multi-User Synchronization"
(covered in Chapter 10 of Database System Concepts).
The reference textbook for Chapters 6 and 10 is:
Database System Concepts (4th edition).
Silberschatz, Korth, Sudarshan. McGraw Hill, 2002.
Available at University Library Bozen: 13-General Collection (ST 271)
The material for Chapters 6 and 10 is covered at the proper level of detail
necessary for the preparation of the exam also in the slides
that Prof. Sven Helmer used when teaching the Database Systems
course until Academic Year 2017/2018. These slides are not available anymore
on the Web, but students who would like to receive an electronic copy can
contact me via email.
- Office hours
- Teaching assistant: Davide Lanti
- Schedule: The course is taught in the 1st semester: from 15 October
2018 to 16 January 2019.
- Lectures (Lecture Room C3.06):
- Monday 14:00-16:00
- Wednesday 10:00-12:00
- Exercises: Wednesday 14:00-16:00
- A-L: Seminar Room C3.06, Diego Calvanese
- M-Z: Seminar Room E3.20, Davide Lanti
See also the
on-line timetable page for changes.
- Additional teaching material
- Exam dates
- Winter session: Friday, 8/2/2019, 10:00-12:00
- Summer session: Wednesday, 3/7/2019, 10:00-12:00
- Autumn session: Thursday, 26/9/2019, 10:00-12:00
- Rules for the exam
- The final mark will be based on:
- a project [20% of mark], and
- a final written exam [80% of mark].
The final mark is computed as a weighted average of the exam mark
(80%) and the project mark (20%).
- At the written exam, which lasts 2 hours, the student will have to
carry out the design of a small database, following a given
specification. Moreover (s)he will have to write down some SQL
queries, and possibly answer in written form some questions about the
topics covered in the course.
- To be admitted to the written exam (1), the student must have
discussed the project (2), and the project must have been evaluated
positively. In other words, without having passed the project,
the written exam cannot be taken.
- To pass the exam, the student has then to pass also the written exam
(1), in addition to the project (2).
- In case of a positive mark, the project mark will count for
all 3 regular exam sessions of the Academic Year (i.e., if the student
fails or does not take the written exam, (s)he keeps the project mark
and only needs to retake the final exam).
- Rules for the project
- The project can be developed either alone, or in a group of two.
- When the project is developed in a group of two, the numbers given
below as upper bounds should be considered as lower bounds.
- The project is based on the design of a simple database, following a
specification of the requirements that the students provide on their
own, and that needs to be agreed upon with the lecturer/TA.
- Roughly speaking, the specification of the requirements should
satisfy the following criteria:
- It should be based on a domain containing between 6 and 10 main
conceptual entities (i.e., without counting sub-entities that
appear in ISAs or generalizations).
- There should be some structure in the set of entities, i.e., the
ER schema should in addition contain a few ISAs and/or
generalizations.
- There should be sufficient structure in the relationships, which
usually means that the representation of the ER schema as a graph
(where the nodes are given by the entities and relationships, and
the edges are given by the participation of entities in
relationships) should contain some cycles.
- The schema should contain cardinality constraints on the
participation of entities to relationships that are different from
the default (0,n).
- The schema should contain some optional and/or multi-valued
attributes.
- There should be some external constraints, that cannot be
represented in the ER model.
- The specification should include an indication about the volumes
for the various entities and relationships (pay attention to the
coherence between the volumes and the cardinality constraints of
the ER schema).
- The specification should include a workload of the most common
queries and operations (between 5 and 10) that are of interest in
the modeled domain, with an indication of their frequency.
- The student should carry out the design of the database according to
the requirements, following the methodology presented in the course,
and consisting of the following phases:
- Conceptual design, producing the following documents:
- structured and organized requirements;
- glossary of terms (typically optional, but required for this
project);
- diagram of the conceptual schema;
- data dictionary of the conceptual schema (listing the
entities, relationships, and external constraints - the data
dictionary for the attributes can be omitted);
- table of volumes and table of operations according to the
foreseen application load.
- Restructuring of the conceptual schema, producing the
restructured conceptual schema (diagram and data dictionary), the
corresponding table of volumes, and the access tables to assess the
cost of the various operations.
- Direct translation to the relational model, producing the
relational schema with external constraints and the specification
of the application load in terms of the relational schema.
- Restructuring of the relational schema taking into account
the application load, producing the restructured relational schema
with external constraints and the specification of the application
load in terms of the restructured relational schema. The reasons
for the restructuring steps on the relational schema should be
stated explicitly, by referring to the operations and the
corresponding access tables.
- Specification of the database in SQL, by defining
relations with suitable constraints (capturing keys, foreign keys,
and tuple constraints) and stored procedures with triggers to
implement additional constraints (inclusions, external
constraints).
- The student should also develop a simple application (typically in
Java) that implements some interaction with the database via a textual
or graphical user interface.
The application should:
- allow the user to answer the queries that are part of the
workload (typically by instantiating some parameters with values
provided as input);
- allow the user to perform some basic insertions and/or updates of
(some of) the data in the database, asking the user for input;
- catch the exceptions that might be generated by JDBC due to
possible mistakes in the interaction with the database, so that the
application does not terminate prematurely with an error.
- The documentation produced for the project should include:
- a single pdf file containing a textual description of the
requirements (of roughly a page) and the documents for phases 1-4
above.
Remember to include at the beginning of the pdf file a header
or a title page with your name, student number, the title of your
project, and the date.
Remember also to number the pages of the pdf file (the page
numbers are important for the evaluation, so that we can refer to
them for comments);
- one or more SQL files containing the specification of the
database (phase 5 above);
- one or more files (typically in Java) containing the application
that interacts with the database. The functionality of the
application will be reviewed when the students discuss their
project.
- All documents have to be bundled in a single ZIP file and have to be
uploaded to OLE within the "Database Design Project" assignment.
- The deadline for submitting the project is, unless announced
otherwise, at 23:55 two days before the day set for the discussion of
the projects.
- Rules for the project discussion
- The discussion of the IDB projects typically takes place one or two
days before the date set for the written exam, and will be announced on
OLE before each exam session.
- One or two days before the project discussion, we will post in OLE
and on the course web page a schedule that assigns a specific time to
the discussion of each project. Specifically, the discussion of the
projects will be scheduled in the order in which they have been
submitted to OLE (considering the last modification time), where
projects submitted first will be discussed first. The discussion of
each project will last between 15 and 20 minutes.
- Students should bring to the discussion a printout of (at least) the
following parts of the project documentation:
- the requirements,
- the conceptual schema (diagram and constraints),
- the restructured conceptual schema (diagram and constraints),
- the relational schema (with constraints) resulting from the
direct translation,
- the restuctured relational schema (with constraints).
The remaining documentation can be consulted from the pdf file, and
does not need to be printed out.
- It is preferred if the sheets of paper with the documentation above
are not bound but are kept loose, since this facilitates the assessment
of the correctness of the various design phases. To avoid confusion,
please don't forget to number the pages.
- Students should also bring a laptop with a functioning version of the
application they have developed for the project, so that we can verify
its funtionality during the project discussion.
teaching page of Diego Calvanese
Last modified:
Thursday, 26-Sep-2019 18:34:50 CEST