Computer Science 312

Database Systems

Spring 2014

Instructor

Dr. Martin Q. Zhao

201 B Computer Science Building

Phone: 301-2425

Email:

Office Hours

Monday,Wednesday, and Friday / 3:00 - 4:00 PM
Tuesday and Thursday / 11:00 - 12:00 PM

Please feel free to drop in my office when the door is open. We can also set up an appointment to fit your schedule and mine.

text

Database System Concepts, Sixth Edition by Silberschatz, Korth, and Sudarshan

Chapters discussed in class are listed in the tentative class schedule section. I will often assign reading and base my lectures on the assumption that you have already read it.

Course DESCRIPTION

The objectives of this course are defined as follows:

A study of both logical and physical organization of computer database systems, including DBMS languages, architecture, and interfaces, data modeling, integrity, and security. Emphasis will be placed on relational models, languages, and systems.

This particular offering adopts an application-oriented approach, trying to balance the coverage of principles underlying the design and implementation of databases and of the applications of such principles in transactional systems. The following topics will be presented in three parts, each focuses on one or more important aspects of a database application:

PartI – Relational Databases: including introduction to RDBMS, relational model, SQL, and a brief introduction to relational algebra.

Part II – Database design: including ER modeling, normal forms and normalization, DB application design and development, as well as selected advanced SQL features.

Part III – Application design, data storage and file structure, indexes, query processing cost, social impacts of DB and data mining applications.

An exam will be given at the end of each part. Popular RDBMS products (such as Oracle, MySQL, SQL Server, and Access) will be used to let the students to build basic skills and apply them to develop simple database applications by themselves.

prerequistite

CSC 245

Programming experience using a high-level computer language, such as C/C++, Java.

grading policies

This course will consist of 1000 points, which can be earned by you in the following manner:

Project / 250 points
Homework assignments / 240 points
Exams (3 at 100 points each) / 300 points
Comprehensive final / 150 points
Quick quizzes / 60 points

Grade in this course will be assigned using the scale:

900 or higher / A
870-899 / B+
800-869 / B
770-799 / C+
700-769 / C
600-699 / D
Lower than 600 / F

quick quizzes

Six to eight times during the semester, I will begin the class with a short quiz that is no about 5 minutes to ensure you keep up with the class material and the assigned reading. Each quiz will worth 10 points. You may accumulate at most 60 points from 6 best of these quizzes.There will be no make-up quizzes.

Homework assignments

There will be six to eight homework assignments throughout the semester, with each worth 30 to 40 points. Most of the problems will be selected from the Exercises section at the end of chapters just covered. They will provide opportunities for you apply the theories discussed in class by yourself. Many questions in the exams will be similar to what you practice in these assignments. You are encouraged to bring questions about homework or other interested topics that are related to the class materials to the catch-up sessions or my office hours for discussion. But you are supposed to finish homework individually.

Project

There will be a team project that will engage your and your teammates to apply the theories and skills just learned from class to design and implement a database application. Candidate project topics will be given in class for you to choose from and teams are formed based on mutual interests among students in class. You may also propose topics, which may be from a real-world scenario or purely artificial. You may invite some of your classmates to join your team after receiving my approval. A set of general requirements and score breakdown are shown below, while more detailed specifications will be handed out to class when needed.

Project spec and data models / 50 points
Database schema and implementation / 50 points
Loading data and adding constraints/triggers / 40 points
Application programs that interact with DB / 50 points
Documentation, presentation, and system demo / 60 points

A simple interface that can interact with your database is required for a success project. The techniques needed for this aspect (such as JDBC) will be discussed in class, as well as fundamentals of using a RDBMS (such as Oracle).

late assignments

Assignments are usually due at the beginning of class, unless otherwise stated. Late assignments will be accepted at a penalty of 10% per calendar day (or portion of a day) late.

exams and final

An exam will be given at the end of each part, which just covers the contents covered in the specific part. A comprehensive final exam will be given at the end of the course, which may reuse questions very similar to those appeared in end-of-part exams. There will be no make-up exams. The percentage of points made on contents covered in the correpsonding part will be used to estimate points for a missed exam.

tentative class schedule

See the class calendar for the tentative test dates and due dates of assignments.

class attendancy

You will not gain (or lose) points for attending (or missing) class. However you may lose points for missing a quiz or materials discussed in class but not in the text. Class attendance is a very good idea.

academic honesty

It is considered a violation of the honor code to collaborate on any assignments other than the team project.

REasonable accomodation

Students with a documented disability should inform the instructor at the close of the first class meeting. The instructor will refer you to the office of Student Support Services (SSS) for consultation regarding evaluation, documentation of your disability, and recommendations for accommodation, if needed. Students will receive from SSS the Faculty Accommodation Form. On this form SSS will identify reasonable accommodations for this class. The form must be given to the course instructor for signature and then returned to SSS.

To take full advantage of disability services, it is recommended that students contact the Office of Student Support Services, immediately. The office is located on the third floor of the ConnellStudentCenter.

CSC 312 Class Calendar

Spring 2014

Week / Monday / Wednesday / Friday
1
1/6 / Course intro / Intro to DB (ch 1) / Case study – 1
2
1/13 / Relational model (ch 2) / Intro to SQL (3.1 - .3) / Join and set operations (3.4 - .5)
3
1/20 / MLK Day / Case study – 2 / Aggregation and DML (3.6, .7, and .9)
4
1/27 / More on joins (4.1) / Views and subqueries (4.2 and 3.8) / Constraints and assertions (4.4)
5
2/3 / Authorization (4.6) / Catch-up & review / Exam I
6
2/10 / JDBC (5.1) / Functions, procedures, triggers (5.2 - .3) / Relational algebra (6.1)
7
2/17 / Catch up / ERM basics / Conversion to relational schema
8
2/24 / Case study - 3 / Project / Functional dependency
9
3/3 / Normalization / Catch up / Project
9
3/10 / Spring Break
11
3/17 / Catch up & review / Exam II / Application design
12
3/24 / Case study - 4 / Disk physics / File organization
13
3/31 / Buffer / Indexing / B+ tree
14
4/7 / Query cost / Transaction / Social impacts
15
4/14 / Catch up and review / Exam III / Good Friday
16
4/21 / Wrap up / Final / Project wrap up
17
4/28 / Final presentation
Sat, 5/3,2 – 5 pm

1