CSCI 403: Database Management

Winter/Spring 2008

syllabus

Lectures

Apr 30: Last Class, Final Exam Review

Apr 28: Lecture 36, Cool Stuff & Current Challenges

What world changes are affecting our perspective on data and databases?

What are some current issues and challenges in the field of databases?

What problems arise with massive, available datastores and why do we care?

Apr 25: Lecture 35, Object-Oriented Databases

What is an object-oriented database?

What are the differences between and OODB and and RDB?

What are some benefits and drawbacks to using an OODB, compared to a RDB?

Apr 23: Lecture 34, Security, Maintenance, Performance

What is the difference between a database user and an application user?

What are the three main layers of security for database systems?

How does a logical backup differ from a physical backup?

What are some rules of thumb for achieving high performance in a DBMS?

Apr 21: Lecture 33, Database System Design & Architecture

How is a database like a garden?

What are the two main approaches toward system design?

What is load balancing? What is clustering?

What is RAID? What is a SAN?

What is virtualization?

What are some factors that influence your database system design?

Apr 18: Lecture 32, Transactions, Stored Procs, Triggers, continued

Q&A re: transactions, stored procs, triggers.

What is a view?

Apr 16: Lecture 31, Concurrency, Stored Procedures/Functions, Triggers

What is a stored procedure?

What is the difference between a stored procedure and a stored function?

What is a trigger?

How do you implement a stored procedure in MySQL?

Apr 14: No Lecture

Apr 11: Lecture 30, Transactions, ACID, Concurrency

What is a transaction?

How do you declare a transaction?

What problems arise with concurrency?

What are two main approaches to concurrency?

What is ACID?

Apr 9: Lecture 29, Database Programming w/ Python, Programming Review

How do you use a database from Python?

What do most platforms share in common regarding database programming?

What are the differences between code generation and metaprogramming, particularly in regard to ORMs?

Apr 7: Lecture 28, SQL Server and the Microsoft Ecosystem

Apr 4: No Lecture

Apr 2: Lecture 27, Database Programming w/ Perl

Why use Hibernate (or any Java ORM)?

What is lazy loading? What is eager loading?

How do you use a database via Perl?

What is a prepared statement?

Mar 31: Lecture 26, Database Programming w/ Java Persistence

What is JDO?

What is JPA?

What are some common JPA implementations?

How do you use Hibernate to store objects in a database?

Mar 28: Lecture 25, Data Warehousing, Database Programming w/ JDBC

What is a data warehouse?

What are dimensions, facts and star schemas?

How do you use a database via JDBC?

What is a (connected) ResultSet? What is a (disconnected) RowSet?

Mar 26: Lecture 24, Database Programming w/ Ruby

What is SQL injection?

What are three ways to work with a database via Ruby?

What is ActiveRecord and how do you use it?

Mar 24: Lecture 23, DAO Pattern, ORM Approach (PHP5)

What is the DAO pattern?

What is a Data Transfer Object?

What is an ORM layer?

What is an application framework?

What are some common PHP application frameworks for database-driven applications?

Mar 21: Lecture 22, Programming w/ Databases (PHP5)

What is the DRY principal?

How can you encapsulate common database work in a PHP5 object?

What is the Singleton design pattern?

Mar 19: Lecture 21, Constraints Wrap-up, Programming w/ Databases (Intro, PHP5)

What is a CHECK constraint and how do you declare one?

What is the most common architecture for database-driven applications?

How do you use a database on the PHP5 platform?

Mar 17: Lecture 20, Constraints, Intro to Indexes, Tools

What is a constraint?

What is a foreign key constraint and how do you declare one?

What is a UNIQUEness constraint and how do you create one?

What is an index and how do you create one in MySQL?

What are some common gui tools for working with MySQL?

Why should I be proficient with both a tool and the command line?

Mar 7: No Lecture

Mar 5: Awesome Midterm

Mar 3: No Lecture

Feb 29: Midterm Review

In-class midterm review

Feb 27: Lecture 19 Normalization, Denormalization

What is normalization? What's the point?

What is denormalization? What's the point?

Feb 25: Quiz, Homework Review

Feb 22: Lecture 18, Last of SQL, Quiz Review

What is a correlated subquery?

In-class quiz review

Feb 20: Lecture 17, More SQL

What is an alias?

What is an aggregate function?

What is a subquery?

Feb 18: Holiday

Feb 15: Lecture 16, Database Design & SQL

'task list' database design continued

What is the SQL syntax for a JOIN?

What is the SQL syntax for an OUTER JOIN?

Feb 13: Lecture 15, Project Review, Database Design & SQL

Mandatory project entities/tables

'task list' database design continued

Feb 11: Lecture 14, Project Peer Review

In-class collaborative review of data model, schema

Feb 8: Lecture 13, Database Design & SQL

What are some 'rules' when designing a database schema from an ER diagram?

How would you design the database for a 'task list' application (phase 2)?

Feb 6: Lecture 12, Database Design & SQL

How would you design the database for a simple 'task list' application?

Feb 4: Lecture 11, JOINs, Relational Calculus

What are some types of JOINs?

What is relational calculus? Why do we care?

What is a declarative language, as compared to a procedural language?

Feb 1: Lecture 10, Relational Algebra, Project Discussion

What is a JOIN?

What MySQL utility allows you to 'export' your database?

Jan 30: Lecture 9, Relational Algebra, Project Discussion

Why do we care about relational algebra?

What are the five primary relational operators?

What is the SQL command for creating a table?

Jan 28: Lecture 8, Relational Algebra, Project Discussion

Why do we care about relational algebra?

What are the five primary relational operators?

Jan 25: Lecture 7, Relational Model

Why is it called a relational database?

What is a relation?

What is a relvar? What is a tuple?

What does NULL mean?

What are some common constraints?

What are the four primary operations on a relation?

Jan 23: Lecture 6, EER Model, UML, MySQL

What does the EER Model provide?

What is UML?

What mechanisms are used to configure MySQL?

What is in the bin directory?

What are the MySQL commands for:

Jan 21: Lecture 5, Relationships & Constraints

What is a relationship? A binary relationship? Ternary? Recursive?

What is a constraint?

What are the two primary constraint types?

What is a weak entity?

Jan 18: Lecture 4, ER Model

What are some kinds of attributes?

What is an entity type? What is an entity set?

What is a key?

Jan 16: Lecture 3, ER Model Intro

What is the ER Model?

What is an entity? What is an attribute?

What steps are involved in designing a DB?

Jan 14: Lecture 2, Data Models, High-Level Operation

What is a data model?

What is a schema?

So... how does it all work? (high-level)

Jan 11: Lecture 1, Introduction

What is a database? What is data?

What is an RDBMS?

Why should one use an RDBMS? Why not?