COURSE DESCRIPTION Department: Computer Science Course Number: CS3431 Course Coordinator: Lee A. Becker (LAB) Course Title: Database Systems I Total Credits: 1/3 unit Current Catalog Description: This course introduces the student to the design, use, and application of database management systems. Topics include the relational data model, relational query languages, design theory, and conceptual data design and modeling for relational database design. Techniques that provide for data independence and minimal redundancy will be discussed. Outcome: Students will be expected to design and implement database system applications. Intended Audience: computer science majors and others interested in studying the development of software applications with large data management requirements. Undergraduate credit may not be earned both for this course and for CS4431. Recommended Background: CS2005 and CS2022. Textbook: A First Course in Database Systems, 2nd Edition, J.D. Ullmann and J. Widom, Prentice Hall, 2002. References: * Fundamentals of Database Systems, 3rd Edition, R. ElMasri, and S. Navathe, Benjamin Cummings, 1999. * Database System Concepts, 4th Edition H.F. Korth, and A. Silberschatz, McGraw-Hill, 2001. Course Goals: The purpose of this course is to offer the student an introduction to the design and use of database systems. The entity-relationship modeled is introduced, followed by an overview of the relational model, and the qmapping between an E/R model and relations. Functional dependencies and normalization are covered in detail. A relational database system is used to create a database. SQL (Structured Query Language), the standard query language for relational databases will be covered and used in the class. Prerequisites by Topic: none Major Topics Covered in the Course: Introduction to Database Systems & their Evolution (1 hr) Modeling with Entity-Relationship Model (2 hrs) Introduction to Relational Model (1 hr) Converting E/R to Relational Model (1 hr) Functional Dependencies (2 hrs) Normalization (3 hrs) SQL (5 hrs) Modeling with Object-Definition Language ODL (1 hr) Converting ODL to Relational and Object-Relational (1 hr) Embedded SQL (1 hr) SQL Call-Level Interface & JDBC (1 hr) Transactions in SQL (1 hr) XML (1 hr) Datalog (1 hr) Recursion in SQL and Triggers (1 hr) Data Warehousing & Data Mining (1 hr) Laboratory projects: Project 1 (1 week) Find domain and model it in E/R and ODL. Project 2 (1 week) Convert E/R and ODL to sets of relational schemata. Project 3 (1 week) Provide a minimal covering of FDs for the domain and normalize relational schemata that came from ODL into at least 3NF. Project 4 (1 week) Declare relational schemata in SQL on Oracle and populate Oracle database by bulk loading randomly generated, but joinable, data. Project 5 (1 week) Execute 'interesting' SQL queries and SQL updates. Add constraints, such as foreign keys, and reload data, regenerating to make consistent with constraints. Declare indexes and make queries that demonstrate time improvements. Project 6 (1 week) Build and demonstrate an interactive application program front end to the Oracle database using JDBC. (1 week) Estimate CSAB Category Content: CORE ADVANCED --------------------------------- Data Structures . . Algorithms . . Software Design 3 . Computer Organization and Architecture . . Concepts of Programming Languages . . Oral and Written Communications: Every student is required to submit at least __0___ written reports (not including exams, tests, quizzes, or commented programs) of typically _____ pages and to make ___0__ oral presentations of typically _____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy. Social and Ethical Issues: None Theoretical Content: (Computing) Closure of Attributes functionally determined by a set of attributes .5hr of lecture (Computing) Least Fixedpoint for recursively defined intensional database relations .5hr of lecture Problem Analysis: Entity-Relationship Modeling 2hrs of lecture; Object-Oriented Modeling 1hr of lecture; Extracting Functional Dependencies from natural language domain descriptions 1hr of lecture. Solution Design: Converting E-R to Relational Model 1hr of lecture; Normalization 3hrs of lecture; Declaring Relations .5hr of lecture; Making Queries in SQL 3hrs of lecture; Using JDBC with Oracle .5hr of lecture. _____________________________________________________________________________