Diseño de base de datos, introducción (parte I)

Durante marzo de 2017 estuve dando unas pequeñas clases-asesorías sobre 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; 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; le di un poco más de forma y agregué más referencias bibliográficas y fuentes en línea. 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 (parte I)

¿Qué es una base de datos?

Existen varias definiciones, sin embargo todas concuerdan en que se trata de una colección de información organizada en una estructura que se encuentra definida por sus metadatos, que describen su estructura. Los metadatos definen cómo la información se va a almacenar dentro de la base de datos.

Modelos de bases de datos

Jerárquico. 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 ampliamente usado, es a menudo considerado un tanto inadecuado para muchas aplicaciones debido a su infraestructura inflexible y su 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 se enfoca principalmente en los conjuntos de tipos que comprenden los record types y las relaciones. Fue creado para comunicar de manera efectiva relaciones de información compleja (en contraste con el modelo jerárquico), lo que incrementa el rendimiento de la base de datos y representa el intento inicial de crear un estándar para bases de datos. No obstante, comparte muchas de las desventajas del modelo jerárquico, como la independencia estructural y la redundancia de información; limitaciones que hacen ineficiente el modificar o evolucionar el 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. Edgar Frank 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 misma (su precisión y consistencia), 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, justamente, 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; esto es, 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 dos anteriores.
Arquitectura de la Base de Datos
Figura 4. Arquitectura de la base de datos.

Sistema de gestión de base de datos (DBMS)

El sistema de gestión de base de datos (data base management system, DBMS) es el que controla 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 primera parte de nuestro tutorial de SQL. Nos vemos en la próxima entrega de esta serie. ¡Adiós!

¡No olvides seguirme en Twitter! @_ArCiGo

 

Fuentes

Bibliografía impresa

  • 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.

Bibliografía en línea

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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s