DataBase Systems
CMPSC-305-00: Database Systems
Academic Bulletin Description
A study of the application and evaluation of database management systems. Participating in hands-on activities that often require teamwork, students design, implement, and deploy database systems that store interdisciplinary data sets. In addition to learning how to develop and assess interfaces for databases, students study the efficiency and effectiveness of alternative data management systems. During a weekly laboratory session students use industry-grade technology to complete projects, reporting on their results through both written documents and oral presentations. Students are invited to use their own departmentally approved laptop in this course; a limited number of laptops are available for use during class and lab sessions. Prerequisite: CMPSC 101. Distribution Requirements: QR, SP.
The Lab
In order to acquire the proper skills in technical writing, critical reading, and the presentation and evaluation of technical material, it is essential for students to have hands-on experience in a laboratory. Therefore, it is mandatory for all students to attend the laboratory sessions. If you will not be able to attend a laboratory, then please see the one of the course instructor at least one week in advance in order to explain your situation. Students who miss more than two unexcused laboratories will have their final grade in the course reduced by one letter grade. Students who miss more than four unexcused laboratories will automatically fail the course.
Distribution Requirements
The following definitions were taken from the Distribution Requirements: Learning Outcomes website.
Quantitative Reasoning (QR). Quantitative Reasoning is the ability to understand, investigate, communicate, and contextualize numerical, symbolic, and graphical information towards the exploration of natural, physical, behavioral, or social phenomena.
- Learning Outcome: Students who successfully complete this requirement will demonstrate an understanding of how to interpret numeric data and/or their graphical or symbolic representations.
Scientific Process a Knowledge (SP). Courses involving Scientific Process and Knowledge aim to convey an understanding of what is known or can be known about the natural world; apply scientific reasoning towards the analysis and synthesis of scientific information; and create scientifically literate citizens who can engage productively in problem solving.
- Learning Outcome: Students who successfully complete this requirement will demonstrate an understanding of the nature, approaches, and domain of scientific inquiry.
This course meets the course distribution requirements of QR (Quantitative Reasoning) and SP (Scientific Process and Knowledge) for its use of applying concepts of computer programming to the design and creation databases which are tested on public data from real-world applications. In addition, the class aims to introduce an component of ethical reasoning in the design, maintenance and application of database systems for potentially sensitive data.
Course Objectives
The course goals are formally the following;
- Correctly describe object-oriented data storage, low-level data storage, transactions and concurrency control, data warehousing and data mining.
- Design and implement SQL databases and formulate advanced structured queries to extract knowledge from databases.
- Implement Python programs to access databases, define and execute queries, and produce web-based visualizations of the data and query results.
- Create and/or use post-relational database management systems and contrast them with relational database systems.
- Clearly and persuasively communicate the results of database inquiries and critically examine and reflect on their ethical implications.
The essence of the discipline of computer science is algorithms; this course will introduce students to the principles of data management using algorithms. We will investigate some of the key techniques that scientists use to manage data. Areas of discussion include, but are not limited to, relational databases and query languages, object-oriented data storage, encoding data in the eXtensible Markup Language (XML), low-level data storage, transactions and concurrency control, data warehousing and mining, and the implementation and testing of database applications.
The course will introduce students to the theory and practice of data management while covering both the well-established and the cutting-edge areas of the discipline.
The course also invites students to assess the correctness of their implementations and conduct both analytical and empirical evaluations of the performance of data management techniques. Moreover, the course will ask students to implement small- and medium-scale data management systems and to install and use a wide variety of support tools. In addition to improving their teamwork skills, students will enhance their ability to write and speak about software in a clear and concise fashion. Ethical discussions are also introduced into the course to introduce students to the concepts of responsible computing.
Performance Objectives
At the completion of this class, a student must be comfortable with fundamental data management topics and be aware of current research in the area. When given a new data management problem, students should be able to select proper data management tools and implement a complete application that uses them to solve the stated problem. Students also must develop a toolkit of data management concepts that they can use in the context of the solutions to real-world problems. Finally, students must develop and apply a strong knowledge of analytical and empirical techniques that they can use to characterize and predict the performance of data management systems.
Students should also be able to handle many of the important, yet accidental, aspects of implementing programs with modern programming languages and data management systems. In addition to being comfortable with program editors, compilers, debuggers, testing tools, virtual machines, database management systems, and query languages, students will be working with some Python programming where code will be provided to be modified.
Suggested TextBook:
- Database System Concepts 7th Edition, March 2019 by Abraham Silberschatz (Author), Henry Korth (Author), S. Sudarshan (Author)
- ISBN-13: 978-1260084504
- ISBN-10: 1260084507
Other Useful Textbooks:
Think Python, first edition, by Allen B. Downey.
Discord class server
If you are already on the department’s Discord server, then you will be given access to the course’s Discord channel, called #database-systems
. If not, then you will need to join the department’s Discord server before you can be added to the course’s channel.
Note: During the first week or so, I will manually add your name to the class’ Discord channel.
Meeting Information
Classes
Tuesday/Thursday 9:30 AM - 10:45 AM 29 August 2023 - 19 December 2023 Alden Hall, 101 Lecture
Labs
Thursday 2:30 PM - 4:20 PM 29 August 2023 - 19 December 2023 Alden Hall, 101 Lab
Course Calendar
Office Hours (Dr. Bonham-Carter)
Schedule an appointment with OBC
Office Hours (Hang Zhao)
- Wednesday and Friday: 9am - 11pm, Quigley 118
- Thursday: 10:55am - 12:10pm, Alden 104
- By appointment
Schedule an appointment with HZ