
This course covers database design and the use of database management systems for applications.
It includes extensive coverage of the relational model, relational algebra, and SQL. It also covers XML data including DTDs and XML Schema for validation, and the query and transformation languages XPath, XQuery, and XSLT.
The course includes database design in UML, and relational design principles based on dependencies and normal forms. Many additional key database topics from the design and application-building perspective are also covered: indexes, views, transactions, authorization, integrity constraints, triggers, on-line analytical processing (OLAP), JSON, and emerging NoSQL systems. Working through the entire course provides comprehensive coverage of the field, but most of the topics are also well-suited for “a la carte” learning.
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.
“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.
Course Topics:
1: Introduction
2: Relational Model
3: Querying Relational Databases
4: Well Formed XML
5: DTDs IDs IDREFs
6: XML Schema
7: JSON Intro
8: JSON Demo
9: Relational Algebra 1
10: Relational Algebra 2
11: Introduction to SQL
12: Basic Select Statement
13: Subqueries in Where
14: Subqueries in From Select
15: Join Operators
16: Aggregation
17: Null Values
18: Data Modification Statements
19: Relational Design Overview
20: Functional Dependencies
21: BCNF
22: Multivalued Dependencies
23: Shortcomings BCNF 4NF
24: Xpath Intro
25: Xpath Demo
26: Xquery Intro
27: Xquery Demo
28: XSLT
29: UML Data modeling
30: UML to Relations
31: Indexes
32: Motivation Overview
33: Constraints
34: Referential Integrity
35: Triggers Intro
36: Triggers Demo Part 1
37: triggers Demo Part 2
38: Transactions Intro
39: Transactions Properties
40: Isolation Levels
41: Defining Using Views
42: View Modifications Intro
43: View Modifications Using Triggers
44: Automatic View Modifications
45: Materialized Views
46: Authorization
47: Basic Recursive With Statement
48: Basic Recursive With Statement Demo
49: Nonlinear Mutual Recursion
50: OLAP
51: OLAP Demo
52: NoSQL Motivation
53: NoSQL Overview
54: Office Hours 02/21/2013
55: Office Hours 03/06/2013
56: Midterm Exam Solutions
57: Final Exam Review
Course Videos:
Instructor: Jennifer Widom
Price: Free