0% encontró este documento útil (0 votos)
45 vistas10 páginas

Respuestas Ampliadas 1 37

El documento detalla aspectos clave del lenguaje SQL, incluyendo su naturaleza declarativa, estandarización y versatilidad. Se explican conceptos como DDL y DML, la importancia del diccionario de datos, y las restricciones de integridad en las tablas. Además, se abordan temas sobre la arquitectura de los SGBDs, el papel del DBA, y el uso de índices para optimizar el rendimiento en consultas.

Cargado por

pruebademail1994
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas10 páginas

Respuestas Ampliadas 1 37

El documento detalla aspectos clave del lenguaje SQL, incluyendo su naturaleza declarativa, estandarización y versatilidad. Se explican conceptos como DDL y DML, la importancia del diccionario de datos, y las restricciones de integridad en las tablas. Además, se abordan temas sobre la arquitectura de los SGBDs, el papel del DBA, y el uso de índices para optimizar el rendimiento en consultas.

Cargado por

pruebademail1994
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Respuestas Ampliadas - Unidades 5 y 6

1. Mencione 3 aspectos importantes del lenguaje SQL

1. **Lenguaje Declarativo**: SQL permite expresar que informacion se desea obtener sin necesidad

de detallar el proceso para obtenerla. Esto permite que el sistema gestor de base de datos (SGBD)

optimice la ejecucion de la consulta.

2. **Estandarizacion**: SQL es un lenguaje normalizado por ANSI e ISO, lo que garantiza

interoperabilidad entre distintos sistemas de gestion de bases de datos (como PostgreSQL, Oracle,

MySQL, etc.).

3. **Versatilidad y Potencia**: SQL no solo permite consultar datos, sino tambien definir estructuras

(tablas, dominios, restricciones), manipular informacion (insertar, borrar, actualizar), controlar

transacciones y gestionar la seguridad del acceso a los datos.

2. Que tipo de lenguaje es SQL? Que ventajas trae aparejadas?

SQL es un **lenguaje declarativo**, lo que significa que el usuario describe el resultado deseado,

pero no indica el algoritmo ni los pasos a seguir. Esto se diferencia de los lenguajes procedurales.

Ventajas:

- Reduce la complejidad para el usuario al abstraer el acceso fisico a los datos.

- Permite optimizaciones automaticas por parte del SGBD.

- Favorece la independencia entre el diseno logico y fisico de la base de datos.

3. A que refiere DDL y DML?

**DDL (Data Definition Language)**: Permite definir y modificar la estructura de la base de datos,

como la creacion de tablas, dominios, vistas, indices, etc. Ejemplos de sentencias: `CREATE`,

`ALTER`, `DROP`.

**DML (Data Manipulation Language)**: Permite consultar y modificar los datos existentes en la

base de datos sin alterar su estructura. Sentencias tipicas son: `SELECT`, `INSERT`, `UPDATE`,
`DELETE`.

Ambos tipos de sentencias se ejecutan a traves del lenguaje SQL y utilizan el catalogo o diccionario

de datos del sistema.

4. El diccionario de datos es una base de datos? Quien puede actualizarlo?

Si, el **diccionario de datos** (tambien llamado catalogo) es una base de datos especial que

contiene metadatos: informacion sobre las estructuras, restricciones y objetos de la base de datos.

El responsable de actualizarlo es el **SGBD**, que lo hace automaticamente al ejecutar sentencias

DDL. El **Administrador de la Base de Datos (DBA)** tambien puede acceder y modificar

configuraciones avanzadas del diccionario.

5. Que opciones estan disponibles en SQL cuando se define una clave foranea, para

mantener la integridad referencial?

Cuando se define una clave foranea (`FOREIGN KEY`), se pueden especificar acciones que el

SGBD tomara ante cambios en la tabla referenciada para asegurar la integridad:

- `ON DELETE CASCADE`: si se elimina una fila referenciada, tambien se eliminan las filas

