Current Semester
Spring 2009
YU Links
Prior Semesters
Fall 2008
Spring 2008
Fall 2007
Spring 2007
Fall 2006
Spring 2006
Fall 2005
Fall 2002 - Spring 2005

INF3560: Database Design - Syllabus

Course Objectives

Relational databases pervade the corporate landscape. They store the data which is lifeblood of the modern corporation. The smooth operation of corporate databases is often a critical component of corporate success. Database administrators (DBAs) have consistently been among the highest paid information technology workers in the USA. The purpose of this course is to introduce students to knowledge and skills required to perform as a corporate DBA. We will cover both theory and practical skills. There are many DataBase Management System (DBMS) products on the market today. Each one is based on the same underlying theory but may have some practical differences. We will study the general theory and will use the "Microsoft SQL Server" DBMS for practical applications.

Books

Grading

Homework

Homeworks must be submitted via the Angel system BEFORE the next class. I will either review the homework or provide a solution the next class. For most homeworks I will not be strict about your getting all homework problems correct. I want to see that you have attaempted the solution and have posted an answer that shows me that you tried. For these homeworks you will get full credit if you post a reasonable attempt at an answer. You will get no credit if your answer is copied or shows that you didn't even try. There may be some homeworks that I will grade on a point system. I will let you know which ones those will be when they are assigned.

Attendance

You are permitted up to 3 absences. If you have more than 3 absenses then you MUST have a very good excuse for ALL of your absenses or else your grade will suffer.

Topics

Date Topics
Week 1

Forms of data storage other than a Relational DataBase Management System (RDBMS): flat files, structured files (e.g. XML, Excel), hierarchical & network database management systems

Intro. to Relational DBMS's and the relational model: tables, columns, rows, fields, candidate keys, primary key, foreign keys, composite keys, joining data from mulitple tables, difference between a DBMS and a DataBase(DB), popular commercial DBMSs

Intro to Database Design: "crows foot" Entity Relationship Diagrams (ERDs) & other ERD forms, minimum & maximum cardinality constraints, functional dependencies (FDs) & normal forms (1st, 2nd, 3rd, BCNF, 4th, 5th normal forms), denormalization, designing an ERD from a set of business rules

Week 2

DBMS architecture: 3 tiered design - clients/appliation servers/DBMS

Intro to Microsoft SQL Server: Enterprise Manager, "MSSQLSERVER" Windows service and other Windows services, "SQL Server Service Manager" applet, SQL Server client server architecture, windows authentication vs. SQL Server authentication, SQL Server registration, SQL Server groups, creating a DataBase, data files & log files, multiple physical disk drives, separation of data & log files, using the Graphical User Interface (GUI) to create tables, fields & keys: SQL Server data types [character types (char/varchar/text/nchar/nvarchar/ntext), exact numeric types, approximate numeric types, datetime types], NULL values, automatically generating SQL scripts for existing database objects, executing SQL scripts from the GUI, creating the sample DB from a script

Intro to Structured Query Language (SQL): compiled into applications & used by DBAs, declaritive (non-procedural) language, Data Manipulation Language (DML) statements vs. Data Definition Language (DDL) statments, SQL standards, DBMS specific extensions, quoted & non-quoted identifiers, comments, CREATE TABLE command: named constraints & unnmaed constraints, NULL, NOT NULL, DEFAULT, PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK, Literal values for text/numeric/datetime values, operators (> < >= <= >< (used with CHECK constraint), ( ), IN, BETWEEN, AND, OR, NOT); DROP TABLE command; ALTER TABLE command;

Week 3

More SQL: INSERT command, UPDATE command, DELETE command.

Intro to SQL SELECT command. SELECT, FROM, WHERE, ORDER BY, AS, DISTINCT, AND/OR/NOT in WHERE, LIKE, IS NULL, IS NOT NULL

SQL operators and functions: concatenation, SUBSTRING(), UPPER(), LOWER(), TRIM(), CAST(), CASE, COALESCE(), NULLIF(), and others

Week 4

Summarzing and grouping data: GROUP BY, aggregate functions, using DISTINCT with aggregate functions, COUNT(*) vs. COUNT(expression), HAVING clause.

Joining tables: cartesian product (AKA cross product, AKA cross join), WHERE syntax, SQL-92 JOIN syntax, inner joins, LEFT OUTER, RIGHT OUTER, FULL OUTER

Week 5

Subqueries: converting between subqueries and joins, correlated subqueries, IN, ALL, ANY, EXISTS

Set operations: UNION, INTERSECT, EXCEPT

Week 6

Physical design and Indexes

MIDTERM

Week 7

Views: creating a view, reasons for using views, querying a view, updating data through a view

Intro to stored procedures

Week 8

More stored procedures

Triggers

Week 9

Advanced stored procedures

Transactions

Week 10

Database Security

Week 11

Data warehouse technology and management.

Week 12

Client Server Processing and Distributed Databases

Week 13

Writing application code to access databases

Database software

We will be using Microsoft SQL Server for in-class work and homework assignments. SQL Server is NOT installed on any of the publicly accessable computers in the library or on the 11th floor. I will have copies of SQL Server next week for you that you can install on your personal machines. Microsoft Access IS available on the public machines. You can do some of the work for the course with Access, but not all of the work. Other DBMSs that you might want to install for yourselves (not required) are MySQL and Oracle Personal Edition. These are both available as free downloads.