SE 3520 Database Systems
- Division: Natural Science and Math
- Department: Computer Science & Engineering
- Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0
- Prerequisites: CS 2420, Acceptance into the Software Engineering BS Program
- Corequisites: SE 3250, SE 3820
- Semesters Offered: Fall
- Semester Approved: Spring 2023
- Five-Year Review Semester: Summer 2028
- End Semester: Fall 2028
- Optimum Class Size: 20
- Maximum Class Size: 24
Course Description
Databases are everywhere. This advanced database course covers both the why and how you design a database, structured query language (SQL) syntax and usage, and how a software engineer uses a database to solve data integrity problems before they exist. Students will also learn about joins, aggregates, views, sequences and triggers. The course includes a comprehensive database project in a team environment.
Justification
Databases are incredibly prevalent -- they underlie technology used by most people every day if not every hour. Databases reside behind a huge fraction of websites; they're a crucial component of telecommunications systems, banking systems, video games, and just about any other software system or electronic device that maintains some amount of persistent information. In addition to persistence, database systems provide a number of other properties that make them exceptionally useful and convenient: reliability, efficiency, scalability, concurrency control, data abstractions, and high-level query languages. Databases are ubiquitous and important computer science tools. This is a required course for the Bachelor of Science in Software Engineering.
Student Learning Outcomes
- Students will be proficient in the SQL language including queries, joins, indexes, constraints, common table expressions (CTE), and subqueries.
- Students will be able to apply database design and the rules of data normalization to enforce data integrity.
- Students will be able to analyze complex business scenarios and create data models which follow the rules of data normalization.
- Students will be able to design, implement, and populate a database serving a backend application.
- Students will demonstrate 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 (ABET-SLO5).
- Students will demonstrate an ability to acquire and apply new knowledge as needed using appropriate learning strategies (ABET-SLO7).
Course Content
The following topics will be covered in this course:• Relational design and normalization• SQL language• Transactions• Database procedural language: triggers, procedures, functionsThis course includes a group project in which students design a database to support a real application (design, constraints, data population).
Key Performance Indicators: Homework exercises 20 to 30%Quizzes 5 to 30%Team-based project deliverables 20 to 40%Final examination 15 to 30%Representative Text and/or Supplies: Database Systems: The Complete Book (Current Edition) by Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer WidomPedagogy Statement: Inclusivity is promoted by fostering a culture of regularly seeking student contributions during course lectures. Each student is expected to contribute, but the instructor should strive to limit the speaking of those who might otherwise monopolize the conversation and instead actively seek out the comments from all other classmates. The instructor will be sensitive to personal student feelings during this act of inclusivity so that it does not unduly put a student on the spot by utilizing techniques such as allowing an unprepared student to pass the question on to a different classmate.Instructional Mediums: Lecture