Advanced Database

Working on from on February 01, 2020 ·

General Information

  • University: Salahaddin University-Erbil
  • Department: Software Engineering Dept.
  • My Status: Lecturer
  • Level: BSc
  • Year: 2018-Current

Course Description

This course aims to provide a thorough understanding of the underlying mechanisms and components that modern database management systems rely on to deliver efficient and reliable performance.

The curriculum covers a range of fundamental concepts that are essential to both high-performance transaction processing systems (OLTP) and large-scale analytical systems (OLAP). Students will be exposed to a variety of topics, including database design, query processing and optimization, indexing, concurrency control, and recovery management.

Furthermore, the course emphasizes the importance of both efficiency and correctness in the implementation of these ideas. To facilitate a more hands-on learning experience, all class projects will be centered on real-world in-memory, multi-core database systems, which will enable students to apply the concepts and principles covered in the course to practical scenarios.

Overall, this course is designed for advanced undergraduate students in software engineering who are looking to deepen their understanding of database management principles. Through a rigorous and scholarly examination of these core concepts, students will gain the knowledge and skills necessary to develop and optimize high-performance, reliable database management systems.

Course Objectives

At the end of the course, students will be able to:

  1. Understand SQL Performance Tuning
  2. ER Diagram analysis and design and implementation
  3. Security and Data Integrity
  4. Data Analysis
  5. Transactions and concurrency
  6. Replications
  7. Backups

Course Content

References

Grade Distribution

The Grade is generated from the examination result(s) with the following:

  • 20% Group Project
  • 30% Practical weekly exams + Quizzes
  • 30% Final Theoretical Exam
  • 20% Final Practical Exam

Group Project Description

The group project should be completed by two students working together. You will be using PostgreSQL to fulfill the following requirements:

  1. Requirement gathering: Collect and analyze the requirements for your project.
  2. Normalization and ER diagrams: Design and create Entity-Relationship diagrams, ensuring proper normalization of the database schema.
  3. Creating proper tables and inserting data: Implement the schema in PostgreSQL by creating tables and inserting sample data.
  4. Creating User roles and users: Set up user roles and users with appropriate permissions for database access and management.
  5. Select queries for data retrieval: Based on the gathered requirements, create SQL SELECT queries to retrieve relevant data from the database.
  6. Using transactions for data integrity: Ensure data integrity by implementing transactions for critical operations.
  7. Creating a Replication for the database: Set up database replication to maintain a consistent, synchronized copy of the database.
  8. Using OLAP to generate reports: Utilize Online Analytical Processing (OLAP) techniques to generate informative reports from the database.

Suggestions for the database systems(Not Mandatory):

  1. Library Management System: Create a system to manage book loans, reservations, and returns in a library. The system should be able to handle information about books, authors, publishers, library members, and loan history.

  2. Inventory Management System: Develop a system to manage the inventory of a small business, such as a retail store or a warehouse. The system should handle products, suppliers, customers, sales, and purchase orders.

  3. Hospital Management System: Design a system to manage patient records, doctor appointments, medical staff, and billing information for a hospital or clinic.

  4. University Management System: Create a system to manage student enrollment, course registration, instructor information, and class schedules for a university.

  5. Employee Management System: Develop a system for managing employee records, including personal information, job titles, departments, and salary information.

  6. Online Ticket Booking System: Design a system for booking tickets for events like concerts, movies, or sports. The system should handle event information, venue details, ticket pricing, and user registration.

  7. Real Estate Management System: Create a system for managing property listings, client information, and transactions for a real estate agency.

  8. Restaurant Reservation System: Develop a system for managing table reservations and customer information for a restaurant.

  9. Hotel Booking System: Design a system for managing room reservations, guest information, and billing for a hotel.

  10. Fitness Club Membership System: Create a system for managing memberships, class schedules, and instructor information for a fitness club.

Make sure to collaborate effectively and divide the tasks evenly between both team members.


Polla Fattah