1. Introducción

1.1 Aplicación de bases de datos

1.1.1 Antecedentes

  • La información ha llegado a ser el eje que mueve a la mayoría de las organizaciones hoy día
  • La cantidad de información que se maneja actualmente es en extremo enorme.
  • Se tiene la necesidad de tenerla perfectamente organizada de manera que pueda ser accesada fácilmente y por otro lado se debe tener disponible todo el tiempo (sistemas 24x7)
  • La solución: las personas de computación han desarrollado conceptos, técnicas y sistemas bajo un tópico conocido como "bases de datos" (databases)

1.1.2 Definición

Surgen entonces los primeros conceptos:

  • Dato: es la representación física de un aspecto de la realidad
  • Base de datos: conjunto de datos, que pueden estar organizados y/o interrelacionados de alguna manera con un propósito particular
  • DBMS*: Sistema Manejador de Bases de Datos (DataBase Manager/Management System) es una colección e datos interrelacionados y un conjunto de programas para accesarlos. En otras palabras un sistema para crear, manipular y aprovechar bases de datos.
    *Algunos lo llaman SGBD (Sistema Gestionador de Bases de Datos)

1.1.3 Escenarios de bases de datos

Podemos afirmar que las bases de datos están en todas partes, cualquier problema que podamos pensar podemos asociar una base de datos

  • Bancos: cuentas, transacciones, fondos de ahorro, SAR
  • Aerolíneas: reservaciones, pasajes, suministros, personal de vuelos
  • Escuelas: cursos, calificaciones, horarios
  • Negocios: compras, proveedores, ventas, clientes, devoluciones
  • Fábricas: flujo de procesos, almacenes, envíos
  • Recursos Humanos: empleados, puestos, salarios, impuestos, prestaciones

Curiosamente el uso de las bases de datos puede llegar a ser tan transparente que para algunos pareciera que no existen como en las transacciones de web o el cajero del banco (ATM).

1.2 Sistemas de bases de datos vs sistemas de archivos
(Databases vs File Systems)

El camino hacia las bases de datos ha sido largo y en el trayecto se han desarrollado un gran número de técnicas que forman los cimientos de las bd y de otras tecnologías.

Dentro de estas técnicas tenemos:

Archivos, Sistemas de Archivos, Acceso y manipulación de archivos, Indices

Pero...

por qué no es suficiente utilizar las herramientas anteriores y es necesario emplear un DBMS ?
no es lo mismo ?
cuál es la diferencia ?

No es lo mismo, un sistemas de archivos aún cuando pensemos que contiene lógicamente archivos y que se cuenta con índices para accesar los registros en ellos, carece de mucha funcionalidad que se emplea en la mayoría de las aplicaciones, aunque como se mencionó anteriormente, un DBMS emplea sistemas de archivos e índices para la manipulación de datos.

La funcionalidad adicional que provee un DBMS surge en base de algunos inconvenientes al emplear sistemas de archivos únicamente:

  • Redundancia de datos e inconsistencias (Redundancy and Inconsistency): formatos, duplicidad de información (alto costo de almacenamiento y acceso) e incongruencia entre datos o copias de datos a lo largo del sistema.
  • Dificultad de acceso (Access): en un sistema de archivos no se pueden obtener aquellos datos que no estén implantados en un programa, se carece de niveles de abstracción.
  • Aislamiento de datos (Isolation): debido al factor tiempo y los requerimientos que van surgiendo se puede llegar a tener un problema al intentar separar un conjunto de datos porque ya se tiene un enredo en los archivos y se podría dar el caso en que dos usuarios estén manipulando la misma información pero de distinta manera.
  • Integridad (Integrity): si queremos asociar dos datos, por ejemplo un alumno con una materia que esté cursando, debemos asegurarnos que ambas entidades existan, de lo contrario el alumno parecerá cursando un curso fantasma y viceversa. Para ello se emplean "restricciones de consistencia" (consistency constraints)
  • Atomicidad (Atomicity): el problema clásico de transacciones bancarias, u ocurre toda la transacción o no ocurre nada pero no puede quedarse a medias.
  • Acceso concurrente (Concurrent-access): garantizar un buen tiempo de respuesta, que todos los usuarios puedan accesar y/o modificar la información; esto no es fácil porque también hay que considerar que aunque los datos son los mismos, las aplicaciones no necesariamente lo son.
  • Seguridad (Security): no toda la información debe estar disponible a todos los usuarios, algunos usuarios solo tendrán permisos de lectura, esto es relativamente sencillo de resolver aplicando "roles" pero el problema aumenta cuando en luegar de pensar en terminos de usuarios pensamos en terminos de aplicaciones ya que el número de roles y sus combinaciones aumenta y mantener las restricciones de seguridad se torna complicado.

Podemos entonces extender la definición de DBMS como un sistema robusto que es capaz de emplear algoritmos de almacenamiento y recuperación de información para poder implementar un modelo de datos de manera física garantizando que todas las transacciones que se realizan con respecto a dichos datos sean "ácidas" (Atomicity, Consistency, Isolation, Durability).

 

