T2 - BBDD Flashcards

(47 cards)

1
Q

FUNCIONES DEL DBA ¿Qué es un DBA y por quién está formado?

A
  • DBA significa Database Administrator (Administrador de Bases de Datos)
  • Un DBA es el Administrador de Bases de Datos
  • Se encarga de que la base de datos funcione bien, esté protegida y tenga buen rendimiento
  • En sistemas pequeños puede ser solo una persona
  • En sistemas grandes, puede estar formado por un equipo de especialistas (por ejemplo: en seguridad, rendimiento, copias, etc.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

FUNCIONES DEL DBA ¿Qué diferencia hay entre un DBA y un SGBD?

A
  • El DBA es la persona o equipo que administra la base de datos
  • El SGBD (Sistema de Gestión de Bases de Datos) es el programa que permite crear, gestionar y consultar bases de datos (Oracle, MySQL, PostgreSQL…)
  • El DBA usa el SGBD como herramienta para realizar su trabajo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

FUNCIONES DEL DBA ¿Qué ventajas tienen para el DBA los índices en las bases de datos?

A
  • Permiten acceder a los datos más rápido, mejorando el rendimiento
  • Ayudan al DBA a optimizar consultas y reducir el uso de recursos
  • Son útiles en campos que se consultan o buscan con frecuencia (como ID, nombre, etc.)
  • Pueden hacer más eficiente el mantenimiento de la base de datos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

FUNCIONES DEL DBA ¿Para qué sirve la sentencia EXPLAIN en monitorización y rendimiento?

A
  • La sentencia EXPLAIN muestra cómo el SGBD va a ejecutar una consulta
  • Ayuda al DBA a analizar el plan de ejecución y detectar posibles problemas
  • Permite ver si se están usando bien los índices o si hay pasos innecesarios
  • Es clave para mejorar el rendimiento de las consultas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

FUNCIONES DEL DBA ¿Quién crea o define los usuarios y sus roles, el DBA o el SGBD?

A
  • El SGBD tiene los comandos y mecanismos para crear usuarios y roles
  • Pero es el DBA quien los define y configura según las necesidades del sistema
  • El DBA decide los privilegios, los accesos y la organización de roles
  • El SGBD solo ejecuta lo que el DBA le indica
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

FUNCIONES DEL DBA ¿Qué es una migración entre base de datos y código? ¿Qué incluye? ¿Mediante qué elemento se completa?

A
  • Es el proceso de actualizar la estructura o los datos de la base de datos para que coincidan con los cambios en el código de la aplicación
  • Una migración incluye cambios en tablas, campos, relaciones, etc.
  • Normalmente la prepara el equipo de desarrollo
  • El DBA puede revisarla, ajustarla o aplicarla en producción
  • Se completa mediante scripts de migración que se ejecutan de forma ordenada
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

FUNCIONES DEL DBA ¿Qué herramientas de migración existen en Java?

A
  • Flyway: gestiona versiones de la base de datos mediante scripts SQL ordenados
  • Liquibase: permite definir los cambios en ficheros tipo XML, YAML o JSON, y los aplica al ejecutar
  • Ambas ayudan a mantener sincronizados el código y la estructura de la base de datos
  • Son muy usadas por desarrolladores, pero el DBA puede revisarlas y controlarlas en producción
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

VISTAS ¿Qué es una vista en un entorno de bases de datos?

A
  • Una vista es una consulta guardada que se comporta como si fuera una tabla
  • No almacena datos, solo muestra datos de otras tablas según una condición
  • Se usa para simplificar el acceso a los datos o para ocultar columnas sensibles
  • El DBA puede crear vistas para dar acceso limitado a los usuarios
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

ORACLE ¿Cuál es el puerto por defecto de Oracle?

A
  • El puerto por defecto es el 1521
  • También pueden usarse 2483 (sin cifrado) y 2484 (con cifrado TLS)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

ORACLE ¿Qué es una instancia en Oracle?

A
  • Es el conjunto de memoria y procesos que permiten trabajar con una única base de datos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

ORACLE En Oracle, si hay una única base de datos, ¿cómo se llaman las partes que gestionan cosas distintas?

A
  • Se llaman esquemas
  • Cada esquema pertenece a un usuario, que no tiene por qué ser una persona (puede ser una aplicación, un módulo, etc.)
  • Cada esquema tiene sus propios objetos (tablas, vistas, etc.)
  • Permiten organizar los datos dentro de una misma base de datos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

ORACLE ¿Qué es el SGA en Oracle?

A
  • SGA significa System Global Area
  • Es la memoria compartida de la instancia
  • Guarda datos en caché, planes de ejecución y otra info que mejora el rendimiento
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

ORACLE ¿Qué son DBW y LGWR en el contexto del SGA?

A
  • DBW (Database Writer): escribe los bloques modificados del SGA en disco
  • LGWR (Log Writer): guarda en disco los registros de cambios (redologs) para asegurar la recuperación
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

ORACLE ¿Para qué sirve el PGA y cómo se relaciona con los procesos de usuario? ¿En qué se diferencia del SGA?

A
  • PGA significa Program Global Area
  • Es una zona de memoria privada para cada proceso de usuario
  • Un proceso de usuario es una conexión activa a la base de datos (como un cliente ejecutando una consulta)
  • El PGA guarda datos temporales, variables y buffers de trabajo
  • A diferencia del SGA, no se comparte
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

ORACLE ¿Qué diferencia hay entre la estructura lógica y la estructura física en Oracle?

A

Archivos de datos (o datafiles): es donde un tablespace vuelca sus datos
(esos datos pueden estar en uno o más datafiles)

🔼
Bloques: se corresponden con los bloques de la parte lógica

📝 ➖🔼 indica una relación 1:N (uno a muchos)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

ORACLE ¿Cuáles son los elementos de la estructura lógica en Oracle?

A

Tablespace

🔼
Segmento: tabla, índice, especiales (UNDO, LOB…)

🔼
Extensión: conjunto de bloques contiguos

🔼
Bloque: unidad más pequeña de almacenamiento lógico

📝 ➖🔼 indica una relación 1:N (uno a muchos)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

ORACLE ¿Cuáles son los elementos de la estructura física en Oracle?

A
  • Archivos de datos (o datafiles): es donde un tablespace vuelca sus datos
    (esos datos pueden estar en uno o más datafiles)
  • Bloques: se corresponden con los bloques de la parte lógica
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

ORACLE ¿Con qué sentencia se crea una tablespace en Oracle? ¿Dónde se almacenan? ¿Qué quieren decir las palabras SIZE, AUTOEXTEND, NEXT y MAXSIZE?

A
  • La sentencia es CREATE TABLESPACE nombre_tablespace
  • Se almacenan en un archivo físico llamado datafile
  • SIZE: tamaño inicial del archivo
  • AUTOEXTEND: permite que el archivo crezca automáticamente
  • NEXT: cuánto aumentará cada vez que crezca
  • MAXSIZE: tamaño máximo que puede alcanzar el archivo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

ORACLE ¿Con qué sentencia se crea una tabla en Oracle?
¿Para qué sirve la cláusula STORAGE?

A
  • La sentencia básica es CREATE TABLE nombre_tabla (...)
  • STORAGE define cómo se gestionará el espacio físico de la tabla
  • Permite ajustar parámetros como INITIAL, NEXT, MAXEXTENTS y PCTINCREASE
  • Es útil para tablas grandes o que crecen rápido
    🧠 RECUERDA una tabla es un tipo de segmento que pertenece a una tablespace
20
Q

ORACLE ¿Cómo se crea un usuario en Oracle y qué permisos necesita?

A
  • CREATE USER nominas_owner IDENTIFIED BY password: crea el usuario y le asigna una contraseña
  • DEFAULT TABLESPACE ts_data: asigna dónde se guardarán por defecto sus objetos
  • TEMPORARY TABLESPACE ts_temp: indica el espacio para operaciones temporales
  • 🧠⚠️ Es necesario darle permisos con GRANT, por ejemplo:
    • GRANT CONNECT TO nominas_owner
    • GRANT CREATE SESSION, CREATE TABLE TO nominas_owner
21
Q

ORACLE ¿Qué herramientas gráficas se usan para trabajar con Oracle?

A
  • Toad: muy popular, permite gestionar usuarios, ejecutar consultas, ver objetos, etc.
  • Oracle SQL Developer: herramienta oficial de Oracle, gratuita y muy completa
  • También existen otras como DBeaver o DataGrip, compatibles con Oracle
22
Q

ORACLE ¿Qué herramientas línea de comandos se usan para trabajar con Oracle?

A
  • SQL*Plus: la herramienta clásica de Oracle para ejecutar comandos SQL desde consola
  • RMAN (Recovery Manager): se usa para hacer copias de seguridad y recuperación
  • Data Pump (expdp / impdp): utilidades para exportar e importar datos
23
Q

ORACLE ¿Para qué sirve el rol CONNECT y cómo se asigna a un usuario?

A
  • Es un rol predefinido en Oracle
  • Permite a un usuario conectarse a la base de datos (CREATE SESSION)
  • También puede incluir permisos como CREATE TABLE, CREATE VIEW, etc.
  • Para asignarlo: GRANT CONNECT TO nombre_usuario
24
Q

ORACLE ¿Qué es Exadata?

A
  • Exadata es un sistema físico creado por Oracle
  • Está optimizado para ejecutar bases de datos Oracle con alto rendimiento
  • Incluye servidores, almacenamiento, red y software ya integrados
  • Se usa en entornos críticos por su velocidad, fiabilidad y recuperación avanzada
25
**ORACLE** ¿Qué es `Oracle Database XE`?
- Es la versión `gratuita y limitada` de Oracle - Sirve para aprender, hacer pruebas o pequeños desarrollos
26
**ORACLE** ¿Qué significa `PL/SQL`?
- Significa *Procedural Language/Structured Query Language* - Es el lenguaje de programación de Oracle basado en `SQL` - Permite usar `condicionales`, `bucles`, `procedimientos` y `funciones`
27
**BACKUP EN ORACLE** ¿Cuáles son las dos herramientas de `backup` para hacer copia de `ts_data`?
- **`RMAN`**: herramienta oficial de backup - `BACKUP TABLESPACE ts_data` - Opciones: `FORMAT`, `TAG`, `FROM TIME`, `UNTIL TIME` - **`DATAPUMP`**: utilidad para exportar/importar - Usa `DATA_PUMP_DIR`, requiere `SYSDBA` - Comandos: `EXPDP`, `IMPDP`
28
**BACKUP EN ORACLE** ¿Para qué sirven y cómo se crean las `columnas autoincrementales`?
- Sirven para generar valores únicos automáticamente (por ejemplo, `IDs`) - En Oracle se usan con `SEQUENCE` + `TRIGGER`, o desde Oracle 12c con `GENERATED AS IDENTITY` - Ejemplo moderno: `id NUMBER GENERATED ALWAYS AS IDENTITY`
29
**BACKUP EN ORACLE** Además de `GRANT SELECT`, ¿qué más se necesita para acceder a una tabla de otro esquema?
- Se debe crear un `sinónimo` con `CREATE SYNONYM` - Esto permite acceder a la tabla sin poner el nombre del otro esquema - Ejemplo: `CREATE SYNONYM mi_tabla FOR otro_usuario.tabla_real;`
30
**BACKUP EN ORACLE** ¿Qué es un `cluster` y cómo se garantiza la `alta disponibilidad`?
- Un `cluster` es un conjunto de servidores que comparten el acceso a la misma base de datos - Oracle garantiza la `alta disponibilidad` con `RAC` (*Real Application Clusters*) - `RAC` permite que varios nodos accedan simultáneamente a la base de datos - Si un nodo falla, los demás siguen funcionando
31
**BACKUP EN ORACLE** ¿Para qué sirve una `vista materializada` y cómo se crea?
- Guarda físicamente los datos de una consulta (a diferencia de una vista normal) - Mejora el `rendimiento`, sobre todo con datos grandes o remotos - Se crea con: `CREATE MATERIALIZED VIEW nombre REFRESH [ON DEMAND|ON COMMIT] AS SELECT ... FROM ... WHERE ...` - `REFRESH`: indica cuándo se actualizan los datos - `AS SELECT ...`: define la consulta que almacena
32
**MYSQL / MARIADB** ¿Cuál es el `puerto` por defecto de `MySQL` y `MariaDB`?
- El `puerto` por defecto de ambos es el `3306` - Se puede cambiar en la configuración (`my.cnf` o `my.ini`)
33
**MYSQL / MARIADB** ¿Qué implica usar `InnoDB` o `MyISAM` como motor de almacenamiento?
- `InnoDB`: ✅ Soporta transacciones (`ACID` = `Atomicidad`, `Consistencia`, `Aislamiento`, `Durabilidad`) - `MyISAM`: ❌ No soporta transacciones (`Indexed Sequential Access Method`)
34
**MYSQL / MARIADB** ¿Qué son los `forks`?
- Un `fork` es una copia de un proyecto que se desarrolla de forma independiente
35
**MYSQL / MARIADB** ¿Un `fork` y un `motor de almacenamiento` son lo mismo?
- ❌ No son lo mismo - Un `fork` es una **copia de un programa** que evoluciona por separado (como `MariaDB`) - Un `motor de almacenamiento` es **una parte interna del SGBD** que define cómo se guardan y gestionan los datos (`InnoDB`, `MyISAM`, etc.)
36
**MYSQL / MARIADB** ¿`Aria` y `XtraDB/InnoDB` en MariaDB son equivalentes a `MyISAM` e `InnoDB` en MySQL?
- ✅ Sí, son equivalentes aproximados - `XtraDB/InnoDB` (MariaDB) ≈ `InnoDB` (MySQL): soportan transacciones - `Aria` (MariaDB) ≈ `MyISAM` (MySQL): no soportan transacciones, rápidos en lectura - `XtraDB` fue un fork de `InnoDB`, usado por defecto en MariaDB antiguas - `Aria` mejora a `MyISAM`, y se usa por defecto para tablas temporales
37
**MYSQL / MARIADB** ¿Qué son las soluciones de `alta disponibilidad (HA)` y para qué sirven? ¿Cuáles existen en `MySQL` y en `Oracle`?
- Sirven para que la base de datos siga funcionando aunque falle un servidor - Aumentan la disponibilidad, reducen caídas y permiten recuperación rápida **MySQL / MariaDB** - `Replicación`: maestro ➡️ esclavo (`binlog` ➡️ `relaylog`) - `Cluster`: SQL nodes (procesan consultas) + Data nodes (almacenan datos) **Oracle** - `RAC` (Real Application Cluster): varios nodos comparten acceso a una única base de datos - `Data Guard`: replica datos a otro servidor (modo standby) para recuperación ante desastres
38
**MYSQL / MARIADB** ¿Qué comando se usa para hacer una copia de seguridad?
- Se usa `mysqldump` - Ejemplo básico: `mysqldump -u usuario -p --all-databases --lock-tables --add-drop-table > copia.sql` **Opciones comunes**: - `-u`: indica el usuario - `--all-databases`: copia todas las bases de datos - `--lock-tables`: bloquea las tablas durante el volcado - `--add-drop-table`: añade comandos `DROP TABLE` antes de cada `CREATE TABLE`
39
**MYSQL / MARIADB** ¿Qué comando se utiliza para la restauración de una copia de seguridad?
- Se usa el comando `mysql` - Ejemplo básico: `mysql -u usuario -p < copia.sql` **Opciones comunes**: - `-u`: indica el usuario - `-p`: solicita la contraseña
40
**MYSQL / MARIADB** ¿Qué comandos se usan para el mantenimiento de `MyISAM`?
- `myisamchk`: verifica, repara y optimiza tablas fuera del servidor - `OPTIMIZE TABLE`: reorganiza el almacenamiento y mejora el acceso - `ANALYZE TABLE`: actualiza las estadísticas del índice - `CHECK TABLE`: verifica la integridad de la tabla - `REPAIR TABLE`: intenta reparar tablas dañadas
41
**MYSQL / MARIADB** ¿Qué comando se usa para la administración general del sistema?
- Se usa `mysqladmin` - Ejemplo básico: `mysqladmin -u root -p [comando]` **Comandos útiles**: - `ping`: comprueba si el servidor está activo - `version`: muestra la versión del servidor - `processlist`: muestra los procesos activos - `create db`: crea una base de datos
42
**POSTGRES** ¿Qué puerto utiliza por defecto PostgreSQL?
- El puerto por defecto es el `5432`
43
**POSTGRES** ¿En qué se basa la seguridad de PostgreSQL?
- Se basa en `roles`, que pueden ser usuarios o grupos - Un `rol` define qué puede hacer alguien en la base de datos - Se crea con: `CREATE ROLE nombre` **Opciones comunes**: - `LOGIN`: permite iniciar sesión - `CREATEDB`: permite crear bases de datos - `CREATEROLE`: permite crear otros roles - `SUPERUSER`: otorga todos los privilegios
44
**POSTGRES** ¿Cómo se crea una `tabla` con particiones?
- Se usa `CREATE TABLE` con `PARTITION BY` - Ejemplo básico: ```sql CREATE TABLE ventas ( id SERIAL, fecha DATE, total NUMERIC ) PARTITION BY RANGE (fecha); ``` - Luego se crean las particiones hijas con `CREATE TABLE ... PARTITION OF ...`
45
**POSTGRES** ¿En qué consiste el concepto de `tabla heredada`?
- Es una tabla que hereda columnas y estructura de otra tabla - Se usa `INHERITS` al crearla - La tabla hija puede añadir sus propias columnas - Permite consultas combinadas sobre la tabla padre e hijas
46
**POSTGRES** ¿Qué es el concepto de `seguridad basada en filas` (`RLS`)?
- `RLS` significa *Row Level Security* - Es una función de seguridad que restringe qué filas puede ver o modificar cada rol - Se activa con `ALTER TABLE ... ENABLE ROW LEVEL SECURITY` - Se crean políticas con `CREATE POLICY` para definir qué puede hacer cada rol - Es útil cuando distintos usuarios acceden a la misma tabla pero deben ver solo ciertos datos
47
**POSTGRES** ¿Para qué sirve cada herramienta de línea de comandos?
- `pg_ctl`: arranca, detiene o reinicia el servidor PostgreSQL - `createdb` / `dropdb`: crean o eliminan bases de datos - `createuser` / `dropuser`: crean o eliminan roles/usuarios - `psql`: consola para ejecutar comandos SQL - `pg_dump`: hace copia de seguridad de una base de datos - `pg_dumpall`: hace backup de **todas** las bases de datos - `vacuumdb`: limpia y optimiza la base de datos