[Php-avanzado] Ejercicios de Normalización - Clase 8
Jesica Billia
jesicabillia en hotmail.com
Dom Mayo 30 16:02:48 ART 2010
hola bruno!! yo te respondí pero me bloqueó el mensaje porq superaba los kbs o algo así, te mando los ejercicios y el texto del apunte dividido en partes,
saludos!!
ejercicios
----------
Clase 8
=======
Normalización
-------------
1) Crear las tablas necesarias en tercera forma normal para guardar los siguientes datos: Nombre, Apellido, Fecha de Nacimiento, Dirección, Teléfono, e-mail, Ciudad, Código Postal, Provincia, PaÃs, Consulta Realizada (pregunta), Respuesta a la Consulta, Estado de la Consulta (Pendiente, Respondida, Descartada)
2)Crear las tablas necesarias para una agenda que guarde los siguientes datos: nombres, apellidos, dirección principal, derección alternativa, teléfono, ciudad, código postal, provincia y pa
Diseñe los almacenamientos para que estén en tercera forma normal.
apunte (1er parte)
-------
Normalización de Tablas de Bases de Datos
Normalización es un conjunto de reglas que sirven para ayudar a los diseñadores
a desarrollar un esquema que minimice los problemas de lógica en el
almacenamiento de datos. Cada regla está basada en la que le antecede. La
normalización se adoptó porque el viejo estilo de poner todos los datos en un
solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y
conducía a errores de lógica cuando se trataba de manipular los datos. Por
ejemplo, vea la base de datos MiTienda. Si almacena todos los datos en la tabla
Clientes, ésta podría verse como se muestra a continuación:
Clientes
ID_Cliente Nombre
Apellidos
Nombre_Producto1 Costo_Producto1
Imagen_Producto1 Nombre_Producto2 Costo_Producto2
Imagen_Producto2 Fecha_Pedido
Cantidad_Pedido
Nombre_Cia_Envios
La tabla se ha descrito de manera abreviada pero aun así representa la idea
general.
¿Cómo podría añadir un nuevo cliente en su tabla Clientes? Debería añadir un
producto y un pedido también. ¿Qué tal si quisiera emitir un informe de todos
los productos que vende? No podría separar fácilmente los productos de los
clientes con una simple instrucción SQL. Lo bello de las bases de datos
relacionales, si están bien diseñadas, es que puede hacer esto fácilmente.
La nomlalización también hace las cosas fáciles de entender. Los seres humanos
tenemos la tendencia de simplificar las cosas al máximo. Lo hacemos con casi
todo desde los animales hasta con los automóviles. Vemos una imagen de gran
tamaño y la hacemos menos compleja agrupando cosas similares juntas. Las guías
que la nomlalización provee crean el marco de referencia para simplificar la
estructura. En su base de datos de muestra es fácil detectar que usted tiene
tres diferentes grupos: clientes, productos y pedidos. Si sigue las guías de la
normalización, podría crear las tablas basándose en estos grupos.
El proceso de normalización tiene un nombre y una serie de reglas para cada
fase. Esto puede parecer un poco confuso al principio, pero poco a poco irá
entendiendo el proceso, así como las razones para hacerlo de esta manera. A la
mayoría de la gente le encantan las hojas de cálculo por la forma en la que
manejan sus datos. El tiempo que le lleve reconfigurar su esquema para
ajustarlo al proceso de nomlalización, siempre será bien Iinvertido. Al fin y
al cabo, esto le tomará menos tiempo que el que tendría que invertir, para
cortar y pegar sus columnas de datos para generar el infomle que quiere su
profesor.
Otra ventaja de la nomlalización de su base de datos es el consumo de espacio.
Una base de datos nomlalizada puede ocupar menos espacio en disco que una no
nomlalizada. Hay menos repetición de datos, lo que tiene como consecuencia un
mucho menor uso de espacio en disco.
Proceso de normalización
El proceso de normalización es un
estándar que consiste, básicamente, en un proceso de conversión de las
relaciones entre las entidades, evitando:
•
La redundancia de
los datos: repetición de datos en un sistema.
•
Anomalías de
actualización: inconsistencias de los datos como resultado de datos redundantes
y actualizaciones parciales.
•
Anomalías de
borrado: pérdidas no intencionadas de datos debido a que se han borrado otros
datos.
•
Anomalías de
inserción: imposibilidad de adicionar datos en la base de datos debido a la
ausencia de otros datos.
Tomando como referencia la tabla
siguiente:
AUTORES Y LIBROS
NOMBRE
NACION
CODLIBRO
TITULO
EDITOR
Date
USA
999
IBD
AW
Ad.Mig.
ESP
888
CyD
RM
Ma.Piat.
ITA
777
CyD
RM
Date
USA
666
BdD
AW
Se plantean una serie de problemas:
•
Redundancia: cuando
un autor tiene varios libros, se repite la nacionalidad.
•
Anomalías de
modificación: Si Ad.Mig. y Ma.Piat. desean cambiar de editor, se modifica en
los 2 lugares. A priori no podemos saber cuántos autores tiene un libro. Los
errores son frecuentes al olvidar la modificación de un autor. Se pretende
modificar en un sólo sitio.
•
Anomalías de
inserción: Se desea dar de alta un autor sin libros, en un principio. NOMBRE y
CODLIBRO son campos clave, una clave no puede tomar valores nulos.
Asegurando:
•
Integridad entre
los datos: consistencia de la información.
El proceso de normalización nos
conduce hasta el modelo físico de datos y consta de varias fases denominadas
formas normales, estas formas se detallan a continuación.
Definición
de la clave
Antes de proceder a la normalización
de la tabla lo primero que debemos de definir es una clave, esta clave deberá
contener un valor único para cada registro (no podrán existir dos valores
iguales en toda la tabla) y podrá estar formado por un único campo o por un
grupo de campos.
En la tabla de alumnos de un centro de
estudios no podemos definir como campo clave el nombre del alumno ya que pueden
existir varios alumnos con el mismo nombre. Podríamos considerar la posibilidad
de definir como clave los campos nombre y apellidos, pero estamos en la misma
situación: podría darse el caso de alumnos que tuvieran los mismo apellidos y
el mismo nombre (Juan Fernández Martín).
La solución en este caso es asignar un
código de alumno a cada uno, un número que identifique al alumno y que estemos
seguros que es único.
Una vez definida la clave podremos
pasar a estudiar la primera forma normal.
Grados de normalización
Existen básicamente tres niveles de normalización: Primera Fomla Normal (1NF),
Segunda Fomla Normal (2NF) y Tercera Fomla Normal (3NF). Cada una de estas
formas tiene sus propias reglas. Cuando una base de datos se conforma a un
nivel, se considera nomlalizada a esa forma de nomlalización. Por ejemplo,
supongamos que su base de datos cumple con todas las reglas del segundo nivel
de nomlalización. Se considera que está en la Segunda Fomla Normal. No siempre
es una buena idea tener una base de datos conformada en el nivel más alto de
normalización. Puede llevar aun nivel de complejidad que pudiera ser evitado si
estuviera en un nivel más bajo de normalización.
From: brunomeschini en hotmail.com
To: php-avanzado en pato2.fi.mdp.edu.ar
Date: Sun, 30 May 2010 18:53:03 +0000
Subject: Re: [Php-avanzado] Ejercicios de Normalización - Clase 8
hola leo, no llego ningun mail en respuesta al mio, yo escribi ayer y
cheke un par de veces y nadie me habia respondido, asi que seria bueno
que alguien mandara el texto de nuevo...
saludos,,,,
_________________________________________________________________
¿Quieres conocer trucos de Windows 7? ¡Los que ya lo usan te los cuentan!
http://www.sietesunpueblodeexpertos.com/index_windows7.html
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20100530/adf8910f/attachment-0001.htm
Más información sobre la lista de distribución Php-avanzado