Parte 05 — Motores relacionales y dialectos
Que exige la norma, que añade cada producto y como se escribe código que sobrevive a un cambio de motor.
4 clases · 12 horas ·
15 conceptos · 12 fuentes
Antes de esta parte
Esta parte se apoya en lo trabajado antes. Si vienes de fuera del programa, revisa al menos el vocabulario de:
De qué trata esta parte
SQL no es un lenguaje, son varios que se parecen. Esta parte separa lo que exige la norma ISO/IEC 9075 de lo que cada producto añade por su cuenta, y produce un artefacto revisable en lugar de una intención: una matriz que registra, construcción por construcción, si es de norma y cómo la escribe cada motor del proyecto.
Después de la matriz vienen tres estudios de caso elegidos por contraste. PostgreSQL, como ejemplo de motor extensible que absorbe familias enteras —vectores, geometría, series— sin dejar de ser relacional. El bloque MySQL, MariaDB, SQL Server y Oracle, centrado exclusivamente en las divergencias que rompen código: modo estricto, cadena vacía tratada como nulo, plegado de identificadores. Y los dos motores embebidos, SQLite y DuckDB, cuya comparación deja ver el efecto del formato de almacenamiento con la menor cantidad posible de ruido operativo.
El objetivo no es ser portable a toda costa. Es saber, línea a línea, cuándo estás atando el proyecto a un producto —lo que muchas veces es la decisión correcta— y cuándo lo estás haciendo sin darte cuenta.
Al terminar esta parte podrás
- Distinguir qué construcciones de una consulta son de norma y cuáles son extensiones del producto.
- Mantener una matriz de portabilidad de las construcciones que el proyecto realmente usa.
- Explicar tres divergencias entre motores que rompen código y demostrar cada una con un ejemplo ejecutable.
- Elegir entre motor embebido y motor servidor, y entre orientación a filas y a columnas, con un argumento de carga de trabajo.
Las clases, una por una
Intermedio · 3 h ·
4 fuentes · requiere 024, 029
Qué exige la norma ISO/IEC 9075 y qué añade cada producto por su cuenta. El resultado de la clase no es una opinión sobre portabilidad sino un artefacto: una matriz que registra, construcción por construcción, si es de norma y cómo la escribe cada motor del proyecto.
norma frente a producto matriz de portabilidad extensión propietaria
Intermedio · 3 h ·
3 fuentes · requiere 012, 024
PostgreSQL como caso de estudio de motor extensible: tipos compuestos, arreglos, rangos y JSONB de fábrica, extensiones que añaden vectores o geometría sin tocar el núcleo, y un modelo de proceso por conexión que explica por qué el agrupador de conexiones deja de ser opcional. Incluye autovacuum, que reaparece en la parte 08.
extensión tipo compuesto proceso por conexión autovacuum
Intermedio · 3 h ·
4 fuentes · requiere 030
Las divergencias concretas que rompen código al cambiar de motor: el modo estricto de MySQL que convierte datos inválidos en silencio, la cadena vacía que Oracle trata como nulo, y el plegado de mayúsculas de los identificadores sin citar. Cada una se demuestra con el `INSERT` que en un motor falla y en otro «funciona».
colación modo estricto cadena vacia frente a nulo identificador citado
Intermedio · 3 h ·
3 fuentes · requiere 009, 031
Los dos motores embebidos del programa y por qué no compiten entre sí: SQLite es transaccional y por filas, DuckDB es analítico, columnar y vectorizado. La comparación deja ver, con la menor cantidad posible de ruido operativo, cómo el formato de almacenamiento decide el perfil de rendimiento.
motor embebido tipado dinamico almacenamiento columnar vectorización
Errores frecuentes en esta parte
Cada uno de estos es una creencia habitual y su corrección.
- «SQL es SQL.» Paginación, concatenación, tipos de fecha, `UPSERT` y comillas de identificadores divergen en todos los motores relevantes.
- «Usar una extensión propietaria es mala práctica.» A menudo es la decisión correcta. Lo malo es usarla sin saber que se está usando.
- «SQLite es una base de datos de juguete.» Es una de las piezas de software más desplegadas del planeta; su límite es la concurrencia de escritura y el servicio en red, no la seriedad.
- «DuckDB es SQLite para datos grandes.» Son motores con propósitos distintos: uno transaccional y por filas, otro analítico y columnar.
Vocabulario de la parte
Los 15 términos que esta parte introduce. Todos están también
en el glosario del programa con sus términos
relacionados.
Fuentes usadas en esta parte
12 obras distintas sostienen lo que se afirma en estas
4 clases.
Otras partes