📒
Notes
Cloud ComputingData Science/AIGame Development
  • Home
  • Big O
  • Data Structures & Algorithms
    • Data Structures
      • Array
      • Stack
      • Queue
      • Linked List
      • Binary Tree
    • Algorithms
      • Searching
      • Sorting
      • Graphs
        • Searching
        • Minimum Spanning Tree
        • Shortest Path Algorithms
      • String Algorithms
  • Object Oriented Programming
  • Languages
    • HTML/CSS
      • CSS
    • C++
    • C#
      • Types
      • Keywords
        • Modifiers
          • Access Modifiers
        • Method Parameters
      • Operators and Expressions
      • Collections
      • Constructors
      • Delegates
      • Indexers
      • Concepts
      • Features
        • LINQ
          • Operators
          • Working with Data
          • Methods
          • Resources
        • Asynchronous Programming
        • Reflection
    • Dart
    • GraphQL
    • JavaScript
      • Variable and Parameter
      • Built-in objects
        • Array
        • Built-in Functions
      • Functions
      • Classes
      • Prototype
      • Libraries
        • jQuery
        • React
          • Components
          • State and Lifecycle
          • Hooks
            • useState
            • useEffect
          • Resources
      • Testing Framework
      • Web APIs
    • Kotlin
      • Basics
    • Python
      • Basics
      • Data Structures
      • Functions
      • Resources
        • Flask
    • SQL
      • Basics
      • Operators
      • JOINs
      • Aggregations
      • Subqueries
      • Views
      • Functions
        • Window Functions
      • Stored Procedures
      • Performance Tuning
      • Extras
    • Resources
  • 🌐Web Frameworks
    • Angular
      • Templates
      • Directives
        • Attribute Directives
        • Structural Directives
    • ASP.NET
      • Fundamentals
        • Dependency Injection
        • Middleware
        • Session & State Management
      • Web apps
        • MVC
          • Controllers
            • Filters
          • Models
            • Model Binding
            • Model Validation
          • Views
            • Tag Helpers
            • View Components
          • Features
        • Client-side development
      • Web APIs
        • Controller-based APIs
        • Minimal APIs
        • OpenAPI
        • Content Negotiation
      • SignalR
      • Host and Deploy
        • IIS
      • Security
    • Django
      • The Request/Response Cycle
    • Terminologies
      • Web Server
        • Internet Information Services
    • Resources
  • 📱App Frameworks
    • Introduction
      • Resources
    • Xamarin
      • Lifecycle
      • Custom Renderers & Effects
      • Behaviors
      • Triggers
      • Gestures
      • Commands
      • Dependency Service in XF
      • Libraries
      • Showcase
    • .NET MAUI
      • Controls
      • Navigation
      • Storage Options
  • Multi-Platform Frameworks
    • .NET
      • .NET Framework
        • ADO.NET
        • WCF
      • Fundamentals
        • Logging
        • Testing
      • Advanced
        • Asynchronous Programming
        • Parallel Programming
        • Threading
        • Memory Management
          • Garbage Collection
    • Flutter
  • Object-Relational Mappers
    • Entity Framework
      • Application Models
      • Configuration
      • Setting Up
      • Advanced
  • Databases
    • Introduction
      • DBMS Architecture
      • Normalization
      • Database Transaction Models
    • Relational Databases
      • Microsoft SQL Server
        • Basics
        • Functions
        • Stored Procedures
        • Error Handling
        • Log Shipping
        • Querying and Manipulating JSON data
        • Statements
        • Topics
        • Extras
    • Non-Relational Databases
      • MongoDB
      • Redis
        • Data Structures
        • Introduction
        • Managing Database
  • Tools
    • Version Control
      • Git
        • Setup and Config
        • Basics
          • Sharing and Updating Projects
        • Resources
      • Perforce Helix
    • GitHub
    • Powershell
  • Software Development
    • Software Development Life Cycle
    • Software Design Patterns
      • GoF Design Patterns
      • Architectural Patterns
        • MVC
        • MVVM
        • N-tier Architecture
        • Onion Architecture
        • Data Transfer Objects
      • CQRS
    • Software Design Principles
      • S.O.L.I.D. Priniciple
  • System Design
    • Topics
      • Load Balancing
  • Topics
    • JWT
    • Caching
      • Static vs Dynamic Caching
    • OSI model
      • HTTP
    • Glossary
    • API
      • SOAP
      • REST
    • Microservices
    • WebHooks
    • Practice
    • Operating Systems
      • Windows
    • Architecture
  • 🔖Bookmarks
  • 🔗Resources
Powered by GitBook
On this page
  • ACID Model
  • BASE Model

Was this helpful?

  1. Databases
  2. Introduction

Database Transaction Models

a set of rules which determines how a database organizes, stores, and manipulates data.

ACID Model

The ACID model provides a consistent system.

  • The ACID model ensures that a performed transaction is always consistent. This makes it a good fit for businesses that deal with online transaction processing (e.g., finance institutions) or online analytical processing (e.g., data warehousing).

Atomicity

  • "all or nothing"

  • If any part of the transaction fails entire transaction is aborted keeping the database unchanged.

  • each transaction is treated as a single unit, which succeeds completely or fails completely.

Consistency

  • enforces rules on data.

  • A processed transaction will never endanger the structural integrity of the database.

  • transactions can only take the data in the database from one valid state to another.

Isolation

  • Transactions cannot compromise the integrity of other transactions by interacting with them while they are still in progress.

  • concurrent transactions cannot interfere with one another and must result in a consistent database state.

Durability

  • guarantees that once a transaction is committed, it will remain committed even in the state of power failure, or crash.

  • when a transaction has been committed, it will remain committed.

Use Case Example

  • Financial institutions will almost exclusively use ACID databases. Money transfers depend on the atomic nature of ACID.

  • An interrupted transaction that is not immediately removed from the database can cause a lot of issues. Money could be debited from one account and, due to an error, never credited to another.

BASE Model

The BASE model provides high availability.

Basically Available

BASE-modelled No-SQL databases ensure the availability of data by spreading and replicating it across the nodes of the database cluster.

Soft State

Due to the lack of immediate consistency, data values may change over time.

Eventually Consistent

The BASE model does not enforce immediate consistency. However, until it does, data reads are possible.

Use Case Example

  • Marketing and customer service companies that deal with sentiment analysis will prefer the elasticity of BASE when conducting their social network research.

  • Social network feeds are not well structured but contain huge amounts of data that a BASE-modeled database can easily store.

Which one to choose?

  • Given their highly structured nature, ACID-compliant databases will be a better fit for those who require consistency, predictability, and reliability.

  • Those who consider growth to be among their priorities will likely want to choose the BASE model because it enables easier scaling up and provides more flexibility.

PreviousNormalizationNextRelational Databases

Last updated 2 years ago

Was this helpful?