---
description: Módulo 1
---

# Bases de Datos

## INTRODUCCIÓN A LAS BASES DE DATOS

Las bases de datos son el mecanismo de almacenamiento estructurado de datos que ha funcionado por décadas en nuestros sistemas de información. Desde las grandes aplicaciones multiusuario, hasta los teléfonos móviles y las agendas electrónicas utilizan tecnología de bases de datos para asegurar la integridad de los datos y facilitar la labor tanto de usuarios como de los programadores que desarrollaran sus funcionalidades.

Para la compresión de la dimensión de los sistemas de base de datos, iremos desde la realización del primer modelo de datos, pasando por la administración del sistema gestor y realizar la implementación de una base de datos para una problemática en un contexto real. En este sentido este módulo permitirá conocer los aspectos claves de cada uno de los temas que permitan tener éxito en cualquier proyecto que implique trabajar con bases de datos.

Este primer capítulo contará con una introducción que permita tener claras algunas nociones básicas y puntuales de bases de datos, de modo que podamos abarcar los aspectos más prácticos para la concepción e interpretación de una problemática que debe ser abordada desde el mundo real.

## ¿Qué es una Base de Datos?

\
Una base de datos es un conjunto de datos relacionados entre sí, que hacen parte de hechos conocidos, que pueden registrarse y que tienen un significado implícito.

Veamos algunos ejemplos que podemos referenciar en el ámbito de la vida real y pueden ser representados y almacenados en una base de datos:

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLrQR6Nm8V_i42BtU5R%2F-MLrSnnWu1ezW3xayqQp%2Fimage.png?alt=media\&token=a80e3f34-1aa3-4a94-b851-55be36aa1d9d)

\
De este modo, se puede evidenciar que las base de datos representan algún aspecto del mundo real, donde los datos guardan una lógica coherente, con cierto significado. Así pues, una vez se identifica la problemática y se tiene claro cómo se va abordar la problemática, se procede a diseñar, construir y poblar con datos para un propósito específico.

Otras características a considerar al momento de referirse a una base de datos, se enuncian a continuación:

\
Para la construcción de una base de datos, se requiere una fuente de la cual derivan los datos.

* El diseño y construcción de base de datos interactúa con el mundo real.
* Tienen un público que está interesado en el contenido de la base de datos.
* Las bases de datos pueden tener cualquier tamaño.
* Se pueden generar:
  *    Manualmente
  * Mecánicamente

## Origen de las bases de datos



Los orígenes de las bases de datos se remontan a **la Antigüedad** donde ya existían bibliotecas y toda clase de registros. Además, también se utilizaban para recoger información sobre las cosechas y censos. Sin embargo, su búsqueda era lenta y poco eficaz y no se contaba con la ayuda de máquinas que pudiesen reemplazar el trabajo manual.

Herman Hollerith **en 1884** creó la máquina automática de tarjetas perforadas, siendo nombrado así el primer ingeniero estadístico de la historia. En esta época, los censos se realizaban de forma manual.

Posteriormente, en la **década de los cincuenta** se da origen a las cintas magnéticas, para automatizar la información y hacer respaldos. Esto sirvió para suplir las necesidades de información de las nuevas industrias. Y a través de este mecanismo se empezaron a automatizar información, con la desventaja de que solo se podía hacer de forma secuencial.

En la **década de los 60’s** las computadoras bajaron los precios para que las compañías privadas las pudiesen adquirir; dando paso a que se popularizara el uso de los discos, cosa que fue un adelanto muy efectivo en la época, debido a que a partir de este soporte se podía consultar la información directamente, sin tener que saber la ubicación exacta de los datos.

En la **década de los setenta**, Edgar Frank Codd, científico informático ingles conocido por sus aportaciones a la teoría de bases de datos relacionales, definió el **modelo relacional** a la par que publicó una serie de reglas para los sistemas de datos relacionales a través de su artículo “Un modelo relacional de datos para grandes bancos de datos compartidos”.

