Skip to main content

Introduction to Databases - Self Paced Series


About This Set of Courses

"Databases" was one of Stanford's three inaugural massive open online courses in the fall of 2011; it was offered again in MOOC format in 2013 and 2014. The course is now being offered as a set of smaller self-paced "mini-courses", which can be assembled in a variety of ways to learn about different aspects of databases. All of the mini-courses are based around video lectures and/or video demos. Many of them include in-video quizzes to check understanding, in-depth standalone quizzes, and/or a variety of automatically-checked interactive programming exercises. Each mini-course also includes a discussion forum and pointers to readings and resources. Individual mini-courses can be accessed by selecting the title from the dropdown list above. The mini-courses are described briefly below, along with suggested pathways through them. Taught by Professor Jennifer Widom, the overall curriculum draws from Stanford's popular Databases course.

Why Learn About Databases

Databases are incredibly prevalent -- they underlie technology used by most people every day if not every hour. Databases reside behind a huge fraction of websites; they're a crucial component of telecommunications systems, banking systems, video games, and just about any other software system or electronic device that maintains some amount of persistent information. In addition to persistence, database systems provide a number of other properties that make them exceptionally useful and convenient: reliability, efficiency, scalability, concurrency control, data abstractions, and high-level query languages. Databases are so ubiquitous and important that computer science graduates frequently cite their database class as the one most useful to them in their industry or graduate-school careers.

Mini-Course Pathways

The following are a number of suggested pathways through the mini-courses, depending on the topics and depth desired. Of course you are welcome to mix and match the mini-courses any way you like!

Practical Relational Databases and SQL

Basic: Introduction and Relational Databases, SQL
Extended version add: Indexes and Transactions, Constraints and Triggers, Views and Authorization
Comprehensive version also add: On-Line Analytical Processing, Recursion in SQL

Practical Relational Databases and SQL with UML Design

Basic: Introduction and Relational Databases, Unified Modeling Language (UML), SQL
Extended version add: Indexes and Transactions, Constraints and Triggers, Views and Authorization
Comprehensive version also add: On-Line Analytical Processing, Recursion in SQL

Relational Databases and SQL: Foundations and Practice

Basic: Introduction and Relational Databases, Relational Algebra, SQL, Relational Design Theory, Unified Modeling Language (UML)
Extended version add: Indexes and Transactions, Constraints and Triggers, Views and Authorization
Comprehensive version also add: On-Line Analytical Processing, Recursion in SQL

Semistructured Data

Basic: XML Data, JSON Data
With querying add: XPath and XQuery
With querying, comprehensive version add: XSLT

Full Database Course

All mini-courses

Course Staff

Jennifer Widom

Jennifer Widom is the Fletcher Jones Professor and Chair of the Computer Science Department at Stanford University. She received her Bachelors degree from the Indiana University School of Music in 1982 and her Computer Science Ph.D. from Cornell University in 1987. She was a Research Staff Member at the IBM Almaden Research Center before joining the Stanford faculty in 1993. Her research interests span many aspects of nontraditional data management. She is an ACM Fellow and a member of the National Academy of Engineering and the American Academy of Arts & Sciences; she received the ACM SIGMOD Edgar F. Codd Innovations Award in 2007 and was a Guggenheim Fellow in 2000; she has served on a variety of program committees, advisory boards, and editorial boards.

Frequently Asked Questions

How long will the mini-courses be available?

The content will be available indefinitely. If you have registered for one of the mini-courses, you will be notified by email if there are any changes to the content availability beforehand.

How long will it take to go through the course material?

All of the mini-courses are self-paced and include videos, quizzes, and/or exercises. The mini-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.

Do I get any credit or a certificate?

No, none of the mini-courses offer any credit or certificates, but all of them except the Introduction offer a Statement of Accomplishment.

Do the mini-courses offer a Statement of Accomplishment?

Yes, those mini-courses that include graded quizzes and/or exercises will offer a Statement of Accomplishment once a student has achieved at least 90% on the graded assignments.

Do the mini-course pathways offer their own Statement of Accomplishment?

No, each mini-course (with the exception of the Introduction) offers a Statement of Accomplishment, but there is no Statement of Accomplishment offered for a particular pathway that is chosen.

How much does the series of mini-courses cost?

All of the mini-courses in the series are free and it does not cost anything to create a user account.

  1. Course Number

  2. Classes Start

  3. Estimated Effort

    8-12 hours per week
  4. Price