Notas de Clase: Bases de Datos I

Author

Nury Farelo

Introducción a las bases de datos

Un sistema de bases de datos es básicamente un sistema computarizado para llevar registros. Es posible considerar a la propia base de datos como una especie de armario electrónico para archivar; es decir, es un depósito o contenedor de una colección de archivos de datos computarizados. Los usuarios del sistema pueden realizar una variedad de operaciones sobre dichos archivos, por ejemplo:

  • Agregar nuevos archivos vacíos a la base de datos

  • Insertar datos dentro de los archivos existentes

  • Recuperar datos de los archivos existentes

  • Modificar datos en archivos existentes

  • Eliminar datos de los archivos existentes

  • Eliminar archivos existentes de la base de datos.

¿QUÉ ES UN SISTEMA DE BASE DE DATOS?

En informática se conoce como dato a cualquier elemento informativo que tenga relevancia para un usuario. Desde su nacimiento, la informática se ha encargado de proporcionar herramientas que faciliten la manipulación de los datos. Antes de la aparición de las aplicaciones informáticas, las empresas tenían como únicas herramientas de gestión de datos los ficheros con cajones, carpetas y fichas de cartón. En este proceso manual, el tiempo requerido para manipular estos datos era enorme. Pero la propia informática ha adaptado sus herramientas para que los elementos que el usuario utiliza en cuanto a manejo de datos se parezcan a los manuales. Por eso se sigue hablado de ficheros, formularios, carpetas, directorios,….

La clientela fundamental del profesional informático es la empresa. La empresa se puede entender como un sistema de información formado por diversos objetos: el capital, los recursos humanos, los inmuebles, los servicios que presta, etc.

Los sistemas de información actuales se basan en bases de datos (BD) y sistemas de bases de datos (SGBD) que se han convertido en elementos imprescindibles de la vida cotidiana de la sociedad moderna.

CONCEPTOS

Datos

Información concreta sobre hechos, elementos, etc., que permite estudiarlos, analizarlos o conocerlos.

“los datos del censo; el análisis aportó datos de gran interés respecto a la génesis de esta fobia; cada ficha contiene los datos comerciales, fiscales y estadísticos de cada proveedor; estos datos configuran una densidad de población débil, aunque ello no descarta que haya núcleos muy poblados y muchas regiones vacías”

Cifra, letra o palabra que se suministra a la computadora como entrada y la máquina almacena en un determinado formato.

“al introducir palabras o números en una hoja de cálculo, la computadora los procesa y los almacena como datos en código binario”

Es una descripción o imagen relacionados con un hecho, evento, personas, objetos u otras entidades del mundo real. El significado del dato cambia dependiendo dentro del contexto en que se encuentre.

  • Considere el número 25…

  • Ahora… 25 “Kilos”

  • Y ahora… 25 “kilos” de “papas”

  • Finalmente… 25 “kilos” de “papas” en “mercado” de “Concepción”

Información

Información son datos que han sido organizados o preparados en una forma adecuada para apoyar la toma de decisiones: Por ejemplo una lista de productos y su stock sin ningún orden son datos, pero un lista de productos ordenados por stock (de menor a mayor) representa información para el encargado de compras de un supermercado.

Los datos por si solos no conducen a información.


Definición de Base de Datos

Cada día, la mayoría de nosotros nos encontramos con actividades que requieren algún tipo de interacción con una base de datos (ingreso en un banco, reserva de una entrada para el teatro, solicitud de una suscripción a una revista, compra de productos, …). Estas interacciones son ejemplos de lo que se llama aplicaciones tradicionales de bases de datos (básicamente información numérica o de texto), aunque los avances tecnológicos han permitido que también existan: bases de datos multimedia, sistemas de información geográfica (GIS), almacenes de datos, sistemas de proceso analítico on-line, …

  • Una base de datos se entenderá como una colección de datos relacionados entre sí y que tienen un significado implícito.

  • Por datos queremos decir hechos conocidos que pueden registrarse y que tienen un significado implícito.

La definición presentada anteriormente hace referencia a dos elementos para que un conjunto de datos constituya una Base de Datos:

  1. Relaciones entre datos, tema que se tratará en las secciones siguientes.

  2. Significado implícito de los datos que se atribuye dependiendo del contexto en que se utilizan los mismos. Por ejemplo, el dato fecha en una base de datos de VENTAS puede referirse a la fecha de emisión de las facturas, mientras que si la base de datos es de MÚSICA quizás corresponda a la fecha en que se grabó un tema musical. Es decir, el significado de un dato, depende de la BD que lo contenga.