Por su parte, a **principios de los años ochenta** comenzó el auge de la comercialización de los sistemas relacionales y **SQL** comenzó a ser el estándar de la industria, ya que las bases de datos relacionales con su sistema de tablas (compuesta por filas y columnas) pudieron competir con las bases jerárquicas y de red, como consecuencia de que su nivel de programación era sencillo y su nivel de programación era relativamente bajo.

## ¿Qué es una base de datos transaccional?

Las **bases de datos transaccionales** son bases de datos optimizadas para ejecutar sistemas de producción, es decir, que se puedan acoplar fácilmente a problemáticas del mundo real y estas puedan responder a todas las operaciones que se deben ejecutar en un contexto que se trabaje diariamente de dicha problemática, asegurando la integridad de los datos y su correcto almacenamiento.

Veamos que ventajas proporciona el trabajar con bases de datos transaccionales:

*  Asegura la integridad de los datos gracias a sus propiedades **ACID**.
* Permite modificar la información sin poner en riesgo la integridad de los datos más sensibles del sistema.
* Brinda una gran capacidad de recuperar el historial de los datos almacenados, reduciendo al máximo el riesgo de pérdida de datos por fallas en el sistema.
* Organiza, estructura y optimiza los datos dentro de los almacenes de datos empresariales, facilitando así las consultas complejas.
* Ofrece datos actuales y en tiempo real necesarios para algunos tipos de análisis y posterior toma de decisiones tácticas.
* Ejecuta las operaciones con muy baja latencia. Es decir, su velocidad de procesamiento es bastante rápida.
* Permite realiza réplicas de base de datos de producción en tiempo real para actividades de monitoreo.
* Ayuda a capturar datos sobre el contexto histórico de cada operación, con el fin de facilitar los análisis posteriores.
* Aumenta la consistencia del procesamiento de transacciones al integrarse con sistemas de analítica.
* Posee un tamaño relativamente reducido en el caso de que se encargue de archivar datos históricos.

Iniciemos profundizando en el concepto de transaccionalidad en bases de datos, que permitan comprender mejor los conceptos claves en bases de datos transaccionales.

### Transaccionalidad

En base de datos se denomina transacción a una única operación lógica **"de negocio"**, que asegure su ejecución y cumplimiento en un 100%, o en su defecto que se pueda revertir, si en algún punto surgió un error. Veamos los siguientes ejemplos:

* Transferir dinero de una cuenta bancaria a otro, es una sola transacción, que involucra la modificación de varias tablas (a nivel de base de datos) y se debe asegurar que dicha operación se cumpla a cabalidad de principio a fin.
* Imagine que, en la operación anterior, al momento de descontar la suma de la cuenta origen, se evidencio que esta se quedó sin fondos suficientes para cumplir con dicha transacción, ya que en ese instante se realizo una compra en un almacén de cadena; en este caso la transacción se debe cancelar y los movimientos que se hayan realizado se deben devolver.

\
Problemáticas como las que se ejemplifican anteriormente, hacen parte del día a día, que son abordadas y se les da solución mediante base de datos relacionales. Por ello, estas introducen el concepto de ACID, con el fin de respaldar el cumplimiento operacional de las transacciones.

### ¿En qué conociste el principio de ACID?

El principio de ACID es un conjunto de características o propiedades que garantizan que las transacciones en una base de datos sean fiables y seguras.

De modo tal que, si un sistema de información supera la prueba ACID, significa que cuenta con las características de un sistema de alta fidelidad y seguridad.

Las propiedades del principio de ACID lo podemos sintetizar de la siguiente manera:

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLrQR6Nm8V_i42BtU5R%2F-MLrX_DMJAyEvJ-eUI1T%2Fimage.png?alt=media\&token=12224e95-f627-4734-b1ca-1b409d9a731a)

## ¿Qué es un Sistema de Gestión de Bases de Datos (SGBD)?

