CMPSC 431W: Database Management Systems

Textbook Information

  • Required Text: Fundamentals of Database Systems, 7th Edition, by Ramez Elmasri and Shamkant B. Navathe, Pearson, 2016, ISBN 978-0-13-397077-7.

Published Remarks

  • None

Hardware Requirements

  • None

Software Requirements

  • None

Proctored Exams

  • None

Course Description

CMPSC 431W topics include: conceptual data modeling, relational data model, relational query languages, schema normalization, database/Internet applications, and database system issues.

Prerequisite:  SWENG 311

Overview

CMPSC 431W covers a broad introduction to databases. It covers basic database terminology and concepts. It will focus on the relational database model and relational databases. This includes database design at the conceptual level and then mapping this conceptual design into a logical design. The logical design will be used to build a relational database which will then be populated with data. The SQL query language will be covered in detail and will be used in hands-on exercises. The concept of database normalization will be used to normalize a database schema. Additional topics of object databases, distributed databases, and NoSQL databases will be covered, as will additional database system issues. The provided course modules mainly cover the critical points for an introductory course. Additional details are available in the textbook. This course will be delivered via this site on Canvas. You should start in Canvas and pay attention to the course announcements as you enter the course. The announcements will help you stay on track, be used to provide feedback, and will communicate any changes that may occur as the course progresses. The course has been segmented into modules which you should complete based on the course schedule. At the beginning of each module, there is a guide which contains the learning objectives, what you need to do and what you need to complete – that is what you need to submit for a grade. Make sure you carefully follow the guides.

Course Outline:

Module 1 – Introduction to Relational Database Management Systems Module 2 – Database System Concepts and Architecture Module 3 – Data Models, Entities, Relationships, Multiplicity, ER Diagram Introduction Module 4 – Additional Modeling and ER Diagram Concepts Module 5 – Relational Data Model and Relational Database Design Module 6 – SQL Basics Module 7 – SQL Continued: Aggregation, Joins, GROUP-BY/HAVING Module 8 – SQL Continued: Sub-Queries Module 9 – SQL Continued: Assertions, Triggers, Views Module 10 – Database Programming Module 11 – Database Normalization Module 12 – Object and Object-Relational Database Concepts Module 13 – Transactions, Concurrency, Database Recovery, Security Module 14 – Distributed Databases Module 15 – NoSQL Databases and Big Data

Objectives

By the end of this course, students will be expected to demonstrate competency in the following areas:

  • Describe the characteristics and advantages of the database approach.
  • Demonstrate a basic understanding of database vocabulary.
  • Define a conceptual database model using ER diagrams.
  • Convert the conceptual data model to a relational database model.
  • Normalize a relational database schema.
  • Build a relational database and populate it with test data using SQL.
  • Perform basic database queries using SQL.
  • Perform, using SQL, advanced database queries, including joins, aggregation, and sub-selects.
  • Discuss the important database topics of transactions, concurrency, database recovery, and security
  • Describe the basic concepts of object and object-relational databases, distributed databases, and NoSQL databases; describe the differences between these and relational databases.

Outcomes

Upon completion of the course, students should possess the following skills:

  • Understand the principles and applications of RDBMS and NoSQL.
  • Understand how to create and define databases, tables, fields and types.
  • Understand how to design and depict the relationships for relational databases.
  • Understand how to optimize the DBMS by indexing and normalizing the table designs.
  • Understand how to query databases and perform transactions using SQL.
  • Understand how to perform joins, aggregation and apply sub-selects to improve performance and gain the desired results.
  • Understand the pros and cons of NoSQL.

 

This course supports the following ABET outcomes:

  ABET Outcomes (CS) ABET Outcomes (SE)
(1) Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
(4) Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
(5) Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.

General Guidelines for Assignments and Grading:

1. Grading Policy

Grading is based on midterm exams, quizzes, lab assignments, and course projects. The following weights are assigned to the different assessed components of the course:

Category Evaluation Percentage
Midterm Exam I Individual 8%
Midterm Exam II Individual 9%
Midterm Exam III Individual 8%
Quizzes (each module) Individual 15%
Module Assignments (Modules 1-11) Individual 25%
Project 1 Individual 10%
Project 2 and Deliverables Teamwork 25%

  Assignments/Labs: Most assignments are hands-on and concentrate mainly on the design of databases and the application of building and working with databases. Assignments are given on a weekly basis. Assignments are due by midnight Sunday (11:59pm, US Eastern time) at the end of the week. Most assignments require a submission from each student, and your submission must be one pdf file. Assignments that are turned in late (after midnight Sunday) will be assessed with a penalty of up to 100%.  A penalty will be assessed unless pre-approval is obtained from the instructor. Approval will not be given at the last minute unless there is a documented emergency. The amount of penalty (remember that a 100% penalty is the same as not accepting the assignment) will be determined by how long after the deadline the assignment is submitted. Once the assignment is graded for the class, the assignment will not be accepted. Course Projects The course projects will consist of the design and development of database systems. The main goal is to help you gain in-depth experience with database design and construction. The course project grade consists of three parts, (a) database construction (from requirements to a working system), (b) appropriate documentation, and (c) system presentation. Your grade for any group assignments will reflect an overall score for the team plus an individual score based on the peer evaluations that will be performed at the end of the assignment (each student will be evaluated by other team members about your involvement in the production of the project deliverables). Note that this is considered a writing intensive course for ABET purposes. The score for the two projects will have a component that reflects the clarity of communication of the written portions of the document. Spelling and grammar will be evaluated, but the deduction in these areas will be less severe if the meaning of the writing is clear.

2. Grade Assignments

Assessments are based on 100 points with final letter grades being assigned as follows:

A A- B+ B B- C+ C D F
93 to 100 90 to <93 87 to <90 83 to  <87 80 to <83 77 to <80 70 to <77 60 to <70  <60