Section 1: Lab: Database Systems and DBMSs Today
- What a database is, and why use a DBMS rather than storing data in files
- Relational databases compared with document, key-value and vector databases
- Popular DBMSs today: PostgreSQL, MySQL, MariaDB, SQL Server and cloud services
- Design stages: conceptual, logical and physical
- Lab: run PostgreSQL 18 with Docker and connect with DBeaver
Section 2: Lab: The Relational Model, Keys and Data Integrity
- Relations, tuples, attributes and domains, and the terms used in practice
- Candidate, primary, natural, surrogate and foreign keys
- Entity integrity, referential integrity, domain integrity and what NULL means
- SQL statement groups: DDL, DML and DCL
- Lab: try inserting data that breaks the rules and see how the database prevents it
Section 3: Workshop: Requirements and Business Rules
- Gather requirements from users, documents, forms and existing reports
- Write clear business rules, such as one customer can place many orders
- Find nouns as entities and verbs as relationships
- Build a data glossary so everyone uses the same terms
- Workshop: analyse a training registration system from real forms
Section 4: Lab: Drawing ER Diagrams
- Entities, and composite, multivalued and derived attributes
- Relationships, cardinality and optionality: one-to-one, one-to-many and many-to-many
- Crow's Foot notation compared with Chen notation, and reading the lines
- Weak entities and identifying relationships
- Lab: draw the training registration ER diagram in draw.io
Section 5: Lab: ER Patterns Common in Real Systems
- Associative entities for many-to-many relationships that carry their own data
- Recursive relationships, such as employees and managers, or nested categories
- Supertypes and subtypes, such as individual and corporate customers
- Keeping history and data that changes over time, such as product prices and order status
- Lab: extend the ER diagram for promotions, price history and company contacts