dependientes.

- `ON DELETE SET NULL`: las claves foraneas se establecen en `NULL` al eliminar la fila

referenciada.

- `ON DELETE SET DEFAULT`: se asigna un valor por defecto a las claves foraneas.

- `ON DELETE RESTRICT` o sin accion: impide eliminar una fila referenciada si hay dependencias.

6. Por que deben evitarse los valores nulos en las tablas? Enuncie algunos ejemplos de

operadores y resultados con valores nulos.

Los valores nulos representan la ausencia de un dato conocido y pueden afectar la logica de las

consultas:

- No se comportan como valores convencionales: cualquier operacion con `NULL` da como

resultado `NULL`.
- Complican las condiciones logicas y los filtros.

**Ejemplos:**

- `3 + NULL NULL`

- `NULL = NULL NULL` (no es ni verdadero ni falso)

- `TRUE AND NULL NULL` (segun tabla de verdad de tres valores)

Por estas razones, se recomienda restringir los valores `NULL` cuando sea posible, usando `NOT

NULL`.

7. Que implicancia tiene la clausula WITH CHECK OPTION en una vista?

La clausula `WITH CHECK OPTION` garantiza que toda insercion o actualizacion hecha a traves de

una vista respete la condicion que define esa vista. Si se intenta insertar un dato que no cumpliria

dicha condicion, la operacion sera rechazada.

**Ejemplo:** Si una vista muestra empleados del departamento 10, una insercion que intente

asignar a un empleado al departamento 20 sera rechazada.

8. Enuncie al menos 3 caracteristicas de las tablas virtuales (create view ...).

1. **No almacenan datos fisicamente**: una vista es una consulta almacenada, no una tabla con

datos persistentes.

2. **Facilitan la seguridad**: permiten mostrar solo ciertas columnas o filas a usuarios especificos.

3. **Simplifican consultas complejas**: al encapsular consultas en una vista, se puede reutilizar su

logica sin repetirla.

9. Que caracteristicas debe tener una tabla virtual para ser actualizable automaticamente?

Para que una vista sea actualizable automaticamente (es decir, sin usar triggers):

- Debe basarse en una sola tabla.

- No debe contener funciones agregadas, expresiones, GROUP BY, ni clausula DISTINCT.

- Debe incluir todas las columnas `NOT NULL` de la tabla base.


10. Enuncie y explique al menos 4 restricciones de integridad que pueden especificarse al

crear una tabla.

1. **NOT NULL**: Impide que se ingresen valores nulos en una columna.

2. **UNIQUE**: Asegura que los valores en una columna (o combinacion) sean unicos en todas las

filas.

3. **PRIMARY KEY**: Combinacion de `NOT NULL` y `UNIQUE`, identifica univocamente cada fila.

4. **FOREIGN KEY**: Establece una relacion entre una columna y otra tabla, asegurando

integridad referencial.

5. **CHECK**: Permite definir una condicion que debe cumplirse para aceptar el valor de una

columna.

11. Mencione 3 sentencias SQL relacionadas con el manejo de usuarios. Explique.

1. **CREATE USER**: Permite crear un nuevo usuario en la base de datos.

Ejemplo: `CREATE USER juan IDENTIFIED BY 'clave123';`

2. **GRANT**: Otorga permisos a usuarios o roles sobre objetos como tablas o vistas.

Ejemplo: `GRANT SELECT ON empleados TO juan;`

3. **REVOKE**: Revoca permisos previamente otorgados.

Ejemplo: `REVOKE SELECT ON empleados FROM juan;`

Estas sentencias son esenciales para la administracion de seguridad y control de acceso a los

datos.

12. Cual es la arquitectura que tienen los SGBDs? Explique sus niveles.

La arquitectura de los SGBDs sigue el modelo de tres niveles ANSI-SPARC:

**Nivel Externo**: define como los usuarios ven los datos. Cada usuario puede tener una vista

diferente.

