This course was an online offering of Jennifer Widom's on-campus Databases course in Stanford University. It was offered on Stanford's Lagunita platform which was retired on March 31, 2020. You can check out the course promotional's video, or the original course description. In Lagunita, the course was split in 14 mini courses, each of which offerd a separate Statement of Accomplishment upon finishing it (which required solving exercies and/or mutiple choice questions). I finished all of those, and have the Statements of Accomplishment, as well as my solved exercises in the folders above.
Please keep in mind that, because Stanford retired Lagunita, the Statements of Accomplishments verification links no longer work. Luckily, they let us know of this in advance, so I've made WebArchive copies! Those are linked in the folders too
Here's the official short description of each course:
- Relational Algebra - this mini-course teaches the algebraic query language that provides the formal foundations of SQL;
- SQL - this mini-course provides comprehensive coverage of the long-accepted standard query language for relational database systems;
- Relational Design Theory - this mini-course provides comprehensive coverage of dependency theory and normal forms in relational databases;
- Indexes and Transactions - this mini-course covers two very important features of database systems, from the application-builder's perspective: indexing for increased performance, and transactions for concurrency control and failure recovery;
- Constraints and Triggers - this mini-course explains key, referential integrity, and "check" constraints, followed by extensive coverage of database triggers;
- Views and Authorization - this mini-course provides extensive coverage of how database views can be created, used, and updated; introduces standard techniques for authorization in relational databases;
- On-Line Analytical Processing - this mini-course introduces star schemas, the data cube concept, and OLAP features in relational databases including the cube and rollup operators;
- Recursion in SQL - this course covers the SQL standard for queries over recursively-defined relations;
- XML Data - this mini-course introduces the XML model for semistructured and self-describing data, including DTDs and some features of XML Schema;
- JSON Data - this mini-course introduces the JSON model for human-readable structured or semistructured data. The content will be available indefinitely;
- Unified Modeling Language - this mini-course introduces the data-modeling component of UML, and describes how UML diagrams are translated to relations;
- XPath and XQuery - this mini-course covers the XPath language for processing XML data, along with many features of the more advanced XQuery language;
- XSLT - this mini-course provides a general introduction to the XSLT rule-based language for querying and transforming XML data.
"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.
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.
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!
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
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
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
Basic: XML Data, JSON Data With querying add: XPath and XQuery With querying, comprehensive version add: XSLT