Code

ΠΠΣ-183

Semester

1st

ECTS

7,5

E-Services

Category

Obligatory

Objective

The main objective of the course is to enable students learn modern data management techniques for relational and non-relational databases.

Topics taught include the relational data model, the extended entity – relationship model, database design and implementation, the SQL language, physical storage and query processing and optimization.

Emphasis is placed on understanding modern data management systems and on developing database applications in modern software platforms.

Distributed and parallel databases and modern non-relational systems for high performance and scalability are also discussed.

Through this course, students are expected to acquire significant technical skills in large-scale data management and to learn how to design and implement applications that manage massive amounts of structured, semi-structured and unstructured data.

After successfully completing the course, students will be able to:

  • analyze a database design problem and gather requirements for implementing the database system
  • design a database at a conceptual and logical level and create appropriate data models
  • design and implement databases based on normalization rules
  • know and use the appropriate tools for the design and implementation of a relational database
  • implement SQL queries to define and manage databases
  • design and implement a non-relational database
  • evaluate and select the most appropriate data management system for a specific problem

Learning outcomes

  • Search for, analysis and synthesis of data and information, with the use of the necessary technology
  • Adapting to new situations
  • Decision-making
  • Working independently
  • Production of new research ideas
  • Project planning and management
  • Criticism and self-criticism
  • Working in an interdisciplinary environment

Syllabus

  • Database management systems

    Introduction to database management systems (DBMS). DBMS abstraction levels. DBMS structure.

  • Relational database design

    Relational data model. Normalization. Entity-Relationship (ER) model. Approach, entities, relationships, attributes. Key, participation and integrity constraints. Data requirements specification. Conceptual, logical and physical DB design. ER to Relational model transformation.

  • The SQL language

    Syntax. Types of SQL queries. Nested SQL queries. Aggregation operators. Triggers. Stored procedures.

  • DB Application development

    Access to DB from apps. Application independence. JDBC driver. DB application development.

  • Indexes and optimization

    Physical storage. File organization on disk. Indexing methods. The B+Tree. Processing of relational operators. Optimization.

  • Non-relational databases

    Motivation for non-relational databases (NoSQL). Comparison with relational databases. ACID properties. BASE properties. Eventual consistency. Key-value pair stores (REDIS). Document stores (MongoDB). Wide-column stores (Google’s BigTable, HBase, Cassandra). Graph Data Storage (OrientDB).

  • Document-oriented database development

    Modeling and storing data in the form of documents. Document structure design. Denormalization to improve processing performance of complex requests.

  • The non-relational database MongoDB

    Introducing MongoDB. Architecture of MongoDB. Commands/syntax in MongoDB. Functions supported by MongoDB.

  • The non-relational database ElasticSearch

    Unstructured data management. Challenges related to text management. Text indexing and search. Ranking. Weighting of terms. The vector space model. The ElasticSearch system.

  • Principles of distributed and parallel data management

    Row-based and column-based storage. Local and global indexes. Data partitioning techniques. Distributed query processing. Query optimization. Load balancing.

Bibliography