CS 405G - Introduction to Database Systems
Credits: 3
Course Description
Study of fundamental concepts behind the design, implementation and application of database systems. Brief review of entity-relationship, hierarchical and network database models and an in-depth coverage of the relational model including relational algebra and calculi, relational database theory, concepts in schema design and commercial database languages.
Prereqs: CS-315 and engineering standing.
Needed Skills
The student is expected to be familiar with basic concepts of programming in a general purpose programming language, and with a variety of mathematical tools for modeling and analyzing discrete structures. The student to should have knowledge of intermediate level algorithms and data structures and techniques for the analysis of their complexity and correctness. The student should be familiar with concepts of propositional logic and proof construction, including induction; elementary set theory including concepts of relations and functions from an abstract point of view.
Learning Outcomes
Students will gain basic theoretical knowledge in the area of database management systems appropriate for an undergraduate in the computer science discipline.
Students will learn using a database management system such as the commercially available SybaseÔ, DB2Ô or OracleÔ systems. Students will also learn to employ sound database design principles; learn SQL; use embedded and dynamic SQL, GUI facilities, and client-server interfaces, and other software packages in database management systems.
As part of specific learning outcomes, students will:
1. understand and appreciate the theoretical foundation of database systems
2. become proficient using SQL
3. become able to use sound design principles when defining a database
4. become familiar with databases in a client-server environment
5. build a client-side user-interface to a database
Measures
These outcomes will be measured by the grading of: Quizzes, programs, lab reports and exams. Additional measurements will be obtained through evaluation questions gathered by University-level course assessment supplemented by questions given below.
CAC Categories
Topic
|
Core
|
Advanced
|
Math
Fundamentals
|
1
|
5
|
Data
Structures
|
2
|
6
|
Algorithms
& Software Design
|
4
|
6
|
Computer
Organization and Architecture
|
2
|
3
|
Concepts
of Programming Languages
|
0
|
6
|
Social
and ethical issues
|
1
|
1
|
Total
|
10
|
27
|
Math Fundamentals (6):
Logic review, basic relational operators
Relational algebra & calculus
Data structures (8): Storage structures – B, B+, B*, extensible hashing, and ISAM storage structures indexing.
Algorithms and Software (10): Indexing, query optimization algorithm, testing lossless joins, determining 3NF decompositions, determining the closure, testing equivalence of sets of functional dependencies. Database design issues, entity-relationships
Computer Organization and Architecture (5): Disk management, buffer management and caching, clustering, and concurrency.
Concepts of Programming Languages (6): Advanced (6): Use of ODBC and JDBC interfaces to commercial databases, Database Data Definition Languages, Data Manipulation Languages including SQL, QBE and datalog
Social and Ethical Issues (2):Discussion of professional and academic integrity (no assignments), Discussion of database privacy issues and their implementation using through views.
Oral Communication (presentations)
One-on-one demonstration of their project.
Written Communication
10-12 homeworks and projects, 3 project reports – 4-10 pages each
Coverage
Theoretical content: 60%
· Normal forms, join properties, canonical covers, functional dependencies, relational algebra, relational calculus, concurrency, and transactions.
Problem analysis: 15%
· A database project is developed over the course of the semester. The write up an initial design (E-R diagram and some simple domain constraints) and then refine the design (key constraints, expanded attributes, functional dependencies, 3rd Normal Form or BCNF tables) prior to implementing the database with a user interface.
Solution design: 20%
· Develop and implement a database using an Oracle or MySql back end and a web-based user interface, typically, written in Java, Perl, or PHP.
Other: 5%
· Course administration, social issues, exams, and demonstrations.
Student evaluation and feedback:
Students receive back their homework and exams. These papers are graded to indicate problems and they point out correct or better solutions. Problems that turn out to be especially difficult are discussed in class.
Solutions to most homework assignments are posted on the course web site approximately one week after they are due and before any examination covering the homework material.
Grading
A student's grade will be determined by a weighted average of homework assignments, programming exercises, projects, hour examinations, and the final examination. Graduate students will have a different grading scale than undergraduate students. i.e., the cut off for graduate students for each grade will be slightly higher than that for the undergraduate students. The faculty offering the course will make the details available at the beginning of the course.
A typical weighting is:
· Homework & Programs 40%
· Mid-term Examinations 40%
· Final Examination 20%
Course Evaluation Questions
The course has helped me:
37. understand and appreciate the theoretical foundation of database systems
38. become proficient using SQL
39. use sound design principles when defining a database
40. become familiar with databases in a client-server environment
41. build a client-side user-interface to a database
Possible Textbooks
Database System Concepts, 4th Edition
Abraham Silberschatz, Henry F. Korth & S. Sudarshan
© 2002 / 0-07-255481-9 / McGraw-Hill
Database Systems The Complete Book, 1/e
Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer D. Widom
© 2002 / 0-13-031995-3 / Prentice Hall
(the entire book will nit be covered)