Para manipular y gestionar las bases de datos surgieron herramientas software denominadas: sistemas gestores de bases de datos (SGBD en lo sucesivo) sobre los que se profundizará en las siguientes secciones.

EVOLUCIÓN HISTÓRICA Y TIPOS DE BD

Los predecesores de los sistemas gestores de bases de datos fueron los sistemas gestores de ficheros o sistemas de archivos tradicionales.

  1. Archivos tradicionales. Consiste en almacenar los datos en archivos individuales, exclusivos para cada aplicación particular. En este sistema los datos pueden ser redundantes (repetidos innecesariamente) y la actualización de los archivos es más lenta que en una base de datos.

  2. Base de datos. Es un almacenamiento de datos formalmente definido, controlado centralmente para intentar servir a múltiples y diferentes aplicaciones. La base de datos es una fuente de datos que son compartidos por numerosos usuarios para diversas aplicaciones.

Así, en un Sistema de archivos tradicional la información está dispersa en varios ficheros de datos y existe un cierto número de programas que los recuperan y agrupan. Aunque los sistemas de ficheros o archivos supusieron un gran avance sobre los sistemas manuales, tienen inconvenientes bastante importantes que se solventaron, en gran medida, con la aparición de los sistemas de bases de datos.

Evolución y tipos de base de datos

Coincidiendo con la evolución histórica de las bases de datos éstas han utilizado distintos modelos:

  • Jerárquicos

  • En red.

  • Relacionales.

  • Multidimensionales.

  • De objetos.

Bases de Datos con estructura jerárquica

La estructura jerárquica fue usada en las primeras BD. Las relaciones entre registros forman una estructura en árbol. Actualmente las bases de datos jerárquicas más utilizadas son IMS de IBM y el Registro de Windows de Microsoft.

Bases de Datos con estructura en red

Esta estructura contiene relaciones más complejas que las jerárquicas. Admite relaciones de cada registro con varios que se pueden seguir por distintos caminos.

El inventor de este modelo fue Charles Bachman, y el estándar fue publicado en 1969 por CODASYL.

Bases de Datos con estructura relacional

La estructura relacional es la más extendida hoy en día. Almacena los datos en filas o registros (tuplas) y columnas o campos (atributos). Estas tablas pueden estar conectadas entre sí por claves comunes.

Bases de Datos con estructura multidimensional

La estructura multidimensional tiene parecidos a la del modelo relacional, pero en vez de las dos dimensiones filas-columnas, tiene N dimensiones. Esta estructura ofrece el aspecto de una hoja de cálculo.

Bases de Datos con estructura orientada a objetos

La estructura orientada a objetos está diseñada siguiendo el paradigma de los lenguajes orientados a objetos. De este modo soporta los tipos de datos gráficos, imágenes, voz y texto de manera natural. Esta estructura tiene gran difusión en aplicaciones web para aplicaciones multimedia.

Sistemas de ficheros tradicionales

En estos sistemas, cada programa almacenaba y utilizaba sus propios datos de forma un tanto caótica. La única ventaja que conlleva esto es que los procesos son independientes, por lo que la modificación de uno no afecta al resto.

Pero tiene grandes inconvenientes:

  • Datos redundantes. Ya que se repiten continuamente.

  • Coste de almacenamiento elevado. Al almacenarse varias veces el mismo dato en distintas aplicaciones, se requiere más espacio en los discos.

  • Tiempos de procesamiento elevados. Al no poder optimizar el espacio de almacenamiento.

  • Probabilidad alta de inconsistencia en los datos. Ya que un proceso cambia sus datos y no el resto. Por lo que el mismo dato puede tener valores distintos según qué aplicación acceda a él.

  • Difícil modificación en los datos. Debido a la probabilidad de inconsistencia, cada modificación se debe repetir en todas las copias del dato (algo que normalmente es imposible).

En la siguiente figura se muestra un sistema de información basado en ficheros. En ella se ve que la información aparece inconexa y redundante.

Sistemas de base de datos relacional

En este tipo de sistemas los datos se centralizan en una base de datos común a todas las aplicaciones. Estos serán los sistemas que estudiaremos en este curso.

