Fundamentos de Bases de Datos-Semana 03

Normalización de Base de Datos Jonathan Martins Torres TSINF140-2 - FUNDAMENTOS DE BASES DE DATOS Instituto IACC 30 de E

Views 124 Downloads 8 File size 425KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Normalización de Base de Datos Jonathan Martins Torres TSINF140-2 - FUNDAMENTOS DE BASES DE DATOS Instituto IACC 30 de Enero de 2019

Pregunta 1 Tener una base de datos no optimizada parece no ser un gran problema, hasta que lo es. Lamentablemente los problemas generados con la información almacenada en la base de datos compartida con todas las sucursales podría significar graves pérdidas si, por ejemplo:     

Asociamos un precio equivocado a un producto Negamos la venta de un artículo si el sistema nos mostrara información errada respecto al stock Incurrimos en gastos de logística innecesarios si hay errores sobre la ubicación de productos en bodega Nos exponemos a denuncias / Demandas por cobros excesivos Extendemos los tiempos de espera de los clientes en caja por no encontrar de manera precisa la descripción/precio de un producto.

Entonces, la pregunta que debemos hacernos es ¿podemos operar con una Base de Datos sin normalizar? La respuesta es que sí, podríamos hacerlo y no considerar las sugerencias de un profesional, pero debemos saber de antemano que los problemas se presentarán más temprano que tarde y generando no sólo los daños que podemos prever, si no también aquellos que todavía no somos capaces de pensar (y en el peor orden posible). El proceso de normalización de la Base nos permitiría enfrentar el escenario de resolución de problemas con todos los pros que esto significa, y además con el gran punto a favor de que lo haríamos reduciendo a cero las posibilidades de que los actuales problemas (los que hemos identificado y los que no) no afecten nuestra operación, puesto que todo se haría una vez respaldada la base actual y en un ambiente de pruebas, sin tocar la data guardada y sin pasar a ambiente productivo hasta estar cien por ciento seguros de que podemos retomar la producción. La normalización nos permitirá funcionar con estructuras simplificadas que optimizarán los procesos de ingreso y mantenimiento de la data, pero, por sobre todo, en las búsquedas. Algunos de los beneficios más importantes (y conocidos) que obtendremos de la normalización son:    

Optimizar el espacio de almacenamiento, reduciendo tamaño y tiempos de acceso. Eliminación de datos duplicados (o innecesarios). Identificación de errores de carácter lógico. Tener una base de datos ordenada y fácil de entender.

Por todo lo anterior, si volvemos a hacernos la pregunta ¿podemos operar con una base de datos sin normalizar? La respuesta es que sí, podemos, pero desde mi opinión profesional no es responsable y, en caso de que mantengan la idea de no aplicar este paso fundamental, preferiría no seguir adelante con la asesoría, no obstante que estaré encantado de retomarlo si cambian esta decisión.

Pregunta 2

NRO_MAT

NOMBRE

DIRECCION

TELEFONO

ASIGNATURA

SEMESTRE

CARRERA

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

+56950326598 +56222556699

MATEMATICA

1

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

+56950326598 +56222556699

1

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

+56950339988 +56222337788

INTRODUCCION A LA PROGRAMACIO N MATEMATICA

ANALISTA PROGRAMADO R ANALISTA PROGRAMADO R

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

+56950339988 +56222337788

1

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

+56950339988 +56222337788

INTRODUCCION A LA INFORMATICA INGLES I



      

1

1

TECNICO SUPERIOR EN INFORMATICA TECNICO SUPERIOR EN INFORMATICA TECNICO SUPERIOR EN INFORMATICA

NRO_MAT: corresponde al número de matrícula del estudiante, el cual es un número único que lo identifica por carrera, es decir, si estudiara otra carrera sería otro nro_mat. NOMBRE: almacena nombre y apellido del estudiante. DIRECCION: almacena dirección del estudiante. TELEFONO: almacena teléfono del estudiante. ASIGNATURA: almacena asignatura del estudiante. SEMESTRE: almacena el semestre al que pertenece la asignatura del estudiante. CARRERA: almacena la carrera a la que pertenece la asignatura cursada por el estudiante.

