Mostrar más resultados

Cómo usar bases de datos relacionales

Cómo usar bases de datos relacionales

Escrito por Carlos Yañez

Las bases de datos relacionales son estructuras que almacenan información de forma eficiente para su posterior consulta. La creación de una base de datos eficiente pasa por un diseño previo que defina las estructuras que contendrán dicha base de datos.

En el post de hoy veremos el proceso a seguir para crear una base de datos relacional, las normas a tener en cuenta para que el modelo de base de datos sea óptimo, así como el acceso a las mismas

¿Qué es una base de datos relacional?

El primer concepto que debemos aclarar es qué entendemos por base de datos relacional.

IBM define el concepto como:

Una base de datos relacional es una base de datos que se trata como un conjunto de tablas y se manipula de acuerdo con el modelo de datos relacional (que veremos más adelante).

Contiene un conjunto de objetos que se utilizan para almacenar y gestionar los datos, así como para acceder a los mismos. Las tablas, vistas, índices, funciones, activadores y paquetes son ejemplos de estos objetos.”

Fases en el diseño de bases de datos relacionales

Para un correcto diseño de una base de datos relacional deben usarse metodologías específicas de diseño de base de datos. Estas metodologías se fundamentan en tres fases claras con sus respectivos diseños:

  • Diseño conceptual: esta fase de diseño pretende describir a alto nivel lo que será la estructura de la base de datos. Simplemente se identifican las entidades que deben formar parte de la base de datos sin detallar aspectos físicos de la misma
  • Diseño lógico: Una vez definido el diseño conceptual se baja un poco de nivel pasando al diseño lógico, en el que ya se definen con precisión las tablas, índices, relaciones, vistas, etc… adaptándolo al gestor de base de daros que se vaya a utilizar.
  • Diseño físico: Definido el diseño lógico, el siguiente paso es definir a nivel físico cómo será la base de datos. Esto es tarea del administrador de la base de datos o DBA, que debe optimizar el diseño físico para un rendimiento adecuado de la base de datos y los ficheros físicos que la soportarán.

El modelo Relacional

Cuando trabajamos con bases de datos relacionales, decimos que usamos el modelo relacional.

Dentro de este modelo relacional, se definen los diseños conceptual y lógico siguiendo un conjunto de normas que rige dicho modelo.

Se utilizan los denominados diagramas Entidad/Relación o E/R para definir el diseño conceptual. Normalmente se utilizan herramientas específicas de diseño que posteriormente y en base al modelo E/R genera las instrucciones SQL necesarias para pasar al diseño lógico de la base de datos.

Como hemos comentado, se deben seguir una serie de normas en el modelo relacional y que son las siguientes:

  • Las entidades definidas en el diseño conceptual son las tablas o relaciones del modelo lógico, siendo la tabla la unidad de almacenamiento principal
  • Las tablas están compuestas por filas o registros o tuplas y por columnas o campos. Los registros contienen la información a almacenar mientras que los campos definen cada tipo de información del registro.
  • Cada tabla debe tener definida una clave primaria que determinará que cada registro es único. Esta clave puede estar compuesta por uno o más campos de la tabla.
  • Las tablas pueden relacionarse entre sí con el fin de facilitar las consultas y organización de los datos. En ese caso, se definen las claves foráneas que indican a través de qué campos se relacionan dos tablas.
  • Las claves foráneas garantizan la integridad referencial entre tablas, esto quiere decir que no se permitirá borrar registros de una tabla principal si tiene registros referenciados a una tabla secundaria, pero si al revés.

¿Cómo accedo a las bases de datos relacionales?

Para acceder a los datos almacenados en una base de datos relacional o bien para crear nuevos objetos dentro de la base de datos, usaremos el lenguaje SQL.

El lenguaje SQL es un lenguaje estándar de programación para el acceso y gestión de bases de datos relacionales. Aunque es un lenguaje estándar, los fabricantes de bases de datos, tienen adaptaciones propias que lo enriquecen.

Este lenguaje tiene dos conjuntos de instrucciones:

  • DDL o lenguaje de definición de datos: Mediante estas instrucciones podremos crear, eliminar y modificar cualquier objeto de la base de datos como tablas, índices, vistas, etc… o incluso la propia base de datos.
  • DML o lenguaje de manipulación de datos: Mediante este lenguaje, seremos capaces de acceder a los datos almacenados en la base de datos, insertar nuevos datos, modificarlos o borrarlos.

Los DBA o administradores de bases de datos, suelen usar el conjunto de sentencias DDL para la creación y optimización de la base de datos, mientras que los programadores de software con acceso a base de datos usan el conjunto de sentencias DML.

SQL es un lenguaje simple pero muy potente, ya que permite una gran diversidad de opciones de acceso a los datos.

A nivel programación, se utilizan también los denominados procedimientos almacenados de base de datos, que cada fabricante dispone de su propia versión.

Estos procedimientos permiten crear funciones en la base de datos combinando un lenguaje propio de programación pseudoestandar con sentencias SQL embebidas, dotando de gran potencia y funcionalidad a las aplicaciones que acceden a la base de datos, ay que dichos procedimientos se ejecutan dentro de la propia base de datos.

Cualquier aplicación o programa suele precisar del uso de una base de datos. El diseño adecuado de la misma a nivel lógico y físico es muy importante para tener un acceso ágil a los datos mediante sentencias SQL, y que es lo que determinará en gran parte el rendimiento de una aplicación.

Espero que el post de hoy te haya aclarado varios conceptos relacionados con las bases de datos relaciones en cuanto a su diseño y forma de acceso.

Es, desde luego, un tema apasionante y con muchos conceptos a tener en cuenta y que, si de verdad te interesan, precisa de una dedicación específica. Puedes revisar mi otro post sobre cómo almacenar correctamente información en una base de datos si es de tu interés.

Curso relacionado: Técnico Superior en Desarrollo Aplicaciones Multiplataforma