Index / 001 EN

Computer Science

Computer Science

Database Design

Adrienne Watt; Nelson Eng

A free introductory database design text on relational modeling, constraints, functional dependencies, normalization and practical SQL.

Prerequisites: Basic computer literacy and comfort with tables and logical rules. A programming course is helpful but not essential for beginning the modelling chapters; no prior database course is assumed.

Difficulty Level
Beginner
Academic Level
Undergraduate
database designrelational modellingSQL

01 / Reading Guide

Reading Guide

Relational databases: choose a book and audit the result grain

Compare database design, systems and theory texts; use original SQL cases to distinguish keys, missing values, empty matches and join multiplicity.

Study route and exercise: University Reading List editorial project.

Who this book is for

For students taking a first database design course and readers planning a small relational database. The book helps turn an informal description of an organization into entities, relationships, constraints and queries. It suits learners who need to understand why a database has a particular structure before relying on a graphical tool or copying an existing schema.

Prerequisites

Basic computer literacy and comfort with tables and logical rules. A programming course is helpful but not essential for beginning the modelling chapters; no prior database course is assumed.

What it covers

The chapters move from database concepts and data models to relational and entity-relationship modelling, integrity constraints, functional dependencies and normalization. The development process and database users provide context for the technical choices. SQL chapters and appendices supply practice with data definition, manipulation and complete modelling examples.

How to use it

Choose a small scenario and write its business rules in ordinary language before drawing an entity-relationship diagram. Identify keys and cardinalities, then test the design with awkward cases such as a missing relationship or repeated event. Work through functional dependencies and explain which update anomaly each normalization step removes. Implement a few tables and queries, checking both expected results and constraint violations. Keep conceptual modelling decisions separate from features specific to a database product.

Edition and sources

BCcampus provides the complete second edition, published October 2014 under CC BY 4.0 except where noted. Watt is the primary author and Eng a contributing author. SQL syntax and software interfaces may need small adjustments for current database systems; no unverified format-specific ISBN is imported.

Open the official resource

Edition and learning check

BCcampus provides the 2014 second edition in web and downloadable formats. Its contents support a sequence from relational modeling and constraints to functional dependencies, normalization and SQL; publication age does not specify the behavior of every current SQL engine. Before querying, mark keys and decide whether an absent booking differs from a booking whose seat count is unknown. When testing aggregates, consult the named engine’s documentation for NULL handling and record its version. A small in-memory table is enough for this check; no organizational data is needed.

Source checked (2026-11-04).