¿Qué es una base de datos relacional? [cerrado]

9

Principalmente soy administrador del sistema y no trabajo directamente con bases de datos que no sean instalarlas, configurar cuentas, otorgar privilegios, etc. Me di cuenta de que si The Boss se me acercaba y me preguntaba: "¿Qué es una base de datos relacional?" Probablemente no podría dar una respuesta satisfactoria ... Tal vez murmure algo sobre los datos almacenados y organizados por categorías que puede consultar con un lenguaje de programación especial (es decir, SQL).

Entonces, ¿podría alguien dar una buena "respuesta de jefe" para lo que es una base de datos relacional? ¿Y tal vez es diferente de solo almacenar datos en un servidor de archivos? Puntos de bonificación para analogías inteligentes pero accesibles y tablas explicativas, columnas, registros y campos. Definiría una "Respuesta del Jefe" como una explicación rápida de un párrafo (tal vez dos) para personas no técnicas ... principalmente su Jefe, en esas raras ocasiones en realidad le preguntan qué hace todo el día.


fuente
2
No estoy seguro de que serverfault sea el lugar correcto para esta pregunta, aunque es útil. Quizás DBA.SE o Programmers.SE .
Orbling
1
¿Por qué su jefe haría una pregunta así y, lo que es más importante, qué tiene que ver con la administración del sistema?
John Gardeniers
1
@John Gardeniers, puede pertenecer aquí porque muchos 'administradores de sistemas' usan un sombrero de 'administración de base de datos', lo que significa que tienen una buena comprensión de cómo funciona RDBMS. En cuanto a por qué los jefes hacen preguntas que hacen, quién sabe, pero saber cómo comunicar claramente los conceptos es algo bueno de la OMI.
Zoredache
1
@ Zoredache, en mi trabajo llevo muchos sombreros. Eso no significa que todos estén en el tema de SF.
John Gardeniers
Las respuestas a continuación son muy buenas, pero tenga en cuenta que puede tener bases de datos no relacionales (como btrieve) y aún mantener relaciones entre los datos normalizados a través de la lógica de aplicación adecuada.
Mark Henderson

Respuestas:

16

Una base de datos relacional no solo almacena datos : almacena relaciones entre datos y facilita (bueno, más fácil) usar esas relaciones. En los primeros días de la terminología de la base de datos relacional, las tablas se llamaban "relaciones" porque almacenaban bits de datos relacionados (campos, ahora columnas), junto con las relaciones entre esa relación y otras relaciones.

La normalización es el acto de relaciones sin complicaciones: "Hacer todo lo más simple posible, pero no más simple". (Alan Perlis) A veces "... pero no más simple" significa que no almacenamos cosas completamente normalizadas, porque "más simple" termina siendo más complejo. (Puede derivar el estado del código postal, pero ¿por qué molestarse?)

geekosaur
fuente
10

Una base de datos relacional es un método de estructuración de datos para que un solo hecho se almacene en un solo lugar. Entonces, si John y Jane Doe trabajan para la misma compañía, solo almacenaría detalles únicos de la compañía en un solo lugar (tabla). Almacenaría datos únicos para John y Jane en otro lugar, y almacenaría la relación de John y Jane con la empresa en un tercer lugar. En el mundo ideal, esto debería significar que solo tengo que modificar un solo campo / fila si el número de fax de la compañía cambió.

Tenga en cuenta que no todas las bases de datos alojadas en un RDBMS están correctamente normalizadas. Los compromisos se hacen por rendimiento y otras razones.

Vea el artículo sobre normalización de la base de datos. http://en.wikipedia.org/wiki/Database_normalization

Zoredache
fuente
4

Hay dos conceptos principales para distinguir los sistemas de bases de datos de relaciones. El primero es que las relaciones entre los elementos se almacenan. Ese es el modelo de tabla de datos, explicado a través de la analogía de la hoja de cálculo. Los RDBMS se vuelven más complejos que las hojas de cálculo, porque es una práctica más fácil y común tener muchas referencias entre tablas u hojas de trabajo (dependiendo de qué lado de la analogía esté usando).

El segundo es que los RDBMS implementan la idea de una transacción, las propiedades ACID de

  • atomicidad,
  • consistencia,
  • aislamiento y
  • durabilidad

El modelo relacional permite que muchas relaciones complejas se incluyan, consulten, clasifiquen, agrupen, etc. El modelo transaccional se asegura de que las transacciones sucedan por completo o de ninguna manera, manteniendo el modelo de relación consistente y preciso. Bueno, al menos haciendo posible que la programación correcta lo mantenga así.

mpez0
fuente
3

Una base de datos relacional es como un libro de Excel con muchas hojas de trabajo y un entorno de software circundante para realizar optimizaciones de rendimiento como indexación y almacenamiento en caché, garantizar el acceso seguro de muchos usuarios al mismo tiempo y permitirle ver de manera eficiente los datos que pueden difundirse sobre muchas de las diferentes hojas de trabajo.

