Skip to content

Database Systems

Database Systems

Database systems provide mechanisms for the structured storage, retrieval, and management of data. The relational model, introduced by E.F. Codd, organises data into tables (relations) with well-defined schemas, enabling data integrity and efficient querying through structured query language (SQL). Understanding database design principles is essential for building systems that manage large volumes of data reliably.

Key Concepts

Normalisation is the process of decomposing relations to eliminate redundancy and update anomalies, progressing through normal forms from 1NF to BCNF and beyond. Indexing accelerates query processing by providing efficient access paths to data, analogous to an index in a textbook. Transaction management ensures that concurrent operations preserve data consistency through the ACID properties: atomicity, consistency, isolation, and durability.

Contents

  1. Introduction to Database Systems
  2. Relational Model
  3. SQL
  4. Normalisation
  5. Indexing
  6. Transaction Management
  7. Query Optimisation
  8. NoSQL Overview
  9. Distributed Databases
  10. Problem Set
  11. Further Reading

Overview

University-level database systems notes covering relational model, SQL, normalisation, and transactions.

Topics Covered

  • Relational Model: Tables, schemas, keys, integrity constraints
  • SQL: Queries, joins, subqueries, aggregation, views
  • Normalisation: Functional dependencies, normal forms (1NF-BCNF)
  • Transactions: ACID properties, concurrency control, recovery

Prerequisites

  • Basic programming experience
  • Discrete mathematics (relations, functions)
  • Understanding of file systems

How to Use These Notes

Start with the relational model to understand the foundations, then progress to SQL and normalisation. Each section includes worked examples and practice problems.

Use the sidebar to browse topics, or start with the introductory pages linked from the sidebar.

Additional Resources

Each section includes:

  • Detailed explanations of key concepts
  • Worked examples with step-by-step solutions
  • Practice problems with answers
  • Common pitfalls and how to avoid them
  • Connections to other areas of computer science

Study Tips

  1. Master the relational model: Understand tables, keys, and constraints before SQL
  2. Practice SQL: Write queries regularly to build proficiency
  3. Learn normalisation: Practice decomposing relations and checking normal forms
  4. Understand transactions: Know how ACID properties ensure data integrity
  5. Connect to applications: Relate database concepts to real-world systems