Databases are essential to applications in a wide variety of domains, including finance, health care, commerce, and telecommunications. In fact, most applications that people use on a day-to-day bases are backed by databases. This course provides a practical introduction to database technology. By the end of this course, students will understand the fundamental concepts underlying database management systems, become familiar with commercial tools for the design and development of database applications, and be exposed to recent trends in database-like storage systems. Topics covered include modeling enterprise data with entity-relationship diagrams, the relational model, SQL, logical design with normalization, physical design, query execution, transaction processing, recovery, concurrency, online analytical processing, and NoSQL systems.