Databases: Modeling and Theory
This course is one of five self-paced courses on the topic of Databases, originating as one of Stanford's three inaugural massive open online courses released in the fall of 2011. The original "Databases" courses are now all available on edx.org.
This course covers underlying principles and design considerations related to databases; it can be taken either before or after taking other courses in the Databases series.
- The Relational Algebra section of this course teaches the algebraic query language that provides the formal foundations of SQL.
- The Relational Design Theory section of the course provides comprehensive coverage of dependency theory and normal forms in relational databases, a well-accepted theoretical framework for developing good relational database schemas.
- The Unified Modeling Language section of this course introduces the data-modeling component of UML, and describes how UML diagrams are translated to relational database schemas.
The introductory videos in this course are the same as the introductory videos in Databases: Relational Databases and SQL ; they are included for the benefit of learners who have not taken Databases: Relational Databases and SQL.

Meet your instructors
Pursue a Verified Certificate to highlight the knowledge and skills you gain$50 USD
Official and Verified
Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects
Easily Shareable
Add the certificate to your CV or resume, or post it directly on LinkedIn
Proven Motivator
Give yourself an additional incentive to complete the course
Support our Mission
edX, a non-profit, relies on verified certificates to help fund free education for everyone globally
Frequently asked questions
How long will it take to go through the course material?
All courses in the Databases series are self-paced and include videos, quizzes, and/or exercises. The courses vary considerably in length and complexity, and some students work faster than others, so we're not able to predict an individual time commitment.
What background do I need?
The series of courses does not assume prior knowledge of any specific topics, however a solid computer science foundation -- a reasonable amount of programming, as well as knowledge of basic computer science theory -- will make the material more accessible.
Do I need to buy a textbook?
Detailed lecture notes are provided. Having a textbook in addition to the notes is not necessary, but you might want to purchase one for reference, to reinforce the core material, and as a source of additional exercises. Suggested textbooks and readings are listed as part of the materials.