Basic Info
 Lecture Notes

Welcome to CS186, a hands-on introduction to Database Systems: their internal architecture, algorithms and data structures, theoretical underpinnings, and use.  Topics include:

  • Engine Technology for Large Data Sets: disk layout, indexing, search and query processing algorithms, query optimization, transactional concurrency control, logging and recovery.
  • Data Models and Languages: The Relational model of data, formal relational languages (relational algebra and calculus), and the SQL language.  Text and web search models and implementation, including Boolean search and ranking.  Extensions to the relational model including object-relational features, XML and associated query languages.
  • Database Design: Entity-Relationship modeling, logical relational schema design, physical design, functional dependencies and normalization, and database tuning.
  • Database application development: Application-level database APIs including host-languages embeddings library interfaces like JDBC, and web script interfaces like PHP.
Work for the course includes team-oriented programming projects based on extensions to the PostgreSQL open-source database system, originally developed right here at Berkeley and now used worldwide.