Database Management Systems
Databases began as a simple application in early 70s and grew to one of the most important fields in computer industry, touching hundreds of ΙΤ applications. This outcome was somehow expected, since the focus of database research is the description, storage and usage of data. To describe a database application we need a data model, such as the entity-relationship or the relational model. To retrieve and make use of the stored data, we need a generic query language, such as SQL. Finally, there are numerous ways to store data, depending on how this will be used. The goal of this course is to educate students on how to design properly, build efficiently and use intelligently a database. Furthermore, it should make apparent the various trade-offs that exist in designing, building and using such an application.
The course contents include:
- Introduction: Purpose, data models, database languages, users, transactions, architecture.
- Entity-Relationship Model: Entities, relationships, attributes, keys, mapping cardinalities, weak entities, E-R diagrams, mapping to tables, examples.
- Relational Model: Relations, relational schema, relational algebra.
- The SQL Language: Basic structure, nested subqueries, aggregation, views, update, procedural and embedded SQL, triggers.
- Relational Design: Integrity constraints, functional dependencies, decomposition, normalization.
- Storing and Indexing: File organization, indexing, hashing, trees.
- Special Topics: Data warehousing, OLAP, data mining, data streams, OO DBs.