Sus ventajas son las siguientes:

  • Menor redundancia. No hace falta tanta repetición de datos. Aunque, sólo los buenos diseños de datos tienen poca redundancia.

  • Menor espacio de almacenamiento. Gracias a una mejor estructuración de los datos.

  • Acceso a los datos más eficiente. La organización de los datos produce un resultado más óptimo en rendimiento.

  • Datos más documentados. Gracias a los metadatos que permiten describir la información de la base de datos.

  • Independencia de los datos y los programas y procesos. Esto permite modificar los datos sin modificar el código de las aplicaciones.

  • Integridad de los datos. Mayor dificultad de perder los datos o de realizar incoherencias con ellos.

  • Mayor seguridad en los datos. Al limitar el acceso a ciertos usuarios.

Como contrapartida encontramos los siguientes inconvenientes:

  • Instalación costosa. El control y administración de bases de datos requiere de un software y hardware potente.

  • Requiere personal cualificado. Debido a la dificultad de manejo de este tipo de sistemas.

  • Implantación larga y difícil. Debido a los puntos anteriores. La adaptación del personal es mucho más complicada y lleva bastante tiempo.

En la siguiente figura se muestra un sistema de información basado en bases de datos. La información está relacionada y no es redundante.

Ejemplo de archivos tradicionales

Se cuenta con dos archivos: CLIENTES y FACTURAS.

El primer archivo tiene los datos básicos de los clientes, mientras que en el segundo se almacenan las ventas realizadas. Al emitir cada factura se ingresan nuevamente los datos num, nombre, domicilio.

CLIENTES

Num Nombre Dirección Teléfono FechaNacimiento e-mail
1225 Juan García Guaná 1202 985674863 13/08/1972 jgarcia@adinet.com
1226 Fernando Martínez Rincón 876 984568643 23/02/1987 fmar@gmail.com

FACTURAS

Num Nombre Dirección Producto Precio
1225 Joaquín García Guaná 1202 Azulejos 1250
1226 Fernando Martínez Rincón 876 Pintura 900

Desventajas:

  • Se presentan redundancias de datos (datos repetidos innecesariamente: nombre, dirección). Se duplican esfuerzos.

  • Se pueden producir contradicciones entre los datos, si por ejemplo se ingresan nombres diferentes para un mismo cliente (Juan por Joaquín).

SISTEMAS DE GESTIÓN DE BASES DE DATOS

Sistema Gestor de Bases de Datos

Un sistema gestor de bases de datos (SGBD) es una aplicación que permite a los usuarios definir, crear y mantener una base de datos, y proporciona acceso controlado a la misma.

En general, un SGBD proporciona los siguientes servicios:

  • Permite la definición de la base de datos mediante el lenguaje de definición de datos (DDL – Data Description Language). Este lenguaje permite especificar la estructura y el tipo de los datos, así como las restricciones sobre los datos. Todo esto se almacenará en la base de datos.

  • Permite la inserción, actualización, eliminación y consulta de datos mediante el lenguaje de manejo o manipulación de datos (DML - Data Manipulation Language).

  • Proporciona un acceso controlado a la base de datos mediante:

    • Un sistema de seguridad, de modo que los usuarios no autorizados no puedan acceder a la base de datos, mediante el lenguaje de control de datos (DCL - Data Control Language);

    • Un sistema de integridad que mantiene la integridad y la consistencia de los datos;

    • Un sistema de control de concurrencia que permite el acceso compartido a la base de datos;

    • Un sistema de control de recuperación que restablece la base de datos después de que se produzca un fallo del hardware o del software;

    • Un diccionario de datos o catálogo accesible por el usuario que contiene la descripción de los datos de la base de datos.

La principal herramienta de un SGBD es la interfaz de programación con el usuario. Esta interfaz consiste en un lenguaje muy sencillo mediante el cual el usuario interactua con el servidor. Este lenguaje comúnmente se denomina SQL, Structure Query Language, está estandarizado por la ISO 1, es decir, todas las BD que soporten SQL deben tener la misma sintaxis a la hora de aplicar el lenguaje.

Funciones Generales

  • Permitir a los usuarios almacenar datos, acceder a ellos y actualizarlos, ocultando su estructura física.

  • Proporcionar un catálogo (diccionario de datos) accesible por los usuarios.

  • Proporcionar un mecanismo que garantice el procesamiento de las transacciones.

  • Proporcionar un mecanismo que realice el control de la concurrencia.

  • Proporcionar un mecanismo para recuperación ante fallos.

  • Proporcionar un mecanismo de seguridad.

  • Integrarse con algún software de comunicación.

  • Encargarse de mantener las reglas de integridad.

  • Encargarse de mantener la independencia entre los programas y la estructura de la base de datos.

  • Proporcionar herramientas para administrar la base de datos.

