Implementacion de las reglas de normalización en db

18
IMPLEMENTACIÓN DE LAS REGLAS DE NORMALIZACIÓN EN DB MySQL desarrollo web Resumen de clase responsable: Carlos Niño Grado decimo - 2018

Transcript of Implementacion de las reglas de normalización en db

Page 1: Implementacion de las reglas de normalización en db

IMPLEMENTACIÓN DE LAS REGLAS DE

NORMALIZACIÓN EN DBMySQL – desarrollo web

Resumen de clase – responsable: Carlos Niño

Grado decimo - 2018

Page 2: Implementacion de las reglas de normalización en db

Una base de datos o data base (db), es una colección ordenada y catalogada de información,

la cual, permite gestionar y consultar a la misma

Los programas mas conocidos y usados para los sistemas de gestión de bases de datos (sgbd

o dbms) son ORACLE y MySQL

Usaremos MySQL y ampliaremos las reglas de normalización de bases de datos, previamente

estudiadas en clase

Page 3: Implementacion de las reglas de normalización en db

Construyamos una base de datos que nos permita gestionar la información de los estudiantes;

la tabla llamada estudiantes, tendría los siguientes campos, por ejemplo:

estudiantes

documento

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Grado

Acudiente

Eps

email

Page 4: Implementacion de las reglas de normalización en db

La primera forma normal, indica que es requerido un campo UNICO E IRREPETIBLE que sirva

de identificador para cada uno de los registros; asi las cosas, el elegido seria documento:

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Grado

Acudiente

Eps

email

Page 5: Implementacion de las reglas de normalización en db

En la segunda forma normal, los campos que NO dependan de la primary key, deben ser

suprimidos de la tabla, y convertidos en una nueva entidad (tabla); en este caso, si el

estudiante es eliminado de la base, el grado NO se elimina, asi como tampoco la eps; por ello,

estos dos campos se convierten en tablas nuevas:

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Acudiente

email

Grado

Idgrado

nombregrado

Eps

Ideps

nombreeps

Page 6: Implementacion de las reglas de normalización en db

Con el surgimiento de estas nuevas tablas, es necesario que pasen también por la primera y

segunda forma normales; para este caso, cada una de las tablas debe tener obligadamente, un

identificador único e irrepetible; nos valdremos de un id para cada caso (por ejemplo, es

posible descargar el listado de las eps colombianas y usar el código de cada una para su

identificación)

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Acudiente

email

Grado

Idgrado (primary key)

nombregrado

Eps

Ideps (primary key)

nombreeps

Page 7: Implementacion de las reglas de normalización en db

La tercera forma normal nos indica la cardinalidad o tipo de relación entre cada una de las entidades; se

prefiere que la cardinalidad sea de uno a varios, ya que es la que evita redundancias en la información; para que

esta cardinalidad sea efectiva, debe considerarse que la tabla relacionada como varios, deberá contener como

campo de referencia o CLAVE FORANEA, al primary key de la tabla con cardinalidad uno; vamos a analizarlo

con este ejemplo: que es mas apropiado: decir que un estudiante esta en varios grados? O que en un grado hay

varios estudiantes?

La respuesta es bastante clara, por lo que procedemos a crear un campo idéntico al primary key de grado (el

uno) dentro de la tabla estudiantes (el varios)

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Idgrado (foreign key)

Acudiente

email

Grado

Idgrado (primary key)

nombregrado

Eps

Ideps (primary key)

nombreeps

Page 8: Implementacion de las reglas de normalización en db

Ahora, hagamos el mismo razonamiento con los estudiantes y la eps: será que un estudiante tiene varias eps? O

una eps tiene afiliados a varios estudiantes?

…no es muy difícil verdad? Asi que, la primary key de la tabla eps (el uno) debe agregarse como campo de

referencia dentro de estudiantes (el varios)

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Idgrado (foreign key)

Ideps (foreign key)

Acudiente

email

Grado

Idgrado (primary key)

nombregrado

Eps

Ideps (primary key)

nombreeps

Page 9: Implementacion de las reglas de normalización en db

Si las relaciones son correctas, se entra automáticamente a la cuarta forma normal; en esta, las referencias se

integran desde los campos primary key hacia los campos foreign key; la gran ventaja de esto, es que los enlaces

de integración se crean inmediatamente, sin la necesidad de crearlos con cada nuevo registro; sin embargo, se

