Relational database management systems (RDBMS) are used when the data to be managed has formal and fixed relationships. Data is stored on disk as “rows,” and entire rows must be parsed even if individual attributes are all that’s needed. Reading one attribute from 10,000 records requires 10,000 rows to be read from the disk.
Every table has a schema that defines a fixed layout for each row, which is defined when the table is created. Every row in the table needs to have all the attributes and the correct data types.
RDBMS conforms to the ACID system: Atomicity, Consistency, Isolation, and Durability. This impacts the ability to achieve high performance levels and limits scalability, but for more applications of an RDBMS, the trade-off is worth it. SQL (Structured Query Language) is used to interact with most SQL (relational) database products.
Relational (SQL) vs. NoSQL
In a relational database, a record is often normalized and stored in separate tables, and relationships are defined by primary and foreign key constraints.
In a NoSQL database like DynamoDB, a book record is usually stored as a single JSON document.