-
Overview Transactions and concurrency control ensure that a database remains in a consistent state even when multiple users are modifying data simultaneously. This is critical for preventing data corruption and ensuring reliability. Core Concepts Transaction: A logical unit of work that must be completed entirely or not at all (Atomicity). Concurrency Problems: Dirty Read: Reading…
-
Overview Relational databases (RDBMS) store data in structured tables with predefined schemas. They are based on the relational model of data and use Structured Query Language (SQL) for data manipulation and retrieval. Core Concepts Tables, Rows, and Columns: Table: A collection of related data (e.g., Users). Row (Tuple): A single record in a table. Column…
-
Overview NoSQL (“Not only SQL”) databases are non-relational data stores that provide flexible schemas and horizontal scalability. They are designed to handle large volumes of unstructured or semi-structured data. Core Concepts Data Models: Document Store: Stores data as documents (e.g., JSON/BSON). Great for content management. (e.g., MongoDB). Key-Value Store: Simple map of keys to values.…
-
Overview Indexing is a data structure technique used to quickly locate data without having to search every row in a database table. An index is like a table of contents for a database, storing a sorted version of a column’s values and a pointer to the original row. Core Concepts B-Trees (Balanced Trees): The most…
-
Overview SOLID is an acronym for five design principles intended to make software designs more understandable, flexible, and maintainable. Core Concepts S – Single Responsibility Principle (SRP): A class should have one, and only one, reason to change. It should perform only one job. O – Open/Closed Principle (OCP): Software entities should be open for…
-
Overview Object-Oriented Programming (OOP) is a programming paradigm based on the concept of “objects”, which can contain data (attributes/properties) and code (methods). It aims to implement real-world entities like inclusive objects to make the codebase more modular and intuitive. Core Concepts Class: A blueprint for creating objects. Object: An instance of a class. Encapsulation: Bundling…
-
Overview This topic compares two primary architectural styles for building applications: the Monolith (a single, unified unit) and Microservices (a collection of small, independent services). Core Concepts Monolithic Architecture: Unified: All business logic, data access, and UI are in one codebase. Pros: Simple to develop, test, and deploy initially. Low latency between components. Cons: Becomes…