debe de ser muy cuiddoso cuando se comienza a alimentar la información en la base; para nuestro ejemplo, si

comenzamos a llenar estudiantes, la base no va a permitir grabarlos porque NO EXISTE aun, la referencia de la

eps a la que esta afiliado; aun asi, todavía haría falta llenar los grados antes que a los estudiantes.

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Idgrado (foreign key)

Ideps (foreign key)

Acudiente

email

Grado

Idgrado (primary key)

nombregrado

Eps

Ideps (primary key)

nombreeps

Page 10: Implementacion de las reglas de normalización en db

Si hacemos un análisis mas profundo de nuestra base, cualquiera wue sea, entenderemos que hay que ser lo

mas especifico posible; por ejemplo, quien dicta la clase? En donde se ve la clase? Quien toma dichas clases?

Esto nos indica la imperiosa necesidad de crear dos nuevas entidades (tablas) llamadas docentes y materias.

Ya aplicando las cuatro formas normales, deberíamos tener algo como esto:

Grado

Idgrado (primary key)

Nombregrado

Eps

Ideps (primary key)

nombreeps

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Idgrado (foreign key)

Ideps (foreign key)

Acudiente

email docentes

Cedula (primary key)

nombredoc

materias

idmateria (primary key)

Nombremateria

idgrado (foreign key)

Cedula (foreign key)

Page 11: Implementacion de las reglas de normalización en db

Fijemonos como hemos creado nuestro MER (modelo entidad relación) desde los extremos de los enlaces; es

decir, desde eps y docentes; si hablamos de cardinalidad, y recitamos el camino de los enlaces, nos quedaría

algo asi:

Un docente dicta varias materias en un curso en el cual, hay varios estudiantes que están afiliados a una eps

Grado

Idgrado (primary key)

Nombregrado

Eps

Ideps (primary key)

nombreeps

estudiantes

documento (primary key)

Apellidos

Nombres

Direccion

Telefono

Dianac

Mesnac

Anonac

Idgrado (foreign key)

Ideps (foreign key)

Acudiente

email docentes

Cedula (primary key)

nombredoc

materias

idmateria (primary key)

Nombremateria

idgrado (foreign key)

Cedula (foreign key)

1

1

1

1

Page 12: Implementacion de las reglas de normalización en db

A continuación vamos a consignar las consultas sql que deben ser desarrolladas para la correcta

creación de las tablas; es MUCHO MUY IMPORTANTE!!!! Que construya las tablas en el estricto orden

que se le indica; de otra forma, podrá generar errores de referencia por no existencia (por ejemplo,

si ustee construye primero la tabla de materias, no va a poder referenciar la cedula del docente

porque la tabla docentes aun no existe) o errores de cotejamiento (constraint), los cuales,

básicamente, se dan porque usted intenta delacionar como foreign key, un campo con distinto

nombre o distinta cantidad de términos, en caso de ser varchar (por ejemplo, usted construye la tabla

docentes con cedula en minúscula y con 20 caracteres, mientras que intenta referenciar con un

campo Cedula con c mayuscula en la tabla materias, y con mas de 20 (o menos de 20) caracteres.

Recuerde: la cuarta forma normal EXIGE INTEGRIDAD REFERENCIAL, esto es, exactitud y precisión

en la escritura

Page 13: Implementacion de las reglas de normalización en db
Page 14: Implementacion de las reglas de normalización en db
Page 15: Implementacion de las reglas de normalización en db
Page 16: Implementacion de las reglas de normalización en db
Page 17: Implementacion de las reglas de normalización en db
Page 18: Implementacion de las reglas de normalización en db

Note como en primer lugar, se construyeron aquellas tablas que NO poseen ninguna clave

foránea (foreign key), para posteriormente tomar sus claves primarias y vincularlas con las

siguientes tablas

Recuerde:

Este es un simple ejercicio en clase; usted deberá pensar, concebir y diseñar su propia base

de datos para su proyecto final; el trabajo en el hosting es delicado, y en ocasiones puede

volverse frustrante y agotador; no desfallezca; como sabe, si esto fuera fácil, cualquiera lo

haría; tenga en cuenta el amplio campo de acción en el mercado laboral, que un desarrollador

php y mysql tiene, y las posibilidades de articular interdisciplinarmente su proyecto a los

demás entes de su formación (la semana cultural, gestión empresarial, artes e incluso

matemática)

Espero que este repaso sea de ayuda para usted. Exitos!!