INF 385M Database Management
Principles and practices of database management and database design. Discussion and implementation of a database. Application life cycle, data dictionaries, relational database design, SQL queries, reports and other interfaces to database data, and documentation. Students work on individual and group projects.
Detailed Course Summary: Professor: Stan Gunn email: firstname.lastname@example.org Office Hours: (As requested. I work off-campus during the day but I will meet with students at any time that's convenient with 24 hours notice. Course Meeting Times Fall and Spring: Wednesdays 6:30 to 9:30 Summer: Tuesdays and Thursdays 4:00 to 6:00 Course Description The primary goal of this class is to learn principles and practices of database management and database design. Over the course of the semester we will discuss relational database design, normalization, SQL queries, reports and writing code to interface with databases. Additional lectures will cover ethical and privacy issues associated with database systems, as well as database security. In-class instruction and exercises will focus on the fundamentals for building and normalizing database structures, as well as creating sophisticated, interactive, and secure database applications. For the first four weeks of lecture we will spend part of each evening studying the PHP programming language in order to better understand how data structures are stored and retrieved on computer systems, as well as laying the groundwork for a robust interface to accessing databases via the Web. We will then learn the fundamentals of database design using a variant of MySQL called MariaDB. MySQL and MariaDB are powerful relational database management systems used at companies such as Google and Facebook. We use PHP and MySQL as tools because they are commonly (and freely) available and provide substantially the same set of tools as commercial databases such as Microsoft SQL Server and Oracle. Although there will be a substantial programming (PHP) component to this course, previous programming experience is not required. At the conclusion of this course students should: Understand the fundamentals of how data is stored in computer systems. Know the fundamentals of Structured Query Language (SQL) and how it can be used to store and retrieve data from a relational database. Be able to apply the principles used in class to build a web-based database application from the ground up. Grading Programming assignments (48% of final grade) A series of short programming and database exercises designed to complement the hands-on work done in class. These exercises must be completed each week before the start of class. They will represent not only a demonstration of the students' grasp of concepts covered in the course, they will also provide a convenient code base from which students can draw when designing their own projects. There will be 6 assignments worth 8 points each that will represent 48% of the final grade. Group Tutorial (12% of final grade) As an initial collaboration effort, each group of (3-5) students will develop and present an in-class tutorial on a database subject that will be assigned in class. Grades will be based on both the content of the tutorial and the presentation. Final Project (40% of final grade) The final project will also be done in groups of 3-5. For the final project, the groups will select or be presented with a real-world scenario for which a web application must be built. The project will incorporate database and programming concepts covered in class. Up to 20 points will be awarded based on the content and construction of the final project, 5 points will be awarded based on the in-class presentation, and 5 points will be based on group participants' member evaluations. Lecture Order The order and amount of time spent on each topic may vary from semester to semester Discussion of syllabus and class structure Linux, working at the command line Coding in PHP - Variables, creating forms Coding in PHP - Math and control structures Coding in PHP - Arrays Coding in PHP - File Access Sorting data Databases - Normalization Databases - Tables and relationships Introduction to MySQL/MariaDB Databases - SELECT statements Putting PHP and SQL together Searching databases JOIN types Refining your searches Securing your database applications Final presentations Books Needed for this Course: In the Beginning was the Command Line Neal Stephenson 1999 This book is available as a paperback or can be downloaded from the files page as command.txt. PHP for the Web (5th Edition) Larry Ullman