CENG 465

Principles of Data-Intensive Systems

The main aim of this course is to familiarize students with fundamental ideas behind a broad variety of data systems. The students will be able to compare diverse approaches, techniques, and tools for storing and processing data so that they can discuss the strengths and weaknesses of each and decide the most suitable one for their applications.

Data models and query languages; storage and retrieval; replication and partitioning in distributed data; transactions; challenges of distributed systems, consistency, and consensus in distributed systems; batch and stream processing.

Introduction to Data-Intensive Systems
Data Models and Query Languages
Data Models and Query Languages
Data Storage and Retrieval
Data Encoding
Distributed Data Partitioning
Distributed Data Partitioning
Transactions in Single-Node and Distributed Databases
Transactions in Single-Node and Distributed Databases
Challenges of Distributed Systems
Fault-Tolerant Distributed Systems
Batch Processing
Stream Processing
The Future of Data Systems