Info solo SQL Flashcards
(41 cards)
¿Cómo funciona SQL a nivel de ejecución?
Cuando se ejecuta una instrucción SQL, pasa por varios componentes del sistema de base de datos:
- Analizador: Tokeniza la instrucción y verifica su corrección sintáctica y semántica (por ejemplo, que termine con punto y coma) y valida la autorización del usuario.
- Motor relacional: Interpreta la instrucción SQL y genera un plan de ejecución eficiente (código de bytes).
- Motor de almacenamiento: Ejecuta el código de bytes interactuando con el almacenamiento físico y devuelve el resultado.
¿Qué son los comandos SQL y cómo se clasifican?
Los comandos SQL son instrucciones específicas para manipular datos en bases de datos relacionales. Se clasifican en:
- DDL (Data Definition Language): Define estructuras (ej. CREATE, ALTER).
- DQL (Data Query Language): Recupera datos (ej. SELECT).
- DML (Data Manipulation Language): Modifica datos (ej. INSERT, UPDATE, DELETE).
- DCL (Data Control Language): Controla permisos (ej. GRANT, REVOKE).
- TCL (Transaction Control Language): Gestiona transacciones (ej. COMMIT, ROLLBACK).
¿Qué son los estándares SQL y para qué sirven?
Los estándares SQL son pautas formales creadas por ANSI e ISO desde 1986 para establecer una base común del lenguaje. Permiten que los distintos sistemas de gestión de bases de datos (SGBD) sigan principios uniformes y facilitan la portabilidad de consultas entre plataformas.
¿Qué es la inyección de código SQL y por qué es peligrosa?
Es un ataque donde se insertan comandos SQL maliciosos en campos de entrada para manipular la base de datos. Por ejemplo, un atacante puede escribir ‘OR 1=1’ en un campo de usuario para acceder sin autorización. Es una vulnerabilidad crítica que puede exponer o dañar datos.
¿Qué es MySQL y en qué se diferencia de SQL?
MySQL es un sistema de gestión de bases de datos relacional (RDBMS) de código abierto que implementa SQL. SQL es el lenguaje estándar, mientras que MySQL es un software específico que usa ese lenguaje. MySQL puede tener funciones propias no incluidas en el estándar SQL.
¿Qué es NoSQL y cómo se diferencia de SQL?
NoSQL se refiere a bases de datos no relacionales que no usan tablas. Permiten almacenar datos como documentos, pares clave-valor o grafos. Son escalables horizontalmente y flexibles para datos no estructurados. SQL, en cambio, se basa en tablas, relaciones y un lenguaje estructurado común.
¿Qué diseño es más eficiente y sigue buenas prácticas si una interfaz muestra repetidamente el nombre de países de clientes?
Crear una tabla separada de países con un ID numérico y usar ese ID como clave foránea en la tabla de clientes.
¿Qué se considera una mala práctica al definir claves primarias en el proceso de normalización?
Usar claves lógicas como correos electrónicos; pueden cambiar y son lentas de procesar.
¿Qué se debe usar para relacionar registros entre tablas sin replicar datos?
Una clave foránea (FOREIGN KEY) que referencia la clave primaria de otra tabla.
¿Qué efecto tiene un índice sobre una columna frecuentemente consultada?
Mejora la velocidad de lectura permitiendo búsquedas rápidas, pero puede ralentizar escrituras.
¿Cuándo es contraproducente agregar muchos índices en una tabla?
Cuando hay muchas operaciones de escritura, ya que cada una requiere actualizar los índices.
¿Por qué los enteros son preferibles a los strings como claves?
Ocupan menos espacio y su comparación es más rápida, optimizando el acceso a registros.
¿Qué hace SET NULL en una relación con clave foránea si se elimina el padre?
Establece el campo en la tabla hija como NULL.
¿Por qué se debe usar ON DELETE CASCADE con cuidado?
Puede eliminar masivamente datos relacionados si no se gestionan bien las relaciones.
¿Diferencia entre NOT NULL y CHECK?
NOT NULL impide valores nulos; CHECK restringe valores mediante una condición lógica.
¿A qué tipo de sentencia SQL pertenece UPDATE?
A las sentencias DML (Data Manipulation Language).
¿Qué sentencia revierte los cambios de una transacción?
ROLLBACK.
¿Diferencia principal entre SQL y lenguajes como Python?
SQL es no procedimental: describe qué obtener, no cómo lograrlo paso a paso.
¿Qué operador lógico selecciona registros en una lista de valores?
IN.
¿Por qué no se usa = NULL en SQL?
NULL representa desconocido; se debe usar IS NULL.
¿Cómo combinar múltiples condiciones en SQL?
Usando operadores lógicos como AND, OR, NOT.
¿Qué hace JOIN en SQL?
Une filas de dos o más tablas basándose en una condición. Ej: SELECT a.nombre, b.ciudad FROM a JOIN b ON a.id = b.id;
¿Qué hace ON DELETE CASCADE?
Al eliminar el registro padre, elimina automáticamente los hijos relacionados. Ej: FOREIGN KEY (…) REFERENCES … ON DELETE CASCADE
¿Qué implica ON DELETE RESTRICT?
Impide eliminar un registro padre si hay registros hijos relacionados.