Introduction to database systems
CS-322 / 4 credits
Teacher(s): Koch Christoph, Anadiotis Angelos Christos
Language: English
Remark: This course will be last given in spring 2023
Summary
This course provides a deep understanding of the concepts behind data management systems. It covers fundamental data management topics such as system architecture, data models, query processing and optimization, database design, storage organization, and transaction management.
Content
This course provides a deep understanding of the concepts behind data management systems.
During this course, the students will learn about:
- The Entity-relationship and Relational Models
- Relational Algebra and Calculus
- The SQL Query Language
- Traditional and Modern Data Storage, File Organizations, and Indexing
- Hashing and Sorting
- Query Evaluation and Relational Operators
- Query Optimization
- Schema Refinement
- Transaction Management (Concurrency Control and Recovery)
Homework
Homeworks will be assigned to aid and assess comprehension of the above material. Homework will be either done using pen and paper or they will be programming exercises. During the semester the students will be asked to do a project to gain experience on how to build a database application, and to apply what they learn in class.
Keywords
databases, database design, data modeling, normalization, database management systems (DBMS), files, indexes, storage, external sorting, queries, query evaluation, query optimization, transactions, concurrency, recovery, SQL
Learning Prerequisites
Required courses
Data structures
Recommended courses
For the practical part of the course (project) the following skills will be needed:
- System oriented programming, with focus on scripting languages to enhance the parsing process of raw data.
- Building user interfaces, either web (e.g., PHP, JSP, ASP, ...) or application GUI (e.g., java).
Important concepts to start the course
Before the beginning of the course students must be familiar with:
- Data structures
- Algorithms concepts
Learning Outcomes
By the end of the course, the student must be able to:
- Express application information requirements
- Use a relational DBMS
- Create a database on a relational DBMS
- Design a database with a practical application in mind
- Model the data of an application using ER and relational modeling
- Explore how a DBMS performs its work
- Report performance and possible optimizations for applications using DBMS
- Justify design and implementation choices
Transversal skills
- Assess progress against the plan, and adapt the plan as appropriate.
- Evaluate one's own performance in the team, receive and respond appropriately to feedback.
- Write a scientific or technical report.
- Make an oral presentation.
Teaching methods
Ex cathedra; including exercises in class, practice with pen and paper or with a computer, and a project
Expected student activities
During the semester, the students are expected to:
- attend the lectures in order to ask questions and interact with the professor,
- attend the exercises session to solve and discuss exercises abou the recently taught material,
- work on a project during the semester which covers the practical side of building an application using a database system,
- take a midterm
- take a final exam
Assessment methods
Homework, project, written examinations and continuous control.
Resources
Bibliography
Slides, list of books, additional material (research articles), all indicated and/or available on moodle page.
Ressources en bibliothèque
Notes/Handbook
The slides that are used in the class are available for the students.
In the programs
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Introduction to database systems
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 1 Hour(s) per week x 14 weeks
- Project: 1 Hour(s) per week x 14 weeks