Un SGBD es un conjunto de programas que permite el almacenamiento, manipulación y consulta de datos pertenecientes a una base de datos organizada en uno o varios ficheros.

Estos sistemas de software tienen como propósito general que facilita el proceso de:

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLrXcJZQjzCfmi_3lJO%2F-MLrY-DYlXpY-8RuZGPB%2Fimage.png?alt=media\&token=34d6bb11-de7e-4d4a-9701-02da2a9706a0)

Para **definir** una base de datos se debe partir de una problemática de la vida real, mediante el cual se pueda partir para considerar y especificar las siguientes características:

*  Las estructuras o tablas que constituyen la base de datos.
* Los tipos de datos que se almacenaran en las tablas.
*  Las restricciones de los datos que se almacenaran en ella.

**Construir** una base de datos, es el proceso de almacenar los datos que se necesitan gestionar en la problemática identificada en la definición, en algún medio de almacenamiento controlado por el Sistema de Gestión de Base de Datos.

La **manipulación** de una base de datos, consiste en el proceso de intervenir los datos mediante algunas funciones que facilitan estas tares, tales como:

*  **Insertar** o añadir información dentro la base de datos.
* **Consultar** la base de datos para obtener datos específicos.
* **Actualizar** la base de datos para reflejar cambios en los datos almacenados.
*   **Borrar** los registros almacenados en la base de datos



### Componentes de un Sistema de Gestión de Bases Datos

Un sistema de base de datos se encuentra dividido en una serie de componentes, los cuales controlan una parte de la responsabilidad total de sistema. Este debe proporcionar estos elementos para un correcto manejo de los datos que serán almacenados. En este sentido, los SGBD serán la interfaz que interactúen directamente con un sistema operativo, para una correctamente integración.

Los componentes funcionales de un sistema de base de datos se pueden enmarcar de la siguiente manera:

**Gestor de archivos:** Gestiona la asignación de espacio en la memoria del disco y de las estructuras de datos usadas para representar información.

**Manejador de base de datos:** Sirve de interfaz entre los datos y los programas de aplicación.

**Compilador de DDL:** Convierte las proposiciones DDL en un conjunto de tablas que contienen metadatos, estas se almacenan en el diccionario de datos.

**Procesador de consultas:** Traduce las proposiciones en lenguajes de consulta a instrucciones de bajo nivel. Además, convierte la solicitud del usuario en una forma más eficiente.

**Diccionario de datos:** Contiene la información referente a la estructura de la base de datos.

**Archivo de datos:** En él se encuentran almacenados físicamente los datos de una organización.

**Índices:** Permiten un rápido acceso a registros que contienen valores específicos.\


### Entorno o Arquitectura de un Sistema de Gestión de Bases Datos

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLrXcJZQjzCfmi_3lJO%2F-MLr_1uBNe4Qicm7No4u%2Fimage.png?alt=media\&token=d234fa49-af2b-4447-91d9-3d972ba97244)

### Sistema de Gestión de Bases Datos más populares del mercado

**Oracle MySQL:**  MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual: Licencia pública general/Licencia comercial por Oracle Corporation y está considerada como la base de datos de código abierto más popular del mundo y una de las más populares en general junto a Oracle y Microsoft SQL Server para entornos de desarrollo web.&#x20;

Oracle cuenta con el producto MySQL Community Edition, la cual es la versión gratuita de este motor de base de datos que cuenta con licencia GPL y con un enorme respaldo de la comunidad.

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLrXcJZQjzCfmi_3lJO%2F-MLr_V-pjnCH5kGSlIup%2Fimage.png?alt=media\&token=a82d4736-e4cf-40c3-b19f-23e6240f1615)

**MariaDB:** MariaDB, al igual que MySQL, es un servicio de manejo de bases de datos, cuenta con licencia GPL y de hecho fue creado por el desarrollador de MySQL, el conocido **Monty Widenius**, junto a un grupo de desarrolladores que decidieron formar parte del proyecto en forma voluntaria.