¿Es posible aplicar la 1FN, 2FN y 3FN?, ¿De qué forma? Explique brevemente cada una de ellas. Respecto a la 1FN: Sí, es posible aplicarla pues actualmente existe duplicación de datos en la tuplas (filas, si lo hablamos en términos de MS Excel). En este caso, cada registro de estudiante duplicado (NRO_MAT, NOMBRE, TELEFONO) es ASIGNATURA el campo que no se repite, por lo que este campo se debería sacar a una tabla independiente. Respecto a la 2FN: Sí, es posible y se aplica para evitar la redundancia de data. Respecto a la 3FN: También es posible y se aplicará una vez tengamos aplicada la 2FN y con el objeto de tener solamente tablas fuertes basadas en claves primarias con sus atributos, y que éstos no tengan dependencias transitivas. A continuación los diagramas correspondientes a cada etapa:

1FN Eliminación de datos duplicados (TELÉFONO) separando éstos en una segunda tabla. NRO_MAT

NOMBRE

DIRECCION

TELEFONO

ASIGNATURA

SEMESTRE

CARRERA

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

+56950326598 +56222556699

MATEMATICA

1

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

+56950326598 +56222556699

1

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

+56950339988 +56222337788

INTRODUCCION A LA PROGRAMACIO N MATEMATICA

ANALISTA PROGRAMADO R ANALISTA PROGRAMADO R

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

+56950339988 +56222337788

1

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

+56950339988 +56222337788

INTRODUCCION A LA INFORMATICA INGLES I

NRO_MAT

TELEFONO

001

+56950326598

001

+56222556699

001

+56950326598

001

+56222556699

002

+56950339988

002

+56222337788

002

+56950339988

002

+56222337788

002

+56222337788

002

+56950339988

1

1

TECNICO SUPERIOR EN INFORMATICA TECNICO SUPERIOR EN INFORMATICA TECNICO SUPERIOR EN INFORMATICA

2FN Al separar los campos ASIGNATURA y CARRERA en una tabla independiente se continúa reduciendo el uso de disco. A través del NRO_MAT y la CARRERA se puede saber las asignaturas que está cursando el alumno. NRO_MAT

NOMBRE

DIRECCION

SEMESTRE

CARRERA

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

1

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

1

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

1

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

1

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

1

ANALISTA PROGRAMADO R ANALISTA PROGRAMADO R TECNICO SUPERIOR EN INFORMATICA TECNICO SUPERIOR EN INFORMATICA TECNICO SUPERIOR EN INFORMATICA

NRO_MAT

ASIGNATURA

CARRERA

001

MATEMATICA

ANALISTA PROGRAMADOR

001

INTRODUCCION A LA PROGRAMACION MATEMATICA

ANALISTA PROGRAMADOR

TECNICO SUPERIOR EN INFORMATICA

002

INTRODUCCION A LA INFORMATICA INGLES I

NRO_MAT

TELEFONO

001

+56950326598

001

+56222556699

001

+56950326598

001

+56222556699

002

+56950339988

002

+56222337788

002

+56950339988

002

+56222337788

002

+56222337788

002

+56950339988

002 002

TECNICO SUPERIOR EN INFORMATICA

TECNICO SUPERIOR EN INFORMATICA

3FN Finalmente separamos la CARRERA de la tabla de alumnos, creado una PRIMARY KEY a través de la que podemos relacionarla con dicha tabla (COD_CARRERA), con lo que tenemos sólo tablas fuertes en donde hay PRIMARY KEYS con sus atributos en relación directa, optimizando el espacio en disco y sin pérdidas de información. NRO_MAT

NOMBRE

DIRECCION

SEMESTRE

COD_CARRERA

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

1

111

001

PAOLA RODRIGUEZ

SAN DIEGO 131, RM

1

111

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

1

222

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

1

222

002

LUISA MARTINEZ

SAN ISIDRO 23, RM

1

222

NRO_MAT

ASIGNATURA

001

MATEMATICA

001

INTRODUCCION A LA PROGRAMACION MATEMATICA

002 002 002

INTRODUCCION A LA INFORMATICA INGLES I

COD_CARRERA

CARRERA

111

ANALISTA PROGRAMADOR

222

TECNICO SUPERIOR EN INFORMATICA

NRO_MAT

TELEFONO

001

+56950326598

001

+56222556699

001

+56950326598

001

+56222556699

002

+56950339988

002

+56222337788

002

+56950339988

002

+56222337788

002

+56222337788

002

+56950339988

Bibliografía 

Material IACC, TSINF140-2 - FUNDAMENTOS DE BASES DE DATOS, 2019, Semana 03



Video Base de Datos #13, Normalización (1FN, 2FN y 3FN), canal CodigoCompilado (https://www.youtube.com/watch?v=bO18omSzeR4)