Normalizacion de bd

Solo disponible en BuenasTareas
  • Páginas : 9 (2073 palabras )
  • Descarga(s) : 10
  • Publicado : 21 de julio de 2010
Leer documento completo
Vista previa del texto
BULMA: Normalización de Bases de Datos y Técnicas de diseño (Por Barry Wise)

Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores | Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons

Normalización de Bases de Datos y Técnicas de diseño (Por Barry Wise)
(209381 lectures)

Per Gabriel, Gigi (http://www.degabriel.es) Creado el 07/02/2001 00:00 modificado el 28/07/2001 00:47

Eneste Articulo(1) aparecido en PHPBuilder(2) podemos observar, con algunos ejemplos que pone el autor, la forma correcta en que se deben diseñar las Bases de Datos para que no se produzca la corrupción de sus datos por un mal diseño. NUEVO: Aqui os pongo el articulo traducido al castellano. Creo que es una buena lectura, sobre todo para recordar la teoría que se da sobre Bases de Datos, tanto pararepasar como para aprender a hacerlo correctamente. Gracias a J.M.Font(3) que ha traducido el articulo, os lo pongo para que disfruteis de la lectura.... Articulo Original Uno de los factores mas importantes en la creación de páginas web dinámicas es el diseño de las Bases de Datos (BD). Si tus tablas no estan correctamente diseñadas, te pueden causar un montón de dolores de cabeza cuando tengas derealizar complicadísimas llamadas SQL en el código PHP para extraer los datos que necesitas. Si conoces como establecer las relaciones entre los datos y la normalización de estos, estarás preparado para comenzar a desarrollar tu aplicación en PHP. Si trabajas con MySQL o con Oracle, debes conocer los métodos de normalización del diseño de las tablas en tu sistema de BD relacional. Estos métodospueden ayudarte a hacer tu código PHP mas fácil de comprender, ampliar, y en determinados casos, incluso hacer tu aplicación mas rápida. Básicamente, las reglas de Normalización están encaminadas a eliminar redundancias e inconsistencias de dependencia en el diseño de las tablas. Más tarde explicaré lo que esto significa mientras vemos los cinco pasos progresivos para normalizar, tienes que teneren cuenta que debes crear una BD funcional y eficiente. Tambien detallaré los tipos de relaciones que tu estructura de datos puede tener. Digamos que queremos crear una tabla con la información de usuarios, y los datos a guardar son el nombre, la empresa, la dirección de la empresa y algun e-mail, o bien URL si las tienen. En principio comenzarias definiendo la estructura de una tabla como esta:Formalización CERO

usuarios nombre

empresa ABC XYZ

direccion_empresa 1 Work Lane 1 Job Street

url1 abc.com abc.com

url2 xyz.com xyz.com

Joe Jill

Diríamos que la anterior tabla esta en nivel de Formalizacion Cero porque ninguna de nuestras reglas de normalización ha sido aplicada. Observa los campos url1 y url2 -- ¿Qué haremos cuando en nuestra aplicación necesitemos una terceraurl ? ¿ Quieres tener que añadir otro campo/columna a tu tabla y tener que reprogramar toda la entrada de datos de tu
1/5

BULMA: Normalización de Bases de Datos y Técnicas de diseño (Por Barry Wise)

código PHP ? Obviamente no, tu quieres crear un sistema funcional que pueda crecer y adaptarse fácilmente a los nuevos requisitos. Hechemos un vistazo a las reglas del Primer Nivel deFormalización-Normalización, y las aplicaremos a nuestra tabla. Primer nivel de Formalización/Normalización. (F/N)
1. Eliminar los grupos repetitivos de la tablas individuales. 2. Crear una tabla separada por cada grupo de datos relacionados. 3. Identificar cada grupo de datos relacionados con una clave primaria.

¿ Ves que estamos rompiendo la primera regla cuando repetimos los campos url1 y url2 ? ¿ Yque pasa con la tercera regla, la clave primaria ? La regla tres básicamente significa que tenemos que poner una campo tipo contador autoincrementable para cada registro. De otra forma, ¿ Qué pasaria si tuvieramos dos usuarios llamados Joe y queremos diferenciarlos. Una vez que aplicaramos el primer nivel de F/N nos encontrariamos con la siguiente tabla:

usuarios

userId 1 1 2 2

nombre...
tracking img