Joel Coel
fuente
1

Una reducción de datos relacionales es una herramienta para almacenar y recuperar datos almacenados en un modelo relacional.

Se construye un modelo relacional de datos de acuerdo con un pequeño número (según el libro que lea, 4 o 5 reglas) que aseguran que se pueda acceder a los datos de manera consistente, lo que permite comprobar la exactitud del diseño y lo que permite el sistema de gestión de bases de datos (DBMS) para hacer la mayor parte del trabajo en la recuperación de los datos rápidamente. También proporciona herramientas para documentar formalmente la estructura de los datos: la implementación de una base de datos implementa intrínsecamente la mayor parte de la documentación.

La mayoría de las personas no entienden por qué la corrección es importante, significa que es menos probable que se introduzcan errores en el desarrollo de una solución, y que (e.hg) 2 programadores diferentes que trabajan en áreas similares tienen menos probabilidades de duplicar el esfuerzo.

Como entidad separada del front-end de la aplicación, y con una vista coherente de la estructura de los datos, el uso de un sistema de administración de bases de datos permite utilizar diferentes herramientas en el front-end para diferentes propósitos, por lo que puede hacer mucho más uso de componentes listos para usar al construir una solución.

Existen otros modelos además del relacional para almacenar datos, pero ninguno (en mi experiencia) se acerca tanto en su simplicidad, flexibilidad y disponibilidad de herramientas para desarrollar y administrar sus datos.

symcbean
fuente
1

Una respuesta 100% no técnica:

Una base de datos relacional es un lugar para almacenar datos de tal manera que minimice la redundancia y le permita buscar a través de ella fácilmente.

Supongamos una base de datos para una tienda de mascotas. La tienda tiene artículos, tiene clientes y tiene ventas. Si tuviéramos que poner eso en Excel, podría tener esto para las columnas:

Nombre del cliente | Número de teléfono del cliente | Domicilio del cliente | Artículo comprado | Precio | Fecha

El primer cliente, la señora Smith, compra comida para gatos:

Nombre del cliente | Número de teléfono del cliente | Domicilio del cliente | Artículo comprado | Precio | Fecha
La señora smith | 123-555-1234 | 10 Main St | Comida para gatos | $ 15 | 2011-03-11

Y luego, a la Sra. Smith también le gustaría un juguete para gatos:

Nombre del cliente | Número de teléfono del cliente | Domicilio del cliente | Artículo comprado | Precio | Fecha
La señora smith | 123-555-1234 | 10 Main St | Comida para gatos | $ 15 | 2011-03-11
La señora smith | 123-555-1234 | 10 Main St | Gato de juguete | $ 1 | 2011-03-11

Y ella básicamente regresa cada 2 semanas más o menos y compra las mismas cosas. Con este método, duplica una gran cantidad de información, y eso puede conducir a errores. Tampoco puede almacenar un inventario en esto, tiene que ser una hoja de Excel completamente diferente, y esa tendrá que actualizarse en cada venta.

Con una base de datos, podríamos tener tres entidades separadas: Clientes (con su información), Artículos (con una descripción y un precio) y Venta (un enlace entre clientes y artículos, con una fecha y una cantidad).

MPelletier
fuente
Además, es muy importante mencionar esto: pinaldave.com/blogfolder/dilbert5.jpg
MPelletier
1

Algunas buenas respuestas técnicas aquí. ¡Pero mi jefe no entendería ninguno de ellos!

Comenzaría con una explicación extremadamente simple: 'Si guarda sus datos en un archivo, aparece como una larga lista. Una base de datos relacional guarda los datos más como un mapa o gráfico, por lo que diferentes partes del mapa se vinculan entre sí ... '

Y un ejemplo: '... por ejemplo, su nombre se vincula a su dirección, que a su vez podría vincularse a su ciudad'.

Seguido de los beneficios comerciales que le interesan: "La ventaja de esto es que hace que sea mucho más barato escribir código para obtener datos complicados, por ejemplo," encuéntrame a todas las personas que viven en Seattle cuyo apellido es Smith ". También las bases de datos relacionales son muy confiables y rápidas '.

Y termínelo con una declaración de credibilidad: 'Las bases de datos relacionales han existido durante muchos años, son piezas tecnológicas muy maduras. Nuestro producto particular es [nombre del producto aquí] '.

Jon White
fuente
0

Mi jefe es el DBA, pero en términos laicos:

Piense en dos tablas en Excel y en la función BUSCAR para hacer referencia a elementos de una tabla a otra. Ahora escala eso por al menos un factor de 10.

Eso es sobre el nivel de la computadora de algunas de las personas y el trabajo.

thing2k
fuente