Introduction to DataBase Management Systems
Bob Matthews
Department of Mathematics and Computer Science
January, 1998
Administrivia
- Meeting times: 8 - 8:50 MWF Thompson 311
- Final Exam: 8:00 AM Friday, May 15 required
- Instructor:
- Bob Matthews (email matthews@ups.edu)
- Thompson 502
- Extension 3561
-
Office hours (tentative):
- 9:00 - 9:50 MWF
- Or by appointment.
If you catch me free
at any time, please feel free to drop in. Messages sent via
email are welcome, and can be used to ask a
question or to set up an appointment.
- Textbook
- Required: Date, C. J. \em
An Introduction to Database Systems
(Sixth Edition). Addison-Wesley, 1995
We will cover chapters 1 - 10, 12, 17, 22 - 25 (almost)
and Appendix A.
- Required: Krohn, Mike, \em Using the Oracle
Toolset, Addison-Wesley, 1992
While I will make reading assignments from this book, this is
primarily a reference for you to use in working with Oracle.
- Course Notes: Course notes from last year are on
reserve at the library.
<\ul>
All books are currently available at the Bookstore. Additional
references can frequently be found at \em Boarders.
<\ul>
Evaluation
- Two - three hour exams + a comprehensive final: 50%
(The final exam will have the weight of two hour exams)
- Written and programming exercises: 30%
- Group project: 20%
<\ul>
Notes:
\subsectionGrading Policies
Programming exercises
will be graded on style and
documentation as well as correctness. Programs and control
scripts
must
include header documentation as well as adequate internal
documentation unless otherwise specified. Late assignments
will generally not be accepted, will incur an increasing penalty
when accepted, and will certainly not be accepted
after the graded
exercise is returned to the class
unless I have asked you to correct and resubmit the exercise. Late
exercises must be submitted in hard-copy form with listings of the
assignment source
and of test runs. Programs marked for correction and
re submission must be turned in within a week of the day that the
assignment was returned to the class.
If a program or control script
meets requirements, works OK, is readable, and at least
minimally documented (header documentation and some internal
documentation at important points, it earns between 70\% and 80\%
of the points possible.
If a program or control script
is well structured, meets all tests (tests are driven
from the statement of the assignment, and the specific tests I will
use on
your program will be taken from the problem description in the
assignment write-up, but the specific tests will not generally
be provided in advance), and is well documented, it will earn
between 80% and 95% of the total possible points.
To earn 100% of the total possible points, the program
or control script must meet all
of the above and do something exceptional beyond the statement of
the program.
\subsectionOther Notes
A minimum grade of 50% on exams and 50% on homework
assignments is a necessary (but not necessarily sufficient)
condition for a passing grade.
All assignments turned in
must represent individual effort: work done by a committee
cannot be accepted except where a group effort is a clearly
stated part of the assignment. All students in Computer Science
classes at the University of Puget Sound are responsible for the
material contained in the document on academic honesty published
by the Department of Mathematics and Computer Science and
included in the Academic Handbook
The final exam will have the weight of two hour exams.
Some Important Dates:
- Tuesday January 20: Classes Begin
- Tuesday, Jan. 27: last day to exercise P/F option, 4:30 PM
- Monday Feb. 2: Last Day to Drop Without Record, 4:30 PM
- Monday, Feb. 16: Last day to withdraw with an automatic ``W''
- Friday, Mar. 13: Mid term (the date - not an exam)
- Monday - Fri Mar. 16 - 20: Spring Break
- Monday, Mar. 23: Classes resume
- Wednesday, May 6: Last day of classes
- Mon-Fri May 11-15 Final Examinations. The final
exam for this class will be at 8:00 AM Friday, May 15
<\ul>
The final exam for this class will be at 8:00 AM Friday, May 15.
It will be a comprehensive, two hour in-class examination.
Should you find yourself in difficulty at any point in the
semester, please make arrangements to meet with me as quickly
as possible.
Course Syllabus
COMPUTER SCIENCE 455
DATABASE MANAGEMENT SYSTEMS
I. Introduction
- A. Catalog Description
The design and implementation of database management
systems with emphasis on the relational
and object-oriented models for data.
Topics will include data models, design methods and tools for
design, SQL,
database tools, and
implementation issues, and will include substantial work with
a commercial main-frame relational database management
system and associated tools. A group term project will be a
significant part of the course. Prerequisites: CSci 261, (MA
132 or MA 257). It is expected that CSB
majors will have taken CSci 255 before taking CSci 455
- B. Purpose
CSci 455 is the capstone course in the Computer
Science/Business curriculum. Its purpose is to present the
basics of database management systems and the role these
systems play in the modern business world. Students study
the four basic data models for
database management systems (with emphasis on the
relational and object oriented
models), database design, and implementation
techniques, and gain substantial experience with a
commercial main-frame relational database system and
associated tools.
A writing-intensive group project will be a significant part
of the course.
The course is also designed as an elective course
in the Computer Science/Mathematics curriculum.
- C. Prerequisites
CSci 261, (MA 132 or MA 257). A grade of C- is
required in the prerequisite courses. It is expected that CSB
majors will have taken CSci 255 before taking CSci 455
<\ul>
II. Required Topics
- A. PROGRAMMING TECHNIQUES.
- Review of file organizations.
- File techniques.
- Access methods in relative files.
- The structure of indexed files.
- The role of a file management system (e.g.., RMS)
- B-trees
- Implementing relational operations using indexed files
<\ul>
<\ul>
- B. Database Techniques.
- Data models for Database Management Systems
- Hierarchical
- Network/CODASYL
- Relational
- Object oriented models
<\ul>
- Structured Query Language (SQL)
- Data definition
- Data manipulation
<\ul>
- The relational calculus and the relational algebra
- The data dictionary
- Other database systems/languages
- Ingres/QUEL
- Postgres (an object oriented database system)
- Knowledge base systems
<\ul>
<\ul>
- C. Software Engineering Techniques.
- The database design process.
- Entity-relationship diagrams (top-down design)
- Forms-based design (bottom-up design)
- Resolution of top-down and bottom-up design
- Data-flow diagrams
- Data normalization
<\ul>
- Database development tools
- Forms development
- Report Writers
- Applications development
- Embedded database languages
<\ul>
- The software engineering process in the design
and implementation of information systems.
<\ul>
<\ul>
Class exercises will include practice with actual database
management systems. The University of Puget Sound has a
commercial copy of the Oracle relational database management
system which is used for the majority of database exercises in
the class. In addition, software developed at the University of
Puget Sound will be used for exercises in the relational algebra
and relational calculus. Postgres will be used for exercises in
object-oriented database systems.
The term project will involve a substantial effort in the
specification, design and implementation of a information system
using Oracle. The information system will include data
entry/enquiry forms, possibly embedded SQL code in C programs, the
use of the Oracle report writer, and the use of the
Oracle menu-building system.
Schedule
Note: Please note that, except for scheduled University
events and exam dates, the schedule of topics, readings, and
assignments is tentative.
Please refer to the current
schedule
posted on my gopher ( bobsgopher.ups.edu) available either by
gopher
or through the Math/CSci department home page
( http://www.math.ups.edu). I will be working on shifting
some
(but not all) of the material on the gopher to my home page
as the term progresses.
It may be necessary to change an
exam date: if that happens, I will give you at least a week's notice
and make alternate arrangements for students unable to take the
exam on the rescheduled date. Please inform me of any conflict
between the dates entered here and those in the catalog and course
schedule. In the event of any conflicts, the catalog and course
schedule have the final say.
The course is in roughly four parts, with an examination roughly
at the end
of each of
the first three:
- Introduction to Database systems, Oracle, and SQL
- Database design
- Database tools
- More theory and future directions
<\ul>
Material from the final section will appear on the
final.
The tentative schedule of readings and examinations is
as follows. Several of the readings overlap, particularly in the
reference material to which we will return several times during
the semester.
- Week 1
Tuesday, Jan. 20
- Topics: Introduction to database systems / Survey
of data models
- Reading assignment: Date, chapters 1, 2.
<\ul>
- Week 2
Monday, Jan. 26
- Topics: Survey of data models and the Relational model
- Reading assignment: Date, chapters 3, 4, EasyAlg handout
- First relational algebra assignment
<\ul>
- Week 3
Monday, Feb. 2
- Topics: Relational model / introduction to Oracle
- Reading assignment: Date 4, 5, 8, Krohn 1 - 4
- First SQL exercise
- Monday is the last day to drop without record
<\ul>
- Week 4
Monday, Feb. 9
- Topics:
- Tables, indexes and views
- Introduction
. to the term
project (handout)
<\ul>
- Reading assignment: Date 8, Krohn 3, 4
- Index / view exercise
<\ul>
- Week 5
Monday, Feb. 16
- Topics: Tables, indexes, and views
- Reading assignment: Date 12
- First hour exam Friday, Feb. 20
- Monday is the last day to drop with an automatic "W".
<\ul>
- Week 6
Monday, Feb. 23
- Topics: Top-down (Entity-Relationship)
database design
- Reading assignment: Date 12
- Group meetings should begin
- Design exercise (a major exercise, in several parts).
- Requirements document due
<\ul>
- Week 7
Monday, March 2
- Topics: Database design: more on ER design
and an introduction to bottom-up design and data
normalization
- Reading assignment: Date 9, 10, 12
- SQL*Forms exercise
<\ul>
- Week 8
Monday, Mar. 9
- Topics: Database tools: The report writer
- Reading assignment: Krohn 12
- Report writer practical and exercise
- Preliminary design due
- Friday, Mar. 13 is midterm (no exam,
just the date of the middle of the term)
<\ul>
-
Monday, Mar. 16
Spring Break (no classes)
- Week 9
Monday, Mar. 23
- Topics: Database tools: SQL*Forms (Part I)
- Reading assignment: Krohn 5 - 8
- SQL*Forms practical and assignment
- Second hour exam Friday, Mar. 27
<\ul>
- Week 10
Monday, Mar. 30
- Topics:
- Advanced SQL
- Embedded SQL
- PL/SQL
<\ul>
- Reading assignment: Date 8, Krohn 4, 5
- Second SQL exercise
- Design document due
<\ul>
- Week 11
Monday, Apr. 6
- Topics: PL/SQL and SQL*Menu
- Practical and assignment on triggers in forms
- Reading assignment: Krohn Chapters 5, 9
<\ul>
- Week 12
Monday, Apr. 13
- Topics: SQL*Menu
- Reading: Krohn, Chapter 9
- Practical and exercise in SQL*Menu
<\ul>
- Week 13
Monday, Apr. 20
- Topics: Relational algebra/calculus, data dictionary
- Reading assignment: Date 6, 7, handout.
- Algebra/calculus assignment
- Third hour exam Friday, April 23.
<\ul>
- Week 14
Monday, Apr. 27
- Topics: Object oriented database systems
- Reading assignment: handout, skim Date 22 - 25
- Postgres assignment (if possible)
<\ul>
- Week 15
Monday, May 4 (Last week of classes)
- Topics: Group presentations. Individual sign-off meetings
should be scheduled before your presentation.
- All group project material due 5:00 Wednesday, May 6..
<\ul>
- Final Exam Week,
Monday, May 11
- Final Exam 8:00 AM Friday, May 15
<\ul>
<\ul>