CSCI 403: Database Management

Winter/Spring 2009

Lectures

Apr 29: Lecture 37, Semester Review, Further Topics

You should be working on your final exam and project assignments

What are some key points to remember about database performance?

What are the current trends in database models and implementations?

What sources should I seek for information regarding database administration?

How is a database like a garden?

Apr 27: Lecture 36, Simple Data Warehousing

You should be working on your project assignments

What is a data warehouse?

Why warehouse data anyway?

What is a star schema?

What are fact tables and dimensions?

Apr 24: Lecture 35, Stored Procedures

You should be working on your project assignments

What is a stored procedure?

How do you declare a stored procedure?

How you use one?

What are in and out parameters?

What are the benefits and drawbacks of stored procedures?

Apr 22: Lecture 34, Transactions & Concurrency

You should be working on your project assignments

How do you declare a transaction?

What are some concurrency anomalies?

What are two general approaches to locking?

Apr 20: Lecture 33, Triggers, Transactions

You should be working on your project assignments

What is a trigger?

What is the ACID principle?

What is a transaction?

Why might you use a transaction?

Apr 17: No class

Apr 15: Lecture 32, SQL Server & Microsoft's O/R Solution

You should be working on project assignments 10, 11 and 12

What is ADO.net?

What is OLEDB?

What does the MS Entity Framework provide?

What is MS's approach to the O/R problem?

What is LINQ?

How might you use SQL Server and non-MS applications?

Apr 13: Lecture 31, SQL Server & the Microsoft Ecosystem

You should have finished project assignment 9

What is ODBC?

How do you typically develop db-backed applications w/ Access?

How do you typically develop db-backed applications w/ SQL Server?

How do you develop db-backed applications with .Net?

Assignment: project assignments 10, 11, 12

Apr 10: Lecture 30, Database Programming w/ Perl, Python

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?

How do you use a database from Python?

Apr 8: Lecture 29, Database Programming w/ Java

How do you use a database via JDBC?

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

What is JDO?

What is JPA?

What are some common JPA implementations?

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

Apr 6: Lecture 28, Database Programming w/ Ruby

You should have finished project assignment 9 and homework 6

What is SQL injection?

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

What is ActiveRecord and how do you use it?

Apr 1: Lecture 27, DAO Pattern, ORM Approach (PHP5)

You should be working on project assignment 9 and homework 6

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 30: Lecture 26, DAO Pattern, ORM Approach (PHP5)

You should be working on project assignment 9

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

What is the DAO pattern, and how did we get here?

Assignment: homework 6

Mar 27: (class canceled)

Mar 25: Lecture 25, Programming w/ Databases (PHP5)

You should be working on project assignment 9

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

What is the DRY principal?

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

What is the Singleton design pattern?

How do you use a database on the PHP5 platform?

Mar 23: Lecture 24, Programming w/ Databases, Project Discussion

You should have finished project assignment 8 and homework 5

What are some common gui tools for working with MySQL?

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

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

Assignment: begin project assignment 9

Mar 20: Lecture 23, Indexes & Constraints

You should be finishing project assignment 8 and homework 5

How do you declare an index with SQL?

What is a constraint?

What are not null, default, unique, and check constraints and how do you declare them?

What is a foreign key constraint?

What is the difference between a foreign key and a foreign key constraint?

How do you declare a foreign key constraint and how can you determine the constraint's behavior?

Mar 18: Lecture 22, Data Storage & Intro to Indexes

You should be working on project assignment 8 and homework 5

What is RAID?

What is a MySQL storage engine?

What is an index?

Mar 16: Lecture 21, Normalization & Codd's 12 Rules

(review)

What is Normalization?

What is 3NF, and how do you get a schema into 3NF?

What are Codd's 12 Rules and what's the point?

What is denormalization? What's the point?

Assignment: begin project assignment 8, read The Relational Model and begin homework 5

Mar 4: Midterm

Mar 2: Midterm Review Vol. 2: The Game

You should have finished project assignment 7

Quiz review and midterm prep

Prepare for midterm

Feb 27: Lecture 20, SQL: Correlated Subqueries, Intro to Normalization

You should be finishing project assignment 7

How can you use IN / NOT IN, and ANY / ALL in conjunction with subqueries?

What is a correlated subquery?

Why might a correlated subquery take a long time to execute?

What is normalization?

