Parcial 2

Parte 1.1

Para los Retos resolver en Análisis y Diseño de Bases de datos (Formas normales (1Fn, 2Fn y 3Fn), Diccionario de Datos, Modelo Relacional MR (basado en tablas), Diseño del reto (BD) en MySQL con 10 registros cada tabla

Diccionario Datos

Modelo Relacional MR

  

Base de datos

Parte 1.2

El siguiente link contiene la información necesaria para realiza la parte 2 de enum_set_blob_text

www.dropbox.com/sh/owstsvumavdawhe/AAAjeA_hLlc-ZKYRf0OqczbXa?dl=0

Aqui esta el link para ir a la pagina:




Parte 2

Descargar el siguiente archivo y realizar el ejercicio propuesto en el, el cual tendrá el valor del 50% del Segundo parcial.


Se debe entregar:

a) Los análisis de cada punto

b) Las sintaxis de cada uno de los comandos utilizados para solucionar cada punto

c) El resultado o información generada en cada punto) La bases de datos que de como resultado el desarrollo de la actividad

 

Solucion:

Determinar la cantidad de alumnos que ingresaron por año

1. ¿Qué desea mostrar?

La cantidad de estudiantes que se matricularon en cada año.

Los campos a mostrar son:

  • anio_ingreso (año de la matrícula)

  • cantidad_alumnos (total de estudiantes por año)

2. Tablas involucradas:

Estudiante

3. Relaciones:

No hay .

4. Funciones a utilizar:
  • YEAR(): Para extraer el año de la fecha de matrícula (fechamatricula).

  • COUNT(): Para contar cuántos alumnos se matricularon por año.

  • GROUP BY: Para agrupar los resultados por año de matrícula.

  • CREATE TABLE AS SELECT: Para crear la nueva tabla registrocursos a partir de una consulta.

5. Código:

Primero, vamos a consultar los datos desde estudiante para verificar CON EL SIGUIENTE COMADO:

SELECT YEAR(fechamatricula) AS anio_ingreso, COUNT(*) AS cantidad_alumnos

FROM estudiante

GROUP BY anio_ingreso;

Ahora, creamos la tabla registro cursos a partir de la anterior consulta y a partir de estudiante: CREATE TABLE registrocursos ASSELECT YEAR(fechamatricula) AS anio_ingreso, COUNT(*) AS cantidad_alumnosFROM estudianteGROUP BY anio_ingreso;

  • El profesor Rodrigo Patiño necesita generar una tabla llamada promedio que tenga especificado el carnet del estudiante y el promedio de sus calificaciones obtenidas.

1. ¿Qué desea mostrar?

El carnet de cada estudiante y su promedio de calificaciones.

2. Tablas involucradas:

  • planilla

3. Relaciones:

No hay.

4. Funciones a utilizar:

  • AVG(): Para calcular el promedio de las notas de cada estudiante.

  • GROUP BY: Para agrupar por carnet.

  • CREATE TABLE AS SELECT: Para crear la tabla promedio a partir de la consulta.

5. Código:

CREATE TABLE promedio ASSELECT carnet, AVG(nota) AS promedioFROM planillaGROUP BY carnet;

  • Cree la tabla promedio con los campos (carnet y promedio) realizando la consulta necesaria a la tabla planilla

1. ¿Qué desea mostrar?

Los estudiantes que tienen un promedio mayor o igual a 4.0.

Los campos a mostrar son: carnet y nombre.

2. Tablas involucradas:

  • promedio

  • planilla

3. Relaciones:

Se relacionan por el campo carnet.

4. Funciones a utilizar:

  • JOIN: Para combinar los datos de promedio y planilla.

  • WHERE: Para filtrar los promedios aprobados.

  • GROUP BY: Para evitar duplicados de nombres.

5. Código:

sqlCopiarEditarSELECT p.carnet, pl.nombre FROM promedio p JOIN planilla pl ON p.carnet = pl.carnet WHERE p.promedio >= 4.0 GROUP BY p.carnet, pl.nombre;

  • Agrupe por carnet y seleccione el carnet y nombre de los alumnos aprobados en promedio >=4.0