1.3 Vistas de datos

Una de las ventajas de emplear una base de datos es que los datos se pueden ver a distintos niveles de abstracción, separando por ejemplo detalles de almacenamiento y mantenimiento.

Niveles de abstracción:

  • Nivel Físico: el más bajo y define cómo los datos son almacenados
  • Nivel Lógico: define qué datos hay almacenados y cómo se relacionan
  • Nivel de visión: más alto nivel, define vistas de "partes" de la base de datos, esto para restringir el acceso a determinados datos o bien para simplificar la interacción

1.4 Modelos de datos

1.4.1 Definición

Un modelo de datos es una colección de herramientas conceptuales para describir datos, sus relaciones, semántica y restricciones de consistencia

Exiten 3 niveles de modelado:

  • Conceptual
    • Modelo Entidad-Relación
  • Lógico
    • Modelo Relacional
  • Físico
    • Implementación en el DBMS

1.4.2 Modelo Entidad-Relación

Es la representación a través de un diagrama de la realidad de un problema. Como su nombre lo dice, se basa en la colección de objetos llamados "entidades" y las "relaciones" entre ellos; así mismo una entidad posee ciertos descriptores conocidos como atributos.

 

1.4.3 Modelo Relacional

Es un nivel de abstracción más bajo que el modelo E-R y es la representación en tablas (esquema) del problema, el cual es práctimente un paso antes del nivel físico

customer

customer_id
customer_name
customer_street
customer_city
567_mp
Margarito Pérez
Casa de la tostada
Ensenada
7645_ff
Florindo de las Flores
Avenida del muerto
Toluca
464_zs
Zoila Sorda
Sexto piso del periférico
México

account

account_number
account_balance
678_1
7867
554_1
6454
456_1
23565

depositor

customer_id
account_number
567_mp
678_1
7645_f
456_1
464_zs
554_1

 

1.4.4 Lenguajes en bases de datos

Las bases de datos definen 2 lenguajes para interactuar con ellas

Lenguaje de definición de datos (Data-Definition Language DDL): empleado para especificar el esquema (tablas) de la base.

create table account (account_number char(10), balance int)

Lenguaje de manipulación de datos (Data-Manipulation Language DML): para expresar consultas y modificaciones.

Obtener el nombre del cliento con id 7645_ff

select customer_name from customer where customer_id="7645_ff"

Actualizar el balance de la cuenta 678_1 a un valor de 7000

update account set balance=7000 where account_number="678_1"

1.5 Roles en la utilización de bases de datos

Hablar de la administración de información es hablar de roles, algunas organizaciones (dependiendo de los recursos humanos) los dividen en:

  • Data Administrator (DA): quienes son las personas encargadas de lidiar con los aspectos comerciales o profesionales de los datos.
  • Database Administrator (DBA): encargado de los aspectos técnicos.

Nota: en pequeñas organizaciones ambos roles son ejecutados por la misma persona, a la cual por lo general se le conoce como DBA.

Otros roles que no están directamente relacionados con la información pero que interactúan directamente con las personas mencionadas son:

  • System Administrator (SA): quien se encarga de toda la infraestructura de servidores, discos, firewalls, etc.
  • Programmers/Developers: el dolor de cabeza de los DBAs.
  • Managers: a quien rendirle cuentas.
  • Customers/End users: gente sin ningún conocimiento técnico.

 

DBA vs DA

DBA vs DA vs SA

Habilidades requeridas para ser un "buen" DBA:

Técnicas:

    • Conocimiento de bases de datos
    • Conocimiento de desarrollo de aplicaciones
    • Conocimiento de administración de sistemas/servidores

Comerciales:

    • Entender procesos de una organización
    • Seguir tendencias de la industria

Sociales

    • Comunicación
    • Administración
    • Resolución de problemas
    • Educación continua

Aspectos a considerar una oferta de trabajo de DBA:

  • La compañía ofrece capacitación regular ?
  • Se permite contactar regularmente a grupos de usuarios locales ?
  • Existen DBA de respaldo o solamente uno de 24/7 ?
  • Existen DBAs y SAs o se espera realizar ambas actividades ?
  • Cómo es la relación con las personas de desarrollo ?
  • El DBA es tomado en cuenta para cuestiones de revisiones, presupuestos, etc. ?

Y que hay acerca del salario ??

 

1.6 Conclusiones

  • Las bases de datos son el componente más importante de toda organización actual.
  • El proceso de crear una base de datos no es fácil, comprende desde el análisis de un problema, hasta la implementación física en un DBMS (Manejador de Bases de Datos).
  • La administración de datos y por ende de información es una tarea de responsabilidad ya que los procesos administrativos, contables o de cualquier índole e inclusive las aplicaciones estarán basados y funcionarán sobre las bases de datos.