SEGUNDO PARCIAL
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

Archivo excel con la normalización:
Archivo excel con el diccionario de datos:

Descargar la Base de datos:
Archivo txt de la BD
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
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
Archivo con la BD:
BD=Cursos
1. Crear tabla a partir de otra.
Una academia almacena los datos de sus alumnos
en una tabla llamada ESTUDIANTE.
1.1 Cree la tabla estudiante con la siguiente estructura:
identificación varchar (10) (clave primaria)
nombre varchar (30)
Estadocivil enum (soltero, casado,
unión libre, divorciado, viudo)
fechamatricula date
Análisis
Nombre de la tabla: Estudiante
Campos que contiene: Identificacion, nombre, estadocivil, fechamatricula

1.2 Ingrese los siguientes registros:
2040 Elizabeth
Cano casado 2013-01-01
2140 Denis Rico divorciado 2013-02-18
2341 Alfredo Lara casado 2014-06-20
1840 Armando Casas viudo 2014-01-28
2044 Eliodoro Puerta casado 2015-07-20
2314 Mariana Salinas casado 2016-06-06
2318 Benito Céspedes casado 2016-06-30
2045 Roberto Jiménez soltero 2017-01-30

1.3 La academia necesita almacenar en una tabla llamada registrocursos la cantidad de alumnos que ingresaron por año. (Cree la tabla a partir de la tabla estudiante)
Análisis
Nombre de la tabla: registrocursos
Campos que contiene: fechamatricula
Comandos: select, as, count(*), group by
Sintáxis: create table registrocursos as select year(fechamatricula) as 'año_ingreso', COUNT(*) as 'cantidad de estudiantes' estudiante group by año_ingreso;
Muestre la información desde la tabla estudiante.


2. Crear tabla a partir de otra.
El profesor PORFIRIO Álvarez Arango guarda las notas que toma a sus estudiantes en una tabla llamada planilla.
2.1 Cree la entidad planillacon la siguiente estructura:
- Carnet varchar (12) (clave primaria)
- nombre varchar(30)
- nota decimal(4,2) unsigned
Tenga presente que algunos estudiantes pueden tener más notas que otros por trabajos presentados extras (para recuperación)

2.2Ingrese la siguiente información:
010 Soledad Ospina 4.0, 011 Marta Salazar 1.5, 012 Margarita Sol 1.5, 013 Fabian Juda 4.0, 010 Soledad Ospina 2.5, 011 Marta Salazar 1.0, 012 Margarita Sol 5.0, 013 Fabian Juda 4.5, 010 Soledad Ospina 2.0, 010 Soledad Ospina 3.8, 011 Marta Salazar 3.8

2.3 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.
2.3.1 Cree la tabla promedio con los campos (carnet y promedio) realizando la consulta necesaria a la tabla planilla
Análisis
Nombre de la tabla: promedio
Campos que contiene: carnet y promedio
Comandos: create, avg, group by
Sintáxis: create table promedio as select carnet, avg(nota) as promedio from planilla group by carnet;

2.3.2 Agrupe por carnet y seleccione el carnet y nombre de los alumnos aprobados en promedio >=4.0
Análisis
Nombre de la tabla: promedio
Campos que contiene: carnet y nombre
Comandos: select, join, group by
Sintáxis: 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;

2.3.3 Cree una entidad llamada alumno_aprobado y guarde allí el carnet y nombre de los alumnos que pasan el curso.
Análisis
Nombre de la tabla: alumno_aprobado
Campos que contiene: carnet y nombre
Comandos: create, distinct, join
Sintáxis: create table alumno_aprobado as select distinct p.carnet, pl.nombre from promedio p join planilla pl on p.carnet=pl.carnet where p.promedio >=3.0;

3. Teniendo presente el punto 2.1 (entidad planilla), realizar:
3.1 Cree la tabla porcentaje_calificacion, con la siguiente estructura:
Codpor varchar(5) not null primary key,
Descrip varchar(30) not null)
Ingrese los siguientes registros: 01 Parcial 1, 02 Parcial 2, 03 Seguimiento, 04 Parcial final

3.2 Normalización de la tabla planilla. Para lo cual debe crear la tabla planilla1 con los campos: carnet, nombre, notapromedio y codpor. Los campos carnet y nombre deben conservar la misma estructura que tienen los mismos campos en la tabla planilla. Y el campo codpor debe conservar la estructura del mismo campo que tiene la tabla porcentaje_calificacion.

3.3 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.
Análisis
Nombre de la tabla: planilla1
Campos que contiene: carnet, nombre, notapromedio, corpor
Comandos: insert, where
Sintáxis: insert into planilla1 (carnet, nombre, notapromedio, codpor) values ('05', 'Edilberto Parra', 3.8, (select codpor from porcentaje_calificacion where descrip = 'Parcial final'));
3.4 Verificar que el registro quedó guardado en la tabla planilla con sus datos respectivos.