Ventajas

Mínima Redundancia de Datos: Al integrar los datos en una sola estructura lógica y almacenando cada ocurrencia de un ítem de dato en un solo lugar de la Base de Datos, se reduce la redundancia.

Consistencia de Datos: Al controlar la redundancia de datos, se reduce enormemente la inconsistencia, dado que al almacenarse un dato en un solo lugar, las actualizaciones no producen inconsistencia.

Integración de Datos: En una Base de Datos, los datos son organizados de una manera lógica que permite definir los relacionamientos entre ellos.

Compartir Datos: Una Base de Datos es creada para ser compartida por todos los usuarios que requieran de sus datos; muchos sistemas de Base de Datos permiten a múltiples usuarios compartir la Base de Datos en forma concurrente, aunque bajo ciertas restricciones.

Esfuerzo por Estandarización: Establecer la función de Administración de Datos es una parte importante de este enfoque, su objetivo es tener la autoridad para definir y fijar los estándares de los datos, así como también posteriores cambios de estándares.

Facilitar el Desarrollo de Aplicaciones: Este enfoque reduce el costo y tiempo para desarrollar nuevas aplicaciones.

Controles de Seguridad, Privacidad e Integridad: El control centralizado que se ejerce bajo este enfoque, a través de la función Administración de Base de Datos, puede mejorar la protección de datos en comparación con archivos tradicionales Flexibilidad en el acceso: Este enfoque provee múltiples formas de recuperación de cada ítem de dato, permitiendo a un usuario mayor flexibilidad para ubicar datos que en archivos tradicionales.

Independencia de los Datos: Permite cambiar la organización de los datos sin necesidad de alterar los programas. Es uno de los objetivos principales del enfoque de Base de Datos.

Reducción de la Mantención de Programas: Como los datos son independientes de los programas se reduce la necesidad de modificar (mantener) los programas aún cuando existan una modificación constantes de éstos.

Desventajas

Personal Especializado: Generalmente se necesita contratar o capacitar a personas para convertir sistemas existentes, desarrollar y estimar nuevos estándares de programación, diseñar Bases de Datos y administrarlas.

Necesidad de Respaldos: Al tener mínima redundancia se requiere contar con respaldos independientes que ayuden a recuperar archivos dañados, los DBMS generalmente proveen de herramientas que permiten respaldar y recuperar archivos.

Problemas al compartir Datos: El acceso concurrente a los datos puede causar datos no consistentes o bloqueo de datos (deadlock). Los DBMS deben ser diseñados para prevenir o detectar tales interferencias, de una forma que sea transparente para el usuario.

Conflicto Organizacional: El mantener los datos en una Base de Datos para ser compartidos, requiere de un consenso en la definición y propiedad de los datos como también en la responsabilidad por la exactitud de ellos.

ACID

En bases de datos se utiliza el termino ACID para definir a aquellas que cumplen ciertas características en sus transacciones. Una transacción es una serie de procesos que se aplican dentro de una base de datos en forma secuencial u ordinal y que debe realizarse de una vez y sin alterar la estructura de los datos.

Una base de datos es cumplimentaria ACID si presenta estas cuatro propiedades dentro de las transacciones de una BD:

Atomicidad
Referida a la propiedad que determina que la operación se haya realizado o no, pero nunca a medias. Se ejecuta la operación completa con todos sus pasos o no se ejecuta del todo.

Consistencia
Solo se ejecutan las operaciones que no afectan la integridad de la base de datos. Cualquier operación que se lleva a cabo será de un estado válido a otro con datos consistentes.

Aislamiento
(Isolation) Cada operación es única y no afecta a otras aunque se realicen sobre la misma información.

Durabilidad
Asegura que la operación una vez realizada, es persistente y no se podrá deshacer a pesar de fallos en el sistema.

Teorema CAP

El teorema CAP establece algunos atributos deseados en todo gestor de base de datos que nos permita manejar los datos con cierta seguridad y confianza en ellos. Son tres características que los motores de bases de datos tratan de equilibrar, en el sentido que algunos poseen mayor fortaleza en alguno de los tres términos involucrados; consistencia (Consistency), disponibilidad (Availability), tolerancia a particiones (Partitioning tolerancy).

