How database fundamentals, design, SQL programming and (at HL) alternative databases and data warehouses fit together, which parts are HL only, and how databases link to the rest of the course.
From the subject guide: what you need to know and be able to do.
Designing relational databases, normalising them and querying them with SQL.
Each one has its own page once something is published for it.
Databases explains how organisations store large amounts of structured data so that many people can find it, change it and trust it at the same time. It covers the relational model, the design of a database from an entity–relationship diagram to normalised tables, and Structured Query Language (SQL) for building, querying and updating it; at HL it adds the alternatives to a single relational database.
Any application with user accounts, from a school's records to an online shop, keeps its data in a database. A good design stores each fact once and lets the database management system enforce rules, such as every order belonging to a real customer, so the data stays consistent. A poor design stores facts many times, and every copy that is missed in an update leaves the data contradicting itself.
The subtopics follow the life of a database from idea to use. Subtopic A3.1, Database fundamentals, sets out the relational database: tables of records and fields, primary keys and foreign keys that link tables, integrity rules, concurrent access, and the limitations of the model. Subtopic A3.2, Database design, turns a real situation into that structure through schemas, entity–relationship diagrams, data types and normalisation to third normal form, and weighs when denormalising is worth its cost.

Subtopic A3.3, Database programming, builds and uses the design with SQL: data definition and data manipulation statements, queries that join two tables, grouping, updates and indexes. Subtopic A3.4, Alternative databases and data warehouses, is HL only and goes beyond one relational database: NoSQL, cloud, spatial and in-memory databases, data warehouses for reporting, online analytical processing and data mining, and databases distributed across several sites.
Two subtopics are entirely SL and HL, one is entirely HL, and one contains HL-only statements. HL students study those extra statements inside the SL page on database programming, where each has a heading marked "(HL only)" and opens with an HL box.
Subtopic | Level | HL-only statements inside it |
|---|---|---|
A3.1 Database fundamentals | SL and HL | None |
A3.2 Database design | SL and HL | None |
A3.3 Database programming | SL and HL | A3.3.4: calculations with the aggregate functions |
A3.4 Alternative databases and data warehouses | HL only | The whole subtopic: types of database, data warehouses, OLAP and data mining, distributed databases |
The boundary inside A3.3 falls in the middle of grouping. GROUP BY and HAVING are SL and use COUNT(*) to count the rows in each group; the full set of aggregate functions, and calculations with them, are HL.
Databases connect closely to programming. SQL is a declarative language, unlike the Python and Java of topic B2, and real applications combine the two: a program sends SQL to the database and processes the rows that come back. Objects in topic B3 resemble records, but they hold references and inheritance that tables cannot store directly, so programs need a mapping layer between the two.
The word "normalisation" has a second meaning in subtopic A4.2, Data preprocessing (HL), where it means rescaling numeric features to a common range before machine learning. The two ideas are unrelated. Data mining in subtopic A3.4 uses the same techniques that topic A4, Machine learning, explains, and SQL injection, an HL topic in subtopic A2.4, attacks databases through web forms.
The official decks for this part of the syllabus.
With a free account, Augment remembers where you stopped and what you have practiced.