Básicamente, MariaDB se trata de un reemplazo de MySQL que no solo agrega un mayor rendimiento, sino también nuevas funcionalidades. Es de hecho de un fork de MySQL, es decir, fue creado a partir de él.

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLr_YEjpy1qqmFEeNMp%2F-MLr_gSEqWc4aQgyvTxa%2Fimage.png?alt=media\&token=9ef3af7e-598a-4699-96cf-006d3f4b3bc6)

**Oracle:** Oracle es un sistema de gestión de base de datos relacional fabricado por Oracle Corporation.

Oracle es básicamente una herramienta cliente/servidor para la gestión de base de datos; la gran potencia y su elevado precio hace que solo se vea en empresas muy grandes y multinacionales por lo general.

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLr_YEjpy1qqmFEeNMp%2F-MLr_yAN21h22a5-3_kQ%2Fimage.png?alt=media\&token=767ef5b3-42c2-4f5a-b9ca-5467326e2529)

**PostgreSQL:** PostgreSQL es un poderoso sistema de base de datos relacional de objetos de código abierto con más de 30 años de desarrollo activo que le ha ganado una sólida reputación por su confiabilidad, solidez de funciones y rendimiento.

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLr_YEjpy1qqmFEeNMp%2F-MLra509_mI-8t23Utxu%2Fimage.png?alt=media\&token=032fc37a-0d83-4df1-a79d-8825f4e00971)

**Microsoft SQL Server:**  SQL Server es un sistema de gestión de base de datos relacional original del core de Microsoft. Su principal lenguaje de consulta es Transact-SQL, una aplicación de las normas ANSI / ISO estándar Structured Query Language (SQL) utilizado por ambas Microsoft y Sybase.

