This upper-level undergraduate course is an introductory course in the area of
databases, with a focus on database models and languages. Topics to
be covered include: database design with the Entity-Relationship model, the
relational data model and its algebra, SQL and database programming, and the
theory of relational database design; additional topics will be covered as
- Knowledge of fundamental concepts of file and database management.
- Knowledge of database design principles, and ability to model real-world
environments using the ER model.
- Knowledge of the formal principles of the relational database model and
its query languages, and ability to design relational databases and express
queries in the relational algebra and calculus.
- Knowledge of the Structured Query Language (SQL) and database programming
principles, and ability to author SQL queries and implement Java database
applications using the Oracle database system.
Knowledge of the basic principles of the mathematical theory of database
design, and ability to design databases that adhere to Boyce-Codd Normal Form.
Experience in the complete database creative process: from database design,
to database constuction, to database programming.
Time and Place
Tuesday and Thursday, 1:30-2:45, Innovation Hall 134
Dr. Ami Motro
Office hours: Tuesday and Thursday, 3:00-4:00
To be announced
Grade of C or better in CS 310 (Data Structures) and CS 330 (Formal Methods
Specifically, good background in
Prerequisites are strictly enforced!
Discrete mathematics (e.g., set theory and mathematical logic)
Programming (good knowledge of C or Java)
Data structures and algorithms
Computer architecture and operating systems
Exams (two mid-terms and a final) and about 8 homework assignments and
projects, most requiring computer work.
The final grade will be based on exams (75%) and homework assignments (25%).
The first book is required, the second is recommended.
Database Systems - An Application-Oriented Approach, Introductory Version, 2nd
Kifer, Bernstein, and Lewis
Oracle 10g Programming: A Primer