INF 385M - Database Management
Restricted to graduate-level degree seekers at the School of Information.
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.
Three lecture hours a week for one semester.
Enrollment is restricted to iSchool degree seekers as of Summer 2017.
Detailed Course Summary:
Professor: Stan Gunn
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
Course Meeting Times
Fall and Spring: Wednesdays 6:30 to 9:30
Summer: Tuesdays and Thursdays 4:00 to 6:00
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
Know the fundamentals of Structured Query Language (SQL) and how
it can be used to store and retrieve data from a relational
Be able to apply the principles used in class to build a
web-based database application from the ground up.
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.
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
Databases - Normalization
Databases - Tables and relationships
Introduction to MySQL/MariaDB
Databases - SELECT statements
Putting PHP and SQL together
Refining your searches
Securing your database applications
Books Needed for this Course:
In the Beginning was the Command Line
This book is available as a paperback or can be downloaded from
the files page as command.txt.
PHP for the Web (5th Edition)