What is 1NF, and how do you get a schema into 1NF?

What is a functional dependency?

What is 2NF, and how do you get a schema into 2NF?

Prepare for midterm

Feb 25: Midterm-Prep Quiz

You should be working on project assignment 7

Feb 23: Lecture 19, SQL: Aggregate Functions, GROUP BY, Subqueries

You should have finished project assignment 6

What is an aggregate function?

What are some common aggregate functions?

How does a GROUP BY clause affect the result of an aggregate function?

What is the point of using HAVING with GROUP BY?

What is a subquery?

What are the two contexts in which subqueries are typically used?

Assignment: project assignment 7, prepare for quiz

Feb 20: Lecture 18, SQL: JOINs

You should be finishing project assignment 6

What are JOINs used for?

How do you write a typical inner join?

How do you write a left/right outer join?

Feb 18: Lecture 17, SQL

You should be working on project assignment 6

What are the CRUD commands for SQL?

How do you alter a table?

What are ORDER BY, DISTINCT and LIKE used for?

What is the \ character used for in a string?

Feb 13: Lecture 16, Database Design & SQL

You should be finishing project assignment 5

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

How would you design the database for a multi-user 'task list' application?

Assignment: project assignment 6

Feb 11: Lecture 15, Database Design & SQL

You should be working on project assignment 5

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

Feb 9: Lecture 14, Relational Algebra, Relational Calculus

You should have submitted project assignment 4 and homework 3

What is a JOIN?

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?

Assignment: project assignment 5

Feb 6: Lecture 13, Relational Algebra, Project Discussion

You should be working on homework 3

What is relational algebra, and why do we care?

What are the five primary relational operators?

Feb 4: No Class

Feb 2: Lecture 12, Relational Model, Project Discussion

You should have finished project assignment 4 and homework 2

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?

Assignment: homework 3

Jan 30: Lecture 11, More SQL and SQLite

You should be finishing project assignment 4 and homework 2

How do you select data from multiple tables?

What is a primary key?

What is a foreign key?

Jan 28: Lecture 10, SQL and SQLite

You should be working on project assignment 4 and homework 2

What is SQL?

What is really happening when you run SQLite?

How do you create a database with traditional SQL? How do you do it with SQLite?

How do you create a table in SQL?

How do you declare fields and types in SQL?

What datatypes does SQLite support?

How do you select records contained in a database?

How do you insert data into a database? Update? Delete?

What is CRUD?

Jan 26: Lecture 9, EER Model, UML

You should have finished project assignment 3

What is the EER Model and what does it provide?

How do you represent inheritance in an ER diagram?

In what way are relationships inherited in the EER Model?

What is UML?

(project 3 review)

Assignment: project assignment 4, homework 2, prepare for quiz

Jan 23: Lecture 8, ER Model, Constraints

You should be finishing project assignment 3

What is a weak entity?

Can relationships have attributes?

How might you refactor a ternary relationship into multiple binary relationships?

What is a constraint?

What are the two primary constraint types?

What are the three primary cardinality ratios and what do they mean?

Where does the ER Model fit in the data abstraction stack?

Jan 21: Lecture 7, ER Model, Relationships

You should be working on project assignment 3

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

What is a key?

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

Jan 19: Lecture 6, Database Design Process, ER Model Intro

You should have finished project assignment 2

What steps are involved in designing a DB?

What is the ER Model?

What is an entity? What is an attribute?

What are the main types of attributes?

Assignment: project assignment 3

Jan 16: Lecture 5, Data Storage & I/O

You should be finishing project assignment 2 and delightful homework 1

How does hard disk data storage work?

(answering SQLite questions from homework 1)

Jan 14: Lecture 4, Data Models, Schemas & DBMS Components

You should be working on project assignment 2

What is a data model?

What is a schema?

What are the two main abstraction contexts for data models and schemas?

What are some of the different components of a DBMS?

Assignment: delightful homework 1

Jan 12: Lecture 3, History & Purpose, Databases from 5280 feet

You should have finished project assignment 1

Project introduction/overview

Why should one use a DBMS? Why not?

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

Assignment: project assignment 2

Jan 9: Lecture 2, History & Purpose

How the heck did people come up with this 'DBMS' idea anyway?

Assignment: project assignment 1

Jan 7: Lecture 1, Introduction

What is data? What is a database?

What is a DBMS?