# Overview A Relational Database is the most common type of database. Their primary characteristic is their ability to model data as tables with relationships between the tables using a [[Relational Data Model]]. ![[Relational Data Model#Overview]] # Key Considerations ## ACID Compliance An [[ACID]] compliant database is considered to have high data integrity due to adhering to four key principles: ![[ACID#Overview]] ## Views ## NewSQL Database There are newer relational databases that aim to mitigate issues with classical relational databases (e.g., postgreSQL and MySQL), such as slow writes during distributed transactions. These newSQL databases include: - [[VoltDB]] - specialized alternative for isolation via [[Actual Serial Execution of Transactions]] - [[Spanner]] - specialized alternative for fast distributed reads via a [[GPS Clock]] to track timestamps related to transactions write times to track [[causality]]. # Implementation Details ## Scalability ### Database Indexes One of the key approaches for improving read queries on a relational database is through [[Database Index]]es. Indexing creates a complimentary data structure based on selected column(s) that can be used to more efficiently search for data in those columns. Indexes in relational databases are particular useful since they support arbitrarily support many different indexes, which allows for creating many indexes to fit all necessary access (i.e., query) patterns. Additionally, relational databases support multi-column and specialized indexes (e.g., geospatial indexes, full-text indexes). ## Transactions [[Database Transactions]] are a way of grouping multiple operations together in a single atomic operation. # Useful Links # Related Topics - [[Relational DB Products]] ## Reference #### Working Notes #### Sources #### Related Topics - [[Data Modeling]]