ITM
Técnico Profesional en Programación de Sistemas
de Información
MODULO 1
MODULO 2
MODULO 3
MODULO 4
MODULO
5
• Construcción de Bases de datos 1 (48 Horas)
• ANÁLISIS DE REQUERIMIENTOS
(64 Horas)
• CONSTRUCCIÓN DE ELEMENTOS DE SOFTWARE - WEB
(64 Horas)
• Construcción de elementos de software
(24 Horas)
• Identificar las Organizaciones, sus Procesos y Sistemas de
Información Empresarial
(40 Horas)
Técnico Profesional en Programación de Sistemas
de Información
COMPETENCIAS GENERALES:
•
•
•
•
Trabajar en equipo
Desarrollo del pensamiento analítico y sistémico
Desarrollo del pensamiento lógico y matemático
Gestionar la información
BASES DE DATOS
ACTIVIDAD
1. En que consiste la normalización de una
base de datos.
2. Que es la normalización 1NF, 2NF,
3NF.
3. Cual es el objetivo principal de la
normalización de una base de datos.
Normalización 1NF, 2NF, 3NF
La normalización de una base de datos
se hace para optimizar la información
contenida en la misma evitando la
creación de información duplicada y
el aumento desmedido del archivo de
la base de datos.
La normalización nos va a
ayudar a que la
información entrada sea
eficiente y el manejo de la
misma sea menos
dispuesto a errores.
Las bases de datos se clasifican en estados
de normalización del uno al cinco (1NF 5NF).
Si una base de datos cumple con un estado
de normalización superior también cumple
con los estados que le preceden (Ej. Si una
base de datos se encuentra en el estado de
normalización 3NF esta cumple con los
estados 1NF y 2NF).
En el lenguaje de bases de datos, el
término de relación se refiere a lo que
llamamos tablas. Podríamos decir que
las tablas son la representación física
del concepto de relación, las columnas
son atributos y las filas son tuplas.
1NF
Todos los valores de las columnas tienen
que ser atómicos (campos repetitivos).
La información guardada en cada columna
no puede dividirse en información más
sencilla.
Ej. Digamos que una tabla
contiene el nombre de los usuarios de la
biblioteca. Una de las columnas se puede
usar para guardar el nombre y el apellido.
1NF
Nombre
José Zambrana
Luis Quintero
María Sierra
Si quisiéramos utilizar esta columna para arreglar
el listado por apellidos, tendríamos dificultad
para crear una rutina que leyera la primera parte
del nombre y luego seleccionara el apellido
completo y los ordenara por orden ascendente.
1NF
Esta columna podría dividirse en dos de la
siguiente manera.
ID_Usuario
1
2
3
Nombre
José
Luis
María
Apellido
Zambrana
Quintero
Sierra
1NF también indica que las columnas no deben
repetirse.
1NF
Si un usuario saca varios libros de la biblioteca la
información puede ser representada de la
siguiente manera:
ID_Usuario
1
3
Fecha
2004-11-19
2004-11-19
ID_Libro1
1236
9578
ID_Libro2
1234
ID_Libro3
6321
Esta tabla indica que el usuario uno saco tres libros el 19
de noviembre de 2004 y el usuario 3 saco 1 libro para la
misma fecha.
1NF
Hasta ahora la tabla guarda la información que
queremos pero, ¿que pasaría si un usuario quiere
sacar más de tres libros? ¿Cual fácil sería crear
un query para saber cuantas veces un libro fue
sacado en un determinado espacio de
tiempo? Este query tendría que ir a cada columna
a chequear si el libro está en esa columna y luego
sumar las veces que se encontró el libro en cada
columna para saber el total.
1NF
Para cumplir con 1NF, la tabla
reacomodarse de la siguiente manera:
ID_Usuario
1
1
1
3
Fecha
2004-11-19
2004-11-19
2004-11-19
2004-11-19
ID_Libro
1236
1234
6321
9578
podría
1NF
Las columnas con el prefijo de ID son las llaves
primarias de las tablas de Usuarios y Libros. Al
usarse en otras tablas, estas llaves se refieren
como llaves foráneas ya que se usan para
identificar información contenidas en otras
tablas. Las llaves primarias pueden ser simples o
compuestas. Una llave simple se compone de una
columna (Ej. ID_Usuario) y una llave compuesta
se compone de dos o más columnas.
2NF
Tiene que cumplir con los requisitos
de 1NF y cada columna que no sea
parte de la llave primaria debe ser
totalmente dependiente de la llave
primaria.
2NF
ID_Prestamo ID_Usuario Fecha
ID_Libro
Tema
1
1
2004-11-19
1236
Poesía Epica
2
1
2004-11-19
1234
Ciencia
Ficción
3
1
2004-11-19
6321
Biología
4
3
2004-11-19
9578
Biología
2NF
Toda la información contenida en el récord debe
ser referenciada únicamente por la llave
primaria.
En la tabla anterior, si uso
ID_Prestamo 1, yo sé que el usuario 1 tomó
prestado el libro 1236 el 19 de noviembre de
2004. Si uso ID_Prestamo, yo no sé cual es el
tema del libro. Esa información me la daría
ID_Libro.
2NF
La columna de Tema podría eliminarse de la
tabla ya que estaría contenida en la tabla de
Libros y la tabla se vería como sigue:
ID_Prestamo
1
2
3
4
ID_Usuario
1
1
1
3
Fecha
2004-11-19
2004-11-19
2004-11-19
2004-11-19
ID_Libro
1236
1234
6321
9578
3NF
Tiene que cumplir con 2NF y las
columnas que no sean parte de la
llave primaria, sean mutuamente
independientes.
3NF
La dependencia de las columnas sea
únicamente de la llave primaria y no de
otras columnas. La forma más fácil de
verlo
es
en
una
orden
de
compra.
Usualmente una orden de
compra se detalla como sigue:
Linea
1
Articulo
Libro de
Poesía
Unidad
C/U
Cantidad
2
Precio
$10.00
Total
$20.00
3NF
La parte importante está en las
últimas tres columnas. Total es el
resultado
del
producto
de
Cantidad y Precio.
3NF
Si estuviéramos viendo un query, no sería problema. El
problema está en guardar este resultado en una tabla. Si
cambiáramos la cantidad o el precio, el total no
cambiaría por sí mismo. Esto es lo que hace que la
columna de Total sea dependiente de las columnas de
Cantidad y Precio y por consiguiente no cumpla con
3NF. Si solamente guardamos las primeras cinco
columnas en la tabla y dejamos que un query se haga
cargo de la matemática, nuestro diseño será más
eficiente y nuestro trabajo más rápido y fácil de
documentar, corregir y actualizar.
Descargar

BASES DE DATOS