**Nivel Conceptual**: describe que datos se almacenan y como se relacionan entre si. Es una vista

global.
**Nivel Interno**: describe como se almacenan fisicamente los datos en el sistema.

Este modelo permite independencia entre el diseno logico y el fisico de la base.

13. Que ventajas y desventajas trae la arquitectura de los SGBDs?

**Ventajas**:

- Favorece la independencia de los datos.

- Mejora la seguridad mediante vistas y mapeos.

- Permite una organizacion clara de responsabilidades.

**Desventajas**:

- Introduce complejidad adicional en el procesamiento de consultas.

- Puede impactar levemente en la eficiencia de ejecucion.

14. Enuncie y explique los esquemas, vistas y mapeos en la arquitectura de un SGBD.

- **Esquemas**: representan las estructuras definidas en cada nivel (externo, conceptual, interno).

- **Vistas**: son definiciones que limitan o personalizan el acceso a los datos (nivel externo).

- **Mapeos**: conectan los diferentes niveles y permiten la independencia de los datos. Se

implementan mediante correspondencias en la base de datos.

15. Un SGBD es de proposito general o especifico? Explique.

Un SGBD es de **proposito general** porque puede ser utilizado para administrar distintos tipos de

bases de datos, como sistemas bancarios, academicos, comerciales, etc. Esto se logra gracias a su

diseno modular y a su capacidad de manejar multiples esquemas y usuarios.

16. Quien es el responsable de la performance de la base de datos? Explique.

El **Administrador de Base de Datos (DBA)** es el responsable de que la base de datos funcione

correctamente, con buena performance. Entre sus tareas estan:

- Monitorear el uso de indices.

- Optimizar consultas.
- Administrar el almacenamiento fisico.

- Mantener la integridad y seguridad de los datos.

17. Explique el concepto de independencia de datos, considerando sus dos tipos.

- **Independencia logica**: permite modificar el esquema conceptual sin afectar las aplicaciones

que acceden a la base (nivel externo).

- **Independencia fisica**: permite cambiar la forma en que los datos estan almacenados (nivel

interno) sin alterar el esquema conceptual ni las aplicaciones.

18. Cuales son los componentes de un SGBD? Explique brevemente.

- **Precompilador**: prepara codigo SQL embebido en lenguajes como Java o C.

- **Compilador + Optimizador**: convierte y optimiza consultas SQL.

- **Procesador en tiempo de ejecucion**: ejecuta sentencias SQL.

- **Manejador de datos almacenados**: gestiona archivos fisicos.

- **Subsistemas de recuperacion y concurrencia**: aseguran integridad y consistencia ante errores

o accesos simultaneos.

19. Que es el optimizador? Que funcion cumple?

Es un componente del compilador SQL que analiza multiples formas de ejecutar una consulta y

selecciona el **plan de ejecucion mas eficiente**. Considera indices, estadisticas, y costos

estimados de ejecucion.

20. Que es un plan de aplicacion? Es independiente de la organizacion de archivos y

estructuras de acceso?

Un **plan de aplicacion** es el conjunto de instrucciones optimizadas que el sistema sigue para

ejecutar una consulta. Aunque es independiente de la logica de la aplicacion, depende de la

existencia de estructuras como indices, y se invalida si estas cambian o se eliminan.

21. Que pasos realiza el optimizador en la busqueda del plan de ejecucion optimo?
1. **Optimizacion heuristica**: aplica reglas para reducir el espacio de busqueda (por ejemplo,

aplicar filtros antes de joins).

2. **Estimacion de costos**: calcula el costo de distintas estrategias y selecciona la de menor costo

estimado.

22. Que sucede si se elimina un indice utilizado por un plan? Genera error?

Si se elimina un indice utilizado en un plan existente, el SGBD **invalida automaticamente el plan**

y lo recompila para utilizar otras estructuras disponibles. No genera error, pero puede disminuir el

rendimiento.

23. Como se almacenan las bases de datos en disco? Que elementos se almacenan?

