SQL Database
Relational database concept that stores structured data in tables and uses SQL for querying and manipulation.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeArchitectural
- Organizational maturityIntermediate
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Missing index management leads to performance degradation
- Unplanned schema changes can cause lockups and downtime
- Misconfiguration increases attack surface and risk of data loss
- Perform schema migrations in small, reversible steps
- Maintain indexes based on real query profiles
- Schedule regular backups and recovery drills
I/O & resources
- Data model / schema definition
- Capacity and performance requirements
- SLAs for consistency, availability and latency
- Persistent relational records
- Transactional integrity guarantees
- Interfaces (SQL) for querying and manipulation
Description
An SQL database is a relational database system that stores structured data in tables and uses SQL as its query language. It provides transactions, integrity constraints and relational modeling. SQL databases are suited for consistent OLTP workloads, while design choices affect latency, scalability and operational effort.
✔Benefits
- Strong consistency via ACID transactions
- Mature query language (SQL) with broad tool support
- Efficient relational modeling of complex business rules
✖Limitations
- Horizontal scaling can be complex and costly
- Rigid schemas hinder rapid, schema-less iteration
- Not optimal for highly parallel, distributed analytics without adaptation
Trade-offs
Metrics
- Query latency (median / p95)
Measure of response time for typical queries to assess performance.
- Transactions per second (TPS)
Number of committed transactions per time unit as a throughput metric.
- Transaction failure rate
Percentage of failed or rolled-back transactions for reliability assessment.
Examples & implementations
PostgreSQL in a web application
PostgreSQL used as primary transactional store for user and order data.
MySQL as configurable metadata service
MySQL stores global configurations and feature flags with replication for availability.
Oracle for critical business applications
Oracle database in a financial application with strict integrity and compliance requirements.
Implementation steps
Specify requirements and data model
Design schema and indexes
Provision and configure production instance
Set up replication, backup and monitoring
Test migration and rollout strategy
⚠️ Technical debt & bottlenecks
Technical debt
- Unstructured migration scripts without version control
- Missing or stale indexes in production tables
- Monolithic database without a clear partitioning strategy
Known bottlenecks
Misuse examples
- Using an SQL database for highly parallel distributed analytics without adaptation
- Missing transaction logic and manual data repairs
- Untested sharding strategies in critical paths
Typical traps
- Ignoring lock contention in concurrent writes
- Relying on defaults without scaling evaluation
- Insufficient observability for slow queries
Required skills
Architectural drivers
Constraints
- • Predefined schema requires migration processes
- • Transaction isolation can limit concurrency
- • Regulatory requirements for privacy and auditing