Relational Database Implementation and Applications (Coursera)

Relational Database Implementation and Applications (Coursera)
Course Auditing
Categories
Effort
Certification
Languages
Prior knowledge of relational databases and experience in designing relational databases are required.
Misc

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Relational Database Implementation and Applications (Coursera)
In today's data-driven world, the ability to work with relational databases is an essential skill for professionals in various fields. This course is designed to equip you with the knowledge and practical skills needed to become proficient in database management and application development. Whether you are pursuing a career as a database administrator, software developer, or data analyst, this course provides you with a strong foundation to excel in your chosen field.

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

By the end of this course, students will be able to:

• Describe relational databases and their core components, including tables, rows, columns, and keys.

• Implement relational database and usage of indexes, views, triggers, temporary tables, functions, and stored procedures.

• Describe their role in enforcing business logic and data integrity in database environment.

• Apply database design and SQL knowledge to real-world application development.

• Develop database-driven applications using programming languages, such as Java, Python or C/C++ and frameworks.

• Describe the concepts of indexing and hashing in efficient support for search operations.

• Describe the concepts of transactions and their properties (ACID: Atomicity, Consistency, Isolation, Durability).

• Define concurrency control and understand the impact of uncontrolled concurrent transactions on data integrity.

Recommended Pre-Requisites: CS 725 (Intro to Relational Databases) & CS 726 (Relational DB Design), Intermediate knowledge in Java, Python, C/C++ programming.


Software Requirements: VS Code editor, MySQL Workbench, PostgreSQL


What you'll learn

- Implement relational database and usage of indexes, views, triggers, temporary tables, functions, and stored procedures.

- Develop database-driven applications using programming languages, such as Java, Python or C/C++ and frameworks.

- Describe transaction and concurrency control concepts in relational databases.


Syllabus


Module 1: Indexes, Views, Functions, and Stored Procedures

Welcome to Relational Database Implementation and Applications! In Module 1 of this course, you'll delve into the fundamental aspects of building relational databases. You'll learn about implementing indexes, views, triggers, functions, and stored procedures in relational databases. We'll highlight the significance of these elements in databases and how they enhance query performance. You'll explore the creation of both simple and complex views, understanding how they offer data abstraction benefits and the versatility of managing data through views. Additionally, you'll gain experience in creating and optimizing database operations using user-defined functions, triggers, and stored procedures in SQL, thus acquiring comprehensive knowledge of accurate business logic implementation and performance optimization techniques.


Module 2: Advanced Window Functions and OLAP Queries in SQL

Module 2 of this course offers an immersive exploration of the powerful world of SQL window functions and OLAP (Online Analytical Processing) concepts. You will learn about the definition and benefits of window functions, gaining proficiency in advanced applications such as RANK(), DENSE_RANK(), LEAD(), LAG(), NTILE(n), PERCENT_RANK(), and CUME_DIST(). Additionally, you'll develop the skills to control window function behavior using PARTITION BY and ORDER BY clauses, define custom window frames with RANGE and ROWS clauses, and design, query, and analyze OLAP datasets using ROLL-UP and DRILL-DOWN levels of aggregation.


Module 3: Database Application Development

In Module 3 of this course, you'll learn how to develop database applications using versatile programming languages such as Java, Python, or C++. You'll discover how to establish connections to databases, perform essential CRUD (Create, Read, Update, Delete) operations, and write code that supports SQL features like triggers, functions, and stored procedures used to facilitate complex queries in relational databases. The focus will be on robust database interactions, including error and exception handling to address connection issues, query failures, and data validation, ensuring the reliability of your applications.


Module 4: Indexing and Hashing

Module 4 of this course provides an in-depth understanding of indexing within database systems. You'll define indexing and grasp its critical importance. Through comprehensive exploration, you'll differentiate between various types of indexes, including ordered and hash indexes, primary and secondary indexes, as well as multi-level and single-level indexes. Additionally, you'll delve into the structure of B+-trees, including nodes and leaves, and learn how these structures maintain balance, supporting efficient search operations. You'll also gain insight into B+-tree insertion and deletion operations.


Module 5: Transaction Concepts

In Module 5, you will enter into the world of database transactions and their critical role in ensuring data consistency and integrity. You will gain a comprehensive understanding of the four ACID properties (Atomicity, Consistency, Isolation, Durability) and their significance in maintaining the reliability of transactions. Additionally, you'll explore techniques for managing concurrent access to data, including discussions on COMMIT and ROLLBACK behaviors, serial and serializable schedules, and conflict serializability tests using graph-based techniques. This module will also cover concepts like equivalent serial schedules, recoverability, and cascade-less schedules, empowering you to design and manage complex database systems with confidence and precision.


Module 6: Concurrency Control

Module 6 focuses on concurrency control in database management systems. You'll define concurrency control and understand its significance in maintaining data integrity while delving into the principles of lock-based concurrency control. This module will cover key concepts such as shared and exclusive lock types, lock modes, lock compatibility, and introduce the two-phase locking protocol with its guarantees. Additionally, you'll gain insights into how transactions acquire and release locks within this protocol, and you'll explore the concept of deadlocks and their underlying causes, equipping you with essential knowledge to manage concurrent access effectively and prevent data integrity issues in database systems.


Summative Course Assessment

This module contains the summative course assessment that has been designed to evaluate your understanding of the course material and assess your ability to apply the knowledge you have acquired throughout the course.



MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Course Auditing
46.00 EUR
Prior knowledge of relational databases and experience in designing relational databases are required.

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.