Sunday, January 30, 2011

¿Qué hace una base de datos relacional?

No es una calumnia que se extendió a través de Internet. Es tan profundamente arraigado que muchas personas inteligentes creen que lo entiendo. Tiene perfecto sentido. Es lógico. Es comprensible. Pero está mal, mal, mal.

Me explico ...

De vuelta en la década de 1960 las computadoras eran grandes, ruidosos y muy, muy caro. La información se mantuvo en lugares más o menos al azar y se accede a los programas que fueron codificadas a mano para ir a buscar y enviar los datos al lugar correcto. Era un poco como escribir los nombres de todos sus amigos junto con sus números telefónicos al azar en un pedazo de papel. ¿Cómo saber qué número de teléfono pertenece a qué amigo? En aquellos primeros días, los programadores tenían que saber qué elemento con el que pertenecía al escribir los programas para obtener los datos del sistema. En el propio sistema, que fue casi todo el lugar. Un número de teléfono del cliente tenía que estar relacionada con el nombre del cliente por el programador, cada vez que se utilizó la información.

Luego, en 1970, llegó a Ted Codd con su trabajo seminal: "Un modelo relacional de datos para grandes bancos de datos compartidos" (http://www.acm.org/classics/nov95/toc.html).

El Dr. Edgar Codd nació en 1923 en Dorset, Inglaterra, fue educado en Oxford y voló en la RAF durante la guerra. En 1949 se incorporó a IBM en los EE.UU., se convirtió en un miembro de IBM en 1976 y en 1981 recibió el Premio Turing, el galardón más alto posible de la industria. Sin embargo, pocas personas entienden ahora su "modelo relacional".

La mayoría de la gente sabe que las bases de datos relacionales almacenan la información en tablas. Estos son como los cuadros comunes que usamos todos los días - guías telefónicas, listados de programas de televisión, horarios de trenes, las tablas de clasificación en los deportes etc

Mucha gente piensa que es una base de datos relacional si le permite relacionar la información en una tabla para contrastar la información en otro.

Considere un sistema de orden. Los clientes están en una tabla, junto con sus datos de contacto, límite de crédito, números de teléfono, etc órdenes están en otra mesa, con la primera columna es el número de cliente, por lo que se puede relacionar el Cliente de las órdenes para que el Cliente, que tuvo lugar en otro mesa. Mucha gente piensa que esto se llama una "relación". En realidad, en el lenguaje estructurado de consultas (SQL), que se utiliza para manipular bases de datos relacionales, se llama un 'unirse'.

Ted Codd demostró que la tabla es la relación. Lo que dijo fue que si usted pone todos estos datos en una tabla, puede ver cómo un pedazo de datos (Nombre del cliente) se refiere a todos los demás (al cliente Número de teléfono) sin tener que programa cada vez.

como las tablas normales que usamos todos los días - guías telefónicas, listados de programas de televisión, horarios de trenes, las tablas de clasificación en los deportes etc

Mucha gente piensa que es una base de datos relacional si le permite relacionar la información en una tabla para contrastar la información en otro.

Considere un sistema de orden. Los clientes están en una tabla, junto con sus datos de contacto, límite de crédito, números de teléfono, etc órdenes están en otra mesa, con la primera columna es el número de cliente, por lo que se puede relacionar el Cliente de las órdenes para que el Cliente, que tuvo lugar en otro mesa. Mucha gente piensa que esto se llama una "relación". En realidad, en el lenguaje estructurado de consultas (SQL), que se utiliza para manipular bases de datos relacionales, se llama un 'unirse'.

Ted Codd demostró que la tabla es la relación. Lo que dijo fue que si usted pone todos estos datos en una tabla, puede ver cómo un pedazo de datos (Nombre del cliente) se refiere a todos los demás (al cliente Número de teléfono) sin tener que programa cada vez.

(En realidad, lo que dijo fue algo así como:

"La relación término se utiliza aquí en su sentido matemático aceptado. Dado conjuntos S1, S1, · · ·, Sn, (no necesariamente distintos), R es una relación en estos n se establece si se trata de un conjunto de n-tuplas cada uno de que tiene su primer elemento de S1, el segundo elemento de S1, y así sucesivamente. "

pero él fue un matemático y un genio y yo no soy ni.)

En una mesa, por ejemplo, un directorio telefónico, usted puede leer un nombre en una columna y se conoce el número de teléfono en la siguiente columna se refiere al nombre que acabas de leer, y no algún otro nombre en una página diferente. En cualquier columna (vertical) toda la información es del mismo tipo (nombre o número de teléfono, pero no ambos). En cada fila, toda la información que tiene que ver con (el número de teléfono pertenece a la designación en la columna "Nombre", y no algún otro nombre en otro lugar).

Así que una base de datos relacional almacena sus datos en las tablas. Es tan simple como eso. Estos cuadros pueden o no pueden afiliarse a otras tablas para consultas complejas, pero si no lo hacen, no para que sea relacional.

En 1985, Ted Codd define las reglas para bases de datos relacionales, 12 en total, pero sólo uno de ellos (Regla 7: Alto nivel de inserción, actualización y supresión) habla, de pasada, sobre las tablas de unión. Algunas de las reglas aún no están presentes con el apoyo de bases de datos relacionales día. Ted Codd falleció en 2003, pero la tecnología aún no ha alcanzado a todos los puntos de vista de su notable.

No comments:

Post a Comment