1. ¿Qué desea mostrar?

Los estudiantes que tienen un promedio mayor o igual a 4.0.

Los campos a mostrar son: carnet y nombre.

2. Tablas involucradas:

  • promedio

  • planilla

3. Relaciones:

Se relacionan por el campo carnet.

4. Funciones a utilizar:

  • JOIN: Para combinar los datos de promedio y planilla.

  • WHERE: Para filtrar los promedios aprobados.

  • GROUP BY: Para evitar duplicados de nombres.

5. Código:

sqlCopiarEditarSELECT p.carnet, pl.nombre FROM promedio p JOIN planilla pl ON p.carnet = pl.carnet WHERE p.promedio >= 4.0 GROUP BY p.carnet, pl.nombre;

  • Cree una entidad llamada alumno_aprobado y guarde allí el carnet y nombre de los alumnos que pasan el curso.

1. ¿Qué desea mostrar?

Solo los alumnos aprobados (promedio ≥ 4.0), con sus carnets y nombres, en una nueva tabla.

2. Tablas involucradas:

  • promedio

  • planilla

3. Relaciones:

Se relacionan por carnet.

4. Funciones a utilizar:

  • JOIN: Para unir las dos tablas.

  • WHERE: Para filtrar los estudiantes con promedio aprobado.

  • GROUP BY: Para evitar duplicados.

  • CREATE TABLE AS SELECT: Para crear la nueva tabla con los resultados.

5. Código:

sqlCopiarEditarCREATE TABLE alumno_aprobado AS SELECT p.carnet, pl.nombre FROM promedio p JOIN planilla pl ON p.carnet = pl.carnet WHERE p.promedio >= 4.0 GROUP BY p.carnet, pl.nombre; 

1. ¿Qué desea hacer?

Insertar un nuevo registro en la tabla planilla1 con los datos de un estudiante (carnet, nombre, nota promedio), y asignar el código del porcentaje (codpor) buscando en la tabla porcentaje_calificacion la descripción correspondiente a "Parcial final".

2. Tablas involucradas:

  • planilla1: Donde se insertará el nuevo registro.

  • porcentaje_calificacion: De donde se extrae el codpor.

3. Relaciones:

La tabla planilla1 tiene un campo cod por que es clave foránea y hace referencia a porcentaje_calificacion.codpor.

4. Funciones y sentencias a utilizar:

  • INSERT INTO ... SELECT: Para insertar datos en una tabla utilizando valores obtenidos desde otra tabla.

  • WHERE: Para filtrar la descripción deseada.

  • SELECT: Para seleccionar el valor de codpor correspondiente a "Parcial final".

5. Código:

sqlCopiarEditarINSERT INTO planilla1 (carnet, nombre, notapromedio, codpor) SELECT '005', 'Edilberto Parra', 3.8, codpor FROM porcentaje_calificacion WHERE descrip = 'Parcial final';

Tema: Insertar datos en una tabla buscando el valor en otra.

Inserte en la tabla planilla el registro 05, el cual le pertenece a Edilberto Parra, cuya nota promedio es de 3.8. Busque el valor del código porcentaje en la tabla porcentaje_calificacion cuando la descripción corresponda a la nota final.

INSERT INTO planilla1 (carnet, nombre, notapromedio, codpor)

SELECT '005', 'Edilberto Parra', 3.8, codpor

FROM porcentaje_calificacion

WHERE descrip = 'Parcial final';

3.4 Verificar que el registro quedó guardado en la tabla planilla con sus datos respectivos.

1. ¿Qué desea mostrar?

El registro completo del estudiante insertado (Edilberto Parra) en la tabla planilla1.

2. Tabla involucrada:

  • planilla1

3. Función a utilizar:

  • SELECT: Para consultar los registros de la tabla.

  • WHERE: Para filtrar por el carnet del estudiante.

4. Código:

sqlCopiarEditarSELECT * FROM planilla1 WHERE carnet = '005';  



Copia TXT

Video Explicacion:


¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar