Catalog Description: Study of database design and implementation; comparison of basic models (entity- relationship, hierarchical, network, relational); study of query languages; discussion of issues of integrity, security, dependencies, and normal forms.
Type: Technical elective for all Computer Science majors, Required for Computer Science with Information Assurance emphasis majors.
Total Credits: 3
Contact Hours: 3 lecture hours per week.
Course Coordinator: Hasan Jamil
Prereq: Have passed CS 240: Operating Systems and Cs 270: System Software with C or better.
Textbook: Avi Silberschatz, Henry Korth and S. Sudarshan, Database System Concepts (Sixth Edition or later), McGraw-Hill
- Michael Kifer, Arthur Bernstein and Philip Lewis, Database Systems – An Application Oriented Approach, 2nd Edition. Addison Wesley, 2005.
- Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems, 2nd Edition. McGraw Hill; 2000 (or later).
- J.D. Ullman, Principles of Database and Knowledge-Base Systems, Computer Science Press, MD, 1988.
- D. Maier, The Theory of Relational Databases, Computer Science Press, MD, 1983.
- R. Elmasri and S. B. Navathe, Fundamentals of Database Systems (Second Edition or later), Addison-Wesley Publishing Company, Menlo Park, CA; 1994.
Major Topics Covered
- Databases: Database Management Systems -- goals and advantages, and database system architecture.
- Databases: The Entity-Relationship Model of Data.
- Databases: Relational Model
- Databases: Relational Algebra and Calculus, SQL, Views.
- Databases: Conceptual Database Design -- Data Dependencies and Normalization.
- Files: File Structures -- Sequential and Indexed Sequential Organizations.
- Files: Hashing -- Static and Dynamic Hashing.
- Files: B+-trees.
- Files: External Merge Sorting.
- Advanced Concepts: New Database Models
- Advanced Concepts: Deductive Databases, Object-Oriented Databases, etc. (subject to availability of time).
- Design databases conceptually using design tools such as ER diagrams or UML.
- Transform the conceptual design in relational schemes.
- Bring the relational schemes into Boyce-Codd normal form using design theory and functional dependencies.
- Query the database using relational query languages such as SQL, relational algebra, and relational calculus.
- Describe modern file management systems and indexing schemes and understand the storage structure that supports the relational query engine.