Esta regla acuñada por Eric Brewer durante un simposio de computación distribuida en el año 2000.


Modelo Entidad Relación (E-R)

El modelo Entidad-Relación es el modelo conceptual más utilizado para el diseño conceptual de bases de datos. Fue introducido por Peter Chen en 1976. El modelo entidad-relación pretende ‘visualizar’ los objetos que pertenecen a la Base de Datos como entidades las cuales tienen unos atributos y se vinculan mediante relaciones.

Mediante una serie de procedimientos se puede pasar del modelo E-R a otros, como por ejemplo el modelo relacional.

El modelado Entidad-Relación es una técnica para el modelado de datos utilizando diagramas entidad relación. No es la única técnica pero sí la más utilizada.

Características:

  • Refleja tan solo la existencia de los datos, no lo que se hace con ellos.

  • Se incluyen todos los datos relevantes del sistema en estudio.

  • No está orientado a aplicaciones específicas.

  • Es independiente de los SGBD.

  • No tiene en cuenta restricciones de espacio, almacenamiento, ni tiempo de ejecución.

  • Está abierto a la evolución del sistema.

  • Es el modelo conceptual más utilizado.

Brevemente consiste en los siguientes pasos:

  1. Se parte de una descripción textual del problema o sistema de información a automatizar (los requisitos).

  2. Se hace una lista de los sustantivos y verbos que aparecen.

  3. Los sustantivos son posibles entidades o atributos.

  4. Los verbos son posibles relaciones.

  5. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles.

  6. Se elabora el diagrama (o diagramas) entidad-relación.

  7. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama.

El modelado de datos no finaliza con el uso de esta técnica. Son necesarias otras técnicas para lograr un modelo directamente implementable en una base de datos. Brevemente:

  • Transformación de relaciones múltiples en binarias.

  • Normalización de una base de datos de relaciones (algunas relaciones pueden transformarse en atributos y viceversa).

  • Conversión en tablas (en caso de utilizar una base de datos relacional).

Ejemplo de Modelo Entidad-Relación

Elementos Modelo Entidad-Relación

Originalmente, el modelo entidad-relación sólo incluía los conceptos de entidad, relación y atributo. Más tarde, se añadieron otros conceptos en lo que se ha denominado modelo entidad-relación extendido.

Entidad

Cualquier tipo de objeto o concepto sobre el que se recoge información relevante para el sistema: cosa, persona, concepto abstracto o suceso. Por ejemplo: coches, casas, empleados, clientes, empresas, oficios, diseños de productos, conciertos, excursiones, etc. Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en el interior.

Un nombre de entidad sólo puede aparecer una vez en el esquema conceptual.

Hay dos tipos de entidades: fuertes y débiles. Una entidad débil es una entidad cuya existencia depende de la existencia de otra entidad. Una entidad fuerte es una entidad que no es débil.

Las entidades fuertes se representan mediante un rectángulo y las débiles mediante un rectángulo doble, en el interior se escribe su nombre.

Relación

Es una correspondencia o asociación entre dos o más entidades. Cada relación tiene un nombre que describe su función. Las relaciones se representan gráficamente mediante rombos y su nombre aparece en el interior.

Las entidades que están involucradas en una determinada relación se denominan entidades participantes.

El número de participantes en una relación es lo que se denomina grado de la relación.

Por lo tanto, una relación en la que participan dos entidades es una relación binaria; si son tres las entidades participantes, la relación es ternaria; etc.

Una relación recursiva o reflexiva es una relación donde la misma entidad participa más de una vez en la relación

Grado de la Relación

Grado 1: Sólo participa una entidad

Grado 2 o binarias: Participan 2 entidades

Grado 3 o ternarias: Participan 3 entidades

Atributo

Es una característica de interés o un hecho sobre una entidad o sobre una relación.

Los atributos representan las propiedades básicas de las entidades y de las relaciones. Toda la información extensiva es portada por los atributos.

Gráficamente, se representan mediante bolitas que cuelgan de las entidades o relaciones a las que pertenecen.

Cada atributo tiene un conjunto de valores asociados denominado dominio. El dominio define todos los valores posibles que puede tomar un atributo.

Puede haber varios atributos definidos sobre un mismo dominio.

Ejemplos: