Diseño de Base de Datos, parte I: Introducción

Por: Armando Cifuentes González

Durante el mes de marzo de 2017 estuve dando unas pequeñas clases-asesorías de Base de Datos a un funcionario público del gobierno. Un amigo mío me recomendó con él y empecé a preparar los materiales para las clases.

Lo dividí en dos partes: Teoría y Práctica, y seguí la estructura de un curso de SQL que desarrollaron en una pequeña empresa en la que inicié primero como residente (practicante) y posteriormente como becario, dándole un poco más de forma y agregando más referencias bibliográficas.

El día de hoy quiero compartir con ustedes ese curso. Tiene un nivel básico-intermedio. Espero les sea de gran ayuda. ¡Saludos!

Introducción

¿Qué es una Base de Datos?

Existen varias definiciones acerca de lo que es una base de datos, sin embargo todos concuerdan en que es una colección de información organizada en una estructura que se encuentra definida por su metadata que describe su estructura.

La metadata define cómo la información se va a almacenar dentro de la base de datos.

Modelos de Bases de Datos

Jerárquicos. Este modelo posee una estructura padre-hijo que es similar a un árbol invertido, la cual forma una jerarquía. La información se organiza en nodos, el equivalente lógico a una tabla en una base de datos relacional. Un nodo padre puede poseer varios nodos hijos, pero un nodo hijo solamente puede tener un nodo padre.

Aunque este modelo ha sido usado ampliamente, es a menudo considerado poco inadecuado para muchas aplicaciones debido a su infraestructura inflexible y falta de soporte para relaciones complejas.

Modelo Jerárquico
Figura 1. Ejemplo del modelo de base de datos jerárquico

De Red. Este modelo está fuertemente relacionado con el concepto del modelo jerárquico de base de datos, pero está enfocado principalmente en los conjuntos de tipos que comprenden los record types y las relaciones.

El modelo de red fue creado para comunicar de manera efectiva relaciones de información compleja a comparación del modelo jerárquico, incrementando el rendimiento de la base de datos, y representando el intento inicial de crear un estándar para bases de datos.

El modelo de red comparte muchas de las desventajas del modelo jerárquico, como la independencia estructural y la redundancia de información. Es difícil crear un modelo de red de base de datos debido a estas limitaciones, las cuales la hacen ineficiente para modificar y evolucionar este modelo.

Modelo de Red
Figura 2. Ejemplo del modelo de base de datos de red

Relacional. Este modelo soluciona muchas de las limitaciones de los modelos descritos anteriormente. Codd en “A Relational Model of Data for Large Shared Data Banks” (Junio de 1970) define este modelo como una estructura de datos relacional que protege la información y permite que ésta sea manipulada de manera predecible y resistente al error. El modelo relacional soporta la fácil recuperación de información, refuerza la integridad de la información (precisión y consistencia de la información), y provee una estructura de base de datos independiente de la aplicación que accede a la información almacenada.

El núcleo del modelo relacional es la relación. Una relación es un conjunto de columnas y filas recolectadas en una estructura tipo tabla que representa una entidad sencilla hecha de información relacionada.

Una entidad es una persona, lugar, cosa, evento o concepto acerca de la información recolectada, como las canciones de un artista, un libro, o las transacciones de una venta. Cada relación comprende de uno o más atributos (columnas). Un atributo es una unidad que describe o caracteriza una entidad de cierta manera.

El dominio define el tipo de dato que será almacenado en un atributo en particular; sin embargo, el dominio no es lo mismo que tipo de dato. El tipo de dato es un tipo específico de restricción (un control usado para reforzar la integridad de la información) asociada con la columna, donde el dominio tiene un significado mucho más amplio y describe exactamente qué datos se pueden incluir en un atributo asociado con ese dominio.

La información se almacena en una relación dentro de tuplas (filas). Una tupla es un conjunto de datos cuyos valores realizan una instancia de cada atributo definido para esa relación. Cada tupla representa un registro de información.

Modelo Relacional
Figura 3. Ejemplo del modelo de base de datos relacional

Arquitectura de la Base de Datos

  • Nivel Interno. Conocido también como nivel físico. Es el que está más cerca del almacenamiento físico; es decir, es el que tiene que ver con la forma en que los datos están almacenados físicamente.
  • Nivel externo. Conocido también como nivel lógico de usuario. Es el más próximo a los usuarios; es decir, el que tiene que ver con la forma en que los usuarios individuales ven los datos.
  • Nivel conceptual. Conocido como nivel lógico de la comunidad o simplemente como nivel lógico. Es un nivel de interacción entre los otros dos.
Arquitectura de la Base de Datos
Figura 4. Arquitectura de la Base de Datos

DBMS

Data Base Management System (Sistema de Gestión de Base de Datos). Es el que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos. Acepta solicitudes de la aplicación y ordena al sistema operativo transferir los datos apropiados. Los DBMS pueden trabajar con lenguajes de programación tradicionales (Java, C/C++, C#, Python, Perl, PHP, etcétera) o pueden incluir su propio lenguaje de programación.

Algunos fabricantes de DBMS:

  • Oracle
  • Sybase
  • Informix
  • Microsoft
  • IBM

Espero te haya gustado este primer tutorial de SQL. Nos vemos en la próxima entrega de esta serie de cursos. ¡Adiós!

Bibliografía

Libros.-

  • Oppel, A.; Sheldon, R. (2009). SQL. A Beginner’s Guide. Third edition. United States of America: McGraw Hill.
  • C. J. Date (2001). Introducción a los sistemas de bases de datos. Séptima edición. Estados Unidos: Pearson Publications Company.

Web.-

¡No olvides seguirme en Twitter! @_ArCiGo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s