Fundamentos de Bases de Datos: Motores, SQL Avanzado y Arquitectura SGBD

Clasificado en Informática

Escrito el en español con un tamaño de 6,68 KB

Motores de Almacenamiento en Bases de Datos

InnoDB

Es una tecnología de almacenamiento de datos. Su característica principal es que soporta transacciones de tipo ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad), bloqueo de registros e integridad referencial.

MyISAM

Ofrece mayor velocidad general a la hora de recuperar datos. Es recomendable para aplicaciones en las que dominan las sentencias SELECT frente a las operaciones de modificación (INSERT / UPDATE).

MEMORY

Tablas de longitud fija muy rápidas que se crean en memoria (RAM) y que desaparecen cuando el servidor termina o se reinicia.

Gestión de Esquemas y Restricciones

CONSTRAINT

Cláusula utilizada para crear o eliminar restricciones. En una sentencia CREATE TABLE puede aparecer más de una cláusula CONSTRAINT. Permite definir restricciones en uno o varios campos y es fundamental para relacionar tablas.

Modificación de Estructura de Tablas (ALTER TABLE)

  • DROP COLUMN: Se utiliza para eliminar un campo. Nota: Generalmente, no se puede eliminar un campo que sea clave principal (Primary Key) o clave ajena (Foreign Key) sin eliminar primero la restricción asociada. Sintaxis: ALTER TABLE tabla DROP campo1;
  • DROP CONSTRAINT: Elimina una restricción nombrada. Sintaxis: ALTER TABLE tabla DROP CONSTRAINT restricción;
  • ALTER COLUMN: Cambia el tipo de datos de un campo. Sintaxis: ALTER TABLE tabla ALTER COLUMN tipocampo (tamaño);

Ejemplo de Adición de Columna

ALTER TABLE EMPLEADOS ADD COLUMN NOTAS TEXT(25);

Optimización y Control de Consultas (SQL)

Cláusula LIMIT

Define el número máximo de filas que se devuelven en el resultado de una consulta.

  • LIMIT 0: No devuelve registros.
  • Sintaxis con dos parámetros: SELECT campo1, ... FROM tabla LIMIT comienzo, longitud;
    • Comienzo: Número del registro por el que empieza la devolución (el primer registro es índice 0).
    • Longitud: Número de filas a devolver.

Ejemplo de uso de LIMIT

SELECT nombre, apellidos, edad FROM usuarios LIMIT 5, 30; (Devuelve 30 registros, comenzando desde el registro índice 5).

Uso de ALIAS (Alias de Tablas y Columnas)

Permite asignar nombres temporales a tablas o columnas para simplificar la lectura de las consultas, especialmente en joins.

Ejemplo de ALIAS en Tablas

SELECT nombre, apellidos FROM alumnos AS A, profesores AS P WHERE A.codprof = P.codprof;

Metadatos y Diccionario de Datos

El Diccionario de Datos o Catálogo del Sistema

Contiene información (metadatos) sobre los objetos de las bases de datos del servidor. Esta información incluye:

  • Nombre, tipo y tamaño de los datos.
  • Nombre de las relaciones entre los datos.
  • Restricciones de integridad sobre los datos.
  • Usuarios autorizados a acceder a la base de datos.
  • Esquemas (externo, conceptual e interno) y correspondencia entre ellos.
  • Estadísticas de utilización (frecuencia de transacciones y número de accesos realizados a los objetos de la base de datos).

Information_schema

Es el esquema estándar que proporciona acceso a los metadatos del sistema.

Ejemplo de consulta a Information_schema

SELECT table_name, table_type, engine FROM information_schema.tables WHERE table_schema='db5' ORDER BY table_name DESC;

Tablas Clave del Diccionario de Datos

Algunas de las tablas más relevantes dentro del diccionario de datos (o information_schema) son:

  • SCHEMATA: Información de las bases de datos o esquemas.
  • TABLES: Información detallada de las tablas.
  • COLUMNS: Información de las columnas dentro de las tablas.
  • USER_PRIVILEGES: Información de permisos globales (procede de la tabla de permisos mysql.user).
  • SCHEMA_PRIVILEGES: Información del esquema de permisos (procede de mysql.db).
  • TABLE_PRIVILEGES: Información de permisos de tablas (procede de mysql.tables_priv). Puede contener valores como: SELECT, INSERT, UPDATE, REFERENCES, ALTER, INDEX, DROP, CREATE VIEW.
  • COLUMN_PRIVILEGES: Información de permisos de columnas (procede de mysql.columns_priv).
  • CHARACTER_SETS: Información de los conjuntos de caracteres disponibles.
  • TABLE_CONSTRAINTS: Tablas que tienen restricciones. Tipos de restricciones: UNIQUE, PRIMARY KEY o FOREIGN KEY.
  • KEY_COLUMN_USAGE: Detalla qué columnas clave tienen restricciones.
  • ROUTINES: Información acerca de rutinas almacenadas (procedimientos y funciones).
  • VIEWS: Información de las vistas.
  • TRIGGERS: Información de los disparadores.

Arquitectura y Componentes de un SGBD

Componentes Esenciales del Sistema Gestor de Bases de Datos

Procesador de Consultas
Componente principal de un SGBD. Transforma las consultas de alto nivel en un conjunto de instrucciones de bajo nivel ejecutables.
Gestor de la Base de Datos (DB Manager)
Actúa como interfaz entre los programas de aplicación/consultas de los usuarios y el sistema. Acepta consultas y examina los esquemas (externo y conceptual) para determinar qué registros se requieren para satisfacer la petición.
Gestor de Ficheros
Maneja los ficheros físicos en disco donde se almacena la base de datos. Es responsable de establecer y mantener la lista de estructuras e índices.
Preprocesador del DML (Lenguaje de Manipulación de Datos)
Convierte las sentencias del DML incrustadas en los programas de aplicación en llamadas a funciones del sistema.
Compilador del DDL (Lenguaje de Definición de Datos)
Convierte las sentencias del DDL en un conjunto de tablas que contienen metadatos (almacenados en el diccionario).
Gestor del Diccionario
Controla los accesos al diccionario de datos y se encarga de su mantenimiento y actualización.

Entradas relacionadas: