Prerequisite: IS 218 or IT 202. Businesses use databases extensively for analysis and decision-making because they provide efficient, large-scale information storage and rapid retrieval. Databases support the "back end functionality" of most large web systems. This course gives students extensive, pragmatic experience in designing, building, querying, updating, maintaining and managing relational databases, using the Structured Query Language (SQL). Proper database design principles are emphasized throughout the course, beginning with high level descriptions of relational databases using data modeling tools (such as entity-relationship or ER diagrams)and progressing to relational database design principles based on higher order normalizations. We will examine some poorly designed databases and show how these can be transformed into well designed databases. SQL will be extensively covered, and students will design and implement sophisticated SQL queries invoking self-joins, outer joins, correlated subqueries and related concepts. Students will explore and utilize design methodologies for input data validation and maintaining database integrity, and study issues of database privacy and security. Advanced topics to be discussed include the role of the Database Administrator (DBA), database life cycle activities, database denormalization, read-only databases and data warehouses. Hands-on experience will be gained by working with actual databases using industry-standard database management systems such as Oracle.