Relational Databases

Relational databases organize data into tables with predefined schemas, establishing relationships between these tables through keys, enabling efficient data re...

Relational databases son un tipo de database que almacena y proporciona acceso a data points que están relacionados entre sí. Están basados en el relational model, una forma intuitiva y directa de representar data en tables. Un relational database organiza data en una o más tables (o 'relations') de columns y rows, con un unique key identificando cada row. Cada table column contiene un tipo específico de data (e.g., 'name', 'age', 'address'), y cada row representa un record con un valor para cada column. Las relationships entre tables se establecen usando foreign keys, que son columns en una table que refieren al primary key (un unique identifier) en otra table. Esta structure permite un eficiente querying y manipulation de data usando Structured Query Language (SQL). Las ventajas clave incluyen data integrity (impuesta a través de constraints como primary keys, foreign keys, y data types), data consistency, facilidad de data retrieval a través de joins, y soporte para complex transactions (ACID properties: Atomicity, Consistency, Isolation, Durability). Ejemplos incluyen MySQL, PostgreSQL, Oracle Database, y SQL Server.

        graph LR
  Center["Relational Databases"]:::main
  Pre_data_structures["data-structures"]:::pre --> Center
  click Pre_data_structures "/terms/data-structures"
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Center --> Child_sql["sql"]:::child
  click Child_sql "/terms/sql"
  Center --> Child_postgresql["postgresql"]:::child
  click Child_postgresql "/terms/postgresql"
  Rel_nosql["nosql"]:::related -.-> Center
  click Rel_nosql "/terms/nosql"
  Rel_data_warehouse["data-warehouse"]:::related -.-> Center
  click Rel_data_warehouse "/terms/data-warehouse"
  Rel_relational_database["relational-database"]:::related -.-> Center
  click Rel_relational_database "/terms/relational-database"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explícalo como si tuviera 5 años

Piensa en el catálogo de fichas de una biblioteca. Cada ficha (row) tiene información sobre un libro (como título, autor), y las fichas están organizadas de una manera que te permite encontrar fácilmente todos los libros de un autor específico o todos los libros sobre un tema determinado (relationships).

🤓 Expert Deep Dive

The relational model, introduced by E.F. Codd, provides a theoretical foundation based on set theory and first-order predicate logic. Data is represented in normalized tables to reduce redundancy and improve data integrity. Normalization forms (1NF, 2NF, 3NF, BCNF) guide the design process. Relational [database](/es/terms/relational-database) management systems (RDBMS) implement SQL as the standard language for data definition, manipulation, and control. Query optimization is a critical component, where the RDBMS's query optimizer determines the most efficient execution plan for SQL queries, often involving techniques like indexing (B-trees, hash indexes), join algorithms (nested loop, hash join, merge join), and query rewriting. Transaction management ensures ACID properties through mechanisms like locking, logging (write-ahead logging), and concurrency control protocols (e.g., two-phase locking). Distributed relational databases introduce complexities in maintaining consistency and availability across multiple nodes, often employing techniques like two-phase commit (2PC).

🔗 Términos relacionados

Requisitos previos:
Más información:

📚 Fuentes