sábado, 21 de septiembre de 2013

Buenas tardes, hoy como todos los días y para no perder mi costumbre de "una publicación por día" voy a hablar un poco de bases de datos, se que venía haciendo publicaciones referentes a "El arte de programar" el hilo que tiene que ver con la programación de caracter industrial o profesional como quieran llamarle.
No obstante hoy voy a abrir un nuevo hilo "Diseño de bases de datos", que tratará la temática de como hacer una base de datos como la gente.
Voy a comenzar esta serie de publicaciones diarias hablando sobre el proceso de normalización, ¿qué es el proceso de normalización? ¿en que ayuda el proceso de normalización? ¿qué pasa si no lo aplico?
En proximas entradas me extenderé sobre las formas normales y luego pequeños tips para mejorar tu base de datos.

Pero antes, como siempre voy a aclarar...



ADVERTENCIAprobablemente mucha gente esté en desacuerdo con lo que expreso en las entradas de mi blog, la idea del blog siempre fue, como todo blog, la de presentar textos que muestren un poco de mi "día a día", en mi caso en el mundo de la programación y la informática.
No obstante, todos mis textos están basados en la normativa vigente, y en toda mi experiencia hasta el momento, aquellos que estén en desacuerdo, probablemente sea por ignorancia o desconocimiento, y también podríamos mencionar engreimiento, creer que saben todo, pero tampoco podemos dejar de lado que quizá esté equivocado en algunas cosas, pero con el tiempo me daré cuenta y lo aclararé en nuevas entradas al blog.

Vamos entonces al tema en cuestión.-

Hoy en día, y desde hace muchos años, nosotros usamos bases de datos, para guardar distintos tipos de datos que luego usaremos tiempo después en un programa, podríamos decir que una base de datos es un conjunto de datos ordenados, pero estaríamos en un error, cualquiera que sepa un poco sobre ésto podría recaer en cosas como "datos que tienen un tipo" y otro tipos de falencias que descartan obviamente esta definición, no obstante no vengo a detallar ni a inmiscuirme en lo profundo de la definición de bases de datos, por lo que tomaremos por el momento a lo dicho antes, (si, esa cutre definición) como la definición de bases de datos por el momento.

En la década del 70' (si, mientras como dije en entradas anteriores Winston Royce, creaba el ciclo de desarrollo de software) el señor Edgar F. Codd publicaba un trabajo denominado "A Relational Model of Data for Large Shared Data Banks", creando entonces el modelo relacional que hoy en día aplica a todas las bases de datos (o debería hacerlo). No obstante uno suele encontrar software (de dudosa calidad) en internet como los conocidos sistemas de foros Vbulletin, o SMF, que cuentan con serios problemas a la hora de cumplir los criterios de normalización.

Codd, a la hora de diseñar el modelo relacional, realizó una serie de criterios para poder especificar que las tablas estuvieran correctas, estas normas de corrección le permiten al programador poder corregir y realizar una tabla correctamente.

Originalmente estas formas normales o criterios de normalización eran 3, creadas por el mismo codd, no obstante tiempo después se mejoró la 3FN (3º criterio o forma normal 3) junto con Boyce nombrando la nueva FN como FNBC (Forma Normal Boyce-Codd).

Luego para finalizar la trayectoria de agregados a las FN, se agregaron la 4º forma normal y la 5º forma normal (otros dos criterios que deben ser cumplidos para que una tabla esté normalizada), aunque generalmente se cree que con tener los primeros 3 criterios cumplidos, una tabla ya esta razonablemente normalizada, es importante en ciertos casos para bases de datos muy grandes aplicar las nuevas FN.

Quiero aclarar que en mi blog solo pondré un resumen de lo que es el proceso de normalización, no obstante invito a todos a entrar en profundidad leyendo cualquiera de los siguientes libros:

Date, C. J. (1999), An Introduction to Database Systems
Kent, W. (1983) A Simple Guide to Five Normal Forms in Relational Database Theory

0 comentarios:

Publicar un comentario