![](https://1776937240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKm7bZbn0YvvJUjUIMU%2F-MLr_YEjpy1qqmFEeNMp%2F-MLraHHssaU8KexXoAq_%2Fimage.png?alt=media\&token=4d3faa23-3a3f-495b-8d89-11f69d8f5c3d)

\


## Universo del Discurso

El **Universo Del Discurso** es un texto narrativo que describe cómo funciona una idea de negocio, un producto o servicio en el mundo real, determinando de manera implícita los elementos que conforman una base de datos: tablas, campos, tipo de datos, clave primaria, registros, etc.

El primer paso a desarrollar para abordar una problemática inmersa en un **universo del discurso,** mediante una base de datos, es entender claramente en que consiste dicha problemática. Es importante entender, que no siempre las problemáticas que se están analizando, suministrarán todos los datos necesarios para realizar la construcción e interpretación de la problemática; por ello debemos tener la habilidad de interpretar datos relevantes que en la vida real tengan significado y le den valor a la lógica de negocio del modelo en construcción.

El segundo paso que abordaremos en esta guía, será la construcción practica de unas tablas (tipo Excel), donde se pueda realizar una relación de los datos potenciales que se deban almacenar en la base de datos. Además, se sugiere crear un set de datos de prueba que permitan entender cuales son los posibles datos que se almacenarán.&#x20;

Veamos un ejemplo que tiene un universo del discurso. Para ello se realiza la comprensión de lectura y se relaciona el planteamiento de la solución, donde se identifica sobre unas tablas (tipo Excel) la información potencial que se necesita almacenar respecto a la problemática. Con forme vayamos avanzando en las guías tomaremos este y otros ejemplos que nos ayuden a ir aterrizando los conceptos que se deben desarrollar en este módulo.

{% hint style="info" %}
**COMPAÑÍA DE “BOTES EL PEÑOL”**

**Botes el Peñol** es un agente que renta embarcaciones a los clientes por una determinada tarifa para navegar en la represa de Guatapé – Antioquia. **Botes el Peñol** no posee barcos, en lugar de eso los arrienda a nombre a los propietarios que deseen obtener ingresos cuando no usan sus botes. Por tal servicio **Botes el Peñol** cobra una cuota y se especializa en barcos que puedan albergar a sus clientes de una manera confortable.

La embarcación más pequeña tiene 28 pies de largo y la más grande es de 44. Cada barco esta por completo equipado cuando se renta; gran parte del equipo proporciona el propietario, **Botes el Peñol** agrega otra parte. El equipo que proporciona el propietario incluye lo que es parte del bote como: radio, brújula, indicadores de profundidad. Otros importantes instrumentos como estufas y refrigeradores.

Otros que proporciona el propietario no están instalados como parte del bote tales implementos incluyen velas, cuerdas, anclas bolsas de caucho, salvavidas, y en la cabina platos, cubiertos, utensilios de cocina, etc. **Botes el Peñol** aporta el equipo de consumo que podría considerarse como provisiones, libros, jabón, toallas de cocina y artículos similares.

Una importante responsabilidad de **Botes el Peñol** es registrar el equipo que este en el bote, en particular lo que no están fijos en la embarcación.

**Botes el Peñol** prefiere conservar registros precisos de sus clientes y los viajes para tener estadísticas de cuales clientes han ido y en que viaje; de igual forma prefieren conocer cuantas horas aproximadamente a navegado en una embarcación, puesto que este dato, les permite dar una capacitación más especializada a personas menos expertas.

También es importante resaltar que las embarcaciones necesitan mantenimiento, por lo tanto, **Botes el Peñol** incluye servicios precisos de todos esos procesos y costos de mantenimiento incluyendo actividades normales como limpieza, cambio de aceite o representaciones no programadas.

En algunos casos son necesarias las invitaciones durante un viaje, en tal caso los clientes se comunican por radio con el despachador de **Botes el Peñol** quien determina la mejor opción para hacer la reparación. Por tanto, más estas decisiones los despachadores necesitan información sobre sus opciones de reparación y antecedentes sobre costos y calidad de&#x20;
{% endhint %}

#### **CLIENTE**

|  **Nombre** | **Apellido** | **Documento** | **Horas de navegación** |
| :---------: | :----------: | :-----------: | :---------------------: |
|     José    |   Rodríguez  |   2.222.333   |            15           |
| Juan Manuel |   Del Toro   |   3.345.345   |           160           |
|   Roberto   |     Rojas    |   3.233.555   |            15           |
|   Cristina  |    Del Río   |   3.333.333   |            6            |
|     Miguel  |    Sánchez   |   1.145.356   |           170           |

#### **VIAJE** 

| **Código del viaje** | **Cedula del cliente** | **Valor del viaje** | **Horas del viaje** | **Código del bote** |
| :------------------: | :--------------------: | :-----------------: | :-----------------: | :-----------------: |
|           1          |        3.333.333       |      1’900.000      |          10         |         BN78        |
|           2          |        3.345.345       |      5’000.000      |          32         |        KN98X        |
|           3          |        3.333.333       |       790.000       |          5          |         BN78        |
|           4          |        3.345.345       |      1’800.000      |          9          |        PO98X        |
|           5          |        2.222.333       |       500.000       |          3          |   <p>KN98X<br></p>  |

**BOTE**

| **Código del Bote** | **Nombre del Bote** | **Cédula de Propietario** |
| :-----------------: | :-----------------: | :-----------------------: |
|         BN78        |   Fortín el Peñol   |         18.928.390        |
|        KN98X        |    Velero Guatapé   |         15.725.398        |
|        PO98X        |      Navío Rojo     |         18.928.390        |

## Ejercicios

### **Ejercicio 1**

*  Redacte y construya un **universo del discurso** de una problemática de la vida real, preferiblemente que sea diferente a la de PPI (mínimamente una página).
* Construya el mayor set de tablas para la problemática abordada en el literal 1.a, donde se pueda evidenciar la información potencial que se vaya a almacenar.

### **Ejercicio 2**

Construya un set de tablas para el Proyecto Pedagógico Integrador, donde se pueda evidenciar la información potencial que se vaya a almacenar.
