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
Reto 2: Control de Laboratorios

Primera forma normal
Se incluyen en la tabla datos como Aula,Materia,Docente,Fecha,Horario de inicio y fin

Segunda forma normal
Separamos los datos no depender de clave primaria dándonos así 2 tablas ,sesión y asistencia.

Tercera forma normal
El atributo de docente depende de materia no directamente de clave de ID de la sesión esto denota una dependencia transitiva.

Diccionario de datos

Modelo Relacional MR (basado en tablas) //Ultima tabla Asistencia

Diseño del reto (BD) en MySQL con 10 registros cada tabla



Parte 1.2
El siguiente link contiene la información necesaria para realiza la parte 2 de enum_set_blob_text
Parte 2
Descargar el siguiente archivo y realizar el ejercicio propuesto en el, el cual tendrá el valor del 50% del Segundo parcial.
BD=CursosBD=Cursos
Crear tabla a partir de otra.

Una academia almacena los datos de sus alumnos en una tabla llamada ESTUDIANTE.
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

1.2 Ingrese los siguientes registros:

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
- En que tabla se van a insertar los datos
- registrocursos
-Que campo(campos conitiene la informacion solicitada) y de que tabla
- Campo: fechaMatricula
- Tabla: Estudiante
-Codicione(s) si las hay:
- No hay condiciones
-Que tablas están involucradas en la inserción
- Tablas: Estududiante,registrocursos
Codigo: create table registrocursos as select year(fechaMatricula) as anioIngreso, count(*) as cantidadAlumnos from estudiante group by year(fechaMatricula);

2. El profesor PORFIRIO Álvarez Arango guarda las notas que toma a sus estudiantes en una tabla llamada planilla.
Cree la entidad planilla con 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)
Ingrese la siguiente información:

- 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.
ANÁLISIS
- En que tabla se van a insertar los datos
- Promedio
-Que campo(campos conitiene la informacion solicitada) y de que tabla
- Campo: carnet,notas
- Tabla: Planilla
-Codicione(s) si las hay:
- No hay condiciones
-Que tablas están involucradas en la inserción
- Tablas: planilla y promedio
-Cree la tabla promedio con los campos (carnet y promedio) realizando la consulta necesaria a la tabla planilla
Codigo: create table promedio as select carnet, round(avg(nota), 2) as "promedio" from planilla group by carnet;

- Agrupe por carnet y seleccione el carnet y nombre de los alumnos aprobados en promedio >=4.0
ANÁLISIS
-Que deseo Mostrar:
- Estudiantes aprobados
-Tablas Involucradas
- promedio,planilla
Funcion a utilizar
- join,using,group vy
Codigo: select carnet, nombre from promedio join planilla using(carnet) where promedio >= 4.0 group by carnet, nombre;

- Cree una entidad llamada alumno_aprobado y guarde allí el carnet y nombre de los alumnos que pasan el curso.
ANÁLISIS
- En que tabla se van a insertar los datos
- alumno_aprobado
-Que campo(campos conitiene la informacion solicitada) y de que tabla
- Campo: carnet,nombre
- Tabla: planilla,promedio
-Codicione(s) si las hay:
- condiciones: Alumnos que pasaron el curso
-Que tablas están involucradas en la inserción
- Tablas: planilla,promedio,alumno_aprobado
Codigo: create table alumno_aprobado as select carnet, nombre from promedio join planilla using(carnet) where promedio >= 4.0 group by carnet, nombre;

Teniendo presente el punto 2.1 (entidad planilla), realizar:
Codpor varchar(5) not null primary key,
Descrip varchar(30) not null

Ingrese los siguientes registros:

-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.
ANÁLISIS
- En que tabla se van a insertar los datos
- Planilla1
-Que campo(campos conitiene la informacion solicitada) y de que tabla
- Campo: carnet,nombre,notapromedio y codpor
- Tabla: Planilla,porcetaje_calificacion
-Codicione(s) si las hay:
- No hay condiciones
-Que tablas están involucradas en la inserción
- Tablas: Planilla,porcetaje_calificacion y planilla1
Codigo: create table planilla1 as select p.carnet, p.nombre, p.nota as notapromedio, pc.codpor from planilla as p join porcentaje_calificacion as pc on p.nota >= 4.0 and pc.codpor = '01' group by p.carnet, p.nombre, pc.codpor;


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.

Codigo consulta: SELECT '05', 'Edilberto Parra', 3.8, pc.codpor FROM porcentaje_calificacion AS pc WHERE pc.descrip = 'Parcial final';

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