Las bases de datos se almacenan en archivos organizados en registros. Estos registros contienen:

- Datos de las tablas.

- Estructuras de acceso como indices.

- Metadatos en el diccionario de datos.

24. Mencione y caracterice los 3 tipos de almacenamiento.

- **Primario**: Memoria RAM. Rapida pero volatil.

- **Secundario**: Discos duros o SSD. Mas lentos, persistentes y de mayor capacidad.

- **Terciario**: Cintas u otros dispositivos offline. Para copias de seguridad o archivos historicos.

25. Que son los archivos? Como pueden estar almacenados?

Los archivos son estructuras fisicas que contienen los datos de las bases. Pueden estar:

- No ordenados (heap).

- Ordenados (por alguna clave).

- Hash: acceso por funcion de dispersion.

- Mixtos: combinan datos de varias tablas.

26. Que son las estructuras de acceso? Para que se usan?


Son mecanismos auxiliares (como indices) que permiten acceder de forma mas eficiente a los datos

en disco. Evitan la necesidad de recorrer registros uno por uno.

27. Que es un indice? Que tipos conoce? Cual es su proposito?

Un indice es una estructura adicional que permite ubicar datos rapidamente segun un atributo.

Tipos:

- B-Tree (ordenado, versatil).

- Hash (para busquedas por igualdad).

- Arbol B+ (estructuras jerarquicas).

Su proposito es mejorar el rendimiento de las busquedas y ordenamientos.

28. Ejemplifique un indice.

`CREATE INDEX idx_nombre ON empleados(nombre);`

Este indice permite buscar empleados por su nombre mas eficientemente.

29. En que situaciones definiria un indice?

- Cuando un atributo se utiliza frecuentemente en condiciones de busqueda (`WHERE`).

- En atributos utilizados en joins.

- Para mejorar el rendimiento de ordenamientos (`ORDER BY`).

30. Que debe conocer un DBA para definir el diseno fisico de una base? Que debe procurar?

Debe conocer:

- Volumen y tipo de consultas.

- Requisitos de rendimiento.

- Organizacion de archivos e indices disponibles.

Debe procurar minimizar el tiempo de acceso y equilibrar entre velocidad y mantenimiento.

31. La definicion de un indice genera ventajas? Desventajas? Explique.

**Ventajas**:
- Mejora la velocidad de lectura.

- Optimiza joins y filtros.

**Desventajas**:

- Ralentiza inserciones y actualizaciones.

- Ocupa espacio en disco adicional.

32. Cual es el tipo de indice mas versatil?

El **indice B-Tree**. Es util para busquedas por igualdad, comparaciones con `<`, `>`, `BETWEEN`,

`IN`, y operaciones `LIKE` con patron inicial fijo.

33. Cual es el tipo de indice por defecto en PostgreSQL?

El indice **B-Tree** es el tipo predeterminado al crear un indice en PostgreSQL.

34. En una consulta SQL se puede indicar explicitamente que se utilice un indice? Explique.

Si, es posible guiar al optimizador mediante directivas como `SET enable_seqscan = OFF;`, aunque

no se puede forzar el uso de un indice especifico de forma directa.

35. PostgreSQL genera indices de manera automatica? En que situaciones?

Si. Crea automaticamente un indice B-Tree sobre cualquier columna que sea definida como

`PRIMARY KEY` o `UNIQUE`. No crea indices automaticos sobre claves foraneas.

36. Para que usos es conveniente usar indices B-Tree?

Para consultas que involucren:

- Comparaciones por rango (`<`, `>`, `BETWEEN`, `IN`).

- Busquedas por igualdad.

- Ordenamientos y patrones `LIKE 'abc%'`. Tambien para consultas con `IS NULL`.

37. Para que usos es conveniente usar indices Hash?

Para busquedas exactas de igualdad (`=`). Son utiles cuando no se requiere ordenamiento ni
comparaciones por rango.

También podría gustarte