· R. Ramakrishnan and J. Gehrke, Database Management Systems, McGraw-Hill, ISBN 0072322063
References - other textbooks or materials
· Silberschatz, H.F. Korth, and S. Sudarshan, Database System Concepts, McGraw-Hill, ISBN
Course Goals - Students should be able to:
· Design and model a design scenario using relational data modeling, which includes:
o Analyze the design anomalies
o Construct Entity Relationship Diagram.
o Analyze and Construct Functional Dependencies for the business rules.
o Analyze Functional Dependencies to identify Primary keys.
o Analyze and Perform Normalization and Normal Forms.
o Define referential integrities.
o Create relational database design schemas in 3-NF for a design scenario of the size of ca. 8-10
· Solve abstract relational language, such as relational algebra problems.
· Solve database transactions by using Structured Query Language (SQL), used by commercial RDBMSs.
· Explain File Organizations, Indexing, and Query Processing.
· Explain Query Optimizations such as Rule-Based and Cost-Based.
· Explain Concurrency Control.
· Explain Recovery.
· Implement a relational database application, using a commercial RDBMS.
Prerequisites by Topic
· Data Structures, Algorithm and Programming.
Major Topics Covered in Course
1. Introduction, basic terminology, data models: hierarchical, network, relational, object oriented
database management systems.
2. Abstract relational language: relational algebra and relational calculus. 2 hours
3. Structured Query Language (SQL) 4 hours
4. Relational Data Modeling, keys, referential integrity, constraints, anomalies 3 hours
5. Entity Relationship Diagram 3 hours
6. Functional Dependencies, Armstrong axioms, Closure of FD and attribute 3 hours
7. Normalization, Normal Forms, Loss-less decomposition proof, dependency preservation proof 6 hours
8. Object Oriented database design 3 hours
9. File Organization, Indexing, Query Processing. 3 hours
10. Query Optimization 1 hours
11. Concurrency Control 1 hours
12. Recovery 1 hours
13. Paper Presentation 6 hours
Exam 1 3 hours
Exam 2 3 hours
Laboratory projects (specify number of weeks on each)
· 3 optional lab sessions in semester, each 150 min.
Estimate CSAB Category Content in Credit Hours
CORE ADVANCED CORE ADVANCED
Data Structures 1 Computer Organization and Architecture
Algorithms 1 Concepts of Programming Languages
Software Design 1
Oral and Written Communications - Every student is required to submit at least __2___ written reports (not
including exams, tests, quizzes, or commented programs) of typically ___3__ pages and to make __0___ oral
presentations of typically __0___ minutes duration. Include only material that is graded for grammar, spelling,
style, and so forth, as well as for technical content, completeness, and accuracy.
· Structured Query Language (SQL) assignment.
· Database design assignment.
· Design document for project.
Social and Ethical Issues - Please list the topics that address the social and ethical implications of computing
covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this
course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so
Theoretical Foundations - Please list the types of theoretical material covered, and estimate the time devoted
to such coverage in contact (lecture and lab) hours.
· Relational algebra and calculus, 2 hrs.
· Data modeling and constraints, 3 hrs.
· Functional dependencies (FD), Armstrong axioms, closure of FD and attribute, 3 hrs.
· Normalization, normal forms, loss-less decomposition proof, dependency preservation proof, 6 hrs.
· File organization and indexing, 2 hrs.
· Query optimization, concurrency and recovery, 3 hrs.
Problem Analysis - Please describe the problem analysis experiences common to all course sections.
· All sections include database model analysis (this includes analysis of DB anomalies, functional
dependency derivation, key identification)
Solution Design - Please describe the design experiences common to all course sections.
· Database design problem to be solved by person or in a team.
SQL assignment (individual 2 week).
Design Assignment (group of 2; 2 weeks)
Project: Database Application Design and Development (group of